From: Piotr Byszewski Date: Fri, 27 Nov 2020 10:44:40 +0000 (+0100) Subject: Test new pipeline stages from synchronization2 X-Git-Tag: upstream/1.3.5~886^2~21 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e27a3a099c4f2b6480cd674e48ebe4152e5f822c;p=platform%2Fupstream%2FVK-GL-CTS.git Test new pipeline stages from synchronization2 With this change some of SynchronizationOperations will use new pipeline stages when they are executed for synchronization2. Additionaly few new operations were added to cover new stages. Components: Vulkan VK-GL-CTS issue: 2663 Affects: dEQP-VK.synchronization.* dEQP-VK.synchronization2.* Change-Id: I6ccfbc9ec28d70035369c6f064a786c408c3afdd --- diff --git a/android/cts/master/vk-master-2020-03-01.txt b/android/cts/master/vk-master-2020-03-01.txt index e558e30..2056514 100644 --- a/android/cts/master/vk-master-2020-03-01.txt +++ b/android/cts/master/vk-master-2020-03-01.txt @@ -214302,6 +214302,10 @@ dEQP-VK.synchronization.basic.binary_semaphore.multi_queue_typed dEQP-VK.synchronization.basic.timeline_semaphore.one_queue dEQP-VK.synchronization.basic.timeline_semaphore.multi_queue dEQP-VK.synchronization.basic.timeline_semaphore.chain +dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint +dEQP-VK.synchronization.op.single_queue.fence.write_update_index_buffer_read_index_input.buffer_20 +dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint +dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -215301,6 +215305,7 @@ dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_i dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -215646,6 +215651,19 @@ dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_attachmen dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20 +dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint +dEQP-VK.synchronization.op.single_queue.barrier.write_update_index_buffer_read_index_input.buffer_20 +dEQP-VK.synchronization.op.single_queue.event.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint +dEQP-VK.synchronization.op.single_queue.event.write_update_index_buffer_read_index_input.buffer_20 +dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent +dEQP-VK.synchronization.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_concurrent +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -217644,6 +217662,8 @@ dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_in dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -218334,6 +218354,8 @@ dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_ dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt @@ -224328,6 +224350,16 @@ dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt @@ -226398,6 +226430,16 @@ dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispat dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt @@ -232392,6 +232434,16 @@ dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_re dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt @@ -234462,6 +234514,16 @@ dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_ dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer_to_image.buffer_16384 @@ -246207,6 +246269,7 @@ dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -246552,6 +246615,7 @@ dEQP-VK.synchronization2.op.single_queue.fence.write_clear_attachments_read_imag dEQP-VK.synchronization2.op.single_queue.fence.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.fence.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.fence.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -247551,6 +247615,7 @@ dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_in dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -247896,6 +247961,7 @@ dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_attachment dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -248895,6 +248961,7 @@ dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_ dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -249240,6 +249307,7 @@ dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_attachme dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.barrier.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.barrier.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.barrier.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -250239,6 +250307,7 @@ dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_re dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -250584,6 +250653,7 @@ dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_attachments_read_im dEQP-VK.synchronization2.op.single_queue.barrier.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.barrier.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.barrier.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.barrier.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.event.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.event.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.event.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -251583,6 +251653,7 @@ dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -251928,6 +251999,7 @@ dEQP-VK.synchronization2.op.single_queue.event.write_clear_attachments_read_imag dEQP-VK.synchronization2.op.single_queue.event.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.event.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.event.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.event.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -253926,6 +253998,8 @@ dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_ dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -254616,6 +254690,8 @@ dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_draw_indexed dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization2.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization2.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -256614,6 +256690,8 @@ dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_ind dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -257304,6 +257382,8 @@ dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_d dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -259302,6 +259382,8 @@ dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_i dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -259992,6 +260074,8 @@ dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization2.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fence_fd @@ -269982,6 +270066,16 @@ dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirec dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fence_fd @@ -273432,6 +273526,16 @@ dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispa dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fence_fd @@ -283422,6 +283526,16 @@ dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_r dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fence_fd @@ -286872,6 +286986,16 @@ dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization2.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer_to_image.buffer_16384 diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index 599a45d..e7cb0dd 100644 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -555665,6 +555665,7 @@ dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_indirect_read_ dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -556010,6 +556011,7 @@ dEQP-VK.synchronization.op.single_queue.fence.write_clear_attachments_read_image dEQP-VK.synchronization.op.single_queue.fence.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.fence.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.fence.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -557009,6 +557011,7 @@ dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_ind dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -557354,6 +557357,7 @@ dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_clear_attachments dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -558353,6 +558357,7 @@ dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_i dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -558698,6 +558703,7 @@ dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_attachmen dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.single_queue.barrier.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.op.single_queue.barrier.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.op.single_queue.barrier.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -559697,6 +559703,7 @@ dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_indirect_rea dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -560042,6 +560049,7 @@ dEQP-VK.synchronization.op.single_queue.barrier.write_clear_attachments_read_ima dEQP-VK.synchronization.op.single_queue.barrier.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.barrier.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.barrier.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.barrier.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.single_queue.event.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.op.single_queue.event.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.op.single_queue.event.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -561041,6 +561049,7 @@ dEQP-VK.synchronization.op.single_queue.event.write_image_compute_indirect_read_ dEQP-VK.synchronization.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.event.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -561386,6 +561395,7 @@ dEQP-VK.synchronization.op.single_queue.event.write_clear_attachments_read_image dEQP-VK.synchronization.op.single_queue.event.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.event.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.event.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.event.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -563384,6 +563394,8 @@ dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_indirect_read_i dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -564074,6 +564086,8 @@ dEQP-VK.synchronization.op.multi_queue.fence.write_indirect_buffer_draw_indexed_ dEQP-VK.synchronization.op.multi_queue.fence.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization.op.multi_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization.op.multi_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -566072,6 +566086,8 @@ dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_indi dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -566762,6 +566778,8 @@ dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_indirect_buffer_dr dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -568760,6 +568778,8 @@ dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_in dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -569450,6 +569470,8 @@ dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_ dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fd dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fence_fd @@ -579440,6 +579462,16 @@ dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fd dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fence_fd @@ -582890,6 +582922,16 @@ dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispat dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fd dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fence_fd @@ -592880,6 +592922,16 @@ dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_re dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fd dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fence_fd @@ -596330,6 +596382,16 @@ dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_ dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer_to_image.buffer_16384 @@ -608075,6 +608137,7 @@ dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -608420,6 +608483,7 @@ dEQP-VK.synchronization2.op.single_queue.fence.write_clear_attachments_read_imag dEQP-VK.synchronization2.op.single_queue.fence.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.fence.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.fence.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -609419,6 +609483,7 @@ dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_in dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -609764,6 +609829,7 @@ dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_attachment dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -610763,6 +610829,7 @@ dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_ dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -611108,6 +611175,7 @@ dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_attachme dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.barrier.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.barrier.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.barrier.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -612107,6 +612175,7 @@ dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_re dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -612452,6 +612521,7 @@ dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_attachments_read_im dEQP-VK.synchronization2.op.single_queue.barrier.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.barrier.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.barrier.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.barrier.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.event.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.event.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.event.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -613451,6 +613521,7 @@ dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -613796,6 +613867,7 @@ dEQP-VK.synchronization2.op.single_queue.event.write_clear_attachments_read_imag dEQP-VK.synchronization2.op.single_queue.event.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.event.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.event.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.event.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -615794,6 +615866,8 @@ dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_ dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -616484,6 +616558,8 @@ dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_draw_indexed dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization2.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization2.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -618482,6 +618558,8 @@ dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_ind dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -619172,6 +619250,8 @@ dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_d dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -621170,6 +621250,8 @@ dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_i dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -621860,6 +621942,8 @@ dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization2.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fence_fd @@ -631850,6 +631934,16 @@ dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirec dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fence_fd @@ -635300,6 +635394,16 @@ dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispa dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fence_fd @@ -645290,6 +645394,16 @@ dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_r dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fence_fd @@ -648740,6 +648854,16 @@ dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization2.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer_to_image.buffer_16384 diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp index 10e75e4..336731d 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp @@ -659,7 +659,7 @@ Move createImage(const vk::DeviceInterface& vkd, extent, 1u, 1u, - vk::VK_SAMPLE_COUNT_1_BIT, + resourceDesc.imageSamples, vk::VK_IMAGE_TILING_OPTIMAL, readOp.getInResourceUsageFlags() | writeOp.getOutResourceUsageFlags(), vk::VK_SHARING_MODE_EXCLUSIVE, @@ -786,7 +786,7 @@ de::MovePtr importResource (const vk::DeviceInterface& vkd, extent, 1u, 1u, - vk::VK_SAMPLE_COUNT_1_BIT, + resourceDesc.imageSamples, vk::VK_IMAGE_TILING_OPTIMAL, readOp.getInResourceUsageFlags() | writeOp.getOutResourceUsageFlags(), vk::VK_SHARING_MODE_EXCLUSIVE, @@ -838,11 +838,11 @@ void recordWriteBarrier (SynchronizationWrapperPtr synchronizationWrapper, deUint32 writeQueueFamilyIndex, const SyncInfo& readSync) { - const vk::VkPipelineStageFlags srcStageMask = writeSync.stageMask; - const vk::VkAccessFlags srcAccessMask = writeSync.accessMask; + const vk::VkPipelineStageFlags2KHR srcStageMask = writeSync.stageMask; + const vk::VkAccessFlags2KHR srcAccessMask = writeSync.accessMask; - const vk::VkPipelineStageFlags dstStageMask = readSync.stageMask; - const vk::VkAccessFlags dstAccessMask = readSync.accessMask; + const vk::VkPipelineStageFlags2KHR dstStageMask = readSync.stageMask; + const vk::VkAccessFlags2KHR dstAccessMask = readSync.accessMask; if (resource.getType() == RESOURCE_TYPE_IMAGE) { @@ -886,11 +886,11 @@ void recordReadBarrier (SynchronizationWrapperPtr synchronizationWrapper, const SyncInfo& readSync, deUint32 readQueueFamilyIndex) { - const vk::VkPipelineStageFlags srcStageMask = readSync.stageMask; - const vk::VkAccessFlags srcAccessMask = readSync.accessMask; + const vk::VkPipelineStageFlags2KHR srcStageMask = readSync.stageMask; + const vk::VkAccessFlags2KHR srcAccessMask = readSync.accessMask; - const vk::VkPipelineStageFlags dstStageMask = readSync.stageMask; - const vk::VkAccessFlags dstAccessMask = readSync.accessMask; + const vk::VkPipelineStageFlags2KHR dstStageMask = readSync.stageMask; + const vk::VkAccessFlags2KHR dstAccessMask = readSync.accessMask; if (resource.getType() == RESOURCE_TYPE_IMAGE) { diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.cpp index 79e340d..333f302 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.cpp @@ -280,12 +280,12 @@ VkPipelineStageFlags pipelineStageFlagsFromShaderStageFlagBits (const VkShaderSt { switch (shaderStage) { - case VK_SHADER_STAGE_VERTEX_BIT: return VK_PIPELINE_STAGE_VERTEX_SHADER_BIT; - case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT: return VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT; - case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: return VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT; - case VK_SHADER_STAGE_GEOMETRY_BIT: return VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT; - case VK_SHADER_STAGE_FRAGMENT_BIT: return VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; - case VK_SHADER_STAGE_COMPUTE_BIT: return VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT; + case VK_SHADER_STAGE_VERTEX_BIT: return VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR; + case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT: return VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR; + case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: return VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR; + case VK_SHADER_STAGE_GEOMETRY_BIT: return VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR; + case VK_SHADER_STAGE_FRAGMENT_BIT: return VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR; + case VK_SHADER_STAGE_COMPUTE_BIT: return VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR; // Other usages are probably an error, so flag that. default: @@ -295,13 +295,22 @@ VkPipelineStageFlags pipelineStageFlagsFromShaderStageFlagBits (const VkShaderSt } //! Fill destination buffer with a repeating pattern. -void fillPattern (void* const pData, const VkDeviceSize size) +void fillPattern (void* const pData, const VkDeviceSize size, bool useIndexPattern = false) { - static const deUint8 pattern[] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31 }; - deUint8* const pBytes = static_cast(pData); + // There are two pattern options - most operations use primePattern, + // indexPattern is only needed for testing vertex index bufffer. + static const deUint8 primePattern[] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31 }; + static const deUint32 indexPattern[] = { 0, 1, 2, 3, 4 }; + + const deUint8* pattern = (useIndexPattern ? reinterpret_cast(indexPattern) + : primePattern); + const deUint32 patternSize = static_cast(useIndexPattern + ? DE_LENGTH_OF_ARRAY(indexPattern)*sizeof(deUint32) + : DE_LENGTH_OF_ARRAY(primePattern)); + deUint8* const pBytes = static_cast(pData); for (deUint32 i = 0; i < size; ++i) - pBytes[i] = pattern[i % DE_LENGTH_OF_ARRAY(pattern)]; + pBytes[i] = pattern[i % patternSize]; } //! Get size in bytes of a pixel buffer with given extent. @@ -469,6 +478,7 @@ enum BufferOp { BUFFER_OP_FILL, BUFFER_OP_UPDATE, + BUFFER_OP_UPDATE_WITH_INDEX_PATTERN, }; class Implementation : public Operation @@ -497,10 +507,9 @@ public: { fillPattern(&m_data[0], m_data.size()); } - else + else if(m_bufferOp == BUFFER_OP_UPDATE_WITH_INDEX_PATTERN) { - // \todo Really?? - // Do nothing + fillPattern(&m_data[0], m_data.size(), true); } } @@ -514,10 +523,10 @@ public: SynchronizationWrapperPtr synchronizationWrapper = getSynchronizationWrapper(m_context.getSynchronizationType(), vk, DE_FALSE); const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask m_resource.getBuffer().handle, // VkBuffer buffer 0u, // VkDeviceSize offset m_resource.getBuffer().size // VkDeviceSize size @@ -525,13 +534,8 @@ public: VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, &bufferMemoryBarrier2); synchronizationWrapper->cmdPipelineBarrier(cmdBuffer, &dependencyInfo); } - else if (m_bufferOp == BUFFER_OP_UPDATE) - vk.cmdUpdateBuffer(cmdBuffer, m_resource.getBuffer().handle, m_resource.getBuffer().offset, m_resource.getBuffer().size, reinterpret_cast(&m_data[0])); else - { - // \todo Really?? - // Do nothing - } + vk.cmdUpdateBuffer(cmdBuffer, m_resource.getBuffer().handle, m_resource.getBuffer().offset, m_resource.getBuffer().size, reinterpret_cast(&m_data[0])); } SyncInfo getInSyncInfo (void) const @@ -543,9 +547,9 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; @@ -581,8 +585,8 @@ public: : m_resourceDesc (resourceDesc) , m_bufferOp (bufferOp) { - DE_ASSERT(m_bufferOp == BUFFER_OP_FILL || m_bufferOp == BUFFER_OP_UPDATE); - DE_ASSERT(m_resourceDesc.type == RESOURCE_TYPE_BUFFER); + DE_ASSERT(m_bufferOp == BUFFER_OP_FILL || m_bufferOp == BUFFER_OP_UPDATE || m_bufferOp == BUFFER_OP_UPDATE_WITH_INDEX_PATTERN); + DE_ASSERT(m_resourceDesc.type == RESOURCE_TYPE_BUFFER || m_resourceDesc.type == RESOURCE_TYPE_INDEX_BUFFER); } deUint32 getInResourceUsageFlags (void) const @@ -663,10 +667,10 @@ public: // Insert a barrier so copied data is available to the host const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_HOST_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_HOST_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_HOST_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_HOST_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask **m_hostBuffer, // VkBuffer buffer 0u, // VkDeviceSize offset m_resource.getBuffer().size // VkDeviceSize size @@ -678,10 +682,10 @@ public: { // Insert a barrier so buffer data is available to the device //const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( - // VK_PIPELINE_STAGE_HOST_BIT, // VkPipelineStageFlags2KHR srcStageMask - // VK_ACCESS_HOST_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - // VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - // VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + // VK_PIPELINE_STAGE_2_HOST_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + // VK_ACCESS_2_HOST_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + // VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + // VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask // **m_hostBuffer, // VkBuffer buffer // 0u, // VkDeviceSize offset // m_resource.getBuffer().size // VkDeviceSize size @@ -695,24 +699,24 @@ public: SyncInfo getInSyncInfo (void) const { - const VkAccessFlags access = (m_mode == ACCESS_MODE_READ ? VK_ACCESS_TRANSFER_READ_BIT : 0); + const VkAccessFlags access = (m_mode == ACCESS_MODE_READ ? VK_ACCESS_2_TRANSFER_READ_BIT_KHR : 0); const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - access, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + access, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } SyncInfo getOutSyncInfo (void) const { - const VkAccessFlags access = (m_mode == ACCESS_MODE_WRITE ? VK_ACCESS_TRANSFER_WRITE_BIT : 0); + const VkAccessFlags access = (m_mode == ACCESS_MODE_WRITE ? VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR : 0); const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - access, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + access, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -798,9 +802,9 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -809,9 +813,9 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -873,7 +877,7 @@ public: } // CopyBuffer ns -namespace CopyBlitImage +namespace CopyBlitResolveImage { class ImplementationBase : public Operation @@ -882,6 +886,9 @@ public: //! Copy/Blit/Resolve etc. operation virtual void recordCopyCommand (const VkCommandBuffer cmdBuffer) = 0; + //! Get source stage mask that is used during read - added to test synchronization2 new stage masks + virtual VkPipelineStageFlags2KHR getReadSrcStageMask() const = 0; + ImplementationBase (OperationContext& context, Resource& resource, const AccessMode mode) : m_context (context) , m_resource (resource) @@ -919,10 +926,10 @@ public: // Staging image layout { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout **m_image, // VkImage image @@ -939,10 +946,10 @@ public: // Staging image layout const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + getReadSrcStageMask(), // VkPipelineStageFlags2KHR srcStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, // VkImageLayout newLayout **m_image, // VkImage image @@ -956,10 +963,10 @@ public: // Insert a barrier so copied data is available to the host const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_HOST_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_HOST_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_HOST_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_HOST_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask **m_hostBuffer, // VkBuffer buffer 0u, // VkDeviceSize offset m_bufferSize // VkDeviceSize size @@ -975,10 +982,10 @@ public: // Staging image layout { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, // VkImageLayout newLayout **m_image, // VkImage image @@ -991,10 +998,10 @@ public: // Resource image layout { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask - (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + (VkAccessFlags2KHR)0, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout m_resource.getImage().handle, // VkImage image @@ -1011,26 +1018,26 @@ public: SyncInfo getInSyncInfo (void) const { - const VkAccessFlags access = (m_mode == ACCESS_MODE_READ ? VK_ACCESS_TRANSFER_READ_BIT : VK_ACCESS_TRANSFER_WRITE_BIT); - const VkImageLayout layout = (m_mode == ACCESS_MODE_READ ? VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL : VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); - const SyncInfo syncInfo = + const VkAccessFlags2KHR access = (m_mode == ACCESS_MODE_READ ? VK_ACCESS_2_TRANSFER_READ_BIT_KHR : VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR); + const VkImageLayout layout = (m_mode == ACCESS_MODE_READ ? VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL : VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); + const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - access, // VkAccessFlags accessMask; - layout, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + access, // VkAccessFlags accessMask; + layout, // VkImageLayout imageLayout; }; return syncInfo; } SyncInfo getOutSyncInfo (void) const { - const VkAccessFlags access = (m_mode == ACCESS_MODE_READ ? VK_ACCESS_TRANSFER_READ_BIT : VK_ACCESS_TRANSFER_WRITE_BIT); - const VkImageLayout layout = (m_mode == ACCESS_MODE_READ ? VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL : VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); - const SyncInfo syncInfo = + const VkAccessFlags2KHR access = (m_mode == ACCESS_MODE_READ ? VK_ACCESS_2_TRANSFER_READ_BIT_KHR : VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR); + const VkImageLayout layout = (m_mode == ACCESS_MODE_READ ? VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL : VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); + const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - access, // VkAccessFlags accessMask; - layout, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + access, // VkAccessFlags accessMask; + layout, // VkImageLayout imageLayout; }; return syncInfo; } @@ -1118,13 +1125,20 @@ public: } } + VkPipelineStageFlags2KHR getReadSrcStageMask() const + { + return (m_context.getSynchronizationType() == SynchronizationType::LEGACY) ? VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR : VK_PIPELINE_STAGE_2_BLIT_BIT_KHR; + } + + private: const VkImageBlit m_blitRegion; }; -VkImageCopy makeImageCopyRegion (const Resource& resource) +template +ImageCopyOrResolve makeImageRegion (const Resource& resource) { - const VkImageCopy imageCopyRegion = + return { resource.getImage().subresourceLayers, // VkImageSubresourceLayers srcSubresource; makeOffset3D(0, 0, 0), // VkOffset3D srcOffset; @@ -1132,7 +1146,6 @@ VkImageCopy makeImageCopyRegion (const Resource& resource) makeOffset3D(0, 0, 0), // VkOffset3D dstOffset; resource.getImage().extent, // VkExtent3D extent; }; - return imageCopyRegion; } class CopyImplementation : public ImplementationBase @@ -1140,7 +1153,7 @@ class CopyImplementation : public ImplementationBase public: CopyImplementation (OperationContext& context, Resource& resource, const AccessMode mode) : ImplementationBase (context, resource, mode) - , m_imageCopyRegion (makeImageCopyRegion(m_resource)) + , m_imageCopyRegion (makeImageRegion(m_resource)) { } @@ -1160,14 +1173,47 @@ public: } } + VkPipelineStageFlags2KHR getReadSrcStageMask() const + { + return (m_context.getSynchronizationType() == SynchronizationType::LEGACY) ? VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR : VK_PIPELINE_STAGE_2_COPY_BIT_KHR; + } + private: const VkImageCopy m_imageCopyRegion; }; +class ResolveImplementation : public ImplementationBase +{ +public: + ResolveImplementation(OperationContext& context, Resource& resource, const AccessMode mode) + : ImplementationBase (context, resource, mode) + , m_imageResolveRegion (makeImageRegion(resource)) + { + DE_ASSERT(m_mode == ACCESS_MODE_READ); + } + + void recordCopyCommand(const VkCommandBuffer cmdBuffer) + { + const DeviceInterface& vk = m_context.getDeviceInterface(); + + // Resource Image -> Staging image + vk.cmdResolveImage(cmdBuffer, m_resource.getImage().handle, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, **m_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1u, &m_imageResolveRegion); + } + + VkPipelineStageFlags2KHR getReadSrcStageMask() const + { + return (m_context.getSynchronizationType() == SynchronizationType::LEGACY) ? VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR : VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR; + } + +private: + VkImageResolve m_imageResolveRegion; +}; + enum Type { TYPE_COPY, TYPE_BLIT, + TYPE_RESOLVE, }; class Support : public OperationSupport @@ -1180,7 +1226,7 @@ public: DE_ASSERT(resourceDesc.type == RESOURCE_TYPE_IMAGE); const bool isDepthStencil = isDepthStencilFormat(resourceDesc.imageFormat); - m_requiredQueueFlags = (isDepthStencil || m_type == TYPE_BLIT ? VK_QUEUE_GRAPHICS_BIT : VK_QUEUE_TRANSFER_BIT); + m_requiredQueueFlags = (isDepthStencil || m_type != TYPE_COPY ? VK_QUEUE_GRAPHICS_BIT : VK_QUEUE_TRANSFER_BIT); // Don't blit depth/stencil images. DE_ASSERT(m_type != TYPE_BLIT || !isDepthStencil); @@ -1206,8 +1252,10 @@ public: { if (m_type == TYPE_COPY) return de::MovePtr(new CopyImplementation(context, resource, m_mode)); - else + else if (m_type == TYPE_BLIT) return de::MovePtr(new BlitImplementation(context, resource, m_mode)); + else + return de::MovePtr(new ResolveImplementation(context, resource, m_mode)); } de::MovePtr build (OperationContext&, Resource&, Resource&) const @@ -1252,9 +1300,9 @@ public: { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask - (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask + (VkAccessFlags2KHR)0, // VkAccessFlags2KHR srcAccessMask VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout m_outResource.getImage().handle, // VkImage image @@ -1275,7 +1323,7 @@ public: const SyncInfo syncInfo = { VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags accessMask; + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags accessMask; VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, // VkImageLayout imageLayout; }; return syncInfo; @@ -1286,7 +1334,7 @@ public: const SyncInfo syncInfo = { VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags accessMask; + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags accessMask; VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout imageLayout; }; return syncInfo; @@ -1317,7 +1365,7 @@ public: : m_context (context) , m_inResource (inResource) , m_outResource (outResource) - , m_imageCopyRegion (makeImageCopyRegion(m_inResource)) + , m_imageCopyRegion (makeImageRegion(m_inResource)) { DE_ASSERT(m_inResource.getType() == RESOURCE_TYPE_IMAGE); DE_ASSERT(m_outResource.getType() == RESOURCE_TYPE_IMAGE); @@ -1333,7 +1381,7 @@ public: VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout m_outResource.getImage().handle, // VkImage image @@ -1354,7 +1402,7 @@ public: const SyncInfo syncInfo = { VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags accessMask; + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags accessMask; VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, // VkImageLayout imageLayout; }; return syncInfo; @@ -1365,7 +1413,7 @@ public: const SyncInfo syncInfo = { VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags accessMask; + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags accessMask; VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout imageLayout; }; return syncInfo; @@ -1508,7 +1556,7 @@ public: VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout newLayout **m_colorAttachmentImage, // VkImage image @@ -1694,9 +1742,9 @@ public: // Insert a barrier so data written by the shader is available to the host const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( m_pipelineStage, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_SHADER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask + VK_ACCESS_2_SHADER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask VK_PIPELINE_STAGE_HOST_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_HOST_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_HOST_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask **m_hostBuffer, // VkBuffer buffer 0u, // VkDeviceSize offset m_resource.getBuffer().size // VkDeviceSize size @@ -1708,10 +1756,10 @@ public: SyncInfo getInSyncInfo (void) const { - const VkAccessFlags accessFlags = (m_mode == ACCESS_MODE_READ ? (m_bufferType == BUFFER_TYPE_UNIFORM ? VK_ACCESS_UNIFORM_READ_BIT - : VK_ACCESS_SHADER_READ_BIT) - : VK_ACCESS_SHADER_WRITE_BIT); - const SyncInfo syncInfo = + const VkAccessFlags2KHR accessFlags = (m_mode == ACCESS_MODE_READ ? (m_bufferType == BUFFER_TYPE_UNIFORM ? VK_ACCESS_2_UNIFORM_READ_BIT_KHR + : VK_ACCESS_2_SHADER_READ_BIT_KHR) + : VK_ACCESS_2_SHADER_WRITE_BIT_KHR); + const SyncInfo syncInfo = { m_pipelineStage, // VkPipelineStageFlags stageMask; accessFlags, // VkAccessFlags accessMask; @@ -1722,7 +1770,7 @@ public: SyncInfo getOutSyncInfo (void) const { - const VkAccessFlags accessFlags = m_mode == ACCESS_MODE_WRITE ? VK_ACCESS_SHADER_WRITE_BIT : 0; + const VkAccessFlags accessFlags = m_mode == ACCESS_MODE_WRITE ? VK_ACCESS_2_SHADER_WRITE_BIT_KHR : 0; const SyncInfo syncInfo = { m_pipelineStage, // VkPipelineStageFlags stageMask; @@ -1866,7 +1914,7 @@ public: VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask m_pipelineStage, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_SHADER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_SHADER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout newLayout *m_dstImage, // VkImage image @@ -1885,7 +1933,7 @@ public: VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout *m_srcImage, // VkImage image @@ -1902,9 +1950,9 @@ public: { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask m_pipelineStage, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_SHADER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_SHADER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout newLayout *m_srcImage, // VkImage image @@ -1927,9 +1975,9 @@ public: { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( m_pipelineStage, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_SHADER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask + VK_ACCESS_2_SHADER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, // VkImageLayout newLayout *m_dstImage, // VkImage image @@ -1946,9 +1994,9 @@ public: { const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask VK_PIPELINE_STAGE_HOST_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_HOST_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_HOST_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask **m_hostBuffer, // VkBuffer buffer 0u, // VkDeviceSize offset m_hostBufferSizeBytes // VkDeviceSize size @@ -1961,7 +2009,7 @@ public: SyncInfo getInSyncInfo (void) const { - const VkAccessFlags accessFlags = (m_mode == ACCESS_MODE_READ ? VK_ACCESS_SHADER_READ_BIT : 0); + const VkAccessFlags accessFlags = (m_mode == ACCESS_MODE_READ ? VK_ACCESS_2_SHADER_READ_BIT_KHR : 0); const SyncInfo syncInfo = { m_pipelineStage, // VkPipelineStageFlags stageMask; @@ -1973,7 +2021,7 @@ public: SyncInfo getOutSyncInfo (void) const { - const VkAccessFlags accessFlags = (m_mode == ACCESS_MODE_WRITE ? VK_ACCESS_SHADER_WRITE_BIT : 0); + const VkAccessFlags accessFlags = (m_mode == ACCESS_MODE_WRITE ? VK_ACCESS_2_SHADER_WRITE_BIT_KHR : 0); const SyncInfo syncInfo = { m_pipelineStage, // VkPipelineStageFlags stageMask; @@ -2408,9 +2456,9 @@ public: { const SyncInfo syncInfo = { - m_pipelineStage, // VkPipelineStageFlags stageMask; - VK_ACCESS_SHADER_READ_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + m_pipelineStage, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_SHADER_READ_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -2419,9 +2467,9 @@ public: { const SyncInfo syncInfo = { - m_pipelineStage, // VkPipelineStageFlags stageMask; - VK_ACCESS_SHADER_WRITE_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + m_pipelineStage, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_SHADER_WRITE_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -2610,7 +2658,7 @@ public: VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask m_pipelineStage, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_SHADER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_SHADER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout newLayout m_outResource.getImage().handle, // VkImage image @@ -2620,7 +2668,7 @@ public: VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask m_pipelineStage, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_SHADER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_SHADER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout newLayout m_inResource.getImage().handle, // VkImage image @@ -2650,9 +2698,9 @@ public: { const SyncInfo syncInfo = { - m_pipelineStage, // VkPipelineStageFlags stageMask; - VK_ACCESS_SHADER_READ_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout imageLayout; + m_pipelineStage, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_SHADER_READ_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout imageLayout; }; return syncInfo; } @@ -2661,9 +2709,9 @@ public: { const SyncInfo syncInfo = { - m_pipelineStage, // VkPipelineStageFlags stageMask; - VK_ACCESS_SHADER_WRITE_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout imageLayout; + m_pipelineStage, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_SHADER_WRITE_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout imageLayout; }; return syncInfo; } @@ -2776,6 +2824,195 @@ private: const DispatchCall m_dispatchCall; }; +class MSImageImplementation : public Operation +{ +public: + MSImageImplementation(OperationContext& context, + Resource& resource) + : m_context (context) + , m_resource (resource) + , m_hostBufferSizeBytes(getPixelBufferSize(m_resource.getImage().format, m_resource.getImage().extent)) + { + const DeviceInterface& vk = m_context.getDeviceInterface(); + const InstanceInterface& vki = m_context.getInstanceInterface(); + const VkDevice device = m_context.getDevice(); + const VkPhysicalDevice physDevice = m_context.getPhysicalDevice(); + const VkPhysicalDeviceFeatures features = getPhysicalDeviceFeatures(vki, physDevice); + Allocator& allocator = m_context.getAllocator(); + + requireStorageImageSupport(vki, physDevice, m_resource.getImage().format); + if (!features.shaderStorageImageMultisample) + TCU_THROW(NotSupportedError, "Using multisample images as storage is not supported"); + + VkBufferCreateInfo bufferCreateInfo = makeBufferCreateInfo(m_hostBufferSizeBytes, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT); + m_hostBuffer = de::MovePtr(new Buffer(vk, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible)); + const Allocation& alloc = m_hostBuffer->getAllocation(); + fillPattern(alloc.getHostPtr(), m_hostBufferSizeBytes); + flushAlloc(vk, device, alloc); + + const ImageResource& image = m_resource.getImage(); + const VkImageViewType viewType = getImageViewType(image.imageType); + m_imageView = makeImageView(vk, device, image.handle, viewType, image.format, image.subresourceRange); + + // Prepare descriptors + { + m_descriptorSetLayout = DescriptorSetLayoutBuilder() + .addSingleBinding(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_SHADER_STAGE_COMPUTE_BIT) + .addSingleBinding(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_SHADER_STAGE_COMPUTE_BIT) + .build(vk, device); + + m_descriptorPool = DescriptorPoolBuilder() + .addType(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER) + .addType(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE) + .build(vk, device, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u); + + m_descriptorSet = makeDescriptorSet(vk, device, *m_descriptorPool, *m_descriptorSetLayout); + + const VkDescriptorBufferInfo bufferInfo = makeDescriptorBufferInfo(**m_hostBuffer, 0u, m_hostBufferSizeBytes); + const VkDescriptorImageInfo imageInfo = makeDescriptorImageInfo(DE_NULL, *m_imageView, VK_IMAGE_LAYOUT_GENERAL); + + DescriptorSetUpdateBuilder() + .writeSingle(*m_descriptorSet, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &bufferInfo) + .writeSingle(*m_descriptorSet, DescriptorSetUpdateBuilder::Location::binding(1u), VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, &imageInfo) + .update(vk, device); + } + + // Create pipeline + const Unique shaderModule(createShaderModule(vk, device, context.getBinaryCollection().get("comp"), (VkShaderModuleCreateFlags)0)); + m_pipelineLayout = makePipelineLayout (vk, device, *m_descriptorSetLayout); + m_pipeline = makeComputePipeline(vk, device, *m_pipelineLayout, *shaderModule, DE_NULL, context.getPipelineCacheData()); + } + + void recordCommands(const VkCommandBuffer cmdBuffer) + { + const DeviceInterface& vk = m_context.getDeviceInterface(); + SynchronizationWrapperPtr synchronizationWrapper = getSynchronizationWrapper(m_context.getSynchronizationType(), vk, DE_FALSE); + + // change image layout + { + const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_SHADER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout + VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout newLayout + m_resource.getImage().handle, // VkImage image + m_resource.getImage().subresourceRange // VkImageSubresourceRange subresourceRange + ); + VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, &imageMemoryBarrier2); + synchronizationWrapper->cmdPipelineBarrier(cmdBuffer, &dependencyInfo); + } + + // execute shader + vk.cmdBindPipeline(cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, *m_pipeline); + vk.cmdBindDescriptorSets(cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, *m_pipelineLayout, 0u, 1u, &*m_descriptorSet, 0u, DE_NULL); + vk.cmdDispatch(cmdBuffer, m_resource.getImage().extent.width, m_resource.getImage().extent.height, 1u); + } + + SyncInfo getInSyncInfo(void) const + { + DE_ASSERT(false); + return emptySyncInfo; + } + + SyncInfo getOutSyncInfo(void) const + { + return + { + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_SHADER_WRITE_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout imageLayout; + }; + } + + Data getData(void) const + { + return getHostBufferData(m_context, *m_hostBuffer, m_hostBufferSizeBytes); + } + + void setData(const Data&) + { + DE_ASSERT(false); + } + +private: + OperationContext& m_context; + Resource& m_resource; + Move m_imageView; + + const VkDeviceSize m_hostBufferSizeBytes; + de::MovePtr m_hostBuffer; + + Move m_descriptorPool; + Move m_descriptorSetLayout; + Move m_descriptorSet; + Move m_pipelineLayout; + Move m_pipeline; +}; + +class MSImageSupport : public OperationSupport +{ +public: + MSImageSupport(const ResourceDescription& resourceDesc) + : m_resourceDesc (resourceDesc) + { + DE_ASSERT(m_resourceDesc.type == RESOURCE_TYPE_IMAGE); + } + + void initPrograms (SourceCollections& programCollection) const + { + std::stringstream source; + source << + "#version 440\n" + "\n" + "layout(local_size_x = 1) in;\n" + "layout(set = 0, binding = 0, std430) readonly buffer Input {\n" + " uint data[];\n" + "} inData;\n" + "layout(set = 0, binding = 1, r32ui) writeonly uniform uimage2DMS msImage;\n" + "\n" + "void main (void)\n" + "{\n" + " int gx = int(gl_GlobalInvocationID.x);\n" + " int gy = int(gl_GlobalInvocationID.y);\n" + " uint value = inData.data[gy * " << m_resourceDesc.size.x() << " + gx];\n" + " for (int sampleNdx = 0; sampleNdx < " << m_resourceDesc.imageSamples << "; ++sampleNdx)\n" + " imageStore(msImage, ivec2(gx, gy), sampleNdx, uvec4(value));\n" + "}\n"; + programCollection.glslSources.add("comp") << glu::ComputeSource(source.str().c_str()); + } + + deUint32 getInResourceUsageFlags (void) const + { + return 0; + } + + deUint32 getOutResourceUsageFlags (void) const + { + return VK_IMAGE_USAGE_STORAGE_BIT; + } + + VkQueueFlags getQueueFlags (const OperationContext&) const + { + return VK_QUEUE_COMPUTE_BIT; + } + + de::MovePtr build (OperationContext& context, Resource& resource) const + { + return de::MovePtr(new MSImageImplementation(context, resource)); + } + + de::MovePtr build (OperationContext&, Resource&, Resource&) const + { + DE_ASSERT(0); + return de::MovePtr(); + } + +private: + const ResourceDescription m_resourceDesc; +}; + } // ShaderAccess ns namespace CopyBufferToImage @@ -2810,10 +3047,10 @@ public: SynchronizationWrapperPtr synchronizationWrapper = getSynchronizationWrapper(m_context.getSynchronizationType(), vk, DE_FALSE); const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout m_resource.getImage().handle, // VkImage image @@ -2834,8 +3071,8 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags accessMask; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags accessMask; VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout imageLayout; }; return syncInfo; @@ -2896,10 +3133,10 @@ public: // Resource -> Image { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout **m_image, // VkImage image @@ -2913,10 +3150,10 @@ public: // Image -> Host buffer { const VkImageMemoryBarrier2KHR imageLayoutBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, // VkImageLayout newLayout **m_image, // VkImage image @@ -2928,10 +3165,10 @@ public: vk.cmdCopyImageToBuffer(cmdBuffer, **m_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, **m_hostBuffer, 1u, ©Region); const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_HOST_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_HOST_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_HOST_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_HOST_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask **m_hostBuffer, // VkBuffer buffer 0u, // VkDeviceSize offset m_resource.getBuffer().size // VkDeviceSize size @@ -2945,9 +3182,9 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -3055,19 +3292,19 @@ public: SynchronizationWrapperPtr synchronizationWrapper = getSynchronizationWrapper(m_context.getSynchronizationType(), vk, DE_FALSE); const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask m_inResource.getBuffer().handle, // VkBuffer buffer 0u, // VkDeviceSize offset m_inResource.getBuffer().size // VkDeviceSize size ); const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout m_outResource.getImage().handle, // VkImage image @@ -3083,8 +3320,8 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags accessMask; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags accessMask; VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, // VkImageLayout imageLayout; }; return syncInfo; @@ -3094,8 +3331,8 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags accessMask; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags accessMask; VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout imageLayout; }; return syncInfo; @@ -3212,10 +3449,10 @@ public: // Host buffer -> Image { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout **m_image, // VkImage image @@ -3229,10 +3466,10 @@ public: // Image -> Resource { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, // VkImageLayout newLayout **m_image, // VkImage image @@ -3254,9 +3491,9 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -3314,10 +3551,10 @@ public: // Insert a barrier so data written by the transfer is available to the host { const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_HOST_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_HOST_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_HOST_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_HOST_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask **m_hostBuffer, // VkBuffer buffer 0u, // VkDeviceSize offset VK_WHOLE_SIZE // VkDeviceSize size @@ -3331,8 +3568,8 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags accessMask; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags accessMask; VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, // VkImageLayout imageLayout; }; return syncInfo; @@ -3382,20 +3619,20 @@ public: { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout m_inResource.getImage().handle, // VkImage image m_inResource.getImage().subresourceRange // VkImageSubresourceRange subresourceRange ); const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask m_outResource.getBuffer().handle, // VkBuffer buffer 0u, // VkDeviceSize offset m_outResource.getBuffer().size // VkDeviceSize size @@ -3411,9 +3648,9 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_READ_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -3422,9 +3659,9 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -3530,11 +3767,15 @@ public: const DeviceInterface& vk = m_context.getDeviceInterface(); SynchronizationWrapperPtr synchronizationWrapper = getSynchronizationWrapper(m_context.getSynchronizationType(), vk, DE_FALSE); + VkPipelineStageFlags2KHR dstStageMask = VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR; + if (m_context.getSynchronizationType() == SynchronizationType::SYNCHRONIZATION2) + dstStageMask = VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR; + const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask + dstStageMask, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout m_resource.getImage().handle, // VkImage image @@ -3556,13 +3797,16 @@ public: SyncInfo getOutSyncInfo (void) const { - const SyncInfo syncInfo = + VkPipelineStageFlags2KHR stageMask = VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR; + if (m_context.getSynchronizationType() == SynchronizationType::SYNCHRONIZATION2) + stageMask = VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR; + + return { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags accessMask; + stageMask, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags accessMask; VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout imageLayout; }; - return syncInfo; } Data getData (void) const @@ -3736,14 +3980,14 @@ public: // Change color attachment image layout { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask - (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout newLayout - m_colorImage, // VkImage image - m_colorSubresourceRange // VkImageSubresourceRange subresourceRange + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout newLayout + m_colorImage, // VkImage image + m_colorSubresourceRange // VkImageSubresourceRange subresourceRange ); VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, &imageMemoryBarrier2); synchronizationWrapper->cmdPipelineBarrier(cmdBuffer, &dependencyInfo); @@ -3797,9 +4041,9 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout imageLayout; }; return syncInfo; } @@ -4025,17 +4269,17 @@ public: SyncInfo getOutSyncInfo (void) const { SyncInfo syncInfo; - syncInfo.stageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + syncInfo.stageMask = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR; switch (m_resource.getImage().subresourceRange.aspectMask) { case VK_IMAGE_ASPECT_COLOR_BIT: - syncInfo.accessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + syncInfo.accessMask = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR; syncInfo.imageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; break; case VK_IMAGE_ASPECT_STENCIL_BIT: case VK_IMAGE_ASPECT_DEPTH_BIT: - syncInfo.accessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; + syncInfo.accessMask = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR; syncInfo.imageLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; break; default: @@ -4176,14 +4420,14 @@ public: // Change color attachment image layout { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask - (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout newLayout - **m_colorAttachmentImage, // VkImage image - m_colorImageSubresourceRange // VkImageSubresourceRange subresourceRange + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout newLayout + **m_colorAttachmentImage, // VkImage image + m_colorImageSubresourceRange // VkImageSubresourceRange subresourceRange ); VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, &imageMemoryBarrier2); synchronizationWrapper->cmdPipelineBarrier(cmdBuffer, &dependencyInfo); @@ -4332,9 +4576,9 @@ public: // Insert a barrier so data written by the shader is available to the host const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( m_pipelineStage, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_SHADER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_HOST_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_HOST_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_ACCESS_2_SHADER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_HOST_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_HOST_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask **m_hostBuffer, // VkBuffer buffer 0u, // VkDeviceSize offset m_hostBufferSizeBytes // VkDeviceSize size @@ -4347,9 +4591,9 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_INDIRECT_COMMAND_READ_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -4450,9 +4694,9 @@ public: { const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR, // VkPipelineStageFlags stageMask; + VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -4628,29 +4872,51 @@ public: namespace VertexInput { +enum DrawMode +{ + DRAW_MODE_VERTEX = 0, + DRAW_MODE_INDEXED, +}; + class Implementation : public Operation { public: - Implementation (OperationContext& context, Resource& resource) + Implementation (OperationContext& context, Resource& resource, DrawMode drawMode) : m_context (context) , m_resource (resource) + , m_drawMode (drawMode) { requireFeaturesForSSBOAccess (m_context, VK_SHADER_STAGE_VERTEX_BIT); const DeviceInterface& vk = context.getDeviceInterface(); const VkDevice device = context.getDevice(); Allocator& allocator = context.getAllocator(); + VkFormat attributeFormat = VK_FORMAT_R32G32B32A32_UINT; const VkDeviceSize dataSizeBytes = m_resource.getBuffer().size; - m_outputBuffer = de::MovePtr(new Buffer(vk, device, allocator, - makeBufferCreateInfo(dataSizeBytes, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), MemoryRequirement::HostVisible)); - + // allocate ssbo that will store data used for verification { + m_outputBuffer = de::MovePtr(new Buffer(vk, device, allocator, + makeBufferCreateInfo(dataSizeBytes, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), MemoryRequirement::HostVisible)); + const Allocation& alloc = m_outputBuffer->getAllocation(); deMemset(alloc.getHostPtr(), 0, static_cast(dataSizeBytes)); flushAlloc(vk, device, alloc); } + // allocate buffer that will be used for vertex attributes when we use resource for indices + if (m_drawMode == DRAW_MODE_INDEXED) + { + attributeFormat = VK_FORMAT_R32_UINT; + + m_inputBuffer = de::MovePtr(new Buffer(vk, device, allocator, + makeBufferCreateInfo(dataSizeBytes, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), MemoryRequirement::HostVisible)); + + const Allocation& alloc = m_inputBuffer->getAllocation(); + fillPattern(alloc.getHostPtr(), dataSizeBytes, true); + flushAlloc(vk, device, alloc); + } + m_descriptorSetLayout = DescriptorSetLayoutBuilder() .addSingleBinding (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_SHADER_STAGE_VERTEX_BIT) .build (vk, device); @@ -4683,7 +4949,7 @@ public: m_pipeline = GraphicsPipelineBuilder() .setPrimitiveTopology (VK_PRIMITIVE_TOPOLOGY_POINT_LIST) .setRenderSize (tcu::IVec2(static_cast(m_colorImageExtent.width), static_cast(m_colorImageExtent.height))) - .setVertexInputSingleAttribute (VK_FORMAT_R32G32B32A32_UINT, tcu::getPixelSize(mapVkFormat(VK_FORMAT_R32G32B32A32_UINT))) + .setVertexInputSingleAttribute (attributeFormat, tcu::getPixelSize(mapVkFormat(attributeFormat))) .setShader (vk, device, VK_SHADER_STAGE_VERTEX_BIT, context.getBinaryCollection().get("input_vert"), DE_NULL) .setShader (vk, device, VK_SHADER_STAGE_FRAGMENT_BIT, context.getBinaryCollection().get("input_frag"), DE_NULL) .build (vk, device, *m_pipelineLayout, *m_renderPass, context.getPipelineCacheData()); @@ -4698,14 +4964,14 @@ public: // Change color attachment image layout { const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // VkPipelineStageFlags2KHR srcStageMask - (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags2KHR dstAccessMask - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout newLayout - **m_colorAttachmentImage, // VkImage image - m_colorImageSubresourceRange // VkImageSubresourceRange subresourceRange + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + (VkAccessFlags)0, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, // VkAccessFlags2KHR dstAccessMask + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout newLayout + **m_colorAttachmentImage, // VkImage image + m_colorImageSubresourceRange // VkImageSubresourceRange subresourceRange ); VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, &imageMemoryBarrier2); synchronizationWrapper->cmdPipelineBarrier(cmdBuffer, &dependencyInfo); @@ -4720,22 +4986,31 @@ public: vk.cmdBindPipeline(cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline); vk.cmdBindDescriptorSets(cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayout, 0u, 1u, &m_descriptorSet.get(), 0u, DE_NULL); + + const VkDeviceSize vertexBufferOffset = 0ull; + if (m_drawMode == DRAW_MODE_VERTEX) { - const VkDeviceSize vertexBufferOffset = 0ull; + const deUint32 count = static_cast(dataSizeBytes / sizeof(tcu::UVec4)); vk.cmdBindVertexBuffers(cmdBuffer, 0u, 1u, &m_resource.getBuffer().handle, &vertexBufferOffset); + vk.cmdDraw(cmdBuffer, count, 1u, 0u, 0u); + } + else // (m_drawMode == DRAW_MODE_INDEXED) + { + const deUint32 count = static_cast(dataSizeBytes / sizeof(deUint32)); + vk.cmdBindVertexBuffers(cmdBuffer, 0u, 1u, &**m_inputBuffer, &vertexBufferOffset); + vk.cmdBindIndexBuffer(cmdBuffer, m_resource.getBuffer().handle, 0u, VK_INDEX_TYPE_UINT32); + vk.cmdDrawIndexed(cmdBuffer, count, 1, 0, 0, 0); } - - vk.cmdDraw(cmdBuffer, static_cast(dataSizeBytes / sizeof(tcu::UVec4)), 1u, 0u, 0u); endRenderPass(vk, cmdBuffer); // Insert a barrier so data written by the shader is available to the host { const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( - VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, // VkPipelineStageFlags2KHR srcStageMask - VK_ACCESS_SHADER_WRITE_BIT, // VkAccessFlags2KHR srcAccessMask - VK_PIPELINE_STAGE_HOST_BIT, // VkPipelineStageFlags2KHR dstStageMask - VK_ACCESS_HOST_READ_BIT, // VkAccessFlags2KHR dstAccessMask + VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, // VkPipelineStageFlags2KHR srcStageMask + VK_ACCESS_2_SHADER_WRITE_BIT_KHR, // VkAccessFlags2KHR srcAccessMask + VK_PIPELINE_STAGE_2_HOST_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask + VK_ACCESS_2_HOST_READ_BIT_KHR, // VkAccessFlags2KHR dstAccessMask **m_outputBuffer, // VkBuffer buffer 0u, // VkDeviceSize offset m_resource.getBuffer().size // VkDeviceSize size @@ -4747,11 +5022,28 @@ public: SyncInfo getInSyncInfo (void) const { + const bool usingIndexedDraw = (m_drawMode == DRAW_MODE_INDEXED); + VkPipelineStageFlags2KHR stageMask = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR; + VkAccessFlags2KHR accessMask = usingIndexedDraw ? VK_ACCESS_2_INDEX_READ_BIT_KHR + : VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR; + + if (m_context.getSynchronizationType() == SynchronizationType::SYNCHRONIZATION2) + { + // test new stages added with VK_KHR_synchronization2 (no need to further duplicate those tests); + // with this operation we can test pre_rasterization, index_input and attribute_input flags; + // since this operation is executed for three buffers of different size we use diferent flags depending on the size + if (m_resource.getBuffer().size > MAX_UPDATE_BUFFER_SIZE) + stageMask = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR; + else + stageMask = usingIndexedDraw ? VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR + : VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR; + } + const SyncInfo syncInfo = { - VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, // VkPipelineStageFlags stageMask; - VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, // VkAccessFlags accessMask; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; + stageMask, // VkPipelineStageFlags stageMask; + accessMask, // VkAccessFlags accessMask; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout imageLayout; }; return syncInfo; } @@ -4774,9 +5066,9 @@ public: private: OperationContext& m_context; Resource& m_resource; + DrawMode m_drawMode; + de::MovePtr m_inputBuffer; de::MovePtr m_outputBuffer; - de::MovePtr m_indexBuffer; - de::MovePtr m_indirectBuffer; Move m_renderPass; Move m_framebuffer; Move m_pipelineLayout; @@ -4794,30 +5086,45 @@ private: class Support : public OperationSupport { public: - Support (const ResourceDescription& resourceDesc) + Support(const ResourceDescription& resourceDesc, DrawMode drawMode) : m_resourceDesc (resourceDesc) + , m_drawMode (drawMode) { - DE_ASSERT(m_resourceDesc.type == RESOURCE_TYPE_BUFFER); + DE_ASSERT(m_resourceDesc.type == RESOURCE_TYPE_BUFFER || m_resourceDesc.type == RESOURCE_TYPE_INDEX_BUFFER); } void initPrograms (SourceCollections& programCollection) const { // Vertex { - int vertexStride = sizeof(tcu::UVec4); std::ostringstream src; - src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n" - << "\n" - << "layout(location = 0) in uvec4 v_in_data;\n" - << "layout(set = 0, binding = 0, std140) writeonly buffer Output {\n" - << " uvec4 data[" << m_resourceDesc.size.x()/vertexStride << "];\n" - << "} b_out;\n" - << "\n" - << "void main (void)\n" - << "{\n" - << " b_out.data[gl_VertexIndex] = v_in_data;\n" - << " gl_PointSize = 1.0f;\n" - << "}\n"; + src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"; + if (m_drawMode == DRAW_MODE_VERTEX) + { + src << "layout(location = 0) in uvec4 v_in_data;\n" + << "layout(set = 0, binding = 0, std140) writeonly buffer Output {\n" + << " uvec4 data[" << m_resourceDesc.size.x() / sizeof(tcu::UVec4) << "];\n" + << "} b_out;\n" + << "\n" + << "void main (void)\n" + << "{\n" + << " b_out.data[gl_VertexIndex] = v_in_data;\n" + << " gl_PointSize = 1.0f;\n" + << "}\n"; + } + else // DRAW_MODE_INDEXED + { + src << "layout(location = 0) in uint v_in_data;\n" + << "layout(set = 0, binding = 0, std430) writeonly buffer Output {\n" + << " uint data[" << m_resourceDesc.size.x() / sizeof(deUint32) << "];\n" + << "} b_out;\n" + << "\n" + << "void main (void)\n" + << "{\n" + << " b_out.data[gl_VertexIndex] = v_in_data;\n" + << " gl_PointSize = 1.0f;\n" + << "}\n"; + } programCollection.glslSources.add("input_vert") << glu::VertexSource(src.str()); } @@ -4838,7 +5145,7 @@ public: deUint32 getInResourceUsageFlags (void) const { - return VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; + return (m_drawMode == DRAW_MODE_VERTEX) ? VK_BUFFER_USAGE_VERTEX_BUFFER_BIT : VK_BUFFER_USAGE_INDEX_BUFFER_BIT; } deUint32 getOutResourceUsageFlags (void) const @@ -4846,15 +5153,14 @@ public: return VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; } - VkQueueFlags getQueueFlags (const OperationContext& context) const + VkQueueFlags getQueueFlags (const OperationContext&) const { - DE_UNREF(context); return VK_QUEUE_GRAPHICS_BIT; } de::MovePtr build (OperationContext& context, Resource& resource) const { - return de::MovePtr(new Implementation(context, resource)); + return de::MovePtr(new Implementation(context, resource, m_drawMode)); } de::MovePtr build (OperationContext&, Resource&, Resource&) const @@ -4865,6 +5171,7 @@ public: private: const ResourceDescription m_resourceDesc; + const DrawMode m_drawMode; }; } // VertexInput @@ -4932,7 +5239,7 @@ Resource::Resource (OperationContext& context, const ResourceDescription& desc, const VkPhysicalDevice physDevice = context.getPhysicalDevice(); Allocator& allocator = context.getAllocator(); - if (m_type == RESOURCE_TYPE_BUFFER || isIndirectBuffer(m_type)) + if (m_type == RESOURCE_TYPE_BUFFER || m_type == RESOURCE_TYPE_INDEX_BUFFER || isIndirectBuffer(m_type)) { m_bufferData.offset = 0u; m_bufferData.size = static_cast(desc.size.x()); @@ -4953,7 +5260,7 @@ Resource::Resource (OperationContext& context, const ResourceDescription& desc, m_imageData.format = desc.imageFormat; m_imageData.subresourceRange = makeImageSubresourceRange(desc.imageAspect, 0u, 1u, 0u, 1u); m_imageData.subresourceLayers = makeImageSubresourceLayers(desc.imageAspect, 0u, 0u, 1u); - VkImageCreateInfo imageInfo = makeImageCreateInfo(m_imageData.imageType, m_imageData.extent, m_imageData.format, usage); + VkImageCreateInfo imageInfo = makeImageCreateInfo(m_imageData.imageType, m_imageData.extent, m_imageData.format, usage, desc.imageSamples); imageInfo.sharingMode = sharingMode; if (queueFamilyIndex.size() > 0) { @@ -4967,6 +5274,9 @@ Resource::Resource (OperationContext& context, const ResourceDescription& desc, if (formatResult != VK_SUCCESS) TCU_THROW(NotSupportedError, "Image format is not supported"); + if ((imageFormatProperties.sampleCounts & desc.imageSamples) != desc.imageSamples) + TCU_THROW(NotSupportedError, "Requested sample count is not supported"); + m_image = de::MovePtr(new Image(vk, device, allocator, imageInfo, MemoryRequirement::Any)); m_imageData.handle = **m_image; } @@ -5055,6 +5365,10 @@ bool isResourceSupported (const OperationName opName, const ResourceDescription& case OPERATION_NAME_READ_INDIRECT_BUFFER_DISPATCH: return resourceDesc.type == RESOURCE_TYPE_INDIRECT_BUFFER_DISPATCH; + case OPERATION_NAME_WRITE_UPDATE_INDEX_BUFFER: + case OPERATION_NAME_READ_INDEX_INPUT: + return resourceDesc.type == RESOURCE_TYPE_INDEX_BUFFER; + case OPERATION_NAME_WRITE_UPDATE_BUFFER: return resourceDesc.type == RESOURCE_TYPE_BUFFER && resourceDesc.size.x() <= MAX_UPDATE_BUFFER_SIZE; @@ -5062,10 +5376,16 @@ bool isResourceSupported (const OperationName opName, const ResourceDescription& case OPERATION_NAME_WRITE_COPY_BUFFER_TO_IMAGE: case OPERATION_NAME_READ_COPY_IMAGE: case OPERATION_NAME_READ_COPY_IMAGE_TO_BUFFER: - return resourceDesc.type == RESOURCE_TYPE_IMAGE; + return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageSamples == VK_SAMPLE_COUNT_1_BIT; case OPERATION_NAME_WRITE_CLEAR_ATTACHMENTS: - return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageType != VK_IMAGE_TYPE_3D; + return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageType != VK_IMAGE_TYPE_3D + && resourceDesc.imageSamples == VK_SAMPLE_COUNT_1_BIT; + + case OPERATION_NAME_WRITE_IMAGE_COMPUTE_MULTISAMPLE: + case OPERATION_NAME_READ_RESOLVE_IMAGE: + return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageAspect == VK_IMAGE_ASPECT_COLOR_BIT + && resourceDesc.imageSamples != VK_SAMPLE_COUNT_1_BIT; case OPERATION_NAME_WRITE_BLIT_IMAGE: case OPERATION_NAME_READ_BLIT_IMAGE: @@ -5083,7 +5403,8 @@ bool isResourceSupported (const OperationName opName, const ResourceDescription& case OPERATION_NAME_READ_IMAGE_FRAGMENT: case OPERATION_NAME_READ_IMAGE_COMPUTE: case OPERATION_NAME_READ_IMAGE_COMPUTE_INDIRECT: - return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageAspect == VK_IMAGE_ASPECT_COLOR_BIT; + return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageAspect == VK_IMAGE_ASPECT_COLOR_BIT + && resourceDesc.imageSamples == VK_SAMPLE_COUNT_1_BIT; case OPERATION_NAME_READ_UBO_VERTEX: case OPERATION_NAME_READ_UBO_TESSELLATION_CONTROL: @@ -5095,17 +5416,20 @@ bool isResourceSupported (const OperationName opName, const ResourceDescription& return resourceDesc.type == RESOURCE_TYPE_BUFFER && resourceDesc.size.x() <= MAX_UBO_RANGE; case OPERATION_NAME_WRITE_CLEAR_COLOR_IMAGE: - return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageAspect == VK_IMAGE_ASPECT_COLOR_BIT; + return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageAspect == VK_IMAGE_ASPECT_COLOR_BIT + && resourceDesc.imageSamples == VK_SAMPLE_COUNT_1_BIT; case OPERATION_NAME_WRITE_CLEAR_DEPTH_STENCIL_IMAGE: - return resourceDesc.type == RESOURCE_TYPE_IMAGE && (resourceDesc.imageAspect & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)); + return resourceDesc.type == RESOURCE_TYPE_IMAGE && (resourceDesc.imageAspect & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) + && resourceDesc.imageSamples == VK_SAMPLE_COUNT_1_BIT; case OPERATION_NAME_WRITE_DRAW: case OPERATION_NAME_WRITE_DRAW_INDEXED: case OPERATION_NAME_WRITE_DRAW_INDIRECT: case OPERATION_NAME_WRITE_DRAW_INDEXED_INDIRECT: return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageType == VK_IMAGE_TYPE_2D - && (resourceDesc.imageAspect & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) == 0; + && (resourceDesc.imageAspect & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) == 0 + && resourceDesc.imageSamples == VK_SAMPLE_COUNT_1_BIT; case OPERATION_NAME_COPY_BUFFER: case OPERATION_NAME_COPY_SSBO_VERTEX: @@ -5126,7 +5450,8 @@ bool isResourceSupported (const OperationName opName, const ResourceDescription& case OPERATION_NAME_COPY_IMAGE_FRAGMENT: case OPERATION_NAME_COPY_IMAGE_COMPUTE: case OPERATION_NAME_COPY_IMAGE_COMPUTE_INDIRECT: - return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageAspect == VK_IMAGE_ASPECT_COLOR_BIT; + return resourceDesc.type == RESOURCE_TYPE_IMAGE && resourceDesc.imageAspect == VK_IMAGE_ASPECT_COLOR_BIT + && resourceDesc.imageSamples == VK_SAMPLE_COUNT_1_BIT; default: DE_ASSERT(0); @@ -5158,6 +5483,7 @@ std::string getOperationName (const OperationName opName) case OPERATION_NAME_WRITE_IMAGE_GEOMETRY: return "write_image_geometry"; case OPERATION_NAME_WRITE_IMAGE_FRAGMENT: return "write_image_fragment"; case OPERATION_NAME_WRITE_IMAGE_COMPUTE: return "write_image_compute"; + case OPERATION_NAME_WRITE_IMAGE_COMPUTE_MULTISAMPLE: return "write_image_compute_multisample"; case OPERATION_NAME_WRITE_IMAGE_COMPUTE_INDIRECT: return "write_image_compute_indirect"; case OPERATION_NAME_WRITE_CLEAR_COLOR_IMAGE: return "write_clear_color_image"; case OPERATION_NAME_WRITE_CLEAR_DEPTH_STENCIL_IMAGE: return "write_clear_depth_stencil_image"; @@ -5169,12 +5495,14 @@ std::string getOperationName (const OperationName opName) case OPERATION_NAME_WRITE_INDIRECT_BUFFER_DRAW: return "write_indirect_buffer_draw"; case OPERATION_NAME_WRITE_INDIRECT_BUFFER_DRAW_INDEXED: return "write_indirect_buffer_draw_indexed"; case OPERATION_NAME_WRITE_INDIRECT_BUFFER_DISPATCH: return "write_indirect_buffer_dispatch"; + case OPERATION_NAME_WRITE_UPDATE_INDEX_BUFFER: return "write_update_index_buffer"; case OPERATION_NAME_READ_COPY_BUFFER: return "read_copy_buffer"; case OPERATION_NAME_READ_COPY_BUFFER_TO_IMAGE: return "read_copy_buffer_to_image"; case OPERATION_NAME_READ_COPY_IMAGE_TO_BUFFER: return "read_copy_image_to_buffer"; case OPERATION_NAME_READ_COPY_IMAGE: return "read_copy_image"; case OPERATION_NAME_READ_BLIT_IMAGE: return "read_blit_image"; + case OPERATION_NAME_READ_RESOLVE_IMAGE: return "read_resolve_image"; case OPERATION_NAME_READ_UBO_VERTEX: return "read_ubo_vertex"; case OPERATION_NAME_READ_UBO_TESSELLATION_CONTROL: return "read_ubo_tess_control"; case OPERATION_NAME_READ_UBO_TESSELLATION_EVALUATION: return "read_ubo_tess_eval"; @@ -5200,6 +5528,7 @@ std::string getOperationName (const OperationName opName) case OPERATION_NAME_READ_INDIRECT_BUFFER_DRAW_INDEXED: return "read_indirect_buffer_draw_indexed"; case OPERATION_NAME_READ_INDIRECT_BUFFER_DISPATCH: return "read_indirect_buffer_dispatch"; case OPERATION_NAME_READ_VERTEX_INPUT: return "read_vertex_input"; + case OPERATION_NAME_READ_INDEX_INPUT: return "read_index_input"; case OPERATION_NAME_COPY_BUFFER: return "copy_buffer"; case OPERATION_NAME_COPY_IMAGE: return "copy_image"; @@ -5233,8 +5562,8 @@ de::MovePtr makeOperationSupport (const OperationName opName, case OPERATION_NAME_WRITE_COPY_BUFFER: return de::MovePtr(new CopyBuffer ::Support (resourceDesc, ACCESS_MODE_WRITE)); case OPERATION_NAME_WRITE_COPY_BUFFER_TO_IMAGE: return de::MovePtr(new CopyBufferToImage ::Support (resourceDesc, ACCESS_MODE_WRITE)); case OPERATION_NAME_WRITE_COPY_IMAGE_TO_BUFFER: return de::MovePtr(new CopyImageToBuffer ::Support (resourceDesc, ACCESS_MODE_WRITE)); - case OPERATION_NAME_WRITE_COPY_IMAGE: return de::MovePtr(new CopyBlitImage ::Support (resourceDesc, CopyBlitImage::TYPE_COPY, ACCESS_MODE_WRITE)); - case OPERATION_NAME_WRITE_BLIT_IMAGE: return de::MovePtr(new CopyBlitImage ::Support (resourceDesc, CopyBlitImage::TYPE_BLIT, ACCESS_MODE_WRITE)); + case OPERATION_NAME_WRITE_COPY_IMAGE: return de::MovePtr(new CopyBlitResolveImage ::Support (resourceDesc, CopyBlitResolveImage::TYPE_COPY, ACCESS_MODE_WRITE)); + case OPERATION_NAME_WRITE_BLIT_IMAGE: return de::MovePtr(new CopyBlitResolveImage ::Support (resourceDesc, CopyBlitResolveImage::TYPE_BLIT, ACCESS_MODE_WRITE)); case OPERATION_NAME_WRITE_SSBO_VERTEX: return de::MovePtr(new ShaderAccess ::BufferSupport (resourceDesc, BUFFER_TYPE_STORAGE, ACCESS_MODE_WRITE, VK_SHADER_STAGE_VERTEX_BIT)); case OPERATION_NAME_WRITE_SSBO_TESSELLATION_CONTROL: return de::MovePtr(new ShaderAccess ::BufferSupport (resourceDesc, BUFFER_TYPE_STORAGE, ACCESS_MODE_WRITE, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT)); case OPERATION_NAME_WRITE_SSBO_TESSELLATION_EVALUATION: return de::MovePtr(new ShaderAccess ::BufferSupport (resourceDesc, BUFFER_TYPE_STORAGE, ACCESS_MODE_WRITE, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)); @@ -5249,6 +5578,7 @@ de::MovePtr makeOperationSupport (const OperationName opName, case OPERATION_NAME_WRITE_IMAGE_FRAGMENT: return de::MovePtr(new ShaderAccess ::ImageSupport (resourceDesc, ACCESS_MODE_WRITE, VK_SHADER_STAGE_FRAGMENT_BIT)); case OPERATION_NAME_WRITE_IMAGE_COMPUTE: return de::MovePtr(new ShaderAccess ::ImageSupport (resourceDesc, ACCESS_MODE_WRITE, VK_SHADER_STAGE_COMPUTE_BIT)); case OPERATION_NAME_WRITE_IMAGE_COMPUTE_INDIRECT: return de::MovePtr(new ShaderAccess ::ImageSupport (resourceDesc, ACCESS_MODE_WRITE, VK_SHADER_STAGE_COMPUTE_BIT, ShaderAccess::DISPATCH_CALL_DISPATCH_INDIRECT)); + case OPERATION_NAME_WRITE_IMAGE_COMPUTE_MULTISAMPLE: return de::MovePtr(new ShaderAccess ::MSImageSupport(resourceDesc)); case OPERATION_NAME_WRITE_CLEAR_COLOR_IMAGE: return de::MovePtr(new ClearImage ::Support (resourceDesc, ClearImage::CLEAR_MODE_COLOR)); case OPERATION_NAME_WRITE_CLEAR_DEPTH_STENCIL_IMAGE: return de::MovePtr(new ClearImage ::Support (resourceDesc, ClearImage::CLEAR_MODE_DEPTH_STENCIL)); case OPERATION_NAME_WRITE_DRAW: return de::MovePtr(new Draw ::Support (resourceDesc, Draw::DRAW_CALL_DRAW)); @@ -5259,12 +5589,14 @@ de::MovePtr makeOperationSupport (const OperationName opName, case OPERATION_NAME_WRITE_INDIRECT_BUFFER_DRAW: return de::MovePtr(new IndirectBuffer ::WriteSupport (resourceDesc)); case OPERATION_NAME_WRITE_INDIRECT_BUFFER_DRAW_INDEXED: return de::MovePtr(new IndirectBuffer ::WriteSupport (resourceDesc)); case OPERATION_NAME_WRITE_INDIRECT_BUFFER_DISPATCH: return de::MovePtr(new IndirectBuffer ::WriteSupport (resourceDesc)); + case OPERATION_NAME_WRITE_UPDATE_INDEX_BUFFER: return de::MovePtr(new FillUpdateBuffer ::Support (resourceDesc, FillUpdateBuffer::BUFFER_OP_UPDATE_WITH_INDEX_PATTERN)); case OPERATION_NAME_READ_COPY_BUFFER: return de::MovePtr(new CopyBuffer ::Support (resourceDesc, ACCESS_MODE_READ)); case OPERATION_NAME_READ_COPY_BUFFER_TO_IMAGE: return de::MovePtr(new CopyBufferToImage ::Support (resourceDesc, ACCESS_MODE_READ)); case OPERATION_NAME_READ_COPY_IMAGE_TO_BUFFER: return de::MovePtr(new CopyImageToBuffer ::Support (resourceDesc, ACCESS_MODE_READ)); - case OPERATION_NAME_READ_COPY_IMAGE: return de::MovePtr(new CopyBlitImage ::Support (resourceDesc, CopyBlitImage::TYPE_COPY, ACCESS_MODE_READ)); - case OPERATION_NAME_READ_BLIT_IMAGE: return de::MovePtr(new CopyBlitImage ::Support (resourceDesc, CopyBlitImage::TYPE_BLIT, ACCESS_MODE_READ)); + case OPERATION_NAME_READ_COPY_IMAGE: return de::MovePtr(new CopyBlitResolveImage::Support (resourceDesc, CopyBlitResolveImage::TYPE_COPY, ACCESS_MODE_READ)); + case OPERATION_NAME_READ_BLIT_IMAGE: return de::MovePtr(new CopyBlitResolveImage::Support (resourceDesc, CopyBlitResolveImage::TYPE_BLIT, ACCESS_MODE_READ)); + case OPERATION_NAME_READ_RESOLVE_IMAGE: return de::MovePtr(new CopyBlitResolveImage::Support (resourceDesc, CopyBlitResolveImage::TYPE_RESOLVE, ACCESS_MODE_READ)); case OPERATION_NAME_READ_UBO_VERTEX: return de::MovePtr(new ShaderAccess ::BufferSupport (resourceDesc, BUFFER_TYPE_UNIFORM, ACCESS_MODE_READ, VK_SHADER_STAGE_VERTEX_BIT)); case OPERATION_NAME_READ_UBO_TESSELLATION_CONTROL: return de::MovePtr(new ShaderAccess ::BufferSupport (resourceDesc, BUFFER_TYPE_UNIFORM, ACCESS_MODE_READ, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT)); case OPERATION_NAME_READ_UBO_TESSELLATION_EVALUATION: return de::MovePtr(new ShaderAccess ::BufferSupport (resourceDesc, BUFFER_TYPE_UNIFORM, ACCESS_MODE_READ, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)); @@ -5289,11 +5621,12 @@ de::MovePtr makeOperationSupport (const OperationName opName, case OPERATION_NAME_READ_INDIRECT_BUFFER_DRAW: return de::MovePtr(new IndirectBuffer ::ReadSupport (resourceDesc)); case OPERATION_NAME_READ_INDIRECT_BUFFER_DRAW_INDEXED: return de::MovePtr(new IndirectBuffer ::ReadSupport (resourceDesc)); case OPERATION_NAME_READ_INDIRECT_BUFFER_DISPATCH: return de::MovePtr(new IndirectBuffer ::ReadSupport (resourceDesc)); - case OPERATION_NAME_READ_VERTEX_INPUT: return de::MovePtr(new VertexInput ::Support (resourceDesc)); + case OPERATION_NAME_READ_VERTEX_INPUT: return de::MovePtr(new VertexInput ::Support (resourceDesc, VertexInput::DRAW_MODE_VERTEX)); + case OPERATION_NAME_READ_INDEX_INPUT: return de::MovePtr(new VertexInput ::Support (resourceDesc, VertexInput::DRAW_MODE_INDEXED)); case OPERATION_NAME_COPY_BUFFER: return de::MovePtr(new CopyBuffer ::CopySupport (resourceDesc)); - case OPERATION_NAME_COPY_IMAGE: return de::MovePtr(new CopyBlitImage ::CopySupport (resourceDesc, CopyBlitImage::TYPE_COPY)); - case OPERATION_NAME_BLIT_IMAGE: return de::MovePtr(new CopyBlitImage ::CopySupport (resourceDesc, CopyBlitImage::TYPE_BLIT)); + case OPERATION_NAME_COPY_IMAGE: return de::MovePtr(new CopyBlitResolveImage::CopySupport (resourceDesc, CopyBlitResolveImage::TYPE_COPY)); + case OPERATION_NAME_BLIT_IMAGE: return de::MovePtr(new CopyBlitResolveImage::CopySupport (resourceDesc, CopyBlitResolveImage::TYPE_BLIT)); case OPERATION_NAME_COPY_SSBO_VERTEX: return de::MovePtr(new ShaderAccess ::CopyBufferSupport (resourceDesc, BUFFER_TYPE_STORAGE, VK_SHADER_STAGE_VERTEX_BIT)); case OPERATION_NAME_COPY_SSBO_TESSELLATION_CONTROL: return de::MovePtr(new ShaderAccess ::CopyBufferSupport (resourceDesc, BUFFER_TYPE_STORAGE, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT)); case OPERATION_NAME_COPY_SSBO_TESSELLATION_EVALUATION: return de::MovePtr(new ShaderAccess ::CopyBufferSupport (resourceDesc, BUFFER_TYPE_STORAGE, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)); diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.hpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.hpp index 5548d8c..9077d1d 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.hpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.hpp @@ -61,6 +61,7 @@ enum OperationName OPERATION_NAME_WRITE_IMAGE_FRAGMENT, OPERATION_NAME_WRITE_IMAGE_COMPUTE, OPERATION_NAME_WRITE_IMAGE_COMPUTE_INDIRECT, + OPERATION_NAME_WRITE_IMAGE_COMPUTE_MULTISAMPLE, OPERATION_NAME_WRITE_CLEAR_COLOR_IMAGE, OPERATION_NAME_WRITE_CLEAR_DEPTH_STENCIL_IMAGE, OPERATION_NAME_WRITE_DRAW, @@ -71,6 +72,7 @@ enum OperationName OPERATION_NAME_WRITE_INDIRECT_BUFFER_DRAW, OPERATION_NAME_WRITE_INDIRECT_BUFFER_DRAW_INDEXED, OPERATION_NAME_WRITE_INDIRECT_BUFFER_DISPATCH, + OPERATION_NAME_WRITE_UPDATE_INDEX_BUFFER, // Read operations OPERATION_NAME_READ_COPY_BUFFER, @@ -78,6 +80,7 @@ enum OperationName OPERATION_NAME_READ_COPY_IMAGE_TO_BUFFER, OPERATION_NAME_READ_COPY_IMAGE, OPERATION_NAME_READ_BLIT_IMAGE, + OPERATION_NAME_READ_RESOLVE_IMAGE, OPERATION_NAME_READ_UBO_VERTEX, OPERATION_NAME_READ_UBO_TESSELLATION_CONTROL, OPERATION_NAME_READ_UBO_TESSELLATION_EVALUATION, @@ -103,6 +106,7 @@ enum OperationName OPERATION_NAME_READ_INDIRECT_BUFFER_DRAW_INDEXED, OPERATION_NAME_READ_INDIRECT_BUFFER_DISPATCH, OPERATION_NAME_READ_VERTEX_INPUT, + OPERATION_NAME_READ_INDEX_INPUT, // Copy operations OPERATION_NAME_COPY_BUFFER, @@ -223,9 +227,9 @@ private: // write - the layout image will be in after the write operation has finished struct SyncInfo { - vk::VkPipelineStageFlags stageMask; // pipeline stage where read/write takes place - vk::VkAccessFlags accessMask; // type of access that is performed - vk::VkImageLayout imageLayout; // src (for reads) or dst (for writes) image layout + vk::VkPipelineStageFlags2KHR stageMask; // pipeline stage where read/write takes place + vk::VkAccessFlags2KHR accessMask; // type of access that is performed + vk::VkImageLayout imageLayout; // src (for reads) or dst (for writes) image layout }; struct Data diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp index 823fc88..ea9d831 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp @@ -348,7 +348,7 @@ void createBarrierMultiQueue (SynchronizationWrapperPtr synchronizationWrapper, synchronizationWrapper->cmdPipelineBarrier(cmdBuffer, &dependencyInfo); } } - else if (resource.getType() == RESOURCE_TYPE_BUFFER || isIndirectBuffer(resource.getType())) + else { VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( secondQueue ? VkPipelineStageFlags(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT) : writeSync.stageMask, diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationResources.hpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationResources.hpp index 6c7c7d5..3333397 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationResources.hpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationResources.hpp @@ -35,28 +35,32 @@ namespace synchronization static const ResourceDescription s_resources[] = { - { RESOURCE_TYPE_BUFFER, tcu::IVec4( 0x4000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, // 16 KiB (min max UBO range) - { RESOURCE_TYPE_BUFFER, tcu::IVec4(0x40000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, // 256 KiB + { RESOURCE_TYPE_BUFFER, tcu::IVec4( 0x4000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0, vk::VK_SAMPLE_COUNT_1_BIT }, // 16 KiB (min max UBO range) + { RESOURCE_TYPE_BUFFER, tcu::IVec4(0x40000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0, vk::VK_SAMPLE_COUNT_1_BIT }, // 256 KiB - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 0, 0, 0), vk::VK_IMAGE_TYPE_1D, vk::VK_FORMAT_R32_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 0, 0, 0), vk::VK_IMAGE_TYPE_1D, vk::VK_FORMAT_R32_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8_UNORM, vk::VK_IMAGE_ASPECT_COLOR_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8G8B8A8_UNORM, vk::VK_IMAGE_ASPECT_COLOR_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16G16B16A16_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R32G32B32A32_SFLOAT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8_UNORM, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8G8B8A8_UNORM, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16G16B16A16_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R32G32B32A32_SFLOAT, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(64, 64, 8, 0), vk::VK_IMAGE_TYPE_3D, vk::VK_FORMAT_R32_SFLOAT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(64, 64, 8, 0), vk::VK_IMAGE_TYPE_3D, vk::VK_FORMAT_R32_SFLOAT, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, // \note Mixed depth/stencil formats add complexity in image<->buffer transfers (packing), so we just avoid them here - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_D16_UNORM, vk::VK_IMAGE_ASPECT_DEPTH_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_D32_SFLOAT, vk::VK_IMAGE_ASPECT_DEPTH_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_S8_UINT, vk::VK_IMAGE_ASPECT_STENCIL_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_D16_UNORM, vk::VK_IMAGE_ASPECT_DEPTH_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_D32_SFLOAT, vk::VK_IMAGE_ASPECT_DEPTH_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_S8_UINT, vk::VK_IMAGE_ASPECT_STENCIL_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, // \note Special resources, when test case isn't strictly a copy and comparison of some data - { RESOURCE_TYPE_INDIRECT_BUFFER_DRAW, tcu::IVec4(sizeof(vk::VkDrawIndirectCommand), 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, - { RESOURCE_TYPE_INDIRECT_BUFFER_DRAW_INDEXED, tcu::IVec4(sizeof(vk::VkDrawIndexedIndirectCommand), 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, - { RESOURCE_TYPE_INDIRECT_BUFFER_DISPATCH, tcu::IVec4(sizeof(vk::VkDispatchIndirectCommand), 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, + { RESOURCE_TYPE_INDIRECT_BUFFER_DRAW, tcu::IVec4(sizeof(vk::VkDrawIndirectCommand), 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_INDIRECT_BUFFER_DRAW_INDEXED, tcu::IVec4(sizeof(vk::VkDrawIndexedIndirectCommand), 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_INDIRECT_BUFFER_DISPATCH, tcu::IVec4(sizeof(vk::VkDispatchIndirectCommand), 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_INDEX_BUFFER, tcu::IVec4(sizeof(deUint32) * 5, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0, vk::VK_SAMPLE_COUNT_1_BIT }, + + // \note Special multisampled image resource needed to test resolve + { RESOURCE_TYPE_IMAGE, tcu::IVec4(64, 64, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R32_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_4_BIT }, }; } // synchronization diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationSingleQueueTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationSingleQueueTests.cpp index 78ba6c4..0c7f157 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationSingleQueueTests.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationSingleQueueTests.cpp @@ -97,34 +97,34 @@ public: m_writeOp->recordCommands(*cmdBuffer); - if (m_resource->getType() == RESOURCE_TYPE_BUFFER || isIndirectBuffer(m_resource->getType())) + if (m_resource->getType() == RESOURCE_TYPE_IMAGE) { - const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( + const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( writeSync.stageMask, // VkPipelineStageFlags2KHR srcStageMask writeSync.accessMask, // VkAccessFlags2KHR srcAccessMask readSync.stageMask, // VkPipelineStageFlags2KHR dstStageMask readSync.accessMask, // VkAccessFlags2KHR dstAccessMask - m_resource->getBuffer().handle, // VkBuffer buffer - m_resource->getBuffer().offset, // VkDeviceSize offset - m_resource->getBuffer().size // VkDeviceSize size + writeSync.imageLayout, // VkImageLayout oldLayout + readSync.imageLayout, // VkImageLayout newLayout + m_resource->getImage().handle, // VkImage image + m_resource->getImage().subresourceRange // VkImageSubresourceRange subresourceRange ); - VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, &bufferMemoryBarrier2); + VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, &imageMemoryBarrier2); synchronizationWrapper->cmdSetEvent(*cmdBuffer, *event, &dependencyInfo); synchronizationWrapper->cmdWaitEvents(*cmdBuffer, 1u, &event.get(), &dependencyInfo); } - else if (m_resource->getType() == RESOURCE_TYPE_IMAGE) + else { - const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( + const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( writeSync.stageMask, // VkPipelineStageFlags2KHR srcStageMask writeSync.accessMask, // VkAccessFlags2KHR srcAccessMask readSync.stageMask, // VkPipelineStageFlags2KHR dstStageMask readSync.accessMask, // VkAccessFlags2KHR dstAccessMask - writeSync.imageLayout, // VkImageLayout oldLayout - readSync.imageLayout, // VkImageLayout newLayout - m_resource->getImage().handle, // VkImage image - m_resource->getImage().subresourceRange // VkImageSubresourceRange subresourceRange + m_resource->getBuffer().handle, // VkBuffer buffer + m_resource->getBuffer().offset, // VkDeviceSize offset + m_resource->getBuffer().size // VkDeviceSize size ); - VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, &imageMemoryBarrier2); + VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, &bufferMemoryBarrier2); synchronizationWrapper->cmdSetEvent(*cmdBuffer, *event, &dependencyInfo); synchronizationWrapper->cmdWaitEvents(*cmdBuffer, 1u, &event.get(), &dependencyInfo); } @@ -181,33 +181,33 @@ public: m_writeOp->recordCommands(*cmdBuffer); - if (m_resource->getType() == RESOURCE_TYPE_BUFFER || isIndirectBuffer(m_resource->getType())) + if (m_resource->getType() == RESOURCE_TYPE_IMAGE) { - const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( + const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( writeSync.stageMask, // VkPipelineStageFlags2KHR srcStageMask writeSync.accessMask, // VkAccessFlags2KHR srcAccessMask readSync.stageMask, // VkPipelineStageFlags2KHR dstStageMask readSync.accessMask, // VkAccessFlags2KHR dstAccessMask - m_resource->getBuffer().handle, // VkBuffer buffer - m_resource->getBuffer().offset, // VkDeviceSize offset - m_resource->getBuffer().size // VkDeviceSize size + writeSync.imageLayout, // VkImageLayout oldLayout + readSync.imageLayout, // VkImageLayout newLayout + m_resource->getImage().handle, // VkImage image + m_resource->getImage().subresourceRange // VkImageSubresourceRange subresourceRange ); - VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, &bufferMemoryBarrier2); + VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, &imageMemoryBarrier2); synchronizationWrapper->cmdPipelineBarrier(*cmdBuffer, &dependencyInfo); } - else if (m_resource->getType() == RESOURCE_TYPE_IMAGE) + else { - const VkImageMemoryBarrier2KHR imageMemoryBarrier2 = makeImageMemoryBarrier2( + const VkBufferMemoryBarrier2KHR bufferMemoryBarrier2 = makeBufferMemoryBarrier2( writeSync.stageMask, // VkPipelineStageFlags2KHR srcStageMask writeSync.accessMask, // VkAccessFlags2KHR srcAccessMask readSync.stageMask, // VkPipelineStageFlags2KHR dstStageMask readSync.accessMask, // VkAccessFlags2KHR dstAccessMask - writeSync.imageLayout, // VkImageLayout oldLayout - readSync.imageLayout, // VkImageLayout newLayout - m_resource->getImage().handle, // VkImage image - m_resource->getImage().subresourceRange // VkImageSubresourceRange subresourceRange + m_resource->getBuffer().handle, // VkBuffer buffer + m_resource->getBuffer().offset, // VkDeviceSize offset + m_resource->getBuffer().size // VkDeviceSize size ); - VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, &imageMemoryBarrier2); + VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, &bufferMemoryBarrier2); synchronizationWrapper->cmdPipelineBarrier(*cmdBuffer, &dependencyInfo); } diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationTestData.hpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationTestData.hpp index 982cd5f..5a58481 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationTestData.hpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationTestData.hpp @@ -56,6 +56,7 @@ static const OperationName s_writeOps[] = OPERATION_NAME_WRITE_IMAGE_FRAGMENT, OPERATION_NAME_WRITE_IMAGE_COMPUTE, OPERATION_NAME_WRITE_IMAGE_COMPUTE_INDIRECT, + OPERATION_NAME_WRITE_IMAGE_COMPUTE_MULTISAMPLE, OPERATION_NAME_WRITE_CLEAR_COLOR_IMAGE, OPERATION_NAME_WRITE_CLEAR_DEPTH_STENCIL_IMAGE, OPERATION_NAME_WRITE_DRAW, @@ -66,6 +67,7 @@ static const OperationName s_writeOps[] = OPERATION_NAME_WRITE_INDIRECT_BUFFER_DRAW, OPERATION_NAME_WRITE_INDIRECT_BUFFER_DRAW_INDEXED, OPERATION_NAME_WRITE_INDIRECT_BUFFER_DISPATCH, + OPERATION_NAME_WRITE_UPDATE_INDEX_BUFFER, }; static const OperationName s_readOps[] = @@ -75,6 +77,7 @@ static const OperationName s_readOps[] = OPERATION_NAME_READ_COPY_IMAGE_TO_BUFFER, OPERATION_NAME_READ_COPY_IMAGE, OPERATION_NAME_READ_BLIT_IMAGE, + OPERATION_NAME_READ_RESOLVE_IMAGE, OPERATION_NAME_READ_UBO_VERTEX, OPERATION_NAME_READ_UBO_TESSELLATION_CONTROL, OPERATION_NAME_READ_UBO_TESSELLATION_EVALUATION, @@ -100,6 +103,7 @@ static const OperationName s_readOps[] = OPERATION_NAME_READ_INDIRECT_BUFFER_DRAW_INDEXED, OPERATION_NAME_READ_INDIRECT_BUFFER_DISPATCH, OPERATION_NAME_READ_VERTEX_INPUT, + OPERATION_NAME_READ_INDEX_INPUT, }; static const OperationName s_copyOps[] = diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp index a15c822..61dc796 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp @@ -398,7 +398,7 @@ de::MovePtr importResource (const DeviceInterface& vkd, extent, 1u, 1u, - VK_SAMPLE_COUNT_1_BIT, + resourceDesc.imageSamples, VK_IMAGE_TILING_OPTIMAL, readOp.getInResourceUsageFlags() | writeOp.getOutResourceUsageFlags(), VK_SHARING_MODE_EXCLUSIVE, @@ -554,7 +554,7 @@ public: extent, 1u, 1u, - VK_SAMPLE_COUNT_1_BIT, + m_resourceDesc.imageSamples, VK_IMAGE_TILING_OPTIMAL, m_readOpSupport->getInResourceUsageFlags() | m_writeOpSupport->getOutResourceUsageFlags(), VK_SHARING_MODE_EXCLUSIVE, @@ -626,7 +626,7 @@ public: std::vector timelineValuesA; std::vector timelineValuesB; std::vector iterations(12); - std::vector stageBits; + std::vector stageBits; // Create a dozen of set of write/read operations. for (deUint32 iterIdx = 0; iterIdx < iterations.size(); iterIdx++) @@ -764,7 +764,7 @@ public: DE_ASSERT(semaphoreHandlesA.size() == iterations.size()); // Record all read operations into a single command buffer and record the union of their stage masks. - VkPipelineStageFlags readStages = 0; + VkPipelineStageFlags2KHR readStages = 0; ptrCmdBufferB = makeVkSharedPtr(makeCommandBuffer(vkB, *deviceB, *cmdPoolB)); cmdBufferB = **(ptrCmdBufferB); beginCommandBuffer(vkB, cmdBufferB); @@ -1354,7 +1354,7 @@ public: std::vector timelineValuesA; std::vector timelineValuesB; std::vector iterations; - std::vector stageBits; + std::vector stageBits; std::vector queueFamilies; SynchronizationWrapperPtr syncWrapper = getSynchronizationWrapper(m_type, vk, isTimelineSemaphore); @@ -1442,7 +1442,7 @@ public: DE_ASSERT(semaphoreHandlesA.size() == iterations.size()); // Record all read operations into a single command buffer and track the union of their execution stages. - VkPipelineStageFlags readStages = 0; + VkPipelineStageFlags2KHR readStages = 0; ptrCmdBufferB = makeVkSharedPtr(makeCommandBuffer(vk, device, *cmdPoolB)); cmdBufferB = **(ptrCmdBufferB); beginCommandBuffer(vk, cmdBufferB); diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationUtil.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationUtil.cpp index 1ee8e00..bd3cf2b 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationUtil.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationUtil.cpp @@ -86,9 +86,13 @@ Move makeComputePipeline (const DeviceInterface& vk, } } -VkImageCreateInfo makeImageCreateInfo (const VkImageType imageType, const VkExtent3D& extent, const VkFormat format, const VkImageUsageFlags usage) +VkImageCreateInfo makeImageCreateInfo (const VkImageType imageType, + const VkExtent3D& extent, + const VkFormat format, + const VkImageUsageFlags usage, + const VkSampleCountFlagBits samples) { - const VkImageCreateInfo imageInfo = + return { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, // VkStructureType sType; DE_NULL, // const void* pNext; @@ -98,7 +102,7 @@ VkImageCreateInfo makeImageCreateInfo (const VkImageType imageType, const VkExte extent, // VkExtent3D extent; 1u, // uint32_t mipLevels; 1u, // uint32_t arrayLayers; - VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits samples; + samples, // VkSampleCountFlagBits samples; VK_IMAGE_TILING_OPTIMAL, // VkImageTiling tiling; usage, // VkImageUsageFlags usage; VK_SHARING_MODE_EXCLUSIVE, // VkSharingMode sharingMode; @@ -106,7 +110,6 @@ VkImageCreateInfo makeImageCreateInfo (const VkImageType imageType, const VkExte DE_NULL, // const uint32_t* pQueueFamilyIndices; VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout; }; - return imageInfo; } void beginRenderPassWithRasterizationDisabled (const DeviceInterface& vk, @@ -995,8 +998,11 @@ std::string getResourceName (const ResourceDescription& resource) { std::ostringstream str; - if (resource.type == RESOURCE_TYPE_BUFFER) + if ((resource.type == RESOURCE_TYPE_BUFFER) || + (resource.type == RESOURCE_TYPE_INDEX_BUFFER)) + { str << "buffer_" << resource.size.x(); + } else if (resource.type == RESOURCE_TYPE_IMAGE) { str << "image_" << resource.size.x() diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationUtil.hpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationUtil.hpp index 774c10b..78c6ee4 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationUtil.hpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationUtil.hpp @@ -245,6 +245,7 @@ enum ResourceType RESOURCE_TYPE_INDIRECT_BUFFER_DRAW, RESOURCE_TYPE_INDIRECT_BUFFER_DRAW_INDEXED, RESOURCE_TYPE_INDIRECT_BUFFER_DISPATCH, + RESOURCE_TYPE_INDEX_BUFFER, }; struct ResourceDescription @@ -254,6 +255,7 @@ struct ResourceDescription vk::VkImageType imageType; vk::VkFormat imageFormat; vk::VkImageAspectFlags imageAspect; + vk::VkSampleCountFlagBits imageSamples; }; struct BufferResource @@ -274,16 +276,20 @@ struct ImageResource }; typedef std::shared_ptr SynchronizationWrapperPtr; -SynchronizationWrapperPtr getSynchronizationWrapper (SynchronizationType type, - const vk::DeviceInterface& vk, - bool usingTimelineSemaphores, - deUint32 submitInfoCount = 1u); -void submitCommandsAndWait (SynchronizationWrapperPtr synchronizationWrapper, - const vk::DeviceInterface& vk, - const vk::VkDevice device, - const vk::VkQueue queue, - const vk::VkCommandBuffer cmdBuffer); -vk::VkImageCreateInfo makeImageCreateInfo (const vk::VkImageType imageType, const vk::VkExtent3D& extent, const vk::VkFormat format, const vk::VkImageUsageFlags usage); +SynchronizationWrapperPtr getSynchronizationWrapper (SynchronizationType type, + const vk::DeviceInterface& vk, + bool usingTimelineSemaphores, + deUint32 submitInfoCount = 1u); +void submitCommandsAndWait (SynchronizationWrapperPtr synchronizationWrapper, + const vk::DeviceInterface& vk, + const vk::VkDevice device, + const vk::VkQueue queue, + const vk::VkCommandBuffer cmdBuffer); +vk::VkImageCreateInfo makeImageCreateInfo (const vk::VkImageType imageType, + const vk::VkExtent3D& extent, + const vk::VkFormat format, + const vk::VkImageUsageFlags usage, + const vk::VkSampleCountFlagBits samples = vk::VK_SAMPLE_COUNT_1_BIT); vk::Move makeCommandBuffer (const vk::DeviceInterface& vk, const vk::VkDevice device, const vk::VkCommandPool commandPool); vk::Move makeComputePipeline (const vk::DeviceInterface& vk, const vk::VkDevice device, const vk::VkPipelineLayout pipelineLayout, const vk::VkShaderModule shaderModule, const vk::VkSpecializationInfo* specInfo, PipelineCacheData& pipelineCacheData); void beginRenderPassWithRasterizationDisabled (const vk::DeviceInterface& vk, const vk::VkCommandBuffer commandBuffer, const vk::VkRenderPass renderPass, const vk::VkFramebuffer framebuffer); diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationWin32KeyedMutexTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationWin32KeyedMutexTests.cpp index 418016d..df2c9a1 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationWin32KeyedMutexTests.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationWin32KeyedMutexTests.cpp @@ -79,14 +79,14 @@ using de::SharedPtr; static const ResourceDescription s_resourcesWin32KeyedMutex[] = { - { RESOURCE_TYPE_BUFFER, tcu::IVec4( 0x4000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, // 16 KiB (min max UBO range) - { RESOURCE_TYPE_BUFFER, tcu::IVec4(0x40000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, // 256 KiB - - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8_UNORM, vk::VK_IMAGE_ASPECT_COLOR_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8G8B8A8_UNORM, vk::VK_IMAGE_ASPECT_COLOR_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16G16B16A16_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, - { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R32G32B32A32_SFLOAT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, + { RESOURCE_TYPE_BUFFER, tcu::IVec4( 0x4000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0, vk::VK_SAMPLE_COUNT_1_BIT }, // 16 KiB (min max UBO range) + { RESOURCE_TYPE_BUFFER, tcu::IVec4(0x40000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0, vk::VK_SAMPLE_COUNT_1_BIT }, // 256 KiB + + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8_UNORM, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8G8B8A8_UNORM, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16G16B16A16_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, + { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R32G32B32A32_SFLOAT, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_SAMPLE_COUNT_1_BIT }, }; struct TestConfig @@ -429,7 +429,7 @@ de::MovePtr importResource (const vk::DeviceInterface& vkd, extent, 1u, 1u, - vk::VK_SAMPLE_COUNT_1_BIT, + resourceDesc.imageSamples, vk::VK_IMAGE_TILING_OPTIMAL, readOp.getInResourceUsageFlags() | writeOp.getOutResourceUsageFlags(), vk::VK_SHARING_MODE_EXCLUSIVE, @@ -481,11 +481,11 @@ void recordWriteBarrier (const vk::DeviceInterface& vkd, deUint32 writeQueueFamilyIndex, const SyncInfo& readSync) { - const vk::VkPipelineStageFlags srcStageMask = writeSync.stageMask; - const vk::VkAccessFlags srcAccessMask = writeSync.accessMask; + const vk::VkPipelineStageFlags srcStageMask = static_cast(writeSync.stageMask); + const vk::VkAccessFlags srcAccessMask = static_cast(writeSync.accessMask); - const vk::VkPipelineStageFlags dstStageMask = readSync.stageMask; - const vk::VkAccessFlags dstAccessMask = readSync.accessMask; + const vk::VkPipelineStageFlags dstStageMask = static_cast(readSync.stageMask); + const vk::VkAccessFlags dstAccessMask = static_cast(readSync.accessMask); const vk::VkDependencyFlags dependencyFlags = 0; @@ -540,11 +540,11 @@ void recordReadBarrier (const vk::DeviceInterface& vkd, const SyncInfo& readSync, deUint32 readQueueFamilyIndex) { - const vk::VkPipelineStageFlags srcStageMask = readSync.stageMask; - const vk::VkAccessFlags srcAccessMask = readSync.accessMask; + const vk::VkPipelineStageFlags srcStageMask = static_cast(readSync.stageMask); + const vk::VkAccessFlags srcAccessMask = static_cast(readSync.accessMask); - const vk::VkPipelineStageFlags dstStageMask = readSync.stageMask; - const vk::VkAccessFlags dstAccessMask = readSync.accessMask; + const vk::VkPipelineStageFlags dstStageMask = static_cast(readSync.stageMask); + const vk::VkAccessFlags dstAccessMask = static_cast(readSync.accessMask); const vk::VkDependencyFlags dependencyFlags = 0; diff --git a/external/vulkancts/mustpass/master/vk-default.txt b/external/vulkancts/mustpass/master/vk-default.txt index 2e36446..58b1df5 100644 --- a/external/vulkancts/mustpass/master/vk-default.txt +++ b/external/vulkancts/mustpass/master/vk-default.txt @@ -557806,6 +557806,7 @@ dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_indirect_read_ dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -558151,6 +558152,7 @@ dEQP-VK.synchronization.op.single_queue.fence.write_clear_attachments_read_image dEQP-VK.synchronization.op.single_queue.fence.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.fence.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.fence.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -559150,6 +559152,7 @@ dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_ind dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -559495,6 +559498,7 @@ dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_clear_attachments dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -560494,6 +560498,7 @@ dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_i dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -560839,6 +560844,7 @@ dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_clear_attachmen dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.single_queue.barrier.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.op.single_queue.barrier.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.op.single_queue.barrier.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -561838,6 +561844,7 @@ dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_indirect_rea dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.barrier.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -562183,6 +562190,7 @@ dEQP-VK.synchronization.op.single_queue.barrier.write_clear_attachments_read_ima dEQP-VK.synchronization.op.single_queue.barrier.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.barrier.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.barrier.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.barrier.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.single_queue.event.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.op.single_queue.event.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.op.single_queue.event.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -563182,6 +563190,7 @@ dEQP-VK.synchronization.op.single_queue.event.write_image_compute_indirect_read_ dEQP-VK.synchronization.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.op.single_queue.event.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -563527,6 +563536,7 @@ dEQP-VK.synchronization.op.single_queue.event.write_clear_attachments_read_image dEQP-VK.synchronization.op.single_queue.event.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization.op.single_queue.event.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization.op.single_queue.event.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization.op.single_queue.event.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -565525,6 +565535,8 @@ dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_indirect_read_i dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -566215,6 +566227,8 @@ dEQP-VK.synchronization.op.multi_queue.fence.write_indirect_buffer_draw_indexed_ dEQP-VK.synchronization.op.multi_queue.fence.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization.op.multi_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization.op.multi_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -568213,6 +568227,8 @@ dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_indi dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -568903,6 +568919,8 @@ dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_indirect_buffer_dr dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -570901,6 +570919,8 @@ dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_in dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -571591,6 +571611,8 @@ dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_ dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fd dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fence_fd @@ -581581,6 +581603,16 @@ dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fd dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fence_fd @@ -585031,6 +585063,16 @@ dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispat dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fd dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fence_fd @@ -595021,6 +595063,16 @@ dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_re dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fd dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fence_fd @@ -598471,6 +598523,16 @@ dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_ dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer_to_image.buffer_16384 @@ -610216,6 +610278,7 @@ dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -610561,6 +610624,7 @@ dEQP-VK.synchronization2.op.single_queue.fence.write_clear_attachments_read_imag dEQP-VK.synchronization2.op.single_queue.fence.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.fence.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.fence.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -611560,6 +611624,7 @@ dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_in dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -611905,6 +611970,7 @@ dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_clear_attachment dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -612904,6 +612970,7 @@ dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_ dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -613249,6 +613316,7 @@ dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_clear_attachme dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.barrier.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.barrier.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.barrier.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -614248,6 +614316,7 @@ dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_re dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -614593,6 +614662,7 @@ dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_attachments_read_im dEQP-VK.synchronization2.op.single_queue.barrier.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.barrier.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.barrier.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.barrier.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.single_queue.event.write_fill_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.op.single_queue.event.write_fill_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.op.single_queue.event.write_fill_buffer_read_copy_buffer_to_image.buffer_16384 @@ -615592,6 +615662,7 @@ dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat +dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint dEQP-VK.synchronization2.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint dEQP-VK.synchronization2.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm dEQP-VK.synchronization2.op.single_queue.event.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint @@ -615937,6 +616008,7 @@ dEQP-VK.synchronization2.op.single_queue.event.write_clear_attachments_read_imag dEQP-VK.synchronization2.op.single_queue.event.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer dEQP-VK.synchronization2.op.single_queue.event.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer dEQP-VK.synchronization2.op.single_queue.event.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer +dEQP-VK.synchronization2.op.single_queue.event.write_update_index_buffer_read_index_input.buffer_20 dEQP-VK.synchronization2.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -617935,6 +618007,8 @@ dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_ dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization2.op.multi_queue.fence.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -618625,6 +618699,8 @@ dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_draw_indexed dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization2.op.multi_queue.fence.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization2.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization2.op.multi_queue.fence.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -620623,6 +620699,8 @@ dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_ind dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -621313,6 +621391,8 @@ dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_d dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization2.op.multi_queue.binary_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_262144_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_fill_buffer_read_copy_buffer.buffer_16384_concurrent @@ -623311,6 +623391,8 @@ dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_i dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_concurrent +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_exclusive +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_exclusive @@ -624001,6 +624083,8 @@ dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_concurrent dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_exclusive dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_concurrent +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_exclusive +dEQP-VK.synchronization2.op.multi_queue.timeline_semaphore.write_update_index_buffer_read_index_input.buffer_20_concurrent dEQP-VK.synchronization2.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fence_fd @@ -633991,6 +634075,16 @@ dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirec dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fence_fd @@ -637441,6 +637535,16 @@ dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispa dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.suballocated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_fence_fd @@ -647431,6 +647535,16 @@ dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_r dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_image_compute_multisample_read_resolve_image.image_64x64_r32_uint_timeline_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd dEQP-VK.synchronization2.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_fence_fd @@ -650881,6 +650995,16 @@ dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32 dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf dEQP-VK.synchronization2.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_fence_fd +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32_kmt +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_win32 +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_binary_semaphore_dma_buf +dEQP-VK.synchronization2.cross_instance.dedicated.write_update_index_buffer_read_index_input.buffer_20_timeline_semaphore_dma_buf dEQP-VK.synchronization2.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_16384 dEQP-VK.synchronization2.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_262144 dEQP-VK.synchronization2.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer_to_image.buffer_16384