diff --git a/libs/vkd3d-shader/glsl.c b/libs/vkd3d-shader/glsl.c index 3eb420306..0a91024a8 100644 --- a/libs/vkd3d-shader/glsl.c +++ b/libs/vkd3d-shader/glsl.c @@ -421,6 +421,9 @@ static void shader_glsl_print_src(struct vkd3d_string_buffer *buffer, struct vkd case VKD3DSPSM_ABS: vkd3d_string_buffer_printf(buffer, "abs(%s)", str->buffer); break; + case VKD3DSPSM_ABSNEG: + vkd3d_string_buffer_printf(buffer, "-abs(%s)", str->buffer); + break; default: vkd3d_string_buffer_printf(buffer, "(%s)", vsir_src->modifiers, str->buffer); diff --git a/tests/hlsl/abs.shader_test b/tests/hlsl/abs.shader_test index 5b2b8b510..79e003df8 100644 --- a/tests/hlsl/abs.shader_test +++ b/tests/hlsl/abs.shader_test @@ -82,5 +82,5 @@ f2201000 00000000 468e2080 c1000000 00000000 00000000 3e000001 53544154 [test] uniform 0 float4 1.0 -3.0 10.0 -100.0 -todo(msl | glsl) draw quad +todo(msl) draw quad probe (0, 0) rgba(-1.0, -3.0, -10.0, -100.0)