only use dead input elimination on vertex shaders
[platform/upstream/glslang.git] / SPIRV / SpvTools.cpp
index f78a791..2529993 100644 (file)
@@ -68,26 +68,8 @@ spv_target_env MapToSpirvToolsEnv(const SpvVersion& spvVersion, spv::SpvBuildLog
         }
     case glslang::EShTargetVulkan_1_2:
         return spv_target_env::SPV_ENV_VULKAN_1_2;
-    case glslang::EShTargetUniversal:
-        switch (spvVersion.spv) {
-        case EShTargetSpv_1_0:
-            return spv_target_env::SPV_ENV_UNIVERSAL_1_0;
-        case EShTargetSpv_1_1:
-            return spv_target_env::SPV_ENV_UNIVERSAL_1_1;
-        case EShTargetSpv_1_2:
-            return spv_target_env::SPV_ENV_UNIVERSAL_1_2;
-        case EShTargetSpv_1_3:
-            return spv_target_env::SPV_ENV_UNIVERSAL_1_3;
-        case EShTargetSpv_1_4:
-            return spv_target_env::SPV_ENV_UNIVERSAL_1_4;
-        case EShTargetSpv_1_5:
-            return spv_target_env::SPV_ENV_UNIVERSAL_1_5;
-        case EShTargetSpv_1_6:
-            return spv_target_env::SPV_ENV_UNIVERSAL_1_6;
-        default:
-            logger->missingFunctionality("Target version for SPIRV-Tools validator");
-            return spv_target_env::SPV_ENV_UNIVERSAL_1_6;
-        }
+    case glslang::EShTargetVulkan_1_3:
+        return spv_target_env::SPV_ENV_VULKAN_1_3;
     default:
         break;
     }
@@ -230,6 +212,8 @@ void SpirvToolsTransform(const glslang::TIntermediate& intermediate, std::vector
     optimizer.RegisterPass(spvtools::CreateInterpolateFixupPass());
     if (options->optimizeSize) {
         optimizer.RegisterPass(spvtools::CreateRedundancyEliminationPass());
+        if (intermediate.getStage() == EShLanguage::EShLangVertex)
+            optimizer.RegisterPass(spvtools::CreateEliminateDeadInputComponentsPass());
     }
     optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
     optimizer.RegisterPass(spvtools::CreateCFGCleanupPass());