vkd3d-shader/glsl: Wrap gl_GlobalInvocationID in an uvec4.

Callers to shader_glsl_print_register_name() expect this. In particular, this
fixes translation of instructions such as

    store_uav_typed u0.xyzw, vThreadID.xyxx, l(2.00000000e+00)

which is currently translated as the invalid

    imageStore(cs_image_0, ivec4(gl_GlobalInvocationID).xy, vec4(uintBitsToFloat(0x40000000u), 0, 0, 0));
This commit is contained in:
Elizabeth Figura
2025-03-10 17:28:01 -05:00
committed by Henri Verbeet
parent 0bb8272f26
commit cfe51e84df
Notes: Henri Verbeet 2025-10-13 19:32:05 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1772

View File

@@ -280,7 +280,7 @@ static void shader_glsl_print_register_name(struct vkd3d_string_buffer *buffer,
break;
case VKD3DSPR_THREADID:
vkd3d_string_buffer_printf(buffer, "gl_GlobalInvocationID");
vkd3d_string_buffer_printf(buffer, "uvec4(gl_GlobalInvocationID, 0)");
break;
case VKD3DSPR_IDXTEMP: