summaryrefslogtreecommitdiffstats
path: root/src/video_core/texture_cache/surface_params.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-06-26surface_params: Corrections, asserts and documentation.Fernando Sahmkow1-2/+2
2019-06-21texture_cache: Correct format R16U as siblingFernando Sahmkow1-0/+1
2019-06-21texture_cache: Corrections to buffers and shadow formats use.Fernando Sahmkow1-10/+34
2019-06-21texture_cache: correct texture buffer on surface paramsFernando Sahmkow1-4/+11
2019-06-21texture_cache: move some large methods to cpp filesFernando Sahmkow1-33/+0
2019-06-21texture_cache uncompress-compress is untopological.Fernando Sahmkow1-0/+4
This makes conflicts between non compress and compress textures to be auto recycled. It also limits the amount of mipmaps a texture can have if it goes above it's limit.
2019-06-21texture_cache: General FixesFernando Sahmkow1-22/+30
Fixed ASTC mipmaps loading Fixed alignment on openGL upload/download Fixed Block Height Calculation Removed unalign_height
2019-06-21surface_params: Ensure pitch is always written to avoid surface leaksReinUsesLisp1-0/+2
2019-06-21surface_params: Optimize CreateForTextureReinUsesLisp1-2/+4
Instead of using Common::AlignUp, use Common::AlignBits to align the texture compression factor.
2019-06-21texture_cache: Optimize GetMipBlockHeight and GetMipBlockDepthFernando Sahmkow1-13/+6
2019-06-21video_core: Use un-shifted block sizes to avoid integer divisionsReinUsesLisp1-19/+20
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-21Reduce amount of size calculations.Fernando Sahmkow1-30/+1
2019-06-21Correct Surface Base and Views for new Texture CacheFernando Sahmkow1-135/+75
2019-06-21texture_cache: Split texture cache into different filesReinUsesLisp1-122/+4
2019-06-21texture_cache: Move staging buffer into a generic implementationReinUsesLisp1-1/+109
2019-06-21texture_cache: Flush 3D textures in the order they are drawnReinUsesLisp1-4/+7
2019-06-21gl_texture_cache: Minor changesReinUsesLisp1-29/+43
2019-06-21gl_texture_cache: Add copy from multiple overlaps into a single surfaceReinUsesLisp1-1/+1
2019-06-21gl_texture_cache: Add fast copy pathReinUsesLisp1-2/+2
2019-06-21gl_texture_cache: Initial implementationReinUsesLisp1-9/+28
2019-03-22video_core: Implement API agnostic view based texture cacheReinUsesLisp1-0/+386
Implements an API agnostic texture view based texture cache. Classes defined here are intended to be inherited by the API implementation and used in API-specific code. This implementation exposes protected virtual functions to be called from the implementer. Before executing any surface copies methods (defined in API-specific code) it tries to detect if the overlapping surface is a superset and if it is, it creates a view. Views are references of a subset of a surface, it can be a superset view (the same as referencing the whole texture). Current code manages 1D, 1D array, 2D, 2D array, cube maps and cube map arrays with layer and mipmap level views. Texture 3D slices views are not implemented. If the view attempt fails, the fast path is invoked with the overlapping textures (defined in the implementer). If that one fails (returning nullptr) it will flush and reload the texture.