Next rebase will need a small tweak:
```diff diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index f9896ecb..ed248cf8 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -5299,7 +5299,7 @@ discard_statement:
if (!($$ = make_empty_list(ctx))) YYABORT; - if (!(discard = hlsl_new_jump(ctx, HLSL_IR_JUMP_DISCARD, @1))) + if (!(discard = hlsl_new_jump(ctx, HLSL_IR_JUMP_DISCARD, &@1))) return false; list_add_tail($$, &discard->node.entry); } ```
This patchset rebased against main still works with my own local tests (FEZ, TMNT), however I couldn't get the unit test to pass locally; even the "9 8 7 6" test I posted earlier doesn't seem to work and I'm not 100% sure why... even when copying the `any()` test that MojoShader uses the probe returns the second float4 value, but replacing the discard statement with a return statement _does_ work, so it's definitely something involving the discard statement specifically.