GreemDev-Ryujinx/Ryujinx.Graphics.GAL
riperiperi 9f1cf6458c
Vulkan: Migrate buffers between memory types to improve GPU performance (#4540)
* Initial implementation of migration between memory heaps

- Missing OOM handling
- Missing `_map` data safety when remapping
  - Copy may not have completed yet (needs some kind of fence)
  - Map may be unmapped before it is done being used. (needs scoped access)
- SSBO accesses are all "writes" - maybe pass info in another way.
- Missing keeping map type when resizing buffers (should this be done?)

* Ensure migrated data is in place before flushing.

* Fix issue where old waitable would be signalled.

- There is a real issue where existing Auto<> references need to be replaced.

* Swap bound Auto<> instances when swapping buffer backing

* Fix conversion buffers

* Don't try move buffers if the host has shared memory.

* Make GPU methods return PinnedSpan with scope

* Storage Hint

* Fix stupidity

* Fix rebase

* Tweak rules

Attempt to sidestep BOTW slowdown

* Remove line

* Migrate only when command buffers flush

* Change backing swap log to debug

* Address some feedback

* Disallow backing swap when the flush lock is held by the current thread

* Make PinnedSpan from ReadOnlySpan explicitly unsafe

* Fix some small issues

- Index buffer swap fixed
- Allocate DeviceLocal buffers using a separate block list to images.

* Remove alternative flags

* Address feedback
2023-03-19 17:56:48 -03:00
..
Multithreading Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
AddressMode.cs
AdvancedBlendDescriptor.cs
AdvancedBlendOp.cs
AdvancedBlendOverlap.cs
AntiAliasing.cs Add Support for Post Processing Effects (#3616) 2023-02-27 18:11:55 -03:00
BlendDescriptor.cs
BlendFactor.cs
BlendOp.cs
BufferAssignment.cs
BufferHandle.cs
BufferRange.cs
Capabilities.cs Move gl_Layer to vertex shader if geometry is not supported (#4368) 2023-02-25 10:39:51 +00:00
ColorF.cs
CompareMode.cs
CompareOp.cs
CounterType.cs
DepthMode.cs
DepthStencilMode.cs
DepthTestDescriptor.cs
DeviceInfo.cs
Extents2D.cs
Extents2DF.cs
Face.cs
Format.cs
FrontFace.cs
HardwareInfo.cs
ICounterEvent.cs
ImageCrop.cs
IndexType.cs
IPipeline.cs
IProgram.cs
IRenderer.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
ISampler.cs
ITexture.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
IWindow.cs Add Support for Post Processing Effects (#3616) 2023-02-27 18:11:55 -03:00
LogicalOp.cs
MagFilter.cs
MinFilter.cs
MultisampleDescriptor.cs
Origin.cs
PinnedSpan.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
PolygonMode.cs
PolygonModeMask.cs
PrimitiveTopology.cs
ProgramLinkStatus.cs
ProgramPipelineState.cs
Rectangle.cs
Ryujinx.Graphics.GAL.csproj
SamplerCreateInfo.cs
ScreenCaptureImageInfo.cs
ShaderBindings.cs
ShaderInfo.cs
ShaderSource.cs
StencilOp.cs
StencilTestDescriptor.cs
SupportBufferUpdater.cs
SwizzleComponent.cs
Target.cs Update range for remapped sparse textures instead of recreating them (#4442) 2023-03-14 17:08:44 -03:00
TextureCreateInfo.cs
TextureReleaseCallback.cs
UpscaleType.cs Add Support for Post Processing Effects (#3616) 2023-02-27 18:11:55 -03:00
VertexAttribDescriptor.cs
VertexBufferDescriptor.cs
Viewport.cs
ViewportSwizzle.cs