Commit graph

235 commits

Author SHA1 Message Date
GPUCode d84d595dab renderer_vulkan: Use VMA for images 2023-06-18 12:45:18 +03:00
GPUCode fd9b920d2d memory_allocator: Remove OpenGL interop
* Appears to be unused atm
2023-06-18 12:45:18 +03:00
lat9nq 0a4650cd2b externals: Add vma and initialize it
video_core: Move vma implementation to library
2023-06-18 12:45:12 +03:00
Liam 0875e158fe vulkan_device: disable extended_dynamic_state2 on ARM drivers 2023-06-15 12:29:54 -04:00
Matías Locatti 28e1429daf Merge pull request #10699 from liamwhite/conditional-barrier
shader_recompiler: remove barriers in conditional control flow when device lacks support
2023-06-12 16:50:59 -03:00
Liam 947a4f6141 shader_recompiler: translate f64 to f32 when unsupported on host 2023-06-10 12:38:49 -04:00
Liam b646ac2908 shader_recompiler: remove barriers in conditional control flow when device lacks support 2023-06-10 12:30:39 -04:00
liamwhite 06a6786a42 Merge pull request #10635 from mrcmunir/l4t-tx1-nvidia
Make VK_EXT_robustness2 optional
2023-06-07 14:04:14 -04:00
Carlos Estrague / Mrc_munir 1de6e7a3e5 Updated to lexicographical order suggestions 2023-06-06 19:33:52 +02:00
Carlos Estrague / Mrc_munir e450a7d28c Make VK_EXT_robustness2 optional
For some reason nvidia implemented Vulkan 1.2 supported without support for VK_EXT_robustness2 in tegra X1/X2 .

Fix vulkan work in TX1/TX2  L4T drivers .
2023-06-06 06:32:47 +02:00
bunnei c55db7e03d android: vulkan_device: Skip BGR565 emulation on S8gen2. 2023-06-03 00:06:01 -07:00
bunnei 4e2cdf74a3 android: vulkan_device: Only compile OverrideBcnFormats when used. 2023-06-03 00:06:00 -07:00
Liam 5d9250daf4 android: remove spurious warnings about BCn formats when patched with adrenotools 2023-06-03 00:06:00 -07:00
bunnei baa09b9cef android: video_core: Disable problematic compute shaders.
- Fixes #104.
2023-06-03 00:06:00 -07:00
bunnei 3571f28cde video_core: Enable support_descriptor_aliasing on Turnip, disable storage atomic otherwise. 2023-06-03 00:05:58 -07:00
bunnei 2810793b17 android: vulkan: Disable vertex_input_dynamic_state on Qualcomm. 2023-06-03 00:05:51 -07:00
bunnei e8efc6121d android: vulkan_debug_callback: Ignore many innocuous errors. 2023-06-03 00:05:50 -07:00
bunnei bf598273e9 android: vulkan_device: Disable VK_EXT_custom_border_color on Adreno.
- Causes crashes on sampler creation with Super Mario Odyssey.
2023-06-03 00:05:48 -07:00
Liam d54605d1a5 build: only enable adrenotools on arm64 2023-06-03 00:05:43 -07:00
liushuyu 44a629e584 video_core: fix clang-format errors 2023-06-03 00:05:33 -07:00
bunnei ea54161dbf video_core: vulkan_device: Correct error message for unsuitable driver. 2023-06-03 00:05:32 -07:00
bunnei 27250ee9ad android: vulkan: Implement adrenotools turbo mode. 2023-06-03 00:05:32 -07:00
bunnei 6ae51eff8a android: vulkan_device: Disable VK_EXT_extended_dynamic_state2 on Qualcomm.
- Newer drivers report this as supported, but it is broken.
2023-06-03 00:05:32 -07:00
bunnei 74e76421e6 android: native: Add support for custom Vulkan driver loading. 2023-06-03 00:05:31 -07:00
Billy Laws 2beb3051c1 Implement scaled vertex buffer format emulation
These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead.
2023-06-03 00:05:31 -07:00
Billy Laws 58d420937c Disable push descriptors on adreno drivers
Regular descriptors are around 1.5x faster to update.
2023-06-03 00:05:31 -07:00
Billy Laws ca2c3a6d5a Disable VK_EXT_extended_dynamic_state on mali 2023-06-03 00:05:31 -07:00
Liam 46927d217c externals: add adrenotools for bcenabler 2023-06-03 00:05:28 -07:00
bunnei b3a74d7f73 video_core: vulkan_device: Device initialization for Adreno. 2023-06-03 00:05:28 -07:00
Matías Locatti ebcfe440ba Merge pull request #10414 from liamwhite/anv-push-descriptor
vulkan_device: Enable VK_KHR_push_descriptor on newer ANV
2023-05-26 17:36:37 -03:00
Fernando S 178e8a6b0e Merge pull request #10398 from liamwhite/bcn
video_core: add ASTC recompression
2023-05-24 03:55:45 +02:00
Liam 011dfe1db7 textures: add BC1 and BC3 compressors and recompression setting 2023-05-23 12:54:40 -04:00
Liam cdd20c6231 vulkan_device: Enable VK_KHR_push_descriptor on newer ANV 2023-05-22 19:53:20 -04:00
scorpion81 9c33fade59 Limit the device access memory to 4 GB
Hardly limiting the device access memory to 4 GB for integrated vulkan devices here. This works for the Steam Deck in order not to go above 4 GB VRAM usage any more (above this value the likelihood to crash when the RAM exceeds 12 GB as well raises).

But there will be perhaps a detection mechanism necessary for detecting the real memory limit for integrated vulkan devices. Those likely might have small limits anyway, but what about integrated GPUs on machines with > 16 GB RAM, aka larger amounts ?
2023-05-22 16:48:55 +02:00
lat9nq 6597d2a5d3 vulkan_device: Disable VK_KHR_push_descriptor on ANV
Mesa commit ff91c5ca42bc80aa411cb3fd8f550aa6fdd16bdc breaks
VK_KHR_push_descriptor usage on ANV drivers 22.3.0, so disable it
and allow games to boot.
2023-05-17 22:19:57 -04:00
bunnei de9a79402d Merge pull request #10262 from liamwhite/depth-clamp
vulkan_common: disable depth clamp dynamic state for older radv
2023-05-17 12:19:03 -07:00
liamwhite 836b8e1d64 Merge pull request #10288 from liamwhite/vram-limits
vulkan_device: reserve extra memory to prevent swaps
2023-05-14 17:02:15 -04:00
Liam 41353d738a vulkan_device: reserve extra memory to prevent swaps 2023-05-14 16:49:59 -04:00
Liam b10b8b7a57 vulkan_common: fix incompatible property flags 2023-05-14 01:13:11 -04:00
Liam 50b42ab980 vulkan_common: disable depth clamp dynamic state for older radv 2023-05-13 00:37:17 -04:00
liamwhite de45be2681 Merge pull request #10172 from Kelebek1/debug_validation_names
Log object names with debug renderer, add a GPU address to ImageViews
2023-05-07 14:09:03 -04:00
bunnei 12c4c09b3f Merge pull request #10125 from lat9nq/vsync-select
configuration: Expose separate swap present modes
2023-05-06 21:55:39 -07:00
Kelebek1 d43a18a6ef Log object names with debug renderer, add a GPU address to ImageViews 2023-05-06 04:48:32 +01:00
lat9nq ff2197130f vulkan_surface: Pass only window info for surface creation
We don't need the whole EmuWindow when creating a surface,
and it creates onerous requirements outside of typical usage for
creating a surface elsewhere.
2023-05-02 21:51:30 -04:00
Liam 44b15592e8 vulkan: disable turbo when debugging tool is attached 2023-05-02 18:14:57 -04:00
Liam fb2af6a41e vulkan: use plain fences when timeline semaphores are not available 2023-04-14 22:53:37 -04:00
Jan Beich 604f887377 externals: update Vulkan-Headers to v1.3.246 2023-04-01 05:38:54 +00:00
Liam 09a866fe79 vulkan: disable extendedDynamicState3ColorBlendEquation on radv 2023-03-15 15:55:07 -04:00
Liam 5be8a74b0c general: fix spelling mistakes 2023-03-12 11:33:01 -04:00
Liam cd7e0b03b7 vulkan_common: disable vertexInputDynamicState on unsupported driver 2023-03-01 22:48:12 -05:00