aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/ResourceBindingSegment.cs4
-rw-r--r--src/Ryujinx.Graphics.Vulkan/ResourceLayoutBuilder.cs12
-rw-r--r--src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs21
3 files changed, 7 insertions, 30 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/ResourceBindingSegment.cs b/src/Ryujinx.Graphics.Vulkan/ResourceBindingSegment.cs
index 9de46e61..8902f13e 100644
--- a/src/Ryujinx.Graphics.Vulkan/ResourceBindingSegment.cs
+++ b/src/Ryujinx.Graphics.Vulkan/ResourceBindingSegment.cs
@@ -8,15 +8,13 @@ namespace Ryujinx.Graphics.Vulkan
public readonly int Count;
public readonly ResourceType Type;
public readonly ResourceStages Stages;
- public readonly ResourceAccess Access;
- public ResourceBindingSegment(int binding, int count, ResourceType type, ResourceStages stages, ResourceAccess access)
+ public ResourceBindingSegment(int binding, int count, ResourceType type, ResourceStages stages)
{
Binding = binding;
Count = count;
Type = type;
Stages = stages;
- Access = access;
}
}
}
diff --git a/src/Ryujinx.Graphics.Vulkan/ResourceLayoutBuilder.cs b/src/Ryujinx.Graphics.Vulkan/ResourceLayoutBuilder.cs
index 0b87d800..f5ac3968 100644
--- a/src/Ryujinx.Graphics.Vulkan/ResourceLayoutBuilder.cs
+++ b/src/Ryujinx.Graphics.Vulkan/ResourceLayoutBuilder.cs
@@ -34,22 +34,12 @@ namespace Ryujinx.Graphics.Vulkan
_ => throw new ArgumentException($"Invalid resource type \"{type}\"."),
};
- ResourceAccess access = IsReadOnlyType(type) ? ResourceAccess.Read : ResourceAccess.ReadWrite;
-
_resourceDescriptors[setIndex].Add(new ResourceDescriptor(binding, 1, type, stages));
- _resourceUsages[setIndex].Add(new ResourceUsage(binding, type, stages, access));
+ _resourceUsages[setIndex].Add(new ResourceUsage(binding, type, stages));
return this;
}
- private static bool IsReadOnlyType(ResourceType type)
- {
- return type == ResourceType.UniformBuffer ||
- type == ResourceType.Sampler ||
- type == ResourceType.TextureAndSampler ||
- type == ResourceType.BufferTexture;
- }
-
public ResourceLayout Build()
{
var descriptors = new ResourceDescriptorCollection[TotalSets];
diff --git a/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs b/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
index 1e56d1e8..346fd916 100644
--- a/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
+++ b/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
@@ -162,8 +162,7 @@ namespace Ryujinx.Graphics.Vulkan
currentDescriptor.Binding,
currentCount,
currentDescriptor.Type,
- currentDescriptor.Stages,
- ResourceAccess.ReadWrite));
+ currentDescriptor.Stages));
}
currentDescriptor = descriptor;
@@ -181,8 +180,7 @@ namespace Ryujinx.Graphics.Vulkan
currentDescriptor.Binding,
currentCount,
currentDescriptor.Type,
- currentDescriptor.Stages,
- ResourceAccess.ReadWrite));
+ currentDescriptor.Stages));
}
segments[setIndex] = currentSegments.ToArray();
@@ -206,16 +204,9 @@ namespace Ryujinx.Graphics.Vulkan
{
ResourceUsage usage = setUsages[setIndex].Usages[index];
- // If the resource is not accessed, we don't need to update it.
- if (usage.Access == ResourceAccess.None)
- {
- continue;
- }
-
if (currentUsage.Binding + currentCount != usage.Binding ||
currentUsage.Type != usage.Type ||
- currentUsage.Stages != usage.Stages ||
- currentUsage.Access != usage.Access)
+ currentUsage.Stages != usage.Stages)
{
if (currentCount != 0)
{
@@ -223,8 +214,7 @@ namespace Ryujinx.Graphics.Vulkan
currentUsage.Binding,
currentCount,
currentUsage.Type,
- currentUsage.Stages,
- currentUsage.Access));
+ currentUsage.Stages));
}
currentUsage = usage;
@@ -242,8 +232,7 @@ namespace Ryujinx.Graphics.Vulkan
currentUsage.Binding,
currentCount,
currentUsage.Type,
- currentUsage.Stages,
- currentUsage.Access));
+ currentUsage.Stages));
}
segments[setIndex] = currentSegments.ToArray();