mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-11-24 16:54:15 +00:00
Origin of crash?
This commit is contained in:
parent
f15b6c85f6
commit
af9de85a1b
3 changed files with 9 additions and 0 deletions
|
@ -54,6 +54,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
public readonly uint VertexBufferAlignment;
|
||||
public readonly uint SubTexelPrecisionBits;
|
||||
public readonly ulong MinResourceAlignment;
|
||||
public readonly uint MaxTessellationPatchSize;
|
||||
|
||||
public HardwareCapabilities(
|
||||
bool supportsIndexTypeUint8,
|
||||
|
@ -72,6 +73,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
bool supportsConditionalRendering,
|
||||
bool supportsExtendedDynamicState,
|
||||
PhysicalDeviceExtendedDynamicState2FeaturesEXT supportsExtendedDynamicState2,
|
||||
uint maxTessellationPatchSize,
|
||||
bool supportsMultiView,
|
||||
bool supportsNullDescriptors,
|
||||
bool supportsPushDescriptors,
|
||||
|
@ -111,6 +113,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
SupportsConditionalRendering = supportsConditionalRendering;
|
||||
SupportsExtendedDynamicState = supportsExtendedDynamicState;
|
||||
SupportsExtendedDynamicState2 = supportsExtendedDynamicState2;
|
||||
MaxTessellationPatchSize = maxTessellationPatchSize;
|
||||
SupportsMultiView = supportsMultiView;
|
||||
SupportsNullDescriptors = supportsNullDescriptors;
|
||||
SupportsPushDescriptors = supportsPushDescriptors;
|
||||
|
|
|
@ -992,6 +992,11 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
|
||||
public void SetPatchParameters(int vertices, ReadOnlySpan<float> defaultOuterLevel, ReadOnlySpan<float> defaultInnerLevel)
|
||||
{
|
||||
if (vertices == 0 || vertices > Gd.Capabilities.MaxTessellationPatchSize)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (Gd.Capabilities.SupportsExtendedDynamicState2.ExtendedDynamicState2PatchControlPoints)
|
||||
{
|
||||
DynamicState.SetPatchControlPoints((uint)vertices);
|
||||
|
|
|
@ -404,6 +404,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
_physicalDevice.IsDeviceExtensionPresent(ExtConditionalRendering.ExtensionName),
|
||||
_physicalDevice.IsDeviceExtensionPresent(ExtExtendedDynamicState.ExtensionName),
|
||||
featuresExtendedDynamicState2,
|
||||
_physicalDevice.PhysicalDeviceProperties.Limits.MaxTessellationPatchSize,
|
||||
features2.Features.MultiViewport && !(IsMoltenVk && Vendor == Vendor.Amd), // Workaround for AMD on MoltenVK issue
|
||||
featuresRobustness2.NullDescriptor || IsMoltenVk,
|
||||
supportsPushDescriptors && !IsMoltenVk,
|
||||
|
|
Loading…
Reference in a new issue