Commit Graph

24136 Commits

Author SHA1 Message Date
Henrik Rydgård
8f87a9f5c5 Vulkan: De-duplicate pipelines when storing cache
The new variety of renderpasses with different transitions causes
duplication. Hopefully drivers are smart enough to re-use work
between similar pipelines as much as possible...
2018-03-19 11:18:37 +01:00
Henrik Rydgård
1dabccb453 Vulkan: Minor logic fixes in the transition elimination 2018-03-18 13:14:20 +01:00
Henrik Rydgård
ce18364a15
Merge pull request #10743 from hrydgard/vulkan-renderpass-barrier-2
Vulkan: Further barrier optimizations
2018-03-18 13:02:08 +01:00
Henrik Rydgård
452e299473
Merge pull request #10740 from hrydgard/vulkan-renderpass-barrier
Vulkan: Merge some barriers into "subpass dependencies".
2018-03-18 12:29:21 +01:00
Henrik Rydgård
3e7723ea6d Vulkan: Use finalLayout to optimize away barriers before framebuffer copies. 2018-03-18 12:09:02 +01:00
Henrik Rydgård
2d3655ea23 Vulkan: Get rid of more explicit barriers by merging the finalLayout color transitions into renderpasses. 2018-03-18 12:03:23 +01:00
crocket
b7fa253192 Map SDL controller's back button to Sony DualShock 4 V2's share button
It turns out that `back` button is actually `select` button on PSP.
I confirmed this by clicking touchpad in a game.

`select` button maps to `share` button on Sony DualShock 4 V2.
2018-03-18 19:52:08 +09:00
Henrik Rydgård
6d5f0665fe Add a super focused workaround for the Mali bug, see #10723
Minimizes the performance penalty.
2018-03-18 11:20:45 +01:00
Henrik Rydgård
216bab8a4a Vulkan: Fix a barrier to be more permissive, there's no outstanding writes from the GPU to wait for. 2018-03-18 09:57:17 +01:00
Henrik Rydgård
f43935b030 Merge framebuffer layout pre-transitions into render pass subpass dependencies.
With this, drivers should be able to completely get rid of layout
transitions into render passes that use CLEAR, at least.
2018-03-18 09:55:36 +01:00
Henrik Rydgård
33a1e6a080 Vulkan Clear-renderpass merging: If a copy step is found that reads from the affected buffer, don't merge the clear into the later renderpass. 2018-03-18 09:44:00 +01:00
Henrik Rydgård
648b4eac51 Shrink the vertexCount field in DeferredDrawCall to the 16 bits required. 2018-03-18 09:42:05 +01:00
Unknown W. Brackets
5020182660 SaveState: Default undo slots off on mobile.
It's still a pretty useful feature on mobile (considering mistaps), but
it also eats a bunch of storage so it can always be turned back on.
2018-03-17 23:18:26 -07:00
Unknown W. Brackets
862b553c66 SaveState: Show undos in save data manager. 2018-03-17 23:18:25 -07:00
Unknown W. Brackets
2ee8dd7752 SaveState: Keep an undo for each slot by default. 2018-03-17 23:18:25 -07:00
Henrik Rydgård
ad42ec5473 Inner interpreter: Add support for the Gran Turismo hack. 2018-03-17 23:57:50 +01:00
Henrik Rydgård
a966403def Add another SDL game controller config, fixing #10724 2018-03-17 23:42:10 +01:00
Henrik Rydgård
0ee058320a Pass new vulkan validation layers. Fix math in FindTransferFramebuffers. 2018-03-17 23:39:02 +01:00
Henrik Rydgård
778beb6cd9
Merge pull request #10736 from unknownbrackets/loading
Module: Hash functions only once during loading
2018-03-17 22:24:58 +01:00
Unknown W. Brackets
892c439fcf Module: Clarify insertSymbols usage. 2018-03-17 13:58:56 -07:00
Unknown W. Brackets
f14f2efa79 Module: Hash functions only once during loading.
This fixes the loading speed regression from #10501.
2018-03-17 13:36:37 -07:00
Henrik Rydgård
473c87273f Maybe slightly safer vulkan detection code. Might help #10732 2018-03-17 19:22:59 +01:00
Henrik Rydgård
d5b123f10d
Merge pull request #10733 from unknownbrackets/loading
Vulkan: Load shaders/pipelines on thread
2018-03-17 16:12:06 +01:00
Unknown W. Brackets
7ae4a9e977 Vulkan: Load shaders/pipelines on thread.
In case it's slow when not reading raw cache data.
2018-03-17 07:42:07 -07:00
Henrik Rydgård
99af1d58ad OpenGL task switching fix 2018-03-17 13:45:12 +01:00
Henrik Rydgård
940d8b4589
Merge pull request #10731 from hrydgard/improve-vulkan-detection
Improve Vulkan detection
2018-03-17 13:05:03 +01:00
Henrik Rydgård
08c3e13517 Do more detailed checks for Vulkan availability. Should hopefully solve #10729. 2018-03-17 11:36:16 +01:00
Henrik Rydgård
1bb7be489f Remove some unused tracking of whether lighting is used by a shader 2018-03-17 10:33:50 +01:00
Henrik Rydgård
31de74c56c
Merge pull request #10730 from hrydgard/update-vulkan-headers
Update Vulkan headers to 1.1. Might as well keep up.
2018-03-17 10:12:30 +01:00
Henrik Rydgård
71630b81cf Update Vulkan headers to 1.1. Might as well keep up. 2018-03-17 09:55:14 +01:00
Henrik Rydgård
9761d8930d Bump GL shader cache version 2018-03-17 02:01:11 +01:00
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
d72d710714
Merge pull request #10727 from hrydgard/vulkan-shader-cache
Implement pipeline/shader cache for Vulkan, to avoid shader compile stutters on second and subsequent runs.
2018-03-16 23:20:51 +01:00
Henrik Rydgård
763ece593a
Merge pull request #10728 from hrydgard/update-glslang
Update glslang to the latest version
2018-03-16 23:17:39 +01:00
Henrik Rydgård
d4a4844bff Update glslang to the latest version 2018-03-16 21:29:16 +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
2d33d526b8 Remove some remains of software skinning 2018-03-16 20:38:05 +01:00
Henrik Rydgård
8dc85c1a60 Vulkan pipeline: Merge a few property fields to a flags field.
To make saving/loading them easier.
2018-03-16 17:38:02 +01:00
Henrik Rydgård
45464896d2 Update lang submodule 2018-03-16 16:45:27 +01:00
Henrik Rydgård
4ee941dab1 Vulkan: Fix bug where we didn't always reset dynamic state after readbacks. 2018-03-16 15:52:43 +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
17eca3e2dd
Merge pull request #10725 from hrydgard/renderpass-merge-clear
Vulkan: If the first renderpass is an empty clear, merge it into the next one touching the same framebuffer.
2018-03-16 14:36:35 +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
26966d4655
Merge pull request #10719 from hrydgard/fix-gl-buffer-crash
GL: Fix bug where we could crash if a readback happened at the same time as a buffer expansion.
2018-03-14 00:52:24 +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
7ef749b667
Merge pull request #10718 from mrcmunir/patch-1
Fix a typo extra " in some header
2018-03-13 20:23:15 +01:00
Carlos Estrague / Mrc_munir
f3040949a3
Fix a typo extra " in some header
Fix a typo introduced in https://github.com/hrydgard/ppsspp/pull/10715
2018-03-13 20:16:41 +01:00
Henrik Rydgård
7a8310ae5e Tiny unification of code. Save the GL shader cache a bit less often. 2018-03-13 13:35:58 +01:00