From: Jordan Justen Date: Mon, 14 Dec 2015 23:24:11 +0000 (-0800) Subject: anv/cmd_buffer: Gen 8 requires 64 byte alignment for push constant data X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c4219bc6fff4c8fa764fd0b07c0e8ce99277c4c6;p=mesa.git 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 --- diff --git a/src/vulkan/anv_cmd_buffer.c b/src/vulkan/anv_cmd_buffer.c index fa6943689d8..4dc3704ebf3 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;