gallium: Add PIPE_CAP_ATOMIC_FLOAT_MINMAX
authorCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Wed, 12 Jun 2019 03:06:41 +0000 (20:06 -0700)
committerCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Thu, 13 Jun 2019 16:03:58 +0000 (09:03 -0700)
Used to enable INTEL_shader_atomic_float_minmax.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/gallium/auxiliary/util/u_screen.c
src/gallium/docs/source/screen.rst
src/gallium/include/pipe/p_defines.h
src/mesa/state_tracker/st_extensions.c

index e46485946144227c188dcc0b26ed33e6fcb8bc34..a991bd6dce27f4280e9e6650e51a4fa3a3e9d470 100644 (file)
@@ -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:
index fd8b7a9f68ce4c056427987e071bebac7422def0..fda9ebdb6fd38cde3a8de388eebee985a706ebeb 100644 (file)
@@ -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:
 
index 261f6c51ec15186b36055d29a60c72667c2d5782..74a9a86892451baa909ed69b4a5d5ff1c062ce55 100644 (file)
@@ -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,
 };
 
 /**
index cb340b3edc9ba308b6ce73a4c8514676f90ff588..f423136929ffd87986b7dfc7915177975aedec2f 100644 (file)
@@ -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               },