Ryujinx/Ryujinx.Graphics.Gpu/Image
riperiperi 1fc90e57d2
Update range for remapped sparse textures instead of recreating them (#4442)
* Update sparsely mapped texture ranges without recreating

Important TODO in TexturePool. Smaller TODO: should I look into making textures with views also do this? It needs to be able to detect if the views can be instantly deleted without issue if they're now remapped.

* Actually do partial updates

* Signal group dirty after mappings changed

* Fix various issues (should work now)

* Further optimisation

Should load a lot less data (16x) when partial updating 3d textures.

* Improve stability

* Allow granular uploads on large textures, improve rules

* Actually avoid updating slices that aren't modified.

* Address some feedback, minor optimisation

* Small tweak

* Refactor DereferenceRequest

More specific initialization methods.

* Improve code for resetting handles

* Explain data loading a bit more

* Add some safety for setting null from different threads.

All texture sets come from the one thread, but null sets can come from multiple. Only decrement ref count if we succeeded the null set first.

* Address feedback 1

* Make a bit safer
2023-03-14 17:08:44 -03:00
..
AutoDeleteCache.cs Limit texture cache based on total texture size (#4350) 2023-02-08 14:19:43 +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
Pool.cs Clear CPU side data on GPU buffer clears (#4125) 2023-02-16 18:28:49 -03:00
PoolCache.cs Add a sampler pool cache and improve texture pool cache (#3487) 2022-07-27 21:07:48 -03:00
ReductionFilter.cs
Sampler.cs Optimize Texture Binding and Shader Specialization Checks (#3399) 2022-06-17 13:09:14 -03:00
SamplerDescriptor.cs
SamplerMinFilter.cs
SamplerMipFilter.cs
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 Update range for remapped sparse textures instead of recreating them (#4442) 2023-03-14 17:08:44 -03: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 Update range for remapped sparse textures instead of recreating them (#4442) 2023-03-14 17:08:44 -03:00
TextureCompatibility.cs Add copy dependency for some incompatible texture formats (#4380) 2023-02-21 19:21:57 -03:00
TextureComponent.cs
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
TextureGroup.cs Update range for remapped sparse textures instead of recreating them (#4442) 2023-03-14 17:08:44 -03:00
TextureGroupHandle.cs Fix texture flush from CPU WaitSync regression on OpenGL (#4289) 2023-01-14 11:23:57 -03:00
TextureInfo.cs Handle mismatching texture size with copy dependencies (#4364) 2023-02-08 08:48:09 +01:00
TextureManager.cs Handle mismatching texture size with copy dependencies (#4364) 2023-02-08 08:48:09 +01:00
TextureMatchQuality.cs
TextureMsaaMode.cs
TexturePool.cs Update range for remapped sparse textures instead of recreating them (#4442) 2023-03-14 17:08:44 -03: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 Handle mismatching texture size with copy dependencies (#4364) 2023-02-08 08:48:09 +01: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