Commit graph

165 commits

Author SHA1 Message Date
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
25a9573f8b Typo fix 2017-12-30 21:30:31 +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
52234dae91 Remove VULKAN_STATIC 2017-12-26 16:09:31 +03:00
Greg V
f3783bdb44 Add support for Vulkan on Wayland 2017-12-26 16:09:27 +03:00
Unknown W. Brackets
a7b3a1eb96 Vulkan: Decimate the texture allocator.
Thin3D wasn't calling Begin/End, which lead to leaks eventually and OOM.

Was causing softgpu to crash.
2017-12-24 10:39:42 -08:00
Henrik Rydgård
7f758d52dc Statically link a vulkan loader on Linux. Use to to init vulkan on X11. Unfortunately, it's broken. 2017-12-21 11:02:11 +01:00
Henrik Rydgård
ea387b2a48 WIP vulkan on linux stuff 2017-12-21 10:48:00 +01:00
Henrik Rydgård
b0528f3794 Vulkan: Fix bug where we'd do the initial layout transition for an image before binding memory to it. Should help the issue uncovered in #10413 2017-12-20 16:40:09 +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
ef66892f70 Update vulkan headers, add linux .so loader lib for easy builds, like Sascha does. 2017-12-15 16:40:38 +01:00
Henrik Rydgård
b4a44c5e02 Another buildfix, sigh. Also extend the safe region a little bit to the thing from a couple commits ago. 2017-12-13 22:28:30 +01:00
Henrik Rydgård
aaba38259a Oops, buildfix 2017-12-13 20:51:17 +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
cca4e0b2ca Fix another case where we trusted std::move to clear the origin, which is not guaranteed. 2017-12-10 14:37:28 +01:00
Henrik Rydgård
91b089d90d Tweak logging and asserts in VulkanDeviceMemory::Destroy 2017-12-10 14:22:35 +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
aa0cc6712f Clip block transfer destinations. Should fix crash in #10011. Stats: Invent some sort of usage metric for device memory allocators. 2017-12-03 15:00:25 +01:00
Henrik Rydgård
6a2f0f4191 Revert "Fix memory-scan bug in VulkanDeviceAllocator that probably causes some fragmentation."
This reverts commit ac6b491287.
2017-12-03 11:31:25 +01:00
Henrik Rydgård
ac6b491287 Fix memory-scan bug in VulkanDeviceAllocator that probably causes some fragmentation. 2017-12-03 11:10:40 +01:00
Henrik Rydgård
1bf44b7ca3 Shutdown fix. 2017-12-03 11:02:49 +01:00
Henrik Rydgård
6abdbde47e Fix bugs in VulkanImage allocator support 2017-12-03 10:50:25 +01:00
Henrik Rydgård
5d53f5e24c Add another assert, which gets hit.. Hm. Something is wrong.. 2017-12-03 10:42:19 +01:00
Henrik Rydgård
ff264efe7e Change some Crash() to asserts in VulkanDeviceAllocator 2017-12-03 10:35:34 +01:00
Henrik Rydgård
d0c248368d Use a VulkanDeviceAllocator for thin3d textures. Many devices have a hard limit on the total number of allocs and it's unnecessary to have the UI put pressure on that. 2017-12-03 10:29:41 +01:00
Henrik Rydgård
04913be779 Move pushbuffer map/unmap to the .cpp file to avoid inlining (for stack traces) 2017-11-29 20:13:38 +01:00
Henrik Rydgård
b9bad7431a Add ability to simulate a few kinds of Vulkan initialization failures, to test the GL fallback. 2017-11-26 16:13:04 +01:00
Unknown W. Brackets
bd1ed897cf Global: Fix some warnings. 2017-11-25 14:08:49 -08: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
27a60f5e58 Fix message asserts on Android. Add more of them to check things in Vulkan code. 2017-11-20 12:11:47 +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
Henrik Rydgård
10792cc8e7 Windows/Vulkan: implement screenshots. Something is iffy with the red/blue swap though... 2017-11-15 13:18:29 +01:00
Henrik Rydgård
3594623a8d Vulkan: Show the preferred depth-stencil format in the feature list. 2017-11-15 09:08:30 +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
4346a54eb7 Vulkan: Speed up and simplify hardware tesselation by using storage buffers. 2017-11-12 13:55:42 +01: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
8d7bcd9d61 Vulkan hw tess: Assorted minor fixes. Works on Mali now. 2017-11-11 21:51:05 +01:00
Henrik Rydgård
ee768ca949 Logging improvements, avoid resetting the Android text drawer unnecessarily 2017-11-10 13:02:24 +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
845b02a6c5 Ooops 2017-11-09 13:35:42 +01:00
Henrik Rydgård
25f32b1d78 Vulkan: Disable dual source blending on Intel GPUs, fixes #10074. 2017-11-09 13:16:06 +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
fc32a7b24e Vulkan: Show textures in GE debugger. 2017-11-06 00:29:01 -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
96cd368878 Make VulkanTexture "immutable". 2017-11-01 08:49:48 +01:00