Commit graph

268 commits

Author SHA1 Message Date
Henrik Rydgard
b39206f922 Use the app cache directory on Android for the shader cache. 2016-01-17 22:15:23 +01: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
Henrik Rydgard
a71be3f75f Start moving GPU feature compatibility decisions to startup
(and a single, cache-friendly flag field)
2015-09-05 19:58:47 +02:00
Henrik Rydgard
7e3292d275 Minor optimization 2015-08-26 18:46:55 +02:00
Henrik Rydgard
160980ee2e Properly dirty the uniform in Execute_ViewportType 2015-08-26 16:28:10 +02:00
Henrik Rydgard
9e18fb7e90 Round Z in the vertex shader to match a 16-bit Z buffer.
However this inexplicably does still not solve the Phantasy Star issue!
2015-08-26 15:25:21 +02:00
Henrik Rydgard
d7f4c47c22 Refactor: Even more getting rid of gstate access in the framebuffer manager. 2015-08-05 12:13:14 +02:00
Henrik Rydgard
2430c283a5 More GPU cleaning, removing uses of GPUState.h where not needed.
Want to get rid of direct accesses to GPUState in modules that may be reused in
my future next-gen backends, that will reformat display lists into command lists that will
then be optimized and executed, out of sync with the real GPUState.

Candidate modules that may be reused in full are Framebuffer and Depal, possibly TextureCache to some degree.
2015-07-29 12:37:49 +02:00
Henrik Rydgard
38a31fbd8b Get rid of more uses of gstate from SplineCommon 2015-07-29 12:04:52 +02:00