diff options
author | Marek Olšák <[email protected]> | 2019-08-29 20:35:54 -0400 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-09-18 14:41:30 -0400 |
commit | d307aa56f9f92da79d4ebbf1f9a1b3e65156f258 (patch) | |
tree | 42ae1de067d2d65a19dc28c6c8209787a0192753 /src/gallium/auxiliary | |
parent | aae35fbd3a3eba176ac6fdf6357be49002a561ee (diff) |
gallium: extend resource_get_param to be as capable as resource_get_handle
Reviewed-by: Tapani Pälli <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r-- | src/gallium/auxiliary/driver_ddebug/dd_screen.c | 9 | ||||
-rw-r--r-- | src/gallium/auxiliary/driver_noop/noop_pipe.c | 8 | ||||
-rw-r--r-- | src/gallium/auxiliary/driver_rbug/rbug_screen.c | 10 | ||||
-rw-r--r-- | src/gallium/auxiliary/driver_trace/tr_screen.c | 10 |
4 files changed, 29 insertions, 8 deletions
diff --git a/src/gallium/auxiliary/driver_ddebug/dd_screen.c b/src/gallium/auxiliary/driver_ddebug/dd_screen.c index 25cb2014210..b66d24babb9 100644 --- a/src/gallium/auxiliary/driver_ddebug/dd_screen.c +++ b/src/gallium/auxiliary/driver_ddebug/dd_screen.c @@ -313,14 +313,19 @@ dd_screen_resource_get_handle(struct pipe_screen *_screen, static bool dd_screen_resource_get_param(struct pipe_screen *_screen, + struct pipe_context *_pipe, struct pipe_resource *resource, - unsigned int plane, + unsigned plane, + unsigned layer, enum pipe_resource_param param, + unsigned handle_usage, uint64_t *value) { struct pipe_screen *screen = dd_screen(_screen)->screen; + struct pipe_context *pipe = _pipe ? dd_context(_pipe)->pipe : NULL; - return screen->resource_get_param(screen, resource, plane, param, value); + return screen->resource_get_param(screen, pipe, resource, plane, layer, + param, handle_usage, value); } static void diff --git a/src/gallium/auxiliary/driver_noop/noop_pipe.c b/src/gallium/auxiliary/driver_noop/noop_pipe.c index ec619fd33bc..722e15b97c7 100644 --- a/src/gallium/auxiliary/driver_noop/noop_pipe.c +++ b/src/gallium/auxiliary/driver_noop/noop_pipe.c @@ -157,9 +157,12 @@ static bool noop_resource_get_handle(struct pipe_screen *pscreen, } static bool noop_resource_get_param(struct pipe_screen *pscreen, + struct pipe_context *ctx, struct pipe_resource *resource, - unsigned int plane, + unsigned plane, + unsigned layer, enum pipe_resource_param param, + unsigned handle_usage, uint64_t *value) { struct noop_pipe_screen *noop_screen = (struct noop_pipe_screen*)pscreen; @@ -172,7 +175,8 @@ static bool noop_resource_get_param(struct pipe_screen *pscreen, if (!tex) return false; - result = screen->resource_get_param(screen, tex, 0, param, value); + result = screen->resource_get_param(screen, NULL, tex, 0, 0, param, + handle_usage, value); pipe_resource_reference(&tex, NULL); return result; } diff --git a/src/gallium/auxiliary/driver_rbug/rbug_screen.c b/src/gallium/auxiliary/driver_rbug/rbug_screen.c index 247745fa533..a85d4e60e5b 100644 --- a/src/gallium/auxiliary/driver_rbug/rbug_screen.c +++ b/src/gallium/auxiliary/driver_rbug/rbug_screen.c @@ -217,17 +217,23 @@ rbug_screen_resource_get_handle(struct pipe_screen *_screen, static bool rbug_screen_resource_get_param(struct pipe_screen *_screen, + struct pipe_context *_pipe, struct pipe_resource *_resource, - unsigned int plane, + unsigned plane, + unsigned layer, enum pipe_resource_param param, + unsigned handle_usage, uint64_t *value) { struct rbug_screen *rb_screen = rbug_screen(_screen); + struct rbug_context *rb_pipe = rbug_context(_pipe); struct rbug_resource *rb_resource = rbug_resource(_resource); struct pipe_screen *screen = rb_screen->screen; struct pipe_resource *resource = rb_resource->resource; - return screen->resource_get_param(screen, resource, plane, param, value); + return screen->resource_get_param(screen, rb_pipe ? rb_pipe->pipe : NULL, + resource, plane, layer, param, + handle_usage, value); } diff --git a/src/gallium/auxiliary/driver_trace/tr_screen.c b/src/gallium/auxiliary/driver_trace/tr_screen.c index 0417e2339c2..380e3ea7511 100644 --- a/src/gallium/auxiliary/driver_trace/tr_screen.c +++ b/src/gallium/auxiliary/driver_trace/tr_screen.c @@ -409,17 +409,23 @@ trace_screen_resource_get_handle(struct pipe_screen *_screen, static bool trace_screen_resource_get_param(struct pipe_screen *_screen, + struct pipe_context *_pipe, struct pipe_resource *resource, - unsigned int plane, + unsigned plane, + unsigned layer, enum pipe_resource_param param, + unsigned handle_usage, uint64_t *value) { struct trace_screen *tr_screen = trace_screen(_screen); + struct trace_context *tr_pipe = _pipe ? trace_context(_pipe) : NULL; struct pipe_screen *screen = tr_screen->screen; /* TODO trace call */ - return screen->resource_get_param(screen, resource, plane, param, value); + return screen->resource_get_param(screen, tr_pipe ? tr_pipe->pipe : NULL, + resource, plane, layer, param, + handle_usage, value); } static void |