From a1faf4d678ce26297a41df255907f54937e19da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cle=CC=81ment=20Foucault?= Date: Fri, 14 Jul 2023 11:09:39 +0200 Subject: [PATCH] Metal: Address some mixed integer type warnings --- source/blender/draw/engines/eevee_next/eevee_film.cc | 2 +- .../blender/draw/engines/eevee_next/eevee_shader_shared.hh | 4 ++-- .../eevee_next/shaders/eevee_light_culling_select_comp.glsl | 2 ++ .../draw/engines/eevee_next/shaders/eevee_nodetree_lib.glsl | 4 ++-- .../workbench/shaders/workbench_shadow_visibility_comp.glsl | 2 +- source/blender/draw/intern/draw_shader_shared.h | 2 +- .../draw/intern/shaders/draw_command_generate_comp.glsl | 6 +++--- .../blender/draw/intern/shaders/draw_visibility_comp.glsl | 2 +- 8 files changed, 13 insertions(+), 11 deletions(-) diff --git a/source/blender/draw/engines/eevee_next/eevee_film.cc b/source/blender/draw/engines/eevee_next/eevee_film.cc index 78e9bc109e4..cfafc18e244 100644 --- a/source/blender/draw/engines/eevee_next/eevee_film.cc +++ b/source/blender/draw/engines/eevee_next/eevee_film.cc @@ -74,7 +74,7 @@ void Film::init_aovs() for (ViewLayerAOV *aov : aovs) { bool is_value = (aov->type == AOV_TYPE_VALUE); - uint &index = is_value ? aovs_info.value_len : aovs_info.color_len; + int &index = is_value ? aovs_info.value_len : aovs_info.color_len; uint &hash = is_value ? aovs_info.hash_value[index].x : aovs_info.hash_color[index].x; hash = BLI_hash_string(aov->name); index++; diff --git a/source/blender/draw/engines/eevee_next/eevee_shader_shared.hh b/source/blender/draw/engines/eevee_next/eevee_shader_shared.hh index 8d8498e1936..8f36487fc1e 100644 --- a/source/blender/draw/engines/eevee_next/eevee_shader_shared.hh +++ b/source/blender/draw/engines/eevee_next/eevee_shader_shared.hh @@ -326,8 +326,8 @@ struct AOVsInfoData { uint4 hash_value[AOV_MAX]; uint4 hash_color[AOV_MAX]; /* Length of used data. */ - uint color_len; - uint value_len; + int color_len; + int value_len; /** Id of the AOV to be displayed (from the start of the AOV array). -1 for combined. */ int display_id; /** True if the AOV to be displayed is from the value accumulation buffer. */ diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_light_culling_select_comp.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_light_culling_select_comp.glsl index c957d7c7213..7f3544810a4 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_light_culling_select_comp.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_light_culling_select_comp.glsl @@ -48,6 +48,8 @@ void main() sphere.center = light._position; sphere.radius = light.influence_radius_max; break; + default: + break; } /* TODO(fclem): HiZ culling? Could be quite beneficial given the nature of the 2.5D culling. */ diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_nodetree_lib.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_nodetree_lib.glsl index 6ec88f48b76..c74af4fcefd 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_nodetree_lib.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_nodetree_lib.glsl @@ -292,13 +292,13 @@ void clear_aovs() void output_aov(vec4 color, float value, uint hash) { #if defined(MAT_RENDER_PASS_SUPPORT) && defined(GPU_FRAGMENT_SHADER) - for (uint i = 0; i < AOV_MAX && i < rp_buf.aovs.color_len; i++) { + for (int i = 0; i < AOV_MAX && i < rp_buf.aovs.color_len; i++) { if (rp_buf.aovs.hash_color[i].x == hash) { imageStore(rp_color_img, ivec3(ivec2(gl_FragCoord.xy), rp_buf.color_len + i), color); return; } } - for (uint i = 0; i < AOV_MAX && i < rp_buf.aovs.value_len; i++) { + for (int i = 0; i < AOV_MAX && i < rp_buf.aovs.value_len; i++) { if (rp_buf.aovs.hash_value[i].x == hash) { imageStore(rp_value_img, ivec3(ivec2(gl_FragCoord.xy), rp_buf.value_len + i), vec4(value)); return; diff --git a/source/blender/draw/engines/workbench/shaders/workbench_shadow_visibility_comp.glsl b/source/blender/draw/engines/workbench/shaders/workbench_shadow_visibility_comp.glsl index 346e10d7083..f8bc607debe 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_shadow_visibility_comp.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_shadow_visibility_comp.glsl @@ -69,7 +69,7 @@ bool intersects_near_plane(IsectBox box) void main() { - if (gl_GlobalInvocationID.x >= resource_len) { + if (int(gl_GlobalInvocationID.x) >= resource_len) { return; } diff --git a/source/blender/draw/intern/draw_shader_shared.h b/source/blender/draw/intern/draw_shader_shared.h index e43bd143aff..72e8872d9f7 100644 --- a/source/blender/draw/intern/draw_shader_shared.h +++ b/source/blender/draw/intern/draw_shader_shared.h @@ -81,7 +81,7 @@ typedef enum eObjectInfoFlag eObjectInfoFlag; /** This should be already defined at shaderCreateInfo level. */ // # define DRW_VIEW_LEN 64 /** Global that needs to be set correctly in each shader stage. */ -uint drw_view_id = 0; +int drw_view_id = 0; /** * In order to reduce the memory requirements, the view id is merged with resource id to avoid * doubling the memory required only for view indexing. diff --git a/source/blender/draw/intern/shaders/draw_command_generate_comp.glsl b/source/blender/draw/intern/shaders/draw_command_generate_comp.glsl index f2b3bfd98e4..b4d751809bf 100644 --- a/source/blender/draw/intern/shaders/draw_command_generate_comp.glsl +++ b/source/blender/draw/intern/shaders/draw_command_generate_comp.glsl @@ -45,7 +45,7 @@ void write_draw_call(DrawGroup group, uint group_id) void main() { - uint proto_id = gl_GlobalInvocationID.x; + int proto_id = int(gl_GlobalInvocationID.x); if (proto_id >= prototype_len) { return; } @@ -59,7 +59,7 @@ void main() uint visible_instance_len = 0; if (visibility_word_per_draw > 0) { uint visibility_word = resource_index * visibility_word_per_draw; - for (uint i = 0; i < visibility_word_per_draw; i++, visibility_word++) { + for (int i = 0; i < visibility_word_per_draw; i++, visibility_word++) { /* NOTE: This assumes `proto.instance_len` is 1. */ /* TODO: Assert. */ visible_instance_len += bitCount(visibility_buf[visibility_word]); @@ -103,7 +103,7 @@ void main() /* Fill resource_id buffer for each instance of this draw. */ if (visibility_word_per_draw > 0) { uint visibility_word = resource_index * visibility_word_per_draw; - for (uint i = 0; i < visibility_word_per_draw; i++, visibility_word++) { + for (int i = 0; i < visibility_word_per_draw; i++, visibility_word++) { uint word = visibility_buf[visibility_word]; uint view_index = i * 32u; while (word != 0u) { diff --git a/source/blender/draw/intern/shaders/draw_visibility_comp.glsl b/source/blender/draw/intern/shaders/draw_visibility_comp.glsl index 0d2717aea64..68b08de0637 100644 --- a/source/blender/draw/intern/shaders/draw_visibility_comp.glsl +++ b/source/blender/draw/intern/shaders/draw_visibility_comp.glsl @@ -23,7 +23,7 @@ void mask_visibility_bit(uint view_id) void main() { - if (gl_GlobalInvocationID.x >= resource_len) { + if (int(gl_GlobalInvocationID.x) >= resource_len) { return; }