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:
Erik Faye-Lund
2021-05-07 13:31:28 +02:00
committed by Marge Bot
parent 9618d5700c
commit 6012dec550
3 changed files with 11 additions and 5 deletions

View File

@@ -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 *

View File

@@ -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,

View File

@@ -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);