diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c index 501f4c1405a..1805f4f4a0a 100644 --- a/src/gallium/drivers/radeonsi/si_descriptors.c +++ b/src/gallium/drivers/radeonsi/si_descriptors.c @@ -1708,6 +1708,13 @@ void si_rebind_buffer(struct si_context *sctx, struct pipe_resource *buf) if (buffer && (!buf || buffer == buf)) { unsigned desc_slot = si_get_sampler_slot(i); + if (!buf) { + struct si_texture *tex = (struct si_texture *)buffer; + if (tex->buffer.b.b.target != PIPE_BUFFER) { + continue; + } + } + si_set_buf_desc_address(si_resource(buffer), samplers->views[i]->u.buf.offset, descs->list + desc_slot * 16 + 4);