RyuKen/Ryujinx.Graphics.GAL
riperiperi 5d69d9103e
Texture/Buffer Memory Management Improvements (#1408)
* Initial implementation. Still pending better valid-overlap handling,
disposed pool, compressed format flush fix.

* Very messy backend resource cache.

* Oops

* Dispose -> Release

* Improve Release/Dispose.

* More rule refinement.

* View compatibility levels as an enum - you can always know if a view is only copy compatible.

* General cleanup.

Use locking on the resource cache, as it is likely to be used by other threads in future.

* Rename resource cache to resource pool.

* Address some of the smaller nits.

* Fix regression with MK8 lens flare

Texture flushes done the old way should trigger memory tracking.

* Use TextureCreateInfo as a key.

It now implements IEquatable and generates a hashcode based on width/height.

* Fix size change for compressed+non-compressed view combos.

Before, this could set either the compressed or non compressed texture with a size with the wrong size, depending on which texture had its size changed. This caused exceptions when flushing the texture.

Now it correctly takes the block size into account, assuming that these textures are only related because a pixel in the non-compressed texture represents a block in the compressed one.

* Implement JD's suggestion for HashCode Combine

Co-authored-by: jduncanator <1518948+jduncanator@users.noreply.github.com>

* Address feedback

* Address feedback.

Co-authored-by: jduncanator <1518948+jduncanator@users.noreply.github.com>
2020-09-10 16:44:04 -03:00
..
AddressMode.cs Some code cleanup 2020-01-09 02:13:00 +01:00
BlendDescriptor.cs Implement Constant Color blends (#1119) 2020-04-25 23:00:43 +10:00
BlendFactor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
BlendOp.cs Some code cleanup 2020-01-09 02:13:00 +01:00
BufferHandle.cs Spanify Graphics Abstraction Layer (#1226) 2020-05-23 11:46:09 +02:00
BufferRange.cs Spanify Graphics Abstraction Layer (#1226) 2020-05-23 11:46:09 +02:00
Capabilities.cs Fix wrong face culling once and for all (#1277) 2020-05-28 09:03:07 +10:00
ColorF.cs Implement Constant Color blends (#1119) 2020-04-25 23:00:43 +10:00
CompareMode.cs Some code cleanup 2020-01-09 02:13:00 +01:00
CompareOp.cs Initial support for the guest OpenGL driver (NVIDIA and Nouveau) 2020-01-09 02:13:00 +01:00
CounterType.cs Initial work 2020-01-09 02:13:00 +01:00
DepthMode.cs Support depth clip mode and disable shader fast math optimization on NVIDIA as a workaround for compiler bugs (?) 2020-01-09 02:13:00 +01:00
DepthStencilMode.cs Some code cleanup 2020-01-09 02:13:00 +01:00
DepthStencilState.cs Some code cleanup 2020-01-09 02:13:00 +01:00
DepthTestDescriptor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Extents2D.cs Initial work 2020-01-09 02:13:00 +01:00
Face.cs Initial work 2020-01-09 02:13:00 +01:00
Format.cs Implement BGRA texture support (#1418) 2020-07-26 00:03:40 -03:00
FrontFace.cs Initial work 2020-01-09 02:13:00 +01:00
ICounterEvent.cs Implement Counter Queue and Partial Host Conditional Rendering (#1167) 2020-05-04 12:24:59 +10:00
ImageCrop.cs Initial work 2020-01-09 02:13:00 +01:00
IndexType.cs Initial work 2020-01-09 02:13:00 +01:00
IPipeline.cs Implement alpha test using legacy functions (#1426) 2020-07-28 18:30:08 -03:00
IProgram.cs Initial work 2020-01-09 02:13:00 +01:00
IRenderer.cs Texture/Buffer Memory Management Improvements (#1408) 2020-09-10 16:44:04 -03:00
ISampler.cs Initial work 2020-01-09 02:13:00 +01:00
IShader.cs Initial work 2020-01-09 02:13:00 +01:00
ITexture.cs Texture/Buffer Memory Management Improvements (#1408) 2020-09-10 16:44:04 -03:00
IWindow.cs Improved and simplified window texture presentation 2020-01-09 02:13:00 +01:00
LogicalOp.cs Implement Logical Operation registers and functionality (#1380) 2020-07-10 14:23:15 -03:00
MagFilter.cs Some code cleanup 2020-01-09 02:13:00 +01:00
MinFilter.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Origin.cs Fix wrong face culling once and for all (#1277) 2020-05-28 09:03:07 +10:00
PolygonModeMask.cs Initial work 2020-01-09 02:13:00 +01:00
PrimitiveTopology.cs Initial work 2020-01-09 02:13:00 +01:00
RectangleF.cs Initial work 2020-01-09 02:13:00 +01:00
Ryujinx.Graphics.GAL.csproj Upgrade projects to C#8 (#1193) 2020-05-04 12:14:48 +10:00
SamplerCreateInfo.cs Some code cleanup 2020-01-09 02:13:00 +01:00
StencilOp.cs Some code cleanup 2020-01-09 02:13:00 +01:00
StencilTestDescriptor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
SwizzleComponent.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Target.cs Some code cleanup 2020-01-09 02:13:00 +01:00
TextureCreateInfo.cs Texture/Buffer Memory Management Improvements (#1408) 2020-09-10 16:44:04 -03:00
TextureReleaseCallback.cs Initial work 2020-01-09 02:13:00 +01:00
TransformFeedbackDescriptor.cs Initial transform feedback support (#1370) 2020-07-15 13:01:10 +10:00
VertexAttribDescriptor.cs Support constant attributes (with a value of zero) (#1066) 2020-03-30 13:11:24 +11:00
VertexBufferDescriptor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Viewport.cs Initial work 2020-01-09 02:13:00 +01:00
ViewportSwizzle.cs Fix wrong face culling once and for all (#1277) 2020-05-28 09:03:07 +10:00