Skip to content

Commit 7aed7d1

Browse files
author
joaosaffran
committed
fixing bugs
1 parent 2203885 commit 7aed7d1

File tree

4 files changed

+18
-19
lines changed

4 files changed

+18
-19
lines changed

llvm/include/llvm/MC/DXContainerRootSignature.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ struct RootSignatureDesc {
2525

2626
uint32_t Version = 2U;
2727
uint32_t Flags = 0U;
28-
uint32_t RootParameterOffset = 0U;
28+
uint32_t RootParameterOffset = 24U;
2929
uint32_t StaticSamplersOffset = 0u;
3030
uint32_t NumStaticSamplers = 0u;
3131
SmallVector<mcdxbc::RootParameter> Parameters;

llvm/lib/Target/DirectX/DXILRootSignature.cpp

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,14 @@ static bool parseRootConstants(LLVMContext *Ctx, mcdxbc::RootSignatureDesc &RSD,
7676
return reportError(Ctx, "Invalid format for RootConstants Element");
7777

7878
mcdxbc::RootParameter NewParameter;
79-
NewParameter.Header.ParameterType = dxbc::RootParameterType::Constants32Bit;
79+
NewParameter.Header.ParameterType =
80+
llvm::to_underlying(dxbc::RootParameterType::Constants32Bit);
8081

8182
uint32_t SV;
8283
if (extractMdIntValue(SV, RootConstantNode, 1))
8384
return reportError(Ctx, "Invalid value for ShaderVisibility");
8485

85-
NewParameter.Header.ShaderVisibility = (dxbc::ShaderVisibility)SV;
86+
NewParameter.Header.ShaderVisibility = SV;
8687

8788
if (extractMdIntValue(NewParameter.Constants.ShaderRegister, RootConstantNode,
8889
2))
@@ -150,23 +151,23 @@ static bool verifyRootFlag(uint32_t Flags) { return (Flags & ~0xfff) == 0; }
150151
static bool verifyShaderVisibility(uint32_t Flags) {
151152
switch (Flags) {
152153

153-
case dxbc::ShaderVisibility::All:
154-
case dxbc::ShaderVisibility::Vertex:
155-
case dxbc::ShaderVisibility::Hull:
156-
case dxbc::ShaderVisibility::Domain:
157-
case dxbc::ShaderVisibility::Geometry:
158-
case dxbc::ShaderVisibility::Pixel:
159-
case dxbc::ShaderVisibility::Amplification:
160-
case dxbc::ShaderVisibility::Mesh:
154+
case llvm::to_underlying(dxbc::ShaderVisibility::All):
155+
case llvm::to_underlying(dxbc::ShaderVisibility::Vertex):
156+
case llvm::to_underlying(dxbc::ShaderVisibility::Hull):
157+
case llvm::to_underlying(dxbc::ShaderVisibility::Domain):
158+
case llvm::to_underlying(dxbc::ShaderVisibility::Geometry):
159+
case llvm::to_underlying(dxbc::ShaderVisibility::Pixel):
160+
case llvm::to_underlying(dxbc::ShaderVisibility::Amplification):
161+
case llvm::to_underlying(dxbc::ShaderVisibility::Mesh):
161162
return true;
162163
}
163164

164165
return false;
165166
}
166167

167-
static bool verifyParameterType(uint32_t Flags) {
168-
switch (Flags) {
169-
case dxbc::RootParameterType::Constants32Bit:
168+
static bool verifyParameterType(uint32_t Type) {
169+
switch (Type) {
170+
case llvm::to_underlying(dxbc::RootParameterType::Constants32Bit):
170171
return true;
171172
}
172173

@@ -320,7 +321,7 @@ PreservedAnalyses RootSignatureAnalysisPrinter::run(Module &M,
320321
<< "Shader Visibility: " << (uint32_t)P.Header.ShaderVisibility
321322
<< "\n";
322323
switch (P.Header.ParameterType) {
323-
case dxbc::RootParameterType::Constants32Bit:
324+
case llvm::to_underlying(dxbc::RootParameterType::Constants32Bit):
324325
OS << indent(Space) << "Register Space: " << P.Constants.RegisterSpace
325326
<< "\n";
326327
OS << indent(Space) << "Shader Register: " << P.Constants.ShaderRegister

llvm/test/CodeGen/DirectX/ContainerData/RootSignature-Flags.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ attributes #0 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }
2323
; DXC-NEXT: RootSignature:
2424
; DXC-NEXT: Version: 2
2525
; DXC-NEXT: NumRootParameters: 0
26-
; DXC-NEXT: RootParametersOffset: 0
26+
; DXC-NEXT: RootParametersOffset: 24
2727
; DXC-NEXT: NumStaticSamplers: 0
2828
; DXC-NEXT: StaticSamplersOffset: 0
2929
; DXC-NEXT: Parameters: []

llvm/test/CodeGen/DirectX/ContainerData/RootSignature-RootConstants-Invalid-Num32BitValues.ll

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@ target triple = "dxil-unknown-shadermodel6.0-compute"
55
; CHECK: error: Invalid value for Num32BitValues
66
; CHECK-NOT: Root Signature Definitions
77

8-
define void @main() #0 {
8+
define void @main() {
99
entry:
1010
ret void
1111
}
12-
attributes #0 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }
13-
1412

1513
!dx.rootsignatures = !{!2} ; list of function/root signature pairs
1614
!2 = !{ ptr @main, !3 } ; function, root signature

0 commit comments

Comments
 (0)