| .../spirv_assembly/vktSpvAsmImageSamplerTests.cpp | 21 +++++++++++---------- |
| 1 file changed, 11 insertions(+), 10 deletions(-) |
| |
| diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmImageSamplerTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmImageSamplerTests.cpp |
| index 9b8c1da7a..d81109d33 100644 |
| --- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmImageSamplerTests.cpp |
| +++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmImageSamplerTests.cpp |
| @@ -1146,14 +1146,16 @@ void addGraphicsImageSamplerTest (tcu::TestCaseGroup* group) |
| vector<tcu::Vec4> inputDataBase (numDataPoints); |
| for (deUint32 numIdx = 0; numIdx < numDataPoints; ++numIdx) |
| inputDataBase[numIdx] = tcu::randomVec4(rnd); |
| + // Depth only has 1 component |
| + vector<tcu::Vec4> inputDataBaseDepth = inputDataBase; |
| + inputDataBaseDepth.resize(numDataPoints / 4); |
| |
| for (deUint32 opNdx = 0u; opNdx < READOP_LAST; opNdx++) |
| { |
| de::MovePtr<tcu::TestCaseGroup> readOpGroup (new tcu::TestCaseGroup(testCtx, getReadOpName((ReadOp)opNdx), "")); |
| |
| - vector<tcu::Vec4> inputData = inputDataBase; |
| - if (opNdx > READOP_IMAGESAMPLE) |
| - inputData.resize(numDataPoints / 4u); |
| + const VkFormat imageFormat = getImageFormat((ReadOp)opNdx); |
| + const bool hasDepthComponent = tcu::hasDepthComponent(vk::mapVkFormat(imageFormat).order); |
| |
| for (deUint32 descNdx = 0u; descNdx < DESCRIPTOR_TYPE_LAST; descNdx++) |
| { |
| @@ -1176,7 +1178,7 @@ void addGraphicsImageSamplerTest (tcu::TestCaseGroup* group) |
| // optypeimage_mismatch uses an additional level of test hierarchy |
| const char *groupname = testNdx == TESTTYPE_OPTYPEIMAGE_MISMATCH ? optypeimageFormatMismatchCase[formatIndex] : getTestTypeName((TestType)testNdx); |
| de::MovePtr<tcu::TestCaseGroup> typeGroup(new tcu::TestCaseGroup(testCtx, groupname, "")); |
| - |
| + vector<Vec4>& inputData = hasDepthComponent && testNdx != TESTTYPE_OPTYPEIMAGE_MISMATCH ? inputDataBaseDepth : inputDataBase; |
| GraphicsResources resources; |
| |
| resources.inputs.push_back(Resource(BufferSp(new Vec4Buffer(inputData)), getVkDescriptorType((DescriptorType)descNdx))); |
| @@ -1202,12 +1204,6 @@ void addGraphicsImageSamplerTest (tcu::TestCaseGroup* group) |
| |
| getDefaultColors(defaultColors); |
| |
| - if (opNdx > READOP_IMAGESAMPLE) |
| - { |
| - resources.verifyIO = verifyDepthCompareResult; |
| - resources.inputFormat = getImageFormat((ReadOp)opNdx); |
| - } |
| - |
| // If testing for mismatched optypeimage, ignore the rendered |
| // result (we're only interested to see if we crash) |
| if (testNdx == TESTTYPE_OPTYPEIMAGE_MISMATCH) |
| @@ -1215,6 +1211,11 @@ void addGraphicsImageSamplerTest (tcu::TestCaseGroup* group) |
| resources.verifyIO = nopVerifyFunction; |
| resources.inputFormat = optypeimageFormatMismatchVkFormat[formatIndex]; |
| } |
| + else if (hasDepthComponent) |
| + { |
| + resources.verifyIO = verifyDepthCompareResult; |
| + resources.inputFormat = getImageFormat((ReadOp)opNdx); |
| + } |
| |
| de::MovePtr<tcu::TestCaseGroup> depthGroup (new tcu::TestCaseGroup(testCtx, "depth_property", "")); |
| for (deUint32 propertyNdx = 0u; propertyNdx < DEPTH_PROPERTY_LAST; propertyNdx++) |