[Mesa-dev] [PATCH 0/5] nvc0: Implement EXT_shader_image_load_formatted

Rhys Perry pendingchaos02 at gmail.com
Fri Jun 15 22:06:09 UTC 2018


Changes in v2:
- Change from PIPE_SHADER_CAP_* to PIPE_CAP_*
- Fix broken feature detection in the state tracker
- Move code in AlgebraicOpt::handleSULDP() to nv50_ir_ra.cpp

This patch series implements EXT_shader_image_load_formatted on Maxwell+.

It should implement all of the spec except, if the extension is enabled,
passing image variables without a format qualifier to atomic operations
will not raise a compilation error like it should.

This is because knowing the format used in an image operation before
function inlining can be difficult, because formats don't have to (and
currently can't) be specified in the paramter declaration. So this series
leaves this issue to hopefully be resolved in a later patch.

Rhys Perry (5):
  gallium: add support for formatted image loads
  mesa,glsl: add support for EXT_shader_image_load_formatted
  st/mesa: add support for EXT_shader_image_load_formatted
  nv50/ir: use suld.p on GM107+
  nvc0,nv50/ir: enable support for formatted image loads on GM107+

 src/compiler/glsl/ast_to_hir.cpp                   |  5 ++++
 src/compiler/glsl/glsl_parser_extras.cpp           |  1 +
 src/compiler/glsl/glsl_parser_extras.h             |  7 +++++
 src/gallium/drivers/etnaviv/etnaviv_screen.c       |  1 +
 src/gallium/drivers/freedreno/freedreno_screen.c   |  1 +
 src/gallium/drivers/i915/i915_screen.c             |  1 +
 src/gallium/drivers/llvmpipe/lp_screen.c           |  1 +
 src/gallium/drivers/nouveau/codegen/nv50_ir.h      |  4 +++
 .../drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp | 34 ++++++++++++++--------
 .../nouveau/codegen/nv50_ir_lowering_nvc0.cpp      |  6 +---
 .../drivers/nouveau/codegen/nv50_ir_print.cpp      | 17 +++++++++++
 src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 27 ++++++++++++++++-
 src/gallium/drivers/nouveau/nv30/nv30_screen.c     |  1 +
 src/gallium/drivers/nouveau/nv50/nv50_screen.c     |  1 +
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c     |  2 ++
 src/gallium/drivers/r300/r300_screen.c             |  1 +
 src/gallium/drivers/r600/r600_pipe.c               |  1 +
 src/gallium/drivers/radeonsi/si_get.c              |  1 +
 src/gallium/drivers/softpipe/sp_screen.c           |  1 +
 src/gallium/drivers/svga/svga_screen.c             |  1 +
 src/gallium/drivers/swr/swr_screen.cpp             |  1 +
 src/gallium/drivers/v3d/v3d_screen.c               |  1 +
 src/gallium/drivers/vc4/vc4_screen.c               |  1 +
 src/gallium/drivers/virgl/virgl_screen.c           |  1 +
 src/gallium/include/pipe/p_defines.h               |  1 +
 src/mesa/main/extensions_table.h                   |  1 +
 src/mesa/main/mtypes.h                             |  1 +
 src/mesa/state_tracker/st_extensions.c             |  1 +
 28 files changed, 104 insertions(+), 18 deletions(-)

-- 
2.14.4



More information about the mesa-dev mailing list