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++)