From 7a9db71f462bd688333aa7d60373a946c691aa37 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 20 Oct 2017 10:56:50 -0600 Subject: [PATCH] SPV: Don't emit StorageImageMultisample capability for subpass images. --- SPIRV/SpvBuilder.cpp | 5 ++++- Test/baseResults/hlsl.subpass.frag.out | 1 - Test/baseResults/spv.register.subpass.frag.out | 1 - Test/baseResults/spv.shaderFragMaskAMD.frag.out | 1 - Test/baseResults/spv.subpass.frag.out | 1 - 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 289d59af..c795ca89 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -469,7 +469,10 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo if (ms) { if (sampled == 2) { - addCapability(CapabilityStorageImageMultisample); + // Images used with subpass data are not storage + // images, so don't require the capability for them. + if (dim != Dim::DimSubpassData) + addCapability(CapabilityStorageImageMultisample); if (arrayed) addCapability(CapabilityImageMSArray); } diff --git a/Test/baseResults/hlsl.subpass.frag.out b/Test/baseResults/hlsl.subpass.frag.out index 4eb63374..470699a7 100644 --- a/Test/baseResults/hlsl.subpass.frag.out +++ b/Test/baseResults/hlsl.subpass.frag.out @@ -434,7 +434,6 @@ gl_FragCoord origin is upper left // Id's are bound by 204 Capability Shader - Capability StorageImageMultisample Capability InputAttachment 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 diff --git a/Test/baseResults/spv.register.subpass.frag.out b/Test/baseResults/spv.register.subpass.frag.out index 8b7c2923..2a223264 100644 --- a/Test/baseResults/spv.register.subpass.frag.out +++ b/Test/baseResults/spv.register.subpass.frag.out @@ -4,7 +4,6 @@ spv.register.subpass.frag // Id's are bound by 40 Capability Shader - Capability StorageImageMultisample Capability InputAttachment 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 diff --git a/Test/baseResults/spv.shaderFragMaskAMD.frag.out b/Test/baseResults/spv.shaderFragMaskAMD.frag.out index dc3eb0d7..56081b12 100644 --- a/Test/baseResults/spv.shaderFragMaskAMD.frag.out +++ b/Test/baseResults/spv.shaderFragMaskAMD.frag.out @@ -4,7 +4,6 @@ spv.shaderFragMaskAMD.frag // Id's are bound by 80 Capability Shader - Capability StorageImageMultisample Capability InputAttachment Capability FragmentMaskAMD Extension "SPV_AMD_shader_fragment_mask" diff --git a/Test/baseResults/spv.subpass.frag.out b/Test/baseResults/spv.subpass.frag.out index 8233653e..76248982 100644 --- a/Test/baseResults/spv.subpass.frag.out +++ b/Test/baseResults/spv.subpass.frag.out @@ -4,7 +4,6 @@ spv.subpass.frag // Id's are bound by 67 Capability Shader - Capability StorageImageMultisample Capability InputAttachment 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450