summaryrefslogtreecommitdiffstats
path: root/src/video_core/textures/decoders.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-02-14remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistencyarades791-1/+1
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14add static lifetime to constexpr values to force compile time evaluation where possiblearades791-1/+1
Signed-off-by: arades79 <scravers@protonmail.com>
2022-11-14Add break for default casesKyle Kienapfel1-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
2022-10-22decoders: Use 2's complement instead of unary -Morph1-1/+1
Resolves C4146 on MSVC
2022-10-06Decoders: Improve overall speed.Fernando Sahmkow1-4/+11
2022-10-06DMA & InlineToMemory Engines Rework.bunnei1-150/+75
2022-08-09video_core/textures/decoders: Avoid SWIZZLE_TABLEMerry1-15/+45
2022-06-14common: Change semantics of UNREACHABLE to unconditionally crashLiam1-4/+4
2022-04-23general: Convert source file copyright comments over to SPDXMorph1-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.
2022-03-19video_core: Reduce unused includesameerj1-2/+0
2021-08-16vk_blit_screen: Fix non-accelerated texture size calculationameerj1-8/+0
Addresses the potential OOB access in UnswizzleTexture.
2021-08-12decoders: Templates allow memcpy optimizationsyzct123451-57/+116
2021-08-02decoders: Optimize swizzle copy performance (#6790)yzct123451-9/+43
This makes UnswizzleTexture up to two times faster. It is the main bottleneck in NVDEC video decoding.
2021-06-04decoders: Break instead of continuelat9nq1-2/+2
continue causes a memory leak in A Hat in Time.
2021-06-04decoders: Avoid out-of-bounds accesslat9nq1-0/+8
This is not a real fix, so assert here and continue before crashing.
2021-03-13renderer_vulkan: Accelerate ASTC decodingameerj1-23/+0
Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2021-01-15common/alignment: Rename AlignBits to AlignUpLog2ReinUsesLisp1-4/+4
AlignUpLog2 describes what the function does better than AlignBits.
2020-12-30video_core: Rewrite the texture cacheReinUsesLisp1-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.
2020-08-11textures/decoders: Fix block linear to pitch copiesReinUsesLisp1-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.
2020-07-13video_core: Rearrange pixel format namesReinUsesLisp1-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.
2020-07-10video_core/textures: Add and use SwizzleSliceToVoxel, and minor style changesReinUsesLisp1-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.
2020-04-28MaxwellDMA: Optimize micro copies.Fernando Sahmkow1-0/+14
2020-04-17General: Resolve warnings related to missing declarationsLioncash1-0/+3
2019-07-26MaxwellDMA: Fixes, corrections and relaxations.Fernando Sahmkow1-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.
2019-06-21texture_cache: Style and CorrectionsFernando Sahmkow1-3/+4
2019-06-21decoders: correct block calculationFernando Sahmkow1-19/+15
2019-06-21video_core: Use un-shifted block sizes to avoid integer divisionsReinUsesLisp1-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).
2019-06-21gl_texture_cache: Add fast copy pathReinUsesLisp1-2/+1
2019-06-21gl_texture_cache: Initial implementationReinUsesLisp1-1/+2
2019-04-16Apply Const correctness to SwizzleKepler and replace u32 for size_t on iterators.Fernando Sahmkow1-7/+9
2019-04-16Implement Block Linear copies in Kepler Memory.Fernando Sahmkow1-0/+21
2019-03-16video_core: Refactor to use MemoryManager interface for all memory access.bunnei1-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
2019-02-27gl_rasterizer_cache: Move format conversion to its own fileReinUsesLisp1-1/+1
2019-02-27decoders: Minor style changesReinUsesLisp1-2/+2
2018-12-19Fixed uninitialized memory due to missing returns in canaryDavid Marcec1-1/+1
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 SpacingFernandoS271-9/+13
2018-11-19Eliminated unnessessary memory allocation and copy (#1702)Frederic L1-4/+11
2018-11-17textures/decoders: Replace magic numbersFrederic Laing1-37/+33
2018-11-15textures/decoders: Minor cleanupFrederic Laing1-16/+16
2018-11-13Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB (#1666)greggameplayer1-0/+4
* Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB ( needed by Mario+Rabbids Kingdom Battle ) * Small placement correction
2018-11-01Fix ASTC formatsFernandoS271-5/+7
2018-10-24decoders: Remove unused variable within SwizzledData()Lioncash1-1/+0
2018-10-23Fixed Layered Textures Loading and CubemapsFernandoS271-3/+3
2018-10-19decoders: Introduce functions for un/swizzling subrects.bunnei1-0/+40
2018-10-14Shorten the implementation of 3D swizzle to only 3 functionsFernandoS271-70/+27
2018-10-13Fix a Crash on Zelda BotW and Splatoon 2, and simplified LoadGLBufferFernandoS271-1/+1
2018-10-13Propagate depth and depth_block on modules using decodersFernandoS271-19/+21
2018-10-13Remove old Swizzle algorithms and use 3d SwizzleFernandoS271-93/+69
2018-10-13Implement Precise 3D SwizzleFernandoS271-3/+71
2018-10-13Implement Fast 3D SwizzleFernandoS271-2/+74
2018-10-13Added ASTC 5x4; 8x5Hexagon121-0/+2
2018-10-12Implemented helper function to correctly calculate a texture's sizeFernandoS271-0/+16
2018-09-21Reverse stride align restriction on FastSwizzle due to lost performanceFernandoS271-3/+2
2018-09-21Join both Swizzle methods within one interface functionFernandoS271-11/+19
2018-09-21Standarized Legacy Swizzle to look alike FastSwizzle and use a Swizzling Table insteadFernandoS271-42/+38
2018-09-21Remove same output bpp restriction on FastSwizzleFernandoS271-4/+5
2018-09-21Improved Legacy Swizzler to be better documented and work betterFernandoS271-15/+21
2018-09-21Improved fast swizzle and removed restrictions to itFernandoS271-7/+12
2018-09-16Implement ASTC_2D_8X8 (Bayonetta 2)raven021-0/+2
2018-09-14Optimized Texture SwizzlingFernandoS271-2/+49
2018-08-31Implement BC6H_UF16 & BC6H_SF16 (#1092)greggameplayer1-0/+4
* Implement BC6H_UF16 & BC6H_SF16 Require by ARMS * correct coding style * correct coding style part 2
2018-08-10textures: Refactor out for Texture/Depth FormatFromPixelFormat.bunnei1-81/+4
2018-08-09Implement BC5/DXN2 (#996)Khangaroo1-0/+3
- Used by Kirby Star Allies.
2018-08-02Implement RGB32F PixelFormat (#886) (used by Go Vacation)greggameplayer1-0/+4
2018-07-26Implement R16_G16Unknown1-0/+3
correct trailing white spaces Delete tabs correct placement Add RG16F & RG16UI & RG16I & RG16S PixelFormats Return correct data according to changes done previously correct PixelFormat declaration correct coding style error correct coding style error part 2 correct RG16S Declaration error correct alignment
2018-07-25GPU: Implemented the Z32_S8_X24 depth buffer format.Subv1-0/+3
2018-07-24GPU: Implemented the R16 and R16F texture formats.Subv1-0/+3
2018-07-24GPU: Implement texture format R32F.Subv1-0/+3
2018-07-24gl_rasterizer_cache: Implement RenderTargetFormat RG32_FLOAT.bunnei1-0/+4
2018-07-21video_core: Use nested namespaces where applicableLioncash1-4/+2
Compresses a few namespace specifiers to be more compact.
2018-07-19decoders: Fix calc of swizzle image_width_in_gobs.bunnei1-1/+4
2018-07-15gl_rasterizer_cache: Implement texture format G8R8.bunnei1-0/+3
2018-07-15gl_rasterizer_cache: Implement depth format Z16_UNORM.bunnei1-0/+3
2018-07-07GPU: Implemented the BC7U texture format.Subv1-0/+3
Note: Our version of glad exports GL_COMPRESSED_RGBA_BPTC_UNORM as GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, maybe it's time we update it.
2018-07-04GPU: Implemented the 32 bit float depth buffer format.Subv1-0/+2
2018-07-03gl_rasterizer_cache: Implement PixelFormat S8Z24.bunnei1-0/+2
2018-07-02GPU: Implemented the Z24S8 depth format and load the depth framebuffer.Subv1-0/+31
2018-06-30GPU: Implemented the RGBA32_UINT rendertarget format.Subv1-0/+4
2018-06-18gl_rasterizer: Implement texture format ASTC_2D_4X4.bunnei1-0/+3
2018-06-06GPU: Implemented the R11FG11FB10F texture and rendertarget formats.Subv1-0/+3
2018-06-02GPU: Implemented the DXN1 (BC4) texture format.Subv1-1/+5
2018-05-31gl_rasterizer_cache: Implement PixelFormat RGBA16F.bunnei1-0/+3
2018-05-30GPU: Implemented the R8 texture format (0x1D)Subv1-0/+4
2018-05-27GPU: Implemented the A1B5G5R5 texture format (0x14)Subv1-0/+3
2018-04-25GPU: Make the Textures::CopySwizzledData function accessible from the outside of the file.Subv1-3/+2
2018-04-25gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses.bunnei1-0/+1
2018-04-22GPU: Implement the A2BGR10 texture format.Subv1-0/+3
2018-04-19GPU: Add support for the DXT23 and DXT45 compressed texture formats.Subv1-1/+9
2018-04-19GPU: Implemented the B5G6R5 format.Subv1-0/+4
2018-04-18GPU: Allow using a configurable block height when unswizzling textures.Subv1-5/+4
2018-03-24Frontend: Updated the surface view debug widget to work with Maxwell surfaces.Subv1-0/+11
2018-03-24GPU: Added a method to unswizzle a texture without decoding it.Subv1-2/+82
Allow unswizzling of DXT1 textures.
2018-03-24GPU: Preliminary work for texture decoding.Subv1-0/+14