Module: Mesa Branch: main Commit: 7c918a807b8af69cdadde4e29243638d9884d5fe URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7c918a807b8af69cdadde4e29243638d9884d5fe
Author: Mike Blumenkrantz <[email protected]> Date: Mon Jan 3 14:35:31 2022 -0500 zink: enable ARB_sparse_texture pipe caps Acked-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381> --- src/gallium/drivers/zink/zink_screen.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index e32e57dc82f..edc6590c546 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -661,9 +661,22 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return screen->info.feats.features.shaderCullDistance; case PIPE_CAP_SPARSE_BUFFER_PAGE_SIZE: - return screen->info.feats.features.sparseBinding ? ZINK_SPARSE_BUFFER_PAGE_SIZE : 0; + /* Sparse texture */ + case PIPE_CAP_MAX_SPARSE_TEXTURE_SIZE: + return screen->info.feats.features.sparseResidencyImage2D ? + zink_get_param(pscreen, PIPE_CAP_MAX_TEXTURE_2D_SIZE) : 0; + case PIPE_CAP_MAX_SPARSE_3D_TEXTURE_SIZE: + return screen->info.feats.features.sparseResidencyImage3D ? + (1 << (zink_get_param(pscreen, PIPE_CAP_MAX_TEXTURE_3D_LEVELS) - 1)) : 0; + case PIPE_CAP_MAX_SPARSE_ARRAY_TEXTURE_LAYERS: + return screen->info.feats.features.sparseResidencyImage2D ? + zink_get_param(pscreen, PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS) : 0; + case PIPE_CAP_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS: + return screen->info.feats.features.sparseResidencyImage2D ? 1 : 0; + + case PIPE_CAP_VIEWPORT_SUBPIXEL_BITS: return screen->info.props.limits.viewportSubPixelBits;
