Module: Mesa Branch: staging/20.3 Commit: 009e2aa5460b4be30a783cee1e8f1df5369ffb29 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=009e2aa5460b4be30a783cee1e8f1df5369ffb29
Author: Mike Blumenkrantz <[email protected]> Date: Thu Oct 15 11:20:20 2020 -0400 zink: handle null ubos for drivers that don't support robustness features (nullDescriptor) we can just jam in the dummy buffer here and yolo Reviewed-by: Erik Faye-Lund <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8226> --- src/gallium/drivers/zink/zink_draw.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/zink/zink_draw.c b/src/gallium/drivers/zink/zink_draw.c index 8f97bb508ea..64e216c716a 100644 --- a/src/gallium/drivers/zink/zink_draw.c +++ b/src/gallium/drivers/zink/zink_draw.c @@ -314,14 +314,17 @@ zink_draw_vbo(struct pipe_context *pctx, for (int j = 0; j < shader->num_bindings; j++) { int index = shader->bindings[j].index; if (shader->bindings[j].type == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER) { - assert(ctx->ubos[i][index].buffer_size > 0); assert(ctx->ubos[i][index].buffer_size <= screen->info.props.limits.maxUniformBufferRange); - assert(ctx->ubos[i][index].buffer); struct zink_resource *res = zink_resource(ctx->ubos[i][index].buffer); + assert(!res || ctx->ubos[i][index].buffer_size > 0); + assert(!res || ctx->ubos[i][index].buffer); write_desc_resources[num_wds] = res; - buffer_infos[num_buffer_info].buffer = res->buffer; - buffer_infos[num_buffer_info].offset = ctx->ubos[i][index].buffer_offset; - buffer_infos[num_buffer_info].range = ctx->ubos[i][index].buffer_size; + buffer_infos[num_buffer_info].buffer = res ? res->buffer : + (screen->info.rb2_feats.nullDescriptor ? + VK_NULL_HANDLE : + zink_resource(ctx->dummy_buffer)->buffer); + buffer_infos[num_buffer_info].offset = res ? ctx->ubos[i][index].buffer_offset : 0; + buffer_infos[num_buffer_info].range = res ? ctx->ubos[i][index].buffer_size : VK_WHOLE_SIZE; wds[num_wds].pBufferInfo = buffer_infos + num_buffer_info; ++num_buffer_info; } else { _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
