summaryrefslogtreecommitdiff
path: root/tests/language-server/private-ctor-call/lambert_diffuse_btdf.slang
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2025-07-22 08:47:50 -0700
committerGitHub <noreply@github.com>2025-07-22 15:47:50 +0000
commit52a45890b5ab71d7dbfdd01955afce129728d67e (patch)
tree141491e9c36cfa6a1a890765682d69ac4bfd2270 /tests/language-server/private-ctor-call/lambert_diffuse_btdf.slang
parent0d26dbaad90f5eac604e148971d14e552bf9d5b8 (diff)
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.
Diffstat (limited to 'tests/language-server/private-ctor-call/lambert_diffuse_btdf.slang')
-rw-r--r--tests/language-server/private-ctor-call/lambert_diffuse_btdf.slang22
1 files changed, 22 insertions, 0 deletions
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;
+ }
+}