Skip to content

Commit 67da709

Browse files
author
joaosaffran
committed
ac
1 parent 89632a4 commit 67da709

File tree

7 files changed

+21
-24
lines changed

7 files changed

+21
-24
lines changed

llvm/include/llvm/BinaryFormat/DXContainer.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ enum class HashFlags : uint32_t {
5555
};
5656

5757
struct ShaderHash {
58-
uint32_t Flags; // dxbc::HashFlags
58+
uint32_t Flags; // HashFlags
5959
uint8_t Digest[16];
6060

6161
bool isPopulated();
@@ -573,8 +573,8 @@ struct RootConstants {
573573
};
574574

575575
struct RootParameterHeader {
576-
dxbc::RootParameterType ParameterType;
577-
dxbc::ShaderVisibility ShaderVisibility;
576+
RootParameterType ParameterType;
577+
ShaderVisibility ShaderVisibility;
578578
uint32_t ParameterOffset;
579579

580580
void swapBytes() {

llvm/include/llvm/MC/DXContainerRootSignature.h

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,7 @@ struct RootSignatureDesc {
3232

3333
void write(raw_ostream &OS) const;
3434

35-
size_t getSize() const {
36-
size_t size = sizeof(dxbc::RootSignatureHeader);
37-
38-
for (const auto &P : Parameters) {
39-
switch (P.Header.ParameterType) {
40-
41-
case dxbc::RootParameterType::Constants32Bit:
42-
size += sizeof(dxbc::RootConstants);
43-
break;
44-
}
45-
}
46-
return size;
47-
}
35+
size_t getSize() const;
4836
};
4937
} // namespace mcdxbc
5038
} // namespace llvm

llvm/include/llvm/Object/DXContainer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ struct RootParameterView {
138138

139139
template <typename T> Expected<T> readParameter() {
140140
T Struct;
141-
if (sizeof(T) > ParamData.size())
141+
if (sizeof(T) != ParamData.size())
142142
return make_error<GenericBinaryError>(
143143
"Reading structure out of file bounds", object_error::parse_failed);
144144

llvm/include/llvm/ObjectYAML/DXContainerYAML.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ struct RootParameterYamlDesc {
8686
dxbc::ShaderVisibility Visibility;
8787
uint32_t Offset;
8888

89-
RootParameterYamlDesc() = default;
90-
9189
union {
9290
RootConstantsYaml Constants;
9391
};

llvm/lib/MC/DXContainerRootSignature.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,20 @@ static void rewriteOffsetToCurrentByte(raw_svector_ostream &Stream,
2929
Stream.pwrite(reinterpret_cast<const char *>(&Value), sizeof(Value), Offset);
3030
}
3131

32+
size_t RootSignatureDesc::getSize() const {
33+
size_t Size = sizeof(dxbc::RootSignatureHeader);
34+
35+
for (const auto &P : Parameters) {
36+
Size += sizeof(P.Header);
37+
switch (P.Header.ParameterType) {
38+
case dxbc::RootParameterType::Constants32Bit:
39+
Size += sizeof(dxbc::RootConstants);
40+
break;
41+
}
42+
}
43+
return Size;
44+
}
45+
3246
void RootSignatureDesc::write(raw_ostream &OS) const {
3347
SmallString<256> Storage;
3448
raw_svector_ostream BOS(Storage);
@@ -38,11 +52,8 @@ void RootSignatureDesc::write(raw_ostream &OS) const {
3852

3953
support::endian::write(BOS, Header.Version, llvm::endianness::little);
4054
support::endian::write(BOS, NumParameters, llvm::endianness::little);
41-
42-
// Root Parameters offset should always start after the
4355
support::endian::write(BOS, (uint32_t)sizeof(dxbc::RootSignatureHeader),
4456
llvm::endianness::little);
45-
4657
support::endian::write(BOS, Zero, llvm::endianness::little);
4758
support::endian::write(BOS, Zero, llvm::endianness::little);
4859
support::endian::write(BOS, Header.Flags, llvm::endianness::little);

llvm/lib/Object/DXContainer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ Error DirectX::RootSignature::parse(StringRef Data) {
287287
ParameterSpaceOffset =
288288
RootParametersOffset + NumParameters * sizeof(dxbc::RootParameterHeader);
289289
size_t ParameterSpaceEnd =
290-
Data.size() - ((NumStaticSamplers == 0) ? 0 : StaticSamplersOffset);
290+
(NumStaticSamplers == 0) ? Data.size() : StaticSamplersOffset;
291291

292292
ParameterSpace = Data.substr(ParameterSpaceOffset,
293293
ParameterSpaceEnd - ParameterSpaceOffset);

llvm/lib/ObjectYAML/DXContainerYAML.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ DXContainerYAML::RootSignatureYamlDesc::RootSignatureYamlDesc(
4040
uint32_t Flags = Data.getFlags();
4141
for (const auto &PH : Data.param_header()) {
4242

43-
auto NewP = RootParameterYamlDesc();
43+
RootParameterYamlDesc NewP;
4444
NewP.Offset = PH.ParameterOffset;
4545
NewP.Type = PH.ParameterType;
4646
NewP.Visibility = PH.ShaderVisibility;

0 commit comments

Comments
 (0)