aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/vulkan_common
AgeCommit message (Collapse)Author
2021-07-22vk_graphics_pipeline: Use VK_KHR_push_descriptor when availableReinUsesLisp
~51% faster on Nvidia compared to previous method.
2021-07-22shader: Add support for native 16-bit floatsReinUsesLisp
2021-07-22vulkan_device: Blacklist VK_EXT_vertex_input_dynamic_state on IntelReinUsesLisp
2021-07-22shader: Add shader loop safety check settingslat9nq
Also add a setting for enable Nsight Aftermath.
2021-07-22vulkan_device: Enable VK_EXT_vertex_input_dynamic_stateReinUsesLisp
2021-07-22vulkan: Add VK_EXT_vertex_input_dynamic_state supportReinUsesLisp
Reduces the number of total pipelines generated on Vulkan. Tested on Super Smash Bros. Ultimate.
2021-07-22vulkan: Use VK_EXT_provoking_vertex when availableReinUsesLisp
2021-07-22nsight_aftermath_tracker: Fix SPIR-V module writesReinUsesLisp
2021-07-22vulkan: Conditionally use shaderInt16ReinUsesLisp
Add support for Polaris AMD devices.
2021-07-22vulkan: Enable depth bounds and use it conditionallyReinUsesLisp
Intel devices pre-Xe don't support this.
2021-07-22vulkan_device: Enable float64 and int64 conditionallyReinUsesLisp
Add Intel Xe support.
2021-07-22shader: Initial OpenGL implementationReinUsesLisp
2021-07-22vulkan_device: Require shaderClipDistance and shaderCullDistance featuresReinUsesLisp
2021-07-22shader: Fix bugs and build issues on GCCRodrigo Locatti
2021-07-22shader: Require dual source blendingReinUsesLisp
2021-07-22shader: Implement PIXLD.MY_INDEXReinUsesLisp
2021-07-22spirv: Implement ViewportMask with NV_viewport_array2ReinUsesLisp
2021-07-22shader: Implement tessellation shaders, polygon mode and invocation idReinUsesLisp
2021-07-22spirv: Rework storage buffers and shader memoryReinUsesLisp
2021-07-22shader: Implement ATOM/S and REDameerj
2021-07-22nsight_aftermath_tracker: Report used shaders to Nsight AftermathReinUsesLisp
2021-07-22shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when availableReinUsesLisp
2021-07-22shader: Implement VOTEameerj
2021-07-22shader: Add partial rasterizer integrationReinUsesLisp
2021-07-22shader: Add denorm flush supportReinUsesLisp
2021-07-22spirv: Add lower fp16 to fp32 passReinUsesLisp
2021-06-28Merge pull request #6502 from ameerj/vendor-titleMorph
main: Add GPU Vendor name to running title bar
2021-06-25vulkan_device: Make device memory match the rest of the fileReinUsesLisp
Match the style in the file.
2021-06-23Merge pull request #6465 from FernandoS27/sex-on-the-beachMai M
GPU: Implement a garbage collector for GPU Caches (project Reaper+)
2021-06-22common: fs: Remove [[nodiscard]] attribute on Remove* functionsMorph
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.
2021-06-20video_core: Add GPU vendor name to window title barameerj
2021-06-17vulkan_debug_callback: Skip logging known false-positive validation errorsameerj
Avoids overwhelming the log with validation errors that are not applicable
2021-06-17Reaper: Correct size calculation on Vulkan.Fernando Sahmkow
2021-06-17Reaper: Change memory restrictions on TC depending on host memory on VK.Fernando Sahmkow
2021-06-16vulkan_memory_allocator: Release allocations with no commitsReinUsesLisp
2021-05-27vulkan_memory_allocator: Allow textures to be allocated in host memoryReinUsesLisp
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.
2021-05-25common: fs: Rework the Common Filesystem interface to make use of ↵Morph
std::filesystem (#6270) * 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
2021-04-14common: Move settings to common from core.bunnei
- Removes a dependency on core and input_common from common.
2021-04-11vulkan_device: Enable EXT_robustness2 featuresJoshua Ashton
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-30vulkan_common: enable OpenGL interop on other UnicesJan Beich
2021-02-13vulkan_device: Require VK_EXT_robustness2ReinUsesLisp
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-13vk_staging_buffer_pool: Add stream buffer for small uploadsReinUsesLisp
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.
2021-02-13vulkan_device: Enable robustBufferAccessReinUsesLisp
Fix regression on Pascal on Animal Crossing: New Horizons, fixing a validation error.
2021-02-13video_core: Reimplement the buffer cacheReinUsesLisp
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.
2021-02-13vulkan_common: Expose interop and headless devicesReinUsesLisp
2021-02-13vulkan_common: Make interop extensions mandatoryReinUsesLisp
2021-02-13vulkan_device: Enable robust buffersReinUsesLisp
2021-02-13vulkan_device: Use designated initializers for featuresReinUsesLisp
2021-02-13vulkan_wrapper: Add memory barrier pipeline barrier helperReinUsesLisp
2021-02-13vulkan_device: Fix formatting of constantsReinUsesLisp