================
@@ -524,6 +545,226 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned
BuiltinID,
return Builder.CreateIntrinsic(
RetTy, CGM.getHLSLRuntime().getSampleClampIntrinsic(), Args);
}
+ case Builtin::BI__builtin_hlsl_resource_sample_bias: {
+ Value *HandleOp = EmitScalarExpr(E->getArg(0));
+ Value *SamplerOp = EmitScalarExpr(E->getArg(1));
+ Value *CoordOp = EmitScalarExpr(E->getArg(2));
+ Value *BiasOp = EmitScalarExpr(E->getArg(3));
+ if (BiasOp->getType() != Builder.getFloatTy())
+ BiasOp = Builder.CreateFPCast(BiasOp, Builder.getFloatTy());
+
+ SmallVector<Value *, 6> Args; // Max 6 arguments for SampleBias
+ Args.push_back(HandleOp);
+ Args.push_back(SamplerOp);
+ Args.push_back(CoordOp);
+ Args.push_back(BiasOp); // Bias is always the 4th argument (index 3)
+
+ // Handle optional Offset (E->getArg(4))
+ Value *OffsetOp;
+ if (E->getNumArgs() > 4) { // if E has at least 5 arguments (Handle,
+ // Sampler, Coord, Bias, Offset)
----------------
s-perron wrote:
I've removed a lot of the comment. With the refactoring of the code I think the
flow is self explanatory.
https://github.com/llvm/llvm-project/pull/179322
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits