diff options
author | Axel Davy <[email protected]> | 2015-05-14 01:27:33 +0200 |
---|---|---|
committer | Axel Davy <[email protected]> | 2015-08-21 22:21:48 +0200 |
commit | 4a00e4cdc970582df338ebf880168a4ef4ec05d9 (patch) | |
tree | 723eb1477cdae122d7a9b02a82256ca948bf5db1 /src/gallium/state_trackers/nine/pixelshader9.h | |
parent | b7261528ea964f6cba3173f72608c1afc0750d6b (diff) |
st/nine: Programmable ps D3DTTSS_PROJECTED support
The implementation used Wine tests for conformance
Signed-off-by: Axel Davy <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/nine/pixelshader9.h')
-rw-r--r-- | src/gallium/state_trackers/nine/pixelshader9.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/nine/pixelshader9.h b/src/gallium/state_trackers/nine/pixelshader9.h index 5d1f5041c47..e09009f6621 100644 --- a/src/gallium/state_trackers/nine/pixelshader9.h +++ b/src/gallium/state_trackers/nine/pixelshader9.h @@ -27,6 +27,7 @@ #include "nine_shader.h" #include "nine_state.h" #include "basetexture9.h" +#include "nine_ff.h" struct nine_lconstf; @@ -67,6 +68,7 @@ NinePixelShader9_UpdateKey( struct NinePixelShader9 *ps, { uint16_t samplers_shadow; uint32_t samplers_ps1_types; + uint16_t projected; uint64_t key; BOOL res; @@ -90,6 +92,11 @@ NinePixelShader9_UpdateKey( struct NinePixelShader9 *ps, key |= ((uint64_t)state->rs[D3DRS_FOGTABLEMODE]) << 33; } + if (unlikely(ps->byte_code.version < 0x14)) { + projected = nine_ff_get_projected_key(state); + key |= ((uint64_t) projected) << 48; + } + res = ps->last_key != key; if (res) ps->next_key = key; |