Skip to content

Commit 471a4a5

Browse files
committed
update setDefaultFlags
1 parent f1b8eda commit 471a4a5

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,14 @@ struct RootDescriptor {
5050
dxbc::ShaderVisibility Visibility = dxbc::ShaderVisibility::All;
5151
dxbc::RootDescriptorFlags Flags;
5252

53-
void setDefaultFlags() {
53+
void setDefaultFlags(dxbc::RootSignatureVersion Version) {
54+
if (Version == dxbc::RootSignatureVersion::V1_0) {
55+
Flags = dxbc::RootDescriptorFlags::DataVolatile;
56+
return;
57+
}
58+
59+
assert(Version == llvm::dxbc::RootSignatureVersion::V1_1 &&
60+
"Specified an invalid root signature version");
5461
switch (Type) {
5562
case DescriptorType::CBuffer:
5663
case DescriptorType::SRV:
@@ -83,7 +90,16 @@ struct DescriptorTableClause {
8390
uint32_t Offset = DescriptorTableOffsetAppend;
8491
dxbc::DescriptorRangeFlags Flags;
8592

86-
void setDefaultFlags() {
93+
void setDefaultFlags(dxbc::RootSignatureVersion Version) {
94+
if (Version == dxbc::RootSignatureVersion::V1_0) {
95+
Flags = dxbc::DescriptorRangeFlags::DescriptorsVolatile;
96+
if (Type != ClauseType::Sampler)
97+
Flags |= dxbc::DescriptorRangeFlags::DataVolatile;
98+
return;
99+
}
100+
101+
assert(Version == dxbc::RootSignatureVersion::V1_1 &&
102+
"Specified an invalid root signature version");
87103
switch (Type) {
88104
case ClauseType::CBuffer:
89105
case ClauseType::SRV:

0 commit comments

Comments
 (0)