[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