2
0
Эх сурвалжийг харах

HLMatrixLower: Fix out matrix param for lib func

Tex Riddell 7 жил өмнө
parent
commit
74f4fee608

+ 1 - 1
lib/HLSL/HLMatrixLowerPass.cpp

@@ -2195,7 +2195,7 @@ void HLMatrixLowerPass::castMatrixArgs(Instruction *I) {
     Value *argVal = I->getOperand(i);
     Type *argTy = argVal->getType();
     if (argTy->isPointerTy())
-      argTy->getPointerElementType();
+      argTy = argTy->getPointerElementType();
     if (argTy->isStructTy() && IsMatrixType(argTy)) {
       Value *vecVal = matToVecMap[argVal];
       Value *newMatVal = GetMatrixForVec(vecVal, argVal->getType());

+ 14 - 0
tools/clang/test/CodeGenHLSL/shader-compat-suite/lib_out_undef.hlsl

@@ -0,0 +1,14 @@
+// RUN: %dxc -T lib_6_1 -Zpr %s | FileCheck %s
+
+// CHECK: call void @"\01?GetMat
+// CHECK-NOT: undef
+// CHECK: load <16 x float>
+
+void GetMat(out float4x4 mat);
+
+[shader("pixel")]
+float4 test(uint i:I) : SV_Target {
+  float4x4 mat;
+  GetMat(mat);
+  return mat[i];
+}