aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2021-06-25vulkan_device: Make device memory match the rest of the fileReinUsesLisp
Match the style in the file.
2021-06-24Merge pull request #6496 from ameerj/astc-fixesbunnei
astc: Various robustness enhancements for the gpu decoder
2021-06-24Merge pull request #6519 from Wunkolo/mem-size-literalbunnei
common: Replace common_sizes into user-literals
2021-06-24common: Replace common_sizes into user-literalsWunkolo
Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc user-literals within literals.h. To keep the global namespace clean, users will have to use: ``` using namespace Common::Literals; ``` to access these literals.
2021-06-23Merge pull request #6517 from lioncash/fmtlibbunnei
externals: Update fmt to 8.0.0
2021-06-23General: Resolve fmt specifiers to adhere to 8.0.0 API where applicableLioncash
Also removes some deprecated API usages.
2021-06-23Merge pull request #6518 from lioncash/funcbunnei
maxwell3d: Add missing return in default SizeInBytes() case
2021-06-23maxwell3d: Add missing return in default SizeInBytes() caseLioncash
We were returning '1' in ComponentCount()'s default case but were neglecting to do the same with SizeInBytes().
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-23Merge pull request #6508 from ReinUsesLisp/bootmanager-stop-tokenMai M
bootmanager: Use std::stop_source for stopping emulation
2021-06-22Reaper: Set minimum cleaning limit on OGL.Fernando Sahmkow
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-22bootmanager: Use std::stop_source for stopping emulationReinUsesLisp
Use its std::stop_token to abort shader cache loading. Using std::stop_token instead of std::atomic_bool allows the usage of other utilities like std::stop_callback.
2021-06-21vk_master_semaphore: Use jthread for debug threadReinUsesLisp
2021-06-20Reaper: Guarantee correct deletion.Fernando Sahmkow
2021-06-19util_shaders: Specify ASTC decoder memory barrier bitsameerj
2021-06-19astc_decoder.comp: Remove unnecessary LUT SSBOsameerj
We can move them to instead be compile time constants within the shader.
2021-06-19astc: Various robustness enhancements for the gpu decoderameerj
These changes should help in reducing crashes/drivers panics that may occur due to synchronization issues between the shader completion and later access of the decoded texture.
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-16Merge pull request #6469 from ReinUsesLisp/blit-view-compatAmeer J
texture_cache/util: Avoid relaxed image views on different bytes per block
2021-06-17Reaper: Change memory restrictions on TC depending on host memory on VK.Fernando Sahmkow
2021-06-16Reaper: Address Feedback.Fernando Sahmkow
2021-06-16Reaper: Setup settings and final tuning.Fernando Sahmkow
2021-06-16Reaper: Tune it up to be an smart GC.Fernando Sahmkow
2021-06-16Initial Reaper SetupReinUsesLisp
WIP
2021-06-16vulkan_memory_allocator: Release allocations with no commitsReinUsesLisp
2021-06-15astc_decoder: Fix LDR CEM1 endpoint calculationameerj
Per the spec, L1 is clamped to the value 0xff if it is greater than 0xff. An oversight caused us to take the maximum of L1 and 0xff, rather than the minimum. Huge thanks to wwylele for finding this. Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
2021-06-15configure_graphics: Add Accelerate ASTC decoding settingameerj
2021-06-15textures: Reintroduce CPU ASTC decoderameerj
Users may want to fall back to the CPU ASTC texture decoder due to hangs and crashes that may be caused by keeping the GPU under compute heavy loads for extended periods of time. This is especially the case in games such as Astral Chain which make extensive use of ASTC textures.
2021-06-14texture_cache/util: Avoid relaxed image views on different bytes per pixelReinUsesLisp
Avoids API usage errors on UE4 titles leading to crashes.
2021-06-11GPUTHread: Remove async reads from Normal Accuracy.Fernando Sahmkow
2021-06-11rasterizer: Update pages in batchesReinUsesLisp
2021-06-10Fix GCC undefined behavior sanitizer.Markus Wick
* Wrong alignment in u64 LOG_DEBUG -> memcpy. * Huge shift exponent in stride calculation for linear buffer, unused result -> skipped. * Large shift in buffer cache if word = 0, skip checking for set bits. Non of those were critical, so this should not change any behavior. At least with the assumption, that the last one used masking behavior, which always yield continuous_bits = 0.
2021-06-07Merge pull request #6410 from lat9nq/avoid-oobbunnei
decoders: Avoid out-of-bounds access
2021-06-04decoders: Break instead of continuelat9nq
continue causes a memory leak in A Hat in Time.
2021-06-04decoders: Avoid out-of-bounds accesslat9nq
This is not a real fix, so assert here and continue before crashing.
2021-06-01buffer_cache: Simplify uniform disabling logicameerj
2021-05-31Merge pull request #6367 from ReinUsesLisp/vma-hostbunnei
vulkan_memory_allocator: Allow textures to be allocated in host memory
2021-05-29video_core: gpu: WaitFence: Do not block threads during shutdown.bunnei
- Fixes a hang on shutdown when NVFlinger thread is waiting on a syncpoint that will never occur. - Commonly observed when stopping emulation in Super Mario Odyssey.
2021-05-29Fix two GCC 11 warnings: Unneeded copies.Markus Wick
std::move created an unneeded copy. iterating without reference also created copies.
2021-05-27video_core: rasterizer_cache: Use u16 for cached page count.bunnei
- Greatly reduces the risk of overflow, at the cost of doubling the size of this array.
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-05-20Merge pull request #6248 from A-w-x/intelmesabunnei
gl_device: Intel: Disable texture view formats workaround on mesa
2021-05-18Merge pull request #6317 from ameerj/fps-fixbunnei
perf_stats: Rework FPS counter to be more accurate
2021-05-17Merge pull request #6322 from ameerj/fast-null-bufferbunnei
buffer_cache: Ensure null buffers cannot take the fast uniform bind path
2021-05-16buffer_cache: Ensure null buffers cannot take the fast uniform bind pathameerj
Fixes a crash in New Pokemon Snap
2021-05-15Merge pull request #6289 from ameerj/oob-blitbunnei
texture_cache: Handle out of bound texture blits
2021-05-15perf_stats: Rework FPS counter to be more accurateameerj
The FPS counter was based on metrics in the nvdisp swapbuffers call. This metric would be accurate if the gpu thread/renderer were synchronous with the nvdisp service, but that's no longer the case. This commit moves the frame counting responsibility onto the concrete renderers after their frame draw calls. Resulting in more meaningful metrics. The displayed FPS is now made up of the average framerate between the previous and most recent update, in order to avoid distracting FPS counter updates when framerate is oscillating between close values. The status bar update frequency was also changed from 2 seconds to 500ms.