From fef018c307fc58f72d292fb0b045ca569c5975a2 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Wed, 22 Dec 2021 14:41:33 +0800 Subject: [PATCH] gallium: add PIPE_CAP_QUERY_SPARSE_TEXTURE_RESIDENCY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák Reviewed-by: Mike Blumenkrantz Signed-off-by: Qiang Yu Part-of: --- docs/gallium/screen.rst | 1 + src/gallium/auxiliary/util/u_screen.c | 1 + src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 + src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 + src/gallium/include/pipe/p_defines.h | 1 + 5 files changed, 5 insertions(+) diff --git a/docs/gallium/screen.rst b/docs/gallium/screen.rst index d1a772e9281..9a48230b805 100644 --- a/docs/gallium/screen.rst +++ b/docs/gallium/screen.rst @@ -634,6 +634,7 @@ The integer capabilities: * ``PIPE_CAP_MAX_SPARSE_3D_TEXTURE_SIZE``: Maximum 3D texture image dimension for a sparse texture. * ``PIPE_CAP_MAX_SPARSE_ARRAY_TEXTURE_LAYERS``: Maximum number of layers in a sparse array texture. * ``PIPE_CAP_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS``: TRUE if there are no restrictions on the allocation of mipmaps in sparse textures and FALSE otherwise. See SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB description in ARB_sparse_texture extension spec. +* ``PIPE_CAP_QUERY_SPARSE_TEXTURE_RESIDENCY``: TURE if shader sparse texture sample instruction could also return the residency information. .. _pipe_capf: diff --git a/src/gallium/auxiliary/util/u_screen.c b/src/gallium/auxiliary/util/u_screen.c index 8eaa83be572..4cd961fb6d2 100644 --- a/src/gallium/auxiliary/util/u_screen.c +++ b/src/gallium/auxiliary/util/u_screen.c @@ -483,6 +483,7 @@ u_pipe_screen_get_param_defaults(struct pipe_screen *pscreen, case PIPE_CAP_MAX_SPARSE_3D_TEXTURE_SIZE: case PIPE_CAP_MAX_SPARSE_ARRAY_TEXTURE_LAYERS: case PIPE_CAP_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS: + case PIPE_CAP_QUERY_SPARSE_TEXTURE_RESIDENCY: return 0; default: diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c index 34469dde6f1..d47066f371a 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c @@ -408,6 +408,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_MAX_SPARSE_3D_TEXTURE_SIZE: case PIPE_CAP_MAX_SPARSE_ARRAY_TEXTURE_LAYERS: case PIPE_CAP_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS: + case PIPE_CAP_QUERY_SPARSE_TEXTURE_RESIDENCY: return 0; case PIPE_CAP_VENDOR_ID: diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c index 9e6b09845a2..d296c8716c3 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c @@ -437,6 +437,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_MAX_SPARSE_3D_TEXTURE_SIZE: case PIPE_CAP_MAX_SPARSE_ARRAY_TEXTURE_LAYERS: case PIPE_CAP_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS: + case PIPE_CAP_QUERY_SPARSE_TEXTURE_RESIDENCY: return 0; case PIPE_CAP_VENDOR_ID: diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index fa46cd59c04..574c91e2290 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -1003,6 +1003,7 @@ enum pipe_cap PIPE_CAP_MAX_SPARSE_3D_TEXTURE_SIZE, PIPE_CAP_MAX_SPARSE_ARRAY_TEXTURE_LAYERS, PIPE_CAP_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS, + PIPE_CAP_QUERY_SPARSE_TEXTURE_RESIDENCY, PIPE_CAP_LAST, /* XXX do not add caps after PIPE_CAP_LAST! */