Commit graph

275 commits

Author SHA1 Message Date
Unknown W. Brackets
0e85225e29 Bring back the depth range hack. 2016-02-06 20:28:45 -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
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
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
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
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
b246442374 Hook up GL shader cache. Cache linked shader programs. 2016-01-17 20:44:51 +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
c6ffed6484 gedbg: Add mechanics to grab CLUT buffer. 2016-01-10 09:25:19 -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
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
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 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
675efe99b3 Use the new way for GL_EXTENSIONS in reporting too. 2015-12-28 14:13:23 -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
Unknown W. Brackets
fbc4b4e7a1 Use glCopyImageSubData() when it's available.
There's 4 different extensions providing this functionality.  NV is
supported on desktop and mobile, EXT/OES on mobile, and ARB on desktop.

Mostly these are only supported by desktop cards and NVIDIA mobile.

Good improvement in performance on NVIDIA when blit is called a lot, since
it doesn't need to rebind anything or change state.  Example is in desert
city in Tales of Phantasia.
2015-12-06 10:39:21 -08:00
Unknown W. Brackets
1fb271a607 Enable EXT_blend_func_extended.
Not really tested.
2015-11-27 16:01:25 -08:00
Henrik Rydgård
563ad0fa10 Merge pull request #8219 from unknownbrackets/gpu-logicop
Make logic ops flush on GLES
2015-11-16 01:21:43 +01:00
Unknown W. Brackets
7e71bd653f Allow logic ops in GLES.
We have a backup plan for them now, so they need to flush.

Fixes #2917.
2015-11-15 15:06:37 -08:00
Henrik Rydgard
4b360a571c Remove the depth range hack option, turning it into an ugly game specific compatibility hack.
I hate doing this, but it's not really better off as an option.

See #8171
2015-11-15 23:00:25 +01:00
Henrik Rydgard
f3b0562bd8 Improve viewport terminology a bit. No functional change. 2015-11-04 22:03:29 +01:00
Henrik Rydgard
44be9f2a50 Move Windows GPU init code into Windows/GPU 2015-11-03 23:22:09 +01:00
Henrik Rydgard
6b2862284b Minor cleanups 2015-11-02 20:09:59 +01:00
Henrik Rydgard
f4248cb550 Remove a whole lot of flipping special cases 2015-11-02 20:07:30 +01:00
Henrik Rydgard
293ab099bc Disable FRAMEBUFFER_FETCH for all GPUs. Can be whitelisted for some in the future. 2015-10-29 19:28:48 +01:00
Henrik Rydgard
6a373fe09a Make it possible to view vertex decoders through the shader viewing mechanism (even though they aren't strictly shaders, they fit the model). 2015-10-24 10:41:31 +02:00
Henrik Rydgård
953f712e3a Merge pull request #8065 from hrydgard/shader-view
Add new shader viewing tool
2015-10-14 19:05:24 +02:00
Henrik Rydgård
f7b3e5e693 Merge pull request #7922 from hrydgard/fragshader-depth-round
WIP: Alternative to #7920: Round depth in the fragment shader.
2015-10-14 18:36:05 +02:00
Henrik Rydgard
7f4e473e8c Add new shader viewing tool 2015-10-14 18:10:21 +02:00
Unknown W. Brackets
4222639a84 Oops, fix texture preview in GE debugger. 2015-10-12 21:40:47 -07:00
Henrik Rydgard
65b78b18ea Only enable fragment shader depth rounding for Heroes Phantasia, should reduce flicker.
Doens't fix but helps #6485
2015-10-11 20:52:00 +02:00
Henrik Rydgard
b07b002040 Introduce "Compatibility Flags".
These should be used very restrictively, see comment in Compatibility.h.

Should help #8004, by disabling depth rounding in Fight Night round 3.
2015-09-27 01:23:20 +02:00
Henrik Rydgård
5d7c4dd7c0 Merge pull request #7944 from sum2012/gpu_blacklist
Blacklist some gpu
2015-09-23 18:15:21 +02:00
Henrik Rydgard
ab3468ea02 Move native/gfx_es2/gl_state.cpp/h into GPU/GLES/GLStateCache.cpp/h 2015-09-06 13:45:17 +02:00
Henrik Rydgard
08735b806f Remove silly use of gstate.SetVSyncInterval 2015-09-06 13:36:33 +02:00
Henrik Rydgard
72ae497350 Remove glstate usage except in the GPU implementation. Prepare for moving it into PPSSPP. 2015-09-06 12:42:15 +02:00
sum2012
f6050e2c37 oop 2015-09-06 17:42:12 +08:00
sum2012
c30254a40d Rename BlacklistGPUNames to FramebufferFetchBlacklist 2015-09-06 17:40:30 +08:00
sum2012
7500145ddf Blacklist some gpu 2015-09-06 17:33:29 +08:00
Henrik Rydgard
b22850720d Move the CheckGPUFeatures call to the Resize check 2015-09-06 00:13:46 +02:00
Henrik Rydgard
1c0158bfe6 Further reduce the use of ifdef USING_GLES2 and friends. 2015-09-05 23:39:10 +02:00
Henrik Rydgard
0237b84efd Reduce use of #ifdef USING_GLES2 some more 2015-09-05 23:09:06 +02:00
Henrik Rydgard
186d624ef3 Cleanup of FBO+blit flags. Requires the change in native to stop lying. 2015-09-05 22:40:45 +02:00
Henrik Rydgard
5b2ffd1434 Fix some naming, remove NV_draw_texture, move decisions out 2015-09-05 22:11:28 +02:00
Henrik Rydgard
f524049277 Move more GPU feature checks upfront. Re-check when exiting settings menu. 2015-09-05 21:23:58 +02:00