1515#include " llvm/ADT/ScopeExit.h"
1616#include " llvm/BinaryFormat/DXContainer.h"
1717#include " llvm/Support/ScopedPrinter.h"
18+ #include < cstdint>
1819
1920namespace llvm {
2021
@@ -29,6 +30,23 @@ DXContainerYAML::ShaderFeatureFlags::ShaderFeatureFlags(uint64_t FlagData) {
2930#include " llvm/BinaryFormat/DXContainerConstants.def"
3031}
3132
33+
34+ DXContainerYAML::RootSignatureDesc::RootSignatureDesc (const dxbc::RootSignatureDesc &Data): Version(Data.Version) {
35+ #define ROOT_ELEMENT_FLAG (Num, Val ) \
36+ Val = (Data.Flags & (uint32_t )dxbc::RootElementFlag::Val) > 0 ;
37+ #include " llvm/BinaryFormat/DXContainerConstants.def"
38+ }
39+
40+
41+ uint32_t DXContainerYAML::RootSignatureDesc::getEncodedFlags () {
42+ uint64_t Flag = 0 ;
43+ #define ROOT_ELEMENT_FLAG (Num, Val ) \
44+ if (Val) \
45+ Flag |= (uint32_t )dxbc::RootElementFlag::Val;
46+ #include " llvm/BinaryFormat/DXContainerConstants.def"
47+ return Flag;
48+ }
49+
3250uint64_t DXContainerYAML::ShaderFeatureFlags::getEncodedFlags () {
3351 uint64_t Flag = 0 ;
3452#define SHADER_FEATURE_FLAG (Num, DxilModuleNum, Val, Str ) \
@@ -45,10 +63,6 @@ DXContainerYAML::ShaderHash::ShaderHash(const dxbc::ShaderHash &Data)
4563 memcpy (Digest.data (), &Data.Digest [0 ], 16 );
4664}
4765
48- DXContainerYAML::RootSignatureDesc::RootSignatureDesc (const dxbc::RootSignatureDesc &Data)
49- : Version(Data.Version), Flags(Data.Flags) {
50- }
51-
5266DXContainerYAML::PSVInfo::PSVInfo () : Version(0 ) {
5367 memset (&Info, 0 , sizeof (Info));
5468}
@@ -195,7 +209,9 @@ void MappingTraits<DXContainerYAML::Signature>::mapping(
195209void MappingTraits<DXContainerYAML::RootSignatureDesc>::mapping(
196210 IO &IO, DXContainerYAML::RootSignatureDesc &S) {
197211 IO.mapRequired (" Version" , S.Version );
198- IO.mapRequired (" Flags" , S.Flags );
212+ #define ROOT_ELEMENT_FLAG (Num, Val ) \
213+ IO.mapRequired (#Val, S.Val );
214+ #include " llvm/BinaryFormat/DXContainerConstants.def"
199215}
200216
201217void MappingTraits<DXContainerYAML::Part>::mapping(IO &IO,
0 commit comments