Module: wine Branch: master Commit: 28285f1e76980412cfb40cfa81174ca441e9b5c2 URL: https://source.winehq.org/git/wine.git/?a=commit;h=28285f1e76980412cfb40cfa8... Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Wed Feb 9 20:27:35 2022 -0600 wined3d: Set resource->client.addr in buffer_resource_sub_resource_map() only if persistently mapping. Be consistent with wined3d_cs_map_upload_bo(). This may change in the future, but for now we depend on this logic in the Vulkan backend. This fixes test_dynamic_map_synchronization() on 32-bit architectures with the Vulkan backend, which is currently broken because we try to perform accelerated NOOVERWRITE maps while unmapping the same BOs. Fixes: d8e8ab21c0f9f00d295c035534637115a5d70f9f Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wined3d/buffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index 2f3b5fd316e..a06bfb984ad 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -1002,7 +1002,8 @@ static HRESULT buffer_resource_sub_resource_map(struct wined3d_resource *resourc * but it's safe because the client thread will wait for the * map to return, thus completely serializing this call with * other client code. */ - buffer->resource.client.addr = addr; + if (wined3d_map_persistent()) + buffer->resource.client.addr = addr; if (((DWORD_PTR)buffer->map_ptr) & (RESOURCE_ALIGNMENT - 1)) {