mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
gallium: add get_sparse_texture_virtual_page_size for noop/rbug/trace
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Signed-off-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>
This commit is contained in:
parent
eed8421bba
commit
1a616c4b29
3 changed files with 61 additions and 0 deletions
|
|
@ -664,6 +664,19 @@ static void noop_get_device_uuid(struct pipe_screen *screen, char *uuid)
|
|||
oscreen->get_device_uuid(oscreen, uuid);
|
||||
}
|
||||
|
||||
static int noop_get_sparse_texture_virtual_page_size(struct pipe_screen *screen,
|
||||
enum pipe_texture_target target,
|
||||
enum pipe_format format,
|
||||
unsigned offset, unsigned size,
|
||||
int *x, int *y, int *z)
|
||||
{
|
||||
struct noop_pipe_screen *noop_screen = (struct noop_pipe_screen*)screen;
|
||||
struct pipe_screen *oscreen = noop_screen->oscreen;
|
||||
|
||||
return oscreen->get_sparse_texture_virtual_page_size(screen, target, format, offset,
|
||||
size, x, y, z);
|
||||
}
|
||||
|
||||
static void noop_query_dmabuf_modifiers(struct pipe_screen *screen,
|
||||
enum pipe_format format, int max,
|
||||
uint64_t *modifiers,
|
||||
|
|
@ -753,6 +766,8 @@ struct pipe_screen *noop_screen_create(struct pipe_screen *oscreen)
|
|||
screen->resource_create_with_modifiers = noop_resource_create_with_modifiers;
|
||||
screen->create_vertex_state = noop_create_vertex_state;
|
||||
screen->vertex_state_destroy = noop_vertex_state_destroy;
|
||||
if (oscreen->get_sparse_texture_virtual_page_size)
|
||||
screen->get_sparse_texture_virtual_page_size = noop_get_sparse_texture_virtual_page_size;
|
||||
|
||||
slab_create_parent(&noop_screen->pool_transfers,
|
||||
sizeof(struct pipe_transfer), 64);
|
||||
|
|
|
|||
|
|
@ -191,6 +191,20 @@ rbug_screen_get_dmabuf_modifier_planes(struct pipe_screen *_screen,
|
|||
return screen->get_dmabuf_modifier_planes(screen, modifier, format);
|
||||
}
|
||||
|
||||
static int
|
||||
rbug_screen_get_sparse_texture_virtual_page_size(struct pipe_screen *_screen,
|
||||
enum pipe_texture_target target,
|
||||
enum pipe_format format,
|
||||
unsigned offset, unsigned size,
|
||||
int *x, int *y, int *z)
|
||||
{
|
||||
struct rbug_screen *rb_screen = rbug_screen(_screen);
|
||||
struct pipe_screen *screen = rb_screen->screen;
|
||||
|
||||
return screen->get_sparse_texture_virtual_page_size(screen, target, format, offset,
|
||||
size, x, y, z);
|
||||
}
|
||||
|
||||
static struct pipe_context *
|
||||
rbug_screen_context_create(struct pipe_screen *_screen,
|
||||
void *priv, unsigned flags)
|
||||
|
|
@ -474,6 +488,7 @@ rbug_screen_create(struct pipe_screen *screen)
|
|||
rb_screen->base.fence_finish = rbug_screen_fence_finish;
|
||||
rb_screen->base.fence_get_fd = rbug_screen_fence_get_fd;
|
||||
SCR_INIT(finalize_nir);
|
||||
SCR_INIT(get_sparse_texture_virtual_page_size);
|
||||
|
||||
rb_screen->screen = screen;
|
||||
|
||||
|
|
|
|||
|
|
@ -1040,6 +1040,36 @@ trace_screen_get_dmabuf_modifier_planes(struct pipe_screen *_screen, uint64_t mo
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
trace_screen_get_sparse_texture_virtual_page_size(struct pipe_screen *_screen,
|
||||
enum pipe_texture_target target,
|
||||
enum pipe_format format,
|
||||
unsigned offset, unsigned size,
|
||||
int *x, int *y, int *z)
|
||||
{
|
||||
struct trace_screen *tr_scr = trace_screen(_screen);
|
||||
struct pipe_screen *screen = tr_scr->screen;
|
||||
|
||||
trace_dump_call_begin("pipe_screen", "get_sparse_texture_virtual_page_size");
|
||||
|
||||
trace_dump_arg(ptr, screen);
|
||||
trace_dump_arg(int, target);
|
||||
trace_dump_arg(format, format);
|
||||
trace_dump_arg(uint, offset);
|
||||
trace_dump_arg(uint, size);
|
||||
trace_dump_arg(ptr, x);
|
||||
trace_dump_arg(ptr, y);
|
||||
trace_dump_arg(ptr, z);
|
||||
|
||||
int ret = screen->get_sparse_texture_virtual_page_size(screen, target, format, offset,
|
||||
size, x, y, z);
|
||||
|
||||
trace_dump_ret(int, ret);
|
||||
|
||||
trace_dump_call_end();
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct pipe_vertex_state *
|
||||
trace_screen_create_vertex_state(struct pipe_screen *_screen,
|
||||
struct pipe_vertex_buffer *buffer,
|
||||
|
|
@ -1182,6 +1212,7 @@ trace_screen_create(struct pipe_screen *screen)
|
|||
SCR_INIT(create_vertex_state);
|
||||
SCR_INIT(vertex_state_destroy);
|
||||
tr_scr->base.transfer_helper = screen->transfer_helper;
|
||||
SCR_INIT(get_sparse_texture_virtual_page_size);
|
||||
|
||||
tr_scr->screen = screen;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue