-VkInstance getInstance(Context& ctx, const CaseDef& caseDef)
-{
- if (caseDef.needsScalarBlockLayout())
- {
- if (formatIsR64(caseDef.format))
- {
- if (caseDef.testRobustness2)
- return Robustness2Int64AtomicsScalarSingleton::getInstance(ctx);
- return ImageRobustnessInt64AtomicsScalarSingleton::getInstance(ctx);
- }
-
- if (caseDef.testRobustness2)
- return Robustness2ScalarSingleton::getInstance(ctx);
- return ImageRobustnessScalarSingleton::getInstance(ctx);
- }
-
- if (formatIsR64(caseDef.format))
- {
- if (caseDef.testRobustness2)
- return Robustness2Int64AtomicsSingleton::getInstance(ctx);
- return ImageRobustnessInt64AtomicsSingleton::getInstance(ctx);
- }
-
- if (caseDef.testRobustness2)
- return Robustness2Singleton::getInstance(ctx);
- return ImageRobustnessSingleton::getInstance(ctx);
-}
-
-// Returns the appropriate singleton device driver for the given case.
-const InstanceInterface& getInstanceInterface(Context& ctx, const CaseDef& caseDef)
-{
- if (caseDef.needsScalarBlockLayout())
- {
- if (formatIsR64(caseDef.format))
- {
- if (caseDef.testRobustness2)
- return Robustness2Int64AtomicsScalarSingleton::getInstanceInterface(ctx);
- return ImageRobustnessInt64AtomicsScalarSingleton::getInstanceInterface(ctx);
- }
-
- if (caseDef.testRobustness2)
- return Robustness2ScalarSingleton::getInstanceInterface(ctx);
- return ImageRobustnessScalarSingleton::getInstanceInterface(ctx);
- }
-
- if (formatIsR64(caseDef.format))
- {
- if (caseDef.testRobustness2)
- return Robustness2Int64AtomicsSingleton::getInstanceInterface(ctx);
- return ImageRobustnessInt64AtomicsSingleton::getInstanceInterface(ctx);
- }
-
- if (caseDef.testRobustness2)
- return Robustness2Singleton::getInstanceInterface(ctx);
- return ImageRobustnessSingleton::getInstanceInterface(ctx);
-}
-
-// Returns the appropriate singleton device for the given case.