浏览代码

Fix cluster_render.glsl failing on some Macs
Some Macs encounter an internal error when compiling cluster_render.glsl
caused by a likely bug in the MVK/Metal
compiler when using gl_HelperInvocation.

Anders Stenberg 3 年之前
父节点
当前提交
bbb1f900dd
共有 1 个文件被更改,包括 10 次插入2 次删除
  1. 10 2
      servers/rendering/renderer_rd/shaders/cluster_render.glsl

+ 10 - 2
servers/rendering/renderer_rd/shaders/cluster_render.glsl

@@ -141,7 +141,11 @@ void main() {
 		}
 		}
 	}
 	}
 #else
 #else
-	if (!gl_HelperInvocation) {
+// MoltenVK/Metal fails to compile shaders using gl_HelperInvocation for some GPUs
+#ifndef MOLTENVK_USED
+	if (!gl_HelperInvocation)
+#endif
+	{
 		atomicOr(cluster_render.data[usage_write_offset], usage_write_bit);
 		atomicOr(cluster_render.data[usage_write_offset], usage_write_bit);
 	}
 	}
 #endif
 #endif
@@ -161,7 +165,11 @@ void main() {
 		}
 		}
 	}
 	}
 #else
 #else
-	if (!gl_HelperInvocation) {
+// MoltenVK/Metal fails to compile shaders using gl_HelperInvocation for some GPUs
+#ifndef MOLTENVK_USED
+	if (!gl_HelperInvocation)
+#endif
+	{
 		atomicOr(cluster_render.data[z_write_offset], z_write_bit);
 		atomicOr(cluster_render.data[z_write_offset], z_write_bit);
 	}
 	}
 #endif
 #endif