aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/textures/decoders.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Switch 2: present vi2 native images and capture framesTakoroka7 days1-14/+19
| | | | | | | | vi2 229 composites the presented native image (block-linear RGBA8 in the console's GOB layout, from changes.patch) at its SMMU address, which the GPU memory registry now records per mapped range. EDEN_NX2_FRAME_CAPTURE=<dir> saves every 120th presented frame as a TGA for hidden test runs. Also mirrors releases for every two-page gsv semaphore region and logs gsv sub 101 ranges.
* [fixup] Revert "[video_core] remove decoders.cpp template<A,B> spam (16 ↵Caio Oliveira2026-01-181-67/+111
| | | | | | | | | | | | | | | | | | | | copies of the same function) (#3263)" (#3333) This make slowdown on: - Mario 3D World (path from World 6 to World 7) - Okami HD (On Docked) Should check the cause for such regression (Maran's Note: looks like VRAM allocation is not being freed?) This reverts commit ea29f169e6c201e2028e08366d989b36b54dedba. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3333 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Co-committed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
* [video_core] remove decoders.cpp template<A,B> spam (16 copies of the same ↵lizzie2026-01-101-111/+67
| | | | | | | | | | | | | | | | | | function) (#3263) 16 for SwizzleImpl another 16 for SwizzleSubrectImpl another 2 for Swizzle while yes, inlining can be good, I think this kind of templatery fuckery is a bit excessive Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3263 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [meta] fix license headers (#2547)lizzie2025-09-211-0/+3
| | | | | | | Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2547 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [cmake] enable clang-cl and WoA builds (#348)lizzie2025-09-091-4/+4
| | | | | | | | | | | | | | Compilation and CMake fixes for both Windows on ARM and clang-cl, meaning Windows can now be built on both MSVC and clang on both amd64 and aarch64. Compiling on clang is *dramatically* faster so this should be useful for CI. Co-authored-by: crueter <crueter@eden-emu.dev> Co-authored-by: crueter <crueter@crueter.xyz> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/348 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* remove static from pointer sized or smaller types for aesthetics, change ↵arades792023-02-141-1/+1
| | | | | | constexpr static to static constexpr for consistency Signed-off-by: arades79 <scravers@protonmail.com>
* add static lifetime to constexpr values to force compile time evaluation ↵arades792023-02-141-1/+1
| | | | | | where possible Signed-off-by: arades79 <scravers@protonmail.com>
* Add break for default casesKyle Kienapfel2022-11-131-0/+3
| | | | | | | | | | | Visual Studio has an option to search all files in a solution, so I did a search in there for "default:" looking for any missing break statements. I've left out default statements that return something, and that throw something, even if via ThrowInvalidType. UNREACHABLE leads towards throw R_THROW macro leads towards a return
* decoders: Use 2's complement instead of unary -Morph2022-10-221-1/+1
| | | | Resolves C4146 on MSVC
* Decoders: Improve overall speed.Fernando Sahmkow2022-10-061-4/+11
|
* DMA & InlineToMemory Engines Rework.bunnei2022-10-061-150/+75
|
* video_core/textures/decoders: Avoid SWIZZLE_TABLEMerry2022-08-091-15/+45
|
* common: Change semantics of UNREACHABLE to unconditionally crashLiam2022-06-131-4/+4
|
* 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.
* video_core: Reduce unused includesameerj2022-03-191-2/+0
|
* Merge pull request #6879 from ameerj/decoder-assertbunnei2021-08-301-8/+0
|\ | | | | vk_blit_screen: Fix non-accelerated texture size calculation
| * vk_blit_screen: Fix non-accelerated texture size calculationameerj2021-08-161-8/+0
| | | | | | | | Addresses the potential OOB access in UnswizzleTexture.
* | decoders: Templates allow memcpy optimizationsyzct123452021-08-121-57/+116
|/
* decoders: Optimize swizzle copy performance (#6790)yzct123452021-08-021-9/+43
| | | This makes UnswizzleTexture up to two times faster. It is the main bottleneck in NVDEC video decoding.
* decoders: Break instead of continuelat9nq2021-06-041-2/+2
| | | | continue causes a memory leak in A Hat in Time.
* decoders: Avoid out-of-bounds accesslat9nq2021-06-041-0/+8
| | | | This is not a real fix, so assert here and continue before crashing.
* renderer_vulkan: Accelerate ASTC decodingameerj2021-03-131-23/+0
| | | | Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
* common/alignment: Rename AlignBits to AlignUpLog2ReinUsesLisp2021-01-151-4/+4
| | | | AlignUpLog2 describes what the function does better than AlignBits.
* video_core: Rewrite the texture cacheReinUsesLisp2020-12-301-171/+78
| | | | | | | | | | | | | | 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.
* textures/decoders: Fix block linear to pitch copiesReinUsesLisp2020-08-101-18/+24
| | | | | | | | | | | | There were two issues with block linear copies. First the swizzling was wrong and this commit reimplements them. The other issue was that these copies are generally used to download render targets from the GPU and yuzu was not downloading them from host GPU memory unless the extreme GPU accuracy setting was selected. This commit enables cached memory reads for all accuracy levels. - Fixes level thumbnails in Super Mario Maker 2.
* Merge pull request #4324 from ReinUsesLisp/formatsbunnei2020-07-211-89/+0
|\ | | | | video_core: Fix, add and rename pixel formats
| * video_core: Rearrange pixel format namesReinUsesLisp2020-07-131-89/+0
| | | | | | | | | | | | Normalizes pixel format names to match Vulkan names. Previous to this commit pixel formats had no convention, leading to confusion and potential bugs.
* | video_core/textures: Add and use SwizzleSliceToVoxel, and minor style changesReinUsesLisp2020-07-101-57/+77
|/ | | | | | | Change GOB sizes from free-functions to constexpr constants. Add SwizzleSliceToVoxel, a function that swizzles a 2D array of pixels into a 3D texture and use it for 3D copies.
* MaxwellDMA: Optimize micro copies.Fernando Sahmkow2020-04-281-0/+14
|
* General: Resolve warnings related to missing declarationsLioncash2020-04-161-0/+3
|
* MaxwellDMA: Fixes, corrections and relaxations.Fernando Sahmkow2019-07-251-6/+8
| | | | | | | This commit fixes offsets on Linear -> Tiled copies, corrects z pos fortiled->linear copies, corrects bytes_per_pixel calculation in tiled -> linear copies and relaxes some limitations set by latest dma fixes refactors.
* texture_cache: Style and CorrectionsFernando Sahmkow2019-06-201-3/+4
|
* decoders: correct block calculationFernando Sahmkow2019-06-201-19/+15
|
* video_core: Use un-shifted block sizes to avoid integer divisionsReinUsesLisp2019-06-201-20/+35
| | | | | | | | | | | | Instead of storing all block width, height and depths in their shifted form: block_width = 1U << block_shift; Store them like they are provided by the emulated hardware (their block_shift form). This way we can avoid doing the costly Common::AlignUp operation to align texture sizes and drop CPU integer divisions with bitwise logic (defined in Common::AlignBits).
* gl_texture_cache: Add fast copy pathReinUsesLisp2019-06-201-2/+1
|
* gl_texture_cache: Initial implementationReinUsesLisp2019-06-201-1/+2
|
* Apply Const correctness to SwizzleKepler and replace u32 for size_t on ↵Fernando Sahmkow2019-04-161-7/+9
| | | | iterators.
* Implement Block Linear copies in Kepler Memory.Fernando Sahmkow2019-04-151-0/+21
|
* video_core: Refactor to use MemoryManager interface for all memory access.bunnei2019-03-161-17/+15
| | | | | | | | | | | # Conflicts: # src/video_core/engines/kepler_memory.cpp # src/video_core/engines/maxwell_3d.cpp # src/video_core/morton.cpp # src/video_core/morton.h # src/video_core/renderer_opengl/gl_global_cache.cpp # src/video_core/renderer_opengl/gl_global_cache.h # src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
* gl_rasterizer_cache: Move format conversion to its own fileReinUsesLisp2019-02-261-1/+1
|
* decoders: Minor style changesReinUsesLisp2019-02-261-2/+2
|
* Fixed uninitialized memory due to missing returns in canaryDavid Marcec2018-12-191-1/+1
| | | | Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
* Implemented Tile Width SpacingFernandoS272018-11-261-9/+13
|
* Merge pull request #1717 from FreddyFunk/swizzle-gobbunnei2018-11-181-37/+33
|\ | | | | textures/decoders: Replace magic numbers
| * textures/decoders: Replace magic numbersFrederic Laing2018-11-171-37/+33
| |
* | Eliminated unnessessary memory allocation and copy (#1702)Frederic L2018-11-181-4/+11
|/
* textures/decoders: Minor cleanupFrederic Laing2018-11-151-16/+16
|
* Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB (#1666)greggameplayer2018-11-121-0/+4
| | | | | | | * Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB ( needed by Mario+Rabbids Kingdom Battle ) * Small placement correction
* Fix ASTC formatsFernandoS272018-11-011-5/+7
|
* Merge pull request #1524 from FernandoS27/layers-fixbunnei2018-10-251-3/+3
|\ | | | | rasterizer: Fix Layered Textures Loading and Cubemaps