From 80b9872cb4830aef31b6d7b1b4c506de5fd3b833 Mon Sep 17 00:00:00 2001 From: Sahil Parmar Date: Thu, 27 Sep 2018 11:08:13 -0700 Subject: [PATCH] Based on feedback rename checkShaderStageForNVExtensions to checkExtensionStage Also continue error checking post requireStage() check --- glslang/MachineIndependent/Versions.cpp | 20 +++++--------------- glslang/MachineIndependent/parseVersions.h | 4 +--- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index 30e0085..9ca20a5 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -742,10 +742,8 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co return; } -#ifdef NV_EXTENSIONS - if (!checkShaderStageForNVExtensions(getCurrentLoc(), extension)) - return; -#endif + // check if extension is used with correct shader stage + checkExtensionStage(getCurrentLoc(), extension); // update the requested extension updateExtensionBehavior(extension, behavior); @@ -839,24 +837,16 @@ void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBe } } -#ifdef NV_EXTENSIONS // Check if extension is used with correct shader stage. -bool TParseVersions::checkShaderStageForNVExtensions(const TSourceLoc& loc, const char * const extension) +void TParseVersions::checkExtensionStage(const TSourceLoc& loc, const char * const extension) { - int lNumErrors = getNumErrors(); - +#ifdef NV_EXTENSIONS // 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"); - - // TODO: need to add error checks for other nvidia turing extensions - - 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) diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h index 4504803..be468da 100644 --- a/glslang/MachineIndependent/parseVersions.h +++ b/glslang/MachineIndependent/parseVersions.h @@ -103,9 +103,7 @@ public: virtual void requireSpv(const TSourceLoc&, const char* op); virtual bool checkExtensionsRequested(const TSourceLoc&, int numExtensions, const char* const extensions[], const char* featureDesc); virtual void updateExtensionBehavior(const char* const extension, TExtensionBehavior); -#ifdef NV_EXTENSIONS - virtual bool checkShaderStageForNVExtensions(const TSourceLoc&, const char* const extension); -#endif + virtual void checkExtensionStage(const TSourceLoc&, const char* const extension); virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, ...) = 0; -- 2.7.4