From 52a45890b5ab71d7dbfdd01955afce129728d67e Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 22 Jul 2025 08:47:50 -0700 Subject: Fix crash when private ctor is used for coercion. (#7858) * Fix crash when private ctor is used for coercion. * Fix tests. * Fix. * Fix test error. --- .../private-ctor-call/lambert_diffuse_btdf.slang | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 tests/language-server/private-ctor-call/lambert_diffuse_btdf.slang (limited to 'tests/language-server/private-ctor-call/lambert_diffuse_btdf.slang') diff --git a/tests/language-server/private-ctor-call/lambert_diffuse_btdf.slang b/tests/language-server/private-ctor-call/lambert_diffuse_btdf.slang new file mode 100644 index 000000000..82f766da4 --- /dev/null +++ b/tests/language-server/private-ctor-call/lambert_diffuse_btdf.slang @@ -0,0 +1,22 @@ +implementing bsdfs; +public struct LambertDiffuseBTDF : IBSDF, IDifferentiable +{ + float3 albedo = {}; ///< Diffuse albedo. +#if 0 + public __init(float3 albedo_) +#else + __init(float3 albedo_) +#endif + { + this.albedo = albedo_; + } + + [Differentiable] + public float3 eval(const float3 wi, const float3 wo, BSDFContext bc) + { + if (min(wi.z, -wo.z) < 1e-6f) + return float3(0.f); + + return (1.0 / 3.1415) * albedo * -wo.z; + } +} -- cgit v1.2.3