Commit graph

64 commits

Author SHA1 Message Date
Henrik Rydgård
2250ef799c Avoid including platform-specific headers in VulkanContext.h 2017-12-18 12:54:25 +01:00
Henrik Rydgård
6f0b382d9e Move vulkan debug callback out from WindowsVulkanContext into a file that can be shared with other platforms later. 2017-12-13 19:29:42 +01:00
Henrik Rydgård
b6911d2764 Add a hidden debug option [Graphics]GfxDebugSplitSubmit to try to narrow down some Vulkan issues, see #10163. Also improve some asserts. 2017-11-22 10:47:04 +01:00
Henrik Rydgård
506c4eef17 Win32: Improvements to vulkan init error handling 2017-11-16 21:55:06 +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
05930ea32e MotoGP: Compat hack to disable framebuffer readbacks.
This is the only known game to copy its framebufer to RAM before display on every frame and we already have a
hack so we can display the high resolution framebuffer, but we still did the readback for no good reason.

This eliminates the readback.
2017-11-10 16:32:56 +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
Unknown W. Brackets
ebe9dcafde Vulkan: Wait for queue idle in DestroyBackbuffers.
Otherwise it's only done after destroying Draw, so no need to mutex.
2017-11-05 08:44:14 -08: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
bbfc32f131 Remove disabling of validation warning. It works. 2017-10-31 12:57:27 +01:00
Henrik Rydgård
07dfda0633 Vulkan depal code now passes validation, but produces black. 2017-10-31 12:35:00 +01:00
Henrik Rydgård
d016bfe221 Fix some resource leaks and excessive logging in VulkanRenderManager 2017-10-26 10:57:00 +02:00
Henrik Rydgård
3e2b810c39 Improve synchronization, though there are very weird issues. Possibly need to run the swap chain from the thread that created it? 2017-10-26 10:57:00 +02:00
Henrik Rydgård
833916a906 A multitude of fixes. The UI now works correctly, though of course ingame still broken. 2017-10-26 10:56:59 +02:00
Henrik Rydgård
0a0494ef8e It builds! With some shortcuts, of course. 2017-10-26 10:56:59 +02:00
Henrik Rydgård
eabaf6ddcd Bit more Vulkan barrier cleanup. 2017-10-21 13:05:52 +02:00
Henrik Rydgård
804aa79376 Various Vulkan image transition fixes and related 2017-10-20 18:09:05 +02:00
Henrik Rydgård
b9ba525de1 Don't call functions in asserts, they get compiled out in release... 2017-10-20 14:45:00 +02:00
Henrik Rydgård
017d3da067 Allow D3D9 context creation to bail if shader compilation fails (D3D9 runtime not installed).
Fixes an issue where after switching to D3D9 on a PC without the D3D9 runtime, it's impossible to start PPSSPP anymore.
2017-10-20 11:53:07 +02:00
Henrik Rydgård
55e9807a53 Separate VulkanContext::CreateDevice into ChooseDevice and CreateDevice to give an opportunity to enable extensions. 2017-08-28 14:12:56 +02:00
Henrik Rydgard
0c70735bc4 Buffered rendering is starting to work, though still kinda broken. 2017-05-30 09:36:17 +02:00
Henrik Rydgard
273c266b78 Silence a perf warning 2017-05-30 09:36:17 +02:00
Henrik Rydgard
fd4ef48971 Windows debug builds: Only break on Vulkan validation warnings if a debugger is attached. 2017-05-07 18:09:09 +02:00
Henrik Rydgard
42a694368e Vulkan: Remove obsolete warning suppressions. Increase descriptor pool sizes. 2017-05-07 11:14:25 +02:00
Henrik Rydgard
ff6fcc9179 More vulkan fixes 2017-05-07 10:53:04 +02:00
Unknown W. Brackets
bf02f7d98b Vulkan: Detect swapchain init failure.
This seems to be a driver bug, and occurs on NVIDIA when OpenGL has
previously been inited.  Or we're not cleaning something up properly...
but there's a driver error logged to debug output.
2017-04-15 16:26:26 -07:00
Henrik Rydgard
ad29974a56 Change when drawcontexts are allocated. Hook up backbuffer events to fix d3d9 resizing. 2017-02-06 11:40:16 +01:00
Henrik Rydgard
20d9e60a67 Just some renaming. Start moving away from the "thin3d" name 2017-01-30 14:38:31 +01:00
Henrik Rydgård
1ed7f0d7fd More modern way to specify vertex data format (inputlayout) 2016-12-27 11:59:10 +01:00
Henrik Rydgård
f86b9f7900 Guess what? More renaming 2016-12-27 11:59:06 +01:00
Henrik Rydgård
10393f5d4e Move Thin3D into the Draw namespace. 2016-12-27 11:58:03 +01:00
Henrik Rydgård
1c0c755b03 Extract RasterState from thin3d, for easier d3d11 porting 2016-12-25 11:31:33 +01:00
Henrik Rydgard
a2b49fd0e0 Update Vulkan headers. Hack around another validation check (which I beleive to be bugged). 2016-12-15 18:12:53 +01:00
Florent Castelli
f02e2b59b0 qt: Build Qt frontend with CMake. Requires Qt5. 2016-10-17 23:45:21 +02:00
Henrik Rydgard
210cd4b52d New vulkan validation issues... 2016-07-24 15:55:05 +02:00
Henrik Rydgard
b560038b3d Work around a new false positive from the latest Vulkan validation layers 2016-06-30 16:11:50 +02:00
Henrik Rydgard
fd0af5b271 Vulkan: Mostly pass the validation layers in SDK 1.0.13 2016-05-24 21:41:35 +02:00
Henrik Rydgard
51bcb02921 Minor vulkan updates to match the latest SDK/validator 2016-05-14 16:29:40 +02:00
Henrik Rydgard
37616a6f95 Update the Vulkan validator workarounds to match the 1.0.8 validator... gah. 2016-04-07 23:45:38 +02:00
Henrik Rydgard
32f5930e15 Move clear handling to FramebufferVulkan, center the clear properly in non-buffered. more cleanup. 2016-03-31 00:50:50 +02:00
Unknown W. Brackets
aec117d8ea Vulkan: Allow resizing window/backbuffer.
Not tested much on Android.  Fixes #8656.
2016-03-21 19:45:27 -07:00
Unknown W. Brackets
2461a849f9 Correct some warnings reported by clang. 2016-03-20 23:13:28 -07:00
Henrik Rydgard
d0659f0deb No need to align vertex/index data. Will only be harmful for an upcoming optimization. 2016-03-20 19:35:03 +01:00
Henrik Rydgard
c2775d4dfa Default validation on in Debug and off in Release 2016-03-20 19:31:02 +01:00
Henrik Rydgard
1f1e679aa0 Silence another validation warning 2016-03-20 19:31:02 +01:00
Unknown W. Brackets
82205a4660 Handle Vulkan init errors more gracefully. 2016-03-20 19:31:02 +01:00
Henrik Rydgard
76b17a4912 Revert "Replace ugly workaround with VK_LAYER_LUNARG_unique_objects which prevents handle reuse."
This reverts commit 6342c07a19d5ab410cbc233a570488214923a9f8.
2016-03-20 19:31:02 +01:00
Henrik Rydgard
b0098f7961 Replace ugly workaround with VK_LAYER_LUNARG_unique_objects which prevents handle reuse.
See https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/121
2016-03-20 19:31:02 +01:00
Henrik Rydgard
575cc890b7 Turn off annoying "debug flicker" I used to see if we were swapping buffers properly early on
Also minor logging changes, refine the false-positive debug layer check
2016-03-20 19:31:02 +01:00
Henrik Rydgard
79fd828d16 Work around what seems like a validation layer bug (trigger by scrolling
around the UI a bit)
2016-03-20 19:31:02 +01:00