Ryujinx/Ryujinx.Graphics.Gpu/Image
riperiperi f0e27a23a5
Add short duration texture cache (#3754)
* Add short duration texture cache

This texture cache takes textures that lose their last pool reference and keeps them alive until the next frame, or until an incompatible overlap removes it. This is done since under certain circumstances, a texture's reference can be wiped from a pool despite it still being in use - though typically the reference will return when rendering the next frame.

While this may slightly increase texture memory usage when quickly going through a bunch of temporary textures, it's still bounded due to the overlap removal rule.

This greatly increases performance in Hyrule Warriors: Age of Calamity. It may positively affect some UE4 games which dip framerate severely under certain circumstances.

* Small optimization

* Don't forget this.

* Add short cache dictionary

* Address feedback

* Address some feedback
2023-01-17 04:39:46 +01:00
..
AutoDeleteCache.cs Add short duration texture cache (#3754) 2023-01-17 04:39:46 +01:00
FormatInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
FormatTable.cs Implement a software ETC2 texture decoder (#4121) 2022-12-21 20:39:58 -03:00
ITextureDescriptor.cs shader cache: Fix invalid virtual address clean up (#1717) 2020-11-17 22:20:17 +01:00
Pool.cs Add short duration texture cache (#3754) 2023-01-17 04:39:46 +01:00
PoolCache.cs Add a sampler pool cache and improve texture pool cache (#3487) 2022-07-27 21:07:48 -03:00
ReductionFilter.cs Address PR feedback 2020-01-09 02:13:00 +01:00
Sampler.cs Optimize Texture Binding and Shader Specialization Checks (#3399) 2022-06-17 13:09:14 -03:00
SamplerDescriptor.cs Use a descriptor cache for faster pool invalidation. (#1977) 2021-01-29 14:19:06 +11:00
SamplerMinFilter.cs Add XML documentation to Ryujinx.Graphics.Gpu.Image 2020-01-09 02:13:00 +01:00
SamplerMipFilter.cs Add XML documentation to Ryujinx.Graphics.Gpu.Image 2020-01-09 02:13:00 +01:00
SamplerPool.cs Add a sampler pool cache and improve texture pool cache (#3487) 2022-07-27 21:07:48 -03:00
SamplerPoolCache.cs Add a sampler pool cache and improve texture pool cache (#3487) 2022-07-27 21:07:48 -03:00
Texture.cs Add short duration texture cache (#3754) 2023-01-17 04:39:46 +01:00
TextureBindingInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
TextureBindingsManager.cs GPU: Force rebind when pool changes (#4129) 2022-12-21 17:35:28 -03:00
TextureCache.cs Add short duration texture cache (#3754) 2023-01-17 04:39:46 +01:00
TextureCompatibility.cs GPU: Add fallback when 16-bit formats are not supported (#4108) 2022-12-26 15:50:27 -03:00
TextureComponent.cs Add XML documentation to Ryujinx.Graphics.Gpu.Image 2020-01-09 02:13:00 +01:00
TextureDependency.cs Texture Cache: "Texture Groups" and "Texture Dependencies" (#2001) 2021-03-02 19:30:54 -03:00
TextureDescriptor.cs Add short duration texture cache (#3754) 2023-01-17 04:39:46 +01:00
TextureDescriptorType.cs Add XML documentation to Ryujinx.Graphics.Gpu.Image 2020-01-09 02:13:00 +01:00
TextureGroup.cs Fix texture flush from CPU WaitSync regression on OpenGL (#4289) 2023-01-14 11:23:57 -03:00
TextureGroupHandle.cs Fix texture flush from CPU WaitSync regression on OpenGL (#4289) 2023-01-14 11:23:57 -03:00
TextureInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
TextureManager.cs GPU: Swap bindings array instead of copying (#4003) 2022-12-04 18:18:40 +01:00
TextureMatchQuality.cs Prefer truly perfect texture matches over fomat aliased ones (#1754) 2020-11-27 19:46:23 +01:00
TextureMsaaMode.cs Add XML documentation to Ryujinx.Graphics.Gpu.Image 2020-01-09 02:13:00 +01:00
TexturePool.cs Add short duration texture cache (#3754) 2023-01-17 04:39:46 +01:00
TexturePoolCache.cs Add a sampler pool cache and improve texture pool cache (#3487) 2022-07-27 21:07:48 -03:00
TextureScaleMode.cs Use "Undesired" scale mode for certain textures rather than blacklisting (#2537) 2021-08-11 22:44:51 +02:00
TextureSearchFlags.cs Perform unscaled 2d engine copy on CPU if source texture isn't in cache. (#3112) 2022-02-22 11:21:29 -03:00
TextureTarget.cs Fix TXQ for 3D textures. (#2613) 2021-09-02 00:17:43 -03:00
TextureViewCompatibility.cs Texture Sync, incompatible overlap handling, data flush improvements. (#2971) 2022-01-09 13:28:48 -03:00