Status Update
Comments
ap...@google.com <ap...@google.com> #2
Pump to P1 as it blocks OEM to use new emulator density.
ap...@google.com <ap...@google.com> #3
When and where does this error appear in Studio? I tried changing hw.lcd.density
to 200 in config.ini
on an emulator and it seemed to start up ok.
ap...@google.com <ap...@google.com> #4
Please attach idea.log. Thank you.
ap...@google.com <ap...@google.com> #5
The comments from reporter:
The issue is not when reading the config.ini. That is indeed the current workaround: create the AVD, then edit the config.ini to fix the density to 200.
The problem is when you use a hardware configuration (devices.xml) where the device specifies 200 for the display density Android Studio refuses to create the AVD with that density. The config.ini ends up with a different value written for the display density than what was in devices.xml.
The other missing densities (140 and 180) have the same problem.
ap...@google.com <ap...@google.com> #6
It looks like the path to this error is: Device Manager -> Virtual -> Create Device -> Import Hardware Profiles -> (provide a device.xml file as described above).
Given that the emulator has been updated to support these values, it makes sense that we should allow them as well.
ni...@google.com <ni...@google.com> #7
(Also the error handling is pretty abysmal here... there's no feedback to the user when the file fails validation, just the SAXParseExecption goes to the IDE error log.)
Description
One of Reactor's design principles is to make the cost of instructions explicit, and thus operations such as casting a scalar to a vector (i.e. by broadcasting the value to all elements) are currently not done implicitly. This causes us to have to use the SIMD namespace this becomes confusing...
Float4()
andInt4()
constructors quite a lot, but it ensured we avoided them where possible to save on shuffle instructions. However, in theAVX2 features the instruction which, according to Agner Fog's instruction tables , takes only a load micro-instruction on Intel Haswell for 32/64-bit scalars and thus doesn't involve the ALU for shuffle operations. AVX-512 even adds a new scalar memory addressing mode which automatically performs a broadcast.
vpbroadcast
We should therefore start to support implicit conversion of scalars to vectors to simplify Reactor's syntax and improve readability. It may still incur some cost on older CPUs, but in most cases that cost would be unavoidable anyway.
Likewise, converting the first element of a vector to a scalar should be feasible using just the
.x
syntax.