Commit Graph

43 Commits

Author SHA1 Message Date
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
dbaf49e4d4 VulkanDevice: Fix ARM32 build (again) 2023-12-10 23:31:01 +10:00
d068799515 VulkanDevice: Fix incomplete swap chain clear with dynamic rendering 2023-12-09 22:08:14 +10:00
a907e1f550 GPUDevice: Pool textures 2023-12-09 22:08:13 +10:00
3b2c70cda5 GPUDevice: Get rid of framebuffer abstraction 2023-12-09 22:08:13 +10:00
2ca503639d GPU/HW: Avoid extra texture copy in Vulkan/GL 2023-12-01 19:08:50 +10:00
e382f2b64a Settings: Add option to disable DSB/fbfetch 2023-11-28 14:38:38 +10:00
ff17444074 GPU/HW: Add framebuffer fetch blending path 2023-11-25 21:22:35 +10:00
f05ff4103e Misc: Build fixes for Android 2023-11-04 20:11:51 +10:00
a4c7d03ed2 VulkanDevice: Ignore GPUs which don't support Vulkan 1.1 2023-10-18 00:49:01 +10:00
eb080834ad OpenGLDevice: Actually check max texture buffer size 2023-10-08 01:10:52 +10:00
b678fcd874 GPUDevice: Move debug messages over to fmt 2023-09-23 14:14:52 +10:00
184b0a1a52 Misc: Swap most C format strings for fmt 2023-09-23 14:14:52 +10:00
92440bdfcf Log: Add fmt overloads 2023-09-23 14:14:52 +10:00
ac0601f408 Common: Drop String, add SmallString 2023-09-23 14:14:52 +10:00
60aca2fc4d Misc: Swap LIKELY/UNLIKELY macros for attributes 2023-09-05 22:10:50 +10:00
adc124c759 Misc: Unreachable code warning fixes 2023-09-05 22:10:50 +10:00
d6cf88c14f VulkanDevice: Fix persistent descriptor allocation error 2023-09-05 20:17:32 +10:00
80e3d29ab8 Misc: clang-cl warning clean-up 2023-09-03 14:30:26 +10:00
0076ab5cc4 System: Restore context after pumping messages 2023-09-03 13:14:22 +10:00
e804b5e701 GPUDevice: Support geometry shaders 2023-09-02 22:09:22 +10:00
0da14a5442 GPU/Vulkan: Fix MSAA
And disable sample rate shading ("SSAA") on AMD, Intel, and broken
mobile drivers, because it doesn't work.
2023-09-01 21:25:12 +10:00
22eecc2b0a VulkanDevice: Fix multi-texture+UBO push descriptors 2023-08-30 02:03:22 +10:00
8db8baf33f GPUDevice: Move display logic to GPU 2023-08-30 00:44:00 +10:00
d750e4d417 VulkanDevice: Fix for MacOS 2023-08-24 18:04:48 +10:00
e3d9ba4c99 Rewrite host GPU abstraction
- Don't have to repeat the same thing for 4 renderers.
 - Add native Metal renderer.
2023-08-20 21:55:38 +10:00