From 11aa237858d4a2f12db43bac97793606eda7f542 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Tue, 10 May 2022 08:30:21 +0200 Subject: Eevee: Fix GLSL compilation error. Introduced by {35594f4b92fa4cbb5b848f447b7a3323e572b676}. Some platforms do not support temp variables to be used as inout parameter. Detected on Mac with Intel iGPU. --- .../gpu/shaders/material/gpu_shader_material_eevee_specular.glsl | 6 ++++-- .../gpu/shaders/material/gpu_shader_material_principled.glsl | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_eevee_specular.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_eevee_specular.glsl index c81880184e3..530907859e9 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_eevee_specular.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_eevee_specular.glsl @@ -64,6 +64,8 @@ void node_eevee_specular(vec4 diffuse, else { result = closure_eval(diffuse_data, reflection_data); } - result = closure_add(result, closure_eval(emission_data)); - result = closure_add(result, closure_eval(transparency_data)); + Closure emission_cl = closure_eval(emission_data); + Closure transparency_cl = closure_eval(transparency_data); + result = closure_add(result, emission_cl); + result = closure_add(result, transparency_cl); } diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl index 033dc05c57d..2e695fa3e14 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl @@ -169,6 +169,8 @@ void node_bsdf_principled(vec4 base_color, /* Un-optimized case. */ result = closure_eval(diffuse_data, reflection_data, clearcoat_data, refraction_data); } - result = closure_add(result, closure_eval(emission_data)); - result = closure_add(result, closure_eval(transparency_data)); + Closure emission_cl = closure_eval(emission_data); + Closure transparency_cl = closure_eval(transparency_data); + result = closure_add(result, emission_cl); + result = closure_add(result, transparency_cl); } -- cgit v1.2.3