From 82f2ab0bfc067bc42d973afa5eb88b5b2d30571c Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Wed, 8 Dec 2021 17:00:58 +0800 Subject: [PATCH] mesa/st: add st_TexturePageCommitment interface MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák Signed-off-by: Qiang Yu Part-of: --- src/mesa/state_tracker/st_cb_texture.c | 19 +++++++++++++++++++ src/mesa/state_tracker/st_cb_texture.h | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index 6c2ba9f..5414adb 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -3728,3 +3728,22 @@ st_GetSparseTextureVirtualPageSize(struct gl_context *ctx, return !!screen->get_sparse_texture_virtual_page_size( screen, ptarget, pformat, index, 1, x, y, z); } + +void +st_TexturePageCommitment(struct gl_context *ctx, + struct gl_texture_object *tex_obj, + int level, int xoffset, int yoffset, int zoffset, + int width, int height, int depth, bool commit) +{ + struct st_context *st = st_context(ctx); + struct pipe_context *pipe = st->pipe; + struct st_texture_object *tex = st_texture_object(tex_obj); + struct pipe_box box; + + u_box_3d(xoffset, yoffset, zoffset, width, height, depth, &box); + + if (!pipe->resource_commit(pipe, tex->pt, level, &box, commit)) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexPageCommitmentARB(out of memory)"); + return; + } +} diff --git a/src/mesa/state_tracker/st_cb_texture.h b/src/mesa/state_tracker/st_cb_texture.h index 5cc672e..1149887 100644 --- a/src/mesa/state_tracker/st_cb_texture.h +++ b/src/mesa/state_tracker/st_cb_texture.h @@ -139,4 +139,8 @@ void st_MakeImageHandleResident(struct gl_context *ctx, GLuint64 handle, GLboolean st_GetSparseTextureVirtualPageSize(struct gl_context *ctx, GLenum target, mesa_format format, unsigned index, int *x, int *y, int *z); +void st_TexturePageCommitment(struct gl_context *ctx, + struct gl_texture_object *tex_obj, + int level, int xoffset, int yoffset, int zoffset, + int width, int height, int depth, bool commit); #endif /* ST_CB_TEXTURE_H */ -- 2.7.4