diff options
author | gdkchan <gab.dark.100@gmail.com> | 2022-09-10 10:20:23 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-10 13:20:23 +0000 |
commit | 619ac86bd03fcafdcae19f8fc5ad7d90780c194b (patch) | |
tree | 81638c9e0d617d7139c9924d9a5de3fa4bf1c33e /Ryujinx.Graphics.Vulkan/VulkanRenderer.cs | |
parent | 7a1ab71c7376bcc3d043c09c9ac1172637955e54 (diff) |
Do not output ViewportIndex on SPIR-V if GPU does not support it (#3644)1.1.259
* Do not output ViewportIndex on SPIR-V if GPU does not support it
* Bump shader cache version
Diffstat (limited to 'Ryujinx.Graphics.Vulkan/VulkanRenderer.cs')
-rw-r--r-- | Ryujinx.Graphics.Vulkan/VulkanRenderer.cs | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs b/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs index bacb74cc..5abe1be1 100644 --- a/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs +++ b/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs @@ -380,7 +380,7 @@ namespace Ryujinx.Graphics.Vulkan return BufferManager.GetData(buffer, offset, size); } - public Capabilities GetCapabilities() + public unsafe Capabilities GetCapabilities() { FormatFeatureFlags compressedFormatFeatureFlags = FormatFeatureFlags.FormatFeatureSampledImageBit | @@ -409,7 +409,19 @@ namespace Ryujinx.Graphics.Vulkan GAL.Format.Bc7Srgb, GAL.Format.Bc7Unorm); - Api.GetPhysicalDeviceFeatures(_physicalDevice, out var features); + + PhysicalDeviceVulkan12Features featuresVk12 = new PhysicalDeviceVulkan12Features() + { + SType = StructureType.PhysicalDeviceVulkan12Features + }; + + PhysicalDeviceFeatures2 features2 = new PhysicalDeviceFeatures2() + { + SType = StructureType.PhysicalDeviceFeatures2, + PNext = &featuresVk12 + }; + + Api.GetPhysicalDeviceFeatures2(_physicalDevice, &features2); Api.GetPhysicalDeviceProperties(_physicalDevice, out var properties); var limits = properties.Limits; @@ -419,7 +431,7 @@ namespace Ryujinx.Graphics.Vulkan GpuVendor, hasFrontFacingBug: IsIntelWindows, hasVectorIndexingBug: Vendor == Vendor.Qualcomm, - supportsAstcCompression: features.TextureCompressionAstcLdr, + supportsAstcCompression: features2.Features.TextureCompressionAstcLdr, supportsBc123Compression: supportsBc123CompressionFormat, supportsBc45Compression: supportsBc45CompressionFormat, supportsBc67Compression: supportsBc67CompressionFormat, @@ -429,12 +441,13 @@ namespace Ryujinx.Graphics.Vulkan supportsFragmentShaderInterlock: Capabilities.SupportsFragmentShaderInterlock, supportsFragmentShaderOrderingIntel: false, supportsGeometryShaderPassthrough: Capabilities.SupportsGeometryShaderPassthrough, - supportsImageLoadFormatted: features.ShaderStorageImageReadWithoutFormat, + supportsImageLoadFormatted: features2.Features.ShaderStorageImageReadWithoutFormat, supportsMismatchingViewFormat: true, supportsCubemapView: !IsAmdGcn, supportsNonConstantTextureOffset: false, supportsShaderBallot: false, supportsTextureShadowLod: false, + supportsViewportIndex: featuresVk12.ShaderOutputViewportIndex, supportsViewportSwizzle: false, supportsIndirectParameters: Capabilities.SupportsIndirectParameters, maximumUniformBuffersPerStage: Constants.MaxUniformBuffersPerStage, |