gallium: add user_ptr in pipe_resource
I need to access the pointer in st/mesa when I only have pipe_resource.
This commit is contained in:
@@ -183,6 +183,7 @@ i915_user_buffer_create(struct pipe_screen *screen,
|
||||
buf->b.b.height0 = 1;
|
||||
buf->b.b.depth0 = 1;
|
||||
buf->b.b.array_size = 1;
|
||||
buf->b.b.user_ptr = ptr;
|
||||
|
||||
buf->data = ptr;
|
||||
buf->free_on_destroy = FALSE;
|
||||
|
||||
@@ -770,6 +770,7 @@ llvmpipe_user_buffer_create(struct pipe_screen *screen,
|
||||
buffer->base.height0 = 1;
|
||||
buffer->base.depth0 = 1;
|
||||
buffer->base.array_size = 1;
|
||||
buffer->base.user_ptr = ptr;
|
||||
buffer->userBuffer = TRUE;
|
||||
buffer->data = ptr;
|
||||
|
||||
|
||||
@@ -156,6 +156,7 @@ static struct pipe_resource *noop_user_buffer_create(struct pipe_screen *screen,
|
||||
templ.height0 = 1;
|
||||
templ.depth0 = 1;
|
||||
templ.flags = 0;
|
||||
templ.user_ptr = ptr;
|
||||
return noop_resource_create(screen, &templ);
|
||||
}
|
||||
|
||||
|
||||
@@ -398,6 +398,7 @@ nouveau_user_buffer_create(struct pipe_screen *pscreen, void *ptr,
|
||||
buffer->base.width0 = bytes;
|
||||
buffer->base.height0 = 1;
|
||||
buffer->base.depth0 = 1;
|
||||
buffer->base.user_ptr = ptr;
|
||||
|
||||
buffer->data = ptr;
|
||||
buffer->status = NOUVEAU_BUFFER_STATUS_USER_MEMORY;
|
||||
|
||||
@@ -193,6 +193,7 @@ struct pipe_resource *r300_buffer_create(struct pipe_screen *screen,
|
||||
rbuf->b.b.vtbl = &r300_buffer_vtbl;
|
||||
pipe_reference_init(&rbuf->b.b.b.reference, 1);
|
||||
rbuf->b.b.b.screen = screen;
|
||||
rbuf->b.b.b.user_ptr = NULL;
|
||||
rbuf->b.user_ptr = NULL;
|
||||
rbuf->domain = RADEON_DOMAIN_GTT;
|
||||
rbuf->buf = NULL;
|
||||
@@ -239,6 +240,7 @@ struct pipe_resource *r300_user_buffer_create(struct pipe_screen *screen,
|
||||
rbuf->b.b.b.depth0 = 1;
|
||||
rbuf->b.b.b.array_size = 1;
|
||||
rbuf->b.b.b.flags = 0;
|
||||
rbuf->b.b.b.user_ptr = ptr;
|
||||
rbuf->b.b.vtbl = &r300_buffer_vtbl;
|
||||
rbuf->b.user_ptr = ptr;
|
||||
rbuf->domain = RADEON_DOMAIN_GTT;
|
||||
|
||||
@@ -222,6 +222,7 @@ struct pipe_resource *r600_buffer_create(struct pipe_screen *screen,
|
||||
rbuffer->b.b.b = *templ;
|
||||
pipe_reference_init(&rbuffer->b.b.b.reference, 1);
|
||||
rbuffer->b.b.b.screen = screen;
|
||||
rbuffer->b.b.b.user_ptr = NULL;
|
||||
rbuffer->b.b.vtbl = &r600_buffer_vtbl;
|
||||
rbuffer->b.user_ptr = NULL;
|
||||
|
||||
@@ -253,6 +254,7 @@ struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen,
|
||||
rbuffer->b.b.b.depth0 = 1;
|
||||
rbuffer->b.b.b.array_size = 1;
|
||||
rbuffer->b.b.b.flags = 0;
|
||||
rbuffer->b.b.b.user_ptr = ptr;
|
||||
rbuffer->b.user_ptr = ptr;
|
||||
rbuffer->buf = NULL;
|
||||
return &rbuffer->b.b.b;
|
||||
|
||||
@@ -232,6 +232,7 @@ struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen,
|
||||
rbuffer->b.b.b.depth0 = 1;
|
||||
rbuffer->b.b.b.array_size = 1;
|
||||
rbuffer->b.b.b.flags = 0;
|
||||
rbuffer->b.b.b.user_ptr = ptr;
|
||||
rbuffer->b.user_ptr = ptr;
|
||||
rbuffer->buf = NULL;
|
||||
return &rbuffer->b.b.b;
|
||||
|
||||
@@ -476,6 +476,7 @@ softpipe_user_buffer_create(struct pipe_screen *screen,
|
||||
spr->base.height0 = 1;
|
||||
spr->base.depth0 = 1;
|
||||
spr->base.array_size = 1;
|
||||
spr->base.user_ptr = ptr;
|
||||
spr->userBuffer = TRUE;
|
||||
spr->data = ptr;
|
||||
|
||||
|
||||
@@ -394,6 +394,7 @@ svga_user_buffer_create(struct pipe_screen *screen,
|
||||
sbuf->b.b.height0 = 1;
|
||||
sbuf->b.b.depth0 = 1;
|
||||
sbuf->b.b.array_size = 1;
|
||||
sbuf->b.b.user_ptr = ptr;
|
||||
|
||||
sbuf->swbuf = ptr;
|
||||
sbuf->user = TRUE;
|
||||
|
||||
@@ -415,6 +415,9 @@ struct pipe_resource
|
||||
|
||||
unsigned bind; /**< bitmask of PIPE_BIND_x */
|
||||
unsigned flags; /**< bitmask of PIPE_RESOURCE_FLAG_x */
|
||||
|
||||
/* XXX this is only temporary and will be removed once it's not needed */
|
||||
uint8_t *user_ptr; /**< user buffer pointer */
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user