Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6
authorMatthew Netsch <quic_mnetsch@quicinc.com>
Fri, 8 Oct 2021 15:42:39 +0000 (11:42 -0400)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Fri, 8 Oct 2021 15:42:39 +0000 (11:42 -0400)
Change-Id: I1d4bf5c3a9cbd2f7d8e5bdce8645065661be1e9c

external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp
external/vulkancts/modules/vulkan/image/vktImageMutableTests.cpp
external/vulkancts/modules/vulkan/renderpass/vktRenderPassDepthStencilResolveTests.cpp

index d3d5a59..1402dba 100644 (file)
@@ -1840,7 +1840,8 @@ void TopLevelAccelerationStructureKHR::create (const DeviceInterface&                             vk,
 
        if (m_useArrayOfPointers)
        {
-               const VkBufferCreateInfo        bufferCreateInfo = makeBufferCreateInfo(m_bottomLevelInstances.size() * sizeof(VkDeviceOrHostAddressConstKHR), VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT);
+               const size_t                            pointerSize = (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR) ? sizeof(VkDeviceOrHostAddressConstKHR::deviceAddress) : sizeof(VkDeviceOrHostAddressConstKHR::hostAddress);
+               const VkBufferCreateInfo        bufferCreateInfo = makeBufferCreateInfo(static_cast<VkDeviceSize>(m_bottomLevelInstances.size() * pointerSize), VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT);
                m_instanceAddressBuffer = de::MovePtr<BufferWithMemory>(new BufferWithMemory(vk, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible | MemoryRequirement::Coherent | MemoryRequirement::DeviceAddress));
        }
 
@@ -2090,8 +2091,8 @@ void TopLevelAccelerationStructureKHR::prepareInstances (const DeviceInterface&
                                        VkDeviceOrHostAddressConstKHR   currentInstance;
                                        currentInstance.deviceAddress   = firstInstance.deviceAddress + instanceNdx * sizeof(VkAccelerationStructureInstanceKHR);
 
-                                       deMemcpy(&bufferStart[bufferOffset], &currentInstance, sizeof(VkDeviceOrHostAddressConstKHR));
-                                       bufferOffset += sizeof(VkDeviceOrHostAddressConstKHR);
+                                       deMemcpy(&bufferStart[bufferOffset], &currentInstance, sizeof(VkDeviceOrHostAddressConstKHR::deviceAddress));
+                                       bufferOffset += sizeof(VkDeviceOrHostAddressConstKHR::deviceAddress);
                                }
                                flushMappedMemoryRange(vk, device, m_instanceAddressBuffer->getAllocation().getMemory(), m_instanceAddressBuffer->getAllocation().getOffset(), VK_WHOLE_SIZE);
 
@@ -2116,8 +2117,8 @@ void TopLevelAccelerationStructureKHR::prepareInstances (const DeviceInterface&
                                        VkDeviceOrHostAddressConstKHR   currentInstance;
                                        currentInstance.hostAddress     = (deUint8*)m_instanceBuffer->getAllocation().getHostPtr() + instanceNdx * sizeof(VkAccelerationStructureInstanceKHR);
 
-                                       deMemcpy(&bufferStart[bufferOffset], &currentInstance, sizeof(VkDeviceOrHostAddressConstKHR));
-                                       bufferOffset += sizeof(VkDeviceOrHostAddressConstKHR);
+                                       deMemcpy(&bufferStart[bufferOffset], &currentInstance, sizeof(VkDeviceOrHostAddressConstKHR::hostAddress));
+                                       bufferOffset += sizeof(VkDeviceOrHostAddressConstKHR::hostAddress);
                                }
                                instancesData = makeDeviceOrHostAddressConstKHR(m_instanceAddressBuffer->getAllocation().getHostPtr());
                        }
index 6593c74..917165e 100644 (file)
@@ -1056,6 +1056,18 @@ void UploadDownloadExecutor::run(Context& context, VkBuffer buffer)
        const VkImageUsageFlags         imageUsage      = getImageUsageForTestCase(m_caseDef);
        const VkImageCreateFlags        imageFlags      = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT | (m_haveMaintenance2 ? VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR : 0);
 
+       VkImageFormatProperties properties;
+       if ((context.getInstanceInterface().getPhysicalDeviceImageFormatProperties(context.getPhysicalDevice(),
+                                                                                                                                                          m_caseDef.imageFormat,
+                                                                                                                                                          getImageType(m_caseDef.imageType),
+                                                                                                                                                          VK_IMAGE_TILING_OPTIMAL,
+                                                                                                                                                          imageUsage,
+                                                                                                                                                          imageFlags,
+                                                                                                                                                          &properties) == VK_ERROR_FORMAT_NOT_SUPPORTED))
+       {
+               TCU_THROW(NotSupportedError, "Format not supported");
+       }
+
        m_imageHolder                                                   = makeImage(m_vk, m_device, imageFlags, getImageType(m_caseDef.imageType), m_caseDef.imageFormat, m_caseDef.viewFormat,
                                                                                                                m_caseDef.isFormatListTest, m_caseDef.size, 1u, m_caseDef.numLayers, imageUsage);
        m_image                                                                 = *m_imageHolder;
index 3a15c87..7a3dd9b 100644 (file)
@@ -580,7 +580,7 @@ Move<VkRenderPass> DepthStencilResolveTest::createRenderPass (VkFormat vkformat)
        AttachmentReference2 singlesampleAttachmentRef                  // VkAttachmentReference2
        (
                                                                                                                                // VkStructureType                                      sType;
-               DE_NULL,                                                                                                // const void*                                          pNext;
+               attachmentRefStencil,                                                                   // const void*                                          pNext;
                (m_config.unusedResolve ? VK_ATTACHMENT_UNUSED : 1u),   // deUint32                                                     attachment;
                layout,                                                                                                 // VkImageLayout                                        layout;
                aspectFlags                                                                                             // VkImageAspectFlags                           aspectMask;