aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
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-13cmake: Fix find_program usage for 3.15lat9nq
yuzu requires CMake 3.15 yet find_program was using REQUIRED, which is only available on 3.18 and later. Instead, we check for "<VAR>-NOTFOUND". In addition, check for additional requirements before building libusb or FFmpeg with autotools. Otherwise, CMake configuration will pass yet compilation will fail.
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.
2021-05-07texture_cache: Handle out of bound texture blitsameerj
Some games interleave a texture blit using regions which are out-of-bounds. This addresses the interleaving to avoid oob reads from the src texture.
2021-05-05hle: kernel: Rename Process to KProcess.bunnei
2021-04-26gl_device: Intel: Disable texture view formats workaround on mesaA-w-x
2021-04-25Merge pull request #6237 from ameerj/nvdec-end-fixbunnei
nvhost_vic: Fix device closure
2021-04-24vk_texture_cache: Swap R and B channels of color flipped formatameerj
Swaps the Red and Blue channels of the A1B5G5R5_UNORM texture format, which was being incorrectly rendered.
2021-04-24nvhost_vic: Fix device closureameerj
Implements the OnClose method of the nvhost_vic device, and removes the remnants of an older implementation. Also cleans up some of the surrounding code.
2021-04-19texture_cache/util: Fix src being used instead of dst within DeduceBlitImagesLioncash
This line can only ever be reached if src is null, so dereferencing it here is a logic bug that slipped through. Instead, we dereference dst instead which is guaranteed to be valid.
2021-04-16Merge pull request #6125 from ogniK5377/nvdec-close-devbunnei
nvdrv: Cleanup CDMA Processor on device closure
2021-04-16Address issuesChloe Marcec
2021-04-14Merge pull request #6196 from bunnei/asserts-settingbunnei
core: settings: Add setting for debug assertions and disable by default.
2021-04-14common: Move settings to common from core.bunnei
- Removes a dependency on core and input_common from common.
2021-04-13Merge pull request #6191 from lioncash/vdtorbunnei
engine_interface: Add missing virtual destructor
2021-04-13Merge pull request #6190 from lioncash/constfn2bunnei
vk_master_semaphore: Add missing const qualifier for IsFree()
2021-04-13Merge pull request #6188 from lioncash/bitsbunnei
vk_texture_cache: Make use of bit_cast where applicable
2021-04-13Merge pull request #6187 from lioncash/sign-convbunnei
texure_cache/util: Resolve implicit sign conversions with std::reduce
2021-04-12engine_interface: Add missing virtual destructorLioncash
Eliminates a potential bug vector related to inheritance. Plus, we should generally be specifying the destructor as virtual within purely virtual interfaces to begin with.
2021-04-12vk_master_semaphore: Deduplicate atomic access within IsFree()Lioncash
We can just reuse the already existing KnownGpuTick() to deduplicate the access.
2021-04-12vk_master_semaphore: Add missing const qualifier for IsFree()Lioncash
This member function doesn't modify class state.
2021-04-12vk_texture_cache: Make use of Common::BitCast where applicableLioncash
Also clarify the TODO comment a little more on the lacking implementations for std::bit_cast.
2021-04-12texure_cache/util: Resolve implicit sign conversions with std::reduceLioncash
Amends implicit sign conversions occurring with usages of std::reduce and also relocates it to its own utility function to reduce verbosity a little bit.
2021-04-12query_cache: Make use of std::erase_ifLioncash
Same behavior, but much more straightforward to read.
2021-04-11Merge pull request #6181 from Joshua-Ashton/robustness_featuresRodrigo Locatti
vulkan_device: Enable EXT_robustness2 features
2021-04-11vk_buffer_cache: Fix offset for NULL vertex buffersJoshua Ashton
The Vulkan spec states: If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero. https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBindVertexBuffers2EXT.html#VUID-vkCmdBindVertexBuffers2EXT-pBuffers-04112
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")