diff --git a/source/blender/gpu/shaders/metal/mtl_shader_defines.msl b/source/blender/gpu/shaders/metal/mtl_shader_defines.msl index 22685368d95..4b5be8c0e24 100644 --- a/source/blender/gpu/shaders/metal/mtl_shader_defines.msl +++ b/source/blender/gpu/shaders/metal/mtl_shader_defines.msl @@ -985,52 +985,52 @@ inline void _texture_write_internal_fast(thread _mtl_combined_image_sampler_3d -vec _texture_image_atomic_min_internal(thread _mtl_combined_image_sampler_1d tex, +S _texture_image_atomic_min_internal(thread _mtl_combined_image_sampler_1d tex, int coord, - vec data) + S data) { - return tex.texture->atomic_fetch_min(uint(coord), data); + return tex.texture->atomic_fetch_min(uint(coord), vec(data)).x; } template -vec _texture_image_atomic_min_internal(thread _mtl_combined_image_sampler_1d_array tex, +S _texture_image_atomic_min_internal(thread _mtl_combined_image_sampler_1d_array tex, int2 coord, - vec data) + S data) { - return tex.texture->atomic_fetch_min(uint(coord.x), uint(coord.y), data); + return tex.texture->atomic_fetch_min(uint(coord.x), uint(coord.y), vec(data)).x; } template -vec _texture_image_atomic_min_internal(thread _mtl_combined_image_sampler_2d tex, +S _texture_image_atomic_min_internal(thread _mtl_combined_image_sampler_2d tex, int2 coord, - vec data) + S data) { - return tex.texture->atomic_fetch_min(uint2(coord.xy), data); + return tex.texture->atomic_fetch_min(uint2(coord.xy), vec(data)).x; } template -vec _texture_image_atomic_min_internal(thread _mtl_combined_image_sampler_2d_array tex, +S _texture_image_atomic_min_internal(thread _mtl_combined_image_sampler_2d_array tex, int3 coord, - vec data) + S data) { - return tex.texture->atomic_fetch_min(uint2(coord.xy), uint(coord.z), data); + return tex.texture->atomic_fetch_min(uint2(coord.xy), uint(coord.z), vec(data)).x; } template -vec _texture_image_atomic_min_internal(thread _mtl_combined_image_sampler_3d tex, +S _texture_image_atomic_min_internal(thread _mtl_combined_image_sampler_3d tex, int3 coord, - vec data) + S data) { - return tex.texture->atomic_fetch_min(uint3(coord), data); + return tex.texture->atomic_fetch_min(uint3(coord), vec(data)).x; } /* Atomic Exchange. */ -template -vec _texture_image_atomic_exchange_internal(thread _mtl_combined_image_sampler_1d tex, +template +S _texture_image_atomic_exchange_internal(thread _mtl_combined_image_sampler_1d tex, int coord, - vec data) + S data) { - return tex.texture->atomic_exchange(uint(coord), data); + return tex.texture->atomic_exchange(uint(coord), vec(data)).x; } template @@ -1038,31 +1038,31 @@ S _texture_image_atomic_exchange_internal(thread _mtl_combined_image_sampler_1d_ int2 coord, S data) { - return tex.texture->atomic_exchange(uint(coord.x), uint(coord.y), data); + return tex.texture->atomic_exchange(uint(coord.x), uint(coord.y), vec(data)).x; } -template +template S _texture_image_atomic_exchange_internal(thread _mtl_combined_image_sampler_2d tex, int2 coord, S data) { - return tex.texture->atomic_exchange(uint2(coord.xy), data); + return tex.texture->atomic_exchange(uint2(coord.xy), vec(data)).x; } -template +template S _texture_image_atomic_exchange_internal(thread _mtl_combined_image_sampler_2d_array tex, int3 coord, S data) { - return tex.texture->atomic_exchange(uint2(coord.xy), uint(coord.z), data); + return tex.texture->atomic_exchange(uint2(coord.xy), uint(coord.z), vec(data)).x; } -template +template S _texture_image_atomic_exchange_internal(thread _mtl_combined_image_sampler_3d tex, int3 coord, S data) { - return tex.texture->atomic_exchange(uint3(coord), data); + return tex.texture->atomic_exchange(uint3(coord), vec(data)).x; } #else