Henrik Rydgard
0b1cfaf751
Be more economical with UBO pushbuffer space by reusing the last data when possible.
2016-03-20 19:35:31 +01:00
Henrik Rydgard
a995dd2ff4
Get rid of strange offset in Vulkan matrix converter
2016-03-20 19:31:02 +01:00
Unknown W. Brackets
944a1f380b
Disable alpha test optimization with logic ops.
...
We still need to discard the pixels in the case of a logic op, like
invert. Otherwise we will invert the blended pixels too.
See #8632 .
2016-03-12 09:27:18 -08:00
Henrik Rydgard
58b07e00d7
Assorted fixes and cleanups.
2016-03-06 11:46:41 -08:00
Unknown W. Brackets
6b9b00aa16
Assume DUALSOURCE replace alpha means supported.
...
We already check supports when generating this value, don't need to check
again when using it.
2016-03-05 17:18:04 -08:00
Unknown W. Brackets
8b51bc5b0b
Fix debugging and depth packing with old depth.
...
Which means, OpenGL in general right now.
2016-02-07 22:42:47 -08:00
Unknown W. Brackets
f1c06d25ea
Switch to old-style depth in OpenGL.
...
Some devices really aren't handling the new method well. There seem to be
accuracy problems when specifying the values to OpenGL.
2016-02-06 20:21:14 -08:00
Unknown W. Brackets
87b75235e7
Improve depth accuracy a bit in 16-bit slice mode.
2016-02-06 20:02:18 -08:00
Victor Xie
dc32805256
Made commit 0920f6c
a little more robust.
...
Eliminated division-by-zero when depth range is zero.
2016-02-01 13:17:15 +08:00
Unknown W. Brackets
79750ed1ad
Add a config setting to control depth quality.
...
For those who want 1x PSP like behavior.
2016-01-20 22:11:00 -08:00
Henrik Rydgård
4c8384aa09
Merge pull request #8461 from unknownbrackets/gpu-depth
...
Swap depth range to use minz/maxz
2016-01-20 10:19:51 +01:00
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