From c704c0226c15bd548489ab23ab8477c570edc69b Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Fri, 10 May 2019 18:32:46 -0700 Subject: [PATCH] gallium: Add a PIPE_CAP_FRAGMENT_SHADER_INTERLOCK. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/gallium/docs/source/screen.rst | 2 ++ src/gallium/include/pipe/p_defines.h | 1 + src/mesa/state_tracker/st_extensions.c | 1 + 3 files changed, 4 insertions(+) diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst index 1cf89eed2f9..c678ac91527 100644 --- a/src/gallium/docs/source/screen.rst +++ b/src/gallium/docs/source/screen.rst @@ -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: diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index ed7c81b793c..6041a004fe4 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -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, }; /** diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 86b68542e7b..ae0edc5a4d7 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -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 }, -- 2.30.2