Fix draw outside of render pass and missing capability

This commit is contained in:
gdk 2022-01-28 18:43:28 -03:00 committed by riperiperi
parent 5a3695c968
commit 36b3ab0741
2 changed files with 12 additions and 5 deletions

View file

@ -231,8 +231,8 @@ namespace Ryujinx.Graphics.Vulkan
return; return;
} }
BeginRenderPass();
RecreatePipelineIfNeeded(PipelineBindPoint.Graphics); RecreatePipelineIfNeeded(PipelineBindPoint.Graphics);
BeginRenderPass();
ResumeTransformFeedbackInternal(); ResumeTransformFeedbackInternal();
DrawCount++; DrawCount++;
@ -260,8 +260,8 @@ namespace Ryujinx.Graphics.Vulkan
return; return;
} }
BeginRenderPass();
RecreatePipelineIfNeeded(PipelineBindPoint.Graphics); RecreatePipelineIfNeeded(PipelineBindPoint.Graphics);
BeginRenderPass();
ResumeTransformFeedbackInternal(); ResumeTransformFeedbackInternal();
DrawCount++; DrawCount++;
@ -348,8 +348,8 @@ namespace Ryujinx.Graphics.Vulkan
return; return;
} }
BeginRenderPass();
RecreatePipelineIfNeeded(PipelineBindPoint.Graphics); RecreatePipelineIfNeeded(PipelineBindPoint.Graphics);
BeginRenderPass();
ResumeTransformFeedbackInternal(); ResumeTransformFeedbackInternal();
DrawCount++; DrawCount++;
@ -378,8 +378,8 @@ namespace Ryujinx.Graphics.Vulkan
return; return;
} }
BeginRenderPass();
RecreatePipelineIfNeeded(PipelineBindPoint.Graphics); RecreatePipelineIfNeeded(PipelineBindPoint.Graphics);
BeginRenderPass();
ResumeTransformFeedbackInternal(); ResumeTransformFeedbackInternal();
DrawCount++; DrawCount++;

View file

@ -374,10 +374,17 @@ namespace Ryujinx.Graphics.Vulkan
ExtendedDynamicState = supportedExtensions.Contains(ExtExtendedDynamicState.ExtensionName) ExtendedDynamicState = supportedExtensions.Contains(ExtExtendedDynamicState.ExtensionName)
}; };
var featuresVk11 = new PhysicalDeviceVulkan11Features()
{
SType = StructureType.PhysicalDeviceVulkan11Features,
PNext = &featuresExtendedDynamicState,
ShaderDrawParameters = true
};
var featuresVk12 = new PhysicalDeviceVulkan12Features() var featuresVk12 = new PhysicalDeviceVulkan12Features()
{ {
SType = StructureType.PhysicalDeviceVulkan12Features, SType = StructureType.PhysicalDeviceVulkan12Features,
PNext = &featuresExtendedDynamicState, PNext = &featuresVk11,
DrawIndirectCount = supportedExtensions.Contains(KhrDrawIndirectCount.ExtensionName) DrawIndirectCount = supportedExtensions.Contains(KhrDrawIndirectCount.ExtensionName)
}; };