vkd3d-shader/ir: Lower ABS modifiers to instructions.

This commit is contained in:
Giovanni Mascellani
2025-10-07 12:58:22 +02:00
committed by Henri Verbeet
parent c522db8ce8
commit 112bbbb161
Notes: Henri Verbeet 2025-10-08 13:50:41 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1773
4 changed files with 66 additions and 9 deletions

View File

@@ -426,9 +426,6 @@ static void shader_glsl_print_src(struct vkd3d_string_buffer *buffer, struct vkd
case VKD3DSPSM_NEG:
vkd3d_string_buffer_printf(buffer, "-%s", str->buffer);
break;
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;
@@ -1485,6 +1482,9 @@ static void vkd3d_glsl_handle_instruction(struct vkd3d_glsl_generator *gen,
switch (ins->opcode)
{
case VSIR_OP_ABS:
shader_glsl_intrinsic(gen, ins, "abs");
break;
case VSIR_OP_ADD:
case VSIR_OP_IADD:
shader_glsl_binop(gen, ins, "+");