Browse Source

Fix disable validation case downgrading Dxil as if valver is 1.0

- Fixed two cases where we would treat disabled validation the same
  as valver 1.0, which isn't what we want.
Tex Riddell 7 years ago
parent
commit
f186691f68
2 changed files with 2 additions and 2 deletions
  1. 1 1
      lib/HLSL/DxilPreparePasses.cpp
  2. 1 1
      lib/HLSL/DxilShaderFlags.cpp

+ 1 - 1
lib/HLSL/DxilPreparePasses.cpp

@@ -525,7 +525,7 @@ void DxilEmitMetadata::patchIsFrontfaceTy(Module &M) {
     return;
     return;
   unsigned ValMajor, ValMinor;
   unsigned ValMajor, ValMinor;
   DM.GetValidatorVersion(ValMajor, ValMinor);
   DM.GetValidatorVersion(ValMajor, ValMinor);
-  bool bForceUint = ValMajor >= 1 && ValMinor >= 2;
+  bool bForceUint = ValMajor == 0 || (ValMajor >= 1 && ValMinor >= 2);
   if (pSM->IsPS()) {
   if (pSM->IsPS()) {
     patchIsFrontface(DM.GetInputSignature(), bForceUint);
     patchIsFrontface(DM.GetInputSignature(), bForceUint);
   } else if (pSM->IsGS()) {
   } else if (pSM->IsGS()) {

+ 1 - 1
lib/HLSL/DxilShaderFlags.cpp

@@ -224,7 +224,7 @@ ShaderFlags ShaderFlags::CollectShaderFlags(const Function *F,
   // Try to maintain compatibility with a v1.0 validator if that's what we have.
   // Try to maintain compatibility with a v1.0 validator if that's what we have.
   uint32_t valMajor, valMinor;
   uint32_t valMajor, valMinor;
   M->GetValidatorVersion(valMajor, valMinor);
   M->GetValidatorVersion(valMajor, valMinor);
-  bool hasMulticomponentUAVLoadsBackCompat = valMajor <= 1 && valMinor == 0;
+  bool hasMulticomponentUAVLoadsBackCompat = valMajor == 1 && valMinor == 0;
 
 
   Type *int16Ty = Type::getInt16Ty(F->getContext());
   Type *int16Ty = Type::getInt16Ty(F->getContext());
   Type *int64Ty = Type::getInt64Ty(F->getContext());
   Type *int64Ty = Type::getInt64Ty(F->getContext());