summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2017-03-23 17:54:43 +0100
committerNicolai Hähnle <[email protected]>2017-03-24 17:35:21 +0100
commiteebd0cd56041f380aa0dc3ba88131ddf7cc54e2c (patch)
tree8679a7c2a0d9eceb10bdf32297032895111a96f2
parent15603055fb36a630cf3023219e9dd5c4a49c0596 (diff)
radeonsi: fix dvec[34] attributes sourced from current attribute state
The state tracker no longer uploads those attributes for us, so we must conservatively upload the size of the largest attribute, which is a dvec4. Fixes a regression of GL45-CTS.gpu_shader_fp64.varyings and GL45-CTS.vertex_attrib_64bit.limits_test. Fixes: 9b91e0b54cc2 ("radeonsi: allow unaligned vertex buffer offsets and strides on CIK-VI") Reviewed-by: Marek Olšák <[email protected]>
-rw-r--r--src/gallium/drivers/radeonsi/si_state.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 6948a74fbdd..0ee4af39151 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -3532,12 +3532,13 @@ static void si_set_vertex_buffers(struct pipe_context *ctx,
/* Zero-stride attribs only. */
assert(src->stride == 0);
- /* Assume the attrib has 4 dwords like the vbo
- * module. This is also a good upper bound.
+ /* Assume that the user_buffer comes from
+ * gl_current_attrib, which implies it has
+ * 4 * 8 bytes (for dvec4 attributes).
*
* Use const_uploader to upload into VRAM directly.
*/
- u_upload_data(sctx->b.b.const_uploader, 0, 16, 16,
+ u_upload_data(sctx->b.b.const_uploader, 0, 32, 32,
src->user_buffer,
&dsti->buffer_offset,
&dsti->buffer);