Henrik Rydgard
28ae840abe
Pipelines, samplers, description sets, oh my
2016-03-20 19:30:11 +01:00
Henrik Rydgard
4c0e6d0138
Some renaming, fixes and tweaks to the gl_lost mechanism, which is again needed
2016-03-17 21:30:16 +01:00
Henrik Rydgard
d67b148712
Add math dataconv funcs for packed values.
2016-03-06 11:33:53 -08:00
Unknown W. Brackets
212848c1cc
Explicitly enable dual source blending in shader.
...
Without this, the shader fails to compile on SHIELD devices with
up-to-date drivers. It may have also been failing on other devices.
The specification notes that the #extension line must be used.
2016-03-05 13:27:27 -08:00
Unknown W. Brackets
7dfe8b58dc
Clear attrMask on bad shader compile.
...
This prevents various crashes when incorrect attributes are enabled.
2016-03-05 13:14:25 -08:00
Unknown W. Brackets
505ff99461
Maintain and use a freelist for buffer objects.
...
Only for sized buffers, which are the ones we gain something from reusing.
2016-02-28 15:10:41 -08:00
Henrik Rydgard
5f761c346b
Attempt workaround for #8610
2016-02-28 11:06:49 +01:00
Unknown W. Brackets
346e98046d
Forgot to remove this report, not needed now.
2016-02-13 09:31:03 -08:00
Unknown W. Brackets
5894431fa0
Correct buffer size for offset download.
...
We need h, not h - y. Should be #7819 .
2016-02-11 22:30:44 -08:00
Henrik Rydgard
5bfeafc037
PackFramebufferSync_: Check for bad parameters that could cause crash
...
My theory for the #7819 crash
2016-02-11 22:10:54 +01:00
Unknown W. Brackets
271829c991
Consider depth blitting a slow framebuffer effect.
2016-02-10 21:02:19 -08:00
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