[Mesa-dev] [PATCH 0/6] i965/vec4: Implement partial DF register spilling

Samuel Iglesias Gonsálvez siglesias at igalia.com
Thu Jun 15 11:15:04 UTC 2017


Hello,

As mentioned in the patch series that implemented Ivybridge support
ARB_gpu_shader_fp64 [0], the only missing feature in that series was
register spilling of 64-bit data and, because of that, about ~39 fp64
piglit tests failed to spill registers.

This new patch series implement register spilling of 64-bit data for
IVB and splitted DF instructions on vec4 backend in general.
Unfortunately, this doesn't make the previous failed tests to pass :-(

Nevertheless, I think this is still useful to have it in place. The
implementation uses 1-OWord block write/read messages by reusing the
existing implementation. Thanks to that, we can write/read valid dvecN
data to/from scratch memory even under non-uniform control flow.

If you want to test the branch:

$ git clone -b fp64-ivb-vec4-spilling \
https://github.com/Igalia/mesa.git

Thanks,

Sam

[0] https://lists.freedesktop.org/archives/mesa-dev/2017-March/148646.html

Samuel Iglesias Gonsálvez (6):
  i965/eu: add support for 1-OWord Block Read/Write messages
  i965/vec4/generator: use 1-Oword Block Read/Write messages for DF
    scratch writes/reads
  i965/generator: use MRF when sending 1-OWord read messages for DF
    scratch reads on IVB
  i965/vec4: add support for doing DF register spilling on IVB
  i965/vec4: fix resolve reladdr case on DF scratch read/write on IVB
  i965/vec4: allow partial DF register spilling

 src/intel/compiler/brw_eu.h                  |  18 ++--
 src/intel/compiler/brw_eu_defines.h          |   2 +
 src/intel/compiler/brw_eu_emit.c             |  42 +++++++--
 src/intel/compiler/brw_fs_generator.cpp      |   5 +-
 src/intel/compiler/brw_shader.cpp            |   5 +
 src/intel/compiler/brw_vec4.cpp              |  10 ++
 src/intel/compiler/brw_vec4.h                |  17 +++-
 src/intel/compiler/brw_vec4_generator.cpp    | 136 +++++++++++++++++++++++++++
 src/intel/compiler/brw_vec4_reg_allocate.cpp |  42 +++++++--
 src/intel/compiler/brw_vec4_visitor.cpp      | 125 ++++++++++++++++++++++--
 10 files changed, 361 insertions(+), 41 deletions(-)

-- 
2.11.0



More information about the mesa-dev mailing list