vkd3d-shader/glsl: Implement VKD3DSIH_FTOI.

This commit is contained in:
Henri Verbeet 2024-05-01 13:52:14 +02:00
parent b81cdcb488
commit a3d06c8f12
Notes: Henri Verbeet 2024-09-24 14:10:34 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1106
2 changed files with 8 additions and 2 deletions

View File

@ -379,6 +379,9 @@ static void VKD3D_PRINTF_FUNC(3, 4) shader_glsl_print_assignment(
case VKD3D_DATA_FLOAT:
close = false;
break;
case VKD3D_DATA_INT:
vkd3d_string_buffer_printf(buffer, "intBitsToFloat(");
break;
case VKD3D_DATA_UINT:
vkd3d_string_buffer_printf(buffer, "uintBitsToFloat(");
break;
@ -680,6 +683,9 @@ static void vkd3d_glsl_handle_instruction(struct vkd3d_glsl_generator *gen,
case VKD3DSIH_FRC:
shader_glsl_intrinsic(gen, ins, "fract");
break;
case VKD3DSIH_FTOI:
shader_glsl_cast(gen, ins, "int", "ivec");
break;
case VKD3DSIH_GEO:
shader_glsl_relop(gen, ins, ">=", "greaterThanEqual");
break;

View File

@ -10,7 +10,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 10.3 11.5 12.8 13.1
todo(glsl) draw quad
draw quad
probe (0, 0) rgba (10, 11, 12, 0)
@ -40,7 +40,7 @@ if(sm>=4) uniform 0 float 2.6
if(sm>=4) uniform 1 int -2
if(sm>=4) uniform 2 int -2
if(sm>=4) uniform 3 float -3.6
todo(sm<4 | glsl) draw quad
todo(sm<4) draw quad
probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5)