radv: round-up num_records division in radv_flush_vertex_descriptors
Vertex attribute bounds checking is supposed to be done per-attribute:
is_oob = index * stride + attrib_offset + attrib_size > buffer_size
but we were obtaining num_records by dividing the buffer size by the
stride, making it per-vertex:
is_oob = index * stride + (stride - 1) >= buffer_size
An example from Dead Cells (Wine) is:
attribute bindings: 0, 1, 2
attribute formats: r32g32, r32g32, r32g32b32a32
attribute offsets: 0, 0, 0
binding buffers: all the same buffer
binding offsets: 0, 8, 16
binding sizes: 128, 120, 112
binding strides: 32, 32, 32
Workaround this issue without switching to per-attribute descriptors by
rounding up the division. This is still incorrect, but it should now no
longer consider in-bounds attributes out-of-bounds.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3796
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4199
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8835>
2020-11-30 15:44:08 +00:00
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_41.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_8.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_41.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_8.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_41.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_8.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_41.samples_1.1d.vert,Fail
|
|
|
|
dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_8.samples_1.1d.vert,Fail
|
|
|
|
|
2021-02-02 12:13:29 +00:00
|
|
|
# Fixed by ffd6cbac3 ("Fix validation of DRM modifier compatibility with image properties")
|
|
|
|
dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_sfloat,Crash
|
|
|
|
dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_sint,Crash
|
|
|
|
dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_snorm,Crash
|
|
|
|
dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_sscaled,Crash
|
|
|
|
dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_uint,Crash
|
|
|
|
dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_unorm,Crash
|
|
|
|
dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_uscaled,Crash
|
2021-03-18 11:50:37 +00:00
|
|
|
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.reads.1B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.reads.1B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.reads.3B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.reads.3B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.writes.1B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.writes.1B_in_memory_with_scalar_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.writes.1B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.writes.1B_in_memory_with_vec4_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.writes.3B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.writes.3B_in_memory_with_scalar_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.writes.3B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.compute.writes.3B_in_memory_with_vec4_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.reads.fragment.1B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.reads.fragment.1B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.reads.fragment.3B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.reads.fragment.3B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.reads.vertex.1B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.reads.vertex.1B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.reads.vertex.3B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.reads.vertex.3B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.fragment.1B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.fragment.1B_in_memory_with_scalar_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.fragment.1B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.fragment.1B_in_memory_with_vec4_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.fragment.3B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.fragment.3B_in_memory_with_scalar_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.fragment.3B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.fragment.3B_in_memory_with_vec4_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.vertex.1B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.vertex.1B_in_memory_with_scalar_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.vertex.1B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.vertex.1B_in_memory_with_vec4_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.vertex.3B_in_memory_with_scalar_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.vertex.3B_in_memory_with_scalar_u64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.vertex.3B_in_memory_with_vec4_s64,Fail
|
|
|
|
dEQP-VK.robustness.buffer_access.through_pointers.graphics.writes.vertex.3B_in_memory_with_vec4_u64,Fail
|