iris: Fix constant buffer sizes for non-UBOs

Since the system value refactor, we've accidentally only been setting
cbuf->buffer_size in the UBO case, and not in the uploaded-constants
case.  We use cbuf->buffer_size to fill out the SURFACE_STATE entry,
so it needs to be initialized in both cases.

Fixes: 3b6d787e40 ("iris: move sysvals to their own constant buffer")
This commit is contained in:
Kenneth Graunke 2019-09-10 09:04:20 -07:00
parent 341034a73d
commit 077a1952cc
1 changed files with 4 additions and 3 deletions

View File

@ -2739,11 +2739,12 @@ iris_set_constant_buffer(struct pipe_context *ctx,
pipe_resource_reference(&cbuf->buffer, input->buffer);
cbuf->buffer_offset = input->buffer_offset;
cbuf->buffer_size =
MIN2(input->buffer_size,
iris_resource_bo(cbuf->buffer)->size - cbuf->buffer_offset);
}
cbuf->buffer_size =
MIN2(input->buffer_size,
iris_resource_bo(cbuf->buffer)->size - cbuf->buffer_offset);
struct iris_resource *res = (void *) cbuf->buffer;
res->bind_history |= PIPE_BIND_CONSTANT_BUFFER;