Commit Graph

75 Commits

Author SHA1 Message Date
efc821bc84 VulkanDevice: Fix incorrect condition in UnbindTexture() 2024-08-06 15:32:40 +10:00
30c5ebae72 GPUDevice: Fix instances of RWTexture not clearing 2024-08-03 02:05:21 +10:00
5e8870ec69 D3D12: Avoid redundant render pass restarts 2024-07-23 21:11:01 +10:00
1006fa00da GPUDevice: Add support for Raster Ordered Views 2024-07-23 14:46:06 +10:00
00ccea84b8 GPUDevice: Replace remaining StdStringFromFromFormat() with fmt 2024-07-19 13:44:09 +10:00
3749b812a3 GPUDevice: Add ExecuteAndWaitForGPUIdle() 2024-07-04 21:54:19 +10:00
4b61a3cbf3 Qt: Unrestrict resolution scale up to device limits 2024-07-04 13:25:27 +10:00
9ef7e8c5d0 GPU/HW: Use GSVector instead of Rectangle 2024-07-03 15:44:12 +10:00
d8bd35e8d6 GPUDevice: Add D24S8/D32F/D32FS8 types 2024-06-29 13:09:45 +10:00
1797050f97 VulkanDevice: Release swap chain images on resize 2024-06-23 16:17:31 +10:00
f41c238c53 VulkanDevice: Disable VK_KHR_dynamic_rendering_local_read on AMD
Like everything else on RDNA3, it appears to be broken and causes GPU
hangs/resets.
2024-06-10 17:44:10 +10:00
0f9a255093 System: Fallback to FIFO on AMD (no mailbox support) 2024-05-24 22:48:26 +10:00
42a5fe0a6e GPU: Further improve vsync handling 2024-05-24 02:33:33 +10:00
4e922a34a7 Log: Simplify macros 2024-05-24 02:08:14 +10:00
792717e03e Misc: Get rid of format string for result logging 2024-05-24 00:30:06 +10:00
b6d019db66 Misc: Replace log printf calls with fmt 2024-05-24 00:29:49 +10:00
6cad97b404 GPUDevice: Make vsync actually tear-free
Apparently users prefer stutter over tearing...
2024-05-23 13:52:26 +10:00
7abcdf2b59 VulkanDevice: Fix double unload 2024-05-15 20:31:04 +10:00
8e3284d8c6 Vulkan: Simplify loader using DynamicLibrary 2024-05-15 00:50:25 +10:00
ca3cfbaa99 Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
6a02f9c67b VulkanDevice: Fix possible null descriptor set with feedback loop 2024-04-30 21:34:08 +10:00
cbe95b281a VulkanDevice: Backport buggy NVIDIA driver workarounds from PCSX2 2024-04-30 21:34:02 +10:00
e9107bd140 VulkanDevice: Add env var for non-semantic debug info
Backport of 070068366f
2024-04-14 17:25:23 +10:00
e5a024ba85 MetalDevice: Add support for framebuffer fetch 2024-04-12 21:07:16 +10:00
e646096180 VulkanDevice: Fix validation errors 2024-04-11 22:53:02 +10:00
7344661801 GPUDevice: Split submission and presentation 2024-04-11 22:53:02 +10:00
88270771da System: Combine VRR and Optimal Frame Pacing
GSync/FreeSync display users should:
 - DISABLE VSync.
 - ENABLE Optimal Frame Pacing.
2024-04-11 21:33:40 +10:00
e936e7498a VulkanDevice: Fix incorrect null texture bind condition 2024-04-10 12:14:29 +10:00
41cc60e87e VulkanDevice: Use vkCmdClearAttachments() to avoid render pass restart 2024-04-01 18:12:53 +10:00
72ab669e70 GPUDevice: Add support for feedback loops 2024-04-01 13:55:19 +10:00
315524a89c VulkanDevice: Fix render pass fallback path with MRT 2024-03-24 22:32:44 +10:00
de1338cbbc VulkanDevice: Add additional semaphore on swap chain
We don't actually need +1 semaphores, or, more than one really.
But, the validation layer gets cranky if we don't fence wait before the next image acquire.
So, add an additional semaphore to ensure that we're never acquiring before fence waiting.
2024-03-08 14:16:56 +10:00
a1d7d214cf GPUDevice: Add support for VRR and relaxed vsync 2024-03-03 14:03:07 +10:00
b060edc61b VulkanDevice: Actually use all the swap chain semaphores 2024-03-01 00:50:27 +10:00
f936a36c85 GPUDevice: Add GPUDownloadTexture
Which can also be based in host/client memory.
Use it for screenshots and VRAM downloads.
2024-02-29 18:56:50 +10:00
4309d8ebf3 VulkanDevice: Add TryImportHostMemory
Utilizing `VK_EXT_external_memory_host`, attempt to import the host-pointer into a `VkBuffer`, `VkDeviceMemory`, and an offset to the start of the data. When the page size matches the import alignment, then it is possible to import an entire range of memory from the host directly into a vulkan-side buffer to read and write into.
2024-02-29 17:00:51 +10:00
0ce1149e41 VulkanDevice: Optional VK_EXT_external_memory_host enablement
Allows usage of this extension only when the import-pointer-alignment
matches that of the hosts' page size.
2024-02-29 17:00:51 +10:00
bcf7f55b93 VulkanDevice: Fix potential race between submit and main thread 2024-01-22 22:57:42 +10:00
150ab8f4af GPU: Add host/hardware stats 2024-01-22 14:41:19 +10:00
f66866ed73 GPUDevice: Use Error class for initialization errors 2024-01-21 00:18:33 +10:00
5d3cf93aa3 GPUDevice: Fix race on resize in GL/Vulkan 2024-01-10 22:46:57 +10:00
118c6c1269 VulkanDevice: Don't assume presence of vkGetPhysicalDeviceFeatures2 2023-12-26 13:00:58 +10:00
62d2f12236 Settings: Expose exclusive fullscreen control 2023-12-25 23:44:15 +10:00
46e0afd2d4 VulkanDevice: Actually allow enumeration of 1.0 device 2023-12-25 23:02:13 +10:00
c233eb53ab VulkanDevice: Potentially re-enable Vulkan 1.0 support 2023-12-25 21:59:52 +10:00
dc5e4120cd GPUDevice: Improve texture pooling 2023-12-20 22:42:32 +10:00
717e0665ae GPUDevice: Support R16I/R16U textures 2023-12-19 22:38:36 +10:00
7e1276fbac GPUDevice: Fix binding deferred cleared textures
i.e. briefly flashing previous state after reset.
2023-12-14 20:23:48 +10:00
c20805f2be VulkanDevice: Work around some mobile driver issues 2023-12-13 23:01:10 +10:00
79c226efff SmallString: fmt -> format, format -> sprintf 2023-12-13 21:06:15 +10:00