Commit Graph
3990 Commits
Author SHA1 Message Date
Unknown W. Brackets eab0278af4 Fallback to per-vertex depth rounding on GLES2.
Instead of not-working 24->16 now that it's disabled.
2016-02-06 20:42:01 -08:00
Unknown W. Brackets 0e85225e29 Bring back the depth range hack. 2016-02-06 20:28:45 -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
Henrik Rydgard 82ed16fbfd Make sure we detect ES 3.0 the same way in both vertex and fragment shaders 2016-01-23 16:57:24 +01: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
Henrik Rydgård cd35684a46 Merge pull request #8454 from unknownbrackets/gpu-depth-round
Add pixel depth rounding to d3d9, gles2 and support forcing via config
2016-01-21 09:41:26 +01:00
Henrik Rydgård 24cad4cab5 Merge pull request #8468 from unknownbrackets/minor
Add a small assert and some warning fixes
2016-01-21 09:40:32 +01:00
Unknown W. Brackets 9354e253bd Fix some warnings in shader cache read.
In case something gets truncated.
2016-01-21 00:24:45 -08:00
Unknown W. Brackets 597596884e Add a smart C FILE * helper.
When all you want is for it to close by itself on error.
2016-01-20 23:33:56 -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 27dba51e70 Add fallbacks where low quality depth is required.
Even on GLES2, this should work.  Also check the depth before applying
rounding - we might even already be 24-bit.
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 57aa864c0c Blit depth when current, not max, size matches.
This is really what was implemented originally, this code was just not
updated to match when we started resizing framebuffers.

Fixes #6497.
2016-01-20 21:35:19 -08:00
Unknown W. Brackets e00c9940e8 Correct pixel depth rounding. 2016-01-19 20:19:50 -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 6d6c415f2b Merge pull request #8443 from hrydgard/pseudo-shader-cache-gl-2
GL shader disk cache .. kind of
2016-01-17 14:28:05 -08:00
Henrik Rydgard 6df8573583 Minor fixes 2016-01-17 22:53:06 +01:00
Henrik Rydgard b39206f922 Use the app cache directory on Android for the shader cache. 2016-01-17 22:15:23 +01: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 e92beb619c Disable the shader cache for homebrew and other things that lack disc_id 2016-01-17 21:35:46 +01:00
Henrik Rydgard dfcfb530d7 Log how long it takes to compile shaders at the start. 2016-01-17 20:53:58 +01:00
Henrik Rydgard 5cd5812239 Handle shader compile errors gracefully when loading shader cache. 2016-01-17 20:44:52 +01:00
Henrik Rydgard b246442374 Hook up GL shader cache. Cache linked shader programs. 2016-01-17 20:44:51 +01:00
Henrik Rydgard 790210f6ef Minor fixes 2016-01-17 20:33:22 +01:00
Henrik Rydgard 36e1840ea0 More parameter removal 2016-01-17 20:33:22 +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 98c779ccb8 Fix #8255 by swapping the two portrait modes.
Thanks unknown.
2016-01-17 11:03:34 +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
Henrik Rydgard 1ab4d0eb69 Also remove now-unused shader code 2016-01-10 23:46:20 +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 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 095d8cb52a Avoid download/conv of full rows.
Sometimes we don't need the full width, such as when we're downloading a
CLUT.  In Brave Story, the CLUTs overlap in detected width, so this is a
real improvement.
2016-01-04 22:20:12 -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 4e088aebb7 Discard blit buffer contents before blit.
This way the GPU doesn't think it needs to load anything, it's all being
overwritten.  If we're only using part of the framebuffer, the other parts
don't matter.
2016-01-04 20:57:54 -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
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
Henrik Rydgård f0e19c993d Merge pull request #8377 from unknownbrackets/minor
Improve some ifdef usage, minor GL error fix
2016-01-04 09:44:34 +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 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