do not enable GL_PRIMITIVE_RESTART_FIXED_INDEX for PATCHEs if unsupported
Components: OpenGL
Affects:
KHR-GL46.tessellation_shader.tessellation_shader_tessellation.gl_InvocationID_PatchVerticesIn_PrimitiveID
Change-Id: I2c5597fb4f545f812aac541875dfdc44d7b9a1e2
diff --git a/external/openglcts/modules/glesext/tessellation_shader/esextcTessellationShaderTessellation.cpp b/external/openglcts/modules/glesext/tessellation_shader/esextcTessellationShaderTessellation.cpp
index 60c674b..a7611ad 100644
--- a/external/openglcts/modules/glesext/tessellation_shader/esextcTessellationShaderTessellation.cpp
+++ b/external/openglcts/modules/glesext/tessellation_shader/esextcTessellationShaderTessellation.cpp
@@ -1328,9 +1328,15 @@
gl.enable(GL_RASTERIZER_DISCARD);
GLU_EXPECT_NO_ERROR(gl.getError(), "glEnable(GL_RASTERIZER_DISCARD) failed.");
- /* Enable GL_PRIMITIVE_RESTART_FIXED_INDEX mode for indiced draw calls. */
- gl.enable(GL_PRIMITIVE_RESTART_FIXED_INDEX);
- GLU_EXPECT_NO_ERROR(gl.getError(), "glEnable(GL_PRIMITIVE_RESTART_FIXED_INDEX) failed.");
+ glw::GLboolean is_primitive_restart_supported = GL_FALSE;
+
+ gl.getBooleanv(GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED, &is_primitive_restart_supported);
+ if (is_primitive_restart_supported)
+ {
+ /* Enable GL_PRIMITIVE_RESTART_FIXED_INDEX mode for indiced draw calls. */
+ gl.enable(GL_PRIMITIVE_RESTART_FIXED_INDEX);
+ GLU_EXPECT_NO_ERROR(gl.getError(), "glEnable(GL_PRIMITIVE_RESTART_FIXED_INDEX) failed.");
+ }
/* Iterate through all test runs configured */
for (_runs_const_iterator run_iterator = m_runs.begin(); run_iterator != m_runs.end(); run_iterator++)