From 9f1f7ba2bbee2bf82b09e63fde4d8a187265f49a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 25 May 2020 16:48:11 +0200 Subject: Fix T76925: more Cycles OpenCL compile errors with some drivers on Linux --- intern/cycles/kernel/kernel_adaptive_sampling.h | 12 ++++++------ intern/cycles/kernel/kernel_path.h | 2 +- intern/cycles/kernel/kernel_path_branched.h | 2 +- intern/cycles/kernel/kernel_work_stealing.h | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/intern/cycles/kernel/kernel_adaptive_sampling.h b/intern/cycles/kernel/kernel_adaptive_sampling.h index ee4d1507ef1..98b7bf7e7dc 100644 --- a/intern/cycles/kernel/kernel_adaptive_sampling.h +++ b/intern/cycles/kernel/kernel_adaptive_sampling.h @@ -185,19 +185,19 @@ ccl_device bool kernel_do_adaptive_filter_x(KernelGlobals *kg, int y, ccl_global ccl_global float *buffer = tile->buffer + index * kernel_data.film.pass_stride; ccl_global float4 *aux = (ccl_global float4 *)(buffer + kernel_data.film.pass_adaptive_aux_buffer); - if (aux->w == 0.0f) { + if ((*aux).w == 0.0f) { any = true; if (x > tile->x && !prev) { index = index - 1; buffer = tile->buffer + index * kernel_data.film.pass_stride; aux = (ccl_global float4 *)(buffer + kernel_data.film.pass_adaptive_aux_buffer); - aux->w = 0.0f; + (*aux).w = 0.0f; } prev = true; } else { if (prev) { - aux->w = 0.0f; + (*aux).w = 0.0f; } prev = false; } @@ -214,19 +214,19 @@ ccl_device bool kernel_do_adaptive_filter_y(KernelGlobals *kg, int x, ccl_global ccl_global float *buffer = tile->buffer + index * kernel_data.film.pass_stride; ccl_global float4 *aux = (ccl_global float4 *)(buffer + kernel_data.film.pass_adaptive_aux_buffer); - if (aux->w == 0.0f) { + if ((*aux).w == 0.0f) { any = true; if (y > tile->y && !prev) { index = index - tile->stride; buffer = tile->buffer + index * kernel_data.film.pass_stride; aux = (ccl_global float4 *)(buffer + kernel_data.film.pass_adaptive_aux_buffer); - aux->w = 0.0f; + (*aux).w = 0.0f; } prev = true; } else { if (prev) { - aux->w = 0.0f; + (*aux).w = 0.0f; } prev = false; } diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index db35303e3f1..ba46d84d158 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -662,7 +662,7 @@ ccl_device void kernel_path_trace( if (kernel_data.film.pass_adaptive_aux_buffer) { ccl_global float4 *aux = (ccl_global float4 *)(buffer + kernel_data.film.pass_adaptive_aux_buffer); - if (aux->w > 0.0f) { + if ((*aux).w > 0.0f) { return; } } diff --git a/intern/cycles/kernel/kernel_path_branched.h b/intern/cycles/kernel/kernel_path_branched.h index 337c4fb1d10..b9569f531e6 100644 --- a/intern/cycles/kernel/kernel_path_branched.h +++ b/intern/cycles/kernel/kernel_path_branched.h @@ -526,7 +526,7 @@ ccl_device void kernel_branched_path_trace( if (kernel_data.film.pass_adaptive_aux_buffer) { ccl_global float4 *aux = (ccl_global float4 *)(buffer + kernel_data.film.pass_adaptive_aux_buffer); - if (aux->w > 0.0f) { + if ((*aux).w > 0.0f) { return; } } diff --git a/intern/cycles/kernel/kernel_work_stealing.h b/intern/cycles/kernel/kernel_work_stealing.h index c642d227e4b..d1602744f1d 100644 --- a/intern/cycles/kernel/kernel_work_stealing.h +++ b/intern/cycles/kernel/kernel_work_stealing.h @@ -99,7 +99,7 @@ ccl_device bool get_next_work(KernelGlobals *kg, ccl_global float *buffer = kernel_split_params.tile.buffer + buffer_offset; ccl_global float4 *aux = (ccl_global float4 *)(buffer + kernel_data.film.pass_adaptive_aux_buffer); - if (aux->w == 0.0f) { + if ((*aux).w == 0.0f) { break; } } -- cgit v1.2.3