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
Unknown W. Brackets
bc4b503601
Check same depth / overlap for glCopyImageSubData.
...
Differing depths can happen with the blit that's used for the download
with GPU color conversion.
2015-12-30 10:27:18 -08:00
Unknown W. Brackets
842ff4000f
Skip CopyImageSubData when blit is outside FBO.
...
Otherwise, it will simply fail. See #7525 (comments in 2015-12.)
2015-12-28 22:23:07 -08:00
Unknown W. Brackets
c3a0c14f39
Prevent leaking VBOs on shutdown also.
2015-12-28 14:13:24 -08:00
Unknown W. Brackets
f2410e2110
Oops, actually free old vertex cache buffers.
...
And reuse them, since, why not?
2015-12-28 14:13:24 -08:00
Unknown W. Brackets
675efe99b3
Use the new way for GL_EXTENSIONS in reporting too.
2015-12-28 14:13:23 -08:00
Unknown W. Brackets
8aed1c5f8e
Decimate buffer names less frequently.
...
Sometimes there can be a lot, so let's decimate in chunks, and only based
on memory pressure.
2015-12-28 14:13:22 -08:00
Unknown W. Brackets
d39c8a5994
Decimate buffer objects less often.
...
I think it was previously deleting used objects, oops.
2015-12-28 14:13:21 -08:00
Unknown W. Brackets
199d8ac0c0
Reuse buffers of the same size for dynamic data.
...
This is a lot faster than changing their sizes all the time.
2015-12-28 14:13:20 -08:00
Unknown W. Brackets
517d5b7562
Warn when an upscaling shader is being used.
...
Otherwise it's potentially confusing that it doesn't change. See #8310 .
2015-12-27 12:05:12 -08:00
Unknown W. Brackets
941988cde4
Correct prescale issues with render-to-texture.
...
Still need to apply the scaling of the texture coordinates here (or
somewhere, maybe we prescale that as well? Except it's figured later on
in the process...)
2015-12-20 21:13:43 -08:00
Unknown W. Brackets
27ad8185e3
Add flag for core GL contexts.
...
Since using VBOs all the time is slower.
2015-12-19 09:18:35 -08:00
Unknown W. Brackets
164594b044
Use a VAO for all drawing, and VBOs throughout.
2015-12-19 09:18:34 -08:00