Don't emit NV-specific interface members if NV extensions are disabled.
authorRex Xu <rex.xu@amd.com>
Wed, 29 Mar 2017 15:01:36 +0000 (23:01 +0800)
committerRex Xu <rex.xu@amd.com>
Wed, 29 Mar 2017 15:01:36 +0000 (23:01 +0800)
SPIRV/GlslangToSpv.cpp

index d30432e..6dee3bf 100755 (executable)
@@ -2272,12 +2272,21 @@ bool TGlslangToSpvTraverser::filterMember(const glslang::TType& member)
 {
     auto& extensions = glslangIntermediate->getRequestedExtensions();
 
+    if (member.getFieldName() == "gl_ViewportMask" &&
+        extensions.find("GL_NV_viewport_array2") == extensions.end())
+        return true;
+    if (member.getFieldName() == "gl_SecondaryViewportMaskNV" &&
+        extensions.find("GL_NV_stereo_view_rendering") == extensions.end())
+        return true;
     if (member.getFieldName() == "gl_SecondaryPositionNV" &&
         extensions.find("GL_NV_stereo_view_rendering") == extensions.end())
         return true;
     if (member.getFieldName() == "gl_PositionPerViewNV" &&
         extensions.find("GL_NVX_multiview_per_view_attributes") == extensions.end())
         return true;
+    if (member.getFieldName() == "gl_ViewportMaskPerViewNV" &&
+        extensions.find("GL_NVX_multiview_per_view_attributes") == extensions.end())
+        return true;
 
     return false;
 };