summaryrefslogtreecommitdiffstats
path: root/src/video_core/texture_cache/util.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #11788 from Squall-Leonhart/IFREMOVEDFernando S2023-10-171-2/+9
|\ | | | | [crash fix]brings back the removed if statement in util.cpp and adds the num_level test to it like previous discontinued PR
| * brings back the removed If statement and adds the num_level testSquall Leonhart2023-10-141-2/+9
| | | | | | | | | | | | | | | | | | | | This resolves the out of bounds read/writes in the linear swizzler, it brings back the scaled TOTK Recall bug however, pending further work in the block size calculation. Recall is not glitched in the Dynamic FPS resolution mod to the degree that it is in the native yuzu scaler, this can be a workaround for the time being. The recall effect is constructed from multiple 320x180 texture slices, it breaking may have a similar origin to https://github.com/Ryujinx/Ryujinx/pull/5640 but it may also be connected to the other deficiencies identified in the Yuzu size calculations, such as no apparent implementation of slice testing for end of slce depth as opposed to full aligned size as implemented in https://github.com/Ryujinx/Ryujinx/pull/5220
* | Merge pull request #11743 from Squall-Leonhart/IFREMOVEDFernando S2023-10-111-2/+2
|\| | | | | Fix mistaken usage of info.block instead of level_info.block
| * Fix mistaken usage of info.block instead of level_info.blockSquall-Leonhart2023-10-111-2/+2
| | | | | | | | | | | | Fixed an error on my part, in the last change I had mistakenly passed unadjusted block info into FullUploadSwizzles and UnswizzleImage Revert (my mistaken changing of) the construction of SwizzleParameters in UnswizzleImage and FullUploadSwizzles to use level_info.block instead of info.block. This ensures that the block information used in the swizzling process is correctly adjusted for each mip level.
* | Merge pull request #11534 from Squall-Leonhart/IFREMOVEDliamwhite2023-10-101-21/+20
|\| | | | | Partial revert of #10433 (Texture Cache Util: Fix block depth adjustment on slices)
| * Reuse part of my previous idea to to use num_levels to check within AdjustMipBlockSizeSquall-Leonhart2023-09-191-14/+20
| | | | | | | | The partial revert was not enough for Tsukihime, this might do the trick
| * Partial revert of #10433Squall Leonhart2023-09-181-9/+2
| | | | | | | | | | The If block in this change was causing some 2D textures to be treated as if their mip 0 was a 3D Slice, this could be ascertained as the same texture viewed from different distances would render fine, but then close up would look like a decoding failure. It also resulted in some 3D ASTC textures not being scaled appropriate leading to broken graphical effects such as the jagged TOTK recall animation being a circle, as the If block was only accepting the image based on its original info without any adjustments applied.
* | ci: fix new codespell errorsLiam2023-10-031-1/+1
|/
* Use spans over guest memory where possible instead of copying data.Kelebek12023-07-031-18/+8
|
* renderer_vulkan: Add support for VK_KHR_image_format_listGPUCode2023-07-011-7/+2
|
* video_core: Add BCn decoding supportGPUCode2023-06-281-9/+15
|
* Remove memory allocations in some hot pathsKelebek12023-06-221-21/+27
|
* Texture Cache Util: Fix block depth adjustment on slices.Fernando Sahmkow2023-05-241-2/+13
|
* textures: add BC1 and BC3 compressors and recompression settingLiam2023-05-231-11/+66
|
* Texture Cache: Fix ASTC texturesFernando Sahmkow2023-05-091-5/+5
|
* Engines: Implement Accelerate DMA Texture.Fernando Sahmkow2023-03-051-10/+88
|
* texture_cache: OpenGL: Implement MSAA uploads and copiesameerj2023-02-111-5/+0
|
* texture_cache: Use Common::ScratchBuffer for swizzle buffersameerj2022-12-251-3/+3
|
* texture_cache: Use pre-allocated buffer for texture downloadsameerj2022-12-251-5/+6
|
* texture_cache: Use pre-allocated buffer for texture uploadsameerj2022-12-251-6/+3
|
* video_core: Fix SNORM texture buffer emulating error (#9001)Feng Chen2022-11-041-1/+0
|
* DMA & InlineToMemory Engines Rework.bunnei2022-10-061-1/+0
|
* VideoCore: Extra Fixes.Fernando Sahmkow2022-10-061-1/+1
|
* chore: add missing SPDX tagsAndrea Pappacoda2022-04-281-21/+2
| | | | Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-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.
* Revert "texture_cache/util: Remove unneeded ReadBlockUnsafe"bunnei2022-04-051-0/+1
|
* texture_cache/util: Remove unneeded ReadBlockUnsafeameerj2022-04-041-1/+0
| | | | This call was reading GPU memory into the dst buffer, which is then overwritten by the SwizzleTexture call.
* texture_cache/util: Fix s32 overflow when resolving overlapsameerj2022-01-011-5/+5
|
* Texture Cache: Redesigning the blitting system (again).Fernando Sahmkow2021-11-271-13/+19
|
* Texture Cache: Fix issue with blitting 3D textures.Fernando Sahmkow2021-11-221-2/+4
|
* TextureCache: Eliminate format deduction as full depth conversion has been supported.Fernando Sahmkow2021-11-211-25/+3
|
* TextureCache: Further fixes on resolve algorithm.Fernando Sahmkow2021-11-191-12/+13
|
* TextureCache: Fix regression caused by ART and improve blit detection algorithm to be smarter.Fernando Sahmkow2021-11-191-4/+24
|
* Texture Cache: Fix blitting.Fernando Sahmkow2021-11-161-2/+2
|
* TextureCache: fix rescaling in aliases and overlap joins.FernandoS272021-11-161-2/+6
|
* texture_cache/util: Fix size calculations of multisampled imagesReinUsesLisp2021-07-181-53/+33
| | | | | | | | | | | | | | | | On the texture cache we handle multisampled images by keeping their real size in samples (e.g. 1920x1080 with 4 samples is 3840x2160). This works nicely with size matches and other comparisons, but the calculation for guest sizes was not having this in mind, and the size was being multiplied (again) by the number of samples per dimension. For example a 3840x2160 texture cache image had its width and height multiplied by 2, resulting in a much larger texture. Fix this issue. - Fixes performance regression on cooking related titles when an unrelated bug was fixed.
* Merge pull request #6497 from FernandoS27/scotty-doesnt-knowbunnei2021-07-071-4/+20
|\ | | | | GPU Memory Manager - Correct handling of non continuous backing memory.
| * Texture Cache: Improve accuracy of sparse texture detection.Fernando Sahmkow2021-07-041-24/+7
| |
| * Texture Cache: Initial Implementation of Sparse Textures.Fernando Sahmkow2021-07-041-4/+37
| |
* | video_core: Silence signed/unsigned mismatch warningsMorph2021-06-281-1/+1
|/
* Merge pull request #6465 from FernandoS27/sex-on-the-beachMai M2021-06-231-0/+2
|\ | | | | GPU: Implement a garbage collector for GPU Caches (project Reaper+)
| * Reaper: Tune it up to be an smart GC.Fernando Sahmkow2021-06-161-0/+2
| |
* | Merge pull request #6469 from ReinUsesLisp/blit-view-compatAmeer J2021-06-171-1/+9
|\ \ | |/ |/| texture_cache/util: Avoid relaxed image views on different bytes per block
| * texture_cache/util: Avoid relaxed image views on different bytes per pixelReinUsesLisp2021-06-151-1/+9
| | | | | | | | Avoids API usage errors on UE4 titles leading to crashes.
* | textures: Reintroduce CPU ASTC decoderameerj2021-06-161-2/+11
|/ | | | | | | 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.
* Fix GCC undefined behavior sanitizer.Markus Wick2021-06-101-0/+3
| | | | | | | | | * 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.
* texture_cache/util: Fix src being used instead of dst within DeduceBlitImagesLioncash2021-04-191-1/+1
| | | | | | | 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.
* texure_cache/util: Resolve implicit sign conversions with std::reduceLioncash2021-04-121-9/+12
| | | | | | 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.
* astc_decoder: Refactor for style and more efficient memory useameerj2021-03-251-12/+2
|
* texture_cache: Blacklist BGRA8 copies and views on OpenGLameerj2021-03-041-6/+7
| | | | | | In order to force the BGRA8 conversion on Nvidia using OpenGL, we need to forbid texture copies and views with other formats. This commit also adds a boolean relating to this, as this needs to be done only for the OpenGL api, Vulkan must remain unchanged.
* texture_cache/util: Remove unused functionsLioncash2021-02-091-34/+0
| | | | Silences a few warnings on clang 12.
* video_core: Silence -Wmissing-field-initializers warningsReinUsesLisp2021-01-241-24/+35
|
* texture_cache/util: Resolve -Wsign-compare warningLioncash2021-01-171-1/+1
| | | | Resolves a -Wsign-compare warning on Clang.
* common/alignment: Rename AlignBits to AlignUpLog2ReinUsesLisp2021-01-151-5/+5
| | | | AlignUpLog2 describes what the function does better than AlignBits.
* gl_texture_cache: Avoid format views on Intel and AMDReinUsesLisp2021-01-041-6/+7
| | | | | | | Intel and AMD proprietary drivers are incapable of rendering to texture views of different formats than the original texture. Avoid creating these at a cache level. This will consume more memory, emulating them with copies.
* video_core: Rewrite the texture cacheReinUsesLisp2020-12-301-0/+1232
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.