forked from bartvdbraak/blender
Cycles: fixes for OpenCL build after pass changes, patch by Daniel Genrich.
This commit is contained in:
parent
bcbe9ca5fc
commit
de5d5ded7b
@ -59,7 +59,7 @@ __device void kernel_film_tonemap(KernelGlobals *kg,
|
|||||||
buffer += index*kernel_data.film.pass_stride;
|
buffer += index*kernel_data.film.pass_stride;
|
||||||
|
|
||||||
/* map colors */
|
/* map colors */
|
||||||
float4 irradiance = *(float4*)buffer;
|
float4 irradiance = *((__global float4*)buffer);
|
||||||
float4 float_result = film_map(kg, irradiance, sample);
|
float4 float_result = film_map(kg, irradiance, sample);
|
||||||
uchar4 byte_result = film_float_to_byte(float_result);
|
uchar4 byte_result = film_float_to_byte(float_result);
|
||||||
|
|
||||||
|
@ -20,19 +20,19 @@ CCL_NAMESPACE_BEGIN
|
|||||||
|
|
||||||
__device_inline void kernel_write_pass_float(__global float *buffer, int sample, float value)
|
__device_inline void kernel_write_pass_float(__global float *buffer, int sample, float value)
|
||||||
{
|
{
|
||||||
float *buf = buffer;
|
__global float *buf = buffer;
|
||||||
*buf = (sample == 0)? value: *buf + value;
|
*buf = (sample == 0)? value: *buf + value;
|
||||||
}
|
}
|
||||||
|
|
||||||
__device_inline void kernel_write_pass_float3(__global float *buffer, int sample, float3 value)
|
__device_inline void kernel_write_pass_float3(__global float *buffer, int sample, float3 value)
|
||||||
{
|
{
|
||||||
float3 *buf = (float3*)buffer;
|
__global float3 *buf = (__global float3*)buffer;
|
||||||
*buf = (sample == 0)? value: *buf + value;
|
*buf = (sample == 0)? value: *buf + value;
|
||||||
}
|
}
|
||||||
|
|
||||||
__device_inline void kernel_write_pass_float4(__global float *buffer, int sample, float4 value)
|
__device_inline void kernel_write_pass_float4(__global float *buffer, int sample, float4 value)
|
||||||
{
|
{
|
||||||
float4 *buf = (float4*)buffer;
|
__global float4 *buf = (__global float4*)buffer;
|
||||||
*buf = (sample == 0)? value: *buf + value;
|
*buf = (sample == 0)? value: *buf + value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, R
|
|||||||
|
|
||||||
path_radiance_init(&L, kernel_data.film.use_light_pass);
|
path_radiance_init(&L, kernel_data.film.use_light_pass);
|
||||||
|
|
||||||
#ifdef __EMISSION__
|
#if defined(__EMISSION__) || defined(__BACKGROUND__)
|
||||||
float ray_pdf = 0.0f;
|
float ray_pdf = 0.0f;
|
||||||
#endif
|
#endif
|
||||||
PathState state;
|
PathState state;
|
||||||
@ -239,11 +239,13 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, R
|
|||||||
if(kernel_data.background.transparent && (state.flag & PATH_RAY_CAMERA)) {
|
if(kernel_data.background.transparent && (state.flag & PATH_RAY_CAMERA)) {
|
||||||
L_transparent += average(throughput);
|
L_transparent += average(throughput);
|
||||||
}
|
}
|
||||||
|
#ifdef __BACKGROUND__
|
||||||
else {
|
else {
|
||||||
/* sample background shader */
|
/* sample background shader */
|
||||||
float3 L_background = indirect_background(kg, &ray, state.flag, ray_pdf);
|
float3 L_background = indirect_background(kg, &ray, state.flag, ray_pdf);
|
||||||
path_radiance_accum_background(&L, throughput, L_background, state.bounce);
|
path_radiance_accum_background(&L, throughput, L_background, state.bounce);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user