Please note that there is no complete nvc0 implementation backing this (unlike the SSBO case), so I have not done more complete dEQP tests, and a number of piglit tests fail.
Furthermore, there's the RGBA vs BGRA format issue that needs to be resolved somehow. However I feel confident that this code is a good start, and works as advertised. In all of the image failures I've looked at, the TGSI always appeared correct. Please have a look and let me know if this interface seems workable, and what additional changes need to be done for this to be acceptable in mesa. Ilia Mirkin (7): gallium: make image views non-persistent objects gallium: add PIPE_SHADER_CAP_MAX_SHADER_IMAGES tgsi: show textual format representation st/mesa: add an image atom for shader images st/mesa: allow st_format.h to be included from C++ files st/mesa: convert GLSL image intrinsics into TGSI st/mesa: enable GL image extensions when backend supports them src/gallium/auxiliary/gallivm/lp_bld_limits.h | 1 + src/gallium/auxiliary/tgsi/tgsi_dump.c | 2 +- src/gallium/auxiliary/tgsi/tgsi_exec.h | 1 + src/gallium/auxiliary/tgsi/tgsi_text.c | 13 +- src/gallium/auxiliary/util/u_inlines.h | 11 -- src/gallium/docs/source/screen.rst | 1 + src/gallium/drivers/ddebug/dd_context.c | 28 +-- src/gallium/drivers/ddebug/dd_pipe.h | 2 +- src/gallium/drivers/freedreno/freedreno_screen.c | 1 + src/gallium/drivers/ilo/ilo_state.c | 2 +- src/gallium/drivers/nouveau/nv30/nv30_screen.c | 2 + src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 + src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 + src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 2 +- src/gallium/drivers/r300/r300_screen.c | 2 + src/gallium/drivers/r600/r600_pipe.c | 1 + src/gallium/drivers/radeonsi/si_pipe.c | 1 + src/gallium/drivers/svga/svga_screen.c | 3 + src/gallium/drivers/vc4/vc4_screen.c | 1 + src/gallium/include/pipe/p_context.h | 14 +- src/gallium/include/pipe/p_defines.h | 1 + src/gallium/include/pipe/p_state.h | 4 +- src/mesa/Makefile.sources | 1 + src/mesa/main/mtypes.h | 1 + src/mesa/state_tracker/st_atom.c | 5 + src/mesa/state_tracker/st_atom.h | 5 + src/mesa/state_tracker/st_atom_image.c | 202 ++++++++++++++++++++ src/mesa/state_tracker/st_context.c | 1 + src/mesa/state_tracker/st_context.h | 1 + src/mesa/state_tracker/st_extensions.c | 16 ++ src/mesa/state_tracker/st_format.h | 8 + src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 226 ++++++++++++++++++++++- 32 files changed, 498 insertions(+), 64 deletions(-) create mode 100644 src/mesa/state_tracker/st_atom_image.c -- 2.4.10 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev