Hi, This series adds support for ARB_shader_image_load_store (GL 4.2) and ARB_shader_image_size (GL 4.3) on GK104 and will expose OpenGL 4.2 on this chipset.
The list of dEQP/piglit fails is available below. Please review, Thanks! Ilia Mirkin (1): nv50/ir: add support for SULDP -> SULDB conversion Samuel Pitoiset (23): nvc0: add preliminary support for images nvc0: reserve an area for surfaces info in the driver constbuf nvc0: bind images on compute shaders for Kepler nvc0: bind images on 3D shaders for Kepler nvc0: fix address offset when images have multiple levels nvc0: shift address with blocksize for image buffers nvc0: enable RGB10_A2UI format on GK104 nvc0: add missing glMemoryBarrier bits nv50/ir: add support for TGSI image declarations nv50/ir: re-introduce TGSI lowering pass for images nvc0/ir: fix constraints for OP_SUSTx on Kepler nv50/ir: enable early fragment test with explicit user control nv50/ir: add OP_BUFQ for buffers query nv50/ir: make use of OP_SUQ for surfaces query nvc0/ir: fix cube images for Kepler nvc0/ir: fix 1D arrays images for Kepler nvc0/ir: add indirect support for images on Kepler nvc0/ir: prevent out of bounds when no images are bound nvc0/ir: check that the image format doesn't mismatch nvc0: reduce GL_MAX_3D_TEXTURE_SIZE to 2048 on Kepler+ nvc0: inform users that 3D images are not fully supported nvc0: enable ARB_shader_image_load_store on GK104 nvc0: expose GLSL version 420 on GK104 src/gallium/drivers/nouveau/codegen/nv50_ir.cpp | 49 ++++ src/gallium/drivers/nouveau/codegen/nv50_ir.h | 72 +++++ .../drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 212 +++++++++++++- .../drivers/nouveau/codegen/nv50_ir_inlines.h | 6 +- .../nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 324 ++++++++++++++++----- .../nouveau/codegen/nv50_ir_lowering_nvc0.h | 4 +- .../drivers/nouveau/codegen/nv50_ir_print.cpp | 1 + src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 4 +- .../drivers/nouveau/codegen/nv50_ir_target.cpp | 3 + src/gallium/drivers/nouveau/nvc0/nvc0_compute.c | 4 +- src/gallium/drivers/nouveau/nvc0/nvc0_context.c | 26 +- src/gallium/drivers/nouveau/nvc0/nvc0_context.h | 17 +- src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 8 +- src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 8 +- src/gallium/drivers/nouveau/nvc0/nvc0_screen.h | 1 + src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 53 +++- .../drivers/nouveau/nvc0/nvc0_state_validate.c | 9 +- src/gallium/drivers/nouveau/nvc0/nvc0_tex.c | 141 +++++++-- src/gallium/drivers/nouveau/nvc0/nve4_compute.c | 41 ++- 19 files changed, 846 insertions(+), 137 deletions(-) -- 2.8.0 ** dEQP ** MESA_GLES_VERSION_OVERRIDE=3.1 ./piglit-run.py -1 --dmesg tests/deqp_gles31.py -t image_load_store gk104-deqp-images -o [747/747] pass: 721, fail: 26 \ deqp-gles31/functional/image_load_store/3d/load_store/r32f_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/r32i_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/r32ui_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/rgba16f_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/rgba16i_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/rgba16ui_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/rgba32f_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/rgba32i_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/rgba32ui_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/rgba8_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/rgba8_snorm_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/rgba8i_single_layer: fail deqp-gles31/functional/image_load_store/3d/load_store/rgba8ui_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/r32f_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/r32i_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/r32ui_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/rgba16f_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/rgba16i_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/rgba16ui_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/rgba32f_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/rgba32i_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/rgba32ui_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/rgba8_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/rgba8_snorm_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/rgba8i_single_layer: fail deqp-gles31/functional/image_load_store/3d/store/rgba8ui_single_layer: fail ** piglit ** ./piglit-run.py -1 --dmesg tests/all.py -t arb_shader_image_load_store -t arb_shader_image_size gk104-images -o [633/633] skip: 37, pass: 592, fail: 4 / spec/arb_shader_image_load_store/indexing/Compute shader/dynamically uniform indexing test: fail This one worked with the v1, but some changes have been pushed to piglit in the meantime. Unrelated to this series. spec/arb_shader_image_load_store/invalid/imageAtomicAdd/address bounds test/imageBuffer/r32ui: fail spec/arb_shader_image_load_store/invalid/imageAtomicAnd/address bounds test/imageBuffer/r32ui: fail spec/arb_shader_image_load_store/invalid/imageAtomicCompSwap/address bounds test/imageBuffer/r32ui: fail spec/arb_shader_image_load_store/invalid/imageAtomicMax/address bounds test/imageBuffer/r32ui: fail spec/arb_shader_image_load_store/invalid/imageAtomicMin/address bounds test/imageBuffer/r32ui: fail spec/arb_shader_image_load_store/invalid/imageAtomicOr/address bounds test/imageBuffer/r32ui: fail spec/arb_shader_image_load_store/invalid/imageAtomicXor/address bounds test/imageBuffer/r32ui: fail spec/arb_shader_image_load_store/invalid/imageLoad/address bounds test/imageBuffer/rgba32f: fail I added a todo for these because they are a bit painful to fix (robustness-related). spec/arb_shader_image_load_store/layer/image3D/non-layered binding test: fail spec/arb_shader_image_load_store/max-size/image3D max size test/8x8x2048x1: fail _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
