From 756a94c641712e5099d0bc9c204603713d208505 Mon Sep 17 00:00:00 2001 From: ziga-lunarg Date: Fri, 18 Sep 2026 15:25:07 +0300 Subject: [PATCH] tests: Rename descriptor heap ext tests --- tests/CMakeLists.txt | 12 +- tests/framework/descriptor_heap_object.cpp | 48 +-- tests/framework/descriptor_heap_object.h | 4 +- tests/framework/layer_validation_tests.h | 4 +- tests/framework/pipeline_helper.cpp | 6 +- tests/framework/pipeline_helper.h | 8 +- tests/unit/debug_printf.cpp | 12 +- tests/unit/debug_printf_ray_tracing.cpp | 12 +- ...iptor_heap.cpp => descriptor_heap_ext.cpp} | 388 +++++++++--------- ...e.cpp => descriptor_heap_ext_positive.cpp} | 278 ++++++------- ...ed.cpp => descriptor_heap_untyped_ext.cpp} | 50 +-- ... descriptor_heap_untyped_ext_positive.cpp} | 154 +++---- .../gpu_av_buffer_device_address_positive.cpp | 2 +- ...eap.cpp => gpu_av_descriptor_heap_ext.cpp} | 380 ++++++++--------- ...> gpu_av_descriptor_heap_ext_positive.cpp} | 208 +++++----- tests/unit/gpu_av_ray_tracing_positive.cpp | 4 +- tests/unit/gpu_dump.cpp | 148 +++---- tests/unit/shader_64bit_indexing.cpp | 2 +- 18 files changed, 860 insertions(+), 860 deletions(-) rename tests/unit/{descriptor_heap.cpp => descriptor_heap_ext.cpp} (95%) rename tests/unit/{descriptor_heap_positive.cpp => descriptor_heap_ext_positive.cpp} (95%) rename tests/unit/{descriptor_heap_untyped.cpp => descriptor_heap_untyped_ext.cpp} (91%) rename tests/unit/{descriptor_heap_untyped_positive.cpp => descriptor_heap_untyped_ext_positive.cpp} (94%) rename tests/unit/{gpu_av_descriptor_heap.cpp => gpu_av_descriptor_heap_ext.cpp} (92%) rename tests/unit/{gpu_av_descriptor_heap_positive.cpp => gpu_av_descriptor_heap_ext_positive.cpp} (92%) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 52a3847abe6..85e71a6ab60 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -59,10 +59,10 @@ target_sources(vk_layer_validation_tests PRIVATE unit/legacy_positive.cpp unit/descriptor_buffer.cpp unit/descriptor_buffer_positive.cpp - unit/descriptor_heap.cpp - unit/descriptor_heap_positive.cpp - unit/descriptor_heap_untyped.cpp - unit/descriptor_heap_untyped_positive.cpp + unit/descriptor_heap_ext.cpp + unit/descriptor_heap_ext_positive.cpp + unit/descriptor_heap_untyped_ext.cpp + unit/descriptor_heap_untyped_ext_positive.cpp unit/descriptor_indexing.cpp unit/descriptor_indexing_positive.cpp unit/descriptors.cpp @@ -111,8 +111,8 @@ target_sources(vk_layer_validation_tests PRIVATE unit/gpu_av_descriptor_class_general_buffer_coop_mat_positive.cpp unit/gpu_av_descriptor_class_texel_buffer.cpp unit/gpu_av_descriptor_class_texel_buffer_positive.cpp - unit/gpu_av_descriptor_heap.cpp - unit/gpu_av_descriptor_heap_positive.cpp + unit/gpu_av_descriptor_heap_ext.cpp + unit/gpu_av_descriptor_heap_ext_positive.cpp unit/gpu_av_descriptor_indexing.cpp unit/gpu_av_descriptor_indexing_positive.cpp unit/gpu_av_descriptor_post_process.cpp diff --git a/tests/framework/descriptor_heap_object.cpp b/tests/framework/descriptor_heap_object.cpp index 2a442a5133f..4d0aed6dacd 100644 --- a/tests/framework/descriptor_heap_object.cpp +++ b/tests/framework/descriptor_heap_object.cpp @@ -38,13 +38,13 @@ static bool IsImage(VkDescriptorType type) { VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT}); } -void DescriptorHeap::AddDescriptorHeapRequirements(VkLayerTest& test) { +void DescriptorHeapEXT::AddDescriptorHeapRequirements(VkLayerTest& test) { test.AddRequiredExtensions(VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME); test.AddRequiredFeature(vkt::Feature::bufferDeviceAddress); test.AddRequiredFeature(vkt::Feature::descriptorHeap); } -void DescriptorHeap::AddUntypedDescriptorHeapRequirements(VkLayerTest &test) { +void DescriptorHeapEXT::AddUntypedDescriptorHeapRequirements(VkLayerTest &test) { test.AddRequiredExtensions(VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME); test.AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); test.AddRequiredFeature(vkt::Feature::shaderUntypedPointers); @@ -52,12 +52,12 @@ void DescriptorHeap::AddUntypedDescriptorHeapRequirements(VkLayerTest &test) { test.AddRequiredFeature(vkt::Feature::descriptorHeap); } -DescriptorHeap::DescriptorHeap(VkLayerTest& test) : test_(&test) { +DescriptorHeapEXT::DescriptorHeapEXT(VkLayerTest& test) : test_(&test) { heap_props.pNext = &tensor_heap_props; test_->GetPhysicalDeviceProperties2(heap_props); } -void DescriptorHeap::CreateResourceHeap(VkDeviceSize app_size, bool reserved_range_in_front) { +void DescriptorHeapEXT::CreateResourceHeap(VkDeviceSize app_size, bool reserved_range_in_front) { resource_reserved_range_in_front_ = reserved_range_in_front; const VkDeviceSize heap_size = AlignResource(app_size + heap_props.minResourceHeapReservedRange); @@ -73,7 +73,7 @@ void DescriptorHeap::CreateResourceHeap(VkDeviceSize app_size, bool reserved_ran } } -void DescriptorHeap::CreateSamplerHeap(VkDeviceSize app_size, bool reserved_range_in_front, bool use_embedded_samplers) { +void DescriptorHeapEXT::CreateSamplerHeap(VkDeviceSize app_size, bool reserved_range_in_front, bool use_embedded_samplers) { embedded_samplers = use_embedded_samplers; sampler_reserved_range_in_front_ = reserved_range_in_front; const VkDeviceSize reserved_range = @@ -92,12 +92,12 @@ void DescriptorHeap::CreateSamplerHeap(VkDeviceSize app_size, bool reserved_rang } } -VkDeviceSize DescriptorHeap::WriteBufferDescriptor(const vkt::Buffer& buffer, VkDescriptorType desc_type) { +VkDeviceSize DescriptorHeapEXT::WriteBufferDescriptor(const vkt::Buffer& buffer, VkDescriptorType desc_type) { const VkDeviceAddressRangeKHR addr_range = buffer.AddressRange(); return WriteBufferDescriptor(addr_range, desc_type); } -VkDeviceSize DescriptorHeap::WriteBufferDescriptor(VkDeviceAddressRangeKHR addr_range, VkDescriptorType desc_type) { +VkDeviceSize DescriptorHeapEXT::WriteBufferDescriptor(VkDeviceAddressRangeKHR addr_range, VkDescriptorType desc_type) { heap_offset_ = Align(heap_offset_, heap_props.bufferDescriptorAlignment); const VkDeviceSize write_offset = WriteBufferDescriptorAtOffset(addr_range, desc_type, heap_offset_); @@ -107,19 +107,19 @@ VkDeviceSize DescriptorHeap::WriteBufferDescriptor(VkDeviceAddressRangeKHR addr_ return write_offset; } -VkDeviceSize DescriptorHeap::WriteBufferDescriptorAtOffset(const vkt::Buffer& buffer, VkDescriptorType desc_type, +VkDeviceSize DescriptorHeapEXT::WriteBufferDescriptorAtOffset(const vkt::Buffer& buffer, VkDescriptorType desc_type, VkDeviceSize heap_offset) { return WriteBufferDescriptorAtOffset(buffer.AddressRange(), desc_type, heap_offset); } -VkDeviceSize DescriptorHeap::WriteBufferDescriptorAtOffset(VkDeviceAddressRangeKHR addr_range, VkDescriptorType desc_type, +VkDeviceSize DescriptorHeapEXT::WriteBufferDescriptorAtOffset(VkDeviceAddressRangeKHR addr_range, VkDescriptorType desc_type, VkDeviceSize heap_offset) { assert(IsValueIn(desc_type, {VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER})); return WriteDescriptorAtOffset(addr_range, desc_type, heap_offset); } -VkDeviceSize DescriptorHeap::WriteImageDescriptorAtOffset(const vkt::Image& image, VkDeviceSize heap_offset, +VkDeviceSize DescriptorHeapEXT::WriteImageDescriptorAtOffset(const vkt::Image& image, VkDeviceSize heap_offset, VkDescriptorType desc_type, VkImageLayout layout) { VkImageViewCreateInfo view_info = image.BasicViewCreatInfo(); VkImageDescriptorInfoEXT image_info = vku::InitStructHelper(); @@ -128,7 +128,7 @@ VkDeviceSize DescriptorHeap::WriteImageDescriptorAtOffset(const vkt::Image& imag return WriteDescriptorAtOffset(&image_info, desc_type, heap_offset); } -VkDeviceSize DescriptorHeap::WriteImageDescriptor(const vkt::Image& image, VkDescriptorType desc_type, VkImageLayout layout) { +VkDeviceSize DescriptorHeapEXT::WriteImageDescriptor(const vkt::Image& image, VkDescriptorType desc_type, VkImageLayout layout) { heap_offset_ = Align(heap_offset_, heap_props.imageDescriptorAlignment); VkImageViewCreateInfo view_info = image.BasicViewCreatInfo(); @@ -144,12 +144,12 @@ VkDeviceSize DescriptorHeap::WriteImageDescriptor(const vkt::Image& image, VkDes return write_offset; } -VkDeviceSize DescriptorHeap::WriteAccelerationStructureDescriptor(vkt::as::AccelerationStructureKHR& as) { +VkDeviceSize DescriptorHeapEXT::WriteAccelerationStructureDescriptor(vkt::as::AccelerationStructureKHR& as) { const VkDeviceAddress as_addr = as.GetAccelerationStructureDeviceAddress(); return WriteAccelerationStructureDescriptor(as_addr); } -VkDeviceSize DescriptorHeap::WriteAccelerationStructureDescriptor(VkDeviceAddress as_addr) { +VkDeviceSize DescriptorHeapEXT::WriteAccelerationStructureDescriptor(VkDeviceAddress as_addr) { constexpr VkDescriptorType as_desc_type = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR; heap_offset_ = Align(heap_offset_, heap_props.bufferDescriptorAlignment); // Per the spec, size can be 0 @@ -162,7 +162,7 @@ VkDeviceSize DescriptorHeap::WriteAccelerationStructureDescriptor(VkDeviceAddres return write_offset; } -VkDeviceSize DescriptorHeap::WriteSamplerDescriptor(VkSamplerCreateInfo* sampler_create_info) { +VkDeviceSize DescriptorHeapEXT::WriteSamplerDescriptor(VkSamplerCreateInfo* sampler_create_info) { VkSamplerCreateInfo safe_create_info = SafeSaneSamplerCreateInfo(); sampler_heap_offset_ = Align(sampler_heap_offset_, heap_props.samplerDescriptorAlignment); @@ -180,7 +180,7 @@ VkDeviceSize DescriptorHeap::WriteSamplerDescriptor(VkSamplerCreateInfo* sampler return write_offset; } -VkDeviceSize DescriptorHeap::WriteSamplerDescriptorAtOffset(VkSamplerCreateInfo* sampler_create_info, VkDeviceSize heap_offset) { +VkDeviceSize DescriptorHeapEXT::WriteSamplerDescriptorAtOffset(VkSamplerCreateInfo* sampler_create_info, VkDeviceSize heap_offset) { VkSamplerCreateInfo safe_create_info = SafeSaneSamplerCreateInfo(); VkHostAddressRangeEXT sampler_host_data{}; @@ -193,7 +193,7 @@ VkDeviceSize DescriptorHeap::WriteSamplerDescriptorAtOffset(VkSamplerCreateInfo* return heap_offset; } -VkDeviceSize DescriptorHeap::WriteNullDescriptorAtOffset(VkDescriptorType desc_type, VkDeviceSize heap_offset) { +VkDeviceSize DescriptorHeapEXT::WriteNullDescriptorAtOffset(VkDescriptorType desc_type, VkDeviceSize heap_offset) { assert(resource_heap_.handle() != VK_NULL_HANDLE); VkResourceDescriptorInfoEXT desc_info = vku::InitStructHelper(); desc_info.type = desc_type; @@ -216,15 +216,15 @@ VkDeviceSize DescriptorHeap::WriteNullDescriptorAtOffset(VkDescriptorType desc_t return heap_offset; } -VkDeviceSize DescriptorHeap::AlignResource(VkDeviceSize offset) { +VkDeviceSize DescriptorHeapEXT::AlignResource(VkDeviceSize offset) { VkDeviceSize aligned_offset = Align(offset, heap_props.bufferDescriptorAlignment); aligned_offset = Align(aligned_offset, heap_props.imageDescriptorAlignment); return aligned_offset; } -VkDeviceSize DescriptorHeap::AlignSampler(VkDeviceSize offset) { return Align(offset, heap_props.samplerDescriptorAlignment); } +VkDeviceSize DescriptorHeapEXT::AlignSampler(VkDeviceSize offset) { return Align(offset, heap_props.samplerDescriptorAlignment); } -VkDeviceSize DescriptorHeap::GetResourceHeapReservedRangeOffset() const { +VkDeviceSize DescriptorHeapEXT::GetResourceHeapReservedRangeOffset() const { if (resource_reserved_range_in_front_) { return 0; } else { @@ -232,7 +232,7 @@ VkDeviceSize DescriptorHeap::GetResourceHeapReservedRangeOffset() const { } } -VkDeviceSize DescriptorHeap::GetSamplerHeapReservedRangeOffset() const { +VkDeviceSize DescriptorHeapEXT::GetSamplerHeapReservedRangeOffset() const { const VkDeviceSize min_reserved_range = embedded_samplers ? heap_props.minSamplerHeapReservedRangeWithEmbedded : heap_props.minSamplerHeapReservedRange; if (resource_reserved_range_in_front_) { @@ -242,7 +242,7 @@ VkDeviceSize DescriptorHeap::GetSamplerHeapReservedRangeOffset() const { } } -void DescriptorHeap::BindResourceHeap(vkt::CommandBuffer& cmd_buffer) { +void DescriptorHeapEXT::BindResourceHeap(vkt::CommandBuffer& cmd_buffer) { VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); bind_resource_info.heapRange = resource_heap_.AddressRange(); bind_resource_info.reservedRangeOffset = GetResourceHeapReservedRangeOffset(); @@ -250,7 +250,7 @@ void DescriptorHeap::BindResourceHeap(vkt::CommandBuffer& cmd_buffer) { vk::CmdBindResourceHeapEXT(cmd_buffer, &bind_resource_info); } -void DescriptorHeap::BindSamplerHeap(vkt::CommandBuffer &cmd_buffer) { +void DescriptorHeapEXT::BindSamplerHeap(vkt::CommandBuffer &cmd_buffer) { const VkDeviceSize min_reserved_range = embedded_samplers ? heap_props.minSamplerHeapReservedRangeWithEmbedded : heap_props.minSamplerHeapReservedRange; VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); @@ -261,7 +261,7 @@ void DescriptorHeap::BindSamplerHeap(vkt::CommandBuffer &cmd_buffer) { } // Buffer variation -VkDeviceSize DescriptorHeap::WriteDescriptorAtOffset(VkDeviceAddressRangeKHR addr_range, VkDescriptorType desc_type, +VkDeviceSize DescriptorHeapEXT::WriteDescriptorAtOffset(VkDeviceAddressRangeKHR addr_range, VkDescriptorType desc_type, VkDeviceSize heap_offset) { assert(resource_heap_.handle() != VK_NULL_HANDLE); VkResourceDescriptorInfoEXT desc_info = vku::InitStructHelper(); @@ -280,7 +280,7 @@ VkDeviceSize DescriptorHeap::WriteDescriptorAtOffset(VkDeviceAddressRangeKHR add } // Image variation -VkDeviceSize DescriptorHeap::WriteDescriptorAtOffset(const VkImageDescriptorInfoEXT* image_info, VkDescriptorType desc_type, +VkDeviceSize DescriptorHeapEXT::WriteDescriptorAtOffset(const VkImageDescriptorInfoEXT* image_info, VkDescriptorType desc_type, VkDeviceSize heap_offset) { assert(resource_heap_.handle() != VK_NULL_HANDLE); VkResourceDescriptorInfoEXT desc_info = vku::InitStructHelper(); diff --git a/tests/framework/descriptor_heap_object.h b/tests/framework/descriptor_heap_object.h index 0b626f20f9c..4eae9831215 100644 --- a/tests/framework/descriptor_heap_object.h +++ b/tests/framework/descriptor_heap_object.h @@ -30,12 +30,12 @@ namespace as { class AccelerationStructureKHR; } -class DescriptorHeap { +class DescriptorHeapEXT { public: static void AddDescriptorHeapRequirements(VkLayerTest& test); static void AddUntypedDescriptorHeapRequirements(VkLayerTest &test); - DescriptorHeap(VkLayerTest& test); + DescriptorHeapEXT(VkLayerTest& test); void CreateResourceHeap(VkDeviceSize app_size, bool reserved_range_in_front = false); void CreateSamplerHeap(VkDeviceSize app_size, bool reserved_range_in_front = false, bool use_embedded_samplers = false); diff --git a/tests/framework/layer_validation_tests.h b/tests/framework/layer_validation_tests.h index 765882a8ea0..74e52bc4db7 100644 --- a/tests/framework/layer_validation_tests.h +++ b/tests/framework/layer_validation_tests.h @@ -290,7 +290,7 @@ class GpuAVRayQueryTest : public GpuAVTest { void InitGpuAVRayQuery(std::vector layer_settings = {}); }; -class GpuAVDescriptorHeap : public GpuAVTest { +class GpuAVDescriptorHeapEXT : public GpuAVTest { public: void InitGpuAVDescriptorHeap(std::vector layer_settings = {}, bool safe_mode = true); @@ -336,7 +336,7 @@ class DescriptorIndexingTest : public VkLayerTest { void ComputePipelineShaderTest(const char *shader, std::vector &bindings); }; -class DescriptorHeapTest : public VkLayerTest { +class DescriptorHeapTestEXT : public VkLayerTest { public: void InitBasicDescriptorHeap(); void InitUntypedDescriptorHeap(); diff --git a/tests/framework/pipeline_helper.cpp b/tests/framework/pipeline_helper.cpp index 7f3fc32c30b..e3224dc0686 100644 --- a/tests/framework/pipeline_helper.cpp +++ b/tests/framework/pipeline_helper.cpp @@ -468,9 +468,9 @@ SimpleGPL::SimpleGPL(VkLayerTest& test, VkPipelineLayout layout, const char* ver pipe_.Init(*device, exe_pipe_ci); } -HeapComputePipeline::HeapComputePipeline(vkt::Device& device, const char* source, const spv_target_env env, - const VkShaderDescriptorSetAndBindingMappingInfoEXT* mapping_info, - SpvSourceType source_type, const VkSpecializationInfo* specialization_info) { +HeapComputePipelineEXT::HeapComputePipelineEXT(vkt::Device& device, const char* source, const spv_target_env env, + const VkShaderDescriptorSetAndBindingMappingInfoEXT* mapping_info, + SpvSourceType source_type, const VkSpecializationInfo* specialization_info) { VkShaderObj cs_module(device, source, VK_SHADER_STAGE_COMPUTE_BIT, env, source_type, specialization_info); VkPipelineCreateFlags2CreateInfoKHR flags2_ci = vku::InitStructHelper(); diff --git a/tests/framework/pipeline_helper.h b/tests/framework/pipeline_helper.h index 14d3b57d230..0c02d1c80c5 100644 --- a/tests/framework/pipeline_helper.h +++ b/tests/framework/pipeline_helper.h @@ -227,12 +227,12 @@ class SimpleGPL { // Helper to more quickly build heap pipelines // (which don't have things like pipeline layouts or descriptor sets) -class HeapComputePipeline { +class HeapComputePipelineEXT { public: // Force spirv env as likely don't want to build with 1.0 - HeapComputePipeline(vkt::Device& device, const char* source, const spv_target_env env, - const VkShaderDescriptorSetAndBindingMappingInfoEXT* mapping_info = nullptr, - SpvSourceType source_type = SPV_SOURCE_GLSL, const VkSpecializationInfo* specialization_info = nullptr); + HeapComputePipelineEXT(vkt::Device& device, const char* source, const spv_target_env env, + const VkShaderDescriptorSetAndBindingMappingInfoEXT* mapping_info = nullptr, + SpvSourceType source_type = SPV_SOURCE_GLSL, const VkSpecializationInfo* specialization_info = nullptr); const VkPipeline& Handle() const { return pipe_.handle(); } operator VkPipeline() const { return pipe_; } diff --git a/tests/unit/debug_printf.cpp b/tests/unit/debug_printf.cpp index 842d4b3709a..e0a859936f9 100644 --- a/tests/unit/debug_printf.cpp +++ b/tests/unit/debug_printf.cpp @@ -5843,8 +5843,8 @@ TEST_F(NegativeDebugPrintf, DescriptorHeap) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); - vkt::HeapComputePipeline pipe2(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); bind_resource_info.heapRange.address = descriptor_heap.Address(); @@ -6024,7 +6024,7 @@ TEST_F(NegativeDebugPrintf, DescriptorHeapUntypedPointers) { debugPrintfEXT("c == %u\n", heapBuffer[2].data); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); bind_resource_info.heapRange.address = descriptor_heap.Address(); @@ -6264,7 +6264,7 @@ TEST_F(NegativeDebugPrintf, DescriptorHeapPushConstantOnly) { debugPrintfEXT("int == %u", pc.x); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -6338,7 +6338,7 @@ TEST_F(NegativeDebugPrintf, DeviceLocalHeap) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); bind_resource_info.heapRange.address = descriptor_heap.Address(); @@ -6700,7 +6700,7 @@ TEST_F(NegativeDebugPrintf, DescriptorHeapRebindHeap) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); bind_resource_info.heapRange.address = descriptor_heap.Address(); diff --git a/tests/unit/debug_printf_ray_tracing.cpp b/tests/unit/debug_printf_ray_tracing.cpp index 2188157c274..060e6872664 100644 --- a/tests/unit/debug_printf_ray_tracing.cpp +++ b/tests/unit/debug_printf_ray_tracing.cpp @@ -158,7 +158,7 @@ TEST_F(NegativeDebugPrintfRayTracing, RaygenShaderRecordDescriptorHeap) { AddRequiredExtensions(VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::rayTracingPipeline); AddRequiredFeature(vkt::Feature::accelerationStructure); - vkt::DescriptorHeap::AddDescriptorHeapRequirements(*this); + vkt::DescriptorHeapEXT::AddDescriptorHeapRequirements(*this); RETURN_IF_SKIP(InitDebugPrintfFramework()); RETURN_IF_SKIP(InitState()); @@ -184,7 +184,7 @@ TEST_F(NegativeDebugPrintfRayTracing, RaygenShaderRecordDescriptorHeap) { vkt::as::BuildGeometryInfoKHR tlas(vkt::as::blueprint::BuildOnDeviceTopLevel(*m_device, *m_default_queue, m_command_buffer)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(1024, true); const VkDeviceSize as_heap_offset = desc_heap.WriteAccelerationStructureDescriptor(*tlas.GetDstAS()); @@ -403,7 +403,7 @@ TEST_F(NegativeDebugPrintfRayTracing, RaygenOneMissShaderOneClosestHitShaderDesc AddRequiredExtensions(VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::rayTracingPipeline); AddRequiredFeature(vkt::Feature::accelerationStructure); - vkt::DescriptorHeap::AddDescriptorHeapRequirements(*this); + vkt::DescriptorHeapEXT::AddDescriptorHeapRequirements(*this); RETURN_IF_SKIP(InitFrameworkWithPrintfBufferSize(1024 * 1024)); RETURN_IF_SKIP(InitState()); @@ -428,7 +428,7 @@ TEST_F(NegativeDebugPrintfRayTracing, RaygenOneMissShaderOneClosestHitShaderDesc vkt::Buffer dummy_buffer(*m_device, 3 * sizeof(uint32_t), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(1024, true); const VkDeviceSize buffer_heap_offset = desc_heap.WriteBufferDescriptor(dummy_buffer, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER); const VkDeviceSize as_heap_offset = desc_heap.WriteAccelerationStructureDescriptor(*tlas.GetDstAS()); @@ -567,7 +567,7 @@ TEST_F(NegativeDebugPrintfRayTracing, RaygenOneMissShaderOneClosestHitShaderDesc AddRequiredFeature(vkt::Feature::rayTracingPipeline); AddRequiredFeature(vkt::Feature::accelerationStructure); AddRequiredFeature(vkt::Feature::shaderInt64); - vkt::DescriptorHeap::AddDescriptorHeapRequirements(*this); + vkt::DescriptorHeapEXT::AddDescriptorHeapRequirements(*this); RETURN_IF_SKIP(InitFrameworkWithPrintfBufferSize(1024 * 1024)); RETURN_IF_SKIP(InitState()); @@ -721,7 +721,7 @@ TEST_F(NegativeDebugPrintfRayTracing, RaygenOneMissShaderOneClosestHitShaderDesc AddRequiredFeature(vkt::Feature::rayTracingPipeline); AddRequiredFeature(vkt::Feature::accelerationStructure); AddRequiredFeature(vkt::Feature::shaderInt64); - vkt::DescriptorHeap::AddDescriptorHeapRequirements(*this); + vkt::DescriptorHeapEXT::AddDescriptorHeapRequirements(*this); RETURN_IF_SKIP(InitFrameworkWithPrintfBufferSize(1024 * 1024)); RETURN_IF_SKIP(InitState()); diff --git a/tests/unit/descriptor_heap.cpp b/tests/unit/descriptor_heap_ext.cpp similarity index 95% rename from tests/unit/descriptor_heap.cpp rename to tests/unit/descriptor_heap_ext.cpp index fbc18526c81..5cfe71bf17c 100644 --- a/tests/unit/descriptor_heap.cpp +++ b/tests/unit/descriptor_heap_ext.cpp @@ -22,9 +22,9 @@ #include #include -class NegativeDescriptorHeap : public DescriptorHeapTest {}; +class NegativeDescriptorHeapEXT : public DescriptorHeapTestEXT {}; -TEST_F(NegativeDescriptorHeap, NotEnabled) { +TEST_F(NegativeDescriptorHeapEXT, NotEnabled) { TEST_DESCRIPTION("Tests for descriptor heap when feature is not enabled"); SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredExtensions(VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME); @@ -85,7 +85,7 @@ TEST_F(NegativeDescriptorHeap, NotEnabled) { } } -TEST_F(NegativeDescriptorHeap, SamplerParameterSize) { +TEST_F(NegativeDescriptorHeapEXT, SamplerParameterSize) { TEST_DESCRIPTION("Validate vkWriteSamplerDescriptorsEXT size parameter"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -107,7 +107,7 @@ TEST_F(NegativeDescriptorHeap, SamplerParameterSize) { } } -TEST_F(NegativeDescriptorHeap, SamplerParameterYCbCr) { +TEST_F(NegativeDescriptorHeapEXT, SamplerParameterYCbCr) { TEST_DESCRIPTION("Validate vkWriteSamplerDescriptorsEXT with YCbCr conversion"); AddRequiredFeature(vkt::Feature::samplerYcbcrConversion); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -130,7 +130,7 @@ TEST_F(NegativeDescriptorHeap, SamplerParameterYCbCr) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, SamplerParameterDebugUtilsObjectName) { +TEST_F(NegativeDescriptorHeapEXT, SamplerParameterDebugUtilsObjectName) { TEST_DESCRIPTION("Validate vkWriteSamplerDescriptorsEXT with DebugUilsObjectName"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -147,7 +147,7 @@ TEST_F(NegativeDescriptorHeap, SamplerParameterDebugUtilsObjectName) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, SamplerParameterCustomBorderColor) { +TEST_F(NegativeDescriptorHeapEXT, SamplerParameterCustomBorderColor) { TEST_DESCRIPTION("Validate vkWriteSamplerDescriptorsEXT with custom border color"); AddRequiredExtensions(VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::customBorderColors); @@ -182,7 +182,7 @@ TEST_F(NegativeDescriptorHeap, SamplerParameterCustomBorderColor) { } } -TEST_F(NegativeDescriptorHeap, SamplerParameterPSamplersStateless) { +TEST_F(NegativeDescriptorHeapEXT, SamplerParameterPSamplersStateless) { TEST_DESCRIPTION("Validate vkWriteSamplerDescriptorsEXT check stateless path"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -199,7 +199,7 @@ TEST_F(NegativeDescriptorHeap, SamplerParameterPSamplersStateless) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, SamplerParameterPSamplersCore) { +TEST_F(NegativeDescriptorHeapEXT, SamplerParameterPSamplersCore) { TEST_DESCRIPTION("Validate vkWriteSamplerDescriptorsEXT check core validation path"); AddRequiredFeature(vkt::Feature::samplerYcbcrConversion); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -313,7 +313,7 @@ TEST_F(NegativeDescriptorHeap, SamplerParameterPSamplersCore) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ResourceParameterTypeInvalid) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterTypeInvalid) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT with unacceptable type"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -329,7 +329,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterTypeInvalid) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ResourceParameterSize) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterSize) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT size parameter"); AddRequiredFeature(vkt::Feature::nullDescriptor); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -361,7 +361,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterSize) { } } -TEST_F(NegativeDescriptorHeap, ResourceParameterDataNull) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterDataNull) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT null pointer"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -399,7 +399,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterDataNull) { } } -TEST_F(NegativeDescriptorHeap, ResourceParameterDataNullAS) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterDataNullAS) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT nullDescriptor for acceleration structure"); AddRequiredExtensions(VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::accelerationStructure); @@ -417,7 +417,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterDataNullAS) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ResourceParameterDataNullTensor) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterDataNullTensor) { AddRequiredExtensions(VK_ARM_TENSORS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::tensors); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -434,7 +434,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterDataNullTensor) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ResourceParameterDebugUtilsObjectName) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterDebugUtilsObjectName) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT with DebugUilsObjectName"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -460,7 +460,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterDebugUtilsObjectName) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ResourceParameterDataAddressZero) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterDataAddressZero) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT case when address is 0, but size is not"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -498,7 +498,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterDataAddressZero) { } } -TEST_F(NegativeDescriptorHeap, ResourceParameterDataSizeZero) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterDataSizeZero) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT case when size is 0"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -524,7 +524,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterDataSizeZero) { } } -TEST_F(NegativeDescriptorHeap, ResourceParameterUniformAlign) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterUniformAlign) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT for VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -556,7 +556,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterUniformAlign) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ResourceParameterStorageAlign) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterStorageAlign) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT for VK_DESCRIPTOR_TYPE_STORAGE_BUFFER"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -587,7 +587,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterStorageAlign) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ResourceParameterAccelerationStructureAlign) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterAccelerationStructureAlign) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT for VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR"); AddRequiredExtensions(VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::accelerationStructure); @@ -616,7 +616,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterAccelerationStructureAlign) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, UniformTexelBufferOffsetSingleTexelAlignmentFalse) { +TEST_F(NegativeDescriptorHeapEXT, UniformTexelBufferOffsetSingleTexelAlignmentFalse) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT with uniformTexelBufferOffsetSingleTexelAlignment == VK_FALSE"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -655,7 +655,7 @@ TEST_F(NegativeDescriptorHeap, UniformTexelBufferOffsetSingleTexelAlignmentFalse m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, UniformTexelBufferOffsetSingleTexelAlignmentTrue) { +TEST_F(NegativeDescriptorHeapEXT, UniformTexelBufferOffsetSingleTexelAlignmentTrue) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT with uniformTexelBufferOffsetSingleTexelAlignment == VK_TRUE"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -696,7 +696,7 @@ TEST_F(NegativeDescriptorHeap, UniformTexelBufferOffsetSingleTexelAlignmentTrue) m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, StorageTexelBufferOffsetSingleTexelAlignmentFalse) { +TEST_F(NegativeDescriptorHeapEXT, StorageTexelBufferOffsetSingleTexelAlignmentFalse) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT with storageTexelBufferOffsetSingleTexelAlignment == VK_FALSE"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -735,7 +735,7 @@ TEST_F(NegativeDescriptorHeap, StorageTexelBufferOffsetSingleTexelAlignmentFalse m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, StorageTexelBufferOffsetSingleTexelAlignmentTrue) { +TEST_F(NegativeDescriptorHeapEXT, StorageTexelBufferOffsetSingleTexelAlignmentTrue) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT with storageTexelBufferOffsetSingleTexelAlignment == VK_TRUE"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -776,7 +776,7 @@ TEST_F(NegativeDescriptorHeap, StorageTexelBufferOffsetSingleTexelAlignmentTrue) m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, MinTexelBufferOffsetAlignment) { +TEST_F(NegativeDescriptorHeapEXT, MinTexelBufferOffsetAlignment) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT with minTexelBufferOffsetAlignment"); AddRequiredExtensions(VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::bufferDeviceAddress); @@ -815,7 +815,7 @@ TEST_F(NegativeDescriptorHeap, MinTexelBufferOffsetAlignment) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ResourceParameterYCbCr) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterYCbCr) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT with YCbCr conversion"); AddRequiredFeature(vkt::Feature::samplerYcbcrConversion); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -879,7 +879,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterYCbCr) { } } -TEST_F(NegativeDescriptorHeap, ResourceParameterSubsampledImage) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterSubsampledImage) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT with subsampled image"); AddRequiredExtensions(VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::fragmentDensityMap); @@ -953,7 +953,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterSubsampledImage) { } } -TEST_F(NegativeDescriptorHeap, ResourceParameterPViewNull) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterPViewNull) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT with pView nullptr"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -982,7 +982,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterPViewNull) { } } -TEST_F(NegativeDescriptorHeap, ResourceParameterPView) { +TEST_F(NegativeDescriptorHeapEXT, ResourceParameterPView) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT triggers all validation paths for pView"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1031,7 +1031,7 @@ TEST_F(NegativeDescriptorHeap, ResourceParameterPView) { } } -TEST_F(NegativeDescriptorHeap, CmdBindSamplerHeap) { +TEST_F(NegativeDescriptorHeapEXT, CmdBindSamplerHeap) { TEST_DESCRIPTION("Validate vkCmdBindSamplerHeapEXT"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1096,7 +1096,7 @@ TEST_F(NegativeDescriptorHeap, CmdBindSamplerHeap) { } } -TEST_F(NegativeDescriptorHeap, CmdBindSamplerHeapReservedRangeSize) { +TEST_F(NegativeDescriptorHeapEXT, CmdBindSamplerHeapReservedRangeSize) { TEST_DESCRIPTION("Validate vkCmdBindSamplerHeapEXT ReservedRangeSize is greater than or equal minSamplerHeapReservedRange"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1118,7 +1118,7 @@ TEST_F(NegativeDescriptorHeap, CmdBindSamplerHeapReservedRangeSize) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, CmdBindSamplerHeapAlign) { +TEST_F(NegativeDescriptorHeapEXT, CmdBindSamplerHeapAlign) { TEST_DESCRIPTION("Validate vkCmdBindSamplerHeapEXT addr alignement"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1143,7 +1143,7 @@ TEST_F(NegativeDescriptorHeap, CmdBindSamplerHeapAlign) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, CmdBindSamplerHeapReservedRangeAlign) { +TEST_F(NegativeDescriptorHeapEXT, CmdBindSamplerHeapReservedRangeAlign) { TEST_DESCRIPTION("Validate vkCmdBindSamplerHeapEXT reservedRange alignement"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1163,7 +1163,7 @@ TEST_F(NegativeDescriptorHeap, CmdBindSamplerHeapReservedRangeAlign) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, CmdBindSamplerHeapSecondaryBuffer) { +TEST_F(NegativeDescriptorHeapEXT, CmdBindSamplerHeapSecondaryBuffer) { TEST_DESCRIPTION("Validate vkCmdBindSamplerHeapEXT command written to secondary buffer"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1198,7 +1198,7 @@ TEST_F(NegativeDescriptorHeap, CmdBindSamplerHeapSecondaryBuffer) { secondary.End(); } -TEST_F(NegativeDescriptorHeap, CmdBindResourceHeap) { +TEST_F(NegativeDescriptorHeapEXT, CmdBindResourceHeap) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); const VkDeviceSize heap_size = heap_props.bufferDescriptorSize + heap_props.minResourceHeapReservedRange; @@ -1269,7 +1269,7 @@ TEST_F(NegativeDescriptorHeap, CmdBindResourceHeap) { } } -TEST_F(NegativeDescriptorHeap, SamplerInheritance) { +TEST_F(NegativeDescriptorHeapEXT, SamplerInheritance) { TEST_DESCRIPTION("Validate that inherited ranges match primary buffer"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1310,7 +1310,7 @@ TEST_F(NegativeDescriptorHeap, SamplerInheritance) { } } -TEST_F(NegativeDescriptorHeap, ResourceInheritance) { +TEST_F(NegativeDescriptorHeapEXT, ResourceInheritance) { TEST_DESCRIPTION("Validate that inherited ranges match primary buffer"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1351,7 +1351,7 @@ TEST_F(NegativeDescriptorHeap, ResourceInheritance) { } } -TEST_F(NegativeDescriptorHeap, CmdBindResourceHeapAlign) { +TEST_F(NegativeDescriptorHeapEXT, CmdBindResourceHeapAlign) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); EXPECT_GT(heap_props.resourceHeapAlignment, 0u); @@ -1377,7 +1377,7 @@ TEST_F(NegativeDescriptorHeap, CmdBindResourceHeapAlign) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, CmdBindResourceHeapReservedRangeAlign) { +TEST_F(NegativeDescriptorHeapEXT, CmdBindResourceHeapReservedRangeAlign) { TEST_DESCRIPTION("Validate vkCmdBindResourceHeapEXT reservedRangeOffset alignment"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1399,7 +1399,7 @@ TEST_F(NegativeDescriptorHeap, CmdBindResourceHeapReservedRangeAlign) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, CmdBindResourceHeapSecondaryBuffer) { +TEST_F(NegativeDescriptorHeapEXT, CmdBindResourceHeapSecondaryBuffer) { TEST_DESCRIPTION("Validate vkCmdBindResourceHeapEXT command written to secondary buffer"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1431,7 +1431,7 @@ TEST_F(NegativeDescriptorHeap, CmdBindResourceHeapSecondaryBuffer) { secondary.End(); } -TEST_F(NegativeDescriptorHeap, CmdBindResourceHeapSecondaryBufferMemoryTests) { +TEST_F(NegativeDescriptorHeapEXT, CmdBindResourceHeapSecondaryBufferMemoryTests) { TEST_DESCRIPTION("Validate memory overflow corruption and binding written to secondary buffer"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1516,7 +1516,7 @@ TEST_F(NegativeDescriptorHeap, CmdBindResourceHeapSecondaryBufferMemoryTests) { } } -TEST_F(NegativeDescriptorHeap, CmdPushData) { +TEST_F(NegativeDescriptorHeapEXT, CmdPushData) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); std::vector payload(static_cast(4 * heap_props.maxPushDataSize)); @@ -1553,7 +1553,7 @@ TEST_F(NegativeDescriptorHeap, CmdPushData) { } } -TEST_F(NegativeDescriptorHeap, ShaderDescriptorSetAndBindingMapping) { +TEST_F(NegativeDescriptorHeapEXT, ShaderDescriptorSetAndBindingMapping) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -1642,7 +1642,7 @@ TEST_F(NegativeDescriptorHeap, ShaderDescriptorSetAndBindingMapping) { } } -TEST_F(NegativeDescriptorHeap, DescriptorSetAndBindingMappingPipeline) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorSetAndBindingMappingPipeline) { TEST_DESCRIPTION("Validate VkDescriptorSetAndBindingMappingEXT structure using pipeline"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -1917,7 +1917,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorSetAndBindingMappingPipeline) { } } -TEST_F(NegativeDescriptorHeap, DescriptorSetAndBindingMappingShaderObject) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorSetAndBindingMappingShaderObject) { TEST_DESCRIPTION("Validate VkDescriptorSetAndBindingMappingEXT structure using shader object"); AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderObject); @@ -1965,7 +1965,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorSetAndBindingMappingShaderObject) { } } -TEST_F(NegativeDescriptorHeap, OpaqueCaptureDescriptorDataCreateInfo) { +TEST_F(NegativeDescriptorHeapEXT, OpaqueCaptureDescriptorDataCreateInfo) { AddRequiredExtensions(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::descriptorBuffer); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -2022,7 +2022,7 @@ TEST_F(NegativeDescriptorHeap, OpaqueCaptureDescriptorDataCreateInfo) { } } -TEST_F(NegativeDescriptorHeap, DescriptorMappingSourcePushIndex) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorMappingSourcePushIndex) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = MakeSetAndBindingMapping(0, 0, 1, VK_SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT); @@ -2055,7 +2055,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorMappingSourcePushIndex) { } } -TEST_F(NegativeDescriptorHeap, DescriptorMappingSourcePushDataLimit) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorMappingSourcePushDataLimit) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = MakeSetAndBindingMapping(0, 0); VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); @@ -2087,7 +2087,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorMappingSourcePushDataLimit) { } } -TEST_F(NegativeDescriptorHeap, DescriptorMappingSourcePushDataLimitSampler) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorMappingSourcePushDataLimitSampler) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = MakeSetAndBindingMapping(0, 0); VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); @@ -2141,7 +2141,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorMappingSourcePushDataLimitSampler) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceIndirectIndex) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorMappingSourceIndirectIndex) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = {}; @@ -2189,7 +2189,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceIndirectIndex) { } } -TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceHeapData) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorMappingSourceHeapData) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = {}; @@ -2238,7 +2238,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceHeapData) { } } -TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceIndirectAddress) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorMappingSourceIndirectAddress) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = {}; @@ -2286,7 +2286,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceIndirectAddress) { } } -TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceShaderRecordIndexAlign) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorMappingSourceShaderRecordIndexAlign) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = @@ -2307,7 +2307,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceShaderRecordIndexAlign) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceShaderRecordIndexSize) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorMappingSourceShaderRecordIndexSize) { AddRequiredExtensions(VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::rayTracingPipeline); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -2333,7 +2333,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceShaderRecordIndexSize) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceIndirectIndexArray) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorMappingSourceIndirectIndexArray) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = {}; @@ -2381,7 +2381,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorMappingSourceIndirectIndexArray) { } } -TEST_F(NegativeDescriptorHeap, OpaqueCaptureDataCreateInfo) { +TEST_F(NegativeDescriptorHeapEXT, OpaqueCaptureDataCreateInfo) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); std::vector data(heap_props.imageCaptureReplayOpaqueDataSize + 1); @@ -2414,7 +2414,7 @@ TEST_F(NegativeDescriptorHeap, OpaqueCaptureDataCreateInfo) { } } -TEST_F(NegativeDescriptorHeap, OpaqueCaptureDataCreateInfoSize) { +TEST_F(NegativeDescriptorHeapEXT, OpaqueCaptureDataCreateInfoSize) { AddRequiredFeature(vkt::Feature::descriptorHeapCaptureReplay); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -2442,7 +2442,7 @@ TEST_F(NegativeDescriptorHeap, OpaqueCaptureDataCreateInfoSize) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, GetImageOpaqueCaptureData) { +TEST_F(NegativeDescriptorHeapEXT, GetImageOpaqueCaptureData) { SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredFeature(vkt::Feature::descriptorHeapCaptureReplay); AddRequiredFeature(vkt::Feature::bufferDeviceAddressCaptureReplay); @@ -2477,7 +2477,7 @@ TEST_F(NegativeDescriptorHeap, GetImageOpaqueCaptureData) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, GetImageOpaqueCaptureDataMissingFlag) { +TEST_F(NegativeDescriptorHeapEXT, GetImageOpaqueCaptureDataMissingFlag) { SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredFeature(vkt::Feature::descriptorHeapCaptureReplay); AddRequiredFeature(vkt::Feature::bufferDeviceAddressCaptureReplay); @@ -2517,7 +2517,7 @@ TEST_F(NegativeDescriptorHeap, GetImageOpaqueCaptureDataMissingFlag) { } } -TEST_F(NegativeDescriptorHeap, RegisterCustomBorderColor) { +TEST_F(NegativeDescriptorHeapEXT, RegisterCustomBorderColor) { SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredExtensions(VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::customBorderColors); @@ -2534,7 +2534,7 @@ TEST_F(NegativeDescriptorHeap, RegisterCustomBorderColor) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, UnregisterCustomBorderColor) { +TEST_F(NegativeDescriptorHeapEXT, UnregisterCustomBorderColor) { SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredExtensions(VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::customBorderColors); @@ -2548,7 +2548,7 @@ TEST_F(NegativeDescriptorHeap, UnregisterCustomBorderColor) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, SamplerCreateWithBorder) { +TEST_F(NegativeDescriptorHeapEXT, SamplerCreateWithBorder) { SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredExtensions(VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::customBorderColors); @@ -2568,7 +2568,7 @@ TEST_F(NegativeDescriptorHeap, SamplerCreateWithBorder) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, DescriptorHeapPipelineCreateFlag) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorHeapPipelineCreateFlag) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkPipelineCreateFlags2CreateInfoKHR flags2_ci = vku::InitStructHelper(); @@ -2600,7 +2600,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorHeapPipelineCreateFlag) { } } -TEST_F(NegativeDescriptorHeap, PipelineShaderStageCreateInfoNotEnabled) { +TEST_F(NegativeDescriptorHeapEXT, PipelineShaderStageCreateInfoNotEnabled) { TEST_DESCRIPTION("Validate VkPipelineShaderStageCreateInfo mappingCount to be zero when descriptorHeap is not enabled"); SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredExtensions(VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME); @@ -2623,7 +2623,7 @@ TEST_F(NegativeDescriptorHeap, PipelineShaderStageCreateInfoNotEnabled) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, IndirectExecutionSetShaderInfoInitialShaderFlagSame) { +TEST_F(NegativeDescriptorHeapEXT, IndirectExecutionSetShaderInfoInitialShaderFlagSame) { TEST_DESCRIPTION( "Validate that all VkIndirectExecutionSetShaderInfoEXT.pInitialShaders are created with same descriptor heap " "flag state"); @@ -2679,7 +2679,7 @@ TEST_F(NegativeDescriptorHeap, IndirectExecutionSetShaderInfoInitialShaderFlagSa } } -TEST_F(NegativeDescriptorHeap, IndirectExecutionSetShaderInfoSetLayoutNull) { +TEST_F(NegativeDescriptorHeapEXT, IndirectExecutionSetShaderInfoSetLayoutNull) { TEST_DESCRIPTION("Validate that all VkIndirectExecutionSetShaderInfoEXT.pSetLayoutInfos is null"); AddRequiredExtensions(VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME); AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); @@ -2721,7 +2721,7 @@ TEST_F(NegativeDescriptorHeap, IndirectExecutionSetShaderInfoSetLayoutNull) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ShaderCreateInfoPushConstant) { +TEST_F(NegativeDescriptorHeapEXT, ShaderCreateInfoPushConstant) { AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderObject); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -2751,7 +2751,7 @@ TEST_F(NegativeDescriptorHeap, ShaderCreateInfoPushConstant) { } } -TEST_F(NegativeDescriptorHeap, ShaderObjectIndependentSet) { +TEST_F(NegativeDescriptorHeapEXT, ShaderObjectIndependentSet) { AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredExtensions(VK_KHR_MAINTENANCE_11_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::maintenance11); @@ -2767,7 +2767,7 @@ TEST_F(NegativeDescriptorHeap, ShaderObjectIndependentSet) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, DescriptorType) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorType) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); m_errorMonitor->SetDesiredError("VUID-vkGetPhysicalDeviceDescriptorSizeEXT-type-11362"); @@ -2775,7 +2775,7 @@ TEST_F(NegativeDescriptorHeap, DescriptorType) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, BindHeapInfoBufferHeapUsage) { +TEST_F(NegativeDescriptorHeapEXT, BindHeapInfoBufferHeapUsage) { TEST_DESCRIPTION("Validate VkBindHeapInfoEXT uses buffer address from buffer with heap usage and memory usage for the command"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -2872,7 +2872,7 @@ TEST_F(NegativeDescriptorHeap, BindHeapInfoBufferHeapUsage) { } } -TEST_F(NegativeDescriptorHeap, BindOverlappingRangesSampler) { +TEST_F(NegativeDescriptorHeapEXT, BindOverlappingRangesSampler) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); // std::max allows the test to run when minSamplerHeapReservedRange is zero or smaller than samplerDescriptorSize @@ -2925,7 +2925,7 @@ TEST_F(NegativeDescriptorHeap, BindOverlappingRangesSampler) { cmd_buffer1.End(); } -TEST_F(NegativeDescriptorHeap, BindOverlappingRangesResource) { +TEST_F(NegativeDescriptorHeapEXT, BindOverlappingRangesResource) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); // std::max allows the test to run when minResourceHeapReservedRange is zero or smaller than bufferDescriptorSize @@ -2983,7 +2983,7 @@ TEST_F(NegativeDescriptorHeap, BindOverlappingRangesResource) { cmd_buffer1.End(); } -TEST_F(NegativeDescriptorHeap, WriteResourceDescriptorsMemoryTests) { +TEST_F(NegativeDescriptorHeapEXT, WriteResourceDescriptorsMemoryTests) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT align_props = vku::InitStructHelper(); @@ -3028,7 +3028,7 @@ TEST_F(NegativeDescriptorHeap, WriteResourceDescriptorsMemoryTests) { } } -TEST_F(NegativeDescriptorHeap, WriteResourceDescriptorsMemoryTestsAS) { +TEST_F(NegativeDescriptorHeapEXT, WriteResourceDescriptorsMemoryTestsAS) { AddRequiredExtensions(VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::accelerationStructure); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -3087,7 +3087,7 @@ TEST_F(NegativeDescriptorHeap, WriteResourceDescriptorsMemoryTestsAS) { } } -TEST_F(NegativeDescriptorHeap, OpTypeImage) { +TEST_F(NegativeDescriptorHeapEXT, OpTypeImage) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); RETURN_IF_SKIP(CheckSlangSupport()); @@ -3134,12 +3134,12 @@ TEST_F(NegativeDescriptorHeap, OpTypeImage) { mappings.sourceData.constantOffset.heapArrayStride = (i % 2 == 0) ? 0 : 1; m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetAndBindingMappingEXT-source-11251"); - vkt::HeapComputePipeline pipe(*m_device, spirv, SPV_ENV_VULKAN_1_0, &mapping_info, source_type); + vkt::HeapComputePipelineEXT pipe(*m_device, spirv, SPV_ENV_VULKAN_1_0, &mapping_info, source_type); m_errorMonitor->VerifyFound(); } } -TEST_F(NegativeDescriptorHeap, MappedPushIsBlockUniform) { +TEST_F(NegativeDescriptorHeapEXT, MappedPushIsBlockUniform) { TEST_DESCRIPTION("Validate that mapped push data is backed by block uniform"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); RETURN_IF_SKIP(CheckSlangSupport()); @@ -3175,15 +3175,15 @@ TEST_F(NegativeDescriptorHeap, MappedPushIsBlockUniform) { )slang"; m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11315"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11315"); - vkt::HeapComputePipeline pipe2(*m_device, slang_shader, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); + vkt::HeapComputePipelineEXT pipe2(*m_device, slang_shader, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, MappedStructLessThanMaxPushDataSize) { +TEST_F(NegativeDescriptorHeapEXT, MappedStructLessThanMaxPushDataSize) { TEST_DESCRIPTION("Validate that mapped structure is less than maxPushDataSize"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); RETURN_IF_SKIP(CheckSlangSupport()); @@ -3234,15 +3234,15 @@ TEST_F(NegativeDescriptorHeap, MappedStructLessThanMaxPushDataSize) { m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11316"); m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11315"); - vkt::HeapComputePipeline pipe(*m_device, cs_source.str().c_str(), SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source.str().c_str(), SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11315"); - vkt::HeapComputePipeline pipe2(*m_device, slang_shader.str().c_str(), SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); + vkt::HeapComputePipelineEXT pipe2(*m_device, slang_shader.str().c_str(), SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, MaxPushDataSizeShaderObject) { +TEST_F(NegativeDescriptorHeapEXT, MaxPushDataSizeShaderObject) { SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderObject); @@ -3281,7 +3281,7 @@ TEST_F(NegativeDescriptorHeap, MaxPushDataSizeShaderObject) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, OpTypeStruct) { +TEST_F(NegativeDescriptorHeapEXT, OpTypeStruct) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); RETURN_IF_SKIP(CheckSlangSupport()); @@ -3326,12 +3326,12 @@ TEST_F(NegativeDescriptorHeap, OpTypeStruct) { mappings.sourceData.constantOffset.heapArrayStride = (i % 2 == 0) ? 0 : 1; m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetAndBindingMappingEXT-source-11252"); - vkt::HeapComputePipeline pipe(*m_device, spirv, SPV_ENV_VULKAN_1_0, &mapping_info, source_type); + vkt::HeapComputePipelineEXT pipe(*m_device, spirv, SPV_ENV_VULKAN_1_0, &mapping_info, source_type); m_errorMonitor->VerifyFound(); } } -TEST_F(NegativeDescriptorHeap, OpTypeSampler) { +TEST_F(NegativeDescriptorHeapEXT, OpTypeSampler) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredExtensions(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::computeDerivativeGroupQuads); @@ -3423,29 +3423,29 @@ TEST_F(NegativeDescriptorHeap, OpTypeSampler) { mappings[1].sourceData.constantOffset.heapOffset = 1; mappings[1].sourceData.constantOffset.heapArrayStride = 0; m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetAndBindingMappingEXT-source-11253"); - vkt::HeapComputePipeline pipe(*m_device, cs_source0, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source0, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); mappings[1].sourceData.constantOffset.heapOffset = 0; mappings[1].sourceData.constantOffset.heapArrayStride = 1; m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetAndBindingMappingEXT-source-11253"); - vkt::HeapComputePipeline pipe2(*m_device, cs_source1, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source1, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); mappings[1].sourceData.constantOffset.heapOffset = 1; mappings[1].sourceData.constantOffset.heapArrayStride = 0; m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetAndBindingMappingEXT-source-11253"); - vkt::HeapComputePipeline pipe3(*m_device, slang_shader0, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); + vkt::HeapComputePipelineEXT pipe3(*m_device, slang_shader0, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); m_errorMonitor->VerifyFound(); mappings[1].sourceData.constantOffset.heapOffset = 0; mappings[1].sourceData.constantOffset.heapArrayStride = 1; m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetAndBindingMappingEXT-source-11253"); - vkt::HeapComputePipeline pipe4(*m_device, slang_shader1, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); + vkt::HeapComputePipelineEXT pipe4(*m_device, slang_shader1, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, OpTypeSampledImageAlignedSampler) { +TEST_F(NegativeDescriptorHeapEXT, OpTypeSampledImageAlignedSampler) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); RETURN_IF_SKIP(CheckSlangSupport()); @@ -3497,12 +3497,12 @@ TEST_F(NegativeDescriptorHeap, OpTypeSampledImageAlignedSampler) { mappings[1].sourceData.constantOffset.samplerHeapArrayStride = (i % 2 == 0) ? 0 : 1; m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetAndBindingMappingEXT-source-11254"); - vkt::HeapComputePipeline pipe(*m_device, spirv, SPV_ENV_VULKAN_1_0, &mapping_info, source_type); + vkt::HeapComputePipelineEXT pipe(*m_device, spirv, SPV_ENV_VULKAN_1_0, &mapping_info, source_type); m_errorMonitor->VerifyFound(); } } -TEST_F(NegativeDescriptorHeap, OpTypeSampledImageAlignedImage) { +TEST_F(NegativeDescriptorHeapEXT, OpTypeSampledImageAlignedImage) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); if (heap_props.imageDescriptorAlignment < 2) { @@ -3537,11 +3537,11 @@ TEST_F(NegativeDescriptorHeap, OpTypeSampledImageAlignedImage) { mappings[1].sourceData.constantOffset.heapArrayStride = 0; m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetAndBindingMappingEXT-source-12406"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, NoMappingStruct) { +TEST_F(NegativeDescriptorHeapEXT, NoMappingStruct) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::runtimeDescriptorArray); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -3556,11 +3556,11 @@ TEST_F(NegativeDescriptorHeap, NoMappingStruct) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-VkComputePipelineCreateInfo-flags-11312"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, MappingWithoutFlag) { +TEST_F(NegativeDescriptorHeapEXT, MappingWithoutFlag) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mappings = MakeSetAndBindingMapping(0, 0); @@ -3590,7 +3590,7 @@ TEST_F(NegativeDescriptorHeap, MappingWithoutFlag) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, NoMappingShaderObject) { +TEST_F(NegativeDescriptorHeapEXT, NoMappingShaderObject) { TEST_DESCRIPTION("Check that descriptor set bindings have a mappings when using VkShaderCreateFlagsEXT"); AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderObject); @@ -3622,7 +3622,7 @@ TEST_F(NegativeDescriptorHeap, NoMappingShaderObject) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, NoMappingComputePipeline) { +TEST_F(NegativeDescriptorHeapEXT, NoMappingComputePipeline) { TEST_DESCRIPTION("Check that descriptor set bindings have a mappings"); SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::runtimeDescriptorArray); @@ -3661,15 +3661,15 @@ TEST_F(NegativeDescriptorHeap, NoMappingComputePipeline) { } )slang"; m_errorMonitor->SetDesiredError("VUID-VkComputePipelineCreateInfo-flags-11312"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); m_errorMonitor->SetDesiredError("VUID-VkComputePipelineCreateInfo-flags-11312"); - vkt::HeapComputePipeline pipe2(*m_device, slang_shader, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); + vkt::HeapComputePipelineEXT pipe2(*m_device, slang_shader, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, NoMappingMultipleMappings) { +TEST_F(NegativeDescriptorHeapEXT, NoMappingMultipleMappings) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mappings[5]; @@ -3706,11 +3706,11 @@ TEST_F(NegativeDescriptorHeap, NoMappingMultipleMappings) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-VkComputePipelineCreateInfo-flags-11312"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, NoMappingMultipleMappingsAllUsed) { +TEST_F(NegativeDescriptorHeapEXT, NoMappingMultipleMappingsAllUsed) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mappings[3]; @@ -3739,11 +3739,11 @@ TEST_F(NegativeDescriptorHeap, NoMappingMultipleMappingsAllUsed) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-VkComputePipelineCreateInfo-flags-11312"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, NoMappingMultipleMappingsMostUsed) { +TEST_F(NegativeDescriptorHeapEXT, NoMappingMultipleMappingsMostUsed) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mappings[9]; @@ -3782,11 +3782,11 @@ TEST_F(NegativeDescriptorHeap, NoMappingMultipleMappingsMostUsed) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-VkComputePipelineCreateInfo-flags-11312"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, NoMappingMultipleMappingsMany) { +TEST_F(NegativeDescriptorHeapEXT, NoMappingMultipleMappingsMany) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mappings[512]; @@ -3825,11 +3825,11 @@ TEST_F(NegativeDescriptorHeap, NoMappingMultipleMappingsMany) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-VkComputePipelineCreateInfo-flags-11312"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, EmbeddedSamplerReservedArea) { +TEST_F(NegativeDescriptorHeapEXT, EmbeddedSamplerReservedArea) { TEST_DESCRIPTION("Validate that embedded sampler mapping have reserved area"); AddRequiredExtensions(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::computeDerivativeGroupQuads); @@ -3936,8 +3936,8 @@ TEST_F(NegativeDescriptorHeap, EmbeddedSamplerReservedArea) { } )slang"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); - vkt::HeapComputePipeline pipe2(*m_device, slang_shader, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, slang_shader, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); for (int i = 0; i < 2; ++i) { m_command_buffer.Begin(); @@ -3957,7 +3957,7 @@ TEST_F(NegativeDescriptorHeap, EmbeddedSamplerReservedArea) { } } -TEST_F(NegativeDescriptorHeap, EmbeddedSamplerArray) { +TEST_F(NegativeDescriptorHeapEXT, EmbeddedSamplerArray) { TEST_DESCRIPTION("Validate that embedded sampler mapping as an array"); SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredExtensions(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME); @@ -4035,15 +4035,15 @@ TEST_F(NegativeDescriptorHeap, EmbeddedSamplerArray) { mapping_info.pMappings = mappings; m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11399"); - vkt::HeapComputePipeline pipe(*m_device, cs_source_glsl, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source_glsl, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11399"); - vkt::HeapComputePipeline pipe2(*m_device, cs_source_hlsl, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source_hlsl, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_SLANG); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, PushDataAssignedPipeline) { +TEST_F(NegativeDescriptorHeapEXT, PushDataAssignedPipeline) { TEST_DESCRIPTION("Check that push data used in shader code has been set for pipeline based shaders"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -4086,7 +4086,7 @@ TEST_F(NegativeDescriptorHeap, PushDataAssignedPipeline) { mapping_info.mappingCount = 1; mapping_info.pMappings = &mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); std::vector payload(4); m_command_buffer.Begin(); @@ -4108,7 +4108,7 @@ TEST_F(NegativeDescriptorHeap, PushDataAssignedPipeline) { } } -TEST_F(NegativeDescriptorHeap, PushDataAssignedShaderObject) { +TEST_F(NegativeDescriptorHeapEXT, PushDataAssignedShaderObject) { TEST_DESCRIPTION("Check that push data used in shader code has been set using shader object"); AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredExtensions(VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME); @@ -4187,7 +4187,7 @@ TEST_F(NegativeDescriptorHeap, PushDataAssignedShaderObject) { } } -TEST_F(NegativeDescriptorHeap, BufferDescriptorHeapUsageMemoryAllocationInfo) { +TEST_F(NegativeDescriptorHeapEXT, BufferDescriptorHeapUsageMemoryAllocationInfo) { TEST_DESCRIPTION("Validate that memory allocated for descriptor heap contains buffer device address"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -4200,7 +4200,7 @@ TEST_F(NegativeDescriptorHeap, BufferDescriptorHeapUsageMemoryAllocationInfo) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, DuplicatedPushDataSequenceIndex) { +TEST_F(NegativeDescriptorHeapEXT, DuplicatedPushDataSequenceIndex) { SetTargetApiVersion(VK_API_VERSION_1_1); AddRequiredExtensions(VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::deviceGeneratedCommands); @@ -4243,7 +4243,7 @@ TEST_F(NegativeDescriptorHeap, DuplicatedPushDataSequenceIndex) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, CaptureReplayBit) { +TEST_F(NegativeDescriptorHeapEXT, CaptureReplayBit) { SetTargetApiVersion(VK_API_VERSION_1_1); AddRequiredFeature(vkt::Feature::descriptorHeapCaptureReplay); @@ -4275,7 +4275,7 @@ TEST_F(NegativeDescriptorHeap, CaptureReplayBit) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ImageType3DView3D) { +TEST_F(NegativeDescriptorHeapEXT, ImageType3DView3D) { TEST_DESCRIPTION("Validate that input attachment cannot be a 3D image"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -4317,7 +4317,7 @@ TEST_F(NegativeDescriptorHeap, ImageType3DView3D) { } } -TEST_F(NegativeDescriptorHeap, ImageType3DView2DArray) { +TEST_F(NegativeDescriptorHeapEXT, ImageType3DView2DArray) { TEST_DESCRIPTION("Validate that input attachment cannot be a 3D image even if viewtype is 2D array"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -4371,7 +4371,7 @@ TEST_F(NegativeDescriptorHeap, ImageType3DView2DArray) { } } -TEST_F(NegativeDescriptorHeap, ImageType3DViewImage2DViewOf3D) { +TEST_F(NegativeDescriptorHeapEXT, ImageType3DViewImage2DViewOf3D) { TEST_DESCRIPTION( "Validate that input attachment cannot be a 3D image even if view type 2D and image2DViewOf3D feature is not enabled"); AddRequiredExtensions(VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME); @@ -4416,7 +4416,7 @@ TEST_F(NegativeDescriptorHeap, ImageType3DViewImage2DViewOf3D) { } } -TEST_F(NegativeDescriptorHeap, ImageType3DViewSampler2DViewOf3D) { +TEST_F(NegativeDescriptorHeapEXT, ImageType3DViewSampler2DViewOf3D) { TEST_DESCRIPTION( "Validate that input attachment cannot be a 3D image even if view type 2D and sampler2DViewOf3D feature is not enabled"); AddRequiredExtensions(VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME); @@ -4461,7 +4461,7 @@ TEST_F(NegativeDescriptorHeap, ImageType3DViewSampler2DViewOf3D) { } } -TEST_F(NegativeDescriptorHeap, ImageType3DView2DWithoutCompatibility) { +TEST_F(NegativeDescriptorHeapEXT, ImageType3DView2DWithoutCompatibility) { TEST_DESCRIPTION("Validate that image cannot be a 3D image if viewtype is 2D and no compatibility bit"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -4502,7 +4502,7 @@ TEST_F(NegativeDescriptorHeap, ImageType3DView2DWithoutCompatibility) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ImageTypeDepthStencilAttachment) { +TEST_F(NegativeDescriptorHeapEXT, ImageTypeDepthStencilAttachment) { TEST_DESCRIPTION("Validate that aspectMask contains depth or stencil if image is a depth stencil format"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -4544,7 +4544,7 @@ TEST_F(NegativeDescriptorHeap, ImageTypeDepthStencilAttachment) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, PushDataRange) { +TEST_F(NegativeDescriptorHeapEXT, PushDataRange) { TEST_DESCRIPTION("Descriptor heap with VkPushDataInfoEXT but part of the range is missing"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -4579,7 +4579,7 @@ TEST_F(NegativeDescriptorHeap, PushDataRange) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); bind_resource_info.heapRange = descriptor_heap.AddressRange(); @@ -4650,12 +4650,12 @@ TEST_F(NegativeDescriptorHeap, PushDataRange) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(NegativeDescriptorHeap, PushDataRangeNonDword) { +TEST_F(NegativeDescriptorHeapEXT, PushDataRangeNonDword) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::shaderInt8); AddRequiredFeature(vkt::Feature::storagePushConstant8); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); @@ -4673,7 +4673,7 @@ TEST_F(NegativeDescriptorHeap, PushDataRangeNonDword) { a = uint(b[0]); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); char const* cs_source2 = R"glsl( #version 450 @@ -4686,7 +4686,7 @@ TEST_F(NegativeDescriptorHeap, PushDataRangeNonDword) { a = uint(b[1]); } )glsl"; - vkt::HeapComputePipeline pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -4706,7 +4706,7 @@ TEST_F(NegativeDescriptorHeap, PushDataRangeNonDword) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, MaxPushDataSizeStatic) { +TEST_F(NegativeDescriptorHeapEXT, MaxPushDataSizeStatic) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); if (heap_props.maxPushDataSize != 256) { GTEST_SKIP() << "maxPushDataSize is not 256"; @@ -4728,7 +4728,7 @@ TEST_F(NegativeDescriptorHeap, MaxPushDataSizeStatic) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-maxPushDataSize-12455"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); char const* cs_source2 = R"glsl( @@ -4742,7 +4742,7 @@ TEST_F(NegativeDescriptorHeap, MaxPushDataSizeStatic) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-maxPushDataSize-12455"); - vkt::HeapComputePipeline pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); char const* cs_source3 = R"glsl( @@ -4757,11 +4757,11 @@ TEST_F(NegativeDescriptorHeap, MaxPushDataSizeStatic) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-maxPushDataSize-12455"); - vkt::HeapComputePipeline pipe3(*m_device, cs_source3, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe3(*m_device, cs_source3, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, NonConstantImageMemoryAccess) { +TEST_F(NegativeDescriptorHeapEXT, NonConstantImageMemoryAccess) { TEST_DESCRIPTION("Non constant image memory access with incompatible mapping source"); SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::runtimeDescriptorArray); @@ -4799,11 +4799,11 @@ TEST_F(NegativeDescriptorHeap, NonConstantImageMemoryAccess) { )glsl"; m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11318"); m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-DescriptorSet-11385"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ArrayLengthOnMappingSourceAddress) { +TEST_F(NegativeDescriptorHeapEXT, ArrayLengthOnMappingSourceAddress) { TEST_DESCRIPTION("OpArrayLength instruction on incompatible mapping source type"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -4821,11 +4821,11 @@ TEST_F(NegativeDescriptorHeap, ArrayLengthOnMappingSourceAddress) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11378"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, SamplerAllocationCount) { +TEST_F(NegativeDescriptorHeapEXT, SamplerAllocationCount) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); // limit we have in max_profile.json @@ -4854,7 +4854,7 @@ TEST_F(NegativeDescriptorHeap, SamplerAllocationCount) { mapping_info.mappingCount = 1; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, kMinimalShaderGlsl, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, kMinimalShaderGlsl, SPV_ENV_VULKAN_1_0, &mapping_info); VkSamplerCreateInfo sampler_create_info = SafeSaneSamplerCreateInfo(); for (uint32_t i = 0; i < sampler_count; i++) { @@ -4871,7 +4871,7 @@ TEST_F(NegativeDescriptorHeap, SamplerAllocationCount) { } } -TEST_F(NegativeDescriptorHeap, SamplerAllocationCountPipeline) { +TEST_F(NegativeDescriptorHeapEXT, SamplerAllocationCountPipeline) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); const uint32_t max_samplers = m_device->Physical().limits_.maxSamplerAllocationCount; @@ -4907,7 +4907,7 @@ TEST_F(NegativeDescriptorHeap, SamplerAllocationCountPipeline) { mapping_info.mappingCount = 1; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, kMinimalShaderGlsl, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, kMinimalShaderGlsl, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); @@ -4916,7 +4916,7 @@ TEST_F(NegativeDescriptorHeap, SamplerAllocationCountPipeline) { } } -TEST_F(NegativeDescriptorHeap, SamplerAllocationCountShaderObject) { +TEST_F(NegativeDescriptorHeapEXT, SamplerAllocationCountShaderObject) { AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderObject); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -4963,7 +4963,7 @@ TEST_F(NegativeDescriptorHeap, SamplerAllocationCountShaderObject) { } } -TEST_F(NegativeDescriptorHeap, MaxEmbeddedSamplers) { +TEST_F(NegativeDescriptorHeapEXT, MaxEmbeddedSamplers) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); // Creating this many emedded samplers is really slow on many drivers @@ -5003,7 +5003,7 @@ TEST_F(NegativeDescriptorHeap, MaxEmbeddedSamplers) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, SamplerAllocationTotalCountShaderObject) { +TEST_F(NegativeDescriptorHeapEXT, SamplerAllocationTotalCountShaderObject) { AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderObject); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5041,7 +5041,7 @@ TEST_F(NegativeDescriptorHeap, SamplerAllocationTotalCountShaderObject) { } } -TEST_F(NegativeDescriptorHeap, NonConstantMemoryAccess) { +TEST_F(NegativeDescriptorHeapEXT, NonConstantMemoryAccess) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::runtimeDescriptorArray); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5090,16 +5090,16 @@ TEST_F(NegativeDescriptorHeap, NonConstantMemoryAccess) { m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11318"); m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-DescriptorSet-11385"); - vkt::HeapComputePipeline pipe(*m_device, cs_source1, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source1, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11318"); m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-DescriptorSet-11385"); - vkt::HeapComputePipeline pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, UsagesValidation) { +TEST_F(NegativeDescriptorHeapEXT, UsagesValidation) { TEST_DESCRIPTION("Tests that buffers and images were created with appropriate usage flags"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5185,7 +5185,7 @@ TEST_F(NegativeDescriptorHeap, UsagesValidation) { } } -TEST_F(NegativeDescriptorHeap, InputAttachmentIsNotNull) { +TEST_F(NegativeDescriptorHeapEXT, InputAttachmentIsNotNull) { TEST_DESCRIPTION("Validate VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT cannot be nullDescriptor"); SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::nullDescriptor); @@ -5206,7 +5206,7 @@ TEST_F(NegativeDescriptorHeap, InputAttachmentIsNotNull) { } } -TEST_F(NegativeDescriptorHeap, MappedPushIsBlockUniformArray) { +TEST_F(NegativeDescriptorHeapEXT, MappedPushIsBlockUniformArray) { TEST_DESCRIPTION("Validate that mapped push data is backed by block uniform"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5229,11 +5229,11 @@ TEST_F(NegativeDescriptorHeap, MappedPushIsBlockUniformArray) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-VkPipelineShaderStageCreateInfo-pNext-11315"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, InvalidateComputeBoundDescriptorSetsBindDescriptorSets) { +TEST_F(NegativeDescriptorHeapEXT, InvalidateComputeBoundDescriptorSetsBindDescriptorSets) { TEST_DESCRIPTION("Descriptor heap cmd functions do reset previously bound with CmdBindDescriptorSets descriptor sets"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5243,7 +5243,7 @@ TEST_F(NegativeDescriptorHeap, InvalidateComputeBoundDescriptorSetsBindDescripto void main() { x = 0; } )glsl"; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); for (int i = 0; i < 3; i++) { const auto ds_type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; OneOffDescriptorSet ds(m_device, {{0, ds_type, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}}, 0, nullptr); @@ -5293,7 +5293,7 @@ TEST_F(NegativeDescriptorHeap, InvalidateComputeBoundDescriptorSetsBindDescripto } } -TEST_F(NegativeDescriptorHeap, InvalidateComputeBoundDescriptorSetsPushDescriptor) { +TEST_F(NegativeDescriptorHeapEXT, InvalidateComputeBoundDescriptorSetsPushDescriptor) { TEST_DESCRIPTION("Descriptor heap cmd functions do reset previously bound with CmdPushDataEXT descriptor sets"); AddRequiredExtensions(VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5304,7 +5304,7 @@ TEST_F(NegativeDescriptorHeap, InvalidateComputeBoundDescriptorSetsPushDescripto void main() { x = 0; } )glsl"; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); for (int i = 0; i < 3; i++) { const auto ds_type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; OneOffDescriptorSet ds(m_device, {{0, ds_type, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}}, @@ -5353,10 +5353,10 @@ TEST_F(NegativeDescriptorHeap, InvalidateComputeBoundDescriptorSetsPushDescripto } } -TEST_F(NegativeDescriptorHeap, SecondaryCmdBufferSamplerHeapUnbound) { +TEST_F(NegativeDescriptorHeapEXT, SecondaryCmdBufferSamplerHeapUnbound) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize image_offset = 0u; const VkDeviceSize buffer_offset = Align(heap_props.imageDescriptorSize, heap_props.resourceHeapAlignment); @@ -5404,7 +5404,7 @@ TEST_F(NegativeDescriptorHeap, SecondaryCmdBufferSamplerHeapUnbound) { mapping_info.mappingCount = 3u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::CommandBuffer secondary(*m_device, m_command_pool, VK_COMMAND_BUFFER_LEVEL_SECONDARY); @@ -5440,9 +5440,9 @@ TEST_F(NegativeDescriptorHeap, SecondaryCmdBufferSamplerHeapUnbound) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, SecondaryCmdBufferUnbind) { +TEST_F(NegativeDescriptorHeapEXT, SecondaryCmdBufferUnbind) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2, true); char const* cs_source = R"glsl( @@ -5459,7 +5459,7 @@ TEST_F(NegativeDescriptorHeap, SecondaryCmdBufferUnbind) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT resource_bind_info = vku::InitStructHelper(); resource_bind_info.heapRange = desc_heap.resource_heap_.AddressRange(); @@ -5488,9 +5488,9 @@ TEST_F(NegativeDescriptorHeap, SecondaryCmdBufferUnbind) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, UnboundResourceHeap) { +TEST_F(NegativeDescriptorHeapEXT, UnboundResourceHeap) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2, true); vkt::Buffer buffer_a(*m_device, 512, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -5525,7 +5525,7 @@ TEST_F(NegativeDescriptorHeap, UnboundResourceHeap) { b = 4; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); OneOffDescriptorSet descriptor_set(m_device, { {0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 2, VK_SHADER_STAGE_ALL, nullptr}, @@ -5549,7 +5549,7 @@ TEST_F(NegativeDescriptorHeap, UnboundResourceHeap) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, PushDescriptorSet) { +TEST_F(NegativeDescriptorHeapEXT, PushDescriptorSet) { AddRequiredExtensions(VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5588,7 +5588,7 @@ TEST_F(NegativeDescriptorHeap, PushDescriptorSet) { secondary.End(); } -TEST_F(NegativeDescriptorHeap, ImageDescriptorLayout) { +TEST_F(NegativeDescriptorHeapEXT, ImageDescriptorLayout) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); vkt::Image image(*m_device, 32u, 32u, VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_USAGE_SAMPLED_BIT); @@ -5618,7 +5618,7 @@ TEST_F(NegativeDescriptorHeap, ImageDescriptorLayout) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ImageDescriptorAspect) { +TEST_F(NegativeDescriptorHeapEXT, ImageDescriptorAspect) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkFormat depth_format = FindSupportedDepthStencilFormat(gpu_); @@ -5649,7 +5649,7 @@ TEST_F(NegativeDescriptorHeap, ImageDescriptorAspect) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ResetPushConstsWithPushData) { +TEST_F(NegativeDescriptorHeapEXT, ResetPushConstsWithPushData) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -5697,7 +5697,7 @@ TEST_F(NegativeDescriptorHeap, ResetPushConstsWithPushData) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, DescriptorIndexingHeapData) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorIndexingHeapData) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::runtimeDescriptorArray); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5744,18 +5744,18 @@ TEST_F(NegativeDescriptorHeap, DescriptorIndexingHeapData) { // VUID-VkPipelineShaderStageCreateInfo-pNext-11315 m_errorMonitor->SetDesiredError("but it is an array"); - vkt::HeapComputePipeline pipe(*m_device, cs_source_static, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source_static, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); // VUID-VkPipelineShaderStageCreateInfo-pNext-11315 m_errorMonitor->SetDesiredError("but it is an array"); // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4804#note_605752 m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-DescriptorSet-11385"); - vkt::HeapComputePipeline pipe2(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, DescriptorIndexingPushData) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorIndexingPushData) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::runtimeDescriptorArray); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5800,18 +5800,18 @@ TEST_F(NegativeDescriptorHeap, DescriptorIndexingPushData) { // VUID-VkPipelineShaderStageCreateInfo-pNext-11315 m_errorMonitor->SetDesiredError("but it is an array"); - vkt::HeapComputePipeline pipe(*m_device, cs_source_static, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source_static, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); // VUID-VkPipelineShaderStageCreateInfo-pNext-11315 m_errorMonitor->SetDesiredError("but it is an array"); // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4804#note_605752 m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-DescriptorSet-11385"); - vkt::HeapComputePipeline pipe2(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, DescriptorIndexingPushAddress) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorIndexingPushAddress) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::runtimeDescriptorArray); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5856,18 +5856,18 @@ TEST_F(NegativeDescriptorHeap, DescriptorIndexingPushAddress) { // VUID-VkPipelineShaderStageCreateInfo-pNext-11315 m_errorMonitor->SetDesiredError("but it is an array"); - vkt::HeapComputePipeline pipe(*m_device, cs_source_static, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source_static, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); // VUID-VkPipelineShaderStageCreateInfo-pNext-11315 m_errorMonitor->SetDesiredError("but it is an array"); // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4804#note_605752 m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-DescriptorSet-11385"); - vkt::HeapComputePipeline pipe2(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, DescriptorIndexingIndirectAddress) { +TEST_F(NegativeDescriptorHeapEXT, DescriptorIndexingIndirectAddress) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::runtimeDescriptorArray); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -5914,18 +5914,18 @@ TEST_F(NegativeDescriptorHeap, DescriptorIndexingIndirectAddress) { // VUID-VkPipelineShaderStageCreateInfo-pNext-11315 m_errorMonitor->SetDesiredError("but it is an array"); - vkt::HeapComputePipeline pipe(*m_device, cs_source_static, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source_static, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); // VUID-VkPipelineShaderStageCreateInfo-pNext-11315 m_errorMonitor->SetDesiredError("but it is an array"); // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4804#note_605752 m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-DescriptorSet-11385"); - vkt::HeapComputePipeline pipe2(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_2, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, MaxBufferRange) { +TEST_F(NegativeDescriptorHeapEXT, MaxBufferRange) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); if (!IsPlatformMockICD()) { @@ -5956,13 +5956,13 @@ TEST_F(NegativeDescriptorHeap, MaxBufferRange) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, CombinedImageSamplerMissingSamplerHeap) { +TEST_F(NegativeDescriptorHeapEXT, CombinedImageSamplerMissingSamplerHeap) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); const VkDeviceSize image_offset = 0u; const VkDeviceSize buffer_offset = Align(heap_props.imageDescriptorSize, heap_props.resourceHeapAlignment); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(buffer_offset + heap_props.bufferDescriptorSize); vkt::Buffer buffer(*m_device, sizeof(float) * 4u, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -5994,7 +5994,7 @@ TEST_F(NegativeDescriptorHeap, CombinedImageSamplerMissingSamplerHeap) { mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -6005,7 +6005,7 @@ TEST_F(NegativeDescriptorHeap, CombinedImageSamplerMissingSamplerHeap) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeap, ReadOnlyStorageBufferHlsl) { +TEST_F(NegativeDescriptorHeapEXT, ReadOnlyStorageBufferHlsl) { TEST_DESCRIPTION( "https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/12100 and " "https://gitlab.khronos.org/vulkan/vulkan/-/issues/4789"); @@ -6082,7 +6082,7 @@ TEST_F(NegativeDescriptorHeap, ReadOnlyStorageBufferHlsl) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ComputeShaderRecordMapping) { +TEST_F(NegativeDescriptorHeapEXT, ComputeShaderRecordMapping) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mappings[2]; @@ -6121,7 +6121,7 @@ TEST_F(NegativeDescriptorHeap, ComputeShaderRecordMapping) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, SamplerMappingWarning) { +TEST_F(NegativeDescriptorHeapEXT, SamplerMappingWarning) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -6170,11 +6170,11 @@ TEST_F(NegativeDescriptorHeap, SamplerMappingWarning) { m_errorMonitor->SetDesiredWarning("WARNING-VkDescriptorSetAndBindingMappingEXT-pushIndex-sampler"); m_errorMonitor->SetDesiredWarning("WARNING-VkDescriptorSetAndBindingMappingEXT-indirectIndex-sampler"); m_errorMonitor->SetDesiredWarning("WARNING-VkDescriptorSetAndBindingMappingEXT-indirectIndexArray-sampler"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, EmbeddedSamplerResourceTypeAll) { +TEST_F(NegativeDescriptorHeapEXT, EmbeddedSamplerResourceTypeAll) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = MakeSetAndBindingMapping(0, 0, 2, VK_SPIRV_RESOURCE_TYPE_ALL_EXT); @@ -6195,7 +6195,7 @@ TEST_F(NegativeDescriptorHeap, EmbeddedSamplerResourceTypeAll) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, ImageViewUsage) { +TEST_F(NegativeDescriptorHeapEXT, ImageViewUsage) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); std::vector data(static_cast(heap_props.imageDescriptorSize)); @@ -6225,7 +6225,7 @@ TEST_F(NegativeDescriptorHeap, ImageViewUsage) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeap, InputAttachmentReadOnly) { +TEST_F(NegativeDescriptorHeapEXT, InputAttachmentReadOnly) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); diff --git a/tests/unit/descriptor_heap_positive.cpp b/tests/unit/descriptor_heap_ext_positive.cpp similarity index 95% rename from tests/unit/descriptor_heap_positive.cpp rename to tests/unit/descriptor_heap_ext_positive.cpp index 00af482b8db..f67dbb66a48 100644 --- a/tests/unit/descriptor_heap_positive.cpp +++ b/tests/unit/descriptor_heap_ext_positive.cpp @@ -22,9 +22,9 @@ #include "layer_validation_tests.h" #include "pipeline_helper.h" -class PositiveDescriptorHeap : public DescriptorHeapTest {}; +class PositiveDescriptorHeapEXT : public DescriptorHeapTestEXT {}; -void DescriptorHeapTest::InitBasicDescriptorHeap() { +void DescriptorHeapTestEXT::InitBasicDescriptorHeap() { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredExtensions(VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME); AddRequiredExtensions(VK_KHR_MAINTENANCE_5_EXTENSION_NAME); @@ -36,9 +36,9 @@ void DescriptorHeapTest::InitBasicDescriptorHeap() { GetPhysicalDeviceProperties2(heap_props); } -TEST_F(PositiveDescriptorHeap, Basic) { +TEST_F(PositiveDescriptorHeapEXT, Basic) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -75,7 +75,7 @@ TEST_F(PositiveDescriptorHeap, Basic) { b = 4; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -85,7 +85,7 @@ TEST_F(PositiveDescriptorHeap, Basic) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, NormalUsageWithFeature) { +TEST_F(PositiveDescriptorHeapEXT, NormalUsageWithFeature) { TEST_DESCRIPTION("Ensure just enabling descriptor heap doesn't have false positive with a normal workflow"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); const char* cs_source = R"glsl( @@ -135,11 +135,11 @@ TEST_F(PositiveDescriptorHeap, NormalUsageWithFeature) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, ComputeBuffer) { +TEST_F(PositiveDescriptorHeapEXT, ComputeBuffer) { TEST_DESCRIPTION("Basic descriptor heap test with compute pipeline and storage buffer"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const uint32_t expected_value = 0x42424242; const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize data_buffer_size = 256; @@ -174,7 +174,7 @@ TEST_F(PositiveDescriptorHeap, ComputeBuffer) { result[gl_LocalInvocationID.x] = data[gl_LocalInvocationID.x]; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -184,7 +184,7 @@ TEST_F(PositiveDescriptorHeap, ComputeBuffer) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, GraphicsPushData) { +TEST_F(PositiveDescriptorHeapEXT, GraphicsPushData) { TEST_DESCRIPTION("Basic descriptor heap test with graphics pipeline and push data"); AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -192,7 +192,7 @@ TEST_F(PositiveDescriptorHeap, GraphicsPushData) { const uint32_t expected_value = 3; const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_stride); vkt::Buffer out_buffer(*m_device, 256, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -257,7 +257,7 @@ TEST_F(PositiveDescriptorHeap, GraphicsPushData) { } } -TEST_F(PositiveDescriptorHeap, ResourceParameterDataNull) { +TEST_F(PositiveDescriptorHeapEXT, ResourceParameterDataNull) { TEST_DESCRIPTION("Validate vkWriteResourceDescriptorsEXT null pointer when nullDescriptor enabled"); AddRequiredExtensions(VK_EXT_ROBUSTNESS_2_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::nullDescriptor); @@ -279,14 +279,14 @@ TEST_F(PositiveDescriptorHeap, ResourceParameterDataNull) { } } -TEST_F(PositiveDescriptorHeap, ResetCommandBufferOverlappingResource) { +TEST_F(PositiveDescriptorHeapEXT, ResetCommandBufferOverlappingResource) { TEST_DESCRIPTION("Validate reservedRangeOffset improperly bind to resource heap"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); if (heap_props.minResourceHeapReservedRange == 0) { GTEST_SKIP() << "Test requires minResourceHeapReservedRange != 0"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = std::max(heap_props.resourceHeapAlignment, heap_props.imageDescriptorAlignment); desc_heap.CreateResourceHeap(resource_stride * 4); @@ -314,7 +314,7 @@ TEST_F(PositiveDescriptorHeap, ResetCommandBufferOverlappingResource) { cmd_buffer2.End(); } -TEST_F(PositiveDescriptorHeap, ResetCommandBufferTypeChange) { +TEST_F(PositiveDescriptorHeapEXT, ResetCommandBufferTypeChange) { TEST_DESCRIPTION( "Validate that command buffer reset also resets descriptor heap binding as a sampler descriptor heap and buffer can be " "bound as a resource descriptor heap"); @@ -327,7 +327,7 @@ TEST_F(PositiveDescriptorHeap, ResetCommandBufferTypeChange) { GTEST_SKIP() << "Test requires minSamplerHeapReservedRange != 0"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(std::max(heap_props.samplerDescriptorSize, heap_props.bufferDescriptorSize)); vkt::CommandPool command_pool(*m_device, m_device->graphics_queue_node_index_, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT); @@ -355,12 +355,12 @@ TEST_F(PositiveDescriptorHeap, ResetCommandBufferTypeChange) { cmd_buffer1.End(); } -TEST_F(PositiveDescriptorHeap, PushData) { +TEST_F(PositiveDescriptorHeapEXT, PushData) { TEST_DESCRIPTION("Descriptor heap with VkPushDataInfoEXT, but vkCmdPushConstants() is called before and invalidated later"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_stride); vkt::Buffer buffer(*m_device, 256, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -382,7 +382,7 @@ TEST_F(PositiveDescriptorHeap, PushData) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); uint32_t src_data = 4321u; @@ -407,7 +407,7 @@ TEST_F(PositiveDescriptorHeap, PushData) { } } -TEST_F(PositiveDescriptorHeap, MixedDraws) { +TEST_F(PositiveDescriptorHeapEXT, MixedDraws) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -415,7 +415,7 @@ TEST_F(PositiveDescriptorHeap, MixedDraws) { vkt::Buffer buffer(*m_device, sizeof(uint32_t) * 4, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_stride); desc_heap.WriteBufferDescriptor(buffer, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER); @@ -502,11 +502,11 @@ TEST_F(PositiveDescriptorHeap, MixedDraws) { } } -TEST_F(PositiveDescriptorHeap, SamplerInheritance) { +TEST_F(PositiveDescriptorHeapEXT, SamplerInheritance) { TEST_DESCRIPTION("Validate that inherited ranges match primary buffer"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize * 2); vkt::CommandBuffer secondary(*m_device, m_command_pool, VK_COMMAND_BUFFER_LEVEL_SECONDARY); @@ -532,11 +532,11 @@ TEST_F(PositiveDescriptorHeap, SamplerInheritance) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, SecondaryCmdBufferMixHeap) { +TEST_F(PositiveDescriptorHeapEXT, SecondaryCmdBufferMixHeap) { TEST_DESCRIPTION("https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6662#note_613576"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize, true); @@ -556,7 +556,7 @@ TEST_F(PositiveDescriptorHeap, SecondaryCmdBufferMixHeap) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT sampler_bind_info = vku::InitStructHelper(); sampler_bind_info.heapRange = desc_heap.sampler_heap_.AddressRange(); @@ -585,11 +585,11 @@ TEST_F(PositiveDescriptorHeap, SecondaryCmdBufferMixHeap) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, ResourceInheritance) { +TEST_F(PositiveDescriptorHeapEXT, ResourceInheritance) { TEST_DESCRIPTION("Validate that inherited ranges match primary buffer"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); VkBindHeapInfoEXT bind_info = vku::InitStructHelper(); @@ -617,11 +617,11 @@ TEST_F(PositiveDescriptorHeap, ResourceInheritance) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, Sampler) { +TEST_F(PositiveDescriptorHeapEXT, Sampler) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = std::max(heap_props.imageDescriptorSize, heap_props.bufferDescriptorSize); desc_heap.CreateResourceHeap(resource_stride * 2); @@ -661,7 +661,7 @@ TEST_F(PositiveDescriptorHeap, Sampler) { VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); mapping_info.mappingCount = 3u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); @@ -688,10 +688,10 @@ TEST_F(PositiveDescriptorHeap, Sampler) { } } -TEST_F(PositiveDescriptorHeap, CombinedImageSampler) { +TEST_F(PositiveDescriptorHeapEXT, CombinedImageSampler) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize image_offset = 0u; const VkDeviceSize buffer_offset = Align(heap_props.imageDescriptorSize, heap_props.resourceHeapAlignment); desc_heap.CreateResourceHeap(buffer_offset + heap_props.bufferDescriptorSize); @@ -729,7 +729,7 @@ TEST_F(PositiveDescriptorHeap, CombinedImageSampler) { mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); @@ -756,9 +756,9 @@ TEST_F(PositiveDescriptorHeap, CombinedImageSampler) { } } -TEST_F(PositiveDescriptorHeap, UseCombinedImageSamplerIndexPushIndex) { +TEST_F(PositiveDescriptorHeapEXT, UseCombinedImageSamplerIndexPushIndex) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize * 3); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize * 3); @@ -794,7 +794,7 @@ TEST_F(PositiveDescriptorHeap, UseCombinedImageSamplerIndexPushIndex) { VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); @@ -827,9 +827,9 @@ TEST_F(PositiveDescriptorHeap, UseCombinedImageSamplerIndexPushIndex) { } } -TEST_F(PositiveDescriptorHeap, UseCombinedImageSamplerIndexIndirectIndex) { +TEST_F(PositiveDescriptorHeapEXT, UseCombinedImageSamplerIndexIndirectIndex) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize * 3); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize * 3); @@ -867,7 +867,7 @@ TEST_F(PositiveDescriptorHeap, UseCombinedImageSamplerIndexIndirectIndex) { VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); @@ -904,9 +904,9 @@ TEST_F(PositiveDescriptorHeap, UseCombinedImageSamplerIndexIndirectIndex) { } } -TEST_F(PositiveDescriptorHeap, UseCombinedImageSamplerIndexIndirectIndexArray) { +TEST_F(PositiveDescriptorHeapEXT, UseCombinedImageSamplerIndexIndirectIndexArray) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize * 3); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize * 3); @@ -952,7 +952,7 @@ TEST_F(PositiveDescriptorHeap, UseCombinedImageSamplerIndexIndirectIndexArray) { VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); mapping_info.mappingCount = 3u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); @@ -993,11 +993,11 @@ TEST_F(PositiveDescriptorHeap, UseCombinedImageSamplerIndexIndirectIndexArray) { } } -TEST_F(PositiveDescriptorHeap, EmbeddedSampler) { +TEST_F(PositiveDescriptorHeapEXT, EmbeddedSampler) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize image_offset = 0u; const VkDeviceSize buffer_offset = Align(heap_props.imageDescriptorSize, heap_props.resourceHeapAlignment); desc_heap.CreateResourceHeap(buffer_offset + heap_props.bufferDescriptorSize); @@ -1043,7 +1043,7 @@ TEST_F(PositiveDescriptorHeap, EmbeddedSampler) { mapping_info.mappingCount = 3u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); @@ -1070,11 +1070,11 @@ TEST_F(PositiveDescriptorHeap, EmbeddedSampler) { } } -TEST_F(PositiveDescriptorHeap, EmbeddedSamplerNoBoundHeap) { +TEST_F(PositiveDescriptorHeapEXT, EmbeddedSamplerNoBoundHeap) { TEST_DESCRIPTION("https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/11558"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize buffer_offset = 0u; const VkDeviceSize image_offset = Align(heap_props.bufferDescriptorSize, heap_props.resourceHeapAlignment); desc_heap.CreateResourceHeap(image_offset + heap_props.imageDescriptorSize); @@ -1116,7 +1116,7 @@ TEST_F(PositiveDescriptorHeap, EmbeddedSamplerNoBoundHeap) { result[gl_LocalInvocationIndex] = int(color.r); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); // Don't need to call vkCmdBindSamplerHeapEXT if only using embedded m_command_buffer.Begin(); @@ -1128,7 +1128,7 @@ TEST_F(PositiveDescriptorHeap, EmbeddedSamplerNoBoundHeap) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, MappingSourceHeapWithPushIndex) { +TEST_F(PositiveDescriptorHeapEXT, MappingSourceHeapWithPushIndex) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -1139,7 +1139,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourceHeapWithPushIndex) { const VkDeviceSize offset = heap_props.bufferDescriptorSize * (push_offset + heap_offset); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(offset + resource_stride); vkt::Buffer buffer(*m_device, sizeof(uint32_t) * 4, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -1205,7 +1205,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourceHeapWithPushIndex) { } } -TEST_F(PositiveDescriptorHeap, MappingSourceHeapWithIndirectIndex) { +TEST_F(PositiveDescriptorHeapEXT, MappingSourceHeapWithIndirectIndex) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -1219,7 +1219,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourceHeapWithIndirectIndex) { heap_index_data[address_offset / sizeof(uint32_t)] = static_cast(offset / heap_props.bufferDescriptorSize); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(offset + resource_stride); vkt::Buffer buffer(*m_device, sizeof(uint32_t) * 4, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -1289,7 +1289,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourceHeapWithIndirectIndex) { } } -TEST_F(PositiveDescriptorHeap, MappingSourceHeapWithIndirectIndexArray) { +TEST_F(PositiveDescriptorHeapEXT, MappingSourceHeapWithIndirectIndexArray) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -1303,7 +1303,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourceHeapWithIndirectIndexArray) { heap_index_data[address_offset / sizeof(uint32_t)] = static_cast(offset / heap_props.bufferDescriptorSize); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(offset + resource_stride); vkt::Buffer buffer(*m_device, sizeof(uint32_t) * 4, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -1372,7 +1372,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourceHeapWithIndirectIndexArray) { } } -TEST_F(PositiveDescriptorHeap, MappingSourceHeapData) { +TEST_F(PositiveDescriptorHeapEXT, MappingSourceHeapData) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -1381,7 +1381,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourceHeapData) { // [ padding, read_data, padding, write_data descriptor] const uint32_t read_data_alignment = static_cast(physDevProps_.limits.minUniformBufferOffsetAlignment); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); // large enought to hold everything desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 8); @@ -1463,7 +1463,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourceHeapData) { } } -TEST_F(PositiveDescriptorHeap, MappingSourcePushData) { +TEST_F(PositiveDescriptorHeapEXT, MappingSourcePushData) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -1474,7 +1474,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourcePushData) { const VkDeviceSize write_offset = Align(read_offset + heap_props.bufferDescriptorSize * 7u, heap_props.bufferDescriptorSize); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(write_offset + resource_stride); desc_heap.WriteBufferDescriptorAtOffset(write_buffer, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, write_offset); @@ -1551,7 +1551,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourcePushData) { } } -TEST_F(PositiveDescriptorHeap, MappingSourcePushAddress) { +TEST_F(PositiveDescriptorHeapEXT, MappingSourcePushAddress) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -1567,7 +1567,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourcePushAddress) { const VkDeviceSize write_offset = Align(read_offset + heap_props.bufferDescriptorSize * 7u, heap_props.bufferDescriptorSize); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(write_offset + resource_stride); desc_heap.WriteBufferDescriptorAtOffset(write_buffer, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, write_offset); @@ -1641,7 +1641,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourcePushAddress) { } } -TEST_F(PositiveDescriptorHeap, MappingSourceIndirectAddress) { +TEST_F(PositiveDescriptorHeapEXT, MappingSourceIndirectAddress) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -1663,7 +1663,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourceIndirectAddress) { const VkDeviceSize write_offset = Align(read_offset + heap_props.bufferDescriptorSize * 7u, heap_props.bufferDescriptorSize); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(write_offset + resource_stride); desc_heap.WriteBufferDescriptorAtOffset(write_buffer, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, write_offset); @@ -1738,13 +1738,13 @@ TEST_F(PositiveDescriptorHeap, MappingSourceIndirectAddress) { } } -TEST_F(PositiveDescriptorHeap, NestedResourceInheritance) { +TEST_F(PositiveDescriptorHeapEXT, NestedResourceInheritance) { TEST_DESCRIPTION("Validate that inherited ranges match primary buffer"); AddRequiredExtensions(VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::nestedCommandBuffer); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); vkt::CommandBuffer secondary1(*m_device, m_command_pool, VK_COMMAND_BUFFER_LEVEL_SECONDARY); @@ -1775,7 +1775,7 @@ TEST_F(PositiveDescriptorHeap, NestedResourceInheritance) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, ConstantMemoryAccess) { +TEST_F(PositiveDescriptorHeapEXT, ConstantMemoryAccess) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0, VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT); @@ -1793,7 +1793,7 @@ TEST_F(PositiveDescriptorHeap, ConstantMemoryAccess) { data[0] = 4u; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source1, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source1, SPV_ENV_VULKAN_1_0, &mapping_info); char const* cs_source2 = R"glsl( #version 450 @@ -1805,10 +1805,10 @@ TEST_F(PositiveDescriptorHeap, ConstantMemoryAccess) { atomicExchange(data[0], 4u); } )glsl"; - vkt::HeapComputePipeline pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); } -TEST_F(PositiveDescriptorHeap, ConstantImageMemoryAccess) { +TEST_F(PositiveDescriptorHeapEXT, ConstantImageMemoryAccess) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mappings[3]; @@ -1840,10 +1840,10 @@ TEST_F(PositiveDescriptorHeap, ConstantImageMemoryAccess) { data = texture(sampler2D(tex[7], sampl), vec2(0.5f)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); } -TEST_F(PositiveDescriptorHeap, CmdPushData) { +TEST_F(PositiveDescriptorHeapEXT, CmdPushData) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); std::vector payload(static_cast(heap_props.maxPushDataSize)); @@ -1868,12 +1868,12 @@ TEST_F(PositiveDescriptorHeap, CmdPushData) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, PushDataUnusedStatic) { +TEST_F(PositiveDescriptorHeapEXT, PushDataUnusedStatic) { TEST_DESCRIPTION("https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6753"); AddRequiredExtensions(VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); @@ -1896,7 +1896,7 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedStatic) { data = b + c; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); uint8_t data[8]; @@ -1910,12 +1910,12 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedStatic) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, PushDataUnusedStaticIndex) { +TEST_F(PositiveDescriptorHeapEXT, PushDataUnusedStaticIndex) { TEST_DESCRIPTION("https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6753"); AddRequiredExtensions(VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); @@ -1939,7 +1939,7 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedStaticIndex) { data = c[x]; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); uint8_t data[32]; @@ -1953,12 +1953,12 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedStaticIndex) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, PushDataUnusedDynamic) { +TEST_F(PositiveDescriptorHeapEXT, PushDataUnusedDynamic) { TEST_DESCRIPTION("https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6753"); AddRequiredExtensions(VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); @@ -1979,7 +1979,7 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedDynamic) { data = b[a]; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); uint8_t data[8]; @@ -1993,12 +1993,12 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedDynamic) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, PushDataUnusedHole) { +TEST_F(PositiveDescriptorHeapEXT, PushDataUnusedHole) { TEST_DESCRIPTION("https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6753"); AddRequiredExtensions(VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); @@ -2019,7 +2019,7 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedHole) { data = a + b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); uint8_t data = 0; @@ -2034,12 +2034,12 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedHole) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, PushDataUnusedStructStaticIndex) { +TEST_F(PositiveDescriptorHeapEXT, PushDataUnusedStructStaticIndex) { TEST_DESCRIPTION("https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6753"); AddRequiredExtensions(VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); @@ -2065,7 +2065,7 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedStructStaticIndex) { data = a[0].a + a[1].a; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_command_buffer.Begin(); uint8_t data = 0; @@ -2080,12 +2080,12 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedStructStaticIndex) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, PushDataUnusedChainedAccessChains) { +TEST_F(PositiveDescriptorHeapEXT, PushDataUnusedChainedAccessChains) { TEST_DESCRIPTION("https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6753"); AddRequiredExtensions(VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME); RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); @@ -2137,7 +2137,7 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedChainedAccessChains) { OpReturn OpFunctionEnd )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_ASM); m_command_buffer.Begin(); uint8_t data = 0; @@ -2152,14 +2152,14 @@ TEST_F(PositiveDescriptorHeap, PushDataUnusedChainedAccessChains) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, DescriptorBufferInvalidating) { +TEST_F(PositiveDescriptorHeapEXT, DescriptorBufferInvalidating) { TEST_DESCRIPTION("https://gitlab.khronos.org/vulkan/vulkan/-/merge_requests/7504#note_616506"); AddRequiredExtensions(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::descriptorBuffer); RETURN_IF_SKIP(InitBasicDescriptorHeap()); vkt::Buffer descriptor_buffer(*m_device, 256u, VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT, vkt::device_address); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); VkDescriptorSetAndBindingMappingEXT mappings[2]; @@ -2183,7 +2183,7 @@ TEST_F(PositiveDescriptorHeap, DescriptorBufferInvalidating) { b = 4; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -2197,7 +2197,7 @@ TEST_F(PositiveDescriptorHeap, DescriptorBufferInvalidating) { vk::CmdDispatch(m_command_buffer, 1, 1, 1); } -TEST_F(PositiveDescriptorHeap, ResourceMask) { +TEST_F(PositiveDescriptorHeapEXT, ResourceMask) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); uint32_t resource_offset = 0; @@ -2217,7 +2217,7 @@ TEST_F(PositiveDescriptorHeap, ResourceMask) { resource_offset += (uint32_t)heap_props.bufferDescriptorSize; const VkDeviceSize resource_heap_size_app = Align(resource_offset, (uint32_t)heap_props.resourceHeapAlignment); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_heap_size_app); const VkDeviceSize sampler_heap_size_app = heap_props.samplerDescriptorSize; @@ -2298,7 +2298,7 @@ TEST_F(PositiveDescriptorHeap, ResourceMask) { imageStore(readWriteImage, ivec2(0, 0), color); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2309,7 +2309,7 @@ TEST_F(PositiveDescriptorHeap, ResourceMask) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, ResourceMaskSameBinding) { +TEST_F(PositiveDescriptorHeapEXT, ResourceMaskSameBinding) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); uint32_t resource_offset = 0; @@ -2329,7 +2329,7 @@ TEST_F(PositiveDescriptorHeap, ResourceMaskSameBinding) { resource_offset += (uint32_t)heap_props.bufferDescriptorSize; const VkDeviceSize resource_heap_size_app = Align(resource_offset, (uint32_t)heap_props.resourceHeapAlignment); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_heap_size_app); const VkDeviceSize sampler_heap_size_app = heap_props.samplerDescriptorSize; @@ -2525,7 +2525,7 @@ TEST_F(PositiveDescriptorHeap, ResourceMaskSameBinding) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, spirv, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, spirv, SPV_ENV_VULKAN_1_0, &mapping_info, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2536,7 +2536,7 @@ TEST_F(PositiveDescriptorHeap, ResourceMaskSameBinding) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, UboAndSsboBindings) { +TEST_F(PositiveDescriptorHeapEXT, UboAndSsboBindings) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); char const* cs_source = R"glsl( @@ -2623,10 +2623,10 @@ TEST_F(PositiveDescriptorHeap, UboAndSsboBindings) { mapping_info.mappingCount = 32; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); } -TEST_F(PositiveDescriptorHeap, NonConstantMemoryAccess) { +TEST_F(PositiveDescriptorHeapEXT, NonConstantMemoryAccess) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mappings[2]; @@ -2652,7 +2652,7 @@ TEST_F(PositiveDescriptorHeap, NonConstantMemoryAccess) { data[index] = 4u; } )glsl"; - vkt::HeapComputePipeline pipe1(*m_device, cs_source1, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe1(*m_device, cs_source1, SPV_ENV_VULKAN_1_0, &mapping_info); char const* cs_source2 = R"glsl( #version 450 @@ -2667,10 +2667,10 @@ TEST_F(PositiveDescriptorHeap, NonConstantMemoryAccess) { ssbos[37].data[index] = 4u; } )glsl"; - vkt::HeapComputePipeline pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); } -TEST_F(PositiveDescriptorHeap, PartitionedAccelerationStructure) { +TEST_F(PositiveDescriptorHeapEXT, PartitionedAccelerationStructure) { TEST_DESCRIPTION("Test WriteResourceDescriptorsEXT with PTLAS descriptor type"); SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredExtensions(VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME); @@ -2698,7 +2698,7 @@ TEST_F(PositiveDescriptorHeap, PartitionedAccelerationStructure) { vk::WriteResourceDescriptorsEXT(*m_device, 1u, &resource_info, &descriptor); } -TEST_F(PositiveDescriptorHeap, ComputeTensor) { +TEST_F(PositiveDescriptorHeapEXT, ComputeTensor) { TEST_DESCRIPTION("Create and execute a shader using a tensor via descriptor heap"); SetTargetApiVersion(VK_API_VERSION_1_4); AddRequiredExtensions(VK_ARM_TENSORS_EXTENSION_NAME); @@ -2736,7 +2736,7 @@ TEST_F(PositiveDescriptorHeap, ComputeTensor) { const VkDeviceSize tensor_desc_offset = 0; const VkDeviceSize buffer_desc_offset = resource_stride; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_stride * 2); constexpr uint32_t n_resources = 2; @@ -2773,7 +2773,7 @@ TEST_F(PositiveDescriptorHeap, ComputeTensor) { mapping_info.mappingCount = n_resources; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, kMinimalTensorGlsl, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, kMinimalTensorGlsl, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2783,7 +2783,7 @@ TEST_F(PositiveDescriptorHeap, ComputeTensor) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, MappingSourceWithoutHeap) { +TEST_F(PositiveDescriptorHeapEXT, MappingSourceWithoutHeap) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -2851,7 +2851,7 @@ TEST_F(PositiveDescriptorHeap, MappingSourceWithoutHeap) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, YcbcrImage) { +TEST_F(PositiveDescriptorHeapEXT, YcbcrImage) { AddRequiredFeature(vkt::Feature::samplerYcbcrConversion); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -2863,7 +2863,7 @@ TEST_F(PositiveDescriptorHeap, YcbcrImage) { // Handle if driver has combinedImageSamplerDescriptorCount of 4 (the most it should ever possibily be) const size_t ycbcr_descriptor_size = heap_props.imageDescriptorSize * 4; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(ycbcr_descriptor_size); auto image_ci = @@ -2951,7 +2951,7 @@ TEST_F(PositiveDescriptorHeap, YcbcrImage) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, YcbcrImageDifferentMapping) { +TEST_F(PositiveDescriptorHeapEXT, YcbcrImageDifferentMapping) { TEST_DESCRIPTION("https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/12108"); AddRequiredFeature(vkt::Feature::samplerYcbcrConversion); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -3025,7 +3025,7 @@ TEST_F(PositiveDescriptorHeap, YcbcrImageDifferentMapping) { pipe.CreateGraphicsPipeline(false); } -TEST_F(PositiveDescriptorHeap, YcbcrImageSharedMapping) { +TEST_F(PositiveDescriptorHeapEXT, YcbcrImageSharedMapping) { TEST_DESCRIPTION("https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/12108"); AddRequiredFeature(vkt::Feature::samplerYcbcrConversion); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -3089,7 +3089,7 @@ TEST_F(PositiveDescriptorHeap, YcbcrImageSharedMapping) { vkt::Sampler sampler(*m_device, sampler_info); } -TEST_F(PositiveDescriptorHeap, YcbcrImageShaderObject) { +TEST_F(PositiveDescriptorHeapEXT, YcbcrImageShaderObject) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::samplerYcbcrConversion); @@ -3105,7 +3105,7 @@ TEST_F(PositiveDescriptorHeap, YcbcrImageShaderObject) { // Handle if driver has combinedImageSamplerDescriptorCount of 4 (the most it should ever possibily be) const size_t ycbcr_descriptor_size = heap_props.imageDescriptorSize * 4; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(ycbcr_descriptor_size); auto image_ci = @@ -3196,7 +3196,7 @@ TEST_F(PositiveDescriptorHeap, YcbcrImageShaderObject) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, ResetInheritanceDescriptorHeapInfo) { +TEST_F(PositiveDescriptorHeapEXT, ResetInheritanceDescriptorHeapInfo) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); const VkDeviceSize heap_size = heap_props.minSamplerHeapReservedRange + 2 * heap_props.samplerDescriptorSize; @@ -3232,12 +3232,12 @@ TEST_F(PositiveDescriptorHeap, ResetInheritanceDescriptorHeapInfo) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, NullDescriptorBuffer) { +TEST_F(PositiveDescriptorHeapEXT, NullDescriptorBuffer) { AddRequiredFeature(vkt::Feature::nullDescriptor); RETURN_IF_SKIP(InitBasicDescriptorHeap()); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_stride * 2); desc_heap.WriteNullDescriptorAtOffset(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0); @@ -3266,7 +3266,7 @@ TEST_F(PositiveDescriptorHeap, NullDescriptorBuffer) { b = a; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -3276,14 +3276,14 @@ TEST_F(PositiveDescriptorHeap, NullDescriptorBuffer) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, DescriptorIndexing) { +TEST_F(PositiveDescriptorHeapEXT, DescriptorIndexing) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); const VkDeviceSize ubo_offset = physDevProps_.limits.minUniformBufferOffsetAlignment; const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; // [SSBO, UBO(0), UBO(1), UBO(2), .... UBO(15)] // Where SSBO is the output - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_stride * 17); vkt::Buffer ubo_buffer(*m_device, (ubo_offset * 16) + 16, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); @@ -3396,7 +3396,7 @@ TEST_F(PositiveDescriptorHeap, DescriptorIndexing) { mapping_info.mappingCount = 5u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -3430,13 +3430,13 @@ TEST_F(PositiveDescriptorHeap, DescriptorIndexing) { } } -TEST_F(PositiveDescriptorHeap, ReservedRangeInFront) { +TEST_F(PositiveDescriptorHeapEXT, ReservedRangeInFront) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); const VkDeviceSize image_offset = 0u; const VkDeviceSize buffer_offset = Align(heap_props.imageDescriptorSize, heap_props.resourceHeapAlignment); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(buffer_offset + heap_props.bufferDescriptorSize, true); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize, true); @@ -3477,7 +3477,7 @@ TEST_F(PositiveDescriptorHeap, ReservedRangeInFront) { mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); @@ -3504,7 +3504,7 @@ TEST_F(PositiveDescriptorHeap, ReservedRangeInFront) { } } -TEST_F(PositiveDescriptorHeap, ComputeShaderRecordMapping) { +TEST_F(PositiveDescriptorHeapEXT, ComputeShaderRecordMapping) { TEST_DESCRIPTION("You are allowed to have bogus SHADER_RECORD if it doesn't match anything in the shader"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -3540,9 +3540,9 @@ TEST_F(PositiveDescriptorHeap, ComputeShaderRecordMapping) { pipe.CreateComputePipeline(false); } -TEST_F(PositiveDescriptorHeap, MaxBindingCount) { +TEST_F(PositiveDescriptorHeapEXT, MaxBindingCount) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -3570,7 +3570,7 @@ TEST_F(PositiveDescriptorHeap, MaxBindingCount) { b = a; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -3580,7 +3580,7 @@ TEST_F(PositiveDescriptorHeap, MaxBindingCount) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, EmbeddedSamplerAlignment) { +TEST_F(PositiveDescriptorHeapEXT, EmbeddedSamplerAlignment) { TEST_DESCRIPTION("Ignore invalid sampler mappings when using embedded samplers"); RETURN_IF_SKIP(InitBasicDescriptorHeap()); @@ -3602,16 +3602,16 @@ TEST_F(PositiveDescriptorHeap, EmbeddedSamplerAlignment) { vec4 color = textureLod(tex, vec2(gl_GlobalInvocationID.xy), 0); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); } -TEST_F(PositiveDescriptorHeap, ImageViewUsage) { +TEST_F(PositiveDescriptorHeapEXT, ImageViewUsage) { AddRequiredExtensions(VK_KHR_EXTENDED_FLAGS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::extendedFlags); RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize); vkt::Image image(*m_device, 32, 32, VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_STORAGE_BIT); @@ -3677,16 +3677,16 @@ TEST_F(PositiveDescriptorHeap, ImageViewUsage) { m_command_buffer.End(); } -TEST_F(PositiveDescriptorHeap, SecondSamplerHeap) { +TEST_F(PositiveDescriptorHeapEXT, SecondSamplerHeap) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); if (heap_props.minSamplerHeapReservedRange == 0) { GTEST_SKIP() << "Test requires minSamplerHeapReservedRange != 0"; } - vkt::DescriptorHeap heap1(*this); + vkt::DescriptorHeapEXT heap1(*this); heap1.CreateSamplerHeap(heap_props.samplerDescriptorSize); - vkt::DescriptorHeap heap2(*this); + vkt::DescriptorHeapEXT heap2(*this); heap2.CreateSamplerHeap(heap_props.samplerDescriptorSize); vkt::CommandBuffer cb1(*m_device, m_command_pool); @@ -3707,7 +3707,7 @@ TEST_F(PositiveDescriptorHeap, SecondSamplerHeap) { m_default_queue->SubmitAndWait(cb2); } -TEST_F(PositiveDescriptorHeap, InputAttachment) { +TEST_F(PositiveDescriptorHeapEXT, InputAttachment) { RETURN_IF_SKIP(InitBasicDescriptorHeap()); InitRenderTarget(); @@ -3720,7 +3720,7 @@ TEST_F(PositiveDescriptorHeap, InputAttachment) { vkt::ImageView image_view = image.CreateView(); vkt::Framebuffer fp(*m_device, rp, 1, &image_view.handle()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize); desc_heap.WriteImageDescriptor(image, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_IMAGE_LAYOUT_GENERAL); @@ -3766,7 +3766,7 @@ TEST_F(PositiveDescriptorHeap, InputAttachment) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveDescriptorHeap, InputAttachmentLocalRead) { +TEST_F(PositiveDescriptorHeapEXT, InputAttachmentLocalRead) { TEST_DESCRIPTION("Test both dynamic rendering and injecting a NonWritable"); AddRequiredExtensions(VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::dynamicRendering); @@ -3778,7 +3778,7 @@ TEST_F(PositiveDescriptorHeap, InputAttachmentLocalRead) { image.SetLayout(VK_IMAGE_LAYOUT_GENERAL); vkt::ImageView image_view = image.CreateView(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize); desc_heap.WriteImageDescriptor(image, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_IMAGE_LAYOUT_GENERAL); diff --git a/tests/unit/descriptor_heap_untyped.cpp b/tests/unit/descriptor_heap_untyped_ext.cpp similarity index 91% rename from tests/unit/descriptor_heap_untyped.cpp rename to tests/unit/descriptor_heap_untyped_ext.cpp index def58b00551..70dc2abdd03 100644 --- a/tests/unit/descriptor_heap_untyped.cpp +++ b/tests/unit/descriptor_heap_untyped_ext.cpp @@ -17,9 +17,9 @@ #include "layer_validation_tests.h" #include "pipeline_helper.h" -class NegativeDescriptorHeapUntyped : public DescriptorHeapTest {}; +class NegativeDescriptorHeapUntypedEXT : public DescriptorHeapTestEXT {}; -TEST_F(NegativeDescriptorHeapUntyped, PipelineLayoutNotNull) { +TEST_F(NegativeDescriptorHeapUntypedEXT, PipelineLayoutNotNull) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); char const* cs_source = R"glsl( @@ -39,7 +39,7 @@ TEST_F(NegativeDescriptorHeapUntyped, PipelineLayoutNotNull) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeapUntyped, ResourceHeapNotBound) { +TEST_F(NegativeDescriptorHeapUntypedEXT, ResourceHeapNotBound) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); vkt::Buffer buffer_a(*m_device, 32, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -58,7 +58,7 @@ TEST_F(NegativeDescriptorHeapUntyped, ResourceHeapNotBound) { heap[73].a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -68,11 +68,11 @@ TEST_F(NegativeDescriptorHeapUntyped, ResourceHeapNotBound) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeapUntyped, SamplerHeapNotBound) { +TEST_F(NegativeDescriptorHeapUntypedEXT, SamplerHeapNotBound) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(256); char const* cs_source = R"glsl( @@ -87,7 +87,7 @@ TEST_F(NegativeDescriptorHeapUntyped, SamplerHeapNotBound) { heapBuffer[16].data = texture(sampler2D(heapTextures[0], heapSamplers[0]), vec2(0.5f)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); @@ -99,11 +99,11 @@ TEST_F(NegativeDescriptorHeapUntyped, SamplerHeapNotBound) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeapUntyped, SecondaryCmdBufferHeapMissingInheritance) { +TEST_F(NegativeDescriptorHeapUntypedEXT, SecondaryCmdBufferHeapMissingInheritance) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -166,11 +166,11 @@ TEST_F(NegativeDescriptorHeapUntyped, SecondaryCmdBufferHeapMissingInheritance) secondary.End(); } -TEST_F(NegativeDescriptorHeapUntyped, SecondaryCmdBufferResourceHeapUnbound) { +TEST_F(NegativeDescriptorHeapUntypedEXT, SecondaryCmdBufferResourceHeapUnbound) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -245,7 +245,7 @@ TEST_F(NegativeDescriptorHeapUntyped, SecondaryCmdBufferResourceHeapUnbound) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeapUntyped, OffsetIdNotAlignedBuffer) { +TEST_F(NegativeDescriptorHeapUntypedEXT, OffsetIdNotAlignedBuffer) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); // What the shader looks like @@ -302,11 +302,11 @@ TEST_F(NegativeDescriptorHeapUntyped, OffsetIdNotAlignedBuffer) { )"; m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-bufferDescriptorAlignment-11478"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeapUntyped, OffsetIdNotAlignedMixedType) { +TEST_F(NegativeDescriptorHeapUntypedEXT, OffsetIdNotAlignedMixedType) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); bool is_aligned = (heap_props.samplerDescriptorSize & (heap_props.imageDescriptorAlignment - 1)) == 0; @@ -373,7 +373,7 @@ TEST_F(NegativeDescriptorHeapUntyped, OffsetIdNotAlignedMixedType) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeapUntyped, OffsetIdNotAlignedImageAndSampler) { +TEST_F(NegativeDescriptorHeapUntypedEXT, OffsetIdNotAlignedImageAndSampler) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); char const* cs_source = R"( @@ -408,11 +408,11 @@ TEST_F(NegativeDescriptorHeapUntyped, OffsetIdNotAlignedImageAndSampler) { )"; m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-samplerDescriptorAlignment-11476"); m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-imageDescriptorAlignment-11477"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeapUntyped, OffsetIdNotAlignedConstant) { +TEST_F(NegativeDescriptorHeapUntypedEXT, OffsetIdNotAlignedConstant) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); char const* cs_source = R"( @@ -441,11 +441,11 @@ TEST_F(NegativeDescriptorHeapUntyped, OffsetIdNotAlignedConstant) { OpFunctionEnd )"; m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-imageDescriptorAlignment-11477"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeapUntyped, OffsetIdNotAlignedSpecConstantDefault) { +TEST_F(NegativeDescriptorHeapUntypedEXT, OffsetIdNotAlignedSpecConstantDefault) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); char const* cs_source = R"( @@ -478,15 +478,15 @@ TEST_F(NegativeDescriptorHeapUntyped, OffsetIdNotAlignedSpecConstantDefault) { OpFunctionEnd )"; m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-imageDescriptorAlignment-11477"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); m_errorMonitor->VerifyFound(); } -TEST_F(NegativeDescriptorHeapUntyped, SamplerHeapBoundResourceHeapNotBound) { +TEST_F(NegativeDescriptorHeapUntypedEXT, SamplerHeapBoundResourceHeapNotBound) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); VkSamplerCreateInfo sampler_info = SafeSaneSamplerCreateInfo(); @@ -505,7 +505,7 @@ TEST_F(NegativeDescriptorHeapUntyped, SamplerHeapBoundResourceHeapNotBound) { heapBuffer[16].data = texture(sampler2D(heapTextures[0], heapSamplers[0]), vec2(0.5f)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -516,7 +516,7 @@ TEST_F(NegativeDescriptorHeapUntyped, SamplerHeapBoundResourceHeapNotBound) { m_command_buffer.End(); } -TEST_F(NegativeDescriptorHeapUntyped, GlslStructuredBadSize) { +TEST_F(NegativeDescriptorHeapUntypedEXT, GlslStructuredBadSize) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); if (heap_props.bufferDescriptorSize <= 4) { GTEST_SKIP() << "bufferDescriptorSize too small"; @@ -542,6 +542,6 @@ TEST_F(NegativeDescriptorHeapUntyped, GlslStructuredBadSize) { } )glsl"; m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-bufferDescriptorAlignment-11478"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_errorMonitor->VerifyFound(); } \ No newline at end of file diff --git a/tests/unit/descriptor_heap_untyped_positive.cpp b/tests/unit/descriptor_heap_untyped_ext_positive.cpp similarity index 94% rename from tests/unit/descriptor_heap_untyped_positive.cpp rename to tests/unit/descriptor_heap_untyped_ext_positive.cpp index 9eb2ff578c1..e431240e703 100644 --- a/tests/unit/descriptor_heap_untyped_positive.cpp +++ b/tests/unit/descriptor_heap_untyped_ext_positive.cpp @@ -21,9 +21,9 @@ constexpr uint32_t kMaxSSBO = 128; // max bufferDescriptorSize is allowed to be -class PositiveDescriptorHeapUntyped : public DescriptorHeapTest {}; +class PositiveDescriptorHeapUntypedEXT : public DescriptorHeapTestEXT {}; -void DescriptorHeapTest::InitUntypedDescriptorHeap() { +void DescriptorHeapTestEXT::InitUntypedDescriptorHeap() { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredExtensions(VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME); AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); @@ -35,10 +35,10 @@ void DescriptorHeapTest::InitUntypedDescriptorHeap() { GetPhysicalDeviceProperties2(heap_props); } -TEST_F(PositiveDescriptorHeapUntyped, BasicBuffer) { +TEST_F(PositiveDescriptorHeapUntypedEXT, BasicBuffer) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -57,7 +57,7 @@ TEST_F(PositiveDescriptorHeapUntyped, BasicBuffer) { heap[0].a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); uint32_t src_data = 4321u; @@ -82,10 +82,10 @@ TEST_F(PositiveDescriptorHeapUntyped, BasicBuffer) { } } -TEST_F(PositiveDescriptorHeapUntyped, Buffer) { +TEST_F(PositiveDescriptorHeapUntypedEXT, Buffer) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -123,7 +123,7 @@ TEST_F(PositiveDescriptorHeapUntyped, Buffer) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, spirv, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, spirv, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -138,7 +138,7 @@ TEST_F(PositiveDescriptorHeapUntyped, Buffer) { } } -TEST_F(PositiveDescriptorHeapUntyped, ArrayStrideIdEXT) { +TEST_F(PositiveDescriptorHeapUntypedEXT, ArrayStrideIdEXT) { SetTargetApiVersion(VK_API_VERSION_1_4); RETURN_IF_SKIP(InitUntypedDescriptorHeap()); @@ -180,10 +180,10 @@ TEST_F(PositiveDescriptorHeapUntyped, ArrayStrideIdEXT) { const VkSpecializationMapEntry entry = {0, 0, sizeof(uint32_t)}; const VkSpecializationInfo specialization_info = {1, &entry, sizeof(uint32_t), &data}; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_4, nullptr, SPV_SOURCE_ASM, &specialization_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_4, nullptr, SPV_SOURCE_ASM, &specialization_info); } -TEST_F(PositiveDescriptorHeapUntyped, ImageAndSampler) { +TEST_F(PositiveDescriptorHeapUntypedEXT, ImageAndSampler) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); InitRenderTarget(); @@ -195,7 +195,7 @@ TEST_F(PositiveDescriptorHeapUntyped, ImageAndSampler) { const VkDeviceSize buffer_size = heap_props.bufferDescriptorSize; const VkDeviceSize resource_heap_app_size = buffer_offset + buffer_size; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_heap_app_size); vkt::Buffer buffer(*m_device, 256, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -239,7 +239,7 @@ TEST_F(PositiveDescriptorHeapUntyped, ImageAndSampler) { heapBuffer[16].data = texture(sampler2D(heapTextures[0], heapSamplers[0]), vec2(0.5f)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); @@ -266,7 +266,7 @@ TEST_F(PositiveDescriptorHeapUntyped, ImageAndSampler) { } } -TEST_F(PositiveDescriptorHeapUntyped, ImageAndSamplerSlang) { +TEST_F(PositiveDescriptorHeapUntypedEXT, ImageAndSamplerSlang) { TEST_DESCRIPTION("called without -spirv-unified-descriptor-heap-stride"); AddRequiredExtensions(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::computeDerivativeGroupQuads); @@ -280,7 +280,7 @@ TEST_F(PositiveDescriptorHeapUntyped, ImageAndSamplerSlang) { const VkDeviceSize image_offset = heap_props.imageDescriptorSize * image_index; const VkDeviceSize buffer_offset = heap_props.bufferDescriptorSize * buffer_index; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_stride * 10); vkt::Buffer buffer(*m_device, 256, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -388,7 +388,7 @@ TEST_F(PositiveDescriptorHeapUntyped, ImageAndSamplerSlang) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); m_command_buffer.PushData(0, 4, &buffer_index); @@ -417,7 +417,7 @@ TEST_F(PositiveDescriptorHeapUntyped, ImageAndSamplerSlang) { } } -TEST_F(PositiveDescriptorHeapUntyped, ImageAndSamplerSlangUnified) { +TEST_F(PositiveDescriptorHeapUntypedEXT, ImageAndSamplerSlangUnified) { TEST_DESCRIPTION("called with -spirv-unified-descriptor-heap-stride"); AddRequiredExtensions(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::computeDerivativeGroupQuads); @@ -431,7 +431,7 @@ TEST_F(PositiveDescriptorHeapUntyped, ImageAndSamplerSlangUnified) { const VkDeviceSize image_offset = resource_stride * image_index; const VkDeviceSize buffer_offset = resource_stride * buffer_index; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_stride * 4); vkt::Buffer buffer(*m_device, 256, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -543,7 +543,7 @@ TEST_F(PositiveDescriptorHeapUntyped, ImageAndSamplerSlangUnified) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); m_command_buffer.PushData(0, 4, &buffer_index); @@ -572,7 +572,7 @@ TEST_F(PositiveDescriptorHeapUntyped, ImageAndSamplerSlangUnified) { } } -TEST_F(PositiveDescriptorHeapUntyped, StorageImage) { +TEST_F(PositiveDescriptorHeapUntypedEXT, StorageImage) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); InitRenderTarget(); @@ -584,7 +584,7 @@ TEST_F(PositiveDescriptorHeapUntyped, StorageImage) { const VkDeviceSize buffer_size = heap_props.bufferDescriptorSize; const VkDeviceSize resource_heap_app_size = buffer_offset + buffer_size; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_heap_app_size); vkt::Buffer buffer(*m_device, sizeof(float) * 4u, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -624,7 +624,7 @@ TEST_F(PositiveDescriptorHeapUntyped, StorageImage) { heapBuffer[16].data = imageLoad(heapImages[0], ivec2(0)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); @@ -669,10 +669,10 @@ TEST_F(PositiveDescriptorHeapUntyped, StorageImage) { } } -TEST_F(PositiveDescriptorHeapUntyped, SecondaryCmdBufferCompute) { +TEST_F(PositiveDescriptorHeapUntypedEXT, SecondaryCmdBufferCompute) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -691,7 +691,7 @@ TEST_F(PositiveDescriptorHeapUntyped, SecondaryCmdBufferCompute) { heap[0].a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); uint32_t src_data = 4321u; @@ -735,11 +735,11 @@ TEST_F(PositiveDescriptorHeapUntyped, SecondaryCmdBufferCompute) { } } -TEST_F(PositiveDescriptorHeapUntyped, SecondaryCmdBufferGraphics) { +TEST_F(PositiveDescriptorHeapUntypedEXT, SecondaryCmdBufferGraphics) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -819,12 +819,12 @@ TEST_F(PositiveDescriptorHeapUntyped, SecondaryCmdBufferGraphics) { } } -TEST_F(PositiveDescriptorHeapUntyped, VertexStorage) { +TEST_F(PositiveDescriptorHeapUntypedEXT, VertexStorage) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitUntypedDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -880,14 +880,14 @@ TEST_F(PositiveDescriptorHeapUntyped, VertexStorage) { } } -TEST_F(PositiveDescriptorHeapUntyped, HardcodedOffsetIntoStruct) { +TEST_F(PositiveDescriptorHeapUntypedEXT, HardcodedOffsetIntoStruct) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; if (resource_stride != 64) { GTEST_SKIP() << "SPIR-V hardcoded for bufferDescriptorSize of 64"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_stride * 4); vkt::Buffer buffer_a(*m_device, 256, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -972,7 +972,7 @@ TEST_F(PositiveDescriptorHeapUntyped, HardcodedOffsetIntoStruct) { OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); uint32_t src_data = 4321u; @@ -997,11 +997,11 @@ TEST_F(PositiveDescriptorHeapUntyped, HardcodedOffsetIntoStruct) { } } -TEST_F(PositiveDescriptorHeapUntyped, SingleElementNoArray) { +TEST_F(PositiveDescriptorHeapUntypedEXT, SingleElementNoArray) { TEST_DESCRIPTION("GLSL only allows arrays of descriptor, force it to be a single element"); RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -1056,7 +1056,7 @@ TEST_F(PositiveDescriptorHeapUntyped, SingleElementNoArray) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); uint32_t src_data = 4321u; @@ -1081,10 +1081,10 @@ TEST_F(PositiveDescriptorHeapUntyped, SingleElementNoArray) { } } -TEST_F(PositiveDescriptorHeapUntyped, BadArrayStrideWithSingleDescriptor) { +TEST_F(PositiveDescriptorHeapUntypedEXT, BadArrayStrideWithSingleDescriptor) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -1139,7 +1139,7 @@ TEST_F(PositiveDescriptorHeapUntyped, BadArrayStrideWithSingleDescriptor) { // spirv-val will now catch this early, but want to still test VVL will not look at // garbage array strides if they are not used m_errorMonitor->SetAllowedFailureMsg("VUID-VkShaderModuleCreateInfo-pCode-08737"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1155,10 +1155,10 @@ TEST_F(PositiveDescriptorHeapUntyped, BadArrayStrideWithSingleDescriptor) { } } -TEST_F(PositiveDescriptorHeapUntyped, StrideByTwoSpecConstantOp) { +TEST_F(PositiveDescriptorHeapUntypedEXT, StrideByTwoSpecConstantOp) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 6); @@ -1233,7 +1233,7 @@ TEST_F(PositiveDescriptorHeapUntyped, StrideByTwoSpecConstantOp) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1250,10 +1250,10 @@ TEST_F(PositiveDescriptorHeapUntyped, StrideByTwoSpecConstantOp) { } } -TEST_F(PositiveDescriptorHeapUntyped, StaticHeapArraySize) { +TEST_F(PositiveDescriptorHeapUntypedEXT, StaticHeapArraySize) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 6); @@ -1321,7 +1321,7 @@ TEST_F(PositiveDescriptorHeapUntyped, StaticHeapArraySize) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1338,10 +1338,10 @@ TEST_F(PositiveDescriptorHeapUntyped, StaticHeapArraySize) { } } -TEST_F(PositiveDescriptorHeapUntyped, OffsetId) { +TEST_F(PositiveDescriptorHeapUntypedEXT, OffsetId) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 6); @@ -1414,7 +1414,7 @@ TEST_F(PositiveDescriptorHeapUntyped, OffsetId) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1432,10 +1432,10 @@ TEST_F(PositiveDescriptorHeapUntyped, OffsetId) { } } -TEST_F(PositiveDescriptorHeapUntyped, OffsetIdStaticArraySize) { +TEST_F(PositiveDescriptorHeapUntypedEXT, OffsetIdStaticArraySize) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 4); @@ -1500,7 +1500,7 @@ TEST_F(PositiveDescriptorHeapUntyped, OffsetIdStaticArraySize) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1515,11 +1515,11 @@ TEST_F(PositiveDescriptorHeapUntyped, OffsetIdStaticArraySize) { } } -TEST_F(PositiveDescriptorHeapUntyped, MultidimensionalArray) { +TEST_F(PositiveDescriptorHeapUntypedEXT, MultidimensionalArray) { TEST_DESCRIPTION("https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6645"); RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 32); @@ -1572,7 +1572,7 @@ TEST_F(PositiveDescriptorHeapUntyped, MultidimensionalArray) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1587,12 +1587,12 @@ TEST_F(PositiveDescriptorHeapUntyped, MultidimensionalArray) { } } -TEST_F(PositiveDescriptorHeapUntyped, BufferAsFunctionParameter) { +TEST_F(PositiveDescriptorHeapUntypedEXT, BufferAsFunctionParameter) { AddRequiredFeature(vkt::Feature::variablePointers); AddRequiredFeature(vkt::Feature::variablePointersStorageBuffer); RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 4); vkt::Buffer buffer_0(*m_device, 32, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -1719,7 +1719,7 @@ TEST_F(PositiveDescriptorHeapUntyped, BufferAsFunctionParameter) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); data = static_cast(buffer_0.Memory().Map()); @@ -1772,10 +1772,10 @@ TEST_F(PositiveDescriptorHeapUntyped, BufferAsFunctionParameter) { } } -TEST_F(PositiveDescriptorHeapUntyped, SlangBasicBuffer) { +TEST_F(PositiveDescriptorHeapUntypedEXT, SlangBasicBuffer) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); // Because of -spirv-unified-descriptor-heap-stride const VkDeviceSize resource_stride = std::max(heap_props.imageDescriptorSize, heap_props.bufferDescriptorSize); desc_heap.CreateResourceHeap(resource_stride * 2); @@ -1855,7 +1855,7 @@ TEST_F(PositiveDescriptorHeapUntyped, SlangBasicBuffer) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); uint32_t index = 0; @@ -1878,12 +1878,12 @@ TEST_F(PositiveDescriptorHeapUntyped, SlangBasicBuffer) { } } -TEST_F(PositiveDescriptorHeapUntyped, PushDataUnused) { +TEST_F(PositiveDescriptorHeapUntypedEXT, PushDataUnused) { TEST_DESCRIPTION("https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6753"); AddRequiredExtensions(VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME); RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); @@ -1958,7 +1958,7 @@ TEST_F(PositiveDescriptorHeapUntyped, PushDataUnused) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_ASM); m_command_buffer.Begin(); uint32_t a_value = 3; @@ -1980,10 +1980,10 @@ TEST_F(PositiveDescriptorHeapUntyped, PushDataUnused) { } } -TEST_F(PositiveDescriptorHeapUntyped, DirectAccessUint) { +TEST_F(PositiveDescriptorHeapUntypedEXT, DirectAccessUint) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 4); uint32_t in_data[4] = {22, 33, 44, 55}; @@ -2068,7 +2068,7 @@ TEST_F(PositiveDescriptorHeapUntyped, DirectAccessUint) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, spirv, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, spirv, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2086,10 +2086,10 @@ TEST_F(PositiveDescriptorHeapUntyped, DirectAccessUint) { } } -TEST_F(PositiveDescriptorHeapUntyped, DirectAccessUintWithMapping) { +TEST_F(PositiveDescriptorHeapUntypedEXT, DirectAccessUintWithMapping) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 4); uint32_t in_data[4] = {22, 33, 44, 55}; @@ -2176,7 +2176,7 @@ TEST_F(PositiveDescriptorHeapUntyped, DirectAccessUintWithMapping) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, spirv, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, spirv, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2194,12 +2194,12 @@ TEST_F(PositiveDescriptorHeapUntyped, DirectAccessUintWithMapping) { } } -TEST_F(PositiveDescriptorHeapUntyped, GlslStructuredBasic) { +TEST_F(PositiveDescriptorHeapUntypedEXT, GlslStructuredBasic) { // https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_structured_descriptor_heap.txt TEST_DESCRIPTION("Basic usage of GLSL_EXT_structured_descriptor_heap"); RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); vkt::Buffer ssbo_a(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -2231,7 +2231,7 @@ TEST_F(PositiveDescriptorHeapUntyped, GlslStructuredBasic) { bufferHeap.buf_b.z = bufferHeap.buf_a.x; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); uint32_t* data = static_cast(ssbo_a.Memory().Map()); data[0] = 42; @@ -2249,12 +2249,12 @@ TEST_F(PositiveDescriptorHeapUntyped, GlslStructuredBasic) { } } -TEST_F(PositiveDescriptorHeapUntyped, GlslStructuredWithMapping) { +TEST_F(PositiveDescriptorHeapUntypedEXT, GlslStructuredWithMapping) { SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredFeature(vkt::Feature::shaderInt8); RETURN_IF_SKIP(InitUntypedDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); vkt::Buffer ssbo_a(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -2298,7 +2298,7 @@ TEST_F(PositiveDescriptorHeapUntyped, GlslStructuredWithMapping) { const VkSpecializationMapEntry entry = {0, 0, sizeof(uint32_t)}; const VkSpecializationInfo specialization_info = {1, &entry, sizeof(uint32_t), &offset_size}; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_GLSL, &specialization_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_GLSL, &specialization_info); uint32_t* data_a = static_cast(ssbo_a.Memory().Map()); data_a[0] = 22; @@ -2320,10 +2320,10 @@ TEST_F(PositiveDescriptorHeapUntyped, GlslStructuredWithMapping) { } } -TEST_F(PositiveDescriptorHeapUntyped, GlslStructuredSampler) { +TEST_F(PositiveDescriptorHeapUntypedEXT, GlslStructuredSampler) { RETURN_IF_SKIP(InitUntypedDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap((heap_props.bufferDescriptorSize * 3) + (heap_props.imageDescriptorSize * 2)); vkt::Buffer buffer(*m_device, 256, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -2367,7 +2367,7 @@ TEST_F(PositiveDescriptorHeapUntyped, GlslStructuredSampler) { } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); diff --git a/tests/unit/gpu_av_buffer_device_address_positive.cpp b/tests/unit/gpu_av_buffer_device_address_positive.cpp index 9340e0bf1af..f3879ee9085 100644 --- a/tests/unit/gpu_av_buffer_device_address_positive.cpp +++ b/tests/unit/gpu_av_buffer_device_address_positive.cpp @@ -2715,7 +2715,7 @@ TEST_F(PositiveGpuAVBufferDeviceAddress, HeapMultipleSubmissions) { VkPhysicalDeviceDescriptorHeapPropertiesEXT heap_props = vku::InitStructHelper(); GetPhysicalDeviceProperties2(heap_props); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); diff --git a/tests/unit/gpu_av_descriptor_heap.cpp b/tests/unit/gpu_av_descriptor_heap_ext.cpp similarity index 92% rename from tests/unit/gpu_av_descriptor_heap.cpp rename to tests/unit/gpu_av_descriptor_heap_ext.cpp index 003788dc934..d0b045aa2ae 100644 --- a/tests/unit/gpu_av_descriptor_heap.cpp +++ b/tests/unit/gpu_av_descriptor_heap_ext.cpp @@ -26,10 +26,10 @@ #include "shader_templates.h" #include "test_framework.h" -class NegativeGpuAVDescriptorHeap : public GpuAVDescriptorHeap {}; +class NegativeGpuAVDescriptorHeapEXT : public GpuAVDescriptorHeapEXT {}; // https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/12657 -TEST_F(NegativeGpuAVDescriptorHeap, DISABLED_IndexBufferOOB) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, DISABLED_IndexBufferOOB) { TEST_DESCRIPTION("Validate overruning the index buffer"); AddRequiredExtensions(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); @@ -69,7 +69,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, DISABLED_IndexBufferOOB) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, NoMappings) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, NoMappings) { TEST_DESCRIPTION("Validate illegal index buffer values with no VkShaderDescriptorSetAndBindingMappingInfoEXT provided"); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); InitRenderTarget(); @@ -130,7 +130,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, NoMappings) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, NoHeapBound) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, NoHeapBound) { TEST_DESCRIPTION("Validate illegal index buffer values when no descriptor heap is bound"); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); InitRenderTarget(); @@ -191,12 +191,12 @@ TEST_F(NegativeGpuAVDescriptorHeap, NoHeapBound) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HeapBoundBeforePipeline) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HeapBoundBeforePipeline) { TEST_DESCRIPTION("Validate illegal index buffer values when descriptor heap is bound before the pipeline"); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 4u); const char* vsSource = R"glsl( @@ -257,11 +257,11 @@ TEST_F(NegativeGpuAVDescriptorHeap, HeapBoundBeforePipeline) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HeapBoundAfterPipeline) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HeapBoundAfterPipeline) { TEST_DESCRIPTION("Validate illegal index buffer values when descriptor heap is bound after pipeline"); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 4u); const char* vsSource = R"glsl( @@ -322,12 +322,12 @@ TEST_F(NegativeGpuAVDescriptorHeap, HeapBoundAfterPipeline) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, SamplerHeapBound) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, SamplerHeapBound) { TEST_DESCRIPTION("Validate illegal index buffer values when sampler heap is bound"); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize * 4u); const char* vsSource = R"glsl( @@ -389,13 +389,13 @@ TEST_F(NegativeGpuAVDescriptorHeap, SamplerHeapBound) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, MappingsUsed) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, MappingsUsed) { TEST_DESCRIPTION("Validate illegal index buffer values when custom mappings are used"); AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 4u); vkt::Buffer buffer1(*m_device, 256u, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -483,7 +483,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingsUsed) { } // https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/12657 -TEST_F(NegativeGpuAVDescriptorHeap, DISABLED_DispatchWorkgroupSize) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, DISABLED_DispatchWorkgroupSize) { TEST_DESCRIPTION("GPU validation: Validate VkDispatchIndirectCommand with descriptor heap"); SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredExtensions(VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME); @@ -521,7 +521,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, DISABLED_DispatchWorkgroupSize) { ptr->y = 2; ptr->z = 3; // over - vkt::HeapComputePipeline pipe(*m_device, kMinimalShaderGlsl, SPV_ENV_VULKAN_1_0); + vkt::HeapComputePipelineEXT pipe(*m_device, kMinimalShaderGlsl, SPV_ENV_VULKAN_1_0); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -563,13 +563,13 @@ TEST_F(NegativeGpuAVDescriptorHeap, DISABLED_DispatchWorkgroupSize) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HeapRebound) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HeapRebound) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); InitRenderTarget(); const VkDeviceSize app_size = heap_props.bufferDescriptorAlignment * 4u; - vkt::DescriptorHeap desc_heap1(*this); - vkt::DescriptorHeap desc_heap2(*this); + vkt::DescriptorHeapEXT desc_heap1(*this); + vkt::DescriptorHeapEXT desc_heap2(*this); desc_heap1.CreateResourceHeap(app_size); desc_heap2.CreateResourceHeap(app_size); @@ -634,7 +634,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HeapRebound) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ShaderObjects) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ShaderObjects) { TEST_DESCRIPTION("Validate illegal index buffer values with shader objects"); AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderObject); @@ -642,7 +642,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ShaderObjects) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); InitDynamicRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 4u); const char* vsSource = R"glsl( @@ -737,9 +737,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, ShaderObjects) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBConstantOffset) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBConstantOffset) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -764,7 +764,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBConstantOffset) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -776,9 +776,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBConstantOffset) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBConstantOffsetDynamicIndex) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBConstantOffsetDynamicIndex) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2, true); @@ -806,7 +806,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBConstantOffsetDynamicIndex) { ssbo[index].result = 99; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -818,9 +818,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBConstantOffsetDynamicIndex) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBMultipleBinding) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBMultipleBinding) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -866,7 +866,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBMultipleBinding) { d = 4; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -878,9 +878,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBMultipleBinding) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBPushIndex) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBPushIndex) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -906,7 +906,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBPushIndex) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); @@ -922,10 +922,10 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBPushIndex) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBIndirectIndex) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBIndirectIndex) { TEST_DESCRIPTION("Also tests having different bindings and calling things twice"); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 4, true); @@ -967,7 +967,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBIndirectIndex) { y[b_index].b = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -1008,7 +1008,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBIndirectIndex) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBShaderObjects) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBShaderObjects) { AddRequiredExtensions(VK_EXT_SHADER_OBJECT_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderObject); AddRequiredFeature(vkt::Feature::dynamicRendering); @@ -1016,7 +1016,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBShaderObjects) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); InitDynamicRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2, true); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -1070,9 +1070,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBShaderObjects) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBRebindHeap) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBRebindHeap) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2, true); @@ -1096,7 +1096,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBRebindHeap) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -1121,9 +1121,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBRebindHeap) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBSecondaryInheritance) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBSecondaryInheritance) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -1141,7 +1141,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBSecondaryInheritance) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT resource_bind_info = vku::InitStructHelper(); resource_bind_info.heapRange = desc_heap.resource_heap_.AddressRange(); @@ -1168,9 +1168,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBSecondaryInheritance) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBSecondaryBind) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBSecondaryBind) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -1188,7 +1188,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBSecondaryBind) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT resource_bind_info = vku::InitStructHelper(); resource_bind_info.heapRange = desc_heap.resource_heap_.AddressRange(); @@ -1211,9 +1211,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBSecondaryBind) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, SamplerOOB) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, SamplerOOB) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.imageDescriptorSize; const VkDeviceSize sampler_stride = heap_props.samplerDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -1248,12 +1248,12 @@ TEST_F(NegativeGpuAVDescriptorHeap, SamplerOOB) { } )glsl"; // bad image mappings - vkt::HeapComputePipeline pipe_image(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe_image(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); mappings[0].sourceData.constantOffset.heapOffset = (uint32_t)heap_props.minResourceHeapReservedRange; mappings[1].sourceData.constantOffset.heapOffset = (uint32_t)(heap_props.minSamplerHeapReservedRange + sampler_stride); // bad sampler mappings - vkt::HeapComputePipeline pipe_sampler(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe_sampler(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1270,9 +1270,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, SamplerOOB) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, SamplerOOBCombinedImageSampler) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, SamplerOOBCombinedImageSampler) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.imageDescriptorSize; const VkDeviceSize sampler_stride = heap_props.samplerDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -1304,12 +1304,12 @@ TEST_F(NegativeGpuAVDescriptorHeap, SamplerOOBCombinedImageSampler) { } )glsl"; // bad image mappings - vkt::HeapComputePipeline pipe_image(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe_image(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); mapping.sourceData.constantOffset.heapOffset = (uint32_t)heap_props.minResourceHeapReservedRange; mapping.sourceData.constantOffset.samplerHeapOffset = (uint32_t)(heap_props.minSamplerHeapReservedRange + sampler_stride); // bad sampler mappings - vkt::HeapComputePipeline pipe_sampler(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe_sampler(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1327,9 +1327,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, SamplerOOBCombinedImageSampler) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBStorageImage) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBStorageImage) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.imageDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -1354,7 +1354,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBStorageImage) { imageStore(good_si, ivec2(1, 1), texel * 2); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1367,14 +1367,14 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBStorageImage) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersBuffer) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBUntypedPointersBuffer) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); if ((heap_props.minResourceHeapReservedRange / heap_props.bufferDescriptorSize) >= 10000) { GTEST_SKIP() << "reserved range is too large, access will not be OOB"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); const char* cs_source = R"glsl( @@ -1389,7 +1389,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersBuffer) { heapBuffer[10000].data = 0; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1402,14 +1402,14 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersBuffer) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersBufferOldGlsl) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBUntypedPointersBufferOldGlsl) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); if ((heap_props.minResourceHeapReservedRange / heap_props.bufferDescriptorSize) >= 10000) { GTEST_SKIP() << "reserved range is too large, access will not be OOB"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); // Same shader above in ResourceOOBUntypedPointers, but using the old (still valid) GLSL output @@ -1450,7 +1450,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersBufferOldGlsl) { OpReturn OpFunctionEnd )asm"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1463,14 +1463,14 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersBufferOldGlsl) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersBufferAtomics) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBUntypedPointersBufferAtomics) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); if ((heap_props.minResourceHeapReservedRange / heap_props.bufferDescriptorSize) >= 10000) { GTEST_SKIP() << "reserved range is too large, access will not be OOB"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); const char* cs_source = R"glsl( @@ -1486,7 +1486,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersBufferAtomics) { atomicStore(heapBuffer[10000].a, 0u, gl_ScopeDevice, 0, 0); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1499,14 +1499,14 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersBufferAtomics) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersStorageImage) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBUntypedPointersStorageImage) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); if ((heap_props.minResourceHeapReservedRange / heap_props.imageDescriptorSize) >= 10000) { GTEST_SKIP() << "reserved range is too large, access will not be OOB"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); vkt::Buffer ssbo_buffer(*m_device, 256, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -1529,7 +1529,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersStorageImage) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1542,14 +1542,14 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersStorageImage) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersSampledImage) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBUntypedPointersSampledImage) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); if ((heap_props.minResourceHeapReservedRange / heap_props.imageDescriptorSize) >= 10000) { GTEST_SKIP() << "reserved range is too large, access will not be OOB"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); @@ -1573,7 +1573,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersSampledImage) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1587,14 +1587,14 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersSampledImage) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, SamplerOOBUntypedPointers) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, SamplerOOBUntypedPointers) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); if ((heap_props.minSamplerHeapReservedRange / heap_props.samplerDescriptorSize) >= 10000) { GTEST_SKIP() << "reserved range is too large, access will not be OOB"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); @@ -1608,7 +1608,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, SamplerOOBUntypedPointers) { vec4 data = texture(sampler2D(heapTextures[0], heapSamplers[10000]), vec2(0.5f)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1622,12 +1622,12 @@ TEST_F(NegativeGpuAVDescriptorHeap, SamplerOOBUntypedPointers) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersOffsetId) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBUntypedPointersOffsetId) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); vkt::Buffer buffer_0(*m_device, 64, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -1686,7 +1686,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersOffsetId) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1699,7 +1699,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBUntypedPointersOffsetId) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, UntypedPointersOffsetIdNonArray) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, UntypedPointersOffsetIdNonArray) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); @@ -1707,7 +1707,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, UntypedPointersOffsetIdNonArray) { GTEST_SKIP() << "reserved range is too large, access will not be OOB"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 3); @@ -1780,7 +1780,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, UntypedPointersOffsetIdNonArray) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1793,9 +1793,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, UntypedPointersOffsetIdNonArray) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, BufferDescriptorAlignmentMapping) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, BufferDescriptorAlignmentMapping) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; // [SSBO, SSBO, UBO, UBO] desc_heap.CreateResourceHeap(resource_stride * 4); @@ -1834,7 +1834,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, BufferDescriptorAlignmentMapping) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1854,9 +1854,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, BufferDescriptorAlignmentMapping) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ImageSamplerDescriptorAlignment) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ImageSamplerDescriptorAlignment) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.imageDescriptorSize; const VkDeviceSize sampler_stride = heap_props.samplerDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -1891,7 +1891,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ImageSamplerDescriptorAlignment) { vec4 out_color = texture(sampler2D(kTextures2D, kSampler), vec2(0)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::Buffer indirect_buffer(*m_device, 64, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); uint32_t* indirect_data = (uint32_t*)indirect_buffer.Memory().Map(); @@ -1919,11 +1919,11 @@ TEST_F(NegativeGpuAVDescriptorHeap, ImageSamplerDescriptorAlignment) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, BufferDescriptorAlignmentUntypedPointers) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, BufferDescriptorAlignmentUntypedPointers) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -1985,7 +1985,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, BufferDescriptorAlignmentUntypedPointers) { )"; // spirv-val can detect this, but still want to test at GPU-AV time m_errorMonitor->SetAllowedFailureMsg("VUID-VkShaderModuleCreateInfo-pCode-08737"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1998,11 +1998,11 @@ TEST_F(NegativeGpuAVDescriptorHeap, BufferDescriptorAlignmentUntypedPointers) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, StorageImageDescriptorAlignmentUntypedPointers) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, StorageImageDescriptorAlignmentUntypedPointers) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.imageDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -2059,7 +2059,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, StorageImageDescriptorAlignmentUntypedPointe const VkSpecializationInfo specialization_info = {1, &entry, sizeof(uint32_t), &data}; // spirv-val can detect this, but still want to test at GPU-AV time m_errorMonitor->SetAllowedFailureMsg("VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM, &specialization_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM, &specialization_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2072,11 +2072,11 @@ TEST_F(NegativeGpuAVDescriptorHeap, StorageImageDescriptorAlignmentUntypedPointe m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, StorageImageAtomicDescriptorAlignmentUntypedPointers) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, StorageImageAtomicDescriptorAlignmentUntypedPointers) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.imageDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -2134,7 +2134,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, StorageImageAtomicDescriptorAlignmentUntyped const VkSpecializationInfo specialization_info = {1, &entry, sizeof(uint32_t), &data}; // spirv-val can detect this, but still want to test at GPU-AV time m_errorMonitor->SetAllowedFailureMsg("VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM, &specialization_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM, &specialization_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2147,12 +2147,12 @@ TEST_F(NegativeGpuAVDescriptorHeap, StorageImageAtomicDescriptorAlignmentUntyped m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceReservedRange) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceReservedRange) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); if (heap_props.minResourceHeapReservedRange == 0) { GTEST_SKIP() << "minResourceHeapReservedRange is zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -2174,7 +2174,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceReservedRange) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2186,12 +2186,12 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceReservedRange) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, SamplerReservedRange) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, SamplerReservedRange) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); if (heap_props.minSamplerHeapReservedRange == 0) { GTEST_SKIP() << "minSamplerHeapReservedRange is zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.imageDescriptorSize; const VkDeviceSize sampler_stride = heap_props.samplerDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -2224,7 +2224,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, SamplerReservedRange) { vec4 out_color = texture(sampler2D(kTextures2D, kSampler), vec2(0)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2238,9 +2238,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, SamplerReservedRange) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, IndirectIndexPushDataAlignment) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, IndirectIndexPushDataAlignment) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize, true); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -2261,7 +2261,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, IndirectIndexPushDataAlignment) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::Buffer indirect_buffer(*m_device, 64, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); VkDeviceAddress indirect_address = indirect_buffer.Address() + 1; @@ -2277,9 +2277,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, IndirectIndexPushDataAlignment) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, IndirectIndexPushDataAlignment2) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, IndirectIndexPushDataAlignment2) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize, true); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -2300,7 +2300,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, IndirectIndexPushDataAlignment2) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::Buffer indirect_buffer(*m_device, 32, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); uint32_t* indirect_data = (uint32_t*)indirect_buffer.Memory().Map(); @@ -2330,7 +2330,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, IndirectIndexPushDataAlignment2) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, PushDataNotSet) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, PushDataNotSet) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = @@ -2346,7 +2346,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushDataNotSet) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); // only update one of the dwords to force it to be non-aligned uint32_t bad_dword = 0x11111111; @@ -2362,9 +2362,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushDataNotSet) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, PushDataNotSetOOB) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, PushDataNotSetOOB) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize, true); VkDescriptorSetAndBindingMappingEXT mapping = MakeSetAndBindingMapping(0, 0); @@ -2385,7 +2385,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushDataNotSetOOB) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2398,7 +2398,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushDataNotSetOOB) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, IndirectAddressPushDataAlignment) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, IndirectAddressPushDataAlignment) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = @@ -2414,7 +2414,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, IndirectAddressPushDataAlignment) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::Buffer indirect_buffer(*m_device, 64, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); VkDeviceAddress indirect_address = indirect_buffer.Address() + 1; @@ -2429,9 +2429,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, IndirectAddressPushDataAlignment) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, MappingAddressBufferAlignment) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, MappingAddressBufferAlignment) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -2460,7 +2460,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingAddressBufferAlignment) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkDeviceAddress ssbo_address = ssbo_buffer.Address() + 1; VkDeviceAddress ubo_address = ubo_buffer.Address() + 0; @@ -2484,9 +2484,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingAddressBufferAlignment) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, MappingAddressBufferAlignmentHeap) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, MappingAddressBufferAlignmentHeap) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -2513,7 +2513,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingAddressBufferAlignmentHeap) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2530,9 +2530,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingAddressBufferAlignmentHeap) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, MappingIndirectAddressBufferAlignment) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, MappingIndirectAddressBufferAlignment) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -2563,7 +2563,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingIndirectAddressBufferAlignment) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::Buffer indirect_buffer(*m_device, 64, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); VkDeviceAddress* indirect_data = (VkDeviceAddress*)indirect_buffer.Memory().Map(); @@ -2589,9 +2589,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingIndirectAddressBufferAlignment) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, IndirectIndexNullIndirect) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, IndirectIndexNullIndirect) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); VkDescriptorSetAndBindingMappingEXT mapping = @@ -2607,7 +2607,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, IndirectIndexNullIndirect) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkDeviceAddress null_address = 0; @@ -2622,7 +2622,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, IndirectIndexNullIndirect) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, PushAddressNullIndirect) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, PushAddressNullIndirect) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0, VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT); VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); @@ -2636,7 +2636,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushAddressNullIndirect) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkDeviceAddress null_address = 0; @@ -2650,7 +2650,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushAddressNullIndirect) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, IndirectAddressNullIndirect) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, IndirectAddressNullIndirect) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0, VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT); @@ -2665,7 +2665,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, IndirectAddressNullIndirect) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkDeviceAddress null_address = 0; @@ -2689,9 +2689,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, IndirectAddressNullIndirect) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, UseCombinedImageSamplerIndex) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, UseCombinedImageSamplerIndex) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize * 3); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize * 3); @@ -2726,7 +2726,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, UseCombinedImageSamplerIndex) { VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); VkDeviceAddress ssbo_address = buffer.Address(); @@ -2748,9 +2748,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, UseCombinedImageSamplerIndex) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, MappingBindingCountAlias) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, MappingBindingCountAlias) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 4, true); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -2774,7 +2774,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingBindingCountAlias) { y[2].b = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); char const* cs_source2 = R"glsl( #version 450 @@ -2786,7 +2786,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingBindingCountAlias) { x.d = y.d + z.d + w.d; } )glsl"; - vkt::HeapComputePipeline pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2807,8 +2807,8 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingBindingCountAlias) { mapping.sourceData.indirectIndexArray.pushOffset = 0; mapping.sourceData.indirectIndexArray.addressOffset = 4; - vkt::HeapComputePipeline pipe3(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); - vkt::HeapComputePipeline pipe4(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe3(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe4(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::Buffer ubo_buffer(*m_device, 64, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); uint32_t* ubo_data = (uint32_t*)ubo_buffer.Memory().Map(); @@ -2833,9 +2833,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, MappingBindingCountAlias) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, DifferentMappingResourceMask) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, DifferentMappingResourceMask) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2, true); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -2861,7 +2861,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, DifferentMappingResourceMask) { b.b = a.a; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2874,9 +2874,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, DifferentMappingResourceMask) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, PushDataPushIndex) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, PushDataPushIndex) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -2910,7 +2910,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushDataPushIndex) { b = 4; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); uint32_t bad_push_index = 512; @@ -2940,7 +2940,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushDataPushIndex) { b = data[19]; } )glsl"; - vkt::HeapComputePipeline pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); uint32_t garbage[20]; m_command_buffer.PushData(0, 80, garbage); @@ -2956,9 +2956,9 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushDataPushIndex) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, PushDataIndirectIndex) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, PushDataIndirectIndex) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -2993,7 +2993,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushDataIndirectIndex) { b = data[19]; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::Buffer indirect_buffer(*m_device, 256, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); uint32_t* indirect_data = (uint32_t*)indirect_buffer.Memory().Map(); @@ -3018,10 +3018,10 @@ TEST_F(NegativeGpuAVDescriptorHeap, PushDataIndirectIndex) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceHeapDataOOB) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceHeapDataOOB) { TEST_DESCRIPTION("https://gitlab.khronos.org/vulkan/vulkan/-/issues/4861"); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); // create an extra 256 bytes that we will not bind desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize + 512, true); const VkDeviceSize min_alignment = m_device->Physical().limits_.minUniformBufferOffsetAlignment; @@ -3051,7 +3051,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceHeapDataOOB) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); @@ -3073,10 +3073,10 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceHeapDataOOB) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HashingNoDescriptor) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HashingNoDescriptor) { const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting})); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -3097,7 +3097,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingNoDescriptor) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -3109,7 +3109,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingNoDescriptor) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HashingWrongDescriptor) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HashingWrongDescriptor) { const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting})); @@ -3118,7 +3118,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingWrongDescriptor) { GTEST_SKIP() << "Currently the find() on the GPU only checks a single size"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -3145,7 +3145,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingWrongDescriptor) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -3157,7 +3157,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingWrongDescriptor) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HashingWrongDescriptorUntyped) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HashingWrongDescriptorUntyped) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; @@ -3168,7 +3168,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingWrongDescriptorUntyped) { GTEST_SKIP() << "Currently the find() on the GPU only checks a single size"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -3185,7 +3185,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingWrongDescriptorUntyped) { s_heap[0].data = u_heap[1].data; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -3197,18 +3197,18 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingWrongDescriptorUntyped) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HashingNoDescriptorUntypedSlang) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HashingNoDescriptorUntypedSlang) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting})); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); // Because of -spirv-unified-descriptor-heap-stride const VkDeviceSize resource_stride = std::max(heap_props.imageDescriptorSize, heap_props.bufferDescriptorSize); desc_heap.CreateResourceHeap(resource_stride * 4); - // Same shader as PositiveDescriptorHeapUntyped.SlangBasicBuffer + // Same shader as PositiveDescriptorHeapUntypedEXT.SlangBasicBuffer char const* cs_source = R"( OpCapability UntypedPointersKHR OpCapability DescriptorHeapEXT @@ -3266,7 +3266,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingNoDescriptorUntypedSlang) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); uint32_t index = 2; @@ -3281,10 +3281,10 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingNoDescriptorUntypedSlang) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HashingNoDescriptorCombinedImageSampler) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HashingNoDescriptorCombinedImageSampler) { const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting})); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.imageDescriptorSize; const VkDeviceSize sampler_stride = heap_props.samplerDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -3314,7 +3314,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingNoDescriptorCombinedImageSampler) { vec4 out_color = texture(tex, vec2(0.5f)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); desc_heap.BindSamplerHeap(m_command_buffer); @@ -3326,7 +3326,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingNoDescriptorCombinedImageSampler) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HashingNullDescriptor) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HashingNullDescriptor) { AddRequiredExtensions(VK_EXT_ROBUSTNESS_2_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::nullDescriptor); const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; @@ -3337,7 +3337,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingNullDescriptor) { GTEST_SKIP() << "Currently the find() on the GPU only checks a single size"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -3356,7 +3356,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingNullDescriptor) { a = 0; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -3368,7 +3368,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingNullDescriptor) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HashingToManyDescriptors) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HashingToManyDescriptors) { const uint32_t limit = 256; std::vector layer_settings = { {OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}, @@ -3394,10 +3394,10 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingToManyDescriptors) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HashingDeviceLocal) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HashingDeviceLocal) { const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting})); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); VkDeviceSize resource_heap_size_app = Align(heap_props.bufferDescriptorSize, heap_props.bufferDescriptorAlignment); resource_heap_size_app = Align(resource_heap_size_app, heap_props.imageDescriptorAlignment); @@ -3423,7 +3423,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingDeviceLocal) { VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); bind_resource_info.heapRange.address = descriptor_heap.Address(); @@ -3471,10 +3471,10 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingDeviceLocal) { } } -TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBWithHashingOn) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, ResourceOOBWithHashingOn) { const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting})); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride, true); @@ -3492,7 +3492,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBWithHashingOn) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -3504,12 +3504,12 @@ TEST_F(NegativeGpuAVDescriptorHeap, ResourceOOBWithHashingOn) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HardcodedOffsetOOB) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HardcodedOffsetOOB) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); if (desc_heap.resource_heap_.CreateInfo().size > 131072) { GTEST_SKIP() << "too much reserved range"; @@ -3572,7 +3572,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HardcodedOffsetOOB) { OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -3586,7 +3586,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HardcodedOffsetOOB) { } // Currently don't handle logic to get stride of multiple arrays -TEST_F(NegativeGpuAVDescriptorHeap, DISABLED_MultidimensionalArrayOOB) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, DISABLED_MultidimensionalArrayOOB) { TEST_DESCRIPTION("https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6645"); AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); @@ -3596,7 +3596,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, DISABLED_MultidimensionalArrayOOB) { GTEST_SKIP() << "minResourceHeapReservedRange is not zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); // one less than needed desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 4); @@ -3645,7 +3645,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, DISABLED_MultidimensionalArrayOOB) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -3658,11 +3658,11 @@ TEST_F(NegativeGpuAVDescriptorHeap, DISABLED_MultidimensionalArrayOOB) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, HashingCombinedSampler) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, HashingCombinedSampler) { const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting})); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); @@ -3682,7 +3682,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingCombinedSampler) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -3696,12 +3696,12 @@ TEST_F(NegativeGpuAVDescriptorHeap, HashingCombinedSampler) { m_errorMonitor->VerifyFound(); } -TEST_F(NegativeGpuAVDescriptorHeap, UntypedHardcodedArrayStride) { +TEST_F(NegativeGpuAVDescriptorHeapEXT, UntypedHardcodedArrayStride) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = 256; // the max any descriptor can be desc_heap.CreateResourceHeap(resource_stride); @@ -3752,7 +3752,7 @@ TEST_F(NegativeGpuAVDescriptorHeap, UntypedHardcodedArrayStride) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); diff --git a/tests/unit/gpu_av_descriptor_heap_positive.cpp b/tests/unit/gpu_av_descriptor_heap_ext_positive.cpp similarity index 92% rename from tests/unit/gpu_av_descriptor_heap_positive.cpp rename to tests/unit/gpu_av_descriptor_heap_ext_positive.cpp index 0e920ecd06c..e98ca0e769e 100644 --- a/tests/unit/gpu_av_descriptor_heap_positive.cpp +++ b/tests/unit/gpu_av_descriptor_heap_ext_positive.cpp @@ -20,9 +20,9 @@ #include "utils/math_utils.h" #include "test_framework.h" -class PositiveGpuAVDescriptorHeap : public GpuAVDescriptorHeap {}; +class PositiveGpuAVDescriptorHeapEXT : public GpuAVDescriptorHeapEXT {}; -void GpuAVDescriptorHeap::InitGpuAVDescriptorHeap(std::vector layer_settings, bool safe_mode) { +void GpuAVDescriptorHeapEXT::InitGpuAVDescriptorHeap(std::vector layer_settings, bool safe_mode) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredExtensions(VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::bufferDeviceAddress); @@ -32,13 +32,13 @@ void GpuAVDescriptorHeap::InitGpuAVDescriptorHeap(std::vector GetPhysicalDeviceProperties2(heap_props); } -TEST_F(PositiveGpuAVDescriptorHeap, BufferPointerOffset) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, BufferPointerOffset) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride); @@ -54,7 +54,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, BufferPointerOffset) { heap[0].a = vec4(0.5f); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -64,7 +64,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, BufferPointerOffset) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, SamplerPointerOffset) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, SamplerPointerOffset) { AddRequiredExtensions(VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME); AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); @@ -77,7 +77,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, SamplerPointerOffset) { const VkDeviceSize buffer_offset = heap_props.bufferDescriptorSize * buffer_index; const VkDeviceSize resource_heap_app_size = buffer_offset + heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_heap_app_size); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); @@ -99,7 +99,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, SamplerPointerOffset) { heapBuffer[16].data = imageLoad(heapImages[0], ivec2(0)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); @@ -119,12 +119,12 @@ TEST_F(PositiveGpuAVDescriptorHeap, SamplerPointerOffset) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, HeapBoundInMultimpleCmdBuffers) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, HeapBoundInMultimpleCmdBuffers) { AddRequiredExtensions(VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(256); vkt::CommandBuffer cmd_buffer(*m_device, m_command_pool); @@ -144,7 +144,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, HeapBoundInMultimpleCmdBuffers) { cmd_buffer.End(); } -TEST_F(PositiveGpuAVDescriptorHeap, PushAddress) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, PushAddress) { AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); InitRenderTarget(); @@ -157,7 +157,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, PushAddress) { Align(read_offset + heap_props.bufferDescriptorSize * 7u, heap_props.bufferDescriptorSize); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(write_offset + resource_stride); desc_heap.WriteBufferDescriptorAtOffset(write_buffer, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, write_offset); @@ -223,7 +223,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, PushAddress) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, ResourceHeapImage) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, ResourceHeapImage) { AddRequiredExtensions(VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME); AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); @@ -236,7 +236,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, ResourceHeapImage) { const VkDeviceSize buffer_offset = heap_props.bufferDescriptorSize * buffer_index; const VkDeviceSize resource_heap_app_size = buffer_offset + heap_props.bufferDescriptorSize; - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_heap_app_size); vkt::Buffer buffer(*m_device, sizeof(float) * 4u, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, vkt::device_address); @@ -267,7 +267,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, ResourceHeapImage) { heapBuffer[16].data = imageLoad(heapImages[0], ivec2(0)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2); m_command_buffer.Begin(); @@ -294,7 +294,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, ResourceHeapImage) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, CombinedAndSeparateImageSampler) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, CombinedAndSeparateImageSampler) { TEST_DESCRIPTION("Just need to test compiler pass with these two sampler usages"); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); const VkDeviceSize resource_stride = heap_props.imageDescriptorSize; @@ -329,13 +329,13 @@ TEST_F(PositiveGpuAVDescriptorHeap, CombinedAndSeparateImageSampler) { vec4 b = texture(c, vec2(0.5f)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); } // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4874 -TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitPushIndex) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DISABLED_PushDataLimitPushIndex) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 4); @@ -359,7 +359,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitPushIndex) { a = 42; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -375,9 +375,9 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitPushIndex) { } // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4874 -TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitIndirectIndex) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DISABLED_PushDataLimitIndirectIndex) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 4); @@ -402,7 +402,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitIndirectIndex) { a = 42; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::Buffer indirect_buffer(*m_device, 64, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); uint32_t* indirect_data = (uint32_t*)indirect_buffer.Memory().Map(); @@ -422,9 +422,9 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitIndirectIndex) { } // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4874 -TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitHeapData) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DISABLED_PushDataLimitHeapData) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 4); @@ -452,7 +452,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitHeapData) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); const uint32_t min_alignment = (uint32_t)m_device->Physical().limits_.minUniformBufferOffsetAlignment; uint32_t* heap_data = (uint32_t*)desc_heap.resource_heap_data_; @@ -472,12 +472,12 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitHeapData) { } // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4874 -TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitPushData) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DISABLED_PushDataLimitPushData) { SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredFeature(vkt::Feature::scalarBlockLayout); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -504,7 +504,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitPushData) { a = b[30]; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -520,7 +520,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitPushData) { } // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4874 -TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitPushAddress) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DISABLED_PushDataLimitPushAddress) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -539,7 +539,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitPushAddress) { a = 42; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkDeviceAddress ssbo_address = ssbo_buffer.Address(); @@ -555,7 +555,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitPushAddress) { } // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4874 -TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitIndirectAddress) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DISABLED_PushDataLimitIndirectAddress) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -574,7 +574,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitIndirectAddress) { a = 42; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::Buffer indirect_buffer(*m_device, 64, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); VkDeviceAddress* indirect_data = (VkDeviceAddress*)indirect_buffer.Memory().Map(); @@ -593,9 +593,9 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitIndirectAddress) { } // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4874 -TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitShader) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DISABLED_PushDataLimitShader) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -616,7 +616,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitShader) { a = data[30]; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -633,7 +633,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitShader) { } // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4874 -TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitShaderAndMapping) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DISABLED_PushDataLimitShaderAndMapping) { AddRequiredFeature(vkt::Feature::shaderInt64); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); @@ -658,7 +658,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitShaderAndMapping) { a = data[4].x; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkDeviceAddress ssbo_address = ssbo_buffer.Address(); @@ -676,12 +676,12 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitShaderAndMapping) { } // https://gitlab.khronos.org/vulkan/vulkan/-/issues/4874 -TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitMulitipleDispatch) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DISABLED_PushDataLimitMulitipleDispatch) { SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredFeature(vkt::Feature::scalarBlockLayout); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); vkt::Buffer ssbo1_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -710,10 +710,10 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitMulitipleDispatch) { a = b[62]; } )glsl"; - vkt::HeapComputePipeline pipe1(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe1(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); mappings[0].sourceData.constantOffset.heapOffset = (uint32_t)offset_2; - vkt::HeapComputePipeline pipe2(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -735,7 +735,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DISABLED_PushDataLimitMulitipleDispatch) { ASSERT_TRUE(ssbo_data[0] == 88); } -TEST_F(PositiveGpuAVDescriptorHeap, PushDataLimitNoShaderInstrumentation) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, PushDataLimitNoShaderInstrumentation) { std::vector layer_settings = { {OBJECT_LAYER_NAME, "gpuav_shader_instrumentation", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkFalse}, }; @@ -757,7 +757,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, PushDataLimitNoShaderInstrumentation) { a = 42; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkDeviceAddress ssbo_address = ssbo_buffer.Address(); @@ -772,10 +772,10 @@ TEST_F(PositiveGpuAVDescriptorHeap, PushDataLimitNoShaderInstrumentation) { ASSERT_TRUE(ssbo_data[0] == 42); } -TEST_F(PositiveGpuAVDescriptorHeap, SamplerHeapOffset) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, SamplerHeapOffset) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize * 9); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); @@ -807,7 +807,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, SamplerHeapOffset) { VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipeline(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipeline(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); const VkDeviceAddress buffer_address = buffer.Address(); @@ -824,13 +824,13 @@ TEST_F(PositiveGpuAVDescriptorHeap, SamplerHeapOffset) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, GraphicsPipelineLibraryInlined) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, GraphicsPipelineLibraryInlined) { AddRequiredExtensions(VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::graphicsPipelineLibrary); AddRequiredFeature(vkt::Feature::fragmentStoresAndAtomics); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 4); VkDescriptorSetAndBindingMappingEXT mappings[3]; @@ -934,14 +934,14 @@ TEST_F(PositiveGpuAVDescriptorHeap, GraphicsPipelineLibraryInlined) { ASSERT_TRUE(exe_pipe.initialized()); } -TEST_F(PositiveGpuAVDescriptorHeap, GraphicsPipelineLibraryWithShaderModule) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, GraphicsPipelineLibraryWithShaderModule) { TEST_DESCRIPTION("Found in CTS where using a VkShaderModule with GPL caused the injected mappings to be lost"); AddRequiredExtensions(VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::graphicsPipelineLibrary); AddRequiredFeature(vkt::Feature::fragmentStoresAndAtomics); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); InitRenderTarget(); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 4); VkDescriptorSetAndBindingMappingEXT mappings[3]; @@ -1051,12 +1051,12 @@ TEST_F(PositiveGpuAVDescriptorHeap, GraphicsPipelineLibraryWithShaderModule) { ASSERT_TRUE(exe_pipe.initialized()); } -TEST_F(PositiveGpuAVDescriptorHeap, UntypedPointersOffsetIdNonArray) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, UntypedPointersOffsetIdNonArray) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 3); vkt::Buffer buffer_0(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -1125,7 +1125,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, UntypedPointersOffsetIdNonArray) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1136,9 +1136,9 @@ TEST_F(PositiveGpuAVDescriptorHeap, UntypedPointersOffsetIdNonArray) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, SecondaryInheritance) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, SecondaryInheritance) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -1156,7 +1156,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, SecondaryInheritance) { a = 42; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT resource_bind_info = vku::InitStructHelper(); resource_bind_info.heapRange = desc_heap.resource_heap_.AddressRange(); @@ -1184,7 +1184,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, SecondaryInheritance) { ASSERT_TRUE(ssbo_data[0] == 42); } -TEST_F(PositiveGpuAVDescriptorHeap, ImageSamplerDynamicIndex) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, ImageSamplerDynamicIndex) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); const VkDeviceSize image_stride = heap_props.imageDescriptorSize; const VkDeviceSize sampler_stride = heap_props.samplerDescriptorSize; @@ -1224,12 +1224,12 @@ TEST_F(PositiveGpuAVDescriptorHeap, ImageSamplerDynamicIndex) { } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); } -TEST_F(PositiveGpuAVDescriptorHeap, SecondaryBind) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, SecondaryBind) { RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -1247,7 +1247,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, SecondaryBind) { a = 42; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT resource_bind_info = vku::InitStructHelper(); resource_bind_info.heapRange = desc_heap.resource_heap_.AddressRange(); @@ -1271,13 +1271,13 @@ TEST_F(PositiveGpuAVDescriptorHeap, SecondaryBind) { ASSERT_TRUE(ssbo_data[0] == 42); } -TEST_F(PositiveGpuAVDescriptorHeap, HashingNullDescriptor) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, HashingNullDescriptor) { AddRequiredExtensions(VK_EXT_ROBUSTNESS_2_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::nullDescriptor); static const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 2); @@ -1303,7 +1303,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, HashingNullDescriptor) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1313,11 +1313,11 @@ TEST_F(PositiveGpuAVDescriptorHeap, HashingNullDescriptor) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, HashingMultiSubmit) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, HashingMultiSubmit) { static const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting})); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 8); @@ -1339,10 +1339,10 @@ TEST_F(PositiveGpuAVDescriptorHeap, HashingMultiSubmit) { VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); mapping_info.mappingCount = 1; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe0(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe0(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); mapping.sourceData.constantOffset.heapOffset = (uint32_t)offset_1; - vkt::HeapComputePipeline pipe1(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe1(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1366,7 +1366,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, HashingMultiSubmit) { desc_heap.WriteBufferDescriptor(ssbo_buffer, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER); VkDeviceSize offset_7 = desc_heap.WriteBufferDescriptor(ssbo_buffer, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER); mapping.sourceData.constantOffset.heapOffset = (uint32_t)offset_7; - vkt::HeapComputePipeline pipe7(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe7(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1378,10 +1378,10 @@ TEST_F(PositiveGpuAVDescriptorHeap, HashingMultiSubmit) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, HashingDeviceLocal) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, HashingDeviceLocal) { const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); VkDeviceSize resource_heap_size_app = Align(heap_props.bufferDescriptorSize, heap_props.bufferDescriptorAlignment); resource_heap_size_app = Align(resource_heap_size_app, heap_props.imageDescriptorAlignment); @@ -1407,7 +1407,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, HashingDeviceLocal) { VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); bind_resource_info.heapRange.address = descriptor_heap.Address(); @@ -1436,7 +1436,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, HashingDeviceLocal) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, HashingTombstone) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, HashingTombstone) { TEST_DESCRIPTION("Make sure we clear up and use tombstone entries in the hash map correctly"); const uint32_t limit = 8; std::vector layer_settings = { @@ -1475,10 +1475,10 @@ TEST_F(PositiveGpuAVDescriptorHeap, HashingTombstone) { } } -TEST_F(PositiveGpuAVDescriptorHeap, Deduplication) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, Deduplication) { TEST_DESCRIPTION("Make sure we deduplicate multiple access when safe mode is off"); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 4); @@ -1527,7 +1527,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, Deduplication) { a = 0; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1537,12 +1537,12 @@ TEST_F(PositiveGpuAVDescriptorHeap, Deduplication) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, DeduplicationUntyped) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DeduplicationUntyped) { TEST_DESCRIPTION("Make sure we deduplicate multiple access when safe mode is off"); AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitGpuAVDescriptorHeap({}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; desc_heap.CreateResourceHeap(resource_stride * 4); @@ -1569,7 +1569,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DeduplicationUntyped) { heap[0].x = 0; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1579,7 +1579,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DeduplicationUntyped) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, SamplerStressUnsafe) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, SamplerStressUnsafe) { TEST_DESCRIPTION("Samplers suck, do as much crazy stuff as possible"); SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); @@ -1656,10 +1656,10 @@ TEST_F(PositiveGpuAVDescriptorHeap, SamplerStressUnsafe) { data += texture(sampler2D(t_heap[s_index], s_heap[s_index]), uv); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); } -TEST_F(PositiveGpuAVDescriptorHeap, SamplerStressSafe) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, SamplerStressSafe) { TEST_DESCRIPTION("Samplers suck, do as much crazy stuff as possible"); SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); @@ -1736,14 +1736,14 @@ TEST_F(PositiveGpuAVDescriptorHeap, SamplerStressSafe) { data += texture(sampler2D(t_heap[s_index], s_heap[s_index]), uv); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, &mapping_info); } -TEST_F(PositiveGpuAVDescriptorHeap, CombinedSampler) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, CombinedSampler) { const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); @@ -1764,7 +1764,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, CombinedSampler) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -1776,13 +1776,13 @@ TEST_F(PositiveGpuAVDescriptorHeap, CombinedSampler) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, UntypedSampler) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, UntypedSampler) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize * 16); @@ -1803,7 +1803,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, UntypedSampler) { vec4 data = texture(sampler2D(heapTextures[0], heapSamplers[15]), vec2(0.5f)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -1815,7 +1815,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, UntypedSampler) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, UntypedSamplerOffset) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, UntypedSamplerOffset) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredExtensions(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); @@ -1823,7 +1823,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, UntypedSamplerOffset) { const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize * 8); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); @@ -1887,7 +1887,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, UntypedSamplerOffset) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -1899,7 +1899,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, UntypedSamplerOffset) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, ComputeAndGraphicsShareDescriptor) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, ComputeAndGraphicsShareDescriptor) { SetTargetApiVersion(VK_API_VERSION_1_3); AddRequiredFeature(vkt::Feature::vertexPipelineStoresAndAtomics); const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; @@ -1908,7 +1908,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, ComputeAndGraphicsShareDescriptor) { VkDeviceSize resource_stride = std::max(heap_props.bufferDescriptorSize, heap_props.resourceHeapAlignment); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(resource_stride * 2); vkt::Buffer c_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -1964,7 +1964,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, ComputeAndGraphicsShareDescriptor) { graphics_pipe.gp_ci_.pStages = stages; graphics_pipe.CreateGraphicsPipeline(false); - vkt::HeapComputePipeline compute_pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); + vkt::HeapComputePipelineEXT compute_pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info); VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); bind_resource_info.heapRange = desc_heap.resource_heap_.AddressRange(); @@ -1996,13 +1996,13 @@ TEST_F(PositiveGpuAVDescriptorHeap, ComputeAndGraphicsShareDescriptor) { ASSERT_TRUE(data[0] == 42u); } -TEST_F(PositiveGpuAVDescriptorHeap, UntypedHardcodedArrayStride) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, UntypedHardcodedArrayStride) { AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); static const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); const VkDeviceSize resource_stride = 256; // the max any descriptor can be desc_heap.CreateResourceHeap(resource_stride * 4); @@ -2058,7 +2058,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, UntypedHardcodedArrayStride) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2073,11 +2073,11 @@ TEST_F(PositiveGpuAVDescriptorHeap, UntypedHardcodedArrayStride) { ASSERT_TRUE(data[0] == 33u); } -TEST_F(PositiveGpuAVDescriptorHeap, DispatchIndirect) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, DispatchIndirect) { const VkLayerSettingEXT layer_setting{OBJECT_LAYER_NAME, "descriptor_hashing", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &kVkTrue}; RETURN_IF_SKIP(InitGpuAVDescriptorHeap({layer_setting}, false)); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize * 2); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -2099,7 +2099,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DispatchIndirect) { a = b; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vkt::Buffer dispatch_params_buffer(*m_device, sizeof(VkDrawIndirectCommand) * 2, VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, kHostVisibleMemProps); @@ -2123,7 +2123,7 @@ TEST_F(PositiveGpuAVDescriptorHeap, DispatchIndirect) { m_default_queue->SubmitAndWait(m_command_buffer); } -TEST_F(PositiveGpuAVDescriptorHeap, GlslStructuredWithMapping) { +TEST_F(PositiveGpuAVDescriptorHeapEXT, GlslStructuredWithMapping) { SetTargetApiVersion(VK_API_VERSION_1_2); AddRequiredExtensions(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::shaderUntypedPointers); @@ -2167,5 +2167,5 @@ TEST_F(PositiveGpuAVDescriptorHeap, GlslStructuredWithMapping) { const VkSpecializationMapEntry entry = {0, 0, sizeof(uint32_t)}; const VkSpecializationInfo specialization_info = {1, &entry, sizeof(uint32_t), &offset_size}; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_GLSL, &specialization_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_GLSL, &specialization_info); } diff --git a/tests/unit/gpu_av_ray_tracing_positive.cpp b/tests/unit/gpu_av_ray_tracing_positive.cpp index f75a3283a08..f7d71e891d4 100644 --- a/tests/unit/gpu_av_ray_tracing_positive.cpp +++ b/tests/unit/gpu_av_ray_tracing_positive.cpp @@ -1912,7 +1912,7 @@ TEST_F(PositiveGpuAVRayTracing, BlasReference1DescriptorHeap) { RETURN_IF_SKIP(CheckSlangSupport()); SetTargetApiVersion(VK_API_VERSION_1_2); - vkt::DescriptorHeap::AddDescriptorHeapRequirements(*this); + vkt::DescriptorHeapEXT::AddDescriptorHeapRequirements(*this); AddRequiredExtensions(VK_KHR_MAINTENANCE_4_EXTENSION_NAME); AddRequiredFeature(vkt::Feature::rayTracingPipeline); AddRequiredFeature(vkt::Feature::accelerationStructure); @@ -1986,7 +1986,7 @@ TEST_F(PositiveGpuAVRayTracing, BlasReference1DescriptorHeap) { auto debug_buffer_ptr = static_cast(debug_buffer.Memory().Map()); std::memset(debug_buffer_ptr, 0, (size_t)debug_buffer.CreateInfo().size); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(1024, true); const VkDeviceSize as_heap_offset = desc_heap.WriteAccelerationStructureDescriptor(*tlas_build_info[0].GetDstAS()); const VkDeviceSize debug_buffer_heap_offset = desc_heap.WriteBufferDescriptor(debug_buffer, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER); diff --git a/tests/unit/gpu_dump.cpp b/tests/unit/gpu_dump.cpp index 4b7c0454023..933f1a2d3c0 100644 --- a/tests/unit/gpu_dump.cpp +++ b/tests/unit/gpu_dump.cpp @@ -368,7 +368,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapDescriptorIndexing) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); vkt::Buffer ubo_buffer(*m_device, 64, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, vkt::device_address); @@ -415,14 +415,14 @@ TEST_F(NegativeGpuDump, DescriptorHeapDescriptorIndexing) { mapping_info.pMappings = &mapping; // CONSTANT_DATA Static array, can detect OOB - vkt::HeapComputePipeline pipe1(*m_device, cs_source_static, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe1(*m_device, cs_source_static, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe1); m_errorMonitor->SetDesiredWarning("OUT OF BOUNDS"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); m_errorMonitor->VerifyFound(); // CONSTANT_DATA runtime array, can't detect OOB - vkt::HeapComputePipeline pipe2(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe2); m_errorMonitor->SetDesiredInfo("GPU-DUMP"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -438,14 +438,14 @@ TEST_F(NegativeGpuDump, DescriptorHeapDescriptorIndexing) { mapping.sourceData.pushIndex.heapArrayStride = (uint32_t)resource_stride; // PUSH_INDEX Static array - vkt::HeapComputePipeline pipe3(*m_device, cs_source_static, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe3(*m_device, cs_source_static, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe3); m_errorMonitor->SetDesiredWarning("OUT OF BOUNDS"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); m_errorMonitor->VerifyFound(); // PUSH_INDEX runtime array - vkt::HeapComputePipeline pipe4(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe4(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe4); m_errorMonitor->SetDesiredInfo("GPU-DUMP"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -461,9 +461,9 @@ TEST_F(NegativeGpuDump, DescriptorHeapDescriptorIndexing) { mapping.sourceData.indirectIndex.heapIndexStride = 1; mapping.sourceData.indirectIndex.heapArrayStride = (uint32_t)resource_stride; // INDIRECT_INDEX Static array - vkt::HeapComputePipeline pipe5(*m_device, cs_source_static, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe5(*m_device, cs_source_static, SPV_ENV_VULKAN_1_0, &mapping_info); // INDIRECT_INDEX runtime array - vkt::HeapComputePipeline pipe6(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe6(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_0, &mapping_info); if (m_device->Physical().limits_.minUniformBufferOffsetAlignment <= 4) { vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe5); @@ -485,14 +485,14 @@ TEST_F(NegativeGpuDump, DescriptorHeapDescriptorIndexing) { mapping.sourceData.indirectIndexArray.pEmbeddedSampler = nullptr; // INDIRECT_INDEX_ARRAY Static array - vkt::HeapComputePipeline pipe7(*m_device, cs_source_static, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe7(*m_device, cs_source_static, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe7); m_errorMonitor->SetDesiredWarning("OUT OF BOUNDS"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); m_errorMonitor->VerifyFound(); // INDIRECT_INDEX_ARRAY runtime array - vkt::HeapComputePipeline pipe8(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe8(*m_device, cs_source_runtime, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe8); m_errorMonitor->SetDesiredInfo("GPU-DUMP"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -511,7 +511,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapReservedRangeNonArray) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -542,7 +542,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapReservedRangeNonArray) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("RESERVED RANGE"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -561,7 +561,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapReservedRangeArray) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -593,7 +593,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapReservedRangeArray) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("RESERVED RANGE"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -612,7 +612,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapReservedRangeArrayIndexed) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -655,7 +655,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapReservedRangeArrayIndexed) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("RESERVED RANGE"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -674,7 +674,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapReservedRangeIndirectArray) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -716,7 +716,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapReservedRangeIndirectArray) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("RESERVED RANGE"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -734,7 +734,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapSampler) { const VkDeviceSize resource_stride = heap_props.samplerDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 2), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); desc_heap.CreateSamplerHeap(heap_size); @@ -765,7 +765,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapSampler) { mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("OUT OF BOUNDS"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -784,7 +784,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignment) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -818,7 +818,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignment) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("MISALIGNED"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -837,7 +837,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignmentIndirectArray) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 5), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -874,7 +874,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignmentIndirectArray) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("MISALIGNED"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -893,7 +893,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignmentHeapData) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -918,7 +918,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignmentHeapData) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("MISALIGNED"); @@ -939,7 +939,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapWithoutDescriptor) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* vs_source = R"glsl( @@ -1007,7 +1007,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignmentPushAddress) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -1033,7 +1033,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignmentPushAddress) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("MISALIGNED"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -1056,7 +1056,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignmentIndirectAddress) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -1086,7 +1086,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignmentIndirectAddress) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("MISALIGNED"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -1109,7 +1109,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignmentIndirectIndex) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -1140,7 +1140,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapAlignmentIndirectIndex) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("MISALIGNED"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -1159,7 +1159,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapIndirectIndexNoBuffer) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -1189,7 +1189,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapIndirectIndexNoBuffer) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("[WARNING] No VkBuffer found at 0xbeef0000"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -1206,7 +1206,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapCombinedImageSampler) { if (heap_props.minResourceHeapReservedRange != 0 || heap_props.minSamplerHeapReservedRange != 0) { GTEST_SKIP() << "minResourceHeapReservedRange/minSamplerHeapReservedRange is not zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); @@ -1223,7 +1223,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapCombinedImageSampler) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -1241,7 +1241,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapZeroArrayStride) { if (heap_props.minResourceHeapReservedRange != 0) { GTEST_SKIP() << "minResourceHeapReservedRange is not zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); const char* cs_source = R"glsl( @@ -1263,7 +1263,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapZeroArrayStride) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("ZERO ARRAY STRIDE"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -1282,7 +1282,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapIndirectIndexBufferType) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -1314,7 +1314,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapIndirectIndexBufferType) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("BUFFER TYPE"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -1333,7 +1333,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapPushAddressBufferType) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; const VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -1361,7 +1361,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapPushAddressBufferType) { mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); vkt::Buffer ssbo_buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, vkt::device_address); @@ -1390,7 +1390,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapUntypedPointers) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); @@ -1437,7 +1437,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapUntypedPointers) { mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); uint32_t push_data = 0; @@ -1461,7 +1461,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapUntypedPointersStorageImage) { const VkDeviceSize resource_stride = heap_props.imageDescriptorSize; VkDeviceSize heap_size = Align((resource_stride * 4), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -1497,7 +1497,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapUntypedPointersStorageImage) { mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); uint32_t push_data = 0; @@ -1519,7 +1519,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapBindingCount) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; VkDeviceSize heap_size = Align((resource_stride * 3), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); VkDescriptorSetAndBindingMappingEXT mapping = MakeSetAndBindingMapping(0, 0, 5); @@ -1540,7 +1540,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapBindingCount) { y[0].b = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); char const* cs_source2 = R"glsl( #version 450 @@ -1552,7 +1552,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapBindingCount) { x.d = y.d + z.d + w.d; } )glsl"; - vkt::HeapComputePipeline pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe2(*m_device, cs_source2, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1574,7 +1574,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapUntypedPointersPushDataIndex) { AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(8192); if (IsPlatformMockICD()) { @@ -1600,7 +1600,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapUntypedPointersPushDataIndex) { heap[pc_0 + 1].x = 5; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1634,7 +1634,7 @@ TEST_F(NegativeGpuDump, UntypedPointersMultiDimensional) { const VkDeviceSize resource_stride = heap_props.bufferDescriptorSize; VkDeviceSize heap_size = Align((resource_stride * 8), resource_stride); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); // layout(descriptor_heap) buffer Heap { uint data; } heap[3][3]; @@ -1686,7 +1686,7 @@ TEST_F(NegativeGpuDump, UntypedPointersMultiDimensional) { m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_3, nullptr, SPV_SOURCE_ASM); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredInfo("array index: [1][2]"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -1699,7 +1699,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapPushOffsetOOB) { if (heap_props.minResourceHeapReservedRange != 0) { GTEST_SKIP() << "minResourceHeapReservedRange is not zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.bufferDescriptorSize); VkDescriptorSetAndBindingMappingEXT mapping = MakeSetAndBindingMapping(0, 0); @@ -1717,7 +1717,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapPushOffsetOOB) { a = 2; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1744,7 +1744,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapNoDescriptor) { if (heap_props.minResourceHeapReservedRange != 0) { GTEST_SKIP() << "minResourceHeapReservedRange is not zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(1024); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); @@ -1759,7 +1759,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapNoDescriptor) { a = 3; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1782,7 +1782,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapWrongDescriptor) { if (heap_props.minResourceHeapReservedRange != 0) { GTEST_SKIP() << "minResourceHeapReservedRange is not zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(1024); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); @@ -1800,7 +1800,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapWrongDescriptor) { imageStore(si, ivec2(1), uvec4(0)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1822,7 +1822,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapWrongDescriptorSampler) { if (heap_props.minResourceHeapReservedRange != 0) { GTEST_SKIP() << "minResourceHeapReservedRange is not zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(1024); VkDescriptorSetAndBindingMappingEXT mapping = MakeZeroSetAndBindingMapping(0, 0); @@ -1841,7 +1841,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapWrongDescriptorSampler) { imageStore(si, ivec2(1), uvec4(0)); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -1912,7 +1912,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapWrongDescriptorNotSampler) { mapping_info.mappingCount = 2u; mapping_info.pMappings = mappings; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); m_errorMonitor->SetDesiredWarning("WRONG DESCRIPTOR"); vk::CmdDispatch(m_command_buffer, 1, 1, 1); @@ -1933,7 +1933,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapNoDescriptorCombinedSampler) { GTEST_SKIP() << "heapReservedRange is not zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize); desc_heap.CreateSamplerHeap(heap_props.samplerDescriptorSize); @@ -1953,7 +1953,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapNoDescriptorCombinedSampler) { mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); @@ -1974,7 +1974,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapWrongDescriptorDebugNames) { if (heap_props.minResourceHeapReservedRange != 0) { GTEST_SKIP() << "minResourceHeapReservedRange is not zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(1024); VkDescriptorSetAndBindingMappingEXT mappings[2]; @@ -2015,7 +2015,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapWrongDescriptorDebugNames) { imageStore(si, ivec2(1), data); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2093,7 +2093,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapHashConflict) { imageStore(storageImage, ivec2(1), color); } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); VkBindHeapInfoEXT bind_resource_info = vku::InitStructHelper(); @@ -2575,7 +2575,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapNullDescriptor) { if (heap_props.minResourceHeapReservedRange != 0) { GTEST_SKIP() << "minResourceHeapReservedRange is not zero"; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(1024); desc_heap.WriteNullDescriptorAtOffset(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 0); @@ -2591,7 +2591,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapNullDescriptor) { x = 0; } )glsl"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2607,10 +2607,10 @@ TEST_F(NegativeGpuDump, DescriptorHeapUntypedPointersImageFunctionParam) { AddRequiredFeature(vkt::Feature::shaderUntypedPointers); RETURN_IF_SKIP(InitDescriptorHeap()); - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_props.imageDescriptorSize); - // TODO - vkt::DescriptorHeap needs to be fixed to make sure the heap memory is allocated to + // TODO - vkt::DescriptorHeapEXT needs to be fixed to make sure the heap memory is allocated to // imageDescriptorAlignment if (IsPlatformMockICD()) { GTEST_SKIP() << "issues with alignment"; @@ -2683,7 +2683,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapUntypedPointersImageFunctionParam) { OpReturn OpFunctionEnd )"; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, &mapping_info, SPV_SOURCE_ASM); m_command_buffer.Begin(); desc_heap.BindResourceHeap(m_command_buffer); @@ -2707,7 +2707,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapReservedRangeRuntimeArray) { if (no_reserved_range) { heap_size += heap_props.bufferDescriptorSize; } - vkt::DescriptorHeap desc_heap(*this); + vkt::DescriptorHeapEXT desc_heap(*this); desc_heap.CreateResourceHeap(heap_size); const char* cs_source = R"glsl( @@ -2729,7 +2729,7 @@ TEST_F(NegativeGpuDump, DescriptorHeapReservedRangeRuntimeArray) { VkShaderDescriptorSetAndBindingMappingInfoEXT mapping_info = vku::InitStructHelper(); mapping_info.mappingCount = 1u; mapping_info.pMappings = &mapping; - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_0, &mapping_info); m_command_buffer.Begin(); diff --git a/tests/unit/shader_64bit_indexing.cpp b/tests/unit/shader_64bit_indexing.cpp index a0e375559c6..cdb38d1219f 100644 --- a/tests/unit/shader_64bit_indexing.cpp +++ b/tests/unit/shader_64bit_indexing.cpp @@ -274,6 +274,6 @@ TEST_F(NegativeShader64BitIndexing, ConstantSizeOfLength64) { OpFunctionEnd )"; m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-OpConstantSizeOfEXT-11475"); - vkt::HeapComputePipeline pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); + vkt::HeapComputePipelineEXT pipe(*m_device, cs_source, SPV_ENV_VULKAN_1_2, nullptr, SPV_SOURCE_ASM); m_errorMonitor->VerifyFound(); }