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

Ilia Mirkin imirkin at alum.mit.edu
Sun Feb 14 00:22:31 UTC 2016


OK... v2 is here, rebased across the recent compute support and Dave's
AoA changes (and probably other stuff). No significant changes to the
patches themselves.

Dave, your R-b was conditional on addressing your feedback re
writability of surfaces, but I believe you later decided it was OK
as-is, at least for now. If I misunderstood, please speak up :)

Nicolai, I've included two of your patches here, hope that's
alright. I think they're pretty important to have even in the first
run -- the rest of your patches are less obviously fixes.

I'd like to reiterate that this is *far* from complete... these are
the things missing from the top of my head:

 - a resolution to the RGBA vs BGRA situation
 - early fragment test property
 - 100 different memory barriers this ext adds

Also my Fermi impl is far from complete (not to say anything of
Kepler+), so there's nothing *actually* implementing this. However
since Dave is working on the r600 impl and Nicolai is working on the
radeonsi impl, I believe it's better to land this and worry about
fixing it later. Since all the patches are reviewed, I'm going to land
this in the next couple of days. (I've said this before, but I was
waiting for the AoA and compute bits to land.) If you have any
objections, speak up soon.

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

Nicolai Hähnle (2):
  st/mesa: call st_finalize_texture from image atoms
  st/mesa: set pipe_image_view layers correctly for 3D textures

 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                 |   6 +
 src/mesa/state_tracker/st_atom.h                 |   6 +
 src/mesa/state_tracker/st_atom_image.c           | 236 +++++++++++++++++++++++
 src/mesa/state_tracker/st_context.c              |   1 +
 src/mesa/state_tracker/st_context.h              |   1 +
 src/mesa/state_tracker/st_extensions.c           |  17 ++
 src/mesa/state_tracker/st_format.h               |   8 +
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp       | 214 +++++++++++++++++++-
 32 files changed, 523 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