gallium: Add new cap PIPE_CAP_TEXTURE_BUFFER_SAMPLER
This indicates whether a driver wants samplers for buffer textures as well as normal textures. Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8300>
This commit is contained in:
@@ -165,6 +165,9 @@ The integer capabilities:
|
||||
TEXCOORD semantic.
|
||||
Also, TGSI_SEMANTIC_PCOORD becomes available, which labels a fragment shader
|
||||
input that will always be replaced with sprite coordinates.
|
||||
* ``PIPE_CAP_TEXTURE_BUFFER_SAMPLER``: Whether a sampler should still
|
||||
be used for PIPE_BUFFER resources (normally a sampler is only used
|
||||
if the texture target is PIPE_TEXTURE_*).
|
||||
* ``PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER``: Whether it is preferable
|
||||
to use a blit to implement a texture transfer which needs format conversions
|
||||
and swizzling in gallium frontends. Generally, all hardware drivers with
|
||||
|
@@ -148,6 +148,7 @@ u_pipe_screen_get_param_defaults(struct pipe_screen *pscreen,
|
||||
|
||||
case PIPE_CAP_BUFFER_SAMPLER_VIEW_RGBA_ONLY:
|
||||
case PIPE_CAP_TGSI_TEXCOORD:
|
||||
case PIPE_CAP_TEXTURE_BUFFER_SAMPLER:
|
||||
return 0;
|
||||
|
||||
case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER:
|
||||
|
@@ -792,6 +792,7 @@ enum pipe_cap
|
||||
PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
|
||||
PIPE_CAP_BUFFER_SAMPLER_VIEW_RGBA_ONLY,
|
||||
PIPE_CAP_TGSI_TEXCOORD,
|
||||
PIPE_CAP_TEXTURE_BUFFER_SAMPLER,
|
||||
PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER,
|
||||
PIPE_CAP_QUERY_PIPELINE_STATISTICS,
|
||||
PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK,
|
||||
|
@@ -685,6 +685,8 @@ st_create_context_priv(struct gl_context *ctx, struct pipe_context *pipe,
|
||||
!!(screen->get_param(screen, PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK) &
|
||||
(PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 |
|
||||
PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600));
|
||||
st->texture_buffer_sampler =
|
||||
screen->get_param(screen, PIPE_CAP_TEXTURE_BUFFER_SAMPLER);
|
||||
st->has_time_elapsed =
|
||||
screen->get_param(screen, PIPE_CAP_QUERY_TIME_ELAPSED);
|
||||
st->has_half_float_packing =
|
||||
|
@@ -181,6 +181,7 @@ struct st_context
|
||||
|
||||
boolean needs_texcoord_semantic;
|
||||
boolean apply_texture_swizzle_to_border_color;
|
||||
boolean texture_buffer_sampler;
|
||||
|
||||
/* On old libGL's for linux we need to invalidate the drawables
|
||||
* on glViewpport calls, this is set via a option.
|
||||
|
Reference in New Issue
Block a user