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>2021-10-17 17:10:10 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-10-18 20:02:10 +0300
commit1df3b51988852fa8ee6b530a64aa23346db9acd4 (patch)
treedd79dba4c8ff8bb8474cc399e9d1b308d845e0cb /intern/cycles/kernel/osl
parent44c3bb729be42d6d67eaf8918d7cbcb2ff0b315d (diff)
Cycles: replace integrator state argument macros
* Rename struct KernelGlobals to struct KernelGlobalsCPU * Add KernelGlobals, IntegratorState and ConstIntegratorState typedefs that every device can define in its own way. * Remove INTEGRATOR_STATE_ARGS and INTEGRATOR_STATE_PASS macros and replace with these new typedefs. * Add explicit state argument to INTEGRATOR_STATE and similar macros In preparation for decoupling main and shadow paths. Differential Revision: https://developer.blender.org/D12888
Diffstat (limited to 'intern/cycles/kernel/osl')
-rw-r--r--intern/cycles/kernel/osl/osl_closures.cpp2
-rw-r--r--intern/cycles/kernel/osl/osl_services.cpp38
-rw-r--r--intern/cycles/kernel/osl/osl_services.h6
-rw-r--r--intern/cycles/kernel/osl/osl_shader.cpp16
-rw-r--r--intern/cycles/kernel/osl/osl_shader.h16
5 files changed, 39 insertions, 39 deletions
diff --git a/intern/cycles/kernel/osl/osl_closures.cpp b/intern/cycles/kernel/osl/osl_closures.cpp
index e814fcca246..94712a4dd13 100644
--- a/intern/cycles/kernel/osl/osl_closures.cpp
+++ b/intern/cycles/kernel/osl/osl_closures.cpp
@@ -500,7 +500,7 @@ bool CBSDFClosure::skip(const ShaderData *sd, int path_flag, int scattering)
{
/* caustic options */
if ((scattering & LABEL_GLOSSY) && (path_flag & PATH_RAY_DIFFUSE)) {
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
if ((!kernel_data.integrator.caustics_reflective && (scattering & LABEL_REFLECT)) ||
(!kernel_data.integrator.caustics_refractive && (scattering & LABEL_TRANSMIT))) {
diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp
index 2c7f5eb4948..bb7655fbe9a 100644
--- a/intern/cycles/kernel/osl/osl_services.cpp
+++ b/intern/cycles/kernel/osl/osl_services.cpp
@@ -149,7 +149,7 @@ bool OSLRenderServices::get_matrix(OSL::ShaderGlobals *sg,
* a concept of shader space, so we just use object space for both. */
if (xform) {
const ShaderData *sd = (const ShaderData *)xform;
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
int object = sd->object;
if (object != OBJECT_NONE) {
@@ -187,7 +187,7 @@ bool OSLRenderServices::get_inverse_matrix(OSL::ShaderGlobals *sg,
* a concept of shader space, so we just use object space for both. */
if (xform) {
const ShaderData *sd = (const ShaderData *)xform;
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
int object = sd->object;
if (object != OBJECT_NONE) {
@@ -222,7 +222,7 @@ bool OSLRenderServices::get_matrix(OSL::ShaderGlobals *sg,
float time)
{
ShaderData *sd = (ShaderData *)(sg->renderstate);
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
if (from == u_ndc) {
copy_matrix(result, kernel_data.cam.ndctoworld);
@@ -254,7 +254,7 @@ bool OSLRenderServices::get_inverse_matrix(OSL::ShaderGlobals *sg,
float time)
{
ShaderData *sd = (ShaderData *)(sg->renderstate);
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
if (to == u_ndc) {
copy_matrix(result, kernel_data.cam.worldtondc);
@@ -288,7 +288,7 @@ bool OSLRenderServices::get_matrix(OSL::ShaderGlobals *sg,
* a concept of shader space, so we just use object space for both. */
if (xform) {
const ShaderData *sd = (const ShaderData *)xform;
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
int object = sd->object;
if (object != OBJECT_NONE) {
@@ -316,7 +316,7 @@ bool OSLRenderServices::get_inverse_matrix(OSL::ShaderGlobals *sg,
* a concept of shader space, so we just use object space for both. */
if (xform) {
const ShaderData *sd = (const ShaderData *)xform;
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
int object = sd->object;
if (object != OBJECT_NONE) {
@@ -339,7 +339,7 @@ bool OSLRenderServices::get_inverse_matrix(OSL::ShaderGlobals *sg,
bool OSLRenderServices::get_matrix(OSL::ShaderGlobals *sg, OSL::Matrix44 &result, ustring from)
{
ShaderData *sd = (ShaderData *)(sg->renderstate);
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
if (from == u_ndc) {
copy_matrix(result, kernel_data.cam.ndctoworld);
@@ -366,7 +366,7 @@ bool OSLRenderServices::get_inverse_matrix(OSL::ShaderGlobals *sg,
ustring to)
{
ShaderData *sd = (ShaderData *)(sg->renderstate);
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
if (to == u_ndc) {
copy_matrix(result, kernel_data.cam.worldtondc);
@@ -745,7 +745,7 @@ static bool set_attribute_matrix(const Transform &tfm, TypeDesc type, void *val)
return false;
}
-static bool get_primitive_attribute(const KernelGlobals *kg,
+static bool get_primitive_attribute(const KernelGlobalsCPU *kg,
const ShaderData *sd,
const OSLGlobals::Attribute &attr,
const TypeDesc &type,
@@ -806,7 +806,7 @@ static bool get_primitive_attribute(const KernelGlobals *kg,
}
}
-static bool get_mesh_attribute(const KernelGlobals *kg,
+static bool get_mesh_attribute(const KernelGlobalsCPU *kg,
const ShaderData *sd,
const OSLGlobals::Attribute &attr,
const TypeDesc &type,
@@ -855,7 +855,7 @@ static bool get_object_attribute(const OSLGlobals::Attribute &attr,
}
}
-bool OSLRenderServices::get_object_standard_attribute(const KernelGlobals *kg,
+bool OSLRenderServices::get_object_standard_attribute(const KernelGlobalsCPU *kg,
ShaderData *sd,
ustring name,
TypeDesc type,
@@ -1000,7 +1000,7 @@ bool OSLRenderServices::get_object_standard_attribute(const KernelGlobals *kg,
}
}
-bool OSLRenderServices::get_background_attribute(const KernelGlobals *kg,
+bool OSLRenderServices::get_background_attribute(const KernelGlobalsCPU *kg,
ShaderData *sd,
ustring name,
TypeDesc type,
@@ -1091,7 +1091,7 @@ bool OSLRenderServices::get_attribute(OSL::ShaderGlobals *sg,
bool OSLRenderServices::get_attribute(
ShaderData *sd, bool derivatives, ustring object_name, TypeDesc type, ustring name, void *val)
{
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
int prim_type = 0;
int object;
@@ -1220,7 +1220,7 @@ bool OSLRenderServices::texture(ustring filename,
OSLTextureHandle *handle = (OSLTextureHandle *)texture_handle;
OSLTextureHandle::Type texture_type = (handle) ? handle->type : OSLTextureHandle::OIIO;
ShaderData *sd = (ShaderData *)(sg->renderstate);
- const KernelGlobals *kernel_globals = sd->osl_globals;
+ KernelGlobals kernel_globals = sd->osl_globals;
bool status = false;
switch (texture_type) {
@@ -1367,7 +1367,7 @@ bool OSLRenderServices::texture3d(ustring filename,
case OSLTextureHandle::SVM: {
/* Packed texture. */
ShaderData *sd = (ShaderData *)(sg->renderstate);
- const KernelGlobals *kernel_globals = sd->osl_globals;
+ KernelGlobals kernel_globals = sd->osl_globals;
int slot = handle->svm_slot;
float3 P_float3 = make_float3(P.x, P.y, P.z);
float4 rgba = kernel_tex_image_interp_3d(kernel_globals, slot, P_float3, INTERPOLATION_NONE);
@@ -1389,7 +1389,7 @@ bool OSLRenderServices::texture3d(ustring filename,
if (handle && handle->oiio_handle) {
if (texture_thread_info == NULL) {
ShaderData *sd = (ShaderData *)(sg->renderstate);
- const KernelGlobals *kernel_globals = sd->osl_globals;
+ KernelGlobals kernel_globals = sd->osl_globals;
OSLThreadData *tdata = kernel_globals->osl_tdata;
texture_thread_info = tdata->oiio_thread_info;
}
@@ -1474,7 +1474,7 @@ bool OSLRenderServices::environment(ustring filename,
if (handle && handle->oiio_handle) {
if (thread_info == NULL) {
ShaderData *sd = (ShaderData *)(sg->renderstate);
- const KernelGlobals *kernel_globals = sd->osl_globals;
+ KernelGlobals kernel_globals = sd->osl_globals;
OSLThreadData *tdata = kernel_globals->osl_tdata;
thread_info = tdata->oiio_thread_info;
}
@@ -1629,7 +1629,7 @@ bool OSLRenderServices::trace(TraceOpt &options,
tracedata->hit = false;
tracedata->sd.osl_globals = sd->osl_globals;
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
/* Can't raytrace from shaders like displacement, before BVH exists. */
if (kernel_data.bvh.bvh_layout == BVH_LAYOUT_NONE) {
@@ -1662,7 +1662,7 @@ bool OSLRenderServices::getmessage(OSL::ShaderGlobals *sg,
}
else {
ShaderData *sd = &tracedata->sd;
- const KernelGlobals *kg = sd->osl_globals;
+ const KernelGlobalsCPU *kg = sd->osl_globals;
if (!tracedata->setup) {
/* lazy shader data setup */
diff --git a/intern/cycles/kernel/osl/osl_services.h b/intern/cycles/kernel/osl/osl_services.h
index a9671485eda..d9f57c642ad 100644
--- a/intern/cycles/kernel/osl/osl_services.h
+++ b/intern/cycles/kernel/osl/osl_services.h
@@ -40,7 +40,7 @@ class Scene;
class Shader;
struct ShaderData;
struct float3;
-struct KernelGlobals;
+struct KernelGlobalsCPU;
/* OSL Texture Handle
*
@@ -250,13 +250,13 @@ class OSLRenderServices : public OSL::RendererServices {
void *data) override;
#endif
- static bool get_background_attribute(const KernelGlobals *kg,
+ static bool get_background_attribute(const KernelGlobalsCPU *kg,
ShaderData *sd,
ustring name,
TypeDesc type,
bool derivatives,
void *val);
- static bool get_object_standard_attribute(const KernelGlobals *kg,
+ static bool get_object_standard_attribute(const KernelGlobalsCPU *kg,
ShaderData *sd,
ustring name,
TypeDesc type,
diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp
index 880ef635c76..a1df63ca8ff 100644
--- a/intern/cycles/kernel/osl/osl_shader.cpp
+++ b/intern/cycles/kernel/osl/osl_shader.cpp
@@ -41,7 +41,7 @@ CCL_NAMESPACE_BEGIN
/* Threads */
-void OSLShader::thread_init(KernelGlobals *kg, OSLGlobals *osl_globals)
+void OSLShader::thread_init(KernelGlobalsCPU *kg, OSLGlobals *osl_globals)
{
/* no osl used? */
if (!osl_globals->use) {
@@ -67,7 +67,7 @@ void OSLShader::thread_init(KernelGlobals *kg, OSLGlobals *osl_globals)
kg->osl_tdata = tdata;
}
-void OSLShader::thread_free(KernelGlobals *kg)
+void OSLShader::thread_free(KernelGlobalsCPU *kg)
{
if (!kg->osl)
return;
@@ -87,7 +87,7 @@ void OSLShader::thread_free(KernelGlobals *kg)
/* Globals */
-static void shaderdata_to_shaderglobals(const KernelGlobals *kg,
+static void shaderdata_to_shaderglobals(const KernelGlobalsCPU *kg,
ShaderData *sd,
const IntegratorStateCPU *state,
int path_flag,
@@ -174,7 +174,7 @@ static void flatten_surface_closure_tree(ShaderData *sd,
}
}
-void OSLShader::eval_surface(const KernelGlobals *kg,
+void OSLShader::eval_surface(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
int path_flag)
@@ -282,7 +282,7 @@ static void flatten_background_closure_tree(ShaderData *sd,
}
}
-void OSLShader::eval_background(const KernelGlobals *kg,
+void OSLShader::eval_background(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
int path_flag)
@@ -340,7 +340,7 @@ static void flatten_volume_closure_tree(ShaderData *sd,
}
}
-void OSLShader::eval_volume(const KernelGlobals *kg,
+void OSLShader::eval_volume(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
int path_flag)
@@ -366,7 +366,7 @@ void OSLShader::eval_volume(const KernelGlobals *kg,
/* Displacement */
-void OSLShader::eval_displacement(const KernelGlobals *kg,
+void OSLShader::eval_displacement(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd)
{
@@ -391,7 +391,7 @@ void OSLShader::eval_displacement(const KernelGlobals *kg,
/* Attributes */
-int OSLShader::find_attribute(const KernelGlobals *kg,
+int OSLShader::find_attribute(const KernelGlobalsCPU *kg,
const ShaderData *sd,
uint id,
AttributeDescriptor *desc)
diff --git a/intern/cycles/kernel/osl/osl_shader.h b/intern/cycles/kernel/osl/osl_shader.h
index f1f17b141eb..686a1e1374a 100644
--- a/intern/cycles/kernel/osl/osl_shader.h
+++ b/intern/cycles/kernel/osl/osl_shader.h
@@ -39,7 +39,7 @@ struct ShaderClosure;
struct ShaderData;
struct IntegratorStateCPU;
struct differential3;
-struct KernelGlobals;
+struct KernelGlobalsCPU;
struct OSLGlobals;
struct OSLShadingSystem;
@@ -50,28 +50,28 @@ class OSLShader {
static void register_closures(OSLShadingSystem *ss);
/* per thread data */
- static void thread_init(KernelGlobals *kg, OSLGlobals *osl_globals);
- static void thread_free(KernelGlobals *kg);
+ static void thread_init(KernelGlobalsCPU *kg, OSLGlobals *osl_globals);
+ static void thread_free(KernelGlobalsCPU *kg);
/* eval */
- static void eval_surface(const KernelGlobals *kg,
+ static void eval_surface(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
int path_flag);
- static void eval_background(const KernelGlobals *kg,
+ static void eval_background(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
int path_flag);
- static void eval_volume(const KernelGlobals *kg,
+ static void eval_volume(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
int path_flag);
- static void eval_displacement(const KernelGlobals *kg,
+ static void eval_displacement(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd);
/* attributes */
- static int find_attribute(const KernelGlobals *kg,
+ static int find_attribute(const KernelGlobalsCPU *kg,
const ShaderData *sd,
uint id,
AttributeDescriptor *desc);