Ryujinx/Ryujinx.Graphics.Vulkan
riperiperi af4aae7951 Use a bitmap to do granular tracking for buffer uploads.
This path is only taken if the much faster check of "is the buffer rented at all" is triggered, so it doesn't actually end up costing too much, and the time saved by not ending render passes (and on gpu for not waiting on barriers) is probably helpful.

Avoids ending render passes to update buffer data (not all the time)
- 140-180 to 35-45 in SMO metro kingdom (these updates are in the UI)
- Very variable 60-150(!) to 16-25 in mario kart 8 (these updates are in the UI)

As well as allowing more data to be preloaded persistently, this will also allow more data to be loaded in the preload buffer, which should be faster as it doesn't need to insert barriers between draws. (and on tbdr, does not need to flush and reload tile memory)

Improves performance in GPU limited scenarios. Should notably improve performance on TBDR gpus. Still a lot more to do here.
2022-06-17 22:42:51 +01:00
..
Native/shaderc/libs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
Queries Port #3019 2022-06-17 22:42:38 +01:00
Auto.cs Device local mapping for all buffers 2022-06-17 22:42:36 +01:00
BackgroundResources.cs Add single queue support 2022-06-17 22:42:37 +01:00
BitMap.cs Use a bitmap to do granular tracking for buffer uploads. 2022-06-17 22:42:51 +01:00
BufferHolder.cs Use a bitmap to do granular tracking for buffer uploads. 2022-06-17 22:42:51 +01:00
BufferManager.cs Better workaround for AMD vertex buffer size alignment issue 2022-06-17 22:42:39 +01:00
BufferRangeList.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
BufferState.cs Fix triangle overlay on SMO, Captain Toad, maybe others? 2022-06-17 22:42:34 +01:00
BufferUsageBitmap.cs Use a bitmap to do granular tracking for buffer uploads. 2022-06-17 22:42:51 +01:00
CacheByRange.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
CommandBufferPool.cs Use circular queue for checking consumption on command buffers 2022-06-17 22:42:38 +01:00
CommandBufferScoped.cs Cleanup, disable device local buffers for now. 2022-06-17 22:42:36 +01:00
Constants.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DescriptorSetCollection.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DescriptorSetManager.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DescriptorSetUpdater.cs Use SupportBufferUpdater, add single layer flush 2022-06-17 22:42:38 +01:00
DisposableBuffer.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DisposableBufferView.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DisposableFramebuffer.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DisposableImage.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DisposableImageView.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DisposableMemory.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DisposablePipeline.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DisposableRenderPass.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
DisposableSampler.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
EnumConversion.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
FenceHelper.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
FenceHolder.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
FormatCapabilities.cs New depth-stencil blit method for AMD 2022-06-17 22:42:31 +01:00
FormatConverter.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
FormatTable.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
FramebufferParams.cs Multisampling support 2022-06-17 22:42:46 +01:00
HardwareCapabilities.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
HashTableSlim.cs Multithreaded Pipeline Compilation 2022-06-17 22:42:49 +01:00
HelperShader.cs Device local mapping for all buffers 2022-06-17 22:42:36 +01:00
MemoryAllocation.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
MemoryAllocator.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
MemoryAllocatorBlockList.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
MultiFenceHolder.cs Use a bitmap to do granular tracking for buffer uploads. 2022-06-17 22:42:51 +01:00
NativeArray.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
PersistentFlushBuffer.cs Use SupportBufferUpdater, add single layer flush 2022-06-17 22:42:38 +01:00
PipelineBase.cs Cleanup for merge (note: disables spir-v) 2022-06-17 22:42:50 +01:00
PipelineBlit.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
PipelineConverter.cs Fix Multisampling 2022-06-17 22:42:50 +01:00
PipelineDynamicState.cs DrawTexture support 2022-06-17 22:42:32 +01:00
PipelineFull.cs Fix transform feedback on Intel, gl_Position feedback and clears to inexistent depth buffers 2022-06-17 22:42:38 +01:00
PipelineLayoutCache.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
PipelineLayoutCacheEntry.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
PipelineLayoutFactory.cs Use SupportBufferUpdater, add single layer flush 2022-06-17 22:42:38 +01:00
PipelineState.cs Cleanup for merge (note: disables spir-v) 2022-06-17 22:42:50 +01:00
PipelineUid.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
Ryujinx.Graphics.Vulkan.csproj Update Silk.NET to version 2.10.1 2022-06-17 22:42:33 +01:00
SamplerHolder.cs Fix samplers with MinFilter Linear or Nearest (fixes New Super Mario Bros U Deluxe black borders) 2022-06-17 22:42:34 +01:00
SemaphoreHolder.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
Shader.cs Multithreaded Pipeline Compilation 2022-06-17 22:42:49 +01:00
ShaderCollection.cs Make more robust to shader compilation failure 2022-06-17 22:42:50 +01:00
StagingBuffer.cs Remove Intel bug workaround, it was fixed on the latest driver 2022-06-17 22:42:37 +01:00
SyncManager.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
TextureBuffer.cs Support format aliasing on SetImage 2022-06-17 22:42:32 +01:00
TextureCopy.cs Multisampling: Use resolve if src samples count > dst samples count 2022-06-17 22:42:47 +01:00
TextureStorage.cs Multisampling support 2022-06-17 22:42:46 +01:00
TextureView.cs Multisampling: We can only resolve for unscaled copies 2022-06-17 22:42:47 +01:00
Vendor.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
VulkanConfiguration.cs Use a bitmap to do granular tracking for buffer uploads. 2022-06-17 22:42:51 +01:00
VulkanException.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
VulkanGraphicsDevice.cs Multithreaded Pipeline Compilation 2022-06-17 22:42:49 +01:00
VulkanInitialization.cs Fix draw outside of render pass and missing capability 2022-06-17 22:42:39 +01:00
Window.cs Allow custom aspect ratio on Vulkan 2022-06-17 22:42:40 +01:00