aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/PipelineState.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2023-08-16 21:31:07 -0300
committerGitHub <noreply@github.com>2023-08-16 21:31:07 -0300
commit6ed613a6e6a66d57d2fdb045d926e42dfcdd3206 (patch)
tree3dbd8e34edf12925f49a0a6c1229e3565b5cfd4f /src/Ryujinx.Graphics.Vulkan/PipelineState.cs
parent64079c034c1c3a18133542d6ac745490149d8043 (diff)
Fix vote and shuffle shader instructions on AMD GPUs (#5540)1.1.995
* Move shuffle handling out of the backend to a transform pass * Handle subgroup sizes higher than 32 * Stop using the subgroup size control extension * Make GenerateShuffleFunction static * Shader cache version bump
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/PipelineState.cs')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/PipelineState.cs23
1 files changed, 0 insertions, 23 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/PipelineState.cs b/src/Ryujinx.Graphics.Vulkan/PipelineState.cs
index cc9af5b6..5a30cff8 100644
--- a/src/Ryujinx.Graphics.Vulkan/PipelineState.cs
+++ b/src/Ryujinx.Graphics.Vulkan/PipelineState.cs
@@ -352,11 +352,6 @@ namespace Ryujinx.Graphics.Vulkan
return pipeline;
}
- if (gd.Capabilities.SupportsSubgroupSizeControl)
- {
- UpdateStageRequiredSubgroupSizes(gd, 1);
- }
-
var pipelineCreateInfo = new ComputePipelineCreateInfo
{
SType = StructureType.ComputePipelineCreateInfo,
@@ -616,11 +611,6 @@ namespace Ryujinx.Graphics.Vulkan
PDynamicStates = dynamicStates,
};
- if (gd.Capabilities.SupportsSubgroupSizeControl)
- {
- UpdateStageRequiredSubgroupSizes(gd, (int)StagesCount);
- }
-
var pipelineCreateInfo = new GraphicsPipelineCreateInfo
{
SType = StructureType.GraphicsPipelineCreateInfo,
@@ -659,19 +649,6 @@ namespace Ryujinx.Graphics.Vulkan
return pipeline;
}
- private readonly unsafe void UpdateStageRequiredSubgroupSizes(VulkanRenderer gd, int count)
- {
- for (int index = 0; index < count; index++)
- {
- bool canUseExplicitSubgroupSize =
- (gd.Capabilities.RequiredSubgroupSizeStages & Stages[index].Stage) != 0 &&
- gd.Capabilities.MinSubgroupSize <= RequiredSubgroupSize &&
- gd.Capabilities.MaxSubgroupSize >= RequiredSubgroupSize;
-
- Stages[index].PNext = canUseExplicitSubgroupSize ? StageRequiredSubgroupSizes.Pointer + index : null;
- }
- }
-
private void UpdateVertexAttributeDescriptions(VulkanRenderer gd)
{
// Vertex attributes exceeding the stride are invalid.