diff options
3 files changed, 26 insertions, 5 deletions
diff --git a/external/vulkancts/modules/vulkan/robustness/vktRobustnessExtsTests.cpp b/external/vulkancts/modules/vulkan/robustness/vktRobustnessExtsTests.cpp index f6aa11020..b5fa74d0b 100644 --- a/external/vulkancts/modules/vulkan/robustness/vktRobustnessExtsTests.cpp +++ b/external/vulkancts/modules/vulkan/robustness/vktRobustnessExtsTests.cpp @@ -1263,9 +1263,24 @@ void RobustnessExtsTestCase::initPrograms (SourceCollections& programCollection) checks << " else if (temp == zzzo) temp = " << vecType << "(0);\n"; // non-volatile value replaced with stored value - if (supportsStores(m_data.descriptorType) && !m_data.vol) + if (supportsStores(m_data.descriptorType) && !m_data.vol) { checks << " else if (temp == " << getStoreValue(m_data.descriptorType, numComponents, vecType, bufType) << ") temp = " << vecType << "(0);\n"; + if (m_data.descriptorType == VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC || m_data.descriptorType == VK_DESCRIPTOR_TYPE_STORAGE_BUFFER) { + + for (int mask = (numComponents*numComponents) - 2; mask > 0; mask--) { + checks << " else if (temp == " << vecType << "("; + for (int vecIdx = 0; vecIdx < 4; vecIdx++) { + if (mask & (1 << vecIdx)) checks << storeValue; + else checks << "0"; + + if (vecIdx != 3) checks << ","; + } + checks << ")) temp = " << vecType << "(0);\n"; + } + } + } + // value straddling the boundary, returning a partial vector if (expectedOOB2 != expectedOOB) checks << " else if (c == inboundcoords && temp == " << expectedOOB2 << ") temp = " << vecType << "(0);\n"; diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationTimelineSemaphoreTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationTimelineSemaphoreTests.cpp index 5975df29a..7e7efbaff 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationTimelineSemaphoreTests.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationTimelineSemaphoreTests.cpp @@ -427,6 +427,7 @@ public: std::vector<deUint64> timelineValues; const deUint64 secondInMicroSeconds = 1000ull * 1000ull * 1000ull; deUint64 startTime; + VkResult result = VK_SUCCESS; for (deUint32 i = 0; i < semaphorePtrs.size(); i++) { @@ -449,7 +450,8 @@ public: do { deUint64 value; - VkResult result = vk.getSemaphoreCounterValue(device, semaphores.back(), &value); + + result = vk.getSemaphoreCounterValue(device, semaphores.back(), &value); if (result != VK_SUCCESS) break; @@ -463,12 +465,15 @@ public: } if (value > timelineValues.back()) + { + result = VK_ERROR_UNKNOWN; break; - } while ((deGetMicroseconds() - startTime) > secondInMicroSeconds); + } + } while ((deGetMicroseconds() - startTime) < secondInMicroSeconds); VK_CHECK(vk.deviceWaitIdle(device)); - if ((deGetMicroseconds() - startTime) < secondInMicroSeconds) + if (result != VK_SUCCESS) return tcu::TestStatus::fail("Fail"); return tcu::TestStatus::fail("Timeout"); } diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp index dc69ea23d..d8abf0a3f 100644 --- a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp +++ b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp @@ -128,7 +128,8 @@ void checkTextureSupport (Context& context, const Texture2DArrayTestCaseParamete context.requireDeviceFunctionality("VK_KHR_sampler_mirror_clamp_to_edge"); #ifndef CTS_USES_VULKANSC - if (testParameters.format == VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 && testParameters.mipmaps && context.getRGBA10X6FormatsFeaturesEXT().formatRgba10x6WithoutYCbCrSampler == VK_FALSE) + bool mipmaps = (deLog2Floor32(de::max(testParameters.width, testParameters.height)) + 1) > 1 || testParameters.mipmaps; + if (testParameters.format == VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 && mipmaps && context.getRGBA10X6FormatsFeaturesEXT().formatRgba10x6WithoutYCbCrSampler == VK_FALSE) TCU_THROW(NotSupportedError, "formatRgba10x6WithoutYCbCrSampler not supported"); #endif } |