From b006a2c67b792fb628d239ba602d9bd163b27ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Fri, 13 Dec 2024 15:04:50 +0100 Subject: [PATCH] Fix: EEVEE: ASAN memcpy-param-overlap when reading float3 passes Using a temporary variable fixes the issue. --- source/blender/draw/engines/eevee_next/eevee_film.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/draw/engines/eevee_next/eevee_film.cc b/source/blender/draw/engines/eevee_next/eevee_film.cc index d6f5000cc6d..834070bc4b1 100644 --- a/source/blender/draw/engines/eevee_next/eevee_film.cc +++ b/source/blender/draw/engines/eevee_next/eevee_film.cc @@ -847,7 +847,8 @@ float *Film::read_pass(eViewLayerEEVEEPassType pass_type, int layer_offset) if (pass_is_float3(pass_type)) { /* Convert result in place as we cannot do this conversion on GPU. */ for (const int px : IndexRange(GPU_texture_width(pass_tx) * GPU_texture_height(pass_tx))) { - *(reinterpret_cast(result) + px) = *(reinterpret_cast(result + px * 4)); + float3 tmp = *(reinterpret_cast(result + px * 4)); + *(reinterpret_cast(result) + px) = tmp; } }