if (result == VK_ERROR_FORMAT_NOT_SUPPORTED)
TCU_THROW(NotSupportedError, "VK_FORMAT_R32G32B32A32_UINT not supported");
+ if (m_data.geometryShader)
+ context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_GEOMETRY_SHADER);
+
if (!(imageProperties.sampleCounts & m_data.samples))
TCU_THROW(NotSupportedError, "color buffer sample count not supported");
VkSampleCountFlagBits samples;
VkFormat colorFormat;
RenderingType renderingType;
+
+ bool geometryShaderNeeded (void) const
+ {
+ return ((TEST_TYPE_VIEW_INDEX_IN_GEOMETRY == viewIndex) ||
+ (TEST_TYPE_INPUT_ATTACHMENTS_GEOMETRY == viewIndex) ||
+ (TEST_TYPE_SECONDARY_CMD_BUFFER_GEOMETRY == viewIndex));
+ }
};
const int TEST_POINT_SIZE_SMALL = 2;
if (!multiviewFeatures.multiview)
TCU_THROW(NotSupportedError, "MultiView not supported");
- bool requiresGeomShader = (TEST_TYPE_VIEW_INDEX_IN_GEOMETRY == m_parameters.viewIndex) ||
- (TEST_TYPE_INPUT_ATTACHMENTS_GEOMETRY == m_parameters.viewIndex) ||
- (TEST_TYPE_SECONDARY_CMD_BUFFER_GEOMETRY == m_parameters.viewIndex);
-
- if (requiresGeomShader && !multiviewFeatures.multiviewGeometryShader)
+ if (m_parameters.geometryShaderNeeded() && !multiviewFeatures.multiviewGeometryShader)
TCU_THROW(NotSupportedError, "Geometry shader is not supported");
if (TEST_TYPE_VIEW_INDEX_IN_TESELLATION == m_parameters.viewIndex && !multiviewFeatures.multiviewTessellationShader)
virtual void checkSupport (Context& context) const
{
+ if (m_parameters.geometryShaderNeeded())
+ context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_GEOMETRY_SHADER);
+
if (m_parameters.renderingType == RENDERING_TYPE_RENDERPASS2)
context.requireDeviceFunctionality("VK_KHR_create_renderpass2");
programCollection.glslSources.add("tessellation_evaluation") << glu::TessellationEvaluationSource(source_te.str());
}
- if (TEST_TYPE_VIEW_INDEX_IN_GEOMETRY == m_parameters.viewIndex ||
- TEST_TYPE_INPUT_ATTACHMENTS_GEOMETRY == m_parameters.viewIndex ||
- TEST_TYPE_SECONDARY_CMD_BUFFER_GEOMETRY == m_parameters.viewIndex)
+ if (m_parameters.geometryShaderNeeded())
{// Geometry Shader
std::ostringstream source;
source << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"