Ryujinx/Ryujinx.Graphics.Vulkan
riperiperi a34fb0e939
Vulkan: Insert barriers before clears (#4596)
* Vulkan: Insert barriers before clears

Newer NVIDIA GPUs seem to be able to start clearing render targets before the last rasterization task is completed, which can cause it to clear a texture while it is being sampled.

This change adds a barrier from read to write when doing a clear, assuming it has been sampled in the past. It could be possible for this to be needed for sample into draw by some GPU, but it's not right now afaik.

This should fix visual artifacts on newer NVIDIA GPUs and driver combos. Contrary to popular belief, Tetris® Effect: Connected is not affected. Testing welcome, hopefully should fix most cases of this and not cost too much performance.

* Visual Studio Moment

* Address feedback

* Address Feedback 2
2023-03-26 12:51:02 +02:00
..
Effects Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
MoltenVK Minor code formatting (#4498) 2023-03-04 14:43:08 +01:00
Queries GPU: Scale counter results before addition (#4471) 2023-03-12 18:01:15 +01:00
Shaders Add copy dependency for some incompatible texture formats (#4380) 2023-02-21 19:21:57 -03:00
Auto.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
AutoFlushCounter.cs Vulkan: Flush command buffers for queries less aggressively (#4387) 2023-02-09 02:03:41 +01:00
BackgroundResources.cs Minor code formatting (#4498) 2023-03-04 14:43:08 +01:00
BitMap.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
BufferAllocationType.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
BufferHolder.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
BufferManager.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
BufferState.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
BufferUsageBitmap.cs Support use of buffer ranges with size 0 (#3736) 2022-10-03 20:08:38 -03:00
CacheByRange.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
CommandBufferPool.cs Vulkan: Don't flush commands when creating most sync (#4087) 2022-12-29 15:39:04 +01:00
CommandBufferScoped.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Constants.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
DescriptorSetCollection.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
DescriptorSetManager.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
DescriptorSetUpdater.cs Vulkan: Insert barriers before clears (#4596) 2023-03-26 12:51:02 +02:00
DisposableBuffer.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
DisposableBufferView.cs Fix Redundant Qualifer Warnings (#4091) 2022-12-10 21:21:13 +01:00
DisposableFramebuffer.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
DisposableImage.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
DisposableImageView.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
DisposableMemory.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
DisposablePipeline.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
DisposableRenderPass.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
DisposableSampler.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
EnumConversion.cs Vulkan: Insert barriers before clears (#4596) 2023-03-26 12:51:02 +02:00
FenceHelper.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
FenceHolder.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
FormatCapabilities.cs chore: Update Silk.NET to 2.16.0 (#3953) 2022-12-01 19:11:56 +01:00
FormatConverter.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
FormatTable.cs Fix R4G4B4A4 format on Vulkan (#3696) 2022-09-13 07:59:38 +02:00
FramebufferParams.cs Vulkan: Insert barriers before clears (#4596) 2023-03-26 12:51:02 +02:00
HardwareCapabilities.cs Vulkan: Support list topology primitive restart (#4483) 2023-02-26 19:19:00 -03:00
HashTableSlim.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
HelperShader.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
IdList.cs Minor code formatting (#4498) 2023-03-04 14:43:08 +01:00
IndexBufferPattern.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
IndexBufferState.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
MemoryAllocation.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
MemoryAllocator.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
MemoryAllocatorBlockList.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
MultiFenceHolder.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
NativeArray.cs Add Support for Post Processing Effects (#3616) 2023-02-27 18:11:55 -03:00
PersistentFlushBuffer.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
PipelineBase.cs Vulkan: Insert barriers before clears (#4596) 2023-03-26 12:51:02 +02:00
PipelineConverter.cs vulkan: Respect VK_KHR_portability_subset vertex stride alignment (#4419) 2023-02-15 08:41:48 +00:00
PipelineDynamicState.cs vulkan: Do not call vkCmdSetViewport when viewportCount is 0 (#4406) 2023-02-13 20:32:20 +00:00
PipelineFull.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
PipelineHelperShader.cs Implement non-MS to MS copies with draws (#3958) 2022-12-04 15:07:11 -03:00
PipelineLayoutCache.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
PipelineLayoutCacheEntry.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
PipelineLayoutFactory.cs Fix Redundant Qualifer Warnings (#4091) 2022-12-10 21:21:13 +01:00
PipelineState.cs Vulkan: Support list topology primitive restart (#4483) 2023-02-26 19:19:00 -03:00
PipelineUid.cs Minor improvement to Vulkan pipeline state and bindings management (#3829) 2022-11-10 13:38:38 -03:00
Ryujinx.Graphics.Vulkan.csproj misc: Some dependencies cleanup (#4507) 2023-03-12 03:24:11 +01:00
SamplerHolder.cs Vulkan: Fix sampler custom border color (#3751) 2022-10-10 08:35:44 +02:00
SemaphoreHolder.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
Shader.cs Avoid allocating unmanaged string per shader (#3730) 2022-10-02 10:59:34 +02:00
ShaderCollection.cs chore: Update Silk.NET to 2.16.0 (#3953) 2022-12-01 19:11:56 +01:00
SpecInfo.cs Misc performance tweaks (#4509) 2023-03-11 17:05:48 -03:00
StagingBuffer.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
SyncManager.cs Vulkan: Don't flush commands when creating most sync (#4087) 2022-12-29 15:39:04 +01:00
TextureBuffer.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
TextureCopy.cs Implement non-MS to MS copies with draws (#3958) 2022-12-04 15:07:11 -03:00
TextureStorage.cs Vulkan: Insert barriers before clears (#4596) 2023-03-26 12:51:02 +02:00
TextureView.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
Vendor.cs Relax Vulkan requirements (#4282) 2023-01-26 18:34:35 -03:00
VertexBufferState.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
VulkanConfiguration.cs Use RGBA16 vertex format if RGB16 is not supported on Vulkan (#3552) 2022-08-20 16:20:27 -03:00
VulkanException.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
VulkanInitialization.cs Vulkan: Support list topology primitive restart (#4483) 2023-02-26 19:19:00 -03:00
VulkanRenderer.cs Vulkan: Migrate buffers between memory types to improve GPU performance (#4540) 2023-03-19 17:56:48 -03:00
Window.cs Misc performance tweaks (#4509) 2023-03-11 17:05:48 -03:00
WindowBase.cs Add Support for Post Processing Effects (#3616) 2023-02-27 18:11:55 -03:00