summaryrefslogtreecommitdiff
path: root/src/video_core/vulkan_common
AgeCommit message (Collapse)Author
2025-05-12vulkan: Improve memory allocation robustnessZephyron
Enhances the Vulkan memory allocator with better OOM handling and memory alignment: * Add memory recovery by cleaning up empty allocations before failing * Implement proper fallback to non-device-local memory * Simplify memory alignment handling for different vendors * Add better error logging for allocation failures * Add IsEmpty() helper to track unused allocations * Fix alignment requirements for Adreno (4KB) vs other vendors These changes improve the robustness of memory allocation, particularly in low-memory situations, and streamline vendor-specific alignment requirements.
2025-05-12build: upgrade fmt and SDL2Zephyron
Update fmt library to version 11.0.2 and make necessary adjustments: - Replace fmt/format.h includes with fmt/ranges.h - Add const qualifiers to formatter::format functions - Update CMake to require fmt version 11 Additional dependency updates: - Update SDL2 bundled version from 2.28.2 to 2.32.0 - Update catch2 to version 3.7.1 - Update vcpkg baseline to ca846b21276c9a3171074ac8d2b4f6516894a7d0
2025-05-11vulkan: Add Samsung driver workaroundsZephyron
Add workarounds for Samsung Xclipse GPUs: - Disable extendedDynamicState3ColorBlendEquation as it is broken in Samsung drivers, similar to AMD drivers - Add Samsung's proprietary driver to the validated driver list for clock boosting - Fix log message to indicate both AMD and Samsung drivers have broken color blend equation support Remove stray logical OR operator from validated_driver condition.
2025-05-11vulkan: Add 4KB memory alignment for AMD and Qualcomm driversZephyron
Adds special handling for memory allocation size on AMD and Qualcomm (Adreno) drivers by aligning allocations to 4KB boundaries. This fixes potential memory allocation issues on these drivers where unaligned allocations may fail or cause undefined behavior. Affected drivers: - AMD Proprietary (AMDVLK) - AMD Open Source (RADV) - Qualcomm Proprietary (Adreno)
2025-05-11vulkan: Relax VRAM allocation limits for better stabilityZephyron
Adjusts VRAM allocation strategy to be more conservative while maintaining performance: - Increases reserve memory from 1/8th to 1/4th (max 2GB) for discrete GPUs - Increases base memory limit from 6GB to 8GB - Doubles resolution scaling memory from 1GB to 2GB per scale factor - Reduces system memory reservation from 8GB to 4GB for integrated GPUs - Increases maximum memory limit from 4GB to 6GB for integrated GPUs These changes help prevent memory leaks while still providing adequate VRAM for optimal performance.
2024-12-20Vulkan validation error fix.Lucas Clemente Vella
Different image usage flags between image creation and image view creation.
2024-12-20Radeon gpu profiler detection supportAlessio
2024-12-20Macos moltenvk headersNick Majkic
2024-12-20renderer_vulkan: fallback to D32 for missing D24X8Liam
2024-02-22Merge pull request #13001 from liamwhite/scaled-availabilityNarr the Reg
vulkan_device: don't use fixed cap for memory limits
2024-02-22Merge pull request #13075 from liamwhite/mali-having-a-bad-timeNarr the Reg
shader_recompiler: throw on missing geometry streams in geometry shaders
2024-02-19scope_exit: Make constexprFearlessTobi
Allows the use of the macro in constexpr-contexts. Also avoids some potential problems when nesting braces inside it.
2024-02-19shader_recompiler: throw on missing geometry streams in geometry shadersLiam
2024-02-18vulkan_device: don't use fixed cap for memory limitsLiam
2024-02-01Add Samsung Proprietary Driver ID to Reorder PassMoonlacer
For RDNA-based Samsung Xclipse GPUs
2024-01-29Merge pull request #12439 from FireBurn/vkresultliamwhite
Simplify VkResult lookup
2024-01-24Demote Mesa dozen to the bottom of the device listMatías Locatti
2024-01-22Simplify VkResult lookupMike Lothian
2024-01-07Fix typos in video_coreViktor Szépe
2023-12-26Merge pull request #12449 from liamwhite/debug-utilsliamwhite
renderer_vulkan: skip SetObjectNameEXT on unsupported driver
2023-12-23renderer_vulkan: skip SetObjectNameEXT on unsupported driverLiam
2023-12-23renderer_vulkan: demote format assert to error logLiam
2023-12-20Merge pull request #12414 from jbeich/vk274liamwhite
externals: update Vulkan-Headers to v1.3.274
2023-12-20Merge pull request #12403 from liamwhite/clipdistanceFernando S
shader_recompiler: use minimal clip distance array
2023-12-20vulkan_common: unbreak build with Vulkan-Headers 1.3.274Jan Beich
src/video_core/vulkan_common/vulkan_wrapper.cpp:293:13: error: enumeration value 'VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR' not handled in switch [-Werror,-Wswitch] switch (result) { ^~~~~~
2023-12-18shader_recompiler: ignore clip distances beyond driver support levelLiam
2023-12-17renderer_vulkan: work around turnip binding bug in a610Liam
2023-11-29renderer_vulkan: exclude more qcom drivers from extensionsLiam
2023-11-29Merge pull request #12154 from liamwhite/more-driversliamwhite
vulkan_device: add names for more driverID enumeration values
2023-11-26Merge pull request #11535 from GPUCode/upload_cmdbufFernando S
renderer_vulkan: Introduce separate cmd buffer for uploads
2023-11-24vulkan_device: add names for more driverID enumeration valuesLiam
2023-11-24renderer_vulkan: exclude steam deck oled from force max clock settingLiam
2023-11-19renderer_vulkan: ignore viewport stores on non-supporting driversLiam
2023-11-19Vulkan: Be more generous with pipeline workers for AndroidFernando Sahmkow
2023-11-12renderer_vulkan: Introduce separate cmd buffer for uploadsGPUCode
2023-10-24vulkan_common: use highest API versionLiam
2023-10-19Manually robust on Maxwell and earlierKelebek1
2023-10-10Not not allocate DeviceLocal buffers as mappedKelebek1
2023-10-07Merge pull request #11656 from liamwhite/recreate-surface-automaticallyliamwhite
vk_present_manager: recreate surface on any surface loss
2023-10-07Merge pull request #11544 from Kelebek1/reduce_stream_buffer_renderdocliamwhite
Allow GPUs without rebar to open multiple RenderDoc captures
2023-10-07Merge pull request #11688 from Kelebek1/x8d42liamwhite
Implement X8_D24 pixel format
2023-10-07Merge pull request #11684 from Kelebek1/disable_push_descriptor_maxwellliamwhite
Disable push descriptor for Pascal and older nVidia architectures
2023-10-06Allow GPUs without rebar to open multiple RenderDoc capturesKelebek1
2023-10-06Implement X8_D24 formatKelebek1
2023-10-05Rework nvidia architecture detection, disable push descriptor for Pascal and ↵Kelebek1
older
2023-10-02vk_present_manager: recreate surface on any surface lossLiam
2023-10-02ci: fix new codespell errorsLiam
2023-09-28Merge pull request #11402 from FernandoS27/depth-bias-controlliamwhite
Vulkan: Implement Depth Bias Control
2023-09-25renderer_vulkan: Implement MSAA copiesGPUCode
2023-09-25Merge pull request #11225 from FernandoS27/no-laxatives-in-santas-cookiesliamwhite
Y.F.C: Rework the Query Cache.