Merge pull request #733 from amdrexu/bugfix

SPV: Unexpected declarations of capabilities from NV extensions.
This commit is contained in:
John Kessenich 2017-02-22 17:11:00 -07:00 committed by GitHub
commit cb34945e3b
4 changed files with 23 additions and 13 deletions

View File

@ -472,12 +472,12 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
// //
case glslang::EbvClipDistance: case glslang::EbvClipDistance:
if (!memberDeclaration) if (!memberDeclaration)
builder.addCapability(spv::CapabilityClipDistance); builder.addCapability(spv::CapabilityClipDistance);
return spv::BuiltInClipDistance; return spv::BuiltInClipDistance;
case glslang::EbvCullDistance: case glslang::EbvCullDistance:
if (!memberDeclaration) if (!memberDeclaration)
builder.addCapability(spv::CapabilityCullDistance); builder.addCapability(spv::CapabilityCullDistance);
return spv::BuiltInCullDistance; return spv::BuiltInCullDistance;
case glslang::EbvViewportIndex: case glslang::EbvViewportIndex:
@ -635,23 +635,32 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
builder.addCapability(spv::CapabilityShaderViewportMaskNV); builder.addCapability(spv::CapabilityShaderViewportMaskNV);
return spv::BuiltInViewportMaskNV; return spv::BuiltInViewportMaskNV;
case glslang::EbvSecondaryPositionNV: case glslang::EbvSecondaryPositionNV:
builder.addExtension(spv::E_SPV_NV_stereo_view_rendering); if (!memberDeclaration) {
builder.addCapability(spv::CapabilityShaderStereoViewNV); builder.addExtension(spv::E_SPV_NV_stereo_view_rendering);
builder.addCapability(spv::CapabilityShaderStereoViewNV);
}
return spv::BuiltInSecondaryPositionNV; return spv::BuiltInSecondaryPositionNV;
case glslang::EbvSecondaryViewportMaskNV: case glslang::EbvSecondaryViewportMaskNV:
builder.addExtension(spv::E_SPV_NV_stereo_view_rendering); if (!memberDeclaration) {
builder.addCapability(spv::CapabilityShaderStereoViewNV); builder.addExtension(spv::E_SPV_NV_stereo_view_rendering);
builder.addCapability(spv::CapabilityShaderStereoViewNV);
}
return spv::BuiltInSecondaryViewportMaskNV; return spv::BuiltInSecondaryViewportMaskNV;
case glslang::EbvPositionPerViewNV: case glslang::EbvPositionPerViewNV:
builder.addExtension(spv::E_SPV_NVX_multiview_per_view_attributes); if (!memberDeclaration) {
builder.addCapability(spv::CapabilityPerViewAttributesNV); builder.addExtension(spv::E_SPV_NVX_multiview_per_view_attributes);
builder.addCapability(spv::CapabilityPerViewAttributesNV);
}
return spv::BuiltInPositionPerViewNV; return spv::BuiltInPositionPerViewNV;
case glslang::EbvViewportMaskPerViewNV: case glslang::EbvViewportMaskPerViewNV:
builder.addExtension(spv::E_SPV_NVX_multiview_per_view_attributes); if (!memberDeclaration) {
builder.addCapability(spv::CapabilityPerViewAttributesNV); builder.addExtension(spv::E_SPV_NVX_multiview_per_view_attributes);
builder.addCapability(spv::CapabilityPerViewAttributesNV);
}
return spv::BuiltInViewportMaskPerViewNV; return spv::BuiltInViewportMaskPerViewNV;
#endif #endif
default: return spv::BuiltInMax; default:
return spv::BuiltInMax;
} }
} }

View File

@ -835,6 +835,7 @@ const char* CapabilityString(int info)
case 5254: return "ShaderViewportIndexLayerNV"; case 5254: return "ShaderViewportIndexLayerNV";
case 5255: return "ShaderViewportMaskNV"; case 5255: return "ShaderViewportMaskNV";
case 5259: return "ShaderStereoViewNV"; case 5259: return "ShaderStereoViewNV";
case 5262: return "PerViewAttributesNV";
#endif #endif
} }

View File

@ -6,7 +6,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
// Id's are bound by 37 // Id's are bound by 37
Capability Tessellation Capability Tessellation
Capability Bad Capability PerViewAttributesNV
Extension "SPV_NVX_multiview_per_view_attributes" Extension "SPV_NVX_multiview_per_view_attributes"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450

View File

@ -6,7 +6,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
// Id's are bound by 29 // Id's are bound by 29
Capability Shader Capability Shader
Capability Bad Capability PerViewAttributesNV
Extension "SPV_NVX_multiview_per_view_attributes" Extension "SPV_NVX_multiview_per_view_attributes"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450