mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
softpipe: use new softpipe_resource_data() accessor
We should probably be using map()/unmap() when accessing resource data, but this is a little better. v2: assert that the resource is not a display target, per Jose. Reviewed-by: José Fonseca <jfonseca@vmware.com>
This commit is contained in:
parent
99c42d11a2
commit
365f38f3df
3 changed files with 20 additions and 4 deletions
|
|
@ -81,7 +81,7 @@ softpipe_draw_vbo(struct pipe_context *pipe,
|
|||
if (!sp->vertex_buffer[i].buffer) {
|
||||
continue;
|
||||
}
|
||||
buf = softpipe_resource(sp->vertex_buffer[i].buffer)->data;
|
||||
buf = softpipe_resource_data(sp->vertex_buffer[i].buffer);
|
||||
size = sp->vertex_buffer[i].buffer->width0;
|
||||
}
|
||||
draw_set_mapped_vertex_buffer(draw, i, buf, size);
|
||||
|
|
@ -92,7 +92,7 @@ softpipe_draw_vbo(struct pipe_context *pipe,
|
|||
unsigned available_space = ~0;
|
||||
mapped_indices = sp->index_buffer.user_buffer;
|
||||
if (!mapped_indices) {
|
||||
mapped_indices = softpipe_resource(sp->index_buffer.buffer)->data;
|
||||
mapped_indices = softpipe_resource_data(sp->index_buffer.buffer);
|
||||
if (sp->index_buffer.buffer->width0 > sp->index_buffer.offset)
|
||||
available_space =
|
||||
(sp->index_buffer.buffer->width0 - sp->index_buffer.offset);
|
||||
|
|
@ -107,7 +107,7 @@ softpipe_draw_vbo(struct pipe_context *pipe,
|
|||
|
||||
|
||||
for (i = 0; i < sp->num_so_targets; i++) {
|
||||
void *buf = softpipe_resource(sp->so_targets[i]->target.buffer)->data;
|
||||
void *buf = softpipe_resource_data(sp->so_targets[i]->target.buffer);
|
||||
sp->so_targets[i]->mapping = buf;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ softpipe_set_constant_buffer(struct pipe_context *pipe,
|
|||
}
|
||||
|
||||
size = cb ? cb->buffer_size : 0;
|
||||
data = constants ? softpipe_resource(constants)->data : NULL;
|
||||
data = constants ? softpipe_resource_data(constants) : NULL;
|
||||
if (data)
|
||||
data = (const char *) data + cb->buffer_offset;
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,22 @@ softpipe_transfer(struct pipe_transfer *pt)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return pointer to a resource's actual data.
|
||||
* This is a short-cut instead of using map()/unmap(), which should
|
||||
* probably be fixed.
|
||||
*/
|
||||
static INLINE void *
|
||||
softpipe_resource_data(struct pipe_resource *pt)
|
||||
{
|
||||
if (!pt)
|
||||
return NULL;
|
||||
|
||||
assert(softpipe_resource(pt)->dt == NULL);
|
||||
return softpipe_resource(pt)->data;
|
||||
}
|
||||
|
||||
|
||||
extern void
|
||||
softpipe_init_screen_texture_funcs(struct pipe_screen *screen);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue