From 6db13d323160b59e1c4b532c2e09bed9139c5f82 Mon Sep 17 00:00:00 2001 From: jfons Date: Sat, 30 Oct 2021 02:53:09 +0200 Subject: [PATCH] Fix instance index in forward clustered shader --- .../renderer_rd/shaders/scene_forward_clustered.glsl | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl index a83f87d23a95..4119e98d151d 100644 --- a/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl +++ b/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl @@ -108,13 +108,14 @@ void main() { #endif uint instance_index = draw_call.instance_index; - instance_index_interp = instance_index; bool is_multimesh = bool(instances.data[instance_index].flags & INSTANCE_FLAGS_MULTIMESH); if (!is_multimesh) { instance_index += gl_InstanceIndex; } + instance_index_interp = instance_index; + mat4 world_matrix = instances.data[instance_index].transform; mat3 world_normal_matrix; @@ -565,12 +566,8 @@ void main() { discard; #endif -#ifdef USE_SUBGROUPS - //ensures instance_index is in sgpr - uint instance_index = subgroupBroadcastFirst(instance_index_interp); -#else uint instance_index = instance_index_interp; -#endif + //lay out everything, whathever is unused is optimized away anyway vec3 vertex = vertex_interp; vec3 view = -normalize(vertex_interp);