Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | vulkan_device: disable extended_dynamic_state2 on ARM drivers | Liam | 2023-06-15 | 1 | -5/+10 |
| | |||||
* | Merge pull request #10699 from liamwhite/conditional-barrier | Matías Locatti | 2023-06-12 | 2 | -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 support | Liam | 2023-06-10 | 2 | -0/+7 |
| | | |||||
* | | shader_recompiler: translate f64 to f32 when unsupported on host | Liam | 2023-06-10 | 1 | -0/+5 |
|/ | |||||
* | Merge pull request #10635 from mrcmunir/l4t-tx1-nvidia | liamwhite | 2023-06-07 | 1 | -4/+4 |
|\ | | | | | Make VK_EXT_robustness2 optional | ||||
| * | Updated to lexicographical order suggestions | Carlos Estrague / Mrc_munir | 2023-06-06 | 1 | -3/+3 |
| | | |||||
| * | Make VK_EXT_robustness2 optional | Carlos Estrague / Mrc_munir | 2023-06-06 | 1 | -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. | bunnei | 2023-06-03 | 1 | -1/+3 |
| | | |||||
* | | android: vulkan_device: Only compile OverrideBcnFormats when used. | bunnei | 2023-06-03 | 1 | -0/+2 |
| | | |||||
* | | android: remove spurious warnings about BCn formats when patched with adrenotools | Liam | 2023-06-03 | 1 | -1/+27 |
| | | |||||
* | | android: video_core: Disable problematic compute shaders. | bunnei | 2023-06-03 | 1 | -0/+4 |
| | | | | | | | | - Fixes #104. | ||||
* | | video_core: Enable support_descriptor_aliasing on Turnip, disable storage atomic otherwise. | bunnei | 2023-06-03 | 1 | -0/+5 |
| | | |||||
* | | android: vulkan: Disable vertex_input_dynamic_state on Qualcomm. | bunnei | 2023-06-03 | 1 | -1/+2 |
| | | |||||
* | | android: vulkan_debug_callback: Ignore many innocuous errors. | bunnei | 2023-06-03 | 1 | -0/+28 |
| | | |||||
* | | android: vulkan_device: Disable VK_EXT_custom_border_color on Adreno. | bunnei | 2023-06-03 | 1 | -0/+7 |
| | | | | | | | | - Causes crashes on sampler creation with Super Mario Odyssey. | ||||
* | | build: only enable adrenotools on arm64 | Liam | 2023-06-03 | 2 | -2/+4 |
| | | |||||
* | | video_core: fix clang-format errors | liushuyu | 2023-06-03 | 1 | -2/+1 |
| | | |||||
* | | video_core: vulkan_device: Correct error message for unsuitable driver. | bunnei | 2023-06-03 | 1 | -1/+1 |
| | | |||||
* | | android: vulkan: Implement adrenotools turbo mode. | bunnei | 2023-06-03 | 1 | -1/+3 |
| | | |||||
* | | android: vulkan_device: Disable VK_EXT_extended_dynamic_state2 on Qualcomm. | bunnei | 2023-06-03 | 1 | -3/+3 |
| | | | | | | | | - Newer drivers report this as supported, but it is broken. | ||||
* | | android: native: Add support for custom Vulkan driver loading. | bunnei | 2023-06-03 | 3 | -13/+25 |
| | | |||||
* | | Implement scaled vertex buffer format emulation | Billy Laws | 2023-06-03 | 2 | -0/+9 |
| | | | | | | | | These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead. | ||||
* | | Disable push descriptors on adreno drivers | Billy Laws | 2023-06-03 | 1 | -0/+4 |
| | | | | | | | | Regular descriptors are around 1.5x faster to update. | ||||
* | | Disable VK_EXT_extended_dynamic_state on mali | Billy Laws | 2023-06-03 | 1 | -0/+7 |
| | | |||||
* | | externals: add adrenotools for bcenabler | Liam | 2023-06-03 | 1 | -0/+30 |
| | | |||||
* | | video_core: vulkan_device: Device initialization for Adreno. | bunnei | 2023-06-03 | 1 | -3/+4 |
|/ | |||||
* | Merge pull request #10414 from liamwhite/anv-push-descriptor | Matías Locatti | 2023-05-26 | 1 | -2/+3 |
|\ | | | | | vulkan_device: Enable VK_KHR_push_descriptor on newer ANV | ||||
| * | vulkan_device: Enable VK_KHR_push_descriptor on newer ANV | Liam | 2023-05-23 | 1 | -2/+3 |
| | | |||||
* | | Merge pull request #10398 from liamwhite/bcn | Fernando S | 2023-05-24 | 1 | -0/+6 |
|\ \ | | | | | | | video_core: add ASTC recompression | ||||
| * | | textures: add BC1 and BC3 compressors and recompression setting | Liam | 2023-05-23 | 1 | -0/+6 |
| |/ | |||||
* / | Limit the device access memory to 4 GB | scorpion81 | 2023-05-22 | 1 | -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 ANV | lat9nq | 2023-05-18 | 1 | -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-clamp | bunnei | 2023-05-17 | 1 | -0/+8 |
|\ | | | | | vulkan_common: disable depth clamp dynamic state for older radv | ||||
| * | vulkan_common: disable depth clamp dynamic state for older radv | Liam | 2023-05-13 | 1 | -0/+8 |
| | | |||||
* | | Merge pull request #10288 from liamwhite/vram-limits | liamwhite | 2023-05-14 | 1 | -0/+2 |
|\ \ | | | | | | | vulkan_device: reserve extra memory to prevent swaps | ||||
| * | | vulkan_device: reserve extra memory to prevent swaps | Liam | 2023-05-14 | 1 | -0/+2 |
| |/ | |||||
* / | vulkan_common: fix incompatible property flags | Liam | 2023-05-14 | 1 | -1/+1 |
|/ | |||||
* | Merge pull request #10172 from Kelebek1/debug_validation_names | liamwhite | 2023-05-07 | 1 | -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 ImageViews | Kelebek1 | 2023-05-06 | 1 | -1/+2 |
| | | |||||
* | | Merge pull request #10125 from lat9nq/vsync-select | bunnei | 2023-05-07 | 2 | -9/+6 |
|\ \ | |/ |/| | configuration: Expose separate swap present modes | ||||
| * | vulkan_surface: Pass only window info for surface creation | lat9nq | 2023-05-03 | 2 | -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 attached | Liam | 2023-05-03 | 1 | -1/+3 |
|/ | |||||
* | vulkan: use plain fences when timeline semaphores are not available | Liam | 2023-04-15 | 1 | -1/+5 |
| | |||||
* | externals: update Vulkan-Headers to v1.3.246 | Jan Beich | 2023-04-01 | 1 | -0/+2 |
| | |||||
* | vulkan: disable extendedDynamicState3ColorBlendEquation on radv | Liam | 2023-03-15 | 1 | -0/+6 |
| | |||||
* | general: fix spelling mistakes | Liam | 2023-03-12 | 3 | -12/+12 |
| | |||||
* | vulkan_common: disable vertexInputDynamicState on unsupported driver | Liam | 2023-03-02 | 1 | -0/+1 |
| | |||||
* | nsight_aftermath_tracker: update for latest Aftermath SDK | Liam | 2023-01-21 | 1 | -4/+4 |
| | |||||
* | Merge pull request #9596 from liamwhite/mvk | Morph | 2023-01-11 | 1 | -10/+25 |
|\ | | | | | MoltenVK: restrict number of vertex attributes/bindings to 16 | ||||
| * | MoltenVK: restrict number of vertex attributes/bindings to 16 | TellowKrinkle | 2023-01-10 | 1 | -10/+25 |
| | | |||||
* | | vulkan_common: fix indirect draw with count | Liam | 2023-01-10 | 3 | -8/+15 |
|/ | |||||
* | vulkan_device: refactor feature testing | Liam | 2023-01-09 | 2 | -1157/+661 |
| | |||||
* | Merge pull request #9570 from liamwhite/less-clock-boost | Narr the Reg | 2023-01-07 | 2 | -0/+14 |
|\ | | | | | renderer_vulkan: disable clock boost on unvalidated devices | ||||
| * | renderer_vulkan: disable clock boost on unvalidated devices | Liam | 2023-01-07 | 2 | -0/+14 |
| | | |||||
* | | vulkan_device: avoid attempt to access empty optional | Liam | 2023-01-07 | 1 | -2/+6 |
|/ | |||||
* | Merge pull request #9552 from liamwhite/turbo | liamwhite | 2023-01-06 | 1 | -1/+1 |
|\ | | | | | vulkan: implement 'turbo mode' clock booster | ||||
| * | vulkan: implement 'turbo mode' clock booster | Liam | 2023-01-05 | 1 | -1/+1 |
| | | |||||
* | | Merge pull request #9528 from liamwhite/mvk-nulldesc | liamwhite | 2023-01-06 | 2 | -0/+8 |
|\ \ | | | | | | | renderer_vulkan: implement fallback path for null buffer descriptors | ||||
| * | | renderer_vulkan: implement fallback path for null descriptors | Liam | 2023-01-05 | 2 | -0/+8 |
| |/ | |||||
* | | Merge pull request #9536 from liamwhite/debug-utils | liamwhite | 2023-01-06 | 2 | -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 layer | Liam | 2023-01-01 | 2 | -10/+9 |
| | | | |||||
* | | | video_core/vulkan: Added `VkPipelineCache` to store Vulkan pipelines | Wollnashorn | 2023-01-05 | 2 | -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 Sahmkow | 2023-01-04 | 1 | -5/+12 |
| | | |||||
* | | vulkan_common: blacklist radv from extended_dynamic_state2 on drivers before 22.3.1 | Liam | 2023-01-01 | 1 | -0/+10 |
| | | |||||
* | | video_core: fix build | Liam | 2023-01-01 | 1 | -0/+27 |
| | | |||||
* | | MacroHLE: Final cleanup and fixes. | Fernando Sahmkow | 2023-01-01 | 3 | -35/+44 |
| | | |||||
* | | Vulkan: Implement Dynamic State 3 | Fernando Sahmkow | 2023-01-01 | 4 | -38/+89 |
| | | |||||
* | | Vulkan Implement Dynamic State 2 LogicOp and PatchVertices | Fernando Sahmkow | 2023-01-01 | 3 | -4/+13 |
| | | |||||
* | | Vulkan: Implement Dynamic States 2 | Fernando Sahmkow | 2023-01-01 | 4 | -0/+99 |
| | | |||||
* | | MacroHLE: Implement DrawIndexedIndirect & DrawArraysIndirect. | Fernando Sahmkow | 2023-01-01 | 4 | -9/+27 |
| | | |||||
* | | MacroHLE: Add MultidrawIndirect HLE Macro. | Fernando Sahmkow | 2023-01-01 | 3 | -1/+18 |
|/ | |||||
* | externals: update Vulkan-Headers to v1.3.238 | Jan Beich | 2022-12-19 | 1 | -0/+12 |
| | |||||
* | Merge pull request #7450 from FernandoS27/ndc-vulkan | liamwhite | 2022-12-17 | 2 | -0/+31 |
|\ | | | | | Vulkan: Add support for VK_EXT_depth_clip_control. | ||||
| * | Vulkan: Add support for VK_EXT_depth_clip_control. | FernandoS27 | 2022-12-14 | 2 | -0/+31 |
| | | |||||
* | | Merge pull request #9431 from liamwhite/sixty-five-oh-two | Narr the Reg | 2022-12-16 | 1 | -1/+2 |
|\ \ | | | | | | | vulkan_common: declare storageBuffer8BitAccess | ||||
| * | | vulkan_common: declare storageBuffer8BitAccess | Liam | 2022-12-14 | 1 | -1/+2 |
| |/ | |||||
* / | Fix validation errors on less compatible Intel GPU | yzct12345 | 2022-12-13 | 2 | -0/+14 |
|/ | |||||
* | video_core: Integrate SMAA | Liam | 2022-12-08 | 2 | -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/val | Morph | 2022-12-07 | 2 | -1/+3 |
|\ | | | | | vulkan_common: quiet some validation errors | ||||
| * | vulkan_common: quiet some validation errors | Liam | 2022-12-01 | 2 | -1/+3 |
| | | |||||
* | | vulkan_common: further initialization tweaks | Liam | 2022-12-06 | 2 | -1/+9 |
| | | |||||
* | | vulkan_common: add feature test for shaderDrawParameters | Liam | 2022-12-04 | 1 | -1/+13 |
| | | |||||
* | | vulkan_common: clean up extension usage | Liam | 2022-12-04 | 4 | -81/+84 |
| | | |||||
* | | vulkan_common: correct usage of timeline semaphore fallbacks | Liam | 2022-12-04 | 1 | -2/+1 |
| | | |||||
* | | vulkan_common: ensure all mandatory features are tested in feature report | Liam | 2022-12-04 | 1 | -1/+24 |
| | | |||||
* | | vulkan_common: unsuffix 16-bit storage feature test structure | Liam | 2022-12-04 | 1 | -2/+2 |
| | | |||||
* | | vulkan_common: unsuffix timeline semaphore feature test structure | Liam | 2022-12-04 | 1 | -2/+2 |
| | | |||||
* | | vulkan_common: add logicOp to feature report | Liam | 2022-12-04 | 1 | -1/+2 |
| | | |||||
* | | vulkan_common: promote host query reset usage to core | Liam | 2022-12-04 | 3 | -10/+11 |
| | | |||||
* | | vulkan_common: promote descriptor update template usage to core | Liam | 2022-12-04 | 3 | -21/+20 |
| | | |||||
* | | vulkan_common: promote timeline semaphore usage to core | Liam | 2022-12-04 | 3 | -9/+15 |
| | | |||||
* | | Merge pull request #9289 from liamwhite/fruit-company | liamwhite | 2022-12-03 | 3 | -0/+3 |
|\ \ | | | | | | | general: fix compile for Apple Clang | ||||
| * | | general: fix compile for Apple Clang | Liam | 2022-11-23 | 3 | -0/+3 |
| |/ | |||||
* / | Vulkan: update initialization | Liam | 2022-11-27 | 4 | -63/+138 |
|/ | | | | Co-authored-by: bylaws <bylaws@users.noreply.github.com> | ||||
* | vulkan_blitter: Fix pool allocation double free. | Byte | 2022-10-06 | 1 | -20/+0 |
| | |||||
* | renderer_vulkan: add format fallbacks for R16G16B16_SFLOAT, R16G16B16_SSCALED, R8G8B8_SSCALED | Liam | 2022-08-03 | 1 | -90/+144 |
| | |||||
* | Revert "vulkan_device: Block AMDVLK's VK_KHR_push_descriptor" | lat9nq | 2022-06-29 | 1 | -11/+0 |
| | |||||
* | common: Change semantics of UNREACHABLE to unconditionally crash | Liam | 2022-06-14 | 2 | -9/+11 |
| | |||||
* | vulkan_library: Add debug logging | lat9nq | 2022-05-30 | 1 | -0/+4 |
| | |||||
* | Merge pull request #8379 from lat9nq/amd-push-desc-workaround | bunnei | 2022-05-25 | 1 | -0/+11 |
|\ | | | | | vulkan_device: Block AMDVLK's VK_KHR_push_descriptor | ||||
| * | vulkan_device: Block AMDVLK's VK_KHR_push_descriptor | lat9nq | 2022-05-25 | 1 | -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 bug | lat9nq | 2022-05-25 | 1 | -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 VkResult | Alexandre Bouvier | 2022-05-17 | 1 | -0/+2 |
| | |||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 16 | -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 emulation | Fernando Sahmkow | 2022-04-14 | 1 | -0/+12 |
| | |||||
* | fix: typos | Andrea Pappacoda | 2022-04-02 | 1 | -1/+1 |
| | |||||
* | Merge pull request #8076 from ameerj/nv-vk-msaa-scale | bunnei | 2022-03-31 | 1 | -0/+5 |
|\ | | | | | Vulkan: Use 3D helpers for MSAA scaling on NV drivers 510+ | ||||
| * | Vulkan: Use 3D helpers for MSAA scaling on NV drivers 510+ | ameerj | 2022-03-24 | 1 | -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 Sahmkow | 2022-03-25 | 1 | -6/+5 |
| | | |||||
* | | Garbage Collection: Redesign the algorithm to do a better use of memory. | Fernando Sahmkow | 2022-03-25 | 5 | -11/+71 |
|/ | |||||
* | video_core: Reduce unused includes | ameerj | 2022-03-19 | 8 | -15/+8 |
| | |||||
* | vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_state | Ameer J | 2022-02-26 | 1 | -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 ANV | voidanix | 2022-02-21 | 2 | -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 VkPhysicalDeviceShaderAtomicInt64Features | Georg Lehmann | 2022-01-19 | 1 | -1/+1 |
| | |||||
* | vk_texture_cache: Use 3D scale helpers for MSAA texture scaling on Intel Windows drivers | ameerj | 2021-12-24 | 2 | -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 Sahmkow | 2021-12-18 | 2 | -19/+23 |
| | |||||
* | Vulkan: implement Logical Operations. | Fernando Sahmkow | 2021-12-18 | 1 | -1/+1 |
| | |||||
* | Vulkan: Implement VK_EXT_primitive_topology_list_restart | Fernando Sahmkow | 2021-12-18 | 2 | -0/+38 |
| | |||||
* | renderer_vulkan: Add R16G16_UINT | Morph | 2021-12-08 | 1 | -0/+1 |
| | | | | - Used by Immortals Fenyx Rising | ||||
* | renderer_vulkan: Implement S8_UINT stencil format | Morph | 2021-11-18 | 1 | -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 checking | ameerj | 2021-11-16 | 1 | -4/+4 |
| | |||||
* | vulkan_device: Add missing vulkan image format R5G6B5 in GetFormatProperties | Feng Chen | 2021-11-05 | 1 | -0/+1 |
| | | | - Used by Dragon Quest Builders | ||||
* | Merge pull request #7070 from FernandoS27/want-you-bad | Ameer J | 2021-10-24 | 2 | -0/+9 |
|\ | | | | | Vulkan Rasterizer: Correct DepthBias/PolygonOffset on Vulkan. | ||||
| * | Vulkan Rasterizer: Correct DepthBias/PolygonOffset on Vulkan. | Fernando Sahmkow | 2021-09-23 | 2 | -0/+9 |
| | | |||||
* | | vk_texture_cache: Disable cube compatibility flag on non-mesa AMD GCN4 and earlier | ameerj | 2021-09-24 | 2 | -10/+21 |
|/ | | | | Fixes rainbow textures on BOTW. | ||||
* | Merge pull request #7011 from ameerj/vk-validation-0x0 | bunnei | 2021-09-17 | 1 | -0/+1 |
|\ | | | | | vulkan_debug_callback: Ignore InvalidCommandBuffer-VkDescriptorSet errors | ||||
| * | vulkan_debug_callback: Ignore InvalidCommandBuffer-VkDescriptorSet errors | ameerj | 2021-09-14 | 1 | -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 declaration | ameerj | 2021-09-16 | 1 | -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" | ameerj | 2021-09-16 | 1 | -13/+1 |
|/ | | | | | This reverts commit 62e88d0e7455e37840db7e2a8e199bc6ca176966, reversing changes made to edf3da346f4ec0ca492b427f4f693d56e84abc52. | ||||
* | Merge pull request #6943 from FernandoS27/omae-wa-mou-shindeiru | Morph | 2021-09-13 | 1 | -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 Sahmkow | 2021-09-13 | 1 | -6/+20 |
| | | |||||
* | | Merge pull request #7006 from FernandoS27/a-motherfucking-driver | Morph | 2021-09-13 | 1 | -1/+13 |
|\ \ | |/ |/| | Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1 | ||||
| * | Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1 | Fernando Sahmkow | 2021-09-13 | 1 | -1/+13 |
| | | |||||
* | | Merge pull request #6944 from FernandoS27/dear-drunk-me | Morph | 2021-09-13 | 2 | -0/+11 |
|\ \ | | | | | | | Vulkan/Descriptors: Increase sets per pool on AMD propietary driver. | ||||
| * | | Vulkan/Descriptors: Increase sets per pool on AMFD propietary driver. | Fernando Sahmkow | 2021-09-13 | 2 | -0/+11 |
| |/ | |||||
* / | vulkan_device: Enable VK_KHR_swapchain_mutable_format if available | ameerj | 2021-08-29 | 2 | -0/+16 |
|/ | | | | Silences validation errors when creating sRGB image views of linear swapchain images | ||||
* | vulkan_device: Add a check for int8 support | ameerj | 2021-08-25 | 2 | -8/+18 |
| | | | | Silences validation errors when shaders use int8 without specifying its support to the API | ||||
* | vulkan_memory_allocator: Respect bufferImageGranularity | Robin Kertels | 2021-08-07 | 2 | -2/+8 |
| | |||||
* | renderer_vulkan: Add setting to log pipeline statistics | ReinUsesLisp | 2021-07-28 | 4 | -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 images | Lioncash | 2021-07-27 | 1 | -1/+1 |
| | | | | We should be using the passed in object type instead. | ||||
* | vulkan_device: Blacklist Volta and older from VK_KHR_push_descriptor | ReinUsesLisp | 2021-07-23 | 1 | -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_SNORM | ReinUsesLisp | 2021-07-23 | 1 | -0/+1 |
| | |||||
* | vulkan_device: Add missing include algorithm | lat9nq | 2021-07-23 | 1 | -0/+1 |
| | |||||
* | vulkan_device: Blacklist ampere devices from float16 math | ameerj | 2021-07-23 | 2 | -12/+23 |
| | |||||
* | vulkan_device: Enable VK_EXT_extended_dynamic_state on RADV 21.2 onward | ReinUsesLisp | 2021-07-23 | 1 | -4/+7 |
| | |||||
* | vk_graphics_pipeline: Implement smooth lines | ReinUsesLisp | 2021-07-23 | 2 | -5/+42 |
| | |||||
* | vk_graphics_pipeline: Implement line width | ReinUsesLisp | 2021-07-23 | 3 | -2/+8 |
| | |||||
* | shader: Rework varyings and implement passthrough geometry shaders | ReinUsesLisp | 2021-07-23 | 2 | -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 rendering | ReinUsesLisp | 2021-07-23 | 2 | -0/+12 |
| | |||||
* | shader: Emulate 64-bit integers when not supported | ReinUsesLisp | 2021-07-23 | 1 | -0/+5 |
| | | | | Useful for mobile and Intel Xe devices. | ||||
* | vk_graphics_pipeline: Use VK_KHR_push_descriptor when available | ReinUsesLisp | 2021-07-23 | 4 | -12/+43 |
| | | | | ~51% faster on Nvidia compared to previous method. | ||||
* | shader: Add support for native 16-bit floats | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | vulkan_device: Blacklist VK_EXT_vertex_input_dynamic_state on Intel | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | shader: Add shader loop safety check settings | lat9nq | 2021-07-23 | 1 | -2/+2 |
| | | | | Also add a setting for enable Nsight Aftermath. | ||||
* | vulkan_device: Enable VK_EXT_vertex_input_dynamic_state | ReinUsesLisp | 2021-07-23 | 1 | -0/+28 |
| | |||||
* | vulkan: Add VK_EXT_vertex_input_dynamic_state support | ReinUsesLisp | 2021-07-23 | 3 | -0/+15 |
| | | | | | Reduces the number of total pipelines generated on Vulkan. Tested on Super Smash Bros. Ultimate. | ||||
* | vulkan: Use VK_EXT_provoking_vertex when available | ReinUsesLisp | 2021-07-23 | 2 | -0/+34 |
| | |||||
* | nsight_aftermath_tracker: Fix SPIR-V module writes | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | vulkan: Conditionally use shaderInt16 | ReinUsesLisp | 2021-07-23 | 2 | -1/+8 |
| | | | | Add support for Polaris AMD devices. | ||||
* | vulkan: Enable depth bounds and use it conditionally | ReinUsesLisp | 2021-07-23 | 2 | -1/+8 |
| | | | | Intel devices pre-Xe don't support this. | ||||
* | vulkan_device: Enable float64 and int64 conditionally | ReinUsesLisp | 2021-07-23 | 2 | -2/+6 |
| | | | | Add Intel Xe support. | ||||
* | shader: Initial OpenGL implementation | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | vulkan_device: Require shaderClipDistance and shaderCullDistance features | ReinUsesLisp | 2021-07-23 | 1 | -2/+4 |
| | |||||
* | shader: Fix bugs and build issues on GCC | Rodrigo Locatti | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Require dual source blending | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Implement PIXLD.MY_INDEX | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | spirv: Implement ViewportMask with NV_viewport_array2 | ReinUsesLisp | 2021-07-23 | 2 | -0/+11 |
| | |||||
* | shader: Implement tessellation shaders, polygon mode and invocation id | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | spirv: Rework storage buffers and shader memory | ReinUsesLisp | 2021-07-23 | 1 | -1/+28 |
| | |||||
* | shader: Implement ATOM/S and RED | ameerj | 2021-07-23 | 2 | -0/+20 |
| | |||||
* | nsight_aftermath_tracker: Report used shaders to Nsight Aftermath | ReinUsesLisp | 2021-07-23 | 4 | -15/+16 |
| | |||||
* | shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when available | ReinUsesLisp | 2021-07-23 | 2 | -15/+61 |
| | |||||
* | shader: Implement VOTE | ameerj | 2021-07-23 | 2 | -0/+7 |
| | |||||
* | shader: Add partial rasterizer integration | ReinUsesLisp | 2021-07-23 | 1 | -0/+15 |
| | |||||
* | shader: Add denorm flush support | ReinUsesLisp | 2021-07-23 | 3 | -26/+35 |
| | |||||
* | spirv: Add lower fp16 to fp32 pass | ReinUsesLisp | 2021-07-23 | 1 | -5/+5 |
| | |||||
* | Merge pull request #6502 from ameerj/vendor-title | Morph | 2021-06-28 | 2 | -0/+24 |
|\ | | | | | main: Add GPU Vendor name to running title bar | ||||
| * | video_core: Add GPU vendor name to window title bar | ameerj | 2021-06-21 | 2 | -0/+24 |
| | | |||||
* | | vulkan_device: Make device memory match the rest of the file | ReinUsesLisp | 2021-06-25 | 2 | -19/+18 |
| | | | | | | | | Match the style in the file. | ||||
* | | Merge pull request #6465 from FernandoS27/sex-on-the-beach | Mai M | 2021-06-23 | 4 | -5/+43 |
|\ \ | | | | | | | GPU: Implement a garbage collector for GPU Caches (project Reaper+) | ||||
| * | | Reaper: Correct size calculation on Vulkan. | Fernando Sahmkow | 2021-06-17 | 1 | -5/+3 |
| | | | |||||
| * | | Reaper: Change memory restrictions on TC depending on host memory on VK. | Fernando Sahmkow | 2021-06-17 | 2 | -0/+23 |
| | | | |||||
| * | | vulkan_memory_allocator: Release allocations with no commits | ReinUsesLisp | 2021-06-16 | 2 | -5/+22 |
| | | | |||||
* | | | common: fs: Remove [[nodiscard]] attribute on Remove* functions | Morph | 2021-06-22 | 1 | -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 errors | ameerj | 2021-06-18 | 1 | -0/+8 |
|/ | | | | Avoids overwhelming the log with validation errors that are not applicable | ||||
* | vulkan_memory_allocator: Allow textures to be allocated in host memory | ReinUsesLisp | 2021-05-27 | 2 | -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) | Morph | 2021-05-26 | 3 | -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. | bunnei | 2021-04-15 | 1 | -1/+1 |
| | | | | - Removes a dependency on core and input_common from common. | ||||
* | vulkan_device: Enable EXT_robustness2 features | Joshua Ashton | 2021-04-11 | 1 | -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 Unices | Jan Beich | 2021-03-30 | 2 | -5/+5 |
| | |||||
* | vulkan_device: Require VK_EXT_robustness2 | ReinUsesLisp | 2021-02-13 | 2 | -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 uploads | ReinUsesLisp | 2021-02-13 | 2 | -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 robustBufferAccess | ReinUsesLisp | 2021-02-13 | 1 | -1/+2 |
| | | | | | Fix regression on Pascal on Animal Crossing: New Horizons, fixing a validation error. | ||||
* | video_core: Reimplement the buffer cache | ReinUsesLisp | 2021-02-13 | 1 | -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 devices | ReinUsesLisp | 2021-02-13 | 4 | -21/+100 |
| | |||||
* | vulkan_common: Make interop extensions mandatory | ReinUsesLisp | 2021-02-13 | 1 | -0/+6 |
| | |||||
* | vulkan_device: Enable robust buffers | ReinUsesLisp | 2021-02-13 | 1 | -2/+4 |
| | |||||
* | vulkan_device: Use designated initializers for features | ReinUsesLisp | 2021-02-13 | 1 | -60/+59 |
| | |||||
* | vulkan_wrapper: Add memory barrier pipeline barrier helper | ReinUsesLisp | 2021-02-13 | 1 | -0/+6 |
| | |||||
* | vulkan_device: Fix formatting of constants | ReinUsesLisp | 2021-02-13 | 1 | -10/+6 |
| | |||||
* | vulkan_wrapper: Add interop functions | ReinUsesLisp | 2021-02-13 | 2 | -1/+41 |
| | |||||
* | vulkan_instance: Initialize Vulkan instance in a separate thread | ReinUsesLisp | 2021-02-13 | 1 | -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 symbols | ReinUsesLisp | 2021-02-13 | 1 | -0/+11 |
| | |||||
* | gpu: Report renderer errors with exceptions | ReinUsesLisp | 2021-02-13 | 2 | -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 Locatti | 2021-01-27 | 1 | -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-warnings | LC | 2021-01-24 | 1 | -0/+1 |
|\ | | | | | video_core: Silence the remaining gcc warnings and enforce them | ||||
| * | video_core: Silence -Wmissing-field-initializers warnings | ReinUsesLisp | 2021-01-24 | 1 | -0/+1 |
| | | |||||
* | | vulkan_device: Lift VK_EXT_extended_dynamic_state blacklist on RDNA | ReinUsesLisp | 2021-01-25 | 1 | -23/+0 |
|/ | | | | It seems to be safe to use this on new drivers. | ||||
* | nsight_aftermath_tracker: Fix build issues when enabled | ReinUsesLisp | 2021-01-23 | 2 | -16/+5 |
| | | | | Fixes a bunch of build errors when Nsight Aftermath is properly enabled. | ||||
* | Merge pull request #5745 from lioncash/documentation | Rodrigo Locatti | 2021-01-17 | 1 | -3/+2 |
|\ | | | | | video_core: Resolve -Wdocumentation warnings | ||||
| * | video_core: Resolve -Wdocumentation warnings | Lioncash | 2021-01-17 | 1 | -3/+2 |
| | | | | | | | | Silences some -Wdocumentation warnings on Clang. | ||||
* | | vulkan_debug_callback: Add missing header guard | Lioncash | 2021-01-17 | 1 | -0/+2 |
|/ | | | | Prevents inclusion issues from occurring. | ||||
* | vulkan_memory_allocator: Remove unnecesary 'device' memory from commits | ReinUsesLisp | 2021-01-15 | 2 | -15/+15 |
| | |||||
* | vulkan_memory_allocator: Add allocation support for download types | ReinUsesLisp | 2021-01-15 | 2 | -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 hint | ReinUsesLisp | 2021-01-15 | 2 | -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 directory | ReinUsesLisp | 2021-01-15 | 2 | -0/+322 |
| | | | | Allow using the abstraction from the OpenGL backend. | ||||
* | Merge pull request #5350 from ReinUsesLisp/vk-init-warns | Rodrigo Locatti | 2021-01-15 | 2 | -145/+146 |
|\ | | | | | vulkan_common: Silence missing initializer warnings | ||||
| * | vulkan_common: Silence missing initializer warnings | ReinUsesLisp | 2021-01-15 | 2 | -145/+146 |
| | | | | | | | | Silence warnings explicitly initializing all members on construction. | ||||
* | | vulkan_device: Enable shaderStorageImageMultisample conditionally | ReinUsesLisp | 2021-01-15 | 2 | -18/+20 |
|/ | | | | Fix Vulkan initialization on ANV. | ||||
* | vulkan_device: Remove requirement on shaderStorageImageMultisample | ReinUsesLisp | 2021-01-13 | 1 | -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]] | MerryMage | 2021-01-07 | 1 | -1/+1 |
| | | | | Ignore the return value on __APPLE__ systems as well | ||||
* | vulkan_device: Allow creating a device without surface | ReinUsesLisp | 2021-01-04 | 1 | -3/+3 |
| | |||||
* | renderer_vulkan/nsight_aftermath_tracker: Move to vulkan_common | ReinUsesLisp | 2021-01-04 | 4 | -4/+302 |
| | |||||
* | renderer_vulkan: Move device abstraction to vulkan_common | ReinUsesLisp | 2021-01-04 | 2 | -0/+1189 |
| | |||||
* | vulkan_instance: Allow different Vulkan versions and enforce 1.1 | ReinUsesLisp | 2020-12-31 | 2 | -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 VKDevice | ReinUsesLisp | 2020-12-31 | 2 | -6/+3 |
| | | | | | The Vulkan device abstraction either initializes successfully on the constructor or throws a Vulkan exception. | ||||
* | renderer_vulkan: Throw when enumerating devices fails | ReinUsesLisp | 2020-12-31 | 4 | -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 file | ReinUsesLisp | 2020-12-31 | 3 | -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 throw | ReinUsesLisp | 2020-12-31 | 5 | -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 file | ReinUsesLisp | 2020-12-31 | 2 | -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.h | ReinUsesLisp | 2020-12-31 | 2 | -0/+2141 |
| | | | | Allows sharing Vulkan wrapper code between different rendering backends. | ||||
* | vulkan_common: Move dynamic library load to a separate file | ReinUsesLisp | 2020-12-31 | 2 | -0/+49 |
Allows us to initialize a Vulkan dynamic library from different backends without duplicating code. |