summaryrefslogtreecommitdiffstats
path: root/src/video_core/vulkan_common (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #12439 from FireBurn/vkresultliamwhite2024-01-293-107/+11
|\ | | | | Simplify VkResult lookup
| * Simplify VkResult lookupMike Lothian2024-01-223-107/+11
| |
* | Demote Mesa dozen to the bottom of the device listMatías Locatti2024-01-251-0/+10
| |
* | Fix typos in video_coreViktor Szépe2024-01-072-3/+3
|/
* Merge pull request #12449 from liamwhite/debug-utilsliamwhite2023-12-261-1/+3
|\ | | | | renderer_vulkan: skip SetObjectNameEXT on unsupported driver
| * renderer_vulkan: skip SetObjectNameEXT on unsupported driverLiam2023-12-231-1/+3
| |
* | renderer_vulkan: demote format assert to error logLiam2023-12-231-8/+8
|/
* Merge pull request #12414 from jbeich/vk274liamwhite2023-12-201-0/+2
|\ | | | | externals: update Vulkan-Headers to v1.3.274
| * vulkan_common: unbreak build with Vulkan-Headers 1.3.274Jan Beich2023-12-201-0/+2
| | | | | | | | | | | | 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) { ^~~~~~
* | Merge pull request #12403 from liamwhite/clipdistanceFernando S2023-12-201-0/+4
|\ \ | | | | | | shader_recompiler: use minimal clip distance array
| * | shader_recompiler: ignore clip distances beyond driver support levelLiam2023-12-191-0/+4
| |/
* / renderer_vulkan: work around turnip binding bug in a610Liam2023-12-171-0/+5
|/
* renderer_vulkan: exclude more qcom drivers from extensionsLiam2023-11-301-15/+22
|
* Merge pull request #12154 from liamwhite/more-driversliamwhite2023-11-291-2/+32
|\ | | | | vulkan_device: add names for more driverID enumeration values
| * vulkan_device: add names for more driverID enumeration valuesLiam2023-11-241-2/+32
| |
* | Merge pull request #11535 from GPUCode/upload_cmdbufFernando S2023-11-261-0/+4
|\ \ | | | | | | renderer_vulkan: Introduce separate cmd buffer for uploads
| * | renderer_vulkan: Introduce separate cmd buffer for uploadsGPUCode2023-11-121-0/+4
| | |
* | | renderer_vulkan: exclude steam deck oled from force max clock settingLiam2023-11-241-1/+2
| |/ |/|
* | renderer_vulkan: ignore viewport stores on non-supporting driversLiam2023-11-191-0/+4
| |
* | Vulkan: Be more generous with pipeline workers for AndroidFernando Sahmkow2023-11-192-0/+13
|/
* vulkan_common: use highest API versionLiam2023-10-241-1/+1
|
* Manually robust on Maxwell and earlierKelebek12023-10-192-20/+33
|
* Not not allocate DeviceLocal buffers as mappedKelebek12023-10-101-4/+4
|
* Merge pull request #11656 from liamwhite/recreate-surface-automaticallyliamwhite2023-10-071-0/+3
|\ | | | | vk_present_manager: recreate surface on any surface loss
| * vk_present_manager: recreate surface on any surface lossLiam2023-10-031-0/+3
| |
* | Merge pull request #11544 from Kelebek1/reduce_stream_buffer_renderdocliamwhite2023-10-072-4/+31
|\ \ | | | | | | Allow GPUs without rebar to open multiple RenderDoc captures
| * | Allow GPUs without rebar to open multiple RenderDoc capturesKelebek12023-10-062-4/+31
| | |
* | | Merge pull request #11688 from Kelebek1/x8d42liamwhite2023-10-071-0/+1
|\ \ \ | | | | | | | | Implement X8_D24 pixel format
| * | | Implement X8_D24 formatKelebek12023-10-061-0/+1
| | |/ | |/|
* | | Merge pull request #11684 from Kelebek1/disable_push_descriptor_maxwellliamwhite2023-10-071-12/+43
|\ \ \ | |/ / |/| | Disable push descriptor for Pascal and older nVidia architectures
| * | Rework nvidia architecture detection, disable push descriptor for Pascal and olderKelebek12023-10-051-12/+43
| | |
* | | ci: fix new codespell errorsLiam2023-10-031-1/+1
|/ /
* | Merge pull request #11402 from FernandoS27/depth-bias-controlliamwhite2023-09-284-0/+35
|\ \ | | | | | | Vulkan: Implement Depth Bias Control
| * | Vulkan: add temporary workaround for AMDVLKFernando Sahmkow2023-09-162-2/+8
| | |
| * | Vulkan: Implement Depth Bias ControlFernando Sahmkow2023-09-163-0/+29
| |/
* | renderer_vulkan: Implement MSAA copiesGPUCode2023-09-251-0/+5
| |
* | Merge pull request #11225 from FernandoS27/no-laxatives-in-santas-cookiesliamwhite2023-09-253-0/+37
|\ \ | | | | | | Y.F.C: Rework the Query Cache.
| * | Macro HLE: Add DrawIndirectByteCountFernando Sahmkow2023-09-232-0/+9
| | |
| * | Query Cachge: Fully rework Vulkan's query cacheFernando Sahmkow2023-09-233-0/+28
| | |
* | | Merge pull request #11165 from Morph1984/ds_blitliamwhite2023-09-242-27/+33
|\ \ \ | |/ / |/| | vulkan_device: Return true if either depth/stencil format supports blit
| * | vulkan_device: Test depth stencil blit support by formatMorph2023-08-012-27/+33
| | |
| * | vulkan_device: Return true if either depth/stencil format supports blitMorph2023-07-271-1/+1
| | | | | | | | | | | | On devices that don't support D24S8 but supports D32S8, this should still return true if D32S8 supports src and dst blit
* | | renderer_vulkan: Correct component order for A4B4G4R4_UNORMGPUCode2023-09-212-0/+16
| |/ |/|
* | Merge pull request #11470 from GPUCode/bundle-vvlliamwhite2023-09-103-34/+3
|\ \ | | | | | | android: Add option to bundle validation layer
| * | renderer_vulkan: Remove debug reportGPUCode2023-09-083-34/+3
| | | | | | | | | | | | * VVL has implemented the more modern alternative, thus we don't need to support it anymore
* | | VideoCore: Implement DispatchIndirectFernando Sahmkow2023-08-272-0/+6
|/ /
* | Merge pull request #11302 from vonchenplus/vulkan_macosliamwhite2023-08-222-9/+15
|\ \ | | | | | | Add macos moltenvk bundle, Add copy moltevk dylib script
| * | Add macos moltenvk bundle, Add copy moltevk dylib scriptFeng Chen2023-08-222-9/+15
| | |
* | | video_core: Fix vulkan assert errorFeng Chen2023-08-181-0/+8
|/ /
* | vulkan_device: disable features associated with unloaded extensionsLiam2023-08-112-74/+114
| |
* | vulkan_device: Fix subgroup_size_control detection on Vulkan 1.3Ameer J2023-08-032-3/+3
| |
* | vulkan_device: Fix VK_EXT_subgroup_size_control detectionAmeer J2023-08-031-1/+1
| |
* | Merge pull request #11202 from abouvier/vulkan-configliamwhite2023-08-024-34/+13
|\ \ | | | | | | vulkan: centralize config
| * | vulkan: centralize configAlexandre Bouvier2023-08-024-34/+13
| | |
* | | vulkan_device: disable EDS3 blending on all AMD driversLiam2023-08-021-8/+7
|/ /
* | Merge pull request #11188 from abouvier/vma-fixliamwhite2023-07-317-19/+30
|\ \ | | | | | | vma: enable options everywhere
| * | vma: enable options everywhereAlexandre Bouvier2023-07-317-19/+30
| | |
* | | Formatting fixMoonlacer2023-07-311-2/+1
| | |
* | | Match log warningMoonlacer2023-07-311-1/+1
| | |
* | | Formatting fixMoonlacer2023-07-301-1/+2
| | |
* | | Address feedback and change log warningMoonlacer2023-07-301-3/+3
| | |
* | | Revert "Revert "Blacklist EDS3 blending from new AMD drivers""Moonlacer2023-07-301-0/+8
|/ /
* / Revert "Blacklist EDS3 blending from new AMD drivers"Moonlacer2023-07-261-8/+0
|/
* cmake: allow using system VMA libraryAlexandre Bouvier2023-07-121-0/+8
|
* Merge pull request #10994 from liamwhite/ue4-preferredliamwhite2023-07-051-2/+2
|\ | | | | vulkan_common: use device local preferred for image memory
| * vulkan_common: use device local preferred for image memoryLiam2023-07-021-2/+2
| |
* | video_core: vulkan_device: Disable timeline semaphore on Turnip, fix qcom version check.bunnei2023-07-042-9/+16
| |
* | Merge pull request #10964 from bunnei/gpu-remove-qcom-checkbunnei2023-07-041-3/+27
|\ \ | | | | | | video_core: vulkan_device: Fix S8Gen2 dynamic state checks.
| * | video_core: vulkan_device: Change to driver version check.bunnei2023-07-031-15/+23
| | |
| * | video_core: vulkan_device: Scope S8Gen2 checks to just Qualcomm.bunnei2023-06-301-2/+2
| | |
| * | video_core: vulkan_device: Fix S8Gen2 dynamic state checks.bunnei2023-06-301-3/+19
| | |
* | | Merge pull request #10479 from GPUCode/format-listliamwhite2023-07-021-0/+6
|\ \ \ | |_|/ |/| | Add support for VK_KHR_image_format_list
| * | renderer_vulkan: Add support for VK_KHR_image_format_listGPUCode2023-07-011-0/+6
| | |
* | | vulkan: Use newer VK_EXT_metal_surface to create surface for MoltenVK.Steveice102023-07-013-13/+12
|/ /
* / Blacklist EDS3 blending from new AMD driversMatías Locatti2023-06-291-0/+8
|/
* video_core: Add BCn decoding supportGPUCode2023-06-281-5/+10
|
* renderer_vulkan: Add more feature checkingGPUCode2023-06-282-0/+20
|
* renderer_vulkan: Don't assume debug tool with debug rendererGPUCode2023-06-281-1/+1
| | | | * Causes crashes because mali drivers don't support debug utils
* renderer_vulkan: Bump minimum SPIRV versionGPUCode2023-06-281-1/+1
| | | | * 1.3 is guaranteed on all 1.1 drivers
* renderer_vulkan: Respect viewport limitGPUCode2023-06-281-0/+4
|
* renderer_vulkan: Add suport for debug report callbackGPUCode2023-06-286-35/+92
|
* Merge pull request #10473 from GPUCode/vmaliamwhite2023-06-276-147/+299
|\ | | | | Use vulkan memory allocator
| * externals: Use cmake subdirectoryGPUCode2023-06-263-6/+0
| |
| * vulkan_common: Remove required flagsGPUCode2023-06-221-15/+1
| | | | | | | | * Allows VMA to fallback to system RAM instead of crashing
| * renderer_vulkan: Add missing initializersGPUCode2023-06-182-5/+13
| |
| * renderer_vulkan: Use VMA for buffersGPUCode2023-06-185-49/+186
| |
| * renderer_vulkan: Use VMA for imagesGPUCode2023-06-185-38/+100
| |
| * memory_allocator: Remove OpenGL interopGPUCode2023-06-182-64/+5
| | | | | | | | * Appears to be unused atm
| * externals: Add vma and initialize itlat9nq2023-06-182-1/+25
| | | | | | | | video_core: Move vma implementation to library
* | Remove memory allocations in some hot pathsKelebek12023-06-221-0/+1
| |
* | vulkan_device: Remove brace initializertoast29032023-06-191-1/+1
| | | | | | Co-authored-by: Tobias <thm.frey@gmail.com>
* | video_core: Check broken compute earlierlat9nq2023-06-191-1/+2
| | | | | | | | | | Checks it as the system is determining what settings to enable. Reduces the need to check settings while the system is running.
* | video_core: Formalize HasBrokenComputelat9nq2023-06-182-0/+25
| | | | | | | | | | | | | | | | Also limits it to only affected Intel proprietrary driver versions. vulkan_device: Move broken compute determination vk_device: Remove errant back quote
* | vulkan_device: Remove external memory extensionlat9nq2023-06-182-19/+0
|/ | | | Unused in yuzu. Enables yuzu to boot games in Wine using Vulkan.
* vulkan_device: disable extended_dynamic_state2 on ARM driversLiam2023-06-151-5/+10
|
* Merge pull request #10699 from liamwhite/conditional-barrierMatías Locatti2023-06-122-0/+7
|\ | | | | shader_recompiler: remove barriers in conditional control flow when device lacks support
| * shader_recompiler: remove barriers in conditional control flow when device lacks supportLiam2023-06-102-0/+7
| |
* | shader_recompiler: translate f64 to f32 when unsupported on hostLiam2023-06-101-0/+5
|/
* Merge pull request #10635 from mrcmunir/l4t-tx1-nvidialiamwhite2023-06-071-4/+4
|\ | | | | Make VK_EXT_robustness2 optional
| * Updated to lexicographical order suggestionsCarlos Estrague / Mrc_munir2023-06-061-3/+3
| |
| * Make VK_EXT_robustness2 optionalCarlos Estrague / Mrc_munir2023-06-061-4/+4
| | | | | | | | | | 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 .
* | android: vulkan_device: Skip BGR565 emulation on S8gen2.bunnei2023-06-031-1/+3
| |
* | android: vulkan_device: Only compile OverrideBcnFormats when used.bunnei2023-06-031-0/+2
| |
* | android: remove spurious warnings about BCn formats when patched with adrenotoolsLiam2023-06-031-1/+27
| |
* | android: video_core: Disable problematic compute shaders.bunnei2023-06-031-0/+4
| | | | | | | | - Fixes #104.
* | video_core: Enable support_descriptor_aliasing on Turnip, disable storage atomic otherwise.bunnei2023-06-031-0/+5
| |
* | android: vulkan: Disable vertex_input_dynamic_state on Qualcomm.bunnei2023-06-031-1/+2
| |
* | android: vulkan_debug_callback: Ignore many innocuous errors.bunnei2023-06-031-0/+28
| |
* | android: vulkan_device: Disable VK_EXT_custom_border_color on Adreno.bunnei2023-06-031-0/+7
| | | | | | | | - Causes crashes on sampler creation with Super Mario Odyssey.
* | build: only enable adrenotools on arm64Liam2023-06-032-2/+4
| |
* | video_core: fix clang-format errorsliushuyu2023-06-031-2/+1
| |
* | video_core: vulkan_device: Correct error message for unsuitable driver.bunnei2023-06-031-1/+1
| |
* | android: vulkan: Implement adrenotools turbo mode.bunnei2023-06-031-1/+3
| |
* | android: vulkan_device: Disable VK_EXT_extended_dynamic_state2 on Qualcomm.bunnei2023-06-031-3/+3
| | | | | | | | - Newer drivers report this as supported, but it is broken.
* | android: native: Add support for custom Vulkan driver loading.bunnei2023-06-033-13/+25
| |
* | Implement scaled vertex buffer format emulationBilly Laws2023-06-032-0/+9
| | | | | | | | These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead.
* | Disable push descriptors on adreno driversBilly Laws2023-06-031-0/+4
| | | | | | | | Regular descriptors are around 1.5x faster to update.
* | Disable VK_EXT_extended_dynamic_state on maliBilly Laws2023-06-031-0/+7
| |
* | externals: add adrenotools for bcenablerLiam2023-06-031-0/+30
| |
* | video_core: vulkan_device: Device initialization for Adreno.bunnei2023-06-031-3/+4
|/
* Merge pull request #10414 from liamwhite/anv-push-descriptorMatías Locatti2023-05-261-2/+3
|\ | | | | vulkan_device: Enable VK_KHR_push_descriptor on newer ANV
| * vulkan_device: Enable VK_KHR_push_descriptor on newer ANVLiam2023-05-231-2/+3
| |
* | Merge pull request #10398 from liamwhite/bcnFernando S2023-05-241-0/+6
|\ \ | | | | | | video_core: add ASTC recompression
| * | textures: add BC1 and BC3 compressors and recompression settingLiam2023-05-231-0/+6
| |/
* / Limit the device access memory to 4 GBscorpion812023-05-221-1/+1
|/ | | | | 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 ?
* vulkan_device: Disable VK_KHR_push_descriptor on ANVlat9nq2023-05-181-0/+11
| | | | | | Mesa commit ff91c5ca42bc80aa411cb3fd8f550aa6fdd16bdc breaks VK_KHR_push_descriptor usage on ANV drivers 22.3.0, so disable it and allow games to boot.
* Merge pull request #10262 from liamwhite/depth-clampbunnei2023-05-171-0/+8
|\ | | | | vulkan_common: disable depth clamp dynamic state for older radv
| * vulkan_common: disable depth clamp dynamic state for older radvLiam2023-05-131-0/+8
| |
* | Merge pull request #10288 from liamwhite/vram-limitsliamwhite2023-05-141-0/+2
|\ \ | | | | | | vulkan_device: reserve extra memory to prevent swaps
| * | vulkan_device: reserve extra memory to prevent swapsLiam2023-05-141-0/+2
| |/
* / vulkan_common: fix incompatible property flagsLiam2023-05-141-1/+1
|/
* Merge pull request #10172 from Kelebek1/debug_validation_namesliamwhite2023-05-071-1/+2
|\ | | | | Log object names with debug renderer, add a GPU address to ImageViews
| * Log object names with debug renderer, add a GPU address to ImageViewsKelebek12023-05-061-1/+2
| |
* | Merge pull request #10125 from lat9nq/vsync-selectbunnei2023-05-072-9/+6
|\ \ | |/ |/| configuration: Expose separate swap present modes
| * vulkan_surface: Pass only window info for surface creationlat9nq2023-05-032-9/+6
| | | | | | | | | | | | 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.
* | vulkan: disable turbo when debugging tool is attachedLiam2023-05-031-1/+3
|/
* vulkan: use plain fences when timeline semaphores are not availableLiam2023-04-151-1/+5
|
* externals: update Vulkan-Headers to v1.3.246Jan Beich2023-04-011-0/+2
|
* vulkan: disable extendedDynamicState3ColorBlendEquation on radvLiam2023-03-151-0/+6
|
* general: fix spelling mistakesLiam2023-03-123-12/+12
|
* vulkan_common: disable vertexInputDynamicState on unsupported driverLiam2023-03-021-0/+1
|
* nsight_aftermath_tracker: update for latest Aftermath SDKLiam2023-01-211-4/+4
|
* Merge pull request #9596 from liamwhite/mvkMorph2023-01-111-10/+25
|\ | | | | MoltenVK: restrict number of vertex attributes/bindings to 16
| * MoltenVK: restrict number of vertex attributes/bindings to 16TellowKrinkle2023-01-101-10/+25
| |
* | vulkan_common: fix indirect draw with countLiam2023-01-103-8/+15
|/
* vulkan_device: refactor feature testingLiam2023-01-092-1157/+661
|
* Merge pull request #9570 from liamwhite/less-clock-boostNarr the Reg2023-01-072-0/+14
|\ | | | | renderer_vulkan: disable clock boost on unvalidated devices
| * renderer_vulkan: disable clock boost on unvalidated devicesLiam2023-01-072-0/+14
| |
* | vulkan_device: avoid attempt to access empty optionalLiam2023-01-071-2/+6
|/
* Merge pull request #9552 from liamwhite/turboliamwhite2023-01-061-1/+1
|\ | | | | vulkan: implement 'turbo mode' clock booster
| * vulkan: implement 'turbo mode' clock boosterLiam2023-01-051-1/+1
| |
* | Merge pull request #9528 from liamwhite/mvk-nulldescliamwhite2023-01-062-0/+8
|\ \ | | | | | | renderer_vulkan: implement fallback path for null buffer descriptors
| * | renderer_vulkan: implement fallback path for null descriptorsLiam2023-01-052-0/+8
| |/
* | Merge pull request #9536 from liamwhite/debug-utilsliamwhite2023-01-062-10/+9
|\ \ | | | | | | vulkan_common: unify VK_EXT_debug_utils and selection of validation layer
| * | vulkan_common: unify VK_EXT_debug_utils and selection of validation layerLiam2023-01-012-10/+9
| | |
* | | video_core/vulkan: Added `VkPipelineCache` to store Vulkan pipelinesWollnashorn2023-01-052-6/+45
| |/ |/| | | | | | | | | As an optional feature which can be enabled in the advanced graphics configuration, all pipelines that get built at the initial shader loading are stored in a VkPipelineCache object and are dumped to the disk. These vendor specific pipeline cache files are located at `/shader/GAME_ID/vulkan_pipelines.bin`. This feature was mainly added because of an issue with the AMD driver (see yuzu-emu#8507) causing invalidation of the cache files the driver builds automatically.
* | Vulkan: Update blacklisting to latest driver versions.Fernando Sahmkow2023-01-041-5/+12
| |
* | vulkan_common: blacklist radv from extended_dynamic_state2 on drivers before 22.3.1Liam2023-01-011-0/+10
| |
* | video_core: fix buildLiam2023-01-011-0/+27
| |
* | MacroHLE: Final cleanup and fixes.Fernando Sahmkow2023-01-013-35/+44
| |
* | Vulkan: Implement Dynamic State 3Fernando Sahmkow2023-01-014-38/+89
| |
* | Vulkan Implement Dynamic State 2 LogicOp and PatchVerticesFernando Sahmkow2023-01-013-4/+13
| |
* | Vulkan: Implement Dynamic States 2Fernando Sahmkow2023-01-014-0/+99
| |
* | MacroHLE: Implement DrawIndexedIndirect & DrawArraysIndirect.Fernando Sahmkow2023-01-014-9/+27
| |
* | MacroHLE: Add MultidrawIndirect HLE Macro.Fernando Sahmkow2023-01-013-1/+18
|/
* externals: update Vulkan-Headers to v1.3.238Jan Beich2022-12-191-0/+12
|
* Merge pull request #7450 from FernandoS27/ndc-vulkanliamwhite2022-12-172-0/+31
|\ | | | | Vulkan: Add support for VK_EXT_depth_clip_control.
| * Vulkan: Add support for VK_EXT_depth_clip_control.FernandoS272022-12-142-0/+31
| |
* | Merge pull request #9431 from liamwhite/sixty-five-oh-twoNarr the Reg2022-12-161-1/+2
|\ \ | | | | | | vulkan_common: declare storageBuffer8BitAccess
| * | vulkan_common: declare storageBuffer8BitAccessLiam2022-12-141-1/+2
| |/
* / Fix validation errors on less compatible Intel GPUyzct123452022-12-132-0/+14
|/
* video_core: Integrate SMAALiam2022-12-082-0/+7
| | | | | Co-authored-by: goldenx86 <goldenx86@users.noreply.github.com> Co-authored-by: BreadFish64 <breadfish64@users.noreply.github.com>
* Merge pull request #9365 from liamwhite/valMorph2022-12-072-1/+3
|\ | | | | vulkan_common: quiet some validation errors
| * vulkan_common: quiet some validation errorsLiam2022-12-012-1/+3
| |
* | vulkan_common: further initialization tweaksLiam2022-12-062-1/+9
| |
* | vulkan_common: add feature test for shaderDrawParametersLiam2022-12-041-1/+13
| |
* | vulkan_common: clean up extension usageLiam2022-12-044-81/+84
| |
* | vulkan_common: correct usage of timeline semaphore fallbacksLiam2022-12-041-2/+1
| |
* | vulkan_common: ensure all mandatory features are tested in feature reportLiam2022-12-041-1/+24
| |
* | vulkan_common: unsuffix 16-bit storage feature test structureLiam2022-12-041-2/+2
| |
* | vulkan_common: unsuffix timeline semaphore feature test structureLiam2022-12-041-2/+2
| |
* | vulkan_common: add logicOp to feature reportLiam2022-12-041-1/+2
| |
* | vulkan_common: promote host query reset usage to coreLiam2022-12-043-10/+11
| |
* | vulkan_common: promote descriptor update template usage to coreLiam2022-12-043-21/+20
| |
* | vulkan_common: promote timeline semaphore usage to coreLiam2022-12-043-9/+15
| |
* | Merge pull request #9289 from liamwhite/fruit-companyliamwhite2022-12-033-0/+3
|\ \ | | | | | | general: fix compile for Apple Clang
| * | general: fix compile for Apple ClangLiam2022-11-233-0/+3
| |/
* / Vulkan: update initializationLiam2022-11-274-63/+138
|/ | | | Co-authored-by: bylaws <bylaws@users.noreply.github.com>
* vulkan_blitter: Fix pool allocation double free.Byte2022-10-061-20/+0
|
* renderer_vulkan: add format fallbacks for R16G16B16_SFLOAT, R16G16B16_SSCALED, R8G8B8_SSCALEDLiam2022-08-031-90/+144
|
* Revert "vulkan_device: Block AMDVLK's VK_KHR_push_descriptor"lat9nq2022-06-291-11/+0
|
* common: Change semantics of UNREACHABLE to unconditionally crashLiam2022-06-142-9/+11
|
* vulkan_library: Add debug logginglat9nq2022-05-301-0/+4
|
* Merge pull request #8379 from lat9nq/amd-push-desc-workaroundbunnei2022-05-251-0/+11
|\ | | | | vulkan_device: Block AMDVLK's VK_KHR_push_descriptor
| * vulkan_device: Block AMDVLK's VK_KHR_push_descriptorlat9nq2022-05-251-0/+11
| | | | | | | | | | | | Recent AMD Vulkan drivers (22.5.2 or 2.0.226 for specifically Vulkan) have a broken VK_KHR_push_descriptor implementation that causes a crash in yuzu. Disable it for the time being.
* | vulkan_device: Workaround extension buglat9nq2022-05-251-1/+6
|/ | | | | | | A bug occurs in yuzu when VK_KHR_workgroup_memory_explicit_layout is available but 16-bit integers are not supported in the host driver. Disable usage of the extension when this case arises.
* video_core: Support new VkResultAlexandre Bouvier2022-05-171-0/+2
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-2316-48/+32
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* video_core: implement formats for N64 emulationFernando Sahmkow2022-04-141-0/+12
|
* fix: typosAndrea Pappacoda2022-04-021-1/+1
|
* Merge pull request #8076 from ameerj/nv-vk-msaa-scalebunnei2022-03-311-0/+5
|\ | | | | Vulkan: Use 3D helpers for MSAA scaling on NV drivers 510+
| * Vulkan: Use 3D helpers for MSAA scaling on NV drivers 510+ameerj2022-03-241-0/+5
| | | | | | | | Nvidia Vulkan drivers 510+ crash when blitting MSAA images. Fall-back to 3D scale helpers for MSAA image scaling.
* | GC: Address Feedback.Fernando Sahmkow2022-03-251-6/+5
| |
* | Garbage Collection: Redesign the algorithm to do a better use of memory.Fernando Sahmkow2022-03-255-11/+71
|/
* video_core: Reduce unused includesameerj2022-03-198-15/+8
|
* vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_stateAmeer J2022-02-261-4/+21
| | | | | | RDNA2 devices running under the RADV driver were crashing when VK_EXT_vertex_input_dynamic_state was enabled. Blacklisting these devices until a proper fix is established.
* vulkan_device: fix missing format in ANVvoidanix2022-02-212-0/+17
| | | | | Currently Mesa's ANV driver does not support VK_FORMAT_B5G6R5_UNORM_PACK16, implement an alternative for it.
* vulkan_device: Fix sType for VkPhysicalDeviceShaderAtomicInt64FeaturesGeorg Lehmann2022-01-191-1/+1
|
* vk_texture_cache: Use 3D scale helpers for MSAA texture scaling on Intel Windows driversameerj2021-12-242-2/+12
| | | | Fixes a crash when scaling MSAA textures in titles such as Sonic Colors Ultimate.
* Vulkan: Fix the checks for primitive restart extension.Fernando Sahmkow2021-12-182-19/+23
|
* Vulkan: implement Logical Operations.Fernando Sahmkow2021-12-181-1/+1
|
* Vulkan: Implement VK_EXT_primitive_topology_list_restartFernando Sahmkow2021-12-182-0/+38
|
* renderer_vulkan: Add R16G16_UINTMorph2021-12-081-0/+1
| | | | - Used by Immortals Fenyx Rising
* renderer_vulkan: Implement S8_UINT stencil formatMorph2021-11-181-0/+10
| | | | It should be noted that on Windows, only nvidia gpus support this format natively as of this commit.
* vk_texture_cache: Fix unsupported blit format error checkingameerj2021-11-161-4/+4
|
* vulkan_device: Add missing vulkan image format R5G6B5 in GetFormatPropertiesFeng Chen2021-11-051-0/+1
| | | - Used by Dragon Quest Builders
* Merge pull request #7070 from FernandoS27/want-you-badAmeer J2021-10-242-0/+9
|\ | | | | Vulkan Rasterizer: Correct DepthBias/PolygonOffset on Vulkan.
| * Vulkan Rasterizer: Correct DepthBias/PolygonOffset on Vulkan.Fernando Sahmkow2021-09-232-0/+9
| |
* | vk_texture_cache: Disable cube compatibility flag on non-mesa AMD GCN4 and earlierameerj2021-09-242-10/+21
|/ | | | Fixes rainbow textures on BOTW.
* Merge pull request #7011 from ameerj/vk-validation-0x0bunnei2021-09-171-0/+1
|\ | | | | vulkan_debug_callback: Ignore InvalidCommandBuffer-VkDescriptorSet errors
| * vulkan_debug_callback: Ignore InvalidCommandBuffer-VkDescriptorSet errorsameerj2021-09-141-0/+1
| | | | | | | | | | | | This validation error is spammed on some titles, asserting that VkDescriptorSet 0x0[] was destroyed. This is likely a validation layer bug when using VK_KHR_push_descriptor, which can avoid using traditional VkDescriptorSet. It should be safe to ignore for now.
* | vulkan_device: Reorder Float16Int8 declarationameerj2021-09-161-1/+2
| | | | | | | | This variable was going out of scope before its usage in the vulkan device creation, causing a crash on very specific drivers.
* | Revert "Merge pull request #7006 from FernandoS27/a-motherfucking-driver"ameerj2021-09-161-13/+1
|/ | | | | This reverts commit 62e88d0e7455e37840db7e2a8e199bc6ca176966, reversing changes made to edf3da346f4ec0ca492b427f4f693d56e84abc52.
* Merge pull request #6943 from FernandoS27/omae-wa-mou-shindeiruMorph2021-09-131-6/+20
|\ | | | | Vulkan: Disable VK_EXT_SAMPLER_FILTER_MINMAX in GCN AMD
| * Vulkan: Disable VK_EXT_SAMPLER_FILTER_MINMAX in GCN AMD since it's broken.Fernando Sahmkow2021-09-131-6/+20
| |
* | Merge pull request #7006 from FernandoS27/a-motherfucking-driverMorph2021-09-131-1/+13
|\ \ | |/ |/| Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1
| * Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1Fernando Sahmkow2021-09-131-1/+13
| |
* | Merge pull request #6944 from FernandoS27/dear-drunk-meMorph2021-09-132-0/+11
|\ \ | | | | | | Vulkan/Descriptors: Increase sets per pool on AMD propietary driver.
| * | Vulkan/Descriptors: Increase sets per pool on AMFD propietary driver.Fernando Sahmkow2021-09-132-0/+11
| |/
* / vulkan_device: Enable VK_KHR_swapchain_mutable_format if availableameerj2021-08-292-0/+16
|/ | | | Silences validation errors when creating sRGB image views of linear swapchain images
* vulkan_device: Add a check for int8 supportameerj2021-08-252-8/+18
| | | | Silences validation errors when shaders use int8 without specifying its support to the API
* vulkan_memory_allocator: Respect bufferImageGranularityRobin Kertels2021-08-072-2/+8
|
* renderer_vulkan: Add setting to log pipeline statisticsReinUsesLisp2021-07-284-0/+81
| | | | | | | | | | | | | | | | Use VK_KHR_pipeline_executable_properties when enabled and available to log statistics about the pipeline cache in a game. For example, this is on Turing GPUs when generating a pipeline cache from Super Smash Bros. Ultimate: Average pipeline statistics ========================================== Code size: 6433.167 Register count: 32.939 More advanced results could be presented, at the moment it's just an average of all 3D and compute pipelines.
* vulkan_wrapper: Fix SetObjectName() always indicating objects as imagesLioncash2021-07-271-1/+1
| | | | We should be using the passed in object type instead.
* vulkan_device: Blacklist Volta and older from VK_KHR_push_descriptorReinUsesLisp2021-07-231-4/+39
| | | | | Causes crashes on Link's Awakening intro. It's hard to debug if it's our fault due to bugs in validation layers.
* maxwell_to_vk: Add R16_SNORMReinUsesLisp2021-07-231-0/+1
|
* vulkan_device: Add missing include algorithmlat9nq2021-07-231-0/+1
|
* vulkan_device: Blacklist ampere devices from float16 mathameerj2021-07-232-12/+23
|
* vulkan_device: Enable VK_EXT_extended_dynamic_state on RADV 21.2 onwardReinUsesLisp2021-07-231-4/+7
|
* vk_graphics_pipeline: Implement smooth linesReinUsesLisp2021-07-232-5/+42
|
* vk_graphics_pipeline: Implement line widthReinUsesLisp2021-07-233-2/+8
|
* shader: Rework varyings and implement passthrough geometry shadersReinUsesLisp2021-07-232-0/+12
| | | | | | Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's.
* vk_graphics_pipeline: Implement conservative renderingReinUsesLisp2021-07-232-0/+12
|
* shader: Emulate 64-bit integers when not supportedReinUsesLisp2021-07-231-0/+5
| | | | Useful for mobile and Intel Xe devices.
* vk_graphics_pipeline: Use VK_KHR_push_descriptor when availableReinUsesLisp2021-07-234-12/+43
| | | | ~51% faster on Nvidia compared to previous method.
* shader: Add support for native 16-bit floatsReinUsesLisp2021-07-231-2/+2
|
* vulkan_device: Blacklist VK_EXT_vertex_input_dynamic_state on IntelReinUsesLisp2021-07-231-0/+4
|
* shader: Add shader loop safety check settingslat9nq2021-07-231-2/+2
| | | | Also add a setting for enable Nsight Aftermath.
* vulkan_device: Enable VK_EXT_vertex_input_dynamic_stateReinUsesLisp2021-07-231-0/+28
|
* vulkan: Add VK_EXT_vertex_input_dynamic_state supportReinUsesLisp2021-07-233-0/+15
| | | | | Reduces the number of total pipelines generated on Vulkan. Tested on Super Smash Bros. Ultimate.
* vulkan: Use VK_EXT_provoking_vertex when availableReinUsesLisp2021-07-232-0/+34
|
* nsight_aftermath_tracker: Fix SPIR-V module writesReinUsesLisp2021-07-231-1/+1
|
* vulkan: Conditionally use shaderInt16ReinUsesLisp2021-07-232-1/+8
| | | | Add support for Polaris AMD devices.
* vulkan: Enable depth bounds and use it conditionallyReinUsesLisp2021-07-232-1/+8
| | | | Intel devices pre-Xe don't support this.
* vulkan_device: Enable float64 and int64 conditionallyReinUsesLisp2021-07-232-2/+6
| | | | Add Intel Xe support.
* shader: Initial OpenGL implementationReinUsesLisp2021-07-231-1/+1
|
* vulkan_device: Require shaderClipDistance and shaderCullDistance featuresReinUsesLisp2021-07-231-2/+4
|
* shader: Fix bugs and build issues on GCCRodrigo Locatti2021-07-231-1/+1
|
* shader: Require dual source blendingReinUsesLisp2021-07-231-1/+2
|
* shader: Implement PIXLD.MY_INDEXReinUsesLisp2021-07-231-1/+2
|
* spirv: Implement ViewportMask with NV_viewport_array2ReinUsesLisp2021-07-232-0/+11
|
* shader: Implement tessellation shaders, polygon mode and invocation idReinUsesLisp2021-07-231-1/+2
|
* spirv: Rework storage buffers and shader memoryReinUsesLisp2021-07-231-1/+28
|
* shader: Implement ATOM/S and REDameerj2021-07-232-0/+20
|
* nsight_aftermath_tracker: Report used shaders to Nsight AftermathReinUsesLisp2021-07-234-15/+16
|
* shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when availableReinUsesLisp2021-07-232-15/+61
|
* shader: Implement VOTEameerj2021-07-232-0/+7
|
* shader: Add partial rasterizer integrationReinUsesLisp2021-07-231-0/+15
|
* shader: Add denorm flush supportReinUsesLisp2021-07-233-26/+35
|
* spirv: Add lower fp16 to fp32 passReinUsesLisp2021-07-231-5/+5
|
* Merge pull request #6502 from ameerj/vendor-titleMorph2021-06-282-0/+24
|\ | | | | main: Add GPU Vendor name to running title bar
| * video_core: Add GPU vendor name to window title barameerj2021-06-212-0/+24
| |
* | vulkan_device: Make device memory match the rest of the fileReinUsesLisp2021-06-252-19/+18
| | | | | | | | Match the style in the file.
* | Merge pull request #6465 from FernandoS27/sex-on-the-beachMai M2021-06-234-5/+43
|\ \ | | | | | | GPU: Implement a garbage collector for GPU Caches (project Reaper+)
| * | Reaper: Correct size calculation on Vulkan.Fernando Sahmkow2021-06-171-5/+3
| | |
| * | Reaper: Change memory restrictions on TC depending on host memory on VK.Fernando Sahmkow2021-06-172-0/+23
| | |
| * | vulkan_memory_allocator: Release allocations with no commitsReinUsesLisp2021-06-162-5/+22
| | |
* | | common: fs: Remove [[nodiscard]] attribute on Remove* functionsMorph2021-06-221-1/+1
| |/ |/| | | | | | | | | There are a lot of scenarios where we don't particularly care whether or not the removal operation and just simply attempt a removal. As such, removing the [[nodiscard]] attribute is best for these functions.
* | vulkan_debug_callback: Skip logging known false-positive validation errorsameerj2021-06-181-0/+8
|/ | | | Avoids overwhelming the log with validation errors that are not applicable
* vulkan_memory_allocator: Allow textures to be allocated in host memoryReinUsesLisp2021-05-272-31/+43
| | | | | Allow Vulkan's allocator to use host memory when there's no more device local memory. This delays OOM, but it will eventually still happen.
* common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270)Morph2021-05-263-24/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only
* common: Move settings to common from core.bunnei2021-04-151-1/+1
| | | | - Removes a dependency on core and input_common from common.
* vulkan_device: Enable EXT_robustness2 featuresJoshua Ashton2021-04-111-0/+9
| | | | | | When this was being made mandatory, these enablement of these features was removed, but this is still needed. Fixes: 757fd1e91716 ("vulkan_device: Require VK_EXT_robustness2")
* vulkan_common: enable OpenGL interop on other UnicesJan Beich2021-03-302-5/+5
|
* vulkan_device: Require VK_EXT_robustness2ReinUsesLisp2021-02-132-37/+14
| | | | | | | We are already using robustness2 features without requiring it explicitly, causing potential crashes on drivers without the extension. Requiring this at boot allows better diagnostics for it and formalizes our usage on the extension.
* vk_staging_buffer_pool: Add stream buffer for small uploadsReinUsesLisp2021-02-132-7/+18
| | | | | | | | This uses a ring buffer similar to OpenGL's stream buffer for small uploads. This stops us from allocating several small buffers, reducing memory fragmentation and cache locality. It uses dedicated allocations when possible.
* vulkan_device: Enable robustBufferAccessReinUsesLisp2021-02-131-1/+2
| | | | | Fix regression on Pascal on Animal Crossing: New Horizons, fixing a validation error.
* video_core: Reimplement the buffer cacheReinUsesLisp2021-02-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Reimplement the buffer cache using cached bindings and page level granularity for modification tracking. This also drops the usage of shared pointers and virtual functions from the cache. - Bindings are cached, allowing to skip work when the game changes few bits between draws. - OpenGL Assembly shaders no longer copy when a region has been modified from the GPU to emulate constant buffers, instead GL_EXT_memory_object is used to alias sub-buffers within the same allocation. - OpenGL Assembly shaders stream constant buffer data using glProgramBufferParametersIuivNV, from NV_parameter_buffer_object. In theory this should save one hash table resolve inside the driver compared to glBufferSubData. - A new OpenGL stream buffer is implemented based on fences for drivers that are not Nvidia's proprietary, due to their low performance on partial glBufferSubData calls synchronized with 3D rendering (that some games use a lot). - Most optimizations are shared between APIs now, allowing Vulkan to cache more bindings than before, skipping unnecesarry work. This commit adds the necessary infrastructure to use Vulkan object from OpenGL. Overall, it improves performance and fixes some bugs present on the old cache. There are still some edge cases hit by some games that harm performance on some vendors, this are planned to be fixed in later commits.
* vulkan_common: Expose interop and headless devicesReinUsesLisp2021-02-134-21/+100
|
* vulkan_common: Make interop extensions mandatoryReinUsesLisp2021-02-131-0/+6
|
* vulkan_device: Enable robust buffersReinUsesLisp2021-02-131-2/+4
|
* vulkan_device: Use designated initializers for featuresReinUsesLisp2021-02-131-60/+59
|
* vulkan_wrapper: Add memory barrier pipeline barrier helperReinUsesLisp2021-02-131-0/+6
|
* vulkan_device: Fix formatting of constantsReinUsesLisp2021-02-131-10/+6
|
* vulkan_wrapper: Add interop functionsReinUsesLisp2021-02-132-1/+41
|
* vulkan_instance: Initialize Vulkan instance in a separate threadReinUsesLisp2021-02-131-1/+5
| | | | | | | Workaround an issue on Nvidia where creating a Vulkan instance from an active OpenGL thread disables threaded optimization on the driver. This optimization is important to have good performance on Nvidia OpenGL.
* vulkan_wrapper: Pull Windows symbolsReinUsesLisp2021-02-131-0/+11
|
* gpu: Report renderer errors with exceptionsReinUsesLisp2021-02-132-1/+4
| | | | | | Instead of using a two step initialization to report errors, initialize the GPU renderer and rasterizer on the constructor and report errors through std::runtime_error.
* vulkan_device: Blacklist Intel from float16 math (#5798)Rodrigo Locatti2021-01-271-0/+5
| | | | Astral Chain crashes Intel's SPIR-V compiler when using fp16. Disable this while the vendor works on a fix.
* Merge pull request #5807 from ReinUsesLisp/vc-warningsLC2021-01-241-0/+1
|\ | | | | video_core: Silence the remaining gcc warnings and enforce them
| * video_core: Silence -Wmissing-field-initializers warningsReinUsesLisp2021-01-241-0/+1
| |
* | vulkan_device: Lift VK_EXT_extended_dynamic_state blacklist on RDNAReinUsesLisp2021-01-251-23/+0
|/ | | | It seems to be safe to use this on new drivers.
* nsight_aftermath_tracker: Fix build issues when enabledReinUsesLisp2021-01-232-16/+5
| | | | Fixes a bunch of build errors when Nsight Aftermath is properly enabled.
* Merge pull request #5745 from lioncash/documentationRodrigo Locatti2021-01-171-3/+2
|\ | | | | video_core: Resolve -Wdocumentation warnings
| * video_core: Resolve -Wdocumentation warningsLioncash2021-01-171-3/+2
| | | | | | | | Silences some -Wdocumentation warnings on Clang.
* | vulkan_debug_callback: Add missing header guardLioncash2021-01-171-0/+2
|/ | | | Prevents inclusion issues from occurring.
* vulkan_memory_allocator: Remove unnecesary 'device' memory from commitsReinUsesLisp2021-01-152-15/+15
|
* vulkan_memory_allocator: Add allocation support for download typesReinUsesLisp2021-01-152-55/+91
| | | | | Implements the allocator logic to handle download memory types. This will try to use HOST_CACHED_BIT when available.
* vulkan_memory_allocator: Add "download" memory usage hintReinUsesLisp2021-01-152-10/+38
| | | | | | | Allow users of the allocator to hint memory usage for downloads. This removes the non-descriptive boolean passed for "host visible" or not host visible memory commits, and uses an enum to hint device local, upload and download usages.
* vulkan_common: Move allocator to the common directoryReinUsesLisp2021-01-152-0/+322
| | | | Allow using the abstraction from the OpenGL backend.
* Merge pull request #5350 from ReinUsesLisp/vk-init-warnsRodrigo Locatti2021-01-152-145/+146
|\ | | | | vulkan_common: Silence missing initializer warnings
| * vulkan_common: Silence missing initializer warningsReinUsesLisp2021-01-152-145/+146
| | | | | | | | Silence warnings explicitly initializing all members on construction.
* | vulkan_device: Enable shaderStorageImageMultisample conditionallyReinUsesLisp2021-01-152-18/+20
|/ | | | Fix Vulkan initialization on ANV.
* vulkan_device: Remove requirement on shaderStorageImageMultisampleReinUsesLisp2021-01-131-1/+0
| | | | | yuzu doesn't currently emulate MS image stores. Requiring this makes no sense for now. Fixes ANV not booting any games on Vulkan.
* vulkan_library: Common::DynamicLibrary::Open is [[nodiscard]]MerryMage2021-01-071-1/+1
| | | | Ignore the return value on __APPLE__ systems as well
* vulkan_device: Allow creating a device without surfaceReinUsesLisp2021-01-041-3/+3
|
* renderer_vulkan/nsight_aftermath_tracker: Move to vulkan_commonReinUsesLisp2021-01-044-4/+302
|
* renderer_vulkan: Move device abstraction to vulkan_commonReinUsesLisp2021-01-042-0/+1189
|
* vulkan_instance: Allow different Vulkan versions and enforce 1.1ReinUsesLisp2020-12-312-13/+27
| | | | | | | For listing the available physical devices we can use Vulkan 1.0. Now that MoltenVK supports 1.1 we can require it for running games. Add missing documentation.
* renderer_vulkan: Remove two step initialization on VKDeviceReinUsesLisp2020-12-312-6/+3
| | | | | The Vulkan device abstraction either initializes successfully on the constructor or throws a Vulkan exception.
* renderer_vulkan: Throw when enumerating devices failsReinUsesLisp2020-12-314-11/+8
| | | | | | Report device enumeration errors with exceptions to be consistent with other initialization related function calls. Reduces the amount of code to maintain.
* renderer_vulkan: Initialize surface in separate fileReinUsesLisp2020-12-313-0/+104
| | | | | | Move surface initialization code to a separate file. It's unlikely to use this code outside of Vulkan, but keeping platform-specific code (Win32, Xlib, Wayland) in its own translation unit keeps things cleaner.
* renderer_vulkan: Create debug callback on separate file and throwReinUsesLisp2020-12-315-45/+79
| | | | | | | | Initialize debug callbacks (messenger) from a separate file. This allows sharing code with different backends. Change our Vulkan error handling to use exceptions instead of error codes, simplifying the initialization process.
* renderer_vulkan: Move instance initialization to a separate fileReinUsesLisp2020-12-312-0/+173
| | | | | | Simplify Vulkan's backend initialization code by moving it to a separate file, allowing us to initialize a Vulkan instance from different backends.
* vulkan_common: Rename renderer_vulkan/wrapper.h to vulkan_common/vulkan_wrapper.hReinUsesLisp2020-12-312-0/+2141
| | | | Allows sharing Vulkan wrapper code between different rendering backends.
* vulkan_common: Move dynamic library load to a separate fileReinUsesLisp2020-12-312-0/+49
Allows us to initialize a Vulkan dynamic library from different backends without duplicating code.