[Mesa-dev] [PATCH 00/11] intel/fs: Add a generic SEND opcode and use it on

Jason Ekstrand jason at jlekstrand.net
Sat Nov 3 00:06:32 UTC 2018


This patch series is something we've talked about doing for a while and
haven't gotten around to yet.  It implements a generic SEND opcode and then
reworks a bunch of the current SEND instructions such as texturing to use
that instead of piles of shader codegen.  Among other things, this gives us
substantially better scheduling of instructions around indirect sends.
They currently generate up to 5 ALU instructions in the generator to build
the indirect descriptor and this is reduced to 1 with the other 4 happening
in the IR level where we can schedule.

Jason Ekstrand (11):
  intel/defines: Explicitly cast to uint32_t in SET_FIELD and SET_BITS
  intel/fs: Handle IMAGE_SIZE in size_read() and is_send_from_grf()
  intel/fs: Take an explicit exec size in brw_surface_payload_size()
  intel/eu: Add has_simd4x2 bools to surface_write functions
  intel/eu: Rework surface descriptor helpers
  intel/fs: Add a generic SEND opcode
  intel/fs: Use the generic SEND opcode for surface messages
  intel/fs: Mark texture surfaces used in brw_fs_nir
  intel/fs: Use a logical opcode for IMAGE_SIZE
  intel/fs: Use SHADER_OPCODE_SEND for texturing on gen7+
  intel/fs: Use SHADER_OPCODE_SEND for varying UBO pulls on gen7+

 src/intel/compiler/brw_eu.h                   | 237 +++++++++--
 src/intel/compiler/brw_eu_defines.h           |  13 +-
 src/intel/compiler/brw_eu_emit.c              | 376 +++---------------
 src/intel/compiler/brw_fs.cpp                 | 371 ++++++++++++++---
 src/intel/compiler/brw_fs.h                   |  12 +-
 src/intel/compiler/brw_fs_cse.cpp             |   6 +-
 src/intel/compiler/brw_fs_generator.cpp       | 334 +++-------------
 src/intel/compiler/brw_fs_nir.cpp             |  30 +-
 src/intel/compiler/brw_fs_reg_allocate.cpp    |   6 +-
 .../compiler/brw_schedule_instructions.cpp    |  90 ++++-
 src/intel/compiler/brw_shader.cpp             |  10 +-
 src/intel/compiler/brw_shader.h               |   5 +
 src/mesa/drivers/dri/i965/brw_defines.h       |   2 +-
 13 files changed, 778 insertions(+), 714 deletions(-)

-- 
2.19.1



More information about the mesa-dev mailing list