Fernando Sahmkow
d91c27a8a6
texture_cache: Implement Irregular Views in surfaces
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
d25301510c
surface: Correct format S8Z24
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
940066986a
texture_cache: Initialize all siblings to invalid pixel format.
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
f7b0e00d09
gl_texture_cache: Use Stream Buffers instead of Persistant for Buffer Copies.
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
baf1aa84f9
gl_texture_cache: Correct Image Blit
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
72191767b9
decoders: correct block calculation
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
401211baca
texture_cache: Use siblings textures on Rebuild and fix possible error on blitting
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
a1fd1e981d
texture_cache: Remove old rasterizer cache
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
1c75d9c6f1
texture_cache: Implement siblings texture formats.
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
390576edc4
fermi2d: Correct Origin Mode
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
6818d73e5e
texture_cache: correct texture buffer on surface params
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
fcb36948be
texture_cache: eliminate accelerated depth->color/color->depth copies due to driver instability.
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
b5b29ce416
texture_cache: correct mutex locks
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
4b561b700e
shader_ir: Fix image copy rebase issues
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
b919e67603
texture_cache: Don't Image Copy if component types differ
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
185c823382
texture_cache: move some large methods to cpp files
2019-06-20 21:38:34 -03:00
Fernando Sahmkow
2d367a3003
texture_cache: Optimize GetSurface and use references on functions that don't change a surface.
2019-06-20 21:38:33 -03:00
Fernando Sahmkow
b707d286e7
texture_cache: Implement Buffer Copy and detect Turing GPUs Image Copies
2019-06-20 21:38:33 -03:00
Fernando Sahmkow
769b2a459e
texture_cache uncompress-compress is untopological.
...
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-20 21:38:33 -03:00
Fernando Sahmkow
53ef935c5f
texture_cache: Correct copying between compressed and uncompressed formats
2019-06-20 21:38:33 -03:00
Fernando Sahmkow
34dff4c9bc
texture_cache: Only load on recycle with accurate GPU.
...
Testing so far has proven this to be quite safe as texture memory read
added a 2-5ms load to the current cache.
2019-06-20 21:38:33 -03:00
Fernando Sahmkow
14741d6113
Fix rebase errors
2019-06-20 21:38:33 -03:00
Fernando Sahmkow
731371c1b9
texture_cache: Handle uncontinuous surfaces.
2019-06-20 21:38:33 -03:00
Fernando Sahmkow
a5e50d06a0
texture_cache: return null surface on invalid address
2019-06-20 21:38:33 -03:00
Fernando Sahmkow
164cceaa2f
texture_cache: Add checks for texture buffers.
2019-06-20 21:38:33 -03:00
Fernando Sahmkow
367c709367
texture_cache: Fermi2D reform and implement View Mirage
...
This also does some fixes on compressed textures reinterpret and on the
Fermi2D engine in general.
2019-06-20 21:38:33 -03:00
ReinUsesLisp
733553ad40
gl_shader_decompiler: Implement image binding settings
2019-06-20 21:38:33 -03:00
ReinUsesLisp
c98832105a
shader: Implement bindless images
2019-06-20 21:38:33 -03:00
ReinUsesLisp
6788a49ac5
shader: Decode SUST and implement backing image functionality
2019-06-20 21:38:33 -03:00
ReinUsesLisp
af8c8e61f6
gl_rasterizer: Track texture buffer usage
2019-06-20 21:38:33 -03:00
ReinUsesLisp
bdffcf8326
video_core: Make ARB_buffer_storage a required extension
2019-06-20 21:36:12 -03:00
ReinUsesLisp
ee8a7b7b12
gl_rasterizer_cache: Use texture buffers to emulate texture buffers
2019-06-20 21:36:12 -03:00
ReinUsesLisp
86b444c020
maxwell_3d: Partially implement texture buffers as 1D textures
2019-06-20 21:36:12 -03:00
ReinUsesLisp
1c558b0e10
gl_shader_decompiler: Allow 1D textures to be texture buffers
2019-06-20 21:36:12 -03:00
ReinUsesLisp
d8d988dc9d
shader: Implement texture buffers
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
ec163a77da
texture_cache: loose TryReconstructSurface when accurate GPU is not on.
...
Also corrects some asserts.
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
1007f11f59
texture_cache: Document the most important methods.
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
a26869f770
texture_cache: Try to Reconstruct Surface on bigger than overlap.
...
This fixes clouds in SMO Cap Kingdom and lens on Cloud Kingdom.
Also moved accurate_gpu setting check to Pick Strategy
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
119ff5e3e3
texture_cache: Implement Guard mechanism
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
7738bf1c71
texture_cache: General Fixes
...
Fixed ASTC mipmaps loading
Fixed alignment on openGL upload/download
Fixed Block Height Calculation
Removed unalign_height
2019-06-20 21:36:12 -03:00
ReinUsesLisp
6a33b75653
surface_params: Ensure pitch is always written to avoid surface leaks
2019-06-20 21:36:12 -03:00
ReinUsesLisp
fd5689cebb
gl_framebuffer_cache: Use a hashed struct to cache framebuffers
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
1c89caf07d
texture_cache return invalid buffer on deactivated color_mask
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
a725ea9172
engine_upload: Addapt to new Texture Cache
2019-06-20 21:36:12 -03:00
ReinUsesLisp
139f480f0c
surface_params: Optimize CreateForTexture
...
Instead of using Common::AlignUp, use Common::AlignBits to align the
texture compression factor.
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
b83b4591f4
gl_texture_cache: Make main views be proxy textures instead of a full view.
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
e018035ab8
texture_cache: Add ASync Protections
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
2dba5f3a16
Remove Framebuffer reconfiguration and restrict rendertarget protection
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
210cd9f3f6
texture_cache: Implement GPU Dirty Flags
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
5fd215869f
texture_cache: Optimize GetMipBlockHeight and GetMipBlockDepth
2019-06-20 21:36:12 -03:00