vkd3d-shader/hlsl: Emit a hlsl_fixme() for unhandled instruction types when writing bytecode.

This was originally left alone in order to allow functions without early return
to succeed, since in that case we would already emit the correct bytecode
despite not handling the HLSL_IR_JUMP_RETURN instruction.

Now that we lower return statements, however, any unhandled instructions are
either definitely going to result in invalid bytecode, or rare enough that it's
not worth returning success anyway.
This commit is contained in:
Zebediah Figura 2023-02-09 15:26:04 -06:00 committed by Alexandre Julliard
parent 8bdee6681b
commit 6177cea31f
Notes: Alexandre Julliard 2023-02-13 22:20:34 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Francisco Casas (@fcasas)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/85
3 changed files with 8 additions and 8 deletions

View File

@ -919,7 +919,7 @@ static void write_sm1_instructions(struct hlsl_ctx *ctx, struct vkd3d_bytecode_b
break;
default:
FIXME("Unhandled instruction type %s.\n", hlsl_node_type_to_string(instr->type));
hlsl_fixme(ctx, &instr->loc, "Instruction type %s.", hlsl_node_type_to_string(instr->type));
}
}
}

View File

@ -2401,7 +2401,7 @@ static void write_sm4_block(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *
break;
default:
FIXME("Unhandled instruction type %s.\n", hlsl_node_type_to_string(instr->type));
hlsl_fixme(ctx, &instr->loc, "Instruction type %s.", hlsl_node_type_to_string(instr->type));
}
}
}

View File

@ -146,7 +146,7 @@ void main(out float4 ret : sv_target)
todo draw quad
todo probe all rgba (0.2, 0.4, 0.6, 0.8)
[pixel shader]
[pixel shader todo]
uniform float f;
@ -166,23 +166,23 @@ void main(out float4 ret : sv_target)
[test]
uniform 0 float 0.0
draw quad
todo draw quad
todo probe all rgba (0.1, 0.1, 0.1, 0.1) 1
uniform 0 float 0.1
draw quad
todo draw quad
todo probe all rgba (0.2, 0.2, 0.2, 0.2) 1
uniform 0 float 0.3
draw quad
todo draw quad
todo probe all rgba (0.4, 0.4, 0.4, 0.4) 1
uniform 0 float 0.7
draw quad
todo draw quad
todo probe all rgba (0.8, 0.8, 0.8, 0.8) 1
uniform 0 float 0.9
draw quad
todo draw quad
todo probe all rgba (0.9, 0.9, 0.9, 0.9) 1
[pixel shader todo]