mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 02:40:11 +01:00
radeonsi: handle constant buffer alloc failures
Cc: 11.0 <mesa-stable@lists.freedesktop.org> Acked-by: Christian König <christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
29dff6f676
commit
cd27ff6a0f
1 changed files with 7 additions and 1 deletions
|
|
@ -472,7 +472,8 @@ void si_upload_const_buffer(struct si_context *sctx, struct r600_resource **rbuf
|
|||
|
||||
u_upload_alloc(sctx->b.uploader, 0, size, const_offset,
|
||||
(struct pipe_resource**)rbuffer, &tmp);
|
||||
util_memcpy_cpu_to_le32(tmp, ptr, size);
|
||||
if (rbuffer)
|
||||
util_memcpy_cpu_to_le32(tmp, ptr, size);
|
||||
}
|
||||
|
||||
static void si_set_constant_buffer(struct pipe_context *ctx, uint shader, uint slot,
|
||||
|
|
@ -504,6 +505,11 @@ static void si_set_constant_buffer(struct pipe_context *ctx, uint shader, uint s
|
|||
si_upload_const_buffer(sctx,
|
||||
(struct r600_resource**)&buffer, input->user_buffer,
|
||||
input->buffer_size, &buffer_offset);
|
||||
if (!buffer) {
|
||||
/* Just unbind on failure. */
|
||||
si_set_constant_buffer(ctx, shader, slot, NULL);
|
||||
return;
|
||||
}
|
||||
va = r600_resource(buffer)->gpu_address + buffer_offset;
|
||||
} else {
|
||||
pipe_resource_reference(&buffer, input->buffer);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue