Ryujinx/src/Ryujinx.Graphics.Gpu/Image
riperiperi 2c94ac455e
GPU: Keep rendered textures without any pool references alive (#4662)
* GPU: Keep sampled textures without any pool references alive

Occasionally games are very wasteful and clear/write to a texture without ever sampling it. As rendered textures in NVN games seem to all have overlapping memory ranges, the texture will eventually get overwritten.

Normally, this would trigger a removal from the auto delete cache, but a pool entry would keep the texture alive. However, with these textures that are never used, they will get deleted immediately and recreated on the next frame.

This change makes it so the ShortTextureCache can keep textures that have naver had a pool reference alive for a few frames, so they're not constantly being created and deleted.

This improves performance in Zelda BOTW a little.

* Cleanup
2023-05-01 16:27:51 -03:00
..
AutoDeleteCache.cs GPU: Keep rendered textures without any pool references alive (#4662) 2023-05-01 16:27:51 -03:00
FormatInfo.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
FormatTable.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
ITextureDescriptor.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
Pool.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
PoolCache.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
ReductionFilter.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
Sampler.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
SamplerDescriptor.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
SamplerMinFilter.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
SamplerMipFilter.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
SamplerPool.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
SamplerPoolCache.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
Texture.cs GPU: Keep rendered textures without any pool references alive (#4662) 2023-05-01 16:27:51 -03:00
TextureBindingInfo.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureBindingsManager.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureCache.cs GPU: Keep rendered textures without any pool references alive (#4662) 2023-05-01 16:27:51 -03:00
TextureCompatibility.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureComponent.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureDependency.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureDescriptor.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureDescriptorType.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureGroup.cs GPU: Pre-emptively flush textures that are flushed often (to imported memory when available) (#4711) 2023-05-01 16:05:12 -03:00
TextureGroupHandle.cs GPU: Pre-emptively flush textures that are flushed often (to imported memory when available) (#4711) 2023-05-01 16:05:12 -03:00
TextureInfo.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureManager.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureMatchQuality.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureMsaaMode.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TexturePool.cs GPU: Fix errors handling texture remapping (#4745) 2023-05-01 15:32:32 -03:00
TexturePoolCache.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureScaleMode.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureSearchFlags.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureTarget.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
TextureViewCompatibility.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00