GL_EXT_control_flow_attributes2 support. (#3531)

The actual support has been available with GL_EXT_control_flow_attributes.
This change set is to handle
  "#extension GL_EXT_control_flow_attributes2 : <val>"
This commit is contained in:
Wooyoung Kim 2024-03-04 13:43:05 -08:00 committed by GitHub
parent ad7e719c3b
commit bada5c87ec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 214 additions and 205 deletions

View file

@ -1,5 +1,7 @@
460.frag
ERROR: 0:22: 'attribute' : required extension not requested: GL_EXT_control_flow_attributes
ERROR: 0:22: 'attribute' : required extension not requested: Possible extensions include:
GL_EXT_control_flow_attributes
GL_EXT_control_flow_attributes2
ERROR: 0:23: 'attribute' : required extension not requested: GL_EXT_control_flow_attributes
ERROR: 0:30: 'dependency_length' : must be positive
ERROR: 0:31: 'dependency_length' : must be positive

View file

@ -264,6 +264,8 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_EXT_fragment_shader_barycentric] = EBhDisable;
extensionBehavior[E_GL_EXT_expect_assume] = EBhDisable;
extensionBehavior[E_GL_EXT_control_flow_attributes2] = EBhDisable;
extensionBehavior[E_GL_KHR_cooperative_matrix] = EBhDisable;
// #line and #include
@ -591,6 +593,8 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_EXT_fragment_shader_barycentric 1\n"
"#define GL_EXT_shader_quad_control 1\n"
"#define GL_EXT_texture_array 1\n"
"#define GL_EXT_control_flow_attributes2 1\n"
;
if (spvVersion.spv == 0) {

View file

@ -221,6 +221,7 @@ const char* const E_GL_EXT_draw_instanced = "GL_EXT_draw_insta
const char* const E_GL_EXT_texture_array = "GL_EXT_texture_array";
const char* const E_GL_EXT_maximal_reconvergence = "GL_EXT_maximal_reconvergence";
const char* const E_GL_EXT_expect_assume = "GL_EXT_expect_assume";
const char* const E_GL_EXT_control_flow_attributes2 = "GL_EXT_control_flow_attributes2";
// Arrays of extensions for the above viewportEXTs duplications

View file

@ -3950,7 +3950,8 @@ iteration_statement
$$ = $1;
}
| attribute iteration_statement_nonattributed {
parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
const char * extensions[2] = { E_GL_EXT_control_flow_attributes, E_GL_EXT_control_flow_attributes2 };
parseContext.requireExtensions($2->getLoc(), 2, extensions, "attribute");
parseContext.handleLoopAttributes(*$1, $2);
$$ = $2;
}

File diff suppressed because it is too large Load diff