From 75676886e4dd43c1e9ab85891d1ab6b2bf1fad92 Mon Sep 17 00:00:00 2001 From: Axel Davy Date: Wed, 14 Jan 2015 12:41:16 +0100 Subject: st/nine: Implement ATOC hack ATOC is an hack for Alpha to coverage that is supported by NV and Intel. You need to check the support for it with CheckDeviceFormat. Reviewed-by: Tiziano Bacocco Signed-off-by: Axel Davy --- src/gallium/state_trackers/nine/device9.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/gallium/state_trackers/nine/device9.c') diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c index 63f9f16586e..46b4c5a6c44 100644 --- a/src/gallium/state_trackers/nine/device9.c +++ b/src/gallium/state_trackers/nine/device9.c @@ -2075,6 +2075,14 @@ NineDevice9_SetRenderState( struct NineDevice9 *This, } } + /* NV hack */ + if (State == D3DRS_ADAPTIVETESS_Y && + (Value == D3DFMT_ATOC || (Value == D3DFMT_UNKNOWN && state->rs[NINED3DRS_ALPHACOVERAGE]))) { + state->rs[NINED3DRS_ALPHACOVERAGE] = (Value == D3DFMT_ATOC); + state->changed.group |= NINE_STATE_BLEND; + return D3D_OK; + } + user_assert(State < Elements(state->rs), D3DERR_INVALIDCALL); if (likely(state->rs[State] != Value) || unlikely(This->is_recording)) { -- cgit v1.2.3