Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2022-08-11 17:53:11 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-08-15 14:48:02 +0300
commite949d6da5bd347663addd583ff3f0211c96b81c8 (patch)
tree4a7478de4eb8fbd4c67989d94bc8e7c0353bca94 /intern/cycles/kernel/types.h
parentd8841d0aa341e05c8cb9559b116b7e2a9ec11882 (diff)
Cycles: simplify handling of ray differentials
* Store compact ray differentials in ShaderData and compute full differentials on demand. This reduces register pressure on the GPU. * Remove BSDF differential code that was effectively doing nothing as the differential orientation was discarded when making it compact. This gives a 1-5% speedup with RTX A6000 + OptiX in our benchmarks, with the bigger speedups in simpler scenes. Renders appear to be identical except for the Both displacement option that does both displacement and bump. Differential Revision: https://developer.blender.org/D15677
Diffstat (limited to 'intern/cycles/kernel/types.h')
-rw-r--r--intern/cycles/kernel/types.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/intern/cycles/kernel/types.h b/intern/cycles/kernel/types.h
index 252c27a40f0..59ea6c64be7 100644
--- a/intern/cycles/kernel/types.h
+++ b/intern/cycles/kernel/types.h
@@ -873,10 +873,10 @@ typedef struct ccl_align(16) ShaderData
float ray_length;
#ifdef __RAY_DIFFERENTIALS__
- /* differential of P. these are orthogonal to Ng, not N */
- differential3 dP;
- /* differential of I */
- differential3 dI;
+ /* Radius of differential of P. */
+ float dP;
+ /* Radius of differential of I. */
+ float dI;
/* differential of u, v */
differential du;
differential dv;