diff options
author | Axel Davy <[email protected]> | 2016-02-09 23:15:21 +0100 |
---|---|---|
committer | Axel Davy <[email protected]> | 2016-05-18 23:37:14 +0200 |
commit | 44068af92e7500a63425905fc7a3a6a0db5c665a (patch) | |
tree | 3d91bc64938b12b8a551cb3ac67d6334c8866a1e | |
parent | a77d8cd710ec5091e9c31167032427189ae77437 (diff) |
st/nine: Fix some shader failures not triggering error
Some failures during shader translation would not
raise errors before this patch.
Signed-off-by: Axel Davy <[email protected]>
-rw-r--r-- | src/gallium/state_trackers/nine/nine_shader.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/nine/nine_shader.c b/src/gallium/state_trackers/nine/nine_shader.c index 4698fd77e97..a9d5a59d68a 100644 --- a/src/gallium/state_trackers/nine/nine_shader.c +++ b/src/gallium/state_trackers/nine/nine_shader.c @@ -3116,6 +3116,7 @@ static void sm1_parse_instruction(struct shader_translator *tx) { struct sm1_instruction *insn = &tx->insn; + HRESULT hr; DWORD tok; struct sm1_op_info *info = NULL; unsigned i; @@ -3180,11 +3181,13 @@ sm1_parse_instruction(struct shader_translator *tx) sm1_instruction_check(insn); if (info->handler) - info->handler(tx); + hr = info->handler(tx); else - NineTranslateInstruction_Generic(tx); + hr = NineTranslateInstruction_Generic(tx); tx_apply_dst0_modifiers(tx); + if (hr != D3D_OK) + tx->failure = TRUE; tx->num_scratch = 0; /* reset */ TOKEN_JUMP(tx); |