[llvm] [DirectX] Add static sampler support to root signature (PR #143422)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 24 15:48:30 PDT 2025
================
@@ -261,6 +269,81 @@ static bool parseDescriptorTable(LLVMContext *Ctx,
return false;
}
+static bool parseStaticSampler(LLVMContext *Ctx, mcdxbc::RootSignatureDesc &RSD,
+ MDNode *StaticSamplerNode) {
+ if (StaticSamplerNode->getNumOperands() != 14)
+ return reportError(Ctx, "Invalid format for Static Sampler");
+
+ dxbc::RTS0::v1::StaticSampler Sampler;
+ if (std::optional<uint32_t> Val = extractMdIntValue(StaticSamplerNode, 1))
+ Sampler.Filter = *Val;
+ else
+ return reportError(Ctx, "Invalid value for Filter");
+
+ if (std::optional<uint32_t> Val = extractMdIntValue(StaticSamplerNode, 2))
+ Sampler.AddressU = *Val;
+ else
+ return reportError(Ctx, "Invalid value for AddressU");
+
+ if (std::optional<uint32_t> Val = extractMdIntValue(StaticSamplerNode, 3))
+ Sampler.AddressV = *Val;
+ else
+ return reportError(Ctx, "Invalid value for AddressV");
+
+ if (std::optional<uint32_t> Val = extractMdIntValue(StaticSamplerNode, 4))
+ Sampler.AddressW = *Val;
+ else
+ return reportError(Ctx, "Invalid value for AddressW");
+
+ if (std::optional<APFloat> Val = extractMdFloatValue(StaticSamplerNode, 5))
+ Sampler.MipLODBias = Val->convertToFloat();
----------------
joaosaffran wrote:
I did some research, I don't think `convertToFloat` to float, at least, I didn't see any error handling for it specifically. I moved to inside the extract function anyway.
https://github.com/llvm/llvm-project/pull/143422
More information about the llvm-commits
mailing list