[PATCH v2 0/5] MR2010: wined3d: More Vulkan feature checks.
-- v2: wined3d: Disable 64-bit integer support. wined3d: Require shader cull distance support to create a feature level 10.0 device. wined3d: Require shader clip distance support to create a feature level 10.0 device. wined3d: Require gather offset support to create a feature level 10.1 device. wined3d: Require fragment shader image stores and atomics to create a feature level 10.0 device. https://gitlab.winehq.org/wine/wine/-/merge_requests/2010
From: Zebediah Figura <zfigura(a)codeweavers.com> --- dlls/wined3d/adapter_vk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index 713aaec9e39..f82bd5bc81c 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -2280,6 +2280,7 @@ static bool feature_level_11_supported(const struct wined3d_physical_device_info return shader_model >= 5 && info->features2.features.multiDrawIndirect && info->features2.features.drawIndirectFirstInstance + && info->features2.features.fragmentStoresAndAtomics && info->features2.features.tessellationShader; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2010
From: Zebediah Figura <zfigura(a)codeweavers.com> --- dlls/wined3d/adapter_vk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index f82bd5bc81c..6b52d6a494c 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -2272,7 +2272,8 @@ static bool feature_level_10_supported(const struct wined3d_physical_device_info static bool feature_level_10_1_supported(const struct wined3d_physical_device_info *info, unsigned int shader_model) { - return info->features2.features.imageCubeArray; + return info->features2.features.imageCubeArray + && info->features2.features.shaderImageGatherExtended; } static bool feature_level_11_supported(const struct wined3d_physical_device_info *info, unsigned int shader_model) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2010
From: Zebediah Figura <zfigura(a)codeweavers.com> --- dlls/wined3d/adapter_vk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index 6b52d6a494c..b3c3cc6958b 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -2266,6 +2266,7 @@ static bool feature_level_10_supported(const struct wined3d_physical_device_info && info->features2.features.depthClamp && info->features2.features.depthBiasClamp && info->features2.features.pipelineStatisticsQuery + && info->features2.features.shaderClipDistance && info->vertex_divisor_features.vertexAttributeInstanceRateDivisor && info->vertex_divisor_features.vertexAttributeInstanceRateZeroDivisor; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2010
From: Zebediah Figura <zfigura(a)codeweavers.com> --- dlls/wined3d/adapter_vk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index b3c3cc6958b..d637b9d9a4f 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -2267,6 +2267,7 @@ static bool feature_level_10_supported(const struct wined3d_physical_device_info && info->features2.features.depthBiasClamp && info->features2.features.pipelineStatisticsQuery && info->features2.features.shaderClipDistance + && info->features2.features.shaderCullDistance && info->vertex_divisor_features.vertexAttributeInstanceRateDivisor && info->vertex_divisor_features.vertexAttributeInstanceRateZeroDivisor; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2010
From: Zebediah Figura <zfigura(a)codeweavers.com> --- dlls/wined3d/adapter_vk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index d637b9d9a4f..40afb83e114 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -308,6 +308,7 @@ static void wined3d_disable_vulkan_features(struct wined3d_physical_device_info features->shaderSampledImageArrayDynamicIndexing = VK_FALSE; features->shaderStorageBufferArrayDynamicIndexing = VK_FALSE; features->shaderStorageImageArrayDynamicIndexing = VK_FALSE; + features->shaderInt64 = VK_FALSE; features->shaderInt16 = VK_FALSE; features->shaderResourceResidency = VK_FALSE; features->shaderResourceMinLod = VK_FALSE; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2010
On Wed Jan 25 18:10:08 2023 +0000, Zebediah Figura wrote:
According to my reading, shaderImageGatherExtended is required to use any offsets at all, even constant offsets less than 32: "shaderImageGatherExtended specifies whether the extended set of image gather instructions are available in shader code. If this feature is not enabled, the OpImage*Gather instructions do not support the Offset and ConstOffsets operands." But `OpImage*Gather` also accepts `ConstOffset` (no 's'). That feature flag isn't needed to use the `ConstOffset` operand with `OpImage*Gather`.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2010#note_21853
participants (3)
-
Chip Davis (@cdavis5e) -
Zebediah Figura -
Zebediah Figura (@zfigura)