Commit: 68f7b26de00f56f1cd29e080b51634ce8b357fbb
Author: Mai Lavelle
Date:   Thu Feb 16 06:24:13 2017 -0500
Branches: temp_cycles_split_kernel
https://developer.blender.org/rB68f7b26de00f56f1cd29e080b51634ce8b357fbb

Cycles: Remove ccl_fetch and SOA

===================================================================

M       intern/cycles/kernel/closure/alloc.h
M       intern/cycles/kernel/closure/bsdf.h
M       intern/cycles/kernel/geom/geom_attribute.h
M       intern/cycles/kernel/geom/geom_curve.h
M       intern/cycles/kernel/geom/geom_motion_triangle_intersect.h
M       intern/cycles/kernel/geom/geom_motion_triangle_shader.h
M       intern/cycles/kernel/geom/geom_object.h
M       intern/cycles/kernel/geom/geom_patch.h
M       intern/cycles/kernel/geom/geom_primitive.h
M       intern/cycles/kernel/geom/geom_subd_triangle.h
M       intern/cycles/kernel/geom/geom_triangle.h
M       intern/cycles/kernel/geom/geom_triangle_intersect.h
M       intern/cycles/kernel/geom/geom_volume.h
M       intern/cycles/kernel/kernel_camera.h
M       intern/cycles/kernel/kernel_emission.h
M       intern/cycles/kernel/kernel_passes.h
M       intern/cycles/kernel/kernel_path.h
M       intern/cycles/kernel/kernel_path_branched.h
M       intern/cycles/kernel/kernel_path_surface.h
M       intern/cycles/kernel/kernel_shader.h
M       intern/cycles/kernel/kernel_shadow.h
M       intern/cycles/kernel/kernel_subsurface.h
M       intern/cycles/kernel/kernel_types.h
M       intern/cycles/kernel/osl/osl_bssrdf.cpp
M       intern/cycles/kernel/split/kernel_background_buffer_update.h
M       intern/cycles/kernel/split/kernel_data_init.h
M       intern/cycles/kernel/split/kernel_direct_lighting.h
M       
intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h
M       intern/cycles/kernel/split/kernel_lamp_emission.h
M       intern/cycles/kernel/split/kernel_next_iteration_setup.h
M       intern/cycles/kernel/split/kernel_shader_eval.h
M       intern/cycles/kernel/split/kernel_shadow_blocked.h
M       intern/cycles/kernel/svm/svm.h
M       intern/cycles/kernel/svm/svm_attribute.h
M       intern/cycles/kernel/svm/svm_bump.h
M       intern/cycles/kernel/svm/svm_camera.h
M       intern/cycles/kernel/svm/svm_closure.h
M       intern/cycles/kernel/svm/svm_displace.h
M       intern/cycles/kernel/svm/svm_fresnel.h
M       intern/cycles/kernel/svm/svm_geometry.h
M       intern/cycles/kernel/svm/svm_image.h
M       intern/cycles/kernel/svm/svm_light_path.h
M       intern/cycles/kernel/svm/svm_tex_coord.h
M       intern/cycles/kernel/svm/svm_vector_transform.h
M       intern/cycles/kernel/svm/svm_wireframe.h

===================================================================

diff --git a/intern/cycles/kernel/closure/alloc.h 
b/intern/cycles/kernel/closure/alloc.h
index b7abc1ec50..4894ea58db 100644
--- a/intern/cycles/kernel/closure/alloc.h
+++ b/intern/cycles/kernel/closure/alloc.h
@@ -20,17 +20,17 @@ ccl_device ShaderClosure *closure_alloc(ShaderData *sd, int 
size, ClosureType ty
 {
        kernel_assert(size <= sizeof(ShaderClosure));
 
-       int num_closure = ccl_fetch(sd, num_closure);
-       int num_closure_extra = ccl_fetch(sd, num_closure_extra);
+       int num_closure = sd->num_closure;
+       int num_closure_extra = sd->num_closure_extra;
        if(num_closure + num_closure_extra >= MAX_CLOSURE)
                return NULL;
 
-       ShaderClosure *sc = &ccl_fetch(sd, closure)[num_closure];
+       ShaderClosure *sc = &sd->closure[num_closure];
 
        sc->type = type;
        sc->weight = weight;
 
-       ccl_fetch(sd, num_closure)++;
+       sd->num_closure++;
 
        return sc;
 }
@@ -44,18 +44,18 @@ ccl_device ccl_addr_space void 
*closure_alloc_extra(ShaderData *sd, int size)
         * This lets us keep the same fast array iteration over closures, as we
         * found linked list iteration and iteration with skipping to be 
slower. */
        int num_extra = ((size + sizeof(ShaderClosure) - 1) / 
sizeof(ShaderClosure));
-       int num_closure = ccl_fetch(sd, num_closure);
-       int num_closure_extra = ccl_fetch(sd, num_closure_extra) + num_extra;
+       int num_closure = sd->num_closure;
+       int num_closure_extra = sd->num_closure_extra + num_extra;
 
        if(num_closure + num_closure_extra > MAX_CLOSURE) {
                /* Remove previous closure. */
-               ccl_fetch(sd, num_closure)--;
-               ccl_fetch(sd, num_closure_extra)++;
+               sd->num_closure--;
+               sd->num_closure_extra++;
                return NULL;
        }
 
-       ccl_fetch(sd, num_closure_extra) = num_closure_extra;
-       return (ccl_addr_space void*)(ccl_fetch(sd, closure) + MAX_CLOSURE - 
num_closure_extra);
+       sd->num_closure_extra = num_closure_extra;
+       return (ccl_addr_space void*)(sd->closure + MAX_CLOSURE - 
num_closure_extra);
 }
 
 ccl_device_inline ShaderClosure *bsdf_alloc(ShaderData *sd, int size, float3 
weight)
diff --git a/intern/cycles/kernel/closure/bsdf.h 
b/intern/cycles/kernel/closure/bsdf.h
index 7e4d5fe2e3..a44b9e2d9b 100644
--- a/intern/cycles/kernel/closure/bsdf.h
+++ b/intern/cycles/kernel/closure/bsdf.h
@@ -51,89 +51,89 @@ ccl_device_forceinline int bsdf_sample(KernelGlobals *kg,
        switch(sc->type) {
                case CLOSURE_BSDF_DIFFUSE_ID:
                case CLOSURE_BSDF_BSSRDF_ID:
-                       label = bsdf_diffuse_sample(sc, ccl_fetch(sd, Ng), 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_diffuse_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
 #ifdef __SVM__
                case CLOSURE_BSDF_OREN_NAYAR_ID:
-                       label = bsdf_oren_nayar_sample(sc, ccl_fetch(sd, Ng), 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_oren_nayar_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
 #ifdef __OSL__
                case CLOSURE_BSDF_PHONG_RAMP_ID:
-                       label = bsdf_phong_ramp_sample(sc, ccl_fetch(sd, Ng), 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_phong_ramp_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_DIFFUSE_RAMP_ID:
-                       label = bsdf_diffuse_ramp_sample(sc, ccl_fetch(sd, Ng), 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_diffuse_ramp_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
 #endif
                case CLOSURE_BSDF_TRANSLUCENT_ID:
-                       label = bsdf_translucent_sample(sc, ccl_fetch(sd, Ng), 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_translucent_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_REFLECTION_ID:
-                       label = bsdf_reflection_sample(sc, ccl_fetch(sd, Ng), 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_reflection_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_REFRACTION_ID:
-                       label = bsdf_refraction_sample(sc, ccl_fetch(sd, Ng), 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_refraction_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_TRANSPARENT_ID:
-                       label = bsdf_transparent_sample(sc, ccl_fetch(sd, Ng), 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_transparent_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_MICROFACET_GGX_ID:
                case CLOSURE_BSDF_MICROFACET_GGX_ANISO_ID:
                case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID:
-                       label = bsdf_microfacet_ggx_sample(kg, sc, 
ccl_fetch(sd, Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, 
dI).dy, randu, randv,
+                       label = bsdf_microfacet_ggx_sample(kg, sc, sd->Ng, 
sd->I, sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_MICROFACET_MULTI_GGX_ID:
-                       label = bsdf_microfacet_multi_ggx_sample(kg, sc, 
ccl_fetch(sd, Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, 
dI).dy, randu, randv,
-                               eval, omega_in,  &domega_in->dx, 
&domega_in->dy, pdf, &ccl_fetch(sd, lcg_state));
+                       label = bsdf_microfacet_multi_ggx_sample(kg, sc, 
sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv,
+                               eval, omega_in,  &domega_in->dx, 
&domega_in->dy, pdf, &sd->lcg_state);
                        break;
                case CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID:
-                       label = bsdf_microfacet_multi_ggx_glass_sample(kg, sc, 
ccl_fetch(sd, Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, 
dI).dy, randu, randv,
-                               eval, omega_in,  &domega_in->dx, 
&domega_in->dy, pdf, &ccl_fetch(sd, lcg_state));
+                       label = bsdf_microfacet_multi_ggx_glass_sample(kg, sc, 
sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv,
+                               eval, omega_in,  &domega_in->dx, 
&domega_in->dy, pdf, &sd->lcg_state);
                        break;
                case CLOSURE_BSDF_MICROFACET_BECKMANN_ID:
                case CLOSURE_BSDF_MICROFACET_BECKMANN_ANISO_ID:
                case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID:
-                       label = bsdf_microfacet_beckmann_sample(kg, sc, 
ccl_fetch(sd, Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, 
dI).dy, randu, randv,
+                       label = bsdf_microfacet_beckmann_sample(kg, sc, sd->Ng, 
sd->I, sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID:
                case CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ANISO_ID:
-                       label = bsdf_ashikhmin_shirley_sample(sc, ccl_fetch(sd, 
Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_ashikhmin_shirley_sample(sc, sd->Ng, 
sd->I, sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID:
-                       label = bsdf_ashikhmin_velvet_sample(sc, ccl_fetch(sd, 
Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_ashikhmin_velvet_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_DIFFUSE_TOON_ID:
-                       label = bsdf_diffuse_toon_sample(sc, ccl_fetch(sd, Ng), 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_diffuse_toon_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_GLOSSY_TOON_ID:
-                       label = bsdf_glossy_toon_sample(sc, ccl_fetch(sd, Ng), 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_glossy_toon_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_HAIR_REFLECTION_ID:
-                       label = bsdf_hair_reflection_sample(sc, ccl_fetch(sd, 
Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_hair_reflection_sample(sc, sd->Ng, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
                case CLOSURE_BSDF_HAIR_TRANSMISSION_ID:
-                       label = bsdf_hair_transmission_sample(sc, ccl_fetch(sd, 
Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+                       label = bsdf_hair_transmission_sample(sc, sd->Ng, 
sd->I, sd->dI.dx, sd->dI.dy, randu, randv,
                                eval, omega_in, &domega_in->dx, &domega_in->dy, 
pdf);
                        break;
 #endif
 #ifdef __VOLUME__
                case CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID:
-                       label = volume_henyey_greenstein_sample(sc, 
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv, 
eval, omega_in, &domega_in->dx, &domega_in->dy, pdf);
+                       label = volume_henyey_greenstein_sample(sc, sd->I, 
sd->dI.dx, sd->dI.dy, randu, randv, eval, omega_in, &domega_in->dx, 
&domega_in->dy, pdf);
                        break;
 #endif
                default:
@@ -157,75 +157,75 @@ float3 bsdf_eval(KernelGlobals *kg,
 {
        float3 eval;
 
-       if(dot(ccl_fetch(sd, Ng), omega_in) >= 0.0f) {
+       if(dot(sd->Ng, omega_in) >= 0.0f) {
                switch(sc->type) {
                        case CLOSURE_BSDF_DIFFUSE_ID:
                        case CLOSURE_BSDF_BSSRDF_ID:
-                               eval = bsdf_diffuse_eval_reflect(sc, 
ccl_fetch(sd, I), omega_in, pdf);
+                               eval = bsdf_diffuse_eval_reflect(sc, sd->I, 
omega_in, pdf);
                                break;
 #ifdef __SVM__
                        case CLOSURE_BSDF_OREN_NAYAR_ID:
-                               eval = bsdf_oren_nayar_eval_reflect(sc, 
ccl_fetch(sd, I), omega_in, pdf);
+                               eval = bsdf_oren_nayar_eval_reflect(sc, sd->I, 
omega_in, pdf);
                                break;
 #ifdef __OSL__
                        case CLOSURE_BSDF_PHONG_RAMP_ID:
-                               eval = bsdf_phong_ramp_eval_reflect(sc, 
ccl_fetch(sd, I), omega_in, pdf);
+                               eval = bsdf_ph

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to