[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