Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion include/dxc/DXIL/DxilConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -2370,12 +2370,15 @@ const uint64_t ShaderFeatureInfo_ExtendedCommandInfo = 0x100000000;
// Experimental SM 6.9+ - Reserved, not yet supported.
const uint64_t ShaderFeatureInfo_Reserved = 0x8000000;

// SM 6.10+
const uint64_t ShaderFeatureInfo_LinearAlgebra = 0x200000000;
Comment thread
V-FEXrt marked this conversation as resolved.

// Maximum count without rolling over into another 64-bit field is 40,
// so the last flag we can use for a feature requirement is: 0x8000000000
// This is because of the following set of flags, considered optional
// and ignored by the runtime if not recognized:
// D3D11_OPTIONAL_FEATURE_FLAGS 0x7FFFFF0000000000
const unsigned ShaderFeatureInfoCount = 33;
const unsigned ShaderFeatureInfoCount = 34;
static_assert(ShaderFeatureInfoCount <= 40,
"ShaderFeatureInfo flags must fit within the first 40 bits; "
"after that we need to expand the FeatureInfo blob part and "
Expand Down
1 change: 1 addition & 0 deletions include/dxc/DXIL/DxilOperations.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ class OP {
static bool IsDxilOpFuncName(llvm::StringRef name);
static bool IsDxilOpFunc(const llvm::Function *F);
static bool IsDxilOpLinAlgFuncName(llvm::StringRef Name);
static bool IsDxilOpLinAlgFunc(const llvm::Function *F);
static bool IsDxilOpFuncCallInst(const llvm::Instruction *I);
static bool IsDxilOpFuncCallInst(const llvm::Instruction *I, OpCode opcode);
static bool IsDxilOpWave(OpCode C);
Expand Down
11 changes: 10 additions & 1 deletion include/dxc/DXIL/DxilShaderFlags.h
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,10 @@ class ShaderFlags {
void SetRequiresGroup(bool flag) { m_bRequiresGroup = flag; }
bool GetRequiresGroup() const { return m_bRequiresGroup; }

// SM 6.10+
void SetLinearAlgebra(bool flag) { m_bLinearAlgebra = flag; }
bool GetLinearAlgebra() const { return m_bLinearAlgebra; }

private:
// Bit: 0
unsigned
Expand Down Expand Up @@ -359,7 +363,12 @@ class ShaderFlags {
unsigned m_bRequiresGroup : 1; // SHADER_FEATURE_OPT_REQUIRES_GROUP
// (OptFeatureInfo_RequiresGroup)

uint32_t m_align1 : 23; // align to 64 bit.
// SM 6.10+
// m_bLinearAlgebra indicates the shader uses LinearAlgebra features.
// Bit: 41
unsigned m_bLinearAlgebra : 1; // SHADER_FEATURE_LINEAR_ALGEBRA

uint32_t m_align1 : 22; // align to 64 bit.
};

} // namespace hlsl
3 changes: 2 additions & 1 deletion include/dxc/DxilContainer/RDAT_LibraryTypes.inl
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,12 @@ RDAT_ENUM_END()
// High 32-bits of ShaderFeatureInfo from DFCC_FeatureInfo
RDAT_ENUM_START(DxilFeatureInfo2, uint32_t)
RDAT_ENUM_VALUE(ExtendedCommandInfo, 0x1)
RDAT_ENUM_VALUE(LinearAlgebra, 0x2)
// OptFeatureInfo flags
RDAT_ENUM_VALUE(Opt_UsesDerivatives, 0x100)
RDAT_ENUM_VALUE(Opt_RequiresGroup, 0x200)
#if DEF_RDAT_ENUMS == DEF_RDAT_DUMP_IMPL
static_assert(DXIL::ShaderFeatureInfoCount == 33,
static_assert(DXIL::ShaderFeatureInfoCount == 34,
"otherwise, RDAT_ENUM definition needs updating");
static_assert(DXIL::OptFeatureInfoCount == 2,
"otherwise, RDAT_ENUM definition needs updating");
Expand Down
16 changes: 12 additions & 4 deletions lib/DXIL/DxilOperations.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3316,10 +3316,6 @@ bool OP::IsDxilOpFuncName(StringRef name) {
return name.startswith(OP::m_NamePrefix);
}

bool OP::IsDxilOpLinAlgFuncName(StringRef Name) {
return Name.startswith(OP::m_LinAlgNamePrefix);
}

bool OP::IsDxilOpFunc(const llvm::Function *F) {
// Test for null to allow IsDxilOpFunc(Call.getCalledFunc()) to be resilient
// to indirect calls
Expand All @@ -3328,6 +3324,18 @@ bool OP::IsDxilOpFunc(const llvm::Function *F) {
return IsDxilOpFuncName(F->getName());
}

bool OP::IsDxilOpLinAlgFuncName(StringRef Name) {
return Name.startswith(OP::m_LinAlgNamePrefix);
}

bool OP::IsDxilOpLinAlgFunc(const llvm::Function *F) {
// Test for null to allow IsDxilOpLinAlgFunc(Call.getCalledFunc()) to be
// resilient to indirect calls
if (F == nullptr || !F->hasName())
return false;
return IsDxilOpLinAlgFuncName(F->getName());
}

bool OP::IsDxilOpFuncCallInst(const llvm::Instruction *I) {
const CallInst *CI = dyn_cast<CallInst>(I);
if (CI == nullptr)
Expand Down
8 changes: 7 additions & 1 deletion lib/DXIL/DxilShaderFlags.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ ShaderFlags::ShaderFlags()
m_bAdvancedTextureOps(false), m_bWriteableMSAATextures(false),
m_bReserved(false), m_bSampleCmpGradientOrBias(false),
m_bExtendedCommandInfo(false), m_bUsesDerivatives(false),
m_bRequiresGroup(false), m_align1(0) {
m_bRequiresGroup(false), m_bLinearAlgebra(false), m_align1(0) {
// Silence unused field warnings
(void)m_align1;
}
Expand Down Expand Up @@ -132,6 +132,7 @@ uint64_t ShaderFlags::GetFeatureInfo() const {
Flags |= m_bExtendedCommandInfo
? hlsl::DXIL::ShaderFeatureInfo_ExtendedCommandInfo
: 0;
Flags |= m_bLinearAlgebra ? hlsl::DXIL::ShaderFeatureInfo_LinearAlgebra : 0;
Comment thread
V-FEXrt marked this conversation as resolved.

// Per-function flags
Flags |= m_bUsesDerivatives ? hlsl::DXIL::OptFeatureInfo_UsesDerivatives : 0;
Expand Down Expand Up @@ -198,6 +199,7 @@ uint64_t ShaderFlags::GetShaderFlagsRawForCollection() {
Flags.SetWriteableMSAATextures(true);
Flags.SetSampleCmpGradientOrBias(true);
Flags.SetExtendedCommandInfo(true);
Flags.SetLinearAlgebra(true);
Flags.SetUsesDerivatives(true);
Flags.SetRequiresGroup(true);
return Flags.GetShaderFlagsRaw();
Expand Down Expand Up @@ -445,6 +447,7 @@ ShaderFlags ShaderFlags::CollectShaderFlags(const Function *F,
bool hasSampleCmpGradientOrBias = false;

bool hasExtendedCommandInfo = false;
bool hasLinearAlgebra = false;

// UsesDerivatives is used to indicate any derivative use per-function, before
// flags are combined from called functions. Later, the flags are adjusted for
Expand Down Expand Up @@ -584,6 +587,8 @@ ShaderFlags ShaderFlags::CollectShaderFlags(const Function *F,
DXIL::OpCode dxilOp = hlsl::OP::getOpCode(CI);
if (dxilOp == DXIL::OpCode::NumOpCodes)
continue;
if (hlsl::OP::IsDxilOpLinAlgFunc(CI->getCalledFunction()))
hasLinearAlgebra = true;
Comment thread
V-FEXrt marked this conversation as resolved.
if (hlsl::OP::IsDxilOpWave(dxilOp))
hasWaveOps = true;
if (hlsl::OP::IsDxilOpFeedback(dxilOp))
Expand Down Expand Up @@ -861,6 +866,7 @@ ShaderFlags ShaderFlags::CollectShaderFlags(const Function *F,
!M->GetResMayAlias());
flag.SetSampleCmpGradientOrBias(hasSampleCmpGradientOrBias);
flag.SetExtendedCommandInfo(hasExtendedCommandInfo);
flag.SetLinearAlgebra(hasLinearAlgebra);
flag.SetUsesDerivatives(hasDerivatives);
flag.SetRequiresGroup(requiresGroup);

Expand Down
2 changes: 1 addition & 1 deletion lib/HLSL/DxilPreparePasses.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1717,7 +1717,7 @@ class DxilTrimTargetTypes : public ModulePass {
continue;

// Currently only LinAlgMatrix ops use target types.
if (!OP::IsDxilOpLinAlgFuncName(F.getName()))
if (!OP::IsDxilOpLinAlgFunc(&F))
continue;

llvm::Type *RetTy = F.getReturnType();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,5 @@ attributes #2 = { nounwind readnone }
!4 = !{!5}
!5 = !{i32 0, %struct.ByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i32 0, null}
!6 = !{void ()* @main, !"main", null, !3, !7}
!7 = !{i32 0, i64 8388624, i32 4, !8}
!7 = !{i32 0, i64 2199031644176, i32 4, !8}
!8 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ attributes #1 = { nounwind readnone }
!7 = !{i32 1, i32 10}
!8 = !{!"cs", i32 6, i32 10}
!9 = !{void ()* @main, !"main", null, null, !10}
!10 = !{i32 4, !11}
!10 = !{i32 0, i64 2199023255552, i32 4, !11}
!11 = !{i32 1, i32 1, i32 1}
!12 = !{!13, null, null, null}
!13 = !{!14}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,5 +55,5 @@ attributes #0 = { nounwind }
!3 = !{i32 1, i32 10}
!4 = !{!"cs", i32 6, i32 10}
!5 = !{void ()* @main, !"main", null, null, !6}
!6 = !{i32 4, !7}
!6 = !{i32 0, i64 2199023255552, i32 4, !7}
!7 = !{i32 4, i32 4, i32 4}
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,5 @@ attributes #0 = { nounwind }
!3 = !{i32 1, i32 10}
!4 = !{!"cs", i32 6, i32 10}
!5 = !{void ()* @main, !"main", null, null, !6}
!6 = !{i32 4, !7}
!6 = !{i32 0, i64 2199023255552, i32 4, !7}
!7 = !{i32 4, i32 4, i32 4}
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,5 @@ attributes #1 = { nounwind readnone }
!5 = !{!6}
!6 = !{i32 0, %struct.ByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i32 0, null}
!7 = !{void ()* @main, !"main", null, !4, !8}
!8 = !{i32 0, i64 8388624, i32 4, !9}
!8 = !{i32 0, i64 2199031644176, i32 4, !9}
!9 = !{i32 1, i32 1, i32 1}
Original file line number Diff line number Diff line change
Expand Up @@ -104,5 +104,5 @@ attributes #0 = { nounwind }
!7 = !{i32 1, i32 10}
!8 = !{!"cs", i32 6, i32 10}
!9 = !{void ()* @main, !"main", null, null, !10}
!10 = !{i32 4, !11}
!10 = !{i32 0, i64 2199023255552, i32 4, !11}
!11 = !{i32 1, i32 1, i32 1}
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,5 @@ attributes #2 = { nounwind readnone }
!9 = !{!10}
!10 = !{i32 0, %struct.RWByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i1 false, i1 false, i1 false, null}
!11 = !{void ()* @main, !"main", null, !6, !12}
!12 = !{i32 0, i64 8598323216, i32 4, !13}
!12 = !{i32 0, i64 2207621578768, i32 4, !13}
!13 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,5 @@ attributes #2 = { nounwind readnone }
!11 = !{!12}
!12 = !{i32 0, %struct.ByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i32 0, null}
!13 = !{void ()* @main, !"main", null, !10, !14}
!14 = !{i32 0, i64 8388624, i32 4, !15}
!14 = !{i32 0, i64 2199031644176, i32 4, !15}
!15 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,5 @@ attributes #2 = { nounwind readnone }
!17 = !{!18}
!18 = !{i32 0, %struct.RWByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i1 false, i1 false, i1 false, null}
!19 = !{void ()* @main, !"main", null, !12, !20}
!20 = !{i32 0, i64 8598323216, i32 4, !21}
!20 = !{i32 0, i64 2207621578768, i32 4, !21}
!21 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,5 @@ attributes #0 = { nounwind }
!7 = !{i32 1, i32 10}
!8 = !{!"cs", i32 6, i32 10}
!9 = !{void ()* @main, !"main", null, null, !10}
!10 = !{i32 0, i64 8388608, i32 4, !11}
!10 = !{i32 0, i64 2199031644160, i32 4, !11}
!11 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,5 @@ attributes #1 = { nounwind readnone }
!12 = !{!13}
!13 = !{i32 0, %struct.ByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i32 0, null}
!14 = !{void ()* @main, !"main", null, !11, !15}
!15 = !{i32 0, i64 8388624, i32 4, !16}
!15 = !{i32 0, i64 2199031644176, i32 4, !16}
!16 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,5 @@ attributes #1 = { nounwind readnone }
!12 = !{!13}
!13 = !{i32 0, %struct.ByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i32 0, null}
!14 = !{void ()* @main, !"main", null, !11, !15}
!15 = !{i32 0, i64 8388624, i32 4, !16}
!15 = !{i32 0, i64 2199031644176, i32 4, !16}
!16 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,5 @@ attributes #2 = { nounwind readnone }
!8 = !{!9}
!9 = !{i32 0, %struct.RWByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i1 false, i1 false, i1 false, null}
!10 = !{void ()* @main, !"main", null, !5, !11}
!11 = !{i32 0, i64 8598323216, i32 4, !12}
!11 = !{i32 0, i64 2207621578768, i32 4, !12}
!12 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,5 @@ attributes #1 = { nounwind readnone }
!10 = !{!11}
!11 = !{i32 0, %struct.ByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i32 0, null}
!12 = !{void ()* @main, !"main", null, !9, !13}
!13 = !{i32 0, i64 8388624, i32 4, !14}
!13 = !{i32 0, i64 2199031644176, i32 4, !14}
!14 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -124,5 +124,5 @@ attributes #1 = { nounwind readnone }
!9 = !{!10}
!10 = !{i32 0, %struct.ByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i32 0, null}
!11 = !{void ()* @main, !"main", null, !8, !12}
!12 = !{i32 0, i64 8388624, i32 4, !13}
!12 = !{i32 0, i64 2199031644176, i32 4, !13}
!13 = !{i32 1, i32 1, i32 1}
Original file line number Diff line number Diff line change
Expand Up @@ -132,5 +132,5 @@ attributes #1 = { nounwind readnone }
!9 = !{!10}
!10 = !{i32 0, %struct.ByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i32 0, null}
!11 = !{void ()* @main, !"main", null, !8, !12}
!12 = !{i32 0, i64 8388624, i32 4, !13}
!12 = !{i32 0, i64 2199031644176, i32 4, !13}
!13 = !{i32 1, i32 1, i32 1}
Original file line number Diff line number Diff line change
Expand Up @@ -252,5 +252,5 @@ attributes #1 = { nounwind readnone }
!26 = !{!27}
!27 = !{i32 0, %struct.ByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i32 0, null}
!28 = !{void ()* @main, !"main", null, !25, !29}
!29 = !{i32 0, i64 8388624, i32 4, !30}
!29 = !{i32 0, i64 2199031644176, i32 4, !30}
!30 = !{i32 1, i32 1, i32 1}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ attributes #0 = { nounwind }
!2 = !{i32 1, i32 10}
!3 = !{!"cs", i32 6, i32 10}
!4 = !{void ()* @main, !"main", null, null, !5}
!5 = !{i32 4, !6}
!5 = !{i32 0, i64 2199023255552, i32 4, !6}
!6 = !{i32 1, i32 1, i32 1}
!7 = !{%dx.types.LinAlgMatrixC4M4N5U1S2 undef, i32 4, i32 4, i32 5, i32 1, i32 2}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ attributes #0 = { nounwind }
!2 = !{i32 1, i32 10}
!3 = !{!"cs", i32 6, i32 10}
!4 = !{void ()* @main, !"main", null, null, !5}
!5 = !{i32 4, !6}
!5 = !{i32 0, i64 2199023255552, i32 4, !6}
!6 = !{i32 1, i32 1, i32 1}
!7 = !{%dx.types.LinAlgMatrixC4M4N5U1S2 undef, i32 4, i32 4, i32 5, i32 1, i32 2}
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ attributes #0 = { nounwind }
!2 = !{i32 1, i32 10}
!3 = !{!"cs", i32 6, i32 10}
!4 = !{void ()* @main, !"main", null, null, !5}
!5 = !{i32 4, !6}
!5 = !{i32 0, i64 2199023255552, i32 4, !6}
!6 = !{i32 1, i32 1, i32 1}
!7 = !{%dx.types.LinAlgMatrixC4M4N5U1S2 undef, i32 4, i32 4, i32 5, i32 1, i32 2}
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,5 @@ attributes #0 = { nounwind }
!2 = !{i32 1, i32 10}
!3 = !{!"cs", i32 6, i32 10}
!4 = !{void ()* @main, !"main", null, null, !5}
!5 = !{i32 0, i64 8388608, i32 4, !6}
!5 = !{i32 0, i64 2199031644160, i32 4, !6}
!6 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,5 @@ attributes #0 = { nounwind }
!7 = !{i32 1, i32 10}
!8 = !{!"cs", i32 6, i32 10}
!9 = !{void ()* @main, !"main", null, null, !10}
!10 = !{i32 0, i64 8388608, i32 4, !11}
!10 = !{i32 0, i64 2199031644160, i32 4, !11}
!11 = !{i32 1, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -207,11 +207,10 @@ attributes #2 = { nounwind readonly }
!14 = !{!15}
!15 = !{i32 0, i32 13107}
!16 = !{null, !"", null, !8, !17}
!17 = !{i32 0, i64 8598323248}
!17 = !{i32 0, i64 2207621578800}
!18 = !{void (%struct.RayPayload*, %struct.Attribs*)* @"\01?mainAH@@YAXURayPayload@@UAttribs@@@Z", !"\01?mainAH@@YAXURayPayload@@UAttribs@@@Z", null, null, !19}
!19 = !{i32 8, i32 9, i32 6, i32 4, i32 7, i32 8, i32 5, !20}
!20 = !{i32 0}
!21 = !{!22}
!22 = distinct !{!22, !23, !"\01??$Load@$0IA@@?$Matrix@$07$0BA@$0BA@$01$00@linalg@dx@@SA?AV012@UByteAddressBuffer@@IIW4MatrixLayoutEnum@MatrixLayout@12@@Z: %agg.result"}
!23 = distinct !{!23, !"\01??$Load@$0IA@@?$Matrix@$07$0BA@$0BA@$01$00@linalg@dx@@SA?AV012@UByteAddressBuffer@@IIW4MatrixLayoutEnum@MatrixLayout@12@@Z"}

Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,6 @@ attributes #1 = { nounwind readnone }
!11 = !{!12}
!12 = !{i32 0, %struct.RWByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i1 false, i1 false, i1 false, null}
!13 = !{void ()* @mainAS, !"mainAS", null, !8, !14}
!14 = !{i32 0, i64 8598323248, i32 10, !15}
!14 = !{i32 0, i64 2207621578800, i32 10, !15}
!15 = !{!16, i32 8}
!16 = !{i32 8, i32 1, i32 1}

Original file line number Diff line number Diff line change
Expand Up @@ -202,11 +202,10 @@ attributes #2 = { nounwind readonly }
!11 = !{!12}
!12 = !{i32 0, %struct.RWByteAddressBuffer* bitcast (%dx.types.Handle* @"\01?OutBuf@@3URWByteAddressBuffer@@A" to %struct.RWByteAddressBuffer*), !"OutBuf", i32 -1, i32 -1, i32 1, i32 11, i1 false, i1 false, i1 false, null}
!13 = !{null, !"", null, !8, !14}
!14 = !{i32 0, i64 8598323248}
!14 = !{i32 0, i64 2207621578800}
!15 = !{void (%struct.Attribs*)* @"\01?mainCALL@@YAXUAttribs@@@Z", !"\01?mainCALL@@YAXUAttribs@@@Z", null, null, !16}
!16 = !{i32 8, i32 12, i32 6, i32 8, i32 5, !17}
!17 = !{i32 0}
!18 = !{!19}
!19 = distinct !{!19, !20, !"\01??$Load@$0IA@@?$Matrix@$07$0BA@$0BA@$01$00@linalg@dx@@SA?AV012@UByteAddressBuffer@@IIW4MatrixLayoutEnum@MatrixLayout@12@@Z: %agg.result"}
!20 = distinct !{!20, !"\01??$Load@$0IA@@?$Matrix@$07$0BA@$0BA@$01$00@linalg@dx@@SA?AV012@UByteAddressBuffer@@IIW4MatrixLayoutEnum@MatrixLayout@12@@Z"}

Original file line number Diff line number Diff line change
Expand Up @@ -207,11 +207,10 @@ attributes #2 = { nounwind readonly }
!14 = !{!15}
!15 = !{i32 0, i32 13107}
!16 = !{null, !"", null, !8, !17}
!17 = !{i32 0, i64 8598323248}
!17 = !{i32 0, i64 2207621578800}
!18 = !{void (%struct.RayPayload*, %struct.Attribs*)* @"\01?mainCH@@YAXURayPayload@@UAttribs@@@Z", !"\01?mainCH@@YAXURayPayload@@UAttribs@@@Z", null, null, !19}
!19 = !{i32 8, i32 10, i32 6, i32 4, i32 7, i32 8, i32 5, !20}
!20 = !{i32 0}
!21 = !{!22}
!22 = distinct !{!22, !23, !"\01??$Load@$0IA@@?$Matrix@$07$0BA@$0BA@$01$00@linalg@dx@@SA?AV012@UByteAddressBuffer@@IIW4MatrixLayoutEnum@MatrixLayout@12@@Z: %agg.result"}
!23 = distinct !{!23, !"\01??$Load@$0IA@@?$Matrix@$07$0BA@$0BA@$01$00@linalg@dx@@SA?AV012@UByteAddressBuffer@@IIW4MatrixLayoutEnum@MatrixLayout@12@@Z"}

Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,5 @@ attributes #1 = { nounwind readnone }
!11 = !{!12}
!12 = !{i32 0, %struct.RWByteAddressBuffer* undef, !"", i32 0, i32 0, i32 1, i32 11, i1 false, i1 false, i1 false, null}
!13 = !{void ()* @mainCS, !"mainCS", null, !8, !14}
!14 = !{i32 0, i64 8598323248, i32 4, !15}
!14 = !{i32 0, i64 2207621578800, i32 4, !15}
!15 = !{i32 4, i32 4, i32 4}

Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,5 @@ attributes #1 = { nounwind }
!17 = !{i32 0, !"SV_Position", i8 9, i8 3, !18, i8 4, i32 1, i8 4, i32 0, i8 0, !19}
!18 = !{i32 0}
!19 = !{i32 3, i32 15}
!20 = !{i32 0, i64 8598388784, i32 2, !21}
!20 = !{i32 0, i64 2207621644336, i32 2, !21}
!21 = !{i32 2, i32 3}

Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,5 @@ attributes #2 = { nounwind readnone }
!21 = !{!22}
!22 = !{i32 0, !"SV_Position", i8 9, i8 3, !20, i8 4, i32 1, i8 4, i32 0, i8 0, !23}
!23 = !{i32 3, i32 15}
!24 = !{i32 0, i64 8598388784, i32 1, !25}
!24 = !{i32 0, i64 2207621644336, i32 1, !25}
!25 = !{i32 3, i32 1, i32 1, i32 1, i32 1}

Loading