return NULL;
lpr->base = *templat;
+ lpr->screen = screen;
pipe_reference_init(&lpr->base.reference, 1);
lpr->base.screen = &screen->base;
static struct pipe_resource *
-llvmpipe_resource_from_handle(struct pipe_screen *screen,
+llvmpipe_resource_from_handle(struct pipe_screen *_screen,
const struct pipe_resource *template,
struct winsys_handle *whandle,
unsigned usage)
{
- struct sw_winsys *winsys = llvmpipe_screen(screen)->winsys;
+ struct llvmpipe_screen *screen = llvmpipe_screen(_screen);
+ struct sw_winsys *winsys = screen->winsys;
struct llvmpipe_resource *lpr;
/* XXX Seems like from_handled depth textures doesn't work that well */
}
lpr->base = *template;
+ lpr->screen = screen;
pipe_reference_init(&lpr->base.reference, 1);
- lpr->base.screen = screen;
+ lpr->base.screen = _screen;
/*
* Looks like unaligned displaytargets work just fine,
if (!buffer)
return NULL;
+ buffer->screen = llvmpipe_screen(screen);
pipe_reference_init(&buffer->base.reference, 1);
buffer->base.screen = screen;
buffer->base.format = PIPE_FORMAT_R8_UNORM; /* ?? */
struct pipe_context;
struct pipe_screen;
struct llvmpipe_context;
+struct llvmpipe_screen;
struct sw_displaytarget;
{
struct pipe_resource base;
+ /** an extra screen pointer to avoid crashing in driver trace */
+ struct llvmpipe_screen *screen;
+
/** Row stride in bytes */
unsigned row_stride[LP_MAX_TEXTURE_LEVELS];
/** Image stride (for cube maps, array or 3D textures) in bytes */