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. I tested the second version of this series when it was released in June 2018 but I can't easily test this version. Nothing changed too much though so it should be fine. v2: change from PIPE_SHADER_CAP_* to PIPE_CAP_* v2: fix broken feature detection in the state tracker v2: move code in AlgebraicOpt::handleSULDP() to nv50_ir_ra.cpp v3: rebase v3: make use of u_pipe_screen_get_param_defaults v3: move RA code into it's own function 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/auxiliary/util/u_screen.c | 1 + src/gallium/docs/source/screen.rst | 1 + src/gallium/drivers/nouveau/codegen/nv50_ir.h | 4 +++ .../nouveau/codegen/nv50_ir_emit_gm107.cpp | 34 ++++++++++++------- .../nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 3 +- .../drivers/nouveau/codegen/nv50_ir_print.cpp | 17 ++++++++++ .../drivers/nouveau/codegen/nv50_ir_ra.cpp | 31 +++++++++++++++++ .../drivers/nouveau/nv30/nv30_screen.c | 1 + .../drivers/nouveau/nv50/nv50_screen.c | 1 + .../drivers/nouveau/nvc0/nvc0_screen.c | 2 ++ src/gallium/drivers/swr/swr_screen.cpp | 1 + src/gallium/drivers/vc4/vc4_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 + 19 files changed, 100 insertions(+), 14 deletions(-) -- 2.20.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev