Commit Graph
86 Commits
Author SHA1 Message Date
Henrik Rydgård 5d64fc5ff1 Switch to PPSSPP's assert functions (don't use the system's) 2020-08-16 10:01:10 +02:00
Henrik Rydgård 8835728f87 Replace base/logging.h in VulkanContext and parts of native 2020-08-15 19:08:44 +02:00
Henrik Rydgård fd41c9cd57 These convenience overloads don't work in 32-bit builds, remove them. 2020-08-09 10:28:37 +02:00
Henrik Rydgård 2f5de1987e Allow passing in an object name tag when creating framebuffers 2020-08-09 09:36:45 +02:00
Henrik Rydgård 11f9df33ba Vulkan: Start adding object names for easier validation debugging 2020-08-08 21:29:29 +02:00
Henrik Rydgård 697c3b8b36 Cleanup log output on swapchain/surface recreation. 2020-07-18 20:35:39 +02:00
Henrik Rydgård fbc4fa5bca Move the responsibility to register the debugutils callback to the VulkanContext. We only use one anyway. 2020-06-21 23:04:51 +02:00
Henrik Rydgård 6532c345c8 Simplify the validation interface code, bugfixes 2020-06-21 23:04:51 +02:00
Henrik Rydgård 1793b65ec1 Vulkan: Remove support for the old VK_EXT_debug_report extension 2020-06-21 23:04:51 +02:00
Unknown W. Brackets 0ff922c3e0 Android: Buildfix.
Not sure why the linker is having trouble with VulkanDebug.cpp.
2020-05-23 08:29:21 -07:00
Henrik RydgårdandGitHub fa8968f5c6 Merge pull request #12660 from unknownbrackets/frame-latency
GPU: Add setting to control inflight frame usage
2020-03-02 00:16:48 +01:00
Unknown W. Brackets a91e206926 GPU: Add setting to control inflight frame usage. 2020-03-01 06:21:27 -08:00
Henrik Rydgård 0da04f3694 Vulkan: Support devices that don't properly support 16-bit texture (like MoltenVK).
Fixes #12615.

Will make finishing #10654 worthwhile.
2020-03-01 14:07:13 +01:00
Unknown W. Brackets 2a3fd05651 Vulkan: Present using FIFO for vsync.
This allows the setting to be changed at runtime in Vulkan too.

Should help #10105.
2020-02-29 22:48:59 -08:00
李通洲 7cd60549dd Initial support for vulkan on macOS ( MoltenVK ) 2020-01-20 14:42:40 +08:00
Henrik Rydgård 025a9f4dae Improve Mali driver version detection 2019-09-04 21:46:07 +02:00
Henrik Rydgård 19a443819b Bugfixes to VK gpu profiling. Properly get the valid bits. 2019-08-21 09:02:40 +02:00
Henrik Rydgard f38a6650b1 VK code cleanup: Just a little helper for handling dedicated allocation for images. 2019-02-07 14:56:29 +01:00
Henrik Rydgard 478b0b4278 Further improve VK extension loading. Switch to VK_EXT_debug_utils (but fallback to VK_EXT_debug_report if only that is available). 2019-02-05 21:31:38 +01:00
Henrik Rydgard 7ae6ba9d91 Add code to enable a couple more extensions I anticipate using eventually. 2019-02-05 18:07:18 +01:00
Henrik Rydgard 8e1a5ef3d6 Minor refactor of physical device property/feature detection, to allow for more extension use. 2019-02-05 18:07:17 +01:00
Henrik Rydgard b143e47fb6 VK: Load the dedicated allocation extension properly (but don't use it yet). 2019-01-31 14:18:30 +01:00
Henrik Rydgard f339a0c15b VK: Minor cleanup, turn off unfinished and probably wrong use of dedicated allocation feature 2019-01-31 14:09:21 +01:00
Henrik Rydgard 3fd216ad3a Better handling of swap chain size, add PowerVR hack. Fixes #11743 2019-01-25 20:19:55 +01:00
Henrik Rydgård b037efdb55 If there are multiple Vulkan devices, show a setting to allow the user to choose. 2018-06-06 10:20:12 +02:00
Henrik Rydgård fb798cf6b2 Win32 textdrawer: Fix rare crash affecting Patapon 2 in savedata manager. See 10764. 2018-03-23 10:27:08 +01:00
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 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 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 9f9903c02e Fixes to vulkan restart logic on Android. Should help #10696 2018-03-11 17:14:11 +01:00
Henrik Rydgård b9726245ac Vulkan: Use VK_KHR_DEDICATED_ALLOCATION for frame buffers for minor speedup on some GPUs. Check for the debug report extension before enabling it. 2017-12-30 21:31:43 +01:00
Henrik Rydgård 191c4ddb0d Add a bit of logging to try to figure out #10477 2017-12-30 21:04:05 +01:00
Greg V f3783bdb44 Add support for Vulkan on Wayland 2017-12-26 16:09:27 +03:00
Henrik Rydgård ea387b2a48 WIP vulkan on linux stuff 2017-12-21 10:48:00 +01:00
Henrik Rydgård 2250ef799c Avoid including platform-specific headers in VulkanContext.h 2017-12-18 12:54:25 +01:00
Henrik Rydgård bd40479224 Vulkan: Add facility to auto-generate mipmap levels. Not yet used.
Intended for replacement textures and optional quality improvements
later.
2017-12-07 09:28:18 +01:00
Henrik Rydgård 96d6f1cae5 Make sure the device supports transfers from swapchain images when taking screenshots. 2017-11-15 13:57:22 +01:00
Unknown W. Brackets b1554ef061 Vulkan: Cut down on asserts during init.
In case something is horribly wrong, or our desired settings aren't
compatible, let's try to stumble our way out.

More things can fail, but the goal is to detect failure or at least be
able to render UI settings to swap out of Vulkan.
2017-11-12 21:56:55 -08:00
Henrik Rydgård ebac0143e0 Vulkan: Use a device allocator for tesselation data textures. Add comment about better solutions. 2017-11-12 10:28:55 +01:00
Henrik Rydgård 0a2b20bf59 More logging and tweaking 2017-11-10 12:09:42 +01:00
Henrik Rydgård 8b42d83123 Vulkan: Remove duplicate depalShaderCache, fix a number of instances where we didn't use the deleter properly.
Plus more logging, of course.
2017-11-09 17:25:37 +01:00
Henrik Rydgård ec504756e0 Vulkan: Improve init/shutdown logging on Android. Fix a bug where we'd not run InitDeviceObjects on GPU_Vulkan sometimes. 2017-11-09 16:02:05 +01:00
Henrik Rydgård ba846fdbc5 Show textual names of Vulkan GPU vendors 2017-11-09 12:30:07 +01:00
Henrik Rydgård c6c90d4cbc Improve Vulkan device selection mechanism to prefer discrete GPUs 2017-11-09 12:21:20 +01:00
Henrik Rydgård ca3be1877e Vulkan: Apply simple workaround for Mali driver bug (see #10070), and minor cleanup. 2017-11-08 17:03:27 +01:00
Henrik Rydgård 70c70b1e76 Vulkan: Some error handling improvement. Might get us a clue for #10065 2017-11-07 00:08:39 +01:00
Unknown W. Brackets 8edc6eaf5e Vulkan: Fix segfault on swapchain fail.
This at least allows us to detect that the backend failed to init.

Happens when switching backends with debugger attached (probably driver
bug?)
2017-11-04 20:45:08 -07:00
Henrik Rydgård 330bdb8be8 Add and update some comments. 2017-11-01 08:42:49 +01:00
Henrik Rydgård 74861d2d73 Vulkan: Make backbuffer transitions part of backbuffer render pass. Optimize depth buffer memory operations. 2017-11-01 08:42:49 +01:00
Henrik Rydgård 0a0494ef8e It builds! With some shortcuts, of course. 2017-10-26 10:56:59 +02:00