Commit graph

74 commits

Author SHA1 Message Date
Unknown W. Brackets
02bf70a2d0 Where possible, rewrite 5551 stencil ops too.
We can in most cases fix INVERT, and also INCR so INVERT works when we
can't fix it.

Fixes #8422.
2016-01-19 23:17:58 -08:00
Unknown W. Brackets
e00c9940e8 Correct pixel depth rounding. 2016-01-19 20:19:50 -08:00
Unknown W. Brackets
5de7d2cf8f Oops, correctly center depth. 2016-01-19 07:51:56 -08:00
Unknown W. Brackets
6ef97f72d2 gedbg: Show scaled depth values properly. 2016-01-19 07:23:06 -08:00
Unknown W. Brackets
b80c02c272 Simulate depth clamping.
We'll allow extra space in both directions.  It's not exactly right, but
it's a fast approximation.
2016-01-19 07:12:58 -08:00
Unknown W. Brackets
0920f6c6eb Use minz/maxz as the depth range.
This allows values that fall outside the viewport, but still within the
depth range, to be drawn.
2016-01-19 07:12:57 -08:00
Unknown W. Brackets
d1b3768e49 Use a common func everywhere for float depth vals. 2016-01-18 19:29:45 -08:00
Unknown W. Brackets
0828721bc2 Simplify depth calculation a bit.
This way we keep the original range better, so we should lose less
precision.
2016-01-17 18:30:58 -08:00
Unknown W. Brackets
3aead9584b Oops, fix typo causing clamping to clamp wrong. 2016-01-03 19:59:59 -08:00
Unknown W. Brackets
529abd7db4 Correct clamped depth range from [0, 65535].
This changes a few things:
 * All backends clamp the depth range and keep it positive.
 * The depth rounding uniform is now properly dirtied.
 * Projection is updated to translate and scale appropriately.
 * Depth rounding is halved on OpenGL to account for [-1, 1] range.

Fixes Phantasy Star Portable 2 without the need for a game-specific hack.
2016-01-03 12:29:43 -08:00
Unknown W. Brackets
fd2e302a66 When possible, replace 5551 stencil with 0xFF. 2015-12-31 17:16:41 -08:00
Unknown W. Brackets
e1599821ea Split out the 5551 logic to be clearer. 2015-12-31 17:12:12 -08:00
Unknown W. Brackets
64a34a6d92 Handle masking correctly for 5551 stencil rewrite. 2015-12-31 17:01:08 -08:00
Unknown W. Brackets
c31a8f860b Adjust stencil ops for 5551 and 565 buffers.
This attempts to better approximate the operations that actually happen,
where possible.  Expected to help #5278.
2015-12-31 17:01:03 -08:00
Unknown W. Brackets
c22953a4b9 Treat invalid blend factors as fixed consistently. 2015-11-19 06:48:06 -08:00
Unknown W. Brackets
eb5072bba5 Warning fixes. 2015-11-18 21:56:05 -08:00
Unknown W. Brackets
bf7f07f918 Optimize inverse blending modes, where possible.
Also, take advantage of cases where we can double src and src.a in the
shader, which can in some cases get us closer to accurate.
2015-11-14 12:37:32 -08:00
Henrik Rydgard
fadb19acc6 Remove a very minor difference between the backends in state mapping 2015-11-14 09:56:36 +01:00
Unknown W. Brackets
13a09647e2 d3d9: Disable shader blending, not implemented.
Fixes bad graphics in Ridge Racer, etc.
2015-11-13 23:11:06 -08:00
Henrik Rydgard
df94914a63 D3D: No need to convert blendcolor to float and back
Fix bug with constantAlpha

Remove misleading comment, thanks unknown
2015-11-12 18:11:23 +01:00
Henrik Rydgard
4a71d4cda2 The ConvertBlendState machinery is now pure, so move it out to GPU/Common 2015-11-12 18:11:20 +01:00
Henrik Rydgard
a6ced1d0b4 Move viewport/stencil conversion out into GPUStateUtils.cpp, use it in D3D as well.
D3D bugfixes. Not perfect yet.
2015-11-09 21:21:54 +01:00
Unknown W. Brackets
2b832e7f6c Zero out dst blend factors in 565. 2015-11-04 00:35:55 -08:00
Henrik Rydgard
edafa9bc17 Centralize the GPU state conversion functions 2015-10-24 23:49:05 +02:00