Add ES 320 support and additional error checks for SPV_NV_mesh_shader
- Add ES 320 support - Error out use of perprimitiveNV for non mesh/fragment shaders - Error out use of mesh/task shaders w/o use of NV_mesh_shader - Error out use of NV_mesh_shader for non task/mesh shaders - Error out use of perviewNV for non mesh shaders - Error out use of taskNV for non mesh/task shaders - Add test case for mesh shader with ES 320 profile
This commit is contained in:
parent
a8453d4bc0
commit
95e2d4ec02
11 changed files with 1345 additions and 1279 deletions
|
|
@ -834,6 +834,23 @@ void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBe
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
// Validate if extension name is used with correct shader stage.
|
||||
bool TParseVersions::validateExtensionName(const TSourceLoc& loc, const char * const extension)
|
||||
{
|
||||
int lNumErrors = getNumErrors();
|
||||
|
||||
// GL_NV_mesh_shader extension is only allowed in task/mesh shaders
|
||||
if (strcmp(extension, "GL_NV_mesh_shader") == 0)
|
||||
requireStage(loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask),
|
||||
"#extension GL_NV_mesh_shader");
|
||||
|
||||
if (getNumErrors() > lNumErrors)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Call for any operation needing full GLSL integer data-type support.
|
||||
void TParseVersions::fullIntegerCheck(const TSourceLoc& loc, const char* op)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue