Commit Graph
2613 Commits
Author SHA1 Message Date
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
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 79263a73e5 Correct invalid enum error in GE debugger. 2016-01-03 15:11:19 -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
Henrik Rydgård 5bd72ea268 Merge pull request #8347 from hrydgard/graphics-context
Graphics context
2016-01-03 18:54:58 +01:00
Henrik Rydgård 5037cd15e1 Merge pull request #8368 from unknownbrackets/texcache
Correct use of maxV when not yet detected
2016-01-03 09:46:32 +01:00
Unknown W. Brackets 35d1379ac6 Don't use maxV when it's 0.
That means we couldn't tell.  Fixes #8353.
2016-01-02 17:46:28 -08:00
Unknown W. Brackets 9cce9f09b5 Fix postshader uniform update when resizing.
All that was happening was the uniforms weren't updating properly for one
frame.  Also, errors when switching to no shader on resize too.

Fixes #8364.
2016-01-02 14:27:02 -08:00
Unknown W. Brackets 2494176919 Remove incorrect CLUT4 optimization. 2016-01-02 13:20:30 -08: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 Rydgard 15de6e6b98 GraphicsContext: Abstract away things like swapbuffers etc before adding even more backends.
Needed to prevent clutter all over the codebase.

Does not go all the way yet, goal would be a common render loop between platforms but not there yet.
2016-01-01 14:40:16 +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 256c7b6271 Consistently use INVALID_TEX. 2015-12-31 11:13:41 -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
Unknown W. Brackets 7a864f5aa1 Be forgiving when maxSeenV increases.
This still allows us to optimize < 512 heights, but at the same time,
doesn't hit spritesheets as hard and avoids the scaling penalty.
2015-12-30 17:15:50 -08:00
Unknown W. Brackets d18164bd4d d3d9: Clean up some scaling handling. 2015-12-30 16:54:25 -08:00
Unknown W. Brackets 1072028ef5 Fix scaling of NOT frequently changing textures.
Oops.  Sorry.
2015-12-30 16:38:07 -08:00
Unknown W. Brackets e3e8fbf7ce Correct bufw handling when texture is unscaled. 2015-12-30 16:26:39 -08:00
Henrik Rydgård 37cfea0fdc Merge pull request #8338 from unknownbrackets/xbrz
Update xBRZ to 1.4 and improve scaling/caching limits
2015-12-30 23:11:30 +01:00
Unknown W. Brackets f32e4bc3c9 Regain frequently changing texture trust faster.
This allows us to start scaling it again sooner, if it stops changing
frequently.
2015-12-30 13:49:53 -08:00
Unknown W. Brackets 1f5813dd82 Mark frequently, but known, changed textures.
We don't have to rehash these, but they still may be too slow to upscale.
May help #6031.
2015-12-30 13:31:16 -08:00
Unknown W. Brackets 6856fbbef7 Show an OSM whenever VRAM fills up.
This way they know stuff is happening that is not ideal.
2015-12-30 13:29:29 -08:00
Unknown W. Brackets 6129af9b4a Reduce tex scaling automatically if VRAM is full. 2015-12-30 13:23:05 -08:00
Henrik Rydgård 716d7a38f5 Merge pull request #8292 from unknownbrackets/opengl-core
Improve VAO core profile performance
2015-12-30 22:03:04 +01:00