turnip: Assert about the storage buffer offset alignment.
Giving us an unaligned pointer is invalid, and this helps switch a CTS bug from being a flake to a consistent crash. https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2661 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7662>
This commit is contained in:
@@ -95,6 +95,8 @@ dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_greater,Fa
|
||||
dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_always_greater,Fail
|
||||
dEQP-VK.pipeline.framebuffer_attachment.2d_array_19x27_32x32_4_ms,Fail
|
||||
dEQP-VK.pipeline.render_to_image.core.2d.huge.height.r8g8b8a8_unorm_d16_unorm,Crash
|
||||
dEQP-VK.pipeline.push_descriptor.compute.binding1_numcalls2_storage_image,Crash
|
||||
dEQP-VK.pipeline.push_descriptor.compute.binding3_numcalls2_uniform_buffer,Crash
|
||||
dEQP-VK.spirv_assembly.instruction.graphics.opquantize.positive_round_up_or_round_down_vert,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.graphics.opquantize.round_to_negative_inf_vert,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.graphics.opquantize.spec_const_carry_bit_vert,Fail
|
||||
|
@@ -41,9 +41,6 @@ dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrit
|
||||
# https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2017
|
||||
dEQP-VK.renderpass.*separate_channels.*
|
||||
|
||||
# These tests are broken (does not respect our minStorageBufferOffsetAlignment of 64)
|
||||
dEQP-VK.pipeline.push_descriptor.compute.*
|
||||
|
||||
# Undiagnosed flakes appearing more than once in the last 2 months as
|
||||
# of 2020-08-19, in descending order of frequency.
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8
|
||||
|
@@ -736,6 +736,7 @@ write_buffer_descriptor(uint32_t *dst, const VkDescriptorBufferInfo *buffer_info
|
||||
{
|
||||
TU_FROM_HANDLE(tu_buffer, buffer, buffer_info->buffer);
|
||||
|
||||
assert((buffer_info->offset & 63) == 0); /* minStorageBufferOffsetAlignment */
|
||||
uint64_t va = tu_buffer_iova(buffer) + buffer_info->offset;
|
||||
uint32_t range = get_range(buffer, buffer_info->offset, buffer_info->range);
|
||||
range = ALIGN_POT(range, 4) / 4;
|
||||
|
Reference in New Issue
Block a user