ryujinx-mirror/Ryujinx.Graphics.GAL
riperiperi a1f77a5b6a
Implement lazy flush-on-read for Buffers (SSBO/Copy) (#1790)
* Initial implementation of buffer flush (VERY WIP)

* Host shaders need to be rebuilt for the SSBO write flag.

* New approach with reserved regions and gl sync

* Fix a ton of buffer issues.

* Remove unused buffer unmapped behaviour

* Revert "Remove unused buffer unmapped behaviour"

This reverts commit f1700e52fb8760180ac5e0987a07d409d1e70ece.

* Delete modified ranges on unmap

Fixes potential crashes in Super Smash Bros, where a previously modified range could lie on either side of an unmap.

* Cache some more delegates.

* Dispose Sync on Close

* Also create host sync for GPFifo syncpoint increment.

* Copy buffer optimization, add docs

* Fix race condition with OpenGL Sync

* Enable read tracking on CommandBuffer, insert syncpoint on WaitForIdle

* Performance: Only flush individual pages of SSBO at a time

This avoids flushing large amounts of data when only a small amount is actually used.

* Signal Modified rather than flushing after clear

* Fix some docs and code style.

* Introduce a new test for tracking memory protection.

Sucessfully demonstrates that the bug causing write protection to be cleared by a read action has been fixed. (these tests fail on master)

* Address Comments

* Add host sync for SetReference

This ensures that any indirect draws will correctly flush any related buffer data written before them. Fixes some flashing and misplaced world geometry in MH rise.

* Make PageAlign static

* Re-enable read tracking, for reads.
2021-01-17 17:08:06 -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 Fix incorrect GPU GL blend func values (#1612) 2020-10-13 14:45:41 +11:00
BufferHandle.cs Spanify Graphics Abstraction Layer (#1226) 2020-05-23 11:46:09 +02:00
BufferRange.cs Fix transform feedback errors caused by host pause/resume and multiple uses (#1634) 2020-10-25 17:23:42 -03: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 Allow copy destination to have a different scale from source (#1711) 2020-11-20 17:14:45 -03:00
Face.cs Initial work 2020-01-09 02:13:00 +01:00
Format.cs gpu: Implement missing texture formats (#1867) 2021-01-05 06:02:49 +01: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 gui/gpu: Implement setting and toggle for Aspect Ratio (#1777) 2020-12-15 23:19:07 -03:00
IndexType.cs Initial work 2020-01-09 02:13:00 +01:00
IPipeline.cs Implement clear buffer (fast path) (#1902) 2021-01-13 08:50:54 +11:00
IProgram.cs Salieri: shader cache (#1701) 2020-11-13 00:15:34 +01:00
IRenderer.cs Implement lazy flush-on-read for Buffers (SSBO/Copy) (#1790) 2021-01-17 17:08:06 -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 infra: Migrate to .NET 5 (#1694) 2020-11-15 19:27:15 +01:00
SamplerCreateInfo.cs Add seamless cubemap flag in sampler parameters. (#1658) 2020-11-02 17:03:06 -03: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