summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2015-12-14 15:24:11 -0800
committerJordan Justen <jordan.l.justen@intel.com>2015-12-14 15:39:07 -0800
commitc4219bc6fff4c8fa764fd0b07c0e8ce99277c4c6 (patch)
treea66476f4db76f71efc9f48d1d02fe88f6d91d992
parentf0313a5569d395c83fd4e31248895f902b88b31c (diff)
downloadexternal_mesa3d-c4219bc6fff4c8fa764fd0b07c0e8ce99277c4c6.zip
external_mesa3d-c4219bc6fff4c8fa764fd0b07c0e8ce99277c4c6.tar.gz
external_mesa3d-c4219bc6fff4c8fa764fd0b07c0e8ce99277c4c6.tar.bz2
anv/cmd_buffer: Gen 8 requires 64 byte alignment for push constant data
See MEDIA_CURBE_LOAD, CURBE Data Start Address & CURBE Total Data Length Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
-rw-r--r--src/vulkan/anv_cmd_buffer.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/vulkan/anv_cmd_buffer.c b/src/vulkan/anv_cmd_buffer.c
index fa69436..4dc3704 100644
--- a/src/vulkan/anv_cmd_buffer.c
+++ b/src/vulkan/anv_cmd_buffer.c
@@ -947,10 +947,14 @@ anv_cmd_buffer_cs_push_constants(struct anv_cmd_buffer *cmd_buffer)
const unsigned threads = pipeline->cs_thread_width_max;
const unsigned total_push_constants_size =
reg_aligned_constant_size * threads;
+ const unsigned push_constant_alignment =
+ cmd_buffer->device->info.gen < 8 ? 32 : 64;
+ const unsigned aligned_total_push_constants_size =
+ ALIGN(total_push_constants_size, push_constant_alignment);
struct anv_state state =
anv_cmd_buffer_alloc_dynamic_state(cmd_buffer,
- total_push_constants_size,
- 32 /* bottom 5 bits MBZ */);
+ aligned_total_push_constants_size,
+ push_constant_alignment);
/* Walk through the param array and fill the buffer with data */
uint32_t *u32_map = state.map;