// Utilities for test names
-std::string getShortName (VkCompareOp compareOp)
-{
- const std::string fullName = getCompareOpName(compareOp);
-
- DE_ASSERT(de::beginsWith(fullName, "VK_COMPARE_OP_"));
-
- return de::toLower(fullName.substr(14));
-}
-
const char* getShortName (VkStencilOp stencilOp)
{
switch (stencilOp)
VK_FORMAT_D32_SFLOAT_S8_UINT
};
+ DE_STATIC_ASSERT(DE_LENGTH_OF_ARRAY(compareOps) == 8);
+ DE_STATIC_ASSERT(vk::VK_COMPARE_OP_LAST == 8);
+
+ static const char* compareOpNames[8] =
+ {
+ "comp_never",
+ "comp_less",
+ "comp_equal",
+ "comp_less_or_equal",
+ "comp_greater",
+ "comp_not_equal",
+ "comp_greater_or_equal",
+ "comp_always"
+ };
+
de::MovePtr<tcu::TestCaseGroup> stencilTests (new tcu::TestCaseGroup(testCtx, "stencil", "Stencil tests"));
de::MovePtr<tcu::TestCaseGroup> noColorAttachmentTests (new tcu::TestCaseGroup(testCtx, "nocolor", "Stencil tests with no color attachment"));
const bool colorAttachmentEnabled[] = { true, false };
// Iterate back set of stencil state in random order
const VkStencilOpState stencilStateBack = stencilOpItr.next();
- const std::string caseName = std::string("comp_") + getShortName(compareOps[compareOpNdx]);
+ const std::string caseName = compareOpNames[compareOpNdx];
const std::string caseDesc = getStencilStateSetDescription(stencilStateFront, stencilStateBack);
dFailOpTest->addChild(new StencilTest(testCtx, caseName, caseDesc, stencilFormat, stencilStateFront, stencilStateBack, colorEnabled));
for (size_t caseNdx = 0; caseNdx < DE_LENGTH_OF_ARRAY(cases); caseNdx++)
{
- std::string name= getResourceName(resource) + cases[caseNdx].nameSuffix;
-
if (isResourceSupported(writeOp, resource) && isResourceSupported(readOp, resource))
{
- const TestConfig config (resource, writeOp, readOp, cases[caseNdx].memoryType, cases[caseNdx].semaphoreType, dedicated);
+ const TestConfig config (resource, writeOp, readOp, cases[caseNdx].memoryType, cases[caseNdx].semaphoreType, dedicated);
+ std::string name = getResourceName(resource) + cases[caseNdx].nameSuffix;
opGroup->addChild(new InstanceFactory1<SharingTestInstance, TestConfig, Progs>(testCtx, tcu::NODETYPE_SELF_VALIDATE, name, "", Progs(), config));
empty = false;
for (int resourceNdx = 0; resourceNdx < DE_LENGTH_OF_ARRAY(s_resources); ++resourceNdx)
{
const ResourceDescription& resource = s_resources[resourceNdx];
- std::string name = getResourceName(resource);
- VkSharingMode sharingMode = VK_SHARING_MODE_EXCLUSIVE;
-
- // queue family sharing mode used for resource
- if (optionNdx)
- {
- name += "_concurrent";
- sharingMode = VK_SHARING_MODE_CONCURRENT;
- }
- else
- name += "_exclusive";
-
if (isResourceSupported(writeOp, resource) && isResourceSupported(readOp, resource))
{
+ std::string name = getResourceName(resource);
+ VkSharingMode sharingMode = VK_SHARING_MODE_EXCLUSIVE;
+
+ // queue family sharing mode used for resource
+ if (optionNdx)
+ {
+ name += "_concurrent";
+ sharingMode = VK_SHARING_MODE_CONCURRENT;
+ }
+ else
+ name += "_exclusive";
+
opGroup->addChild(new BaseTestCase(testCtx, name, "", groups[groupNdx].syncPrimitive, resource, writeOp, readOp, sharingMode, *pipelineCacheData));
empty = false;
}
return new InterfaceBlockCaseInstance(context, m_interfaceLayout, m_blockPointers, m_data, m_tfBufBindingOffsets, m_tfBufBindingSizes, m_locationsRequired, m_testStageFlags);
}
-void InterfaceBlockCase::init (void)
+void InterfaceBlockCase::delayedInit (void)
{
BufferGeneralMapping xfbBufferSize;
std::string notSupportedComment;
bool shuffleInterfaceMembers = false);
~InterfaceBlockCase (void);
+ virtual void delayedInit (void);
virtual void initPrograms (vk::SourceCollections& programCollection) const;
virtual TestInstance* createInstance (Context& context) const;
protected:
- void init (void);
-
ShaderInterface m_interface;
MatrixLoadFlags m_matrixLoadFlag;
TestStageFlags m_testStageFlags;
block.setArraySize(numInstances);
block.setInstanceName("block");
}
-
- init();
}
};
block.setInstanceName("block");
block.setArraySize(numInstances);
}
-
- init();
}
};
block.setInstanceName("block");
block.setArraySize(numInstances);
}
-
- init();
}
};
block.setInstanceName("block");
block.setArraySize(numInstances);
}
-
- init();
}
};
block.setInstanceName("block");
block.setArraySize(numInstances);
}
-
- init();
}
};
blockA.setArraySize(numInstances);
blockB.setArraySize(numInstances);
}
-
- init();
}
};
blockA.setArraySize(numInstances);
blockB.setArraySize(numInstances);
}
-
- init();
}
};
blockA.setArraySize(numInstances);
blockB.setArraySize(numInstances);
}
-
- init();
}
};
block.setInstanceName("block");
block.setArraySize(numInstances);
}
-
- init();
}
};