[Mesa-dev] [PATCH 0/7] st/mesa: add shader image support

Ilia Mirkin imirkin at alum.mit.edu
Sat Jan 30 17:55:40 PST 2016


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



More information about the mesa-dev mailing list