mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/hlsl: Implement the InterlockedCompareExchange() intrinsic.
This commit is contained in:
Notes:
Henri Verbeet
2025-01-20 16:18:51 +01:00
Approved-by: Henri Verbeet (@hverbeet) Approved-by: Elizabeth Figura (@zfigura) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1330
@@ -3508,6 +3508,7 @@ static void dump_ir_interlocked(struct vkd3d_string_buffer *buffer, const struct
|
||||
{
|
||||
[HLSL_INTERLOCKED_ADD] = "add",
|
||||
[HLSL_INTERLOCKED_AND] = "and",
|
||||
[HLSL_INTERLOCKED_CMP_EXCH] = "cmp_exch",
|
||||
};
|
||||
|
||||
VKD3D_ASSERT(interlocked->op < ARRAY_SIZE(op_names));
|
||||
@@ -3515,6 +3516,11 @@ static void dump_ir_interlocked(struct vkd3d_string_buffer *buffer, const struct
|
||||
dump_deref(buffer, &interlocked->dst);
|
||||
vkd3d_string_buffer_printf(buffer, ", coords = ");
|
||||
dump_src(buffer, &interlocked->coords);
|
||||
if (interlocked->cmp_value.node)
|
||||
{
|
||||
vkd3d_string_buffer_printf(buffer, ", cmp_value = ");
|
||||
dump_src(buffer, &interlocked->cmp_value);
|
||||
}
|
||||
vkd3d_string_buffer_printf(buffer, ", value = ");
|
||||
dump_src(buffer, &interlocked->value);
|
||||
vkd3d_string_buffer_printf(buffer, ")");
|
||||
|
Reference in New Issue
Block a user