diff options
author | Eric Anholt <[email protected]> | 2016-07-27 14:58:43 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2016-08-03 10:25:08 -0700 |
commit | 02f8c444e853ddb1db4f5354c613a172f6a98ef5 (patch) | |
tree | b7e01093d281356ae8ac085284899fe80285943f /src/gallium/drivers/vc4/vc4_uniforms.c | |
parent | 9128acfb5781c43abd3ffe3ef74ee1d32138f6bc (diff) |
vc4: Fix handling of UBO range offsets.
The ranges are in units of bytes, not dwords. This wasn't caught by
piglit tests because ttn tends to make one big uniform file, so we only
had one UBO range with a src and dst offset of 0.
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_uniforms.c')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_uniforms.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/vc4/vc4_uniforms.c b/src/gallium/drivers/vc4/vc4_uniforms.c index c9d6b537720..528f10eb25a 100644 --- a/src/gallium/drivers/vc4/vc4_uniforms.c +++ b/src/gallium/drivers/vc4/vc4_uniforms.c @@ -182,10 +182,11 @@ vc4_upload_ubo(struct vc4_context *vc4, return NULL; struct vc4_bo *ubo = vc4_bo_alloc(vc4->screen, shader->ubo_size, "ubo"); - uint32_t *data = vc4_bo_map(ubo); + void *data = vc4_bo_map(ubo); for (uint32_t i = 0; i < shader->num_ubo_ranges; i++) { memcpy(data + shader->ubo_ranges[i].dst_offset, - gallium_uniforms + shader->ubo_ranges[i].src_offset, + ((const void *)gallium_uniforms + + shader->ubo_ranges[i].src_offset), shader->ubo_ranges[i].size); } |