aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/textures/decoders.cpp
AgeCommit message (Collapse)Author
2023-02-14remove static from pointer sized or smaller types for aesthetics, change ↵arades79
constexpr static to static constexpr for consistency Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14add static lifetime to constexpr values to force compile time evaluation ↵arades79
where possible Signed-off-by: arades79 <scravers@protonmail.com>
2022-11-13Add break for default casesKyle Kienapfel
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
2022-10-22decoders: Use 2's complement instead of unary -Morph
Resolves C4146 on MSVC
2022-10-06Decoders: Improve overall speed.Fernando Sahmkow
2022-10-06DMA & InlineToMemory Engines Rework.bunnei
2022-08-09video_core/textures/decoders: Avoid SWIZZLE_TABLEMerry
2022-06-13common: Change semantics of UNREACHABLE to unconditionally crashLiam
2022-04-23general: Convert source file copyright comments over to SPDXMorph
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.
2022-03-19video_core: Reduce unused includesameerj
2021-08-30Merge pull request #6879 from ameerj/decoder-assertbunnei
vk_blit_screen: Fix non-accelerated texture size calculation
2021-08-16vk_blit_screen: Fix non-accelerated texture size calculationameerj
Addresses the potential OOB access in UnswizzleTexture.
2021-08-12decoders: Templates allow memcpy optimizationsyzct12345
2021-08-02decoders: Optimize swizzle copy performance (#6790)yzct12345
This makes UnswizzleTexture up to two times faster. It is the main bottleneck in NVDEC video decoding.
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-03-13renderer_vulkan: Accelerate ASTC decodingameerj
Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2021-01-15common/alignment: Rename AlignBits to AlignUpLog2ReinUsesLisp
AlignUpLog2 describes what the function does better than AlignBits.
2020-12-30video_core: Rewrite the texture cacheReinUsesLisp
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.
2020-08-10textures/decoders: Fix block linear to pitch copiesReinUsesLisp
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.
2020-07-21Merge pull request #4324 from ReinUsesLisp/formatsbunnei
video_core: Fix, add and rename pixel formats
2020-07-13video_core: Rearrange pixel format namesReinUsesLisp
Normalizes pixel format names to match Vulkan names. Previous to this commit pixel formats had no convention, leading to confusion and potential bugs.
2020-07-10video_core/textures: Add and use SwizzleSliceToVoxel, and minor style changesReinUsesLisp
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.
2020-04-28MaxwellDMA: Optimize micro copies.Fernando Sahmkow
2020-04-16General: Resolve warnings related to missing declarationsLioncash
2019-07-25MaxwellDMA: Fixes, corrections and relaxations.Fernando Sahmkow
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.
2019-06-20texture_cache: Style and CorrectionsFernando Sahmkow
2019-06-20decoders: correct block calculationFernando Sahmkow
2019-06-20video_core: Use un-shifted block sizes to avoid integer divisionsReinUsesLisp
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).
2019-06-20gl_texture_cache: Add fast copy pathReinUsesLisp
2019-06-20gl_texture_cache: Initial implementationReinUsesLisp
2019-04-16Apply Const correctness to SwizzleKepler and replace u32 for size_t on ↵Fernando Sahmkow
iterators.
2019-04-15Implement Block Linear copies in Kepler Memory.Fernando Sahmkow
2019-03-16video_core: Refactor to use MemoryManager interface for all memory access.bunnei
# 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
2019-02-26gl_rasterizer_cache: Move format conversion to its own fileReinUsesLisp
2019-02-26decoders: Minor style changesReinUsesLisp
2018-12-19Fixed uninitialized memory due to missing returns in canaryDavid Marcec
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
2018-11-26Implemented Tile Width SpacingFernandoS27
2018-11-18Merge pull request #1717 from FreddyFunk/swizzle-gobbunnei
textures/decoders: Replace magic numbers
2018-11-18Eliminated unnessessary memory allocation and copy (#1702)Frederic L
2018-11-17textures/decoders: Replace magic numbersFrederic Laing
2018-11-15textures/decoders: Minor cleanupFrederic Laing
2018-11-12Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB (#1666)greggameplayer
* Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB ( needed by Mario+Rabbids Kingdom Battle ) * Small placement correction
2018-11-01Fix ASTC formatsFernandoS27
2018-10-25Merge pull request #1524 from FernandoS27/layers-fixbunnei
rasterizer: Fix Layered Textures Loading and Cubemaps
2018-10-23decoders: Remove unused variable within SwizzledData()Lioncash
2018-10-23Fixed Layered Textures Loading and CubemapsFernandoS27
2018-10-18decoders: Introduce functions for un/swizzling subrects.bunnei
2018-10-14Merge pull request #1488 from Hexagon12/astc-typesbunnei
video_core: Added ASTC 5x4; 8x5 types
2018-10-13Shorten the implementation of 3D swizzle to only 3 functionsFernandoS27