Cycles: disable anisotropic BSDF on CUDA sm 1.x, to try to get it building again.
This commit is contained in:
@@ -111,6 +111,7 @@ CCL_NAMESPACE_BEGIN
|
|||||||
#define __BACKGROUND_MIS__
|
#define __BACKGROUND_MIS__
|
||||||
#define __AO__
|
#define __AO__
|
||||||
#define __CAMERA_MOTION__
|
#define __CAMERA_MOTION__
|
||||||
|
#define __ANISOTROPIC__
|
||||||
|
|
||||||
#ifndef __KERNEL_CUDA__
|
#ifndef __KERNEL_CUDA__
|
||||||
#define __OBJECT_MOTION__
|
#define __OBJECT_MOTION__
|
||||||
@@ -375,7 +376,9 @@ typedef struct ShaderClosure {
|
|||||||
float data1;
|
float data1;
|
||||||
|
|
||||||
float3 N;
|
float3 N;
|
||||||
|
#ifdef __ANISOTROPIC__
|
||||||
float3 T;
|
float3 T;
|
||||||
|
#endif
|
||||||
|
|
||||||
} ShaderClosure;
|
} ShaderClosure;
|
||||||
|
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
#include "../closure/bsdf_reflection.h"
|
#include "../closure/bsdf_reflection.h"
|
||||||
#include "../closure/bsdf_refraction.h"
|
#include "../closure/bsdf_refraction.h"
|
||||||
#include "../closure/bsdf_transparent.h"
|
#include "../closure/bsdf_transparent.h"
|
||||||
#ifdef __DPDU__
|
#ifdef __ANISOTROPIC__
|
||||||
#include "../closure/bsdf_ward.h"
|
#include "../closure/bsdf_ward.h"
|
||||||
#endif
|
#endif
|
||||||
#include "../closure/bsdf_westin.h"
|
#include "../closure/bsdf_westin.h"
|
||||||
@@ -75,7 +75,7 @@ __device int svm_bsdf_sample(const ShaderData *sd, const ShaderClosure *sc, floa
|
|||||||
label = bsdf_microfacet_beckmann_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv,
|
label = bsdf_microfacet_beckmann_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv,
|
||||||
eval, omega_in, &domega_in->dx, &domega_in->dy, pdf);
|
eval, omega_in, &domega_in->dx, &domega_in->dy, pdf);
|
||||||
break;
|
break;
|
||||||
#ifdef __DPDU__
|
#ifdef __ANISOTROPIC__
|
||||||
case CLOSURE_BSDF_WARD_ID:
|
case CLOSURE_BSDF_WARD_ID:
|
||||||
label = bsdf_ward_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv,
|
label = bsdf_ward_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv,
|
||||||
eval, omega_in, &domega_in->dx, &domega_in->dy, pdf);
|
eval, omega_in, &domega_in->dx, &domega_in->dy, pdf);
|
||||||
@@ -138,7 +138,7 @@ __device float3 svm_bsdf_eval(const ShaderData *sd, const ShaderClosure *sc, con
|
|||||||
case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID:
|
case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID:
|
||||||
eval = bsdf_microfacet_beckmann_eval_reflect(sc, sd->I, omega_in, pdf);
|
eval = bsdf_microfacet_beckmann_eval_reflect(sc, sd->I, omega_in, pdf);
|
||||||
break;
|
break;
|
||||||
#ifdef __DPDU__
|
#ifdef __ANISOTROPIC__
|
||||||
case CLOSURE_BSDF_WARD_ID:
|
case CLOSURE_BSDF_WARD_ID:
|
||||||
eval = bsdf_ward_eval_reflect(sc, sd->I, omega_in, pdf);
|
eval = bsdf_ward_eval_reflect(sc, sd->I, omega_in, pdf);
|
||||||
break;
|
break;
|
||||||
@@ -187,7 +187,7 @@ __device float3 svm_bsdf_eval(const ShaderData *sd, const ShaderClosure *sc, con
|
|||||||
case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID:
|
case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID:
|
||||||
eval = bsdf_microfacet_beckmann_eval_transmit(sc, sd->I, omega_in, pdf);
|
eval = bsdf_microfacet_beckmann_eval_transmit(sc, sd->I, omega_in, pdf);
|
||||||
break;
|
break;
|
||||||
#ifdef __DPDU__
|
#ifdef __ANISOTROPIC__
|
||||||
case CLOSURE_BSDF_WARD_ID:
|
case CLOSURE_BSDF_WARD_ID:
|
||||||
eval = bsdf_ward_eval_transmit(sc, sd->I, omega_in, pdf);
|
eval = bsdf_ward_eval_transmit(sc, sd->I, omega_in, pdf);
|
||||||
break;
|
break;
|
||||||
@@ -244,7 +244,7 @@ __device void svm_bsdf_blur(ShaderClosure *sc, float roughness)
|
|||||||
case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID:
|
case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID:
|
||||||
bsdf_microfacet_beckmann_blur(sc, roughness);
|
bsdf_microfacet_beckmann_blur(sc, roughness);
|
||||||
break;
|
break;
|
||||||
#ifdef __DPDU__
|
#ifdef __ANISOTROPIC__
|
||||||
case CLOSURE_BSDF_WARD_ID:
|
case CLOSURE_BSDF_WARD_ID:
|
||||||
bsdf_ward_blur(sc, roughness);
|
bsdf_ward_blur(sc, roughness);
|
||||||
break;
|
break;
|
||||||
|
@@ -225,7 +225,6 @@ __device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *st
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#ifdef __DPDU__
|
|
||||||
case CLOSURE_BSDF_WARD_ID: {
|
case CLOSURE_BSDF_WARD_ID: {
|
||||||
#ifdef __CAUSTICS_TRICKS__
|
#ifdef __CAUSTICS_TRICKS__
|
||||||
if(kernel_data.integrator.no_caustics && (path_flag & PATH_RAY_DIFFUSE))
|
if(kernel_data.integrator.no_caustics && (path_flag & PATH_RAY_DIFFUSE))
|
||||||
@@ -233,9 +232,11 @@ __device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *st
|
|||||||
#endif
|
#endif
|
||||||
ShaderClosure *sc = svm_node_closure_get(sd);
|
ShaderClosure *sc = svm_node_closure_get(sd);
|
||||||
sc->N = N;
|
sc->N = N;
|
||||||
sc->T = stack_load_float3(stack, data_node.z);
|
|
||||||
svm_node_closure_set_mix_weight(sc, mix_weight);
|
svm_node_closure_set_mix_weight(sc, mix_weight);
|
||||||
|
|
||||||
|
#ifdef __ANISOTROPIC__
|
||||||
|
sc->T = stack_load_float3(stack, data_node.z);
|
||||||
|
|
||||||
/* rotate tangent */
|
/* rotate tangent */
|
||||||
float rotation = stack_load_float(stack, data_node.w);
|
float rotation = stack_load_float(stack, data_node.w);
|
||||||
|
|
||||||
@@ -256,9 +257,11 @@ __device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *st
|
|||||||
}
|
}
|
||||||
|
|
||||||
sd->flag |= bsdf_ward_setup(sc);
|
sd->flag |= bsdf_ward_setup(sc);
|
||||||
|
#else
|
||||||
|
sd->flag |= bsdf_diffuse_setup(sc);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: {
|
case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: {
|
||||||
ShaderClosure *sc = svm_node_closure_get(sd);
|
ShaderClosure *sc = svm_node_closure_get(sd);
|
||||||
sc->N = N;
|
sc->N = N;
|
||||||
|
@@ -283,7 +283,7 @@ __device void svm_node_normal_map(KernelGlobals *kg, ShaderData *sd, float *stac
|
|||||||
N = normalize(sd->N + (N - sd->N)*strength);
|
N = normalize(sd->N + (N - sd->N)*strength);
|
||||||
}
|
}
|
||||||
|
|
||||||
stack_store_float3(stack, normal_offset, normalize(N));
|
stack_store_float3(stack, normal_offset, N);
|
||||||
}
|
}
|
||||||
|
|
||||||
__device void svm_node_tangent(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node)
|
__device void svm_node_tangent(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node)
|
||||||
|
Reference in New Issue
Block a user