Metal: Add workaround for imageAtomic synchronization issue

A compiler/driver bug makes so that we can't rely on image atomics.

Adding a write that is never executed after the atomics tricks
the compiler to issue the correct synchronisation instruction.

This fixes a bunch of our render tests differences.

We will keep this workaround until this is fixed upstream.

Pull Request: https://projects.blender.org/blender/blender/pulls/146442
This commit is contained in:
Clément Foucault
2025-09-22 11:45:27 +02:00
committed by Clément Foucault
parent fb3904ce45
commit aa95220576
2 changed files with 22 additions and 24 deletions

View File

@@ -44,23 +44,13 @@ BLOCKLIST = [
BLOCKLIST_METAL = [
# Blocked due to difference in volume lightprobe bakes (to be fixed).
"clamp_.*.blend",
"shadow_all_max_bounces.blend",
"light_link_exclude.blend",
"light_link_instanced_receiver.blend",
"light_path_is_volume_scatter_ray.blend",
# Blocked due to difference in volume lightprobe bakes(maybe?) (to be fixed).
"volume_zero_extinction_channel.blend",
# Blocked due to difference in screen space tracing (to be fixed).
"sss_reflection_clamp.blend",
# Blocked due to difference in volume rendering (to be fixed).
"principled_bsdf_interior.blend",
# Blocked due to difference in mipmap interpolation (to be fixed).
"environment_mirror_ball.blend",
# Blocked due to difference in mipmap interpolation / anisotropic filtering (to be fixed).
"image.blend",
# Blocked due to differences in transparency.
"aov_transparency.blend",
# Blocked due to subtle differences in DOF
"osl_camera_advanced.blend",
]