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:
authorPatrick Mours <pmours@nvidia.com>2022-09-12 19:46:20 +0300
committerPatrick Mours <pmours@nvidia.com>2022-09-13 11:59:28 +0300
commita45c36efae07f22dd1da1ebac728324aeafce85e (patch)
tree842f27474a4b011786da5ef07ed5c6630e8203a9 /intern/cycles/kernel/integrator
parent8e03df9bbc22baaf9d538e01c44f6857a8c9b43a (diff)
Cycles: Make OSL implementation independent from SVM
Cleans up the file structure to be more similar to that of the SVM and also makes it possible to build kernels with OSL support, but without having to include SVM support. This patch was split from D15902. Differential Revision: https://developer.blender.org/D15949
Diffstat (limited to 'intern/cycles/kernel/integrator')
-rw-r--r--intern/cycles/kernel/integrator/displacement_shader.h18
-rw-r--r--intern/cycles/kernel/integrator/intersect_closest.h2
-rw-r--r--intern/cycles/kernel/integrator/surface_shader.h7
-rw-r--r--intern/cycles/kernel/integrator/volume_shader.h15
4 files changed, 22 insertions, 20 deletions
diff --git a/intern/cycles/kernel/integrator/displacement_shader.h b/intern/cycles/kernel/integrator/displacement_shader.h
index 71a0f56fb3e..839dfe244ac 100644
--- a/intern/cycles/kernel/integrator/displacement_shader.h
+++ b/intern/cycles/kernel/integrator/displacement_shader.h
@@ -5,10 +5,11 @@
#pragma once
-#include "kernel/svm/svm.h"
-
+#ifdef __SVM__
+# include "kernel/svm/svm.h"
+#endif
#ifdef __OSL__
-# include "kernel/osl/shader.h"
+# include "kernel/osl/osl.h"
#endif
CCL_NAMESPACE_BEGIN
@@ -22,17 +23,18 @@ ccl_device void displacement_shader_eval(KernelGlobals kg,
sd->num_closure_left = 0;
/* this will modify sd->P */
-#ifdef __SVM__
-# ifdef __OSL__
- if (kg->osl)
+#ifdef __OSL__
+ if (kg->osl) {
OSLShader::eval_displacement(kg, state, sd);
+ }
else
-# endif
+#endif
{
+#ifdef __SVM__
svm_eval_nodes<KERNEL_FEATURE_NODE_MASK_DISPLACEMENT, SHADER_TYPE_DISPLACEMENT>(
kg, state, sd, NULL, 0);
- }
#endif
+ }
}
CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/integrator/intersect_closest.h b/intern/cycles/kernel/integrator/intersect_closest.h
index 4ecff56a3fd..c7c3d74fa21 100644
--- a/intern/cycles/kernel/integrator/intersect_closest.h
+++ b/intern/cycles/kernel/integrator/intersect_closest.h
@@ -12,8 +12,6 @@
#include "kernel/light/light.h"
-#include "kernel/util/differential.h"
-
#include "kernel/geom/geom.h"
#include "kernel/bvh/bvh.h"
diff --git a/intern/cycles/kernel/integrator/surface_shader.h b/intern/cycles/kernel/integrator/surface_shader.h
index f40ff3c33ee..64b5556f7e9 100644
--- a/intern/cycles/kernel/integrator/surface_shader.h
+++ b/intern/cycles/kernel/integrator/surface_shader.h
@@ -10,10 +10,11 @@
#include "kernel/closure/bsdf_util.h"
#include "kernel/closure/emissive.h"
-#include "kernel/svm/svm.h"
-
+#ifdef __SVM__
+# include "kernel/svm/svm.h"
+#endif
#ifdef __OSL__
-# include "kernel/osl/shader.h"
+# include "kernel/osl/osl.h"
#endif
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/integrator/volume_shader.h b/intern/cycles/kernel/integrator/volume_shader.h
index a1d191e2d32..31039bfdcf5 100644
--- a/intern/cycles/kernel/integrator/volume_shader.h
+++ b/intern/cycles/kernel/integrator/volume_shader.h
@@ -10,10 +10,11 @@
#include "kernel/closure/bsdf_util.h"
#include "kernel/closure/emissive.h"
-#include "kernel/svm/svm.h"
-
+#ifdef __SVM__
+# include "kernel/svm/svm.h"
+#endif
#ifdef __OSL__
-# include "kernel/osl/shader.h"
+# include "kernel/osl/osl.h"
#endif
CCL_NAMESPACE_BEGIN
@@ -326,18 +327,18 @@ ccl_device_inline void volume_shader_eval(KernelGlobals kg,
}
/* evaluate shader */
-# ifdef __SVM__
-# ifdef __OSL__
+# ifdef __OSL__
if (kg->osl) {
OSLShader::eval_volume(kg, state, sd, path_flag);
}
else
-# endif
+# endif
{
+# ifdef __SVM__
svm_eval_nodes<KERNEL_FEATURE_NODE_MASK_VOLUME, SHADER_TYPE_VOLUME>(
kg, state, sd, NULL, path_flag);
- }
# endif
+ }
/* Merge closures to avoid exceeding number of closures limit. */
if (!shadow) {