Module: Mesa Branch: main Commit: 3e36be7afe1a4ba33d119802d7320d5dfee38db8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3e36be7afe1a4ba33d119802d7320d5dfee38db8
Author: Jesse Natalie <jenat...@microsoft.com> Date: Tue Nov 7 10:15:39 2023 -0800 d3d12: Binding buffers as SSBO/storage image needs to add buffer ranges Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26104> --- src/gallium/drivers/d3d12/d3d12_context.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gallium/drivers/d3d12/d3d12_context.cpp b/src/gallium/drivers/d3d12/d3d12_context.cpp index 3d632b346b0..4e6cd24fc2b 100644 --- a/src/gallium/drivers/d3d12/d3d12_context.cpp +++ b/src/gallium/drivers/d3d12/d3d12_context.cpp @@ -1694,6 +1694,8 @@ d3d12_set_shader_buffers(struct pipe_context *pctx, pipe_resource_reference(&slot->buffer, buffers[i].buffer); slot->buffer_offset = buffers[i].buffer_offset; slot->buffer_size = buffers[i].buffer_size; + util_range_add(buffers[i].buffer, &d3d12_resource(buffers[i].buffer)->valid_buffer_range, + buffers[i].buffer_offset, buffers[i].buffer_size); d3d12_increment_ssbo_bind_count(ctx, shader, d3d12_resource(buffers[i].buffer)); } else memset(slot, 0, sizeof(*slot)); @@ -1798,6 +1800,10 @@ d3d12_set_shader_images(struct pipe_context *pctx, ctx->image_view_emulation_formats[shader][i] = get_shader_image_emulation_format(images[i].resource->format); } + if (images[i].resource->target == PIPE_BUFFER) { + util_range_add(images[i].resource, &d3d12_resource(images[i].resource)->valid_buffer_range, + images[i].u.buf.offset, images[i].u.buf.size); + } } else memset(slot, 0, sizeof(*slot)); }