Fernando Sahmkow
f13806a7aa
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.
7 years ago
Fernando Sahmkow
76b68c74a7
Fix rebase errors
7 years ago
Fernando Sahmkow
b5ce82c66a
texture_cache: Handle uncontinuous surfaces.
7 years ago
Fernando Sahmkow
94036d27ec
texture_cache: return null surface on invalid address
7 years ago
Fernando Sahmkow
dbc71a6076
texture_cache: Add checks for texture buffers.
7 years ago
Fernando Sahmkow
bc8f3d4964
texture_cache: Fermi2D reform and implement View Mirage
This also does some fixes on compressed textures reinterpret and on the
Fermi2D engine in general.
7 years ago
ReinUsesLisp
fba886bd2b
gl_shader_decompiler: Implement image binding settings
7 years ago
ReinUsesLisp
7e4a7929f8
shader: Implement bindless images
7 years ago
ReinUsesLisp
224e4e174d
shader: Decode SUST and implement backing image functionality
7 years ago
ReinUsesLisp
f6828170f3
gl_rasterizer: Track texture buffer usage
7 years ago
ReinUsesLisp
5c7c87cc03
video_core: Make ARB_buffer_storage a required extension
7 years ago
ReinUsesLisp
8a592f8cd8
gl_rasterizer_cache: Use texture buffers to emulate texture buffers
7 years ago
ReinUsesLisp
91b16d383a
maxwell_3d: Partially implement texture buffers as 1D textures
7 years ago
ReinUsesLisp
8f28295b4d
gl_shader_decompiler: Allow 1D textures to be texture buffers
7 years ago
ReinUsesLisp
27cd63a05a
shader: Implement texture buffers
7 years ago
Fernando Sahmkow
f42ada6945
texture_cache: loose TryReconstructSurface when accurate GPU is not on.
Also corrects some asserts.
7 years ago
Fernando Sahmkow
8683fa1930
texture_cache: Document the most important methods.
7 years ago
Fernando Sahmkow
687bf35b34
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
7 years ago
Fernando Sahmkow
cce4f7cd76
texture_cache: Implement Guard mechanism
7 years ago
Fernando Sahmkow
53e9e3966a
texture_cache: General Fixes
Fixed ASTC mipmaps loading
Fixed alignment on openGL upload/download
Fixed Block Height Calculation
Removed unalign_height
7 years ago
ReinUsesLisp
c50c889111
surface_params: Ensure pitch is always written to avoid surface leaks
7 years ago
ReinUsesLisp
32e588df63
gl_framebuffer_cache: Use a hashed struct to cache framebuffers
7 years ago
Fernando Sahmkow
4298dc8290
texture_cache return invalid buffer on deactivated color_mask
7 years ago
Fernando Sahmkow
7884bf60a6
engine_upload: Addapt to new Texture Cache
7 years ago
ReinUsesLisp
291139ade3
surface_params: Optimize CreateForTexture
Instead of using Common::AlignUp, use Common::AlignBits to align the
texture compression factor.
7 years ago
Fernando Sahmkow
b4aed46661
gl_texture_cache: Make main views be proxy textures instead of a full view.
7 years ago
Fernando Sahmkow
0484a115f3
texture_cache: Add ASync Protections
7 years ago
Fernando Sahmkow
eaa5069c7f
Remove Framebuffer reconfiguration and restrict rendertarget protection
7 years ago
Fernando Sahmkow
4bbc66d1e5
texture_cache: Implement GPU Dirty Flags
7 years ago
Fernando Sahmkow
70071a17df
texture_cache: Optimize GetMipBlockHeight and GetMipBlockDepth
7 years ago
Fernando Sahmkow
e29718534b
texture_cache: Implement L1_Inner_cache
7 years ago
ReinUsesLisp
1d10810d2b
video_core: Use un-shifted block sizes to avoid integer divisions
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).
7 years ago
ReinUsesLisp
822cc4b92d
texture_cache: Change internal cache from lists to vectors
7 years ago
Fernando Sahmkow
20e97604f1
Reduce amount of size calculations.
7 years ago
Fernando Sahmkow
73538e80a6
texture_cache: Correct premature texceptions
Due to our current infrastructure, it is possible for a mipmap to be set
on as a render target before a texception of that mipmap's superset be
set afterwards. This is problematic as we rely on texture views to set
up texceptions and protecting render targets targets for 3D texture
rendering.
One simple solution is to configure framebuffers after texture setup but
this brings other problems. This solution, forces a reconfiguration of
the framebuffers after such event happens.
7 years ago
Fernando Sahmkow
ab7fd4a084
texture_cache: Implement guest flushing
7 years ago
Fernando Sahmkow
b84179af46
Fixes to mipmap's process and reconstruct process
7 years ago
ReinUsesLisp
f43bf87e8a
surface_base: Add parenthesis to EmplaceOverview's predicate
7 years ago
Fernando Sahmkow
6b7e019bc6
Texture Cache: Implement Blitting and Fermi Copies
7 years ago
ReinUsesLisp
90066da53f
surface_view: Add constructor for ViewParams
7 years ago
ReinUsesLisp
265eb2d076
surface_base: Split BreakDown into layered and non-layered variants
7 years ago
ReinUsesLisp
cd1a36021d
surface_base: Silence truncation warnings and minor renames and reordering
7 years ago
ReinUsesLisp
2f3aa02618
copy_params: Use constructor instead of C-like initialization
7 years ago
Fernando Sahmkow
40325b2fd5
Correct Mipmaps View method in Texture Cache
7 years ago
Fernando Sahmkow
27e8636b3e
Change texture_cache chaching from GPUAddr to CacheAddr
This also reverses the changes to make invalidation and flushing through
the GPU address.
7 years ago
Fernando Sahmkow
6d36712424
Corrections to Structural Matching
The texture will now be reconstructed if the width only matches on GoB
alignment.
7 years ago
Fernando Sahmkow
7b8ddfb612
Implement Texture Cache V2
7 years ago
Fernando Sahmkow
b906c2d3ec
Correct Surface Base and Views for new Texture Cache
7 years ago
Fernando Sahmkow
e341b78038
Add OGLTextureView
7 years ago
Fernando Sahmkow
e8ac8ab2f5
Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddr
7 years ago