[Bf-blender-cvs] [9f1f7ba2bbe] blender-v2.83-release: Fix T76925: more Cycles OpenCL compile errors with some drivers on Linux
Brecht Van Lommel
noreply at git.blender.org
Mon May 25 17:06:25 CEST 2020
Commit: 9f1f7ba2bbee2bf82b09e63fde4d8a187265f49a
Author: Brecht Van Lommel
Date: Mon May 25 16:48:11 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB9f1f7ba2bbee2bf82b09e63fde4d8a187265f49a
Fix T76925: more Cycles OpenCL compile errors with some drivers on Linux
===================================================================
M intern/cycles/kernel/kernel_adaptive_sampling.h
M intern/cycles/kernel/kernel_path.h
M intern/cycles/kernel/kernel_path_branched.h
M intern/cycles/kernel/kernel_work_stealing.h
===================================================================
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;
}
}
More information about the Bf-blender-cvs
mailing list