mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 04:58:05 +02:00
zink: only do pre-sync transfer barrier after a renderpass
this is otherwise pointless and (for swapchain images) broken
(because they may never have acquired an image)
discovered by @valentine
cc: mesa-stable
(cherry picked from commit d47ba92d42)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40092>
This commit is contained in:
parent
545509553a
commit
499a74569f
5 changed files with 4 additions and 68 deletions
|
|
@ -2794,7 +2794,7 @@
|
|||
"description": "zink: only do pre-sync transfer barrier after a renderpass",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null,
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Please include a comment with the log message and a testcase triggering each
|
||||
# VUID at the bottom of the file.
|
||||
khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,VUID-vkCmdDrawMultiEXT-None-02699,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-vkCmdPipelineBarrier2-shaderTileImageColorReadAccess-08718,VUID-VkGraphicsPipelineCreateInfo-flags-06482,VUID-vkCmdPipelineBarrier2-None-08719,VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474,VUID-vkDestroyDevice-device-05137,VUID-VkRectLayerKHR-offset-04864,VUID-vkAcquireNextImageKHR-semaphore-01779,VUID-vkQueueSubmit-pSignalSemaphores-00067,VUID-VkImageMemoryBarrier2-srcAccessMask-07454,UNASSIGNED-GeneralParameterError-RequiredHandle,VUID-VkImageMemoryBarrier2-image-parameter,VUID-vkCmdDrawMultiIndexedEXT-None-10909,VUID-VkDescriptorGetInfoEXT-type-12223,VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911,VUID-vkCmdBlitImage-srcImageLayout-00221,VUID-VkRenderingAttachmentInfo-None-12256,VUID-vkCmdBeginRendering-pRenderingInfo-09592,VUID-vkCmdCopyImage-srcImageLayout-00128
|
||||
khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,VUID-vkCmdDrawMultiEXT-None-02699,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-vkCmdPipelineBarrier2-shaderTileImageColorReadAccess-08718,VUID-VkGraphicsPipelineCreateInfo-flags-06482,VUID-vkCmdPipelineBarrier2-None-08719,VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474,VUID-vkDestroyDevice-device-05137,VUID-VkRectLayerKHR-offset-04864,VUID-vkAcquireNextImageKHR-semaphore-01779,VUID-vkQueueSubmit-pSignalSemaphores-00067,VUID-VkImageMemoryBarrier2-srcAccessMask-07454,VUID-vkCmdDrawMultiIndexedEXT-None-10909,VUID-VkDescriptorGetInfoEXT-type-12223,VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911,VUID-vkCmdBlitImage-srcImageLayout-00221,VUID-VkRenderingAttachmentInfo-None-12256,VUID-vkCmdBeginRendering-pRenderingInfo-09592,VUID-vkCmdCopyImage-srcImageLayout-00128
|
||||
khronos_validation.report_flags = error
|
||||
khronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG,VK_DBG_LAYER_ACTION_BREAK
|
||||
VK_LAYER_ENABLES=VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
|
||||
|
|
@ -104,19 +104,6 @@ khronos_validation.log_filename = stdout
|
|||
# Objects: 1
|
||||
# [0] VkCommandBuffer 0x55da40ee59e0[zink barrier cmdbuf]
|
||||
|
||||
# dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.reads.shader_storage_block.compute
|
||||
#
|
||||
# Validation Error: [ UNASSIGNED-GeneralParameterError-RequiredHandle ] | MessageID = 0x8fdcb17b
|
||||
# vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].image is VK_NULL_HANDLE.
|
||||
# Objects: 1
|
||||
# [0] VkCommandBuffer 0x563b96845900[zink barrier cmdbuf]
|
||||
|
||||
# dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.shader_storage_block.compute
|
||||
#
|
||||
# Validation Error: [ VUID-VkImageMemoryBarrier2-image-parameter ] | MessageID = 0xa2d5467b
|
||||
# vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].image Invalid VkImage Object 0x0.
|
||||
# The Vulkan spec states: image must be a valid VkImage handle (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-image-parameter)
|
||||
|
||||
# dEQP-GLES31.functional.image_load_store.buffer.atomic.add_r32ui_result
|
||||
#
|
||||
# Validation Error: [ VUID-VkDescriptorGetInfoEXT-type-12223 ] | MessageID = 0x6c684094
|
||||
|
|
|
|||
|
|
@ -27,43 +27,5 @@ wayland-dEQP-EGL.functional.resize.surface_size.stretch_height,Fail
|
|||
wayland-dEQP-EGL.functional.resize.surface_size.stretch_width,Fail
|
||||
|
||||
# Turnip-specific failures
|
||||
#
|
||||
# Looks like zink doing things wrong, hits the following VVL errors:
|
||||
# Validation Error: [ UNASSIGNED-GeneralParameterError-RequiredHandle ] | MessageID = 0x8fdcb17b
|
||||
# vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].image is VK_NULL_HANDLE.
|
||||
# Objects: 1
|
||||
# [0] VkCommandBuffer 0x55cf2bb130[zink barrier cmdbuf]
|
||||
#
|
||||
# Validation Error: [ VUID-VkImageMemoryBarrier2-image-parameter ] | MessageID = 0xa2d5467b
|
||||
# vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].image Invalid VkImage Object 0x0.
|
||||
# The Vulkan spec states: image must be a valid VkImage handle (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-image-parameter)
|
||||
x11-dEQP-EGL.functional.fence_sync.valid.egl_fence_persistent_buffer,Crash
|
||||
x11-dEQP-EGL.functional.image.modify.renderbuffer_depth16_renderbuffer_clear_depth,Fail
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.reads.local_array.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.reads.shader_storage_block.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.reads.uniform_block.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.writes.local_array.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.writes.shader_storage_block.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.writes.uniform_block.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.local_array.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.shader_storage_block.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.uniform_block.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.writes.local_array.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.writes.shader_storage_block.compute,Crash
|
||||
x11-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.writes.uniform_block.compute,Crash
|
||||
wayland-dEQP-EGL.functional.fence_sync.valid.egl_fence_persistent_buffer,Crash
|
||||
wayland-dEQP-EGL.functional.image.modify.renderbuffer_depth16_renderbuffer_clear_depth,Fail
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.reads.local_array.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.reads.shader_storage_block.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.reads.uniform_block.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.writes.local_array.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.writes.shader_storage_block.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.writes.uniform_block.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.local_array.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.shader_storage_block.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.uniform_block.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.writes.local_array.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.writes.shader_storage_block.compute,Crash
|
||||
wayland-dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.writes.uniform_block.compute,Crash
|
||||
|
||||
x11-dEQP-EGL.functional.color_clears.multi_thread.gles3.rgb888_window,Crash
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Please include a comment with the log message and a testcase triggering each
|
||||
# VUID at the bottom of the file.
|
||||
khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-vkDestroyDevice-device-05137,UNASSIGNED-Draw-primitiveTopologyPatchListRestart,VUID-vkQueueSubmit-pSignalSemaphores-00067,VUID-VkImageMemoryBarrier2-srcAccessMask-07454,UNASSIGNED-Threading-MultipleThreads-Read,VUID-vkAcquireNextImageKHR-semaphore-01779,VUID-VkSwapchainCreateInfoKHR-imageFormat-01273,VUID-VkRectLayerKHR-offset-04864,UNASSIGNED-Threading-MultipleThreads-Write,VUID-vkCmdDrawMultiIndexedEXT-None-10909,VUID-VkRenderingAttachmentInfo-None-12256,UNASSIGNED-GeneralParameterError-RequiredHandle,VUID-VkDescriptorGetInfoEXT-type-12223,VUID-VkImageMemoryBarrier2-image-parameter
|
||||
khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-vkDestroyDevice-device-05137,UNASSIGNED-Draw-primitiveTopologyPatchListRestart,VUID-vkQueueSubmit-pSignalSemaphores-00067,VUID-VkImageMemoryBarrier2-srcAccessMask-07454,UNASSIGNED-Threading-MultipleThreads-Read,VUID-vkAcquireNextImageKHR-semaphore-01779,VUID-VkSwapchainCreateInfoKHR-imageFormat-01273,VUID-VkRectLayerKHR-offset-04864,UNASSIGNED-Threading-MultipleThreads-Write,VUID-vkCmdDrawMultiIndexedEXT-None-10909,VUID-VkRenderingAttachmentInfo-None-12256,VUID-VkDescriptorGetInfoEXT-type-12223
|
||||
khronos_validation.report_flags = error
|
||||
khronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG,VK_DBG_LAYER_ACTION_BREAK
|
||||
VK_LAYER_ENABLES=VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
|
||||
|
|
@ -98,13 +98,6 @@ khronos_validation.log_filename = stdout
|
|||
# Objects: 1
|
||||
# [0] VkCommandBuffer 0xaaaae2a8e0d0[zink barrier cmdbuf]
|
||||
|
||||
# dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.reads.uniform_block.compute
|
||||
#
|
||||
# Validation Error: [ UNASSIGNED-GeneralParameterError-RequiredHandle ] | MessageID = 0x8fdcb17b
|
||||
# vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].image is VK_NULL_HANDLE.
|
||||
# Objects: 1
|
||||
# [0] VkCommandBuffer 0xaaaadfdbf4c0[zink barrier cmdbuf]
|
||||
|
||||
# dEQP-GLES3.functional.pbo.renderbuffer.rg16f_clears
|
||||
#
|
||||
# Validation Error: [ VUID-VkDescriptorGetInfoEXT-type-12223 ] | MessageID = 0x6c684094
|
||||
|
|
@ -114,9 +107,3 @@ khronos_validation.log_filename = stdout
|
|||
# The Vulkan spec states: If type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, pStorageTexelBuffer is not NULL and pStorageTexelBuffer->address is not zero, pStorageTexelBuffer->address must be a device address allocated to the application from a buffer created with the VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT usage flag set (https://docs.vulkan.org/spec/latest/chapters/descriptorsets.html#VUID-VkDescriptorGetInfoEXT-type-12223)
|
||||
# Objects: 1
|
||||
# [0] VkBuffer 0x24630000002463
|
||||
|
||||
# dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.reads.uniform_block.compute
|
||||
#
|
||||
# Validation Error: [ VUID-VkImageMemoryBarrier2-image-parameter ] | MessageID = 0xa2d5467b
|
||||
# vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].image Invalid VkImage Object 0x0.
|
||||
# The Vulkan spec states: image must be a valid VkImage handle (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-image-parameter)
|
||||
|
|
|
|||
|
|
@ -3936,7 +3936,7 @@ unbind_fb_surface(struct zink_context *ctx, const struct pipe_surface *surf, uns
|
|||
batch_ref_fb_surface(ctx, surf);
|
||||
/* this is called just before the resource loses a reference, so a refcount==1 means the resource will be destroyed */
|
||||
if (!res->fb_bind_count && res->base.b.reference.count > 1) {
|
||||
if (ctx->track_renderpasses && !ctx->blitting) {
|
||||
if (ctx->track_renderpasses && !ctx->blitting && res->obj->access & VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT) {
|
||||
pre_sync_transfer_barrier(ctx, res, false);
|
||||
}
|
||||
if (!general_layout && res->sampler_bind_count[0]) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue