562 Commits
Author SHA1 Message Date
Unknown W. Brackets 095624867a d3d9: Enable GPU info in D3D9 reporting. 2016-02-13 09:51:09 -08:00
Unknown W. Brackets 271829c991 Consider depth blitting a slow framebuffer effect. 2016-02-10 21:02:19 -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 4ff78d3c55 d3d9: Use SSE at least for depth copies. 2016-01-31 09:00:00 -08:00
Unknown W. Brackets 623448f852 d3d9: Support blitting depth on frame switch.
Can be optimized more, but this makes Jeanne d'Arc work in D3D9 now.  Not
sure why it didn't work before.
2016-01-30 23:47:51 -08:00
Unknown W. Brackets e30ab95179 d3d9: Fix maxSeenV when not known.
And just make the code reused between both.  Fixes #8478.
2016-01-22 18:48:54 -08:00
Unknown W. Brackets 79792a3c38 d3d9: Account for half-pixel z offset. 2016-01-20 22:53:47 -08:00
Unknown W. Brackets 0443fbebd0 Add methods to download depth to PSP RAM. 2016-01-20 22:11:03 -08:00
Unknown W. Brackets 2916298695 gedbg: Add scaled 16-bit z support. 2016-01-20 22:11:02 -08:00
Unknown W. Brackets f9970dba94 d3d9: Respect per-pixel depth rounding.
Using the 16-bit depth range.
2016-01-20 22:11:01 -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
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 b40c3fd839 Use video format when uploading to framebuffers.
Expected to help Bounty Hound, #8392.
2016-01-17 12:57:27 -08:00
Unknown W. Brackets f60aef2e16 Add a more specific interface for video frames.
Since we know more about them.  No functional change yet.
2016-01-17 12:57:26 -08:00
Unknown W. Brackets 73bcf16612 Flush before loading the CLUT.
In case it's what was being rendered to.
2016-01-17 12:55:48 -08:00
Henrik Rydgard 332310c2d6 Remove redundant parameters 2016-01-17 20:33:21 +01:00
Henrik Rydgard c8b1064d20 GL Cleanup: No longer redundantly store the shader ID inside the shader objects 2016-01-17 20:33:14 +01:00
Henrik Rydgard 7e24801fc1 Specify which games need vertex depth rounding instead of which ones don't.
Vertex depth rounding is a not-fully-accurate hack, and most games are better off with the extra depth precision
of 24-bit Z than reducing it to a not-fully-accurate 16-bit. So let's only use it where necessary, like in Phantasy Star.

See issue #8187.
2016-01-16 11:31:27 +01:00
Unknown W. Brackets 00b57f6a16 Correct clamped depth offset.
Oops, forgot to fix this when I fixed the scale.  It's already for a
[-1, 1] range, and needs to be corrected for accordingly.

Fixes #8425, other depth issues in Phantasy Star Portable 2.
2016-01-16 00:18:25 -08:00
Henrik Rydgård d479990595 Merge pull request #8413 from hrydgard/framebuffer-remove-unused
Remove some unused functionality from the framebuffer managers
2016-01-10 23:47:29 +01:00
Unknown W. Brackets c6ffed6484 gedbg: Add mechanics to grab CLUT buffer. 2016-01-10 09:25:19 -08:00
Henrik Rydgard 88ed44189d Remove some unused functionality from the framebuffer managers 2016-01-10 14:59:27 +01:00
Unknown W. Brackets 2fc296a1fb gedbg: Format a few more cmds. 2016-01-07 22:42:20 -08:00
Unknown W. Brackets 909d477719 Support CLUTs at an x offset.
Used by Kurohyo 2.  Highly unlikely to be a mis-estimate within stride.
2016-01-05 00:02:58 -08:00
Unknown W. Brackets 19877144ba Avoid redownloading CLUT when reloaded.
In Brave Story, the game reloads the CLUT frequently, but doesn't actually
render to the CLUT that often.  It also switches between a few different
rendered CLUTs - so caching that we've downloaded is a HUGE win.

In case someone reading this message is interested, it actually renders
these CLUT tables from what appears to be a color wheel.  Crazy huh?
2016-01-04 22:21:33 -08:00
Unknown W. Brackets 28a07c70c6 Explicitly download rendered cluts.
This avoids triggering logic that tries to get the sizing right, or
optimize frequent copies.  CLUTs often get estimated wrong, so it's better
to copy just the correct range, always.
2016-01-04 21:29:03 -08:00
Unknown W. Brackets a6c64f74d1 Cleanup download process a bit more. 2016-01-04 20:51:43 -08:00
Unknown W. Brackets 4176ee241f Reuse more code between GPUs for download. 2016-01-04 20:40:07 -08:00
Unknown W. Brackets 36c8b043f3 d3d9: Fix CLUT4 optimization color creation.
Fixes #8385.
2016-01-04 07:36:47 -08:00
Henrik Rydgård f0812297a6 Merge pull request #8376 from unknownbrackets/gpu-depth
Correct universally for clamped depth range
2016-01-04 09:55:02 +01:00
Unknown W. Brackets 6cc69ed25f Factor out texture shader application.
This allows it to be reused between depal and indexed textures (second not
implemented yet.)
2016-01-03 23:50:49 -08:00
Unknown W. Brackets 14b350a5fe d3d9: Fix render-to-texture not working.
Broken by a copy/paste mistake in #7870 form OpenGL.
2016-01-03 23:44:43 -08:00
Unknown W. Brackets e427d09628 Determine scaleFactor once per frame.
This way, for auto, we can properly treat it like scaleFactor = 1 when the
resolution is small.
2016-01-03 23:06:15 -08:00
Unknown W. Brackets 7e54368998 Correct depth offset when clamped.
Of course, the scale is already half, so we just need to double for d3d9,
and not double for OpenGL of course.

Our offset is already in [0, 1] so we keep it.
2016-01-03 19:59:35 -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 18cdf9f352 Remove the depth range hack.
Ths removes the game-specific hack to workaround depth issues.
2016-01-03 12:05:59 -08:00
Unknown W. Brackets 2494176919 Remove incorrect CLUT4 optimization. 2016-01-02 13:20:30 -08:00
gmvbif f8f7dadba4 Delete fields from FrameBufferDX9 with the same names as in the FrameBufferCommon 2016-01-02 09:40:47 +03:00
Henrik Rydgård 8be22f47cd Merge pull request #8348 from unknownbrackets/texcache
Centralize code in the texture cache, minor cleanups
2016-01-01 17:55:41 +01:00
Henrik Rydgård 614eff1931 Merge pull request #8349 from unknownbrackets/d3d9-minor
Fix some Direct3D 9 validation errors
2016-01-01 11:14:23 +01: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 69daa75228 Move more common code around in texcache. 2015-12-31 11:41:02 -08:00
Unknown W. Brackets 41b00a9cab d3d9: Initialize viewport without errors. 2015-12-31 11:17:24 -08:00
Unknown W. Brackets b556472303 d3d9: Fix blitting coordinates. 2015-12-31 11:17:19 -08:00
Unknown W. Brackets 235881af1f d3d9: Avoid error when clearing temp FBOs. 2015-12-31 11:17:12 -08:00
Unknown W. Brackets a45f05c598 Move NotifyFramebuffer and LoadClut to common code. 2015-12-31 11:13:39 -08:00
Henrik Rydgård 337f27d0d9 Merge pull request #8340 from unknownbrackets/texcache
Be forgiving when maxSeenV increases
2015-12-31 09:43:18 +01:00
Unknown W. Brackets 5806df07b4 Handle disabled display cleanly.
Otherwise we might accidentally match a vfb at 0.

Fixes #6317.
2015-12-30 17:44:32 -08:00