Zebediah Figura : wined3d: Implement global resource memory barriers.
Module: wine Branch: master Commit: 387a63237d0e040c4e9f53b2bd3580671f832254 URL: https://source.winehq.org/git/wine.git/?a=commit;h=387a63237d0e040c4e9f53b2b... Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Mon Jan 25 14:58:18 2021 -0600 wined3d: Implement global resource memory barriers. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wined3d/glsl_shader.c | 6 ++++++ dlls/wined3d/shader.c | 5 +++++ dlls/wined3d/wined3d_private.h | 1 + 3 files changed, 12 insertions(+) diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 6ce9178c561..45eebcc2c20 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -5729,6 +5729,12 @@ static void shader_glsl_sync(const struct wined3d_shader_instruction *ins) sync_flags &= ~WINED3DSSF_GROUP_SHARED_MEMORY; } + if (sync_flags & WINED3DSSF_GLOBAL_UAV) + { + shader_addline(buffer, "memoryBarrier();\n"); + sync_flags &= ~WINED3DSSF_GLOBAL_UAV; + } + if (sync_flags) FIXME("Unhandled sync flags %#x.\n", sync_flags); } diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index 8843e6883fc..9052d217148 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -1910,6 +1910,11 @@ static void shader_dump_global_flags(struct wined3d_string_buffer *buffer, DWORD static void shader_dump_sync_flags(struct wined3d_string_buffer *buffer, DWORD sync_flags) { + if (sync_flags & WINED3DSSF_GLOBAL_UAV) + { + shader_addline(buffer, "_uglobal"); + sync_flags &= ~WINED3DSSF_GLOBAL_UAV; + } if (sync_flags & WINED3DSSF_GROUP_SHARED_MEMORY) { shader_addline(buffer, "_g"); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 119ce3af033..101c0287936 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -656,6 +656,7 @@ enum wined3d_shader_sync_flags { WINED3DSSF_THREAD_GROUP = 0x1, WINED3DSSF_GROUP_SHARED_MEMORY = 0x2, + WINED3DSSF_GLOBAL_UAV = 0x8, }; enum wined3d_shader_uav_flags
participants (1)
-
Alexandre Julliard