================ @@ -278,33 +280,35 @@ void DXContainerWriter::writeParts(raw_ostream &OS) { auto Header = dxbc::RootParameterHeader{Param.Type, Param.Visibility, Param.Offset}; - switch (Param.Type) { - case llvm::to_underlying(dxbc::RootParameterType::Constants32Bit): + if(std::holds_alternative<DXContainerYAML::RootConstantsYaml>(Param.Data)){ + auto ConstantYaml = std::get<DXContainerYAML::RootConstantsYaml>(Param.Data); + dxbc::RootConstants Constants; - Constants.Num32BitValues = Param.Constants.Num32BitValues; - Constants.RegisterSpace = Param.Constants.RegisterSpace; - Constants.ShaderRegister = Param.Constants.ShaderRegister; + Constants.Num32BitValues = ConstantYaml.Num32BitValues; + Constants.RegisterSpace = ConstantYaml.RegisterSpace; + Constants.ShaderRegister = ConstantYaml.ShaderRegister; RS.ParametersContainer.addParameter(Header, Constants); - break; - case llvm::to_underlying(dxbc::RootParameterType::SRV): - case llvm::to_underlying(dxbc::RootParameterType::UAV): - case llvm::to_underlying(dxbc::RootParameterType::CBV): + } else if (std::holds_alternative<DXContainerYAML::RootDescriptorYaml>(Param.Data)){ + auto DescriptorYaml = std::get<DXContainerYAML::RootDescriptorYaml>(Param.Data); + if (RS.Version == 1) { dxbc::RST0::v0::RootDescriptor Descriptor; - Descriptor.RegisterSpace = Param.Descriptor.RegisterSpace; - Descriptor.ShaderRegister = Param.Descriptor.ShaderRegister; + auto DescriptorYaml = std::get<DXContainerYAML::RootDescriptorYaml>(Param.Data); ---------------- damyanp wrote:
Isn't this doing something that was already done on line 292? https://github.com/llvm/llvm-project/pull/138318 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits