radeon/video: don't use sub-allocated buffers
Cc: Christian König <christian.koenig@amd.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97976 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97969 Reviewed-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
parent
1d466b9b04
commit
13cb41f666
|
@ -531,6 +531,9 @@ struct pipe_resource *r600_buffer_create(struct pipe_screen *screen,
|
|||
|
||||
r600_init_resource_fields(rscreen, rbuffer, templ->width0, alignment);
|
||||
|
||||
if (templ->bind & PIPE_BIND_SHARED)
|
||||
rbuffer->flags |= RADEON_FLAG_HANDLE;
|
||||
|
||||
if (!r600_alloc_resource(rscreen, rbuffer)) {
|
||||
FREE(rbuffer);
|
||||
return NULL;
|
||||
|
|
|
@ -66,8 +66,14 @@ bool rvid_create_buffer(struct pipe_screen *screen, struct rvid_buffer *buffer,
|
|||
{
|
||||
memset(buffer, 0, sizeof(*buffer));
|
||||
buffer->usage = usage;
|
||||
|
||||
/* Hardware buffer placement restrictions require the kernel to be
|
||||
* able to move buffers around individually, so request a
|
||||
* non-sub-allocated buffer.
|
||||
*/
|
||||
buffer->res = (struct r600_resource *)
|
||||
pipe_buffer_create(screen, PIPE_BIND_CUSTOM, usage, size);
|
||||
pipe_buffer_create(screen, PIPE_BIND_CUSTOM | PIPE_BIND_SHARED,
|
||||
usage, size);
|
||||
|
||||
return buffer->res != NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue