Commit Graph
63 Commits
Author SHA1 Message Date
Henrik Rydgård b0b9e24d4e Vulkan: Fix minor vulkan resource leak if inflight frames isn't max. 2020-03-08 17:14:14 +01:00
Unknown W. Brackets 98df4bbec3 GPU: Allow choosing number of inflight frames. 2020-03-01 08:53:46 -08:00
Unknown W. Brackets a91e206926 GPU: Add setting to control inflight frame usage. 2020-03-01 06:21:27 -08:00
Henrik Rydgård 26ab81c102 vulkan: The GPU profiler could end up writing massive amounts of text, fix some bugs around that. 2019-11-30 23:03:30 +01:00
Henrik Rydgård 5adb61a5f2 Move the viewport clamping back to rendermanager to avoid a struct copy in the common case. 2019-10-13 21:25:16 +02:00
Henrik Rydgård 87c1ce6fa2 Vulkan: Move viewport/scissor rotation to the QueueRunner instead of RenderManager. Add some checks. 2019-10-13 21:25:16 +02:00
Henrik Rydgård 1e3711ee66 Vulkan blend factor: Bugfix and minor optimization 2019-10-13 21:17:29 +02:00
Henrik Rydgård 2467fddc01 Vulkan GPU profiler: Measure the CPU time spent on the render thread recording command buffers. 2019-09-18 00:16:08 +02:00
Henrik Rydgård 0462c01228 Workaround ARM Mali depth hardware bug. Fixes #11937
When triangles coincide with the Z=1 plane in specific ways, triggered
by Burnout Legends' sky for example, the depth buffer gets corrupted.

This is worked around here by slightly rescaling Z. This type of
workaround is recommended by ARM driver engineers.

Ugly but what can you do when the hardware is bugged. I've done quick
tests on a number of games with no issues.
2019-09-08 23:44:26 +02:00
Henrik Rydgård ab3c9fc21f Vulkan: Move scissor/viewport rotation into the VulkanRenderManager. Fixes #12303. 2019-09-03 23:26:44 +02:00
Henrik Rydgård 66609b395f Vulkan: Profile individual render passes/steps. 2019-08-21 16:47:46 +02:00
Henrik Rydgård 06a71fdf49 Get rid of numQueries 2019-08-21 10:30:57 +02:00
Henrik Rydgård 5fcac1a9e2 Vulkan: Disable some bad validation. Things are right and work fine. 2019-08-21 10:23:36 +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 Rydgård 653afeb7ab Vulkan: Implement basic integrated GPU profiling.
Currently simply measures the total GPU time of the frame. Will later be
extended to get the execution time of individual render passes.
2019-08-21 00:03:00 +02:00
Henrik Rydgård a0dc85a9d7 Fix a bunch of inconsequential uninitialized variables 2019-06-18 00:18:40 +02:00
Henrik Rydgård 624587c594 Fix a VK validation failure when opening the homebrew menu 2019-03-11 16:42:41 +01:00
Unknown W. Brackets 2388be544f Debugger: Fix crash in softgpu with no texaddr yet. 2018-09-04 21:54:25 -07:00
Henrik Rydgård d160292f54 Include renderpass definition in Vulkan shader cache entries, should make it more effective again. 2018-03-29 14:36:04 +02:00
Henrik Rydgård d125fa00e1 Make sure the renderpass cache hashmap is never accessed from the main thread at runtime. Should help #10811 2018-03-27 14:45:41 +02:00
Henrik Rydgård f1359af0b0 Vulkan: Improve handling of shader compile failures (don't crash) 2018-03-19 17:46:58 +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
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 0ee058320a Pass new vulkan validation layers. Fix math in FindTransferFramebuffers. 2018-03-17 23:39:02 +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 22e28e218b Merge pull request #10411 from hrydgard/gl-render-manager
GL render manager - new faster GL multithreading
2018-01-31 12:22:07 +01:00
Henrik Rydgård c60c8ed68a Debug visualization for the Vulkan memory allocator. Shows some interesting behaviour. 2018-01-29 19:38:10 +01:00
Unknown W. Brackets 3eb6d38d75 Vulkan: Fix stencil-only clear for stencil upload.
Fixes stencil issues in Star Ocean.
2018-01-27 15:10:17 +01:00
Henrik Rydgård a0f718ace1 Start separating depth and stencil renderpass actions, only internally in the Vulkan code so far. 2017-12-30 22:40:57 +01:00
Henrik Rydgård 1e64919392 Vulkan: Create renderpass objects on demand. Just a refactoring to prepare for some later features/optimizations. 2017-12-30 22:35:43 +01:00
Henrik Rydgård b4bca7d7a0 VKRFramebufer: Just some checks to be slightly safer in case creation failed.. 2017-11-30 01:26:59 +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 766ddf9148 Temporarily turn off Vulkan threading on AMD, see issue #10097. 2017-11-16 21:40:00 +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
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 93e148fed6 Vulkan: Implement post-processing. The Vulkan backend is now "feature-complete", and GL is now legacy :P
Bit hacky but works.
2017-11-12 16:12:26 +01:00
Henrik Rydgård e18a023ce8 Vulkan: Noticed a framebuffer refcount leak, and changed my mind regarding those :) Let's do it this way instead. 2017-11-11 19:41:43 +01:00
Henrik Rydgård 6eb58b1252 Keep the draw context up to date in a bunch of places. More logging. 2017-11-09 16:28:22 +01:00
Henrik Rydgård 7922a2ab5c Vulkan: If acquiring a frame fails (happens sometimes during window resize), skip swapping the frame. Should help #10063 2017-11-07 09:56:41 +01:00
Unknown W. Brackets 138837ac54 Vulkan: Add texture image readback.
This way we can see how it was decoded, scaled, etc.  This also helps
seeing texture cache invalidation issues.
2017-11-06 00:29:01 -08:00
Henrik Rydgård 702e354a6a Vulkan multithread: Fix race condition. 2017-11-05 22:18:28 +01:00
Unknown W. Brackets 56d34402ff Vulkan: Resignal unexecuted fences on thread stop.
When resizing or similar, we may end up with frames we never ran.  This
also happens on startup.

We need them signaled at start so we can wait on them, or we may deadlock.
2017-11-05 09:22:14 -08:00
Unknown W. Brackets 2ad9eb047e Vulkan: Refcount framebuffer deletes.
Fixes crash in GoW when using a thread.
2017-11-05 08:44:12 -08:00
Unknown W. Brackets 97fa0a7461 Vulkan: Allow sync when using threading. 2017-11-04 22:23:01 -07:00
Unknown W. Brackets 8b55940a3d Vulkan: Fix out-of-sync frames on threading.
We end up with a second thread start at frame 1, so the thread needs to
start at frame 1 too.
2017-11-04 22:21:47 -07:00
Henrik Rydgård 8d0209c7e4 Stop leaking framebuffers on shutdown. Fix other shutdown issues. 2017-11-01 21:43:08 +01:00
Henrik Rydgård ca7a2d06ca Vulkan: Implement stencil upload (for Star Ocean). 2017-11-01 14:18:39 +01:00
Henrik Rydgård ed2731d197 Vulkan: Fix depal and shader blending. 2017-10-31 12:35:00 +01:00
Henrik Rydgård 97dced543e Share the conversion code between vulkan and D3D, fixing the missing format thing. 2017-10-29 14:42:51 +01:00
Henrik Rydgård 93c785b76d Color-convert directly during the readback, saves a copy. Like we already do in D3D11. 2017-10-29 10:56:36 +01:00