[llvm] [DirectX] Add static sampler support to root signature (PR #143422)
Justin Bogner via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 27 11:02:18 PDT 2025
================
@@ -142,20 +146,23 @@ void RootSignatureDesc::write(raw_ostream &OS) const {
}
}
}
- for (const auto &S : StaticSamplers) {
- support::endian::write(BOS, S.Filter, llvm::endianness::little);
- support::endian::write(BOS, S.AddressU, llvm::endianness::little);
- support::endian::write(BOS, S.AddressV, llvm::endianness::little);
- support::endian::write(BOS, S.AddressW, llvm::endianness::little);
- support::endian::write(BOS, S.MipLODBias, llvm::endianness::little);
- support::endian::write(BOS, S.MaxAnisotropy, llvm::endianness::little);
- support::endian::write(BOS, S.ComparisonFunc, llvm::endianness::little);
- support::endian::write(BOS, S.BorderColor, llvm::endianness::little);
- support::endian::write(BOS, S.MinLOD, llvm::endianness::little);
- support::endian::write(BOS, S.MaxLOD, llvm::endianness::little);
- support::endian::write(BOS, S.ShaderRegister, llvm::endianness::little);
- support::endian::write(BOS, S.RegisterSpace, llvm::endianness::little);
- support::endian::write(BOS, S.ShaderVisibility, llvm::endianness::little);
+ if (NumSamplers > 0) {
+ rewriteOffsetToCurrentByte(BOS, SSO);
----------------
bogner wrote:
FWIW DXC writes the value where samplers would be unconditionally, so there might be some argument to match that just so that we're binary identical.
That said, you are correct that this offset should be ignored when there aren't any samplers, and I think that explicitly zeroing it makes that clearer, so I kind of like it as is.
https://github.com/llvm/llvm-project/pull/143422
More information about the llvm-commits
mailing list