From 81835f87a4e824ef373be80914e58b458fd58629 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Tue, 11 Jun 2019 20:06:41 -0700 Subject: [PATCH] gallium: Add PIPE_CAP_ATOMIC_FLOAT_MINMAX Used to enable INTEL_shader_atomic_float_minmax. Reviewed-by: Kenneth Graunke Reviewed-by: Ian Romanick --- src/gallium/auxiliary/util/u_screen.c | 1 + src/gallium/docs/source/screen.rst | 2 ++ src/gallium/include/pipe/p_defines.h | 1 + src/mesa/state_tracker/st_extensions.c | 1 + 4 files changed, 5 insertions(+) diff --git a/src/gallium/auxiliary/util/u_screen.c b/src/gallium/auxiliary/util/u_screen.c index e464859..a991bd6 100644 --- a/src/gallium/auxiliary/util/u_screen.c +++ b/src/gallium/auxiliary/util/u_screen.c @@ -329,6 +329,7 @@ u_pipe_screen_get_param_defaults(struct pipe_screen *pscreen, case PIPE_CAP_PREFER_COMPUTE_BLIT_FOR_MULTIMEDIA: case PIPE_CAP_FRAGMENT_SHADER_INTERLOCK: case PIPE_CAP_CS_DERIVED_SYSTEM_VALUES_SUPPORTED: + case PIPE_CAP_ATOMIC_FLOAT_MINMAX: return 0; case PIPE_CAP_MAX_GS_INVOCATIONS: diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst index fd8b7a9..fda9ebd 100644 --- a/src/gallium/docs/source/screen.rst +++ b/src/gallium/docs/source/screen.rst @@ -531,6 +531,8 @@ The integer capabilities: * ``PIPE_CAP_CS_DERIVED_SYSTEM_VALUES_SUPPORTED``: True if driver handles gl_LocalInvocationIndex and gl_GlobalInvocationID. Otherwise, state tracker will lower those system values. +* ``PIPE_CAP_ATOMIC_FLOAT_MINMAX``: Atomic float point minimum, + maximum, exchange and compare-and-swap support to buffer and shared variables. .. _pipe_capf: diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 261f6c5..74a9a86 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -886,6 +886,7 @@ enum pipe_cap PIPE_CAP_FRAGMENT_SHADER_INTERLOCK, PIPE_CAP_FBFETCH_COHERENT, PIPE_CAP_CS_DERIVED_SYSTEM_VALUES_SUPPORTED, + PIPE_CAP_ATOMIC_FLOAT_MINMAX, }; /** diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index cb340b3..f423136 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -764,6 +764,7 @@ void st_init_extensions(struct pipe_screen *screen, { o(AMD_seamless_cubemap_per_texture), PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE }, { o(ATI_texture_mirror_once), PIPE_CAP_TEXTURE_MIRROR_CLAMP }, { o(INTEL_conservative_rasterization), PIPE_CAP_CONSERVATIVE_RASTER_INNER_COVERAGE }, + { o(INTEL_shader_atomic_float_minmax), PIPE_CAP_ATOMIC_FLOAT_MINMAX }, { o(MESA_tile_raster_order), PIPE_CAP_TILE_RASTER_ORDER }, { o(NV_compute_shader_derivatives), PIPE_CAP_COMPUTE_SHADER_DERIVATIVES }, { o(NV_conditional_render), PIPE_CAP_CONDITIONAL_RENDER }, -- 2.7.4