Commit Graph

38 Commits

Author SHA1 Message Date
3627398cf5 VideoBackends: support multiple compute images for some backends (D3D, OGL, Vulkan) 2023-06-28 17:15:31 -05:00
c1be9628fc VideoBackends:Vulkan: Use WorkQueueThread 2023-03-20 16:40:32 +01:00
9186050daa VideoBackends:Vulkan: Clean up submission thread BlockingLoop usage 2023-03-20 16:23:35 +01:00
af313f8419 VideoCommon: add constant value to set the allowed maximum number of pixel samplers 2023-02-10 00:46:11 -06:00
3beb22ed7f VideoBackends:Vulkan: Synchronize presentation
Synchronize with the submission thread
if the last present is not done yet.
2022-11-07 02:20:22 +01:00
027e10460a Merge pull request #10977 from tellowkrinkle/FixBackendMultithreading
VideoBackends:Vulkan: Improve backend multithreading
2022-10-25 04:14:01 -04:00
aa1679f2c7 VideoBackends:Vulkan: Clean up unused memory allocation code 2022-10-23 03:21:29 +02:00
1ba58e83ca VideoBackends:Vulkan: Use VMA for stream buffer 2022-10-23 03:21:29 +02:00
0532f4a05a VideoBackends:Vulkan: Use VMA for staging buffers 2022-10-23 03:21:14 +02:00
6fd933915b VideoBackends:Vulkan: Improve backend multithreading
Makes the multiple threads actually able to run at the same time
2022-10-17 00:05:35 -05:00
10f973a87f Merge pull request #11122 from K0bin/descriptor-overhaul
VideoBackends:Vulkan: Allocate descriptor pools as needed
2022-10-17 04:25:35 +02:00
6992b0d8e1 VideoBackends:Vulkan: Allocate descriptor pools as needed 2022-10-16 17:04:35 +02:00
332824f7d5 VideoBackends:Vulkan: Fix command buffer cleanup 2022-10-08 21:40:33 +02:00
eea31db781 Vulkan/CommandBufferManager: Show error code in PanicAlerts. 2022-10-04 19:50:23 +02:00
fba7d35f94 VideoBackends:Vulkan: Associate descriptor pool with frame rather than command buffer 2022-10-01 01:26:04 +02:00
ed75a58061 VideoBackends:Vulkan: Decouple available command buffers from frames in flight 2022-10-01 01:26:04 +02:00
e8fa867f14 VideoBackends:Vulkan: Only synchronize with submission thread when necessary
We only need to synchronize with the submission thread
when submitting on the GPU thread or when waiting for a command buffer.
2022-10-01 01:26:04 +02:00
e149ad4f0a treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
139d4fc76e General: Convert PanicAlerts over to fmt equivalent
Converts lingering panic alert calls over to the fmt-capable ones.
2020-12-02 13:38:33 -05:00
6ef9d70701 name some threads 2020-08-22 17:22:07 -07:00
08cc73108a Vulkan: Treat VK_SUBOPTIMAL_KHR as VK_SUCCESS on Android
Android 10 seems to expect a prerotated/transformed swap chain for optimal
presentation. For now, until we implement that, just ignore the hint.
2020-01-31 19:16:06 +10:00
16f103ab42 Vulkan: Exclusive fullscreen support via VK_EXT_full_screen_exclusive 2019-10-31 22:45:59 +10:00
a9663669dc Common/CommonFuncs: Remove now-unneccessary ArraySize function
Since C++17, non-member std::size() is present in the standard library
which also operates on regular C arrays. Given that, we can just replace
usages of ArraySize with that where applicable.

In many cases, we can just change the actual C array ArraySize() was
called on into a std::array and just use its .size() member function
instead.

In some other cases, we can collapse the loops they were used in, into a
ranged-for loop, eliminating the need for en explicit bounds query.
2019-06-01 10:07:57 -04:00
e98f43d2af bbox minor fx 2019-05-09 17:30:17 +08:00
427dd45151 Vulkan: Simplify command buffer fence tracking 2019-03-29 20:54:44 +10:00
f039149198 Move most backend functionality to VideoCommon 2019-02-19 16:57:54 +10:00
ce1cc2d9fa Vulkan: Don't execute command buffer before shutting down
We don't need to, and this was causing occasional crashes on Adreno.
2019-01-27 12:41:10 +10:00
50a476c371 Assert: Uppercase assertion macros
Macros should be all upper-cased. This is also kind of a wart that's
been sticking out for quite a while now (we avoid prefixing
underscores).
2018-03-14 22:03:12 -04:00
47f453d7aa Vulkan: Fix waiting on non-existant fence when reading back 2018-01-26 12:33:24 +10:00
f43d85921d VideoBackends: Add AbstractStagingTexture class
Can be used for asynchronous readback or upload of textures.
2017-11-22 18:47:04 +10:00
cdf34a79f7 Vulkan: Set a flag to resize the swap chain when presenting fails
Drivers can return VK_ERROR_OUT_OF_DATE_KHR from vkQueuePresentKHR, and
we should resize the image in this case, as well as when getting it back
from vkAcquireNextImageKHR.
2017-10-10 23:21:40 +10:00
a5be5a3a76 Vulkan: Use a separate queue for presenting.
Before this change, we simply fail if the device does not expose one
queue family that supports both graphics and present. Currently this is
fine, since devices tend to lay out their queues in this way. NV, for
instance, tends to have one queue family for all graphics operations and
one more for transfer only. However, it's not a hard requirement, and it
is cheap to use a separate queue, so we might as well.
2017-09-05 12:00:09 -07:00
c8b98dca1a Vulkan: Raise the number of texel buffer/storage image descriptors
Running with GPU texture decoding enabled could cause us to run out of
descriptors within a single frame.
2017-04-14 18:29:53 +10:00
5fbc63fbcf Vulkan: Compute shader support 2017-04-01 12:32:57 +10:00
3c92b35422 Vulkan: Use multiple command pools, one per frame
Instead of resetting two command buffers, now we only have to call
vkResetCommandPool once at the start of a frame.

NV's recommends using one pool per frame/thread. May offer a very small
boost in performance on some systems.
2016-11-15 00:40:15 +10:00
1286c309e3 Vulkan: Fix compilation on 32-bit targets 2016-10-03 19:11:47 +10:00
5f66cf5ed7 Vulkan: Only submit init/upload command buffer when it has commands
This way we're not submitting empty buffers when it's unnecessary.
2016-10-01 02:40:03 +10:00
77a128ab87 Implement experimental Vulkan backend 2016-10-01 02:40:01 +10:00