gallium: add PIPE_CAP_TEXTURE_SAMPLER_INDEPENDENT

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25362>
This commit is contained in:
Karol Herbst 2024-02-16 12:16:13 +01:00 committed by Marge Bot
parent d5da434851
commit 0fa4eaf6f6
4 changed files with 9 additions and 0 deletions

View file

@ -650,6 +650,7 @@ The integer capabilities:
* ``PIPE_CAP_VALIDATE_ALL_DIRTY_STATES`` : Whether state validation must also validate the state changes for resources types used in the previous shader but not in the current shader.
* ``PIPE_CAP_HAS_CONST_BW``: Whether the driver only supports non-data-dependent layouts (ie. not bandwidth compressed formats like AFBC, UBWC, etc), or supports ``PIPE_BIND_CONST_BW`` to disable data-dependent layouts on requested resources.
* ``PIPE_CAP_PERFORMANCE_MONITOR``: Whether GL_AMD_performance_monitor should be exposed.
* ``PIPE_CAP_TEXTURE_SAMPLER_INDEPENDENT``: Whether sampler views and sampler states are independent objects, meaning both can be freely mixed and matched by the frontend. This isn't required for OpenGL where on the shader level those are the same object. However for proper gallium nine and OpenCL support this is required.
.. _pipe_capf:

View file

@ -553,6 +553,10 @@ u_pipe_screen_get_param_defaults(struct pipe_screen *pscreen,
case PIPE_CAP_HAS_CONST_BW:
return 0;
case PIPE_CAP_TEXTURE_SAMPLER_INDEPENDENT:
/* this is expected of gallium drivers, but some just don't support it */
return 1;
case PIPE_CAP_PERFORMANCE_MONITOR:
return pscreen->get_driver_query_info && pscreen->get_driver_query_group_info &&
pscreen->get_driver_query_group_info(pscreen, 0, NULL) != 0;

View file

@ -159,6 +159,9 @@ v3d_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_TEXTURE_QUERY_LOD:
return 1;
case PIPE_CAP_TEXTURE_SAMPLER_INDEPENDENT:
return 0;
case PIPE_CAP_PACKED_UNIFORMS:
/* We can't enable this flag, because it results in load_ubo
* intrinsics across a 16b boundary, but v3d's TMU general

View file

@ -953,6 +953,7 @@ enum pipe_cap
PIPE_CAP_VALIDATE_ALL_DIRTY_STATES,
PIPE_CAP_HAS_CONST_BW,
PIPE_CAP_PERFORMANCE_MONITOR,
PIPE_CAP_TEXTURE_SAMPLER_INDEPENDENT,
PIPE_CAP_LAST,
/* XXX do not add caps after PIPE_CAP_LAST! */
};