diff options
author | Jan Zielinski <[email protected]> | 2020-02-27 17:22:05 +0100 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-03-03 17:50:25 +0000 |
commit | 18675363a35e98e6afa39c77b983ca6f383bfc00 (patch) | |
tree | 658dfe34c08c9069375806aa9340c19c4c35953f /src/gallium/auxiliary | |
parent | 0ab5c88a0ac0dacac085c17bef23c9c67eaf9e86 (diff) |
gallium/swr: fix corruptions in Unigine Heaven
Few changes to fix the last corruptions in Heaven:
- fix indirect TCS input when vertex/attribute
index is not the same for each patch
- use the correct functions to build loops in shader
- fix using vmask for writting TCS output
Reviewed-by: Krzysztof Raszkowski <[email protected]>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3980>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3980>
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_ir_common.h | 8 | ||||
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_logic.h | 7 | ||||
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | 3 |
3 files changed, 17 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_ir_common.h b/src/gallium/auxiliary/gallivm/lp_bld_ir_common.h index 34c09193936..ebcf9a21b26 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_ir_common.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_ir_common.h @@ -29,6 +29,10 @@ #ifndef LP_BLD_IR_COMMON_H #define LP_BLD_IR_COMMON_H +#ifdef __cplusplus +extern "C" { +#endif + #include "gallivm/lp_bld.h" #include "gallivm/lp_bld_limits.h" @@ -117,4 +121,8 @@ void lp_exec_continue(struct lp_exec_mask *mask); void lp_exec_break(struct lp_exec_mask *mask, int *pc, bool break_always); +#ifdef __cplusplus +} +#endif + #endif diff --git a/src/gallium/auxiliary/gallivm/lp_bld_logic.h b/src/gallium/auxiliary/gallivm/lp_bld_logic.h index 00fb0268dd6..b8bbfb2bf13 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_logic.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_logic.h @@ -36,6 +36,9 @@ #ifndef LP_BLD_LOGIC_H #define LP_BLD_LOGIC_H +#ifdef __cplusplus +extern "C" { +#endif #include "gallivm/lp_bld.h" @@ -94,4 +97,8 @@ lp_build_any_true_range(struct lp_build_context *bld, unsigned real_length, LLVMValueRef val); +#ifdef __cplusplus +} +#endif + #endif /* !LP_BLD_LOGIC_H */ diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c index 2586830bb46..0ab1aa1fe02 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c @@ -1764,7 +1764,8 @@ emit_store_tcs_output(struct lp_build_tgsi_context *bld_base, reg->Register.Indirect, attrib_index, channel_index, - value, NULL); + value, + mask_vec(bld_base)); } static void |