mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d-shader: Implement global resource memory barriers.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
committed by
Alexandre Julliard
parent
c2c092b143
commit
16aceacc0c
@ -8866,6 +8866,13 @@ static void vkd3d_dxbc_compiler_emit_sync(struct vkd3d_dxbc_compiler *compiler,
|
|||||||
flags &= ~VKD3DSSF_THREAD_GROUP;
|
flags &= ~VKD3DSSF_THREAD_GROUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (flags & VKD3DSSF_GLOBAL_UAV)
|
||||||
|
{
|
||||||
|
memory_scope = SpvScopeDevice;
|
||||||
|
memory_semantics |= SpvMemorySemanticsImageMemoryMask;
|
||||||
|
flags &= ~VKD3DSSF_GLOBAL_UAV;
|
||||||
|
}
|
||||||
|
|
||||||
if (flags)
|
if (flags)
|
||||||
{
|
{
|
||||||
FIXME("Unhandled sync flags %#x.\n", flags);
|
FIXME("Unhandled sync flags %#x.\n", flags);
|
||||||
|
@ -368,6 +368,11 @@ static void shader_dump_global_flags(struct vkd3d_string_buffer *buffer, DWORD g
|
|||||||
|
|
||||||
static void shader_dump_sync_flags(struct vkd3d_string_buffer *buffer, DWORD sync_flags)
|
static void shader_dump_sync_flags(struct vkd3d_string_buffer *buffer, DWORD sync_flags)
|
||||||
{
|
{
|
||||||
|
if (sync_flags & VKD3DSSF_GLOBAL_UAV)
|
||||||
|
{
|
||||||
|
shader_addline(buffer, "_uglobal");
|
||||||
|
sync_flags &= ~VKD3DSSF_GLOBAL_UAV;
|
||||||
|
}
|
||||||
if (sync_flags & VKD3DSSF_GROUP_SHARED_MEMORY)
|
if (sync_flags & VKD3DSSF_GROUP_SHARED_MEMORY)
|
||||||
{
|
{
|
||||||
shader_addline(buffer, "_g");
|
shader_addline(buffer, "_g");
|
||||||
|
@ -475,6 +475,7 @@ enum vkd3d_shader_sync_flags
|
|||||||
{
|
{
|
||||||
VKD3DSSF_THREAD_GROUP = 0x1,
|
VKD3DSSF_THREAD_GROUP = 0x1,
|
||||||
VKD3DSSF_GROUP_SHARED_MEMORY = 0x2,
|
VKD3DSSF_GROUP_SHARED_MEMORY = 0x2,
|
||||||
|
VKD3DSSF_GLOBAL_UAV = 0x8,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum vkd3d_shader_uav_flags
|
enum vkd3d_shader_uav_flags
|
||||||
|
Reference in New Issue
Block a user