Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2023-06-28 | renderer_vulkan: Add more feature checking | GPUCode | 1 | -0/+4 | |
2023-06-28 | renderer_vulkan: Add suport for debug report callback | GPUCode | 1 | -1/+1 | |
2023-06-26 | externals: Use cmake subdirectory | GPUCode | 1 | -2/+0 | |
2023-06-22 | Remove memory allocations in some hot paths | Kelebek1 | 1 | -0/+1 | |
2023-06-19 | video_core: Check broken compute earlier | lat9nq | 1 | -1/+2 | |
Checks it as the system is determining what settings to enable. Reduces the need to check settings while the system is running. | |||||
2023-06-18 | video_core: Formalize HasBrokenCompute | lat9nq | 1 | -0/+2 | |
Also limits it to only affected Intel proprietrary driver versions. vulkan_device: Move broken compute determination vk_device: Remove errant back quote | |||||
2023-06-18 | renderer_vulkan: Add missing initializers | GPUCode | 1 | -4/+8 | |
2023-06-18 | renderer_vulkan: Use VMA for buffers | GPUCode | 1 | -0/+1 | |
2023-06-18 | externals: Add vma and initialize it | lat9nq | 1 | -1/+22 | |
video_core: Move vma implementation to library | |||||
2023-06-18 | vulkan_device: Remove external memory extension | lat9nq | 1 | -8/+0 | |
Unused in yuzu. Enables yuzu to boot games in Wine using Vulkan. | |||||
2023-06-15 | vulkan_device: disable extended_dynamic_state2 on ARM drivers | Liam | 1 | -5/+10 | |
2023-06-10 | shader_recompiler: remove barriers in conditional control flow when device lacks support | Liam | 1 | -0/+2 | |
2023-06-03 | android: vulkan_device: Skip BGR565 emulation on S8gen2. | bunnei | 1 | -1/+3 | |
2023-06-03 | android: vulkan_device: Only compile OverrideBcnFormats when used. | bunnei | 1 | -0/+2 | |
2023-06-03 | android: remove spurious warnings about BCn formats when patched with adrenotools | Liam | 1 | -1/+27 | |
2023-06-03 | android: vulkan: Disable vertex_input_dynamic_state on Qualcomm. | bunnei | 1 | -1/+2 | |
2023-06-03 | android: vulkan_device: Disable VK_EXT_custom_border_color on Adreno. | bunnei | 1 | -0/+7 | |
- Causes crashes on sampler creation with Super Mario Odyssey. | |||||
2023-06-03 | build: only enable adrenotools on arm64 | Liam | 1 | -1/+3 | |
2023-06-03 | video_core: fix clang-format errors | liushuyu | 1 | -2/+1 | |
2023-06-03 | video_core: vulkan_device: Correct error message for unsuitable driver. | bunnei | 1 | -1/+1 | |
2023-06-03 | android: vulkan: Implement adrenotools turbo mode. | bunnei | 1 | -1/+3 | |
2023-06-03 | android: vulkan_device: Disable VK_EXT_extended_dynamic_state2 on Qualcomm. | bunnei | 1 | -3/+3 | |
- Newer drivers report this as supported, but it is broken. | |||||
2023-06-03 | android: native: Add support for custom Vulkan driver loading. | bunnei | 1 | -6/+8 | |
2023-06-03 | Implement scaled vertex buffer format emulation | Billy Laws | 1 | -0/+4 | |
These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead. | |||||
2023-06-03 | Disable push descriptors on adreno drivers | Billy Laws | 1 | -0/+4 | |
Regular descriptors are around 1.5x faster to update. | |||||
2023-06-03 | Disable VK_EXT_extended_dynamic_state on mali | Billy Laws | 1 | -0/+7 | |
2023-06-03 | externals: add adrenotools for bcenabler | Liam | 1 | -0/+30 | |
2023-06-03 | video_core: vulkan_device: Device initialization for Adreno. | bunnei | 1 | -3/+4 | |
2023-05-23 | textures: add BC1 and BC3 compressors and recompression setting | Liam | 1 | -0/+6 | |
2023-05-23 | vulkan_device: Enable VK_KHR_push_descriptor on newer ANV | Liam | 1 | -2/+3 | |
2023-05-22 | Limit the device access memory to 4 GB | scorpion81 | 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 ? | |||||
2023-05-18 | vulkan_device: Disable VK_KHR_push_descriptor on ANV | lat9nq | 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. | |||||
2023-05-14 | vulkan_device: reserve extra memory to prevent swaps | Liam | 1 | -0/+2 | |
2023-05-13 | vulkan_common: disable depth clamp dynamic state for older radv | Liam | 1 | -0/+8 | |
2023-05-03 | vulkan: disable turbo when debugging tool is attached | Liam | 1 | -1/+3 | |
2023-04-08 | video_core: Enable ImageGather with subpixel offset on Intel | Wollnashorn | 1 | -1/+0 | |
2023-04-08 | shader_recompiler: Add subpixel offset for correct rounding at `ImageGather` | Wollnashorn | 1 | -0/+1 | |
On AMD a subpixel offset of 1/512 of the texel size is applied to the texture coordinates at a ImageGather call to ensure the rounding at the texel centers is done the same way as in Maxwell or other Nvidia architectures. See https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/ for more details why this might be necessary. This should fix shadow artifacts at object edges in Zelda: Breath of the Wild (#9957, #6956). | |||||
2023-03-15 | vulkan: disable extendedDynamicState3ColorBlendEquation on radv | Liam | 1 | -0/+6 | |
2023-03-12 | general: fix spelling mistakes | Liam | 1 | -1/+1 | |
2023-03-02 | vulkan_common: disable vertexInputDynamicState on unsupported driver | Liam | 1 | -0/+1 | |
2023-01-10 | MoltenVK: restrict number of vertex attributes/bindings to 16 | TellowKrinkle | 1 | -10/+25 | |
2023-01-09 | vulkan_device: refactor feature testing | Liam | 1 | -1009/+368 | |
2023-01-07 | vulkan_device: avoid attempt to access empty optional | Liam | 1 | -2/+6 | |
2023-01-07 | renderer_vulkan: disable clock boost on unvalidated devices | Liam | 1 | -0/+12 | |
2023-01-05 | vulkan: implement 'turbo mode' clock booster | Liam | 1 | -1/+1 | |
2023-01-05 | renderer_vulkan: implement fallback path for null descriptors | Liam | 1 | -0/+3 | |
2023-01-04 | Vulkan: Update blacklisting to latest driver versions. | Fernando Sahmkow | 1 | -5/+12 | |
2023-01-01 | vulkan_common: blacklist radv from extended_dynamic_state2 on drivers before 22.3.1 | Liam | 1 | -0/+10 | |
2023-01-01 | video_core: fix build | Liam | 1 | -0/+27 | |
2023-01-01 | MacroHLE: Final cleanup and fixes. | Fernando Sahmkow | 1 | -8/+16 | |
2023-01-01 | Vulkan: Implement Dynamic State 3 | Fernando Sahmkow | 1 | -32/+41 | |
2023-01-01 | Vulkan Implement Dynamic State 2 LogicOp and PatchVertices | Fernando Sahmkow | 1 | -4/+1 | |
2023-01-01 | Vulkan: Implement Dynamic States 2 | Fernando Sahmkow | 1 | -0/+64 | |
2023-01-01 | MacroHLE: Implement DrawIndexedIndirect & DrawArraysIndirect. | Fernando Sahmkow | 1 | -1/+4 | |
2023-01-01 | MacroHLE: Add MultidrawIndirect HLE Macro. | Fernando Sahmkow | 1 | -1/+1 | |
2022-12-14 | Vulkan: Add support for VK_EXT_depth_clip_control. | FernandoS27 | 1 | -0/+25 | |
2022-12-14 | vulkan_common: declare storageBuffer8BitAccess | Liam | 1 | -1/+2 | |
2022-12-13 | Fix validation errors on less compatible Intel GPU | yzct12345 | 1 | -0/+4 | |
2022-12-06 | vulkan_common: further initialization tweaks | Liam | 1 | -0/+2 | |
2022-12-04 | vulkan_common: add feature test for shaderDrawParameters | Liam | 1 | -1/+13 | |
2022-12-04 | vulkan_common: clean up extension usage | Liam | 1 | -67/+54 | |
2022-12-04 | vulkan_common: ensure all mandatory features are tested in feature report | Liam | 1 | -1/+24 | |
2022-12-04 | vulkan_common: unsuffix 16-bit storage feature test structure | Liam | 1 | -2/+2 | |
2022-12-04 | vulkan_common: unsuffix timeline semaphore feature test structure | Liam | 1 | -2/+2 | |
2022-12-04 | vulkan_common: add logicOp to feature report | Liam | 1 | -1/+2 | |
2022-12-04 | vulkan_common: promote host query reset usage to core | Liam | 1 | -6/+2 | |
2022-12-04 | vulkan_common: promote descriptor update template usage to core | Liam | 1 | -1/+0 | |
2022-12-04 | vulkan_common: promote timeline semaphore usage to core | Liam | 1 | -1/+0 | |
2022-12-01 | vulkan_common: quiet some validation errors | Liam | 1 | -1/+1 | |
2022-11-27 | Vulkan: update initialization | Liam | 1 | -46/+74 | |
Co-authored-by: bylaws <bylaws@users.noreply.github.com> | |||||
2022-11-23 | general: fix compile for Apple Clang | Liam | 1 | -0/+1 | |
2022-08-03 | renderer_vulkan: add format fallbacks for R16G16B16_SFLOAT, R16G16B16_SSCALED, R8G8B8_SSCALED | Liam | 1 | -90/+144 | |
2022-06-29 | Revert "vulkan_device: Block AMDVLK's VK_KHR_push_descriptor" | lat9nq | 1 | -11/+0 | |
2022-06-14 | common: Change semantics of UNREACHABLE to unconditionally crash | Liam | 1 | -6/+8 | |
2022-05-25 | vulkan_device: Workaround extension bug | lat9nq | 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. | |||||
2022-05-25 | vulkan_device: Block AMDVLK's VK_KHR_push_descriptor | lat9nq | 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. | |||||
2022-04-23 | general: Convert source file copyright comments over to SPDX | Morph | 1 | -3/+2 | |
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. | |||||
2022-04-14 | video_core: implement formats for N64 emulation | Fernando Sahmkow | 1 | -0/+12 | |
2022-04-02 | fix: typos | Andrea Pappacoda | 1 | -1/+1 | |
2022-03-25 | GC: Address Feedback. | Fernando Sahmkow | 1 | -6/+5 | |
2022-03-25 | Garbage Collection: Redesign the algorithm to do a better use of memory. | Fernando Sahmkow | 1 | -4/+48 | |
2022-03-24 | Vulkan: Use 3D helpers for MSAA scaling on NV drivers 510+ | ameerj | 1 | -0/+5 | |
Nvidia Vulkan drivers 510+ crash when blitting MSAA images. Fall-back to 3D scale helpers for MSAA image scaling. | |||||
2022-03-19 | video_core: Reduce unused includes | ameerj | 1 | -1/+0 | |
2022-02-26 | vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_state | Ameer J | 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. | |||||
2022-02-21 | vulkan_device: fix missing format in ANV | voidanix | 1 | -0/+12 | |
Currently Mesa's ANV driver does not support VK_FORMAT_B5G6R5_UNORM_PACK16, implement an alternative for it. | |||||
2022-01-19 | vulkan_device: Fix sType for VkPhysicalDeviceShaderAtomicInt64Features | Georg Lehmann | 1 | -1/+1 | |
2021-12-24 | vk_texture_cache: Use 3D scale helpers for MSAA texture scaling on Intel Windows drivers | ameerj | 1 | -2/+7 | |
Fixes a crash when scaling MSAA textures in titles such as Sonic Colors Ultimate. | |||||
2021-12-18 | Vulkan: Fix the checks for primitive restart extension. | Fernando Sahmkow | 1 | -12/+13 | |
2021-12-18 | Vulkan: implement Logical Operations. | Fernando Sahmkow | 1 | -1/+1 | |
2021-12-18 | Vulkan: Implement VK_EXT_primitive_topology_list_restart | Fernando Sahmkow | 1 | -0/+28 | |
2021-12-08 | renderer_vulkan: Add R16G16_UINT | Morph | 1 | -0/+1 | |
- Used by Immortals Fenyx Rising | |||||
2021-11-18 | renderer_vulkan: Implement S8_UINT stencil format | Morph | 1 | -0/+10 | |
It should be noted that on Windows, only nvidia gpus support this format natively as of this commit. | |||||
2021-11-05 | vulkan_device: Add missing vulkan image format R5G6B5 in GetFormatProperties | Feng Chen | 1 | -0/+1 | |
- Used by Dragon Quest Builders | |||||
2021-09-24 | vk_texture_cache: Disable cube compatibility flag on non-mesa AMD GCN4 and earlier | ameerj | 1 | -10/+15 | |
Fixes rainbow textures on BOTW. | |||||
2021-09-23 | Vulkan Rasterizer: Correct DepthBias/PolygonOffset on Vulkan. | Fernando Sahmkow | 1 | -0/+4 | |
2021-09-16 | vulkan_device: Reorder Float16Int8 declaration | ameerj | 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. | |||||
2021-09-16 | Revert "Merge pull request #7006 from FernandoS27/a-motherfucking-driver" | ameerj | 1 | -13/+1 | |
This reverts commit 62e88d0e7455e37840db7e2a8e199bc6ca176966, reversing changes made to edf3da346f4ec0ca492b427f4f693d56e84abc52. | |||||
2021-09-13 | Vulkan: Disable VK_EXT_SAMPLER_FILTER_MINMAX in GCN AMD since it's broken. | Fernando Sahmkow | 1 | -6/+20 | |
2021-09-13 | Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1 | Fernando Sahmkow | 1 | -1/+13 | |
2021-09-13 | Vulkan/Descriptors: Increase sets per pool on AMFD propietary driver. | Fernando Sahmkow | 1 | -0/+6 | |
2021-08-29 | vulkan_device: Enable VK_KHR_swapchain_mutable_format if available | ameerj | 1 | -0/+10 | |
Silences validation errors when creating sRGB image views of linear swapchain images | |||||
2021-08-25 | vulkan_device: Add a check for int8 support | ameerj | 1 | -6/+10 | |
Silences validation errors when shaders use int8 without specifying its support to the API | |||||
2021-07-28 | renderer_vulkan: Add setting to log pipeline statistics | ReinUsesLisp | 1 | -0/+29 | |
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. | |||||
2021-07-23 | vulkan_device: Blacklist Volta and older from VK_KHR_push_descriptor | ReinUsesLisp | 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. | |||||
2021-07-23 | maxwell_to_vk: Add R16_SNORM | ReinUsesLisp | 1 | -0/+1 | |
2021-07-23 | vulkan_device: Add missing include algorithm | lat9nq | 1 | -0/+1 | |
2021-07-23 | vulkan_device: Blacklist ampere devices from float16 math | ameerj | 1 | -9/+20 | |
2021-07-23 | vulkan_device: Enable VK_EXT_extended_dynamic_state on RADV 21.2 onward | ReinUsesLisp | 1 | -4/+7 | |
2021-07-23 | vk_graphics_pipeline: Implement smooth lines | ReinUsesLisp | 1 | -5/+36 | |
2021-07-23 | vk_graphics_pipeline: Implement line width | ReinUsesLisp | 1 | -2/+2 | |
2021-07-23 | shader: Rework varyings and implement passthrough geometry shaders | ReinUsesLisp | 1 | -0/+6 | |
Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's. | |||||
2021-07-23 | vk_graphics_pipeline: Implement conservative rendering | ReinUsesLisp | 1 | -0/+6 | |
2021-07-23 | vk_graphics_pipeline: Use VK_KHR_push_descriptor when available | ReinUsesLisp | 1 | -0/+11 | |
~51% faster on Nvidia compared to previous method. | |||||
2021-07-23 | shader: Add support for native 16-bit floats | ReinUsesLisp | 1 | -2/+2 | |
2021-07-23 | vulkan_device: Blacklist VK_EXT_vertex_input_dynamic_state on Intel | ReinUsesLisp | 1 | -0/+4 | |
2021-07-23 | shader: Add shader loop safety check settings | lat9nq | 1 | -2/+2 | |
Also add a setting for enable Nsight Aftermath. | |||||
2021-07-23 | vulkan_device: Enable VK_EXT_vertex_input_dynamic_state | ReinUsesLisp | 1 | -0/+28 | |
2021-07-23 | vulkan: Use VK_EXT_provoking_vertex when available | ReinUsesLisp | 1 | -0/+28 | |
2021-07-23 | vulkan: Conditionally use shaderInt16 | ReinUsesLisp | 1 | -1/+2 | |
Add support for Polaris AMD devices. | |||||
2021-07-23 | vulkan: Enable depth bounds and use it conditionally | ReinUsesLisp | 1 | -1/+2 | |
Intel devices pre-Xe don't support this. | |||||
2021-07-23 | vulkan_device: Enable float64 and int64 conditionally | ReinUsesLisp | 1 | -2/+4 | |
Add Intel Xe support. | |||||
2021-07-23 | shader: Initial OpenGL implementation | ReinUsesLisp | 1 | -1/+1 | |
2021-07-23 | vulkan_device: Require shaderClipDistance and shaderCullDistance features | ReinUsesLisp | 1 | -2/+4 | |
2021-07-23 | shader: Require dual source blending | ReinUsesLisp | 1 | -1/+2 | |
2021-07-23 | shader: Implement PIXLD.MY_INDEX | ReinUsesLisp | 1 | -1/+2 | |
2021-07-23 | spirv: Implement ViewportMask with NV_viewport_array2 | ReinUsesLisp | 1 | -0/+5 | |
2021-07-23 | shader: Implement tessellation shaders, polygon mode and invocation id | ReinUsesLisp | 1 | -1/+2 | |
2021-07-23 | spirv: Rework storage buffers and shader memory | ReinUsesLisp | 1 | -1/+28 | |
2021-07-23 | shader: Implement ATOM/S and RED | ameerj | 1 | -0/+14 | |
2021-07-23 | nsight_aftermath_tracker: Report used shaders to Nsight Aftermath | ReinUsesLisp | 1 | -1/+1 | |
2021-07-23 | shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when available | ReinUsesLisp | 1 | -0/+34 | |
2021-07-23 | shader: Implement VOTE | ameerj | 1 | -0/+1 | |
2021-07-23 | shader: Add partial rasterizer integration | ReinUsesLisp | 1 | -0/+15 | |
2021-07-23 | shader: Add denorm flush support | ReinUsesLisp | 1 | -8/+18 | |
2021-07-23 | spirv: Add lower fp16 to fp32 pass | ReinUsesLisp | 1 | -5/+5 | |
2021-06-25 | vulkan_device: Make device memory match the rest of the file | ReinUsesLisp | 1 | -2/+2 | |
Match the style in the file. | |||||
2021-06-21 | video_core: Add GPU vendor name to window title bar | ameerj | 1 | -0/+21 | |
2021-06-17 | Reaper: Correct size calculation on Vulkan. | Fernando Sahmkow | 1 | -5/+3 | |
2021-06-17 | Reaper: Change memory restrictions on TC depending on host memory on VK. | Fernando Sahmkow | 1 | -0/+14 | |
2021-04-15 | common: Move settings to common from core. | bunnei | 1 | -1/+1 | |
- Removes a dependency on core and input_common from common. | |||||
2021-04-11 | vulkan_device: Enable EXT_robustness2 features | Joshua Ashton | 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") | |||||
2021-03-30 | vulkan_common: enable OpenGL interop on other Unices | Jan Beich | 1 | -1/+1 | |
2021-02-13 | vulkan_device: Require VK_EXT_robustness2 | ReinUsesLisp | 1 | -36/+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. | |||||
2021-02-13 | vulkan_device: Enable robustBufferAccess | ReinUsesLisp | 1 | -1/+2 | |
Fix regression on Pascal on Animal Crossing: New Horizons, fixing a validation error. | |||||
2021-02-13 | vulkan_common: Expose interop and headless devices | ReinUsesLisp | 1 | -6/+15 | |
2021-02-13 | vulkan_common: Make interop extensions mandatory | ReinUsesLisp | 1 | -0/+6 | |
2021-02-13 | vulkan_device: Enable robust buffers | ReinUsesLisp | 1 | -2/+4 | |
2021-02-13 | vulkan_device: Use designated initializers for features | ReinUsesLisp | 1 | -60/+59 | |
2021-02-13 | vulkan_device: Fix formatting of constants | ReinUsesLisp | 1 | -10/+6 | |
2021-01-27 | vulkan_device: Blacklist Intel from float16 math (#5798) | Rodrigo Locatti | 1 | -0/+5 | |
Astral Chain crashes Intel's SPIR-V compiler when using fp16. Disable this while the vendor works on a fix. | |||||
2021-01-25 | vulkan_device: Lift VK_EXT_extended_dynamic_state blacklist on RDNA | ReinUsesLisp | 1 | -23/+0 | |
It seems to be safe to use this on new drivers. | |||||
2021-01-15 | vulkan_common: Silence missing initializer warnings | ReinUsesLisp | 1 | -3/+4 | |
Silence warnings explicitly initializing all members on construction. | |||||
2021-01-15 | vulkan_device: Enable shaderStorageImageMultisample conditionally | ReinUsesLisp | 1 | -1/+2 | |
Fix Vulkan initialization on ANV. | |||||
2021-01-13 | vulkan_device: Remove requirement on shaderStorageImageMultisample | ReinUsesLisp | 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. | |||||
2021-01-04 | vulkan_device: Allow creating a device without surface | ReinUsesLisp | 1 | -3/+3 | |
2021-01-04 | renderer_vulkan/nsight_aftermath_tracker: Move to vulkan_common | ReinUsesLisp | 1 | -2/+5 | |
2021-01-04 | renderer_vulkan: Move device abstraction to vulkan_common | ReinUsesLisp | 1 | -1/+1 | |
2021-01-03 | renderer_vulkan: Rename VKDevice to Device | ReinUsesLisp | 1 | -19/+19 | |
The "VK" prefix predates the "Vulkan" namespace. It was carried around the codebase for consistency. "VKDevice" currently is a bad alias with "VkDevice" (only an upcase character of difference) that can cause confusion. Rename all instances of it. | |||||
2021-01-02 | general: Fix various spelling errors | Morph | 1 | -1/+1 | |
2020-12-31 | vulkan_instance: Allow different Vulkan versions and enforce 1.1 | ReinUsesLisp | 1 | -6/+4 | |
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. | |||||
2020-12-31 | vk_device: Use an array to report lacking device limits | ReinUsesLisp | 1 | -13/+17 | |
This makes easier to add and tune the required device limits. | |||||
2020-12-31 | vk_device: Stop initialization when device is not suitable | ReinUsesLisp | 1 | -59/+37 | |
VKDevice::IsSuitable was not being called. To address this issue, check suitability before initialization and throw an exception if it fails. By doing this, we can deduplicate some code on queue searches. Previosuly we would first search if a present and graphics queue existed, then on initialization we would search again to find the index. | |||||
2020-12-31 | renderer_vulkan: Remove two step initialization on VKDevice | ReinUsesLisp | 1 | -10/+2 | |
The Vulkan device abstraction either initializes successfully on the constructor or throws a Vulkan exception. | |||||
2020-12-31 | vulkan_common: Rename renderer_vulkan/wrapper.h to vulkan_common/vulkan_wrapper.h | ReinUsesLisp | 1 | -1/+1 | |
Allows sharing Vulkan wrapper code between different rendering backends. | |||||
2020-12-30 | video_core: Rewrite the texture cache | ReinUsesLisp | 1 | -9/+101 | |
The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage.The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage. This commit aims to address those issues. | |||||
2020-12-05 | video_core: Resolve more variable shadowing scenarios pt.2 | Lioncash | 1 | -8/+8 | |
Migrates the video core code closer to enabling variable shadowing warnings as errors. This primarily sorts out shadowing occurrences within the Vulkan code. | |||||
2020-10-30 | General: Resolve a few missing initializer warnings | Lioncash | 1 | -2/+7 | |
Resolves a few -Wmissing-initializer warnings. | |||||
2020-10-09 | vk_device: Block VK_EXT_extended_dynamic_state for RDNA devices | goldenx86 | 1 | -0/+24 | |
RDNA devices seem to crash when using VK_EXT_extended_dynamic_state in the latest 20.9.2 proprietary Windows drivers. As a workaround, for now we block device names corresponding to current RDNA released products. | |||||
2020-09-30 | Remove ext_extended_dynamic_state blacklist | Matías Locatti | 1 | -8/+0 | |
Latest AMD 20.9.2 driver fixed this, there's no reason to keep it blocked, as the previous stable signed driver release doesn't include the extension. | |||||
2020-09-19 | renderer_vulkan: Make unconditional use of VK_KHR_timeline_semaphore | ReinUsesLisp | 1 | -0/+8 | |
This reworks how host<->device synchronization works on the Vulkan backend. Instead of "protecting" resources with a fence and signalling these as free when the fence is known to be signalled by the host GPU, use timeline semaphores. Vulkan timeline semaphores allow use to work on a subset of D3D12 fences. As far as we are concerned, timeline semaphores are a value set by the host or the device that can be waited by either of them. Taking advantange of this, we can have a monolithically increasing atomic value for each submission to the graphics queue. Instead of protecting resources with a fence, we simply store the current logical tick (the atomic value stored in CPU memory). When we want to know if a resource is free, it can be compared to the current GPU tick. This greatly simplifies resource management code and the free status of resources should have less false negatives. To workaround bugs in validation layers, when these are attached there's a thread waiting for timeline semaphores. | |||||
2020-08-31 | vk_device: Fix driver id check on AMD for VK_EXT_extended_dynamic_state | ReinUsesLisp | 1 | -6/+9 | |
'driver_id' can only be known on Vulkan 1.1 after creating a logical device. Move the driver id check to disable VK_EXT_extended_dynamic_state after the logical device is successfully initialized. The Vulkan device will have the extension enabled but it will not be used. | |||||
2020-08-29 | vk_device: Blacklist AMD proprietary from VK_EXT_extended_dynamic_state | ReinUsesLisp | 1 | -1/+6 | |
Vertex binding's <stride> is bugged on AMD's proprietary drivers when using VK_EXT_extended_dynamic_state. Blacklist it for now while we investigate how to report this issue to AMD. | |||||
2020-08-20 | vk_device: Use Vulkan 1.0 properly | ReinUsesLisp | 1 | -38/+35 | |
Enable the required capabilities to use Vulkan 1.0 without validation errors and disable those that are not compatible with it. | |||||
2020-08-16 | Vk Async pipeline compilation | ameerj | 1 | -0/+2 | |
2020-08-03 | vulkan: Silence more -Wmissing-field-initializer warnings | Lioncash | 1 | -1/+2 | |
2020-07-18 | vk_device: Fix build error on old MSVC versions | ReinUsesLisp | 1 | -3/+3 | |
Designated initializers on old MSVC versions fail to build when they take the address of a constant. | |||||
2020-07-14 | vk_device: Make use of designated initializers where applicable | Lioncash | 1 | -124/+152 | |
Avoids redundant repetitions of variable names, and allows assignment all in one statement. | |||||
2020-07-13 | video_core: Fix DXT4 and RGB565 | ReinUsesLisp | 1 | -0/+1 | |
2020-07-13 | video_core: Implement RGBA32_SINT render target | ReinUsesLisp | 1 | -0/+1 | |
2020-07-13 | video_core: Implement RGBA32_SINT render target | ReinUsesLisp | 1 | -0/+1 | |
2020-07-13 | video_core: Implement RGBA16_SINT render target | ReinUsesLisp | 1 | -0/+1 | |
2020-07-13 | video_core: Implement RGBA8_SINT render target | ReinUsesLisp | 1 | -0/+1 | |
2020-07-13 | video_core: Implement RG32_SINT render target | ReinUsesLisp | 1 | -0/+1 | |
2020-07-13 | video_core: Implement RG8_SINT render target and fix RG8_UINT | ReinUsesLisp | 1 | -0/+1 | |
2020-07-13 | video_core: Implement R8_SINT render target | ReinUsesLisp | 1 | -0/+1 | |
2020-07-13 | video_core: Implement R8_SNORM render target | ReinUsesLisp | 1 | -0/+1 | |
2020-06-27 | vk_device: Enable VK_EXT_extended_dynamic_state when available | ReinUsesLisp | 1 | -0/+26 | |
2020-06-02 | maxwell_to_vk: Add R16UI image format | ReinUsesLisp | 1 | -70/+73 | |
- Used by Octopath Traveler | |||||
2020-05-18 | maxwell_to_vk: Add format B8G8R8A8_SRGB | Morph | 1 | -0/+1 | |
Add format B8G8R8A8_SRGB and add Attachable capability for B8G8R8A8_UNORM Used by Bravely Default II | |||||
2020-05-05 | vk_sampler_cache: Use VK_EXT_custom_border_color when available | ReinUsesLisp | 1 | -0/+27 | |
This should fix grass interactions on Breath of the Wild on Vulkan. It is currently untested against validation layers. Nvidia's Windows 443.09 beta driver or Linux 440.66.12 is required for now. | |||||
2020-05-04 | vk_graphics_pipeline: Implement viewport swizzles with NV_viewport_swizzle | ReinUsesLisp | 1 | -0/+5 | |
2020-04-30 | texture: Implement R8G8UI | Morph | 1 | -0/+1 | |
- Used by The Walking Dead: The Final Season | |||||
2020-04-29 | vulkan: Remove unnecessary includes | Lioncash | 1 | -1/+0 | |
Reduces some header churn and reduces rebuilds when some header internals change. While we're at it we can also resolve a missing include in buffer_cache. | |||||
2020-04-14 | renderer_vulkan: Integrate Nvidia Nsight Aftermath on Windows | ReinUsesLisp | 1 | -13/+22 | |
Adds optional support for Nsight Aftermath. It is enabled through ENABLE_NSIGHT_AFTERMATH in cmake. A path to the SDK has to be provided by the environment variable NSIGHT_AFTERMATH_SDK. Nsight Aftermath allows an application to generate "minidumps" of the GPU state when a device loss happens. By analysing these on Nsight we can know what a game was doing and why it triggered a device loss. The dump is generated inside %APPDATA%\yuzu\log\gpucrash and this directory is deleted every time a new instance is initialized with Nsight enabled. To enable it on yuzu there has a to be a driver and device capable of running Nsight Aftermath on Vulkan. That means only Turing based GPUs on the latest stable driver, beta drivers won't work for now. It is manually enabled in Configuration>Debug>Enable Graphics Debugging because when using all debugging capabilities there is a runtime cost. | |||||
2020-04-11 | renderer_vulkan: Drop Vulkan-Hpp | ReinUsesLisp | 1 | -255/+315 | |
2020-04-07 | yuzu: Drop SDL2 and Qt frontend Vulkan requirements | ReinUsesLisp | 1 | -46/+46 | |
Create Vulkan instances and surfaces from the Vulkan backend. | |||||
2020-04-01 | vk_device: Add missing ASTC queries | ReinUsesLisp | 1 | -14/+29 | |
2020-04-01 | video_core: Use native ASTC when available | ReinUsesLisp | 1 | -2/+0 | |
2020-03-13 | vk_device: Enable VK_EXT_transform_feedback when available | ReinUsesLisp | 1 | -7/+34 | |
2020-03-13 | vk_device: Shrink formatless capability name size | ReinUsesLisp | 1 | -4/+2 | |
2020-03-13 | video_core: Implement RGBA16_SNORM | ReinUsesLisp | 1 | -0/+1 | |
Implement RGBA16_SNORM with the current API. Nothing special here. | |||||
2020-02-21 | vk_device: remove left over from other branch | Nguyen Dac Nam | 1 | -1/+0 | |
2020-02-19 | vk_device: setup shaderStorageImageReadWithoutFormat | Nguyen Dac Nam | 1 | -0/+5 | |
2020-02-18 | add eBc2SrgbBlock to formats | Nguyen Dac Nam | 1 | -0/+1 | |
2020-02-15 | texture: Implement R32I | ReinUsesLisp | 1 | -0/+1 | |
2020-02-14 | vk_query_cache: Implement generic query cache on Vulkan | ReinUsesLisp | 1 | -1/+9 | |
2020-01-29 | settings: Add settings for graphics backend | ReinUsesLisp | 1 | -2/+4 | |
2019-12-19 | vk_device: Add entry to catch device losses | ReinUsesLisp | 1 | -0/+21 | |
VK_NV_device_diagnostic_checkpoints allows us to push data to a Vulkan queue and then query it even after a device loss. This allows us to push the current pipeline object and see what was the call that killed the device. | |||||
2019-12-19 | vk_device: Add query for RGBA8Uint | ReinUsesLisp | 1 | -0/+1 | |
2019-12-09 | vk_device: Misc changes | ReinUsesLisp | 1 | -100/+199 | |
- Setup more features and requirements. - Improve logging for missing features. - Collect telemetry parameters. - Add queries for more image formats. - Query push constants limits. - Optionally enable some extensions. | |||||
2019-12-09 | externals: Update Vulkan-Headers | ReinUsesLisp | 1 | -2/+1 | |
2019-09-13 | vk_device: Add miscellaneous features and minor style changes | ReinUsesLisp | 1 | -90/+211 | |
* Increase minimum Vulkan requirements * Require VK_EXT_vertex_attribute_divisor * Require depthClamp, samplerAnisotropy and largePoints features * Search and expose VK_KHR_uniform_buffer_standard_layout * Search and expose VK_EXT_index_type_uint8 * Search and expose native float16 arithmetics * Track current driver with VK_KHR_driver_properties * Query and expose SSBO alignment * Query more image formats * Improve logging overall * Minor style changes * Minor rephrasing of commentaries | |||||
2019-05-26 | vk_device: Let formats array type be deduced | ReinUsesLisp | 1 | -33/+33 | |
2019-05-26 | vk_device: Enable features when available and misc changes | ReinUsesLisp | 1 | -28/+108 | |
Keeps track of native ASTC support, VK_EXT_scalar_block_layout availability and SSBO range. Check for independentBlend and vertexPipelineStorageAndAtomics as a required feature. Always enable it. Use vk::to_string format to log Vulkan enums. Style changes. | |||||
2019-03-04 | maxwell_to_vk: Initial implementation | ReinUsesLisp | 1 | -3/+10 | |
2019-02-13 | vk_device: Abstract device handling into a class | ReinUsesLisp | 1 | -0/+231 | |
VKDevice contains all the data required to manage and initialize a physical device. Its intention is to be passed across Vulkan objects to query device-specific data (for example the logical device and the dispatch loader). |