[Mesa-dev] [PATCH 00/22] spirv/intel: half-float compiler enablement
Iago Toral Quiroga
itoral at igalia.com
Thu May 17 08:46:20 UTC 2018
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
More information about the mesa-dev
mailing list