gallium: Add a PIPE_CAP_FRAGMENT_SHADER_INTERLOCK.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 11 May 2019 01:32:46 +0000 (18:32 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 15 May 2019 02:34:29 +0000 (19:34 -0700)
Corresponding to GL_ARB_fragment_shader_interlock and
GL_NV_fragment_shader_interlock.  Currently, only the NIR paths
support this functionality, but someone could conceivably add it
to TGSI too.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/docs/source/screen.rst
src/gallium/include/pipe/p_defines.h
src/mesa/state_tracker/st_extensions.c

index 1cf89eed2f9bafb28912c842a709ee2a389605ba..c678ac915273bead9a6bbbc37a19313ee3c47f19 100644 (file)
@@ -522,6 +522,8 @@ The integer capabilities:
   resource_from_handle and resource_get_handle.
 * ``PIPE_CAP_PREFER_COMPUTE_BLIT_FOR_MULTIMEDIA``: Whether VDPAU, VAAPI, and
   OpenMAX should use a compute-based blit instead of pipe_context::blit.
+* ``PIPE_CAP_FRAGMENT_SHADER_INTERLOCK``: True if fragment shader interlock
+  functionality is supported.
 
 .. _pipe_capf:
 
index ed7c81b793cb836474a1055e49b304920a8ca679..6041a004fe4d6f58f410d6df5f9d1b473a408b2c 100644 (file)
@@ -883,6 +883,7 @@ enum pipe_cap
    PIPE_CAP_MAX_FRAMES_IN_FLIGHT,
    PIPE_CAP_DMABUF,
    PIPE_CAP_PREFER_COMPUTE_BLIT_FOR_MULTIMEDIA,
+   PIPE_CAP_FRAGMENT_SHADER_INTERLOCK,
 };
 
 /**
index 86b68542e7bc47da10eec62a3b799f20fe557abf..ae0edc5a4d76b4b9bae544a75a89450e4eaf462f 100644 (file)
@@ -745,6 +745,7 @@ void st_init_extensions(struct pipe_screen *screen,
       { o(ARB_transform_feedback2),          PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME       },
       { o(ARB_transform_feedback3),          PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS },
       { o(ARB_transform_feedback_overflow_query), PIPE_CAP_QUERY_SO_OVERFLOW           },
+      { o(ARB_fragment_shader_interlock),    PIPE_CAP_FRAGMENT_SHADER_INTERLOCK        },
 
       { o(KHR_blend_equation_advanced),      PIPE_CAP_TGSI_FS_FBFETCH                  },