vkd3d-shader/glsl: Implement VKD3DSIH_EQO.

This commit is contained in:
Henri Verbeet 2024-09-30 00:03:15 +02:00
parent 565698711b
commit 79455041f0
Notes: Henri Verbeet 2024-10-07 17:53:05 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1145
2 changed files with 2 additions and 1 deletions

View File

@ -1079,6 +1079,7 @@ static void vkd3d_glsl_handle_instruction(struct vkd3d_glsl_generator *gen,
case VKD3DSIH_ENDIF: case VKD3DSIH_ENDIF:
shader_glsl_endif(gen); shader_glsl_endif(gen);
break; break;
case VKD3DSIH_EQO:
case VKD3DSIH_IEQ: case VKD3DSIH_IEQ:
shader_glsl_relop(gen, ins, "==", "equal"); shader_glsl_relop(gen, ins, "==", "equal");
break; break;

View File

@ -55,7 +55,7 @@ float4 main() : sv_target
[test] [test]
uniform 0 float4 0.0 1.5 1.5 0.0 uniform 0 float4 0.0 1.5 1.5 0.0
todo(glsl) draw quad draw quad
% SM1-3 apparently treats '0/0' as zero. % SM1-3 apparently treats '0/0' as zero.
if(sm<4) todo probe (0,0) rgba (1010101.0, 11001100.0, 1101001.0, 11.0) if(sm<4) todo probe (0,0) rgba (1010101.0, 11001100.0, 1101001.0, 11.0)
% SM4-5 optimises away the 'not' by inverting the condition, even though this is invalid for NaN. % SM4-5 optimises away the 'not' by inverting the condition, even though this is invalid for NaN.