gallium/util: don't modify usage in pipe_buffer_write

All drivers were already doing it except virgl.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Marek Olšák 2016-07-17 14:34:50 +02:00
parent 1ffe77e7bb
commit 8e3e9d2839
2 changed files with 7 additions and 9 deletions

View File

@ -339,15 +339,8 @@ pipe_buffer_write(struct pipe_context *pipe,
unsigned size,
const void *data)
{
unsigned access = PIPE_TRANSFER_WRITE;
if (offset == 0 && size == buf->width0) {
access |= PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE;
} else {
access |= PIPE_TRANSFER_DISCARD_RANGE;
}
pipe->buffer_subdata(pipe, buf, access, offset, size, data);
/* Don't set any other usage bits. Drivers should derive them. */
pipe->buffer_subdata(pipe, buf, PIPE_TRANSFER_WRITE, offset, size, data);
}
/**

View File

@ -89,6 +89,11 @@ static void virgl_buffer_subdata(struct pipe_context *pipe,
{
struct pipe_box box;
if (offset == 0 && size == resource->width0)
usage |= PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE;
else
usage |= PIPE_TRANSFER_DISCARD_RANGE;
u_box_1d(offset, size, &box);
virgl_transfer_inline_write(pipe, resource, 0, usage, &box, data, 0, 0);
}