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;
 

Reply via email to