gallium: allow to report errors from p_screen::resource_bind_backing
Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10689>
This commit is contained in:

committed by
Marge Bot

parent
9618d5700c
commit
6012dec550
@@ -456,7 +456,7 @@ trace_screen_free_memory(struct pipe_screen *_screen,
|
||||
trace_dump_call_end();
|
||||
}
|
||||
|
||||
static void
|
||||
static bool
|
||||
trace_screen_resource_bind_backing(struct pipe_screen *_screen,
|
||||
struct pipe_resource *resource,
|
||||
struct pipe_memory_allocation *pmem,
|
||||
@@ -464,6 +464,7 @@ trace_screen_resource_bind_backing(struct pipe_screen *_screen,
|
||||
{
|
||||
struct trace_screen *tr_scr = trace_screen(_screen);
|
||||
struct pipe_screen *screen = tr_scr->screen;
|
||||
bool result;
|
||||
|
||||
trace_dump_call_begin("pipe_screen", "resource_bind_backing");
|
||||
|
||||
@@ -472,9 +473,11 @@ trace_screen_resource_bind_backing(struct pipe_screen *_screen,
|
||||
trace_dump_arg(ptr, pmem);
|
||||
trace_dump_arg(uint, offset);
|
||||
|
||||
screen->resource_bind_backing(screen, resource, pmem, offset);
|
||||
result = screen->resource_bind_backing(screen, resource, pmem, offset);
|
||||
|
||||
trace_dump_call_end();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static struct pipe_resource *
|
||||
|
@@ -842,7 +842,7 @@ static void llvmpipe_free_memory(struct pipe_screen *screen,
|
||||
os_free_aligned(pmem);
|
||||
}
|
||||
|
||||
static void llvmpipe_resource_bind_backing(struct pipe_screen *screen,
|
||||
static bool llvmpipe_resource_bind_backing(struct pipe_screen *screen,
|
||||
struct pipe_resource *pt,
|
||||
struct pipe_memory_allocation *pmem,
|
||||
uint64_t offset)
|
||||
@@ -850,13 +850,16 @@ static void llvmpipe_resource_bind_backing(struct pipe_screen *screen,
|
||||
struct llvmpipe_resource *lpr = llvmpipe_resource(pt);
|
||||
|
||||
if (!lpr->backable)
|
||||
return;
|
||||
return FALSE;
|
||||
|
||||
|
||||
if (llvmpipe_resource_is_texture(&lpr->base))
|
||||
lpr->tex_data = (char *)pmem + offset;
|
||||
else
|
||||
lpr->data = (char *)pmem + offset;
|
||||
lpr->backing_offset = offset;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void *llvmpipe_map_memory(struct pipe_screen *screen,
|
||||
|
@@ -550,7 +550,7 @@ struct pipe_screen {
|
||||
/**
|
||||
* Bind memory to a resource.
|
||||
*/
|
||||
void (*resource_bind_backing)(struct pipe_screen *screen,
|
||||
bool (*resource_bind_backing)(struct pipe_screen *screen,
|
||||
struct pipe_resource *pt,
|
||||
struct pipe_memory_allocation *pmem,
|
||||
uint64_t offset);
|
||||
|
Reference in New Issue
Block a user