Commit Graph

971 Commits

Author SHA1 Message Date
Henrik Rydgård
6858c77612 Don't allow wrapping on framebuffer textures. Fixes GTA on old NV Shield 2018-03-17 01:54:11 +01:00
Henrik Rydgård
614cabb115 Implement pipeline/shader cache for Vulkan, to avoid shader compile stutters on second and subsequent runs.
The raw pipeline cache got pretty large. Instead, store IDs like GL.

There's still a disabled option to store the pipeline cache objects.
2018-03-16 21:03:03 +01:00
Henrik Rydgård
c5ebb2d73f Oops, remove logging 2018-03-16 14:58:45 +01:00
Henrik Rydgård
a08464eb77 Vulkan: Also check for empty clearing renderpasses later in the frame. 2018-03-16 14:57:41 +01:00
Henrik Rydgård
df8dac4aae If the first renderpass is an empty clear, merge it into the next one that touches the same framebuffer. Works around #10723 in Wipeout. 2018-03-16 13:44:56 +01:00
Henrik Rydgård
3cd92b4d90 Vulkan: Add a (disabled) facility to force image layouts to GENERAL, for debugging barrier issues 2018-03-15 16:23:23 +01:00
Henrik Rydgård
ba5208efaa GL: Fix bug where we could crash if a readback happened at the same time as a buffer expansion. 2018-03-14 00:06:38 +01:00
Henrik Rydgård
7c6034e2ce
Merge pull request #10713 from hrydgard/windows-gl-vsync-fix
Fix VSync on Windows. Should fix #10711
2018-03-13 00:03:33 +01:00
Romain Graillot
ad37e7ce45 Fix crash happening with glGetFloatv on GPDXD devices 2018-03-12 23:11:58 +01:00
Henrik Rydgård
2a438d6e03 Fix VSync on Windows. Should fix #10711 2018-03-12 20:07:31 +01:00
Henrik Rydgård
0ed3deabe6 Fix #10692 (crash when starting games from command line). Throw in some minor Vulkan fixes as well. 2018-03-08 16:35:13 +01:00
Henrik Rydgård
d45ae9e67a
Merge pull request #10688 from unknownbrackets/gl-buffers
GLES: Support more buffer mapping strategies
2018-03-05 09:15:41 +01:00
Henrik Rydgård
40db61a680 Remove further remains of hardware skinning. Fixes #10661 2018-03-05 00:03:47 +01:00
Unknown W. Brackets
7c983a6842 GLES: Support more buffer mapping strategies. 2018-03-04 14:48:06 -08:00
Unknown W. Brackets
021ade5065 GLES: Fix force alignment on buffer map. 2018-03-04 13:26:52 -08:00
Henrik Rydgård
38bf10baaa GL: Use AllocateAlignedMemory to make sure localMemory is always aligned. Fixes #10666
Seems the code that tries to align is faulty in some cases but this avoids the issue at least.
2018-03-04 22:22:47 +01:00
Unknown W. Brackets
1b8e3edb86 GLES: Buffer handling cleanup.
Trying to fix the mystery issues on some devices.
2018-03-04 10:00:45 -08:00
Henrik Rydgård
ee752f5399 Some error handling and assert improvements, trying to understand #10662 2018-03-01 12:21:58 +01:00
Henrik Rydgård
3b0d307792 Fix something found by -fsanitize=undefined 2018-03-01 08:24:47 +01:00
Henrik Rydgård
bc339c0377 GL: Filter away redundant glEnable/Disable(GL_STENCIL_TEST) 2018-02-28 13:28:39 +01:00
Henrik Rydgård
f5dd9c17cd Add comment trying to clarify shutdown of GPU_GLES, restore the wipe, minor tweaks. Should help #10652
This reverts commit 10be0cad96.
2018-02-27 22:04:24 +01:00
Henrik Rydgård
375fa3fb5b Improve a bunch of Vulkan copy-rect asserts by adding more debug info 2018-02-26 14:23:52 +01:00
Henrik Rydgård
373e53fa66
Merge pull request #10645 from hrydgard/vulkan-cleanups
Vulkan cleanups: Remove old texture upload method, etc.
2018-02-26 09:24:24 +01:00
Unknown W. Brackets
beeb9cc3a4 GLES: Disable buffer mapping for non-NVIDIA.
Need more stats on other vendors.  I think it can help if we use it
properly.
2018-02-25 12:51:52 -08:00
Henrik Rydgård
e1852321a0 Vulkan: Remove the old method of uploading images. 2018-02-25 12:15:29 +01:00
Henrik Rydgård
5f8118b82b Separate T3DCreate* into its own header to avoid including Windows.h etc in some cases. 2018-02-25 10:27:59 +01:00
Henrik Rydgård
1b9c2f26f9 Whitelist mapbuffer usage to NVIDIA only (should maybe add Qualcomm too), it's murder on Mali 2018-02-12 11:46:19 +01:00
Unknown W. Brackets
be0ab58365 GLES: iOS buildfix. 2018-02-11 14:38:36 -08:00
Unknown W. Brackets
5f1cd19687 GLES: Android buildfix. 2018-02-11 13:17:08 -08:00
Unknown W. Brackets
20b532fc71 GLES: Use buffer storage and explicit flush.
This is just as fast as using glMapBufferRange on desktop.
2018-02-11 13:14:28 -08:00
Unknown W. Brackets
7179e408da GLES: Free localMemory later.
It was still in use sometimes as of MapDevice(), so this is safer.
2018-02-11 12:35:33 -08:00
Unknown W. Brackets
edcd2f966a GLES: Use buffer range mapping where appropriate. 2018-02-11 12:35:33 -08:00
Unknown W. Brackets
9eb51a6a36 GLES: Use mapped device memory when possible. 2018-02-11 12:35:32 -08:00
Unknown W. Brackets
fcc2b59c57 GLES: Wait for queue idle properly.
Need to wait for anything ready for run.  Not everything will have been
submitted.
2018-02-11 11:30:38 -08:00
Unknown W. Brackets
0474ff5c23 GLES: Use aligned memory for textures.
We use SSE on them, and they used to be aligned, and must be aligned in
PSP RAM, so keep them aligned.

This only really affects 32-bit, since allocs will typically be aligned on
64-bit anyway.

Fixes #10601.
2018-02-11 08:13:57 -08:00
Unknown W. Brackets
0e2a586c1b Global: Fix some type comparison/shadow warnings. 2018-02-11 07:03:23 -08:00
Unknown W. Brackets
9a40a5971b GLES: Prevent crash on screenshot without buffers.
It still fails for some reason, but that's better than a segfault.
2018-02-10 16:55:53 -08:00
Henrik Rydgård
8ad5b499a9 Improve assert messages in VulkanRenderManager (minor) 2018-02-10 08:58:33 +01:00
Henrik Rydgård
0fe4e70aef Fix another way the scissor test could accidentally get disabled 2018-02-08 16:47:04 +01:00
Henrik Rydgård
b9b41f52c5 Add a simple spinner to the game load screen to not look frozen. 2018-02-08 12:03:29 +01:00
Henrik Rydgård
8c5a94ce01 gl-render-manager: Oops, fix scissor tests after clears 2018-02-08 00:50:39 +01:00
Henrik Rydgård
1eec30dac2 Avoid causing a gl error on startup on core contexts. 2018-02-08 00:44:10 +01:00
Henrik Rydgård
481134bfe9 Another go at the deleter problem. Still not feeling 100% good about how this works.. but it does seem to work fine. 2018-02-08 00:41:17 +01:00
Henrik Rydgård
8ee426ff74 Get rid of an unused codepath (gl rendering is now always threaded) 2018-02-08 00:23:48 +01:00
Henrik Rydgård
ce16547854 GL render manager: Fix bug when setting texture sampler if the wrong GL texture slot is active. Will likely help #10583 2018-02-07 19:49:58 +01:00
Henrik Rydgård
7f30037e45 Android: Fix emuthread management to exit cleanly without hanging. Helps with task switching on Android. 2018-02-07 13:11:43 +01:00
Henrik Rydgård
3e56d8bbdf Noticed that the UWP build has been broken for some time, fix it.
Should probably set up a buildbot if we care about this...
2018-02-05 16:21:39 +01:00
Henrik Rydgård
d30f1c2019 Fix another Qt memory leak 2018-02-04 14:13:47 +01:00
Henrik Rydgård
020eb9d86c Fix further memory leaks 2018-02-04 13:42:04 +01:00
Henrik Rydgård
79d1610148 Move SDLGLGraphicsContext.h to the correct location. Minor cleanup 2018-02-04 13:42:04 +01:00