[Mesa-dev] [PATCH 0/6] i965/vec4: Add indirect push constant support

Jason Ekstrand jason at jlekstrand.net
Wed Apr 6 04:11:07 UTC 2016


This little series applies on top of the bigger series to do indirect push
constants in the FS backend.  This series allows us to do indirect push
constants in the vec4 backend as well.  As it currently stands, it should
be behaviourly identical for the GL driver to what we had before this
series.  However, the Vulkan driver needs to be able to do indirects on
push constants since push constants are a concept exposed by the API.

This series fixes 56 Vulkan CTS tests on Haswell and is needed before we
can really turn on tessellation for Vulkan on gen8+.

The last patch in the series is needed regardless as it provides the api
distinction needed to know whether to push everything or just push some of
the available uniforms.

Jason Ekstrand (6):
  i965/vec4: Move can_do_writemask to vec4_instruction
  i965/vec4: Use can_do_writemask in can_reswizzle
  i965/vec4: Add support for SHADER_OPCODE_MOV_INDIRECT
  i965/vec4: Handle MOV_INDIRECT in pack_uniform_registers
  i965/vec4: Support full std140 layout for push constants
  i965: Push everything if pull_param == NULL

 src/mesa/drivers/dri/i965/brw_fs.cpp               | 10 +++-
 src/mesa/drivers/dri/i965/brw_ir_vec4.h            |  1 +
 src/mesa/drivers/dri/i965/brw_vec4.cpp             | 55 +++++++++++++++++-
 .../dri/i965/brw_vec4_dead_code_eliminate.cpp      | 31 +---------
 src/mesa/drivers/dri/i965/brw_vec4_generator.cpp   | 67 ++++++++++++++++++++++
 src/mesa/drivers/dri/i965/brw_vec4_nir.cpp         | 30 ++++++++--
 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp     |  6 ++
 7 files changed, 160 insertions(+), 40 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list