programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
}
-TestInstance* MSCaseSampleQualifierDistinctValues::createInstance (Context& context) const
+template<> TestInstance* MSCase<MSCaseSampleQualifierDistinctValues>::createInstance (Context& context) const
{
- return new MSInstanceDistinctValues(context, m_imageMSParams);
+ if (!context.getDeviceFeatures().sampleRateShading)
+ TCU_THROW(NotSupportedError, "sampleRateShading support required");
+ return new MSInstance<MSInstanceDistinctValues>(context, m_imageMSParams);
}
-class MSCaseInterpolateAtSampleDistinctValues : public MSInterpolationCaseBase
-{
-public:
- MSCaseInterpolateAtSampleDistinctValues (tcu::TestContext& testCtx,
- const std::string& name,
- const ImageMSParams& imageMSParams)
- : MSInterpolationCaseBase(testCtx, name, imageMSParams) {}
-
- void init (void);
- void initPrograms (vk::SourceCollections& programCollection) const;
- TestInstance* createInstance (Context& context) const;
-};
-
-MSInterpolationCaseBase* createMSCaseInterpolateAtSampleDistinctValues (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
-{
- return new MSCaseInterpolateAtSampleDistinctValues(testCtx, name, imageMSParams);
-}
+class MSCaseInterpolateAtSampleDistinctValues;
-void MSCaseInterpolateAtSampleDistinctValues::init (void)
+template<> void MSCase<MSCaseInterpolateAtSampleDistinctValues>::init (void)
{
m_testCtx.getLog()
<< tcu::TestLog::Message