Most of our compiler was already 16-bit aware thanks to previous work on VK_KHR_16bit_storage and shaderInt16, but specifically for 16-bit floating point, we were missing a few things such as some lowerings that depend on the specific bit representation of the float or some hardware restrictions which we address here.
The series contains two patches from Samuel that handle float64/16 conversions, which had been posted in the mailing list some time ago and that are also relevant to this. Iago Toral Quiroga (20): compiler/spirv: fix SpvOpIsInf for 16-bit float intel/compiler: lower some 16-bit float operations to 32-bit intel/compiler: lower 16-bit extended math to 32-bit prior to gen9 compiler/nir: support 16-bit float in nir_imm_floatN_t compiler/spirv: handle 16-bit float in radians() and degrees() intel/compiler: implement 16-bit fsign intel/compiler: implement 16-bit multiply-add intel/compiler: allow extended math functions with HF operands compiler/spirv: implement 16-bit asin compiler/spirv: implement 16-bit acos compiler/spirv: implement 16-bit atan compiler/spirv: implement 16-bit atan2 compiler/spirv: implement 16-bit exp and log compiler/spirv: implement 16-bit hyperbolic trigonometric functions compiler/spirv: implement 16-bit frexp compiler/nir: add lowering option for 16-bit fmod intel/compiler: lower 16-bit fmod compiler/nir: add lowering for 16-bit flrp intel/compiler: lower 16-bit flrp intel/compiler: Extended Math is limited to SIMD8 on half-float Samuel Iglesias Gonsálvez (2): i965/fs: implement conversions from float16 to 64 bits data types i965/fs: Implement float64 to float16 conversion src/compiler/nir/nir.h | 2 + src/compiler/nir/nir_builder.h | 29 +++--- src/compiler/nir/nir_opt_algebraic.py | 2 + src/compiler/spirv/vtn_alu.c | 4 +- src/compiler/spirv/vtn_glsl450.c | 176 +++++++++++++++++++++++++--------- src/intel/compiler/brw_compiler.c | 2 + src/intel/compiler/brw_eu_emit.c | 6 +- src/intel/compiler/brw_fs.cpp | 30 ++++-- src/intel/compiler/brw_fs_nir.cpp | 85 ++++++++++++++-- src/intel/compiler/brw_nir.c | 18 +++- 10 files changed, 279 insertions(+), 75 deletions(-) -- 2.14.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev