Commit 30205883 authored by Duncan Hopkins's avatar Duncan Hopkins Committed by Erik Faye-Lund

zink: respect ubo buffer alignment requirement

The driver can report a minimum alignment for UBOs, and that can be
larger than 64, which we've currently been using. Let's play ball, and
use the reported value instead.
parent a41639dd
......@@ -428,9 +428,12 @@ zink_set_constant_buffer(struct pipe_context *pctx,
if (cb) {
struct pipe_resource *buffer = cb->buffer;
unsigned offset = cb->buffer_offset;
if (cb->user_buffer)
u_upload_data(ctx->base.const_uploader, 0, cb->buffer_size, 64,
if (cb->user_buffer) {
struct zink_screen *screen = zink_screen(pctx->screen);
u_upload_data(ctx->base.const_uploader, 0, cb->buffer_size,
screen->props.limits.minUniformBufferOffsetAlignment,
cb->user_buffer, &offset, &buffer);
}
pipe_resource_reference(&ctx->ubos[shader][index].buffer, buffer);
ctx->ubos[shader][index].buffer_offset = offset;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment