st/nine: Fix vertex declarations for non-standard (usage/index)
Nine code to match vertex declaration to vs inputs was limiting the number of possible combinations. Some sm3 games have issues with that, because arbitrary (usage/index) can be used. This patch does the following changes to fix the problem: . Change the numbers given to (usage/index) combinations to uint16 . Do not put limits on the indices when it doesn't make sense . change the conversion rule (usage/index) -> number to fit all combinations . Instead of having a table usage_map mapping a (usage/index) number to an input index, usage_map maps input indices to their (usage/index) Cc: "10.4" <mesa-stable@lists.freedesktop.org> Tested-by:Yaroslav Andrusyak <pontostroy@gmail.com> Acked-by:
Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by:
Axel Davy <axel.davy@ens.fr> (cherry picked from commit 712a4c54)
Showing
- src/gallium/state_trackers/nine/nine_defines.h 21 additions, 19 deletionssrc/gallium/state_trackers/nine/nine_defines.h
- src/gallium/state_trackers/nine/nine_ff.c 27 additions, 22 deletionssrc/gallium/state_trackers/nine/nine_ff.c
- src/gallium/state_trackers/nine/nine_shader.h 1 addition, 1 deletionsrc/gallium/state_trackers/nine/nine_shader.h
- src/gallium/state_trackers/nine/nine_state.c 11 additions, 5 deletionssrc/gallium/state_trackers/nine/nine_state.c
- src/gallium/state_trackers/nine/vertexdeclaration9.c 26 additions, 58 deletionssrc/gallium/state_trackers/nine/vertexdeclaration9.c
- src/gallium/state_trackers/nine/vertexdeclaration9.h 2 additions, 2 deletionssrc/gallium/state_trackers/nine/vertexdeclaration9.h
- src/gallium/state_trackers/nine/vertexshader9.h 1 addition, 1 deletionsrc/gallium/state_trackers/nine/vertexshader9.h
Loading
Please register or sign in to comment