blob: 35335e902cb0db5d80058972856aa2fb070e4613 [file] [log] [blame]
.../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++)