0
0
Fork 0
mirror of https://github.com/GreemDev/Ryujinx.git synced 2025-01-11 04:02:00 +00:00
Ryujinx/src/Ryujinx.Graphics.Vulkan
riperiperi 0c445184c1
Vulkan: Periodically free regions of the staging buffer (#5572)
* Vulkan: Periodically free regions of the staging buffer

There was an edge case where a game could submit tens of thousands of small copies over the course of over half a minute to unique fences. This could result in a large stutter when the staging buffer became full and it tried to check and free thousands of completed fences.

This became visible with some games and mirrors on Windows, as they don't submit any buffer data via the staging buffer, but may submit copies of the support buffer.

This change makes the Vulkan backend check for staging buffer completion on each command buffer submit, so it can't get backed up with 1000s of copies to check.

* Add comment
2023-08-16 23:06:46 +02:00
..
Effects Move support buffer update out of the backends (#5411) 2023-07-11 14:07:41 -03:00
MoltenVK [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
Queries Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
Shaders Move ShaderBinaries into individual .spv files (#5280) 2023-07-11 14:41:18 -03:00
Auto.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
AutoFlushCounter.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
BackgroundResources.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
BitMap.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
BitMapStruct.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
BufferAllocationType.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
BufferHolder.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
BufferManager.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
BufferMirrorRangeList.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
BufferState.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
BufferUsageBitmap.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
CacheByRange.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
CommandBufferPool.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
CommandBufferScoped.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
Constants.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
DescriptorSetCollection.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
DescriptorSetManager.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
DescriptorSetUpdater.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
DisposableBuffer.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
DisposableBufferView.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
DisposableFramebuffer.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
DisposableImage.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
DisposableImageView.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
DisposableMemory.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
DisposablePipeline.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
DisposableRenderPass.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
DisposableSampler.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
EnumConversion.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
FenceHelper.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
FenceHolder.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
FormatCapabilities.cs Implement scaled vertex format emulation (#5564) 2023-08-16 08:30:33 -03:00
FormatConverter.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
FormatTable.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
FramebufferParams.cs Fix some Vulkan validation errors (#5452) 2023-07-14 09:08:52 +02:00
HardwareCapabilities.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
HashTableSlim.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
HelperShader.cs Move ShaderBinaries into individual .spv files (#5280) 2023-07-11 14:41:18 -03:00
HostMemoryAllocator.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
IdList.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
IndexBufferPattern.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
IndexBufferState.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
MemoryAllocation.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
MemoryAllocator.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
MemoryAllocatorBlockList.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
MultiFenceHolder.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
NativeArray.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
PersistentFlushBuffer.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
PipelineBase.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
PipelineConverter.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
PipelineDynamicState.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
PipelineFull.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
PipelineHelperShader.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
PipelineLayoutCache.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
PipelineLayoutCacheEntry.cs Replace ShaderBindings with new ResourceLayout structure for Vulkan (#5025) 2023-05-21 14:04:21 -03:00
PipelineLayoutFactory.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
PipelineState.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
PipelineUid.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
ResourceBindingSegment.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
ResourceLayoutBuilder.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
Ryujinx.Graphics.Vulkan.csproj Move ShaderBinaries into individual .spv files (#5280) 2023-07-11 14:41:18 -03:00
SamplerHolder.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
SemaphoreHolder.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
Shader.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
ShaderCollection.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
SpecInfo.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
StagingBuffer.cs Vulkan: Periodically free regions of the staging buffer (#5572) 2023-08-16 23:06:46 +02:00
SyncManager.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
TextureBuffer.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
TextureCopy.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
TextureStorage.cs Fix some Vulkan validation errors (#5452) 2023-07-14 09:08:52 +02:00
TextureView.cs Fix some Vulkan validation errors (#5452) 2023-07-14 09:08:52 +02:00
Vendor.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
VertexBufferState.cs Vulkan: Buffer Mirrors for MacOS performance (#4899) 2023-08-14 14:18:47 -03:00
VertexBufferUpdater.cs [Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378) 2023-07-01 12:31:42 +02:00
VulkanConfiguration.cs Fix some Vulkan validation errors (#5452) 2023-07-14 09:08:52 +02:00
VulkanDebugMessenger.cs Fix some Vulkan validation errors (#5452) 2023-07-14 09:08:52 +02:00
VulkanException.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
VulkanInitialization.cs Enable VK_EXT_4444_formats (#5525) 2023-08-03 17:46:23 -03:00
VulkanInstance.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
VulkanPhysicalDevice.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
VulkanRenderer.cs Vulkan: Periodically free regions of the staging buffer (#5572) 2023-08-16 23:06:46 +02:00
Window.cs Implement color space passthrough option (#5531) 2023-08-07 18:54:05 +01:00
WindowBase.cs Implement color space passthrough option (#5531) 2023-08-07 18:54:05 +01:00