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