From: Zebediah Figura zfigura@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..5e218b7961a 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.fragmentStoresAndAtomics && info->vertex_divisor_features.vertexAttributeInstanceRateDivisor && info->vertex_divisor_features.vertexAttributeInstanceRateZeroDivisor; }
From: Zebediah Figura zfigura@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 5e218b7961a..587bc0ddd4d 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -2273,7 +2273,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)
From: Zebediah Figura zfigura@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 587bc0ddd4d..cd9a855fd3d 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.fragmentStoresAndAtomics + && info->features2.features.shaderClipDistance && info->vertex_divisor_features.vertexAttributeInstanceRateDivisor && info->vertex_divisor_features.vertexAttributeInstanceRateZeroDivisor; }
From: Zebediah Figura zfigura@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 f255663ceb6..7d954f26555 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;
From: Zebediah Figura zfigura@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 cd9a855fd3d..f255663ceb6 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -2268,6 +2268,7 @@ static bool feature_level_10_supported(const struct wined3d_physical_device_info && info->features2.features.pipelineStatisticsQuery && info->features2.features.fragmentStoresAndAtomics && info->features2.features.shaderClipDistance + && info->features2.features.shaderCullDistance && info->vertex_divisor_features.vertexAttributeInstanceRateDivisor && info->vertex_divisor_features.vertexAttributeInstanceRateZeroDivisor; }
This merge request was approved by Jan Sikorski.
Chip Davis (@cdavis5e) commented about dlls/wined3d/adapter_vk.c:
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;
Wait, I thought only level 11 required non-constant and extended [-32, 31] offset support. `gather4_po` wasn't introduced until D3D11. Is it possible to use it with a level 10.1 device?
@@ -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.fragmentStoresAndAtomics && info->vertex_divisor_features.vertexAttributeInstanceRateDivisor && info->vertex_divisor_features.vertexAttributeInstanceRateZeroDivisor;
That doesn't seem quite right. Shader model 4 doesn't support UAVs unless "ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x" from D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS is set. We currently set that when we have at least WINED3D_FEATURE_LEVEL_11.
On Wed Jan 25 08:51:12 2023 +0000, Chip Davis wrote:
Wait, I thought only level 11 required non-constant and extended [-32, 31] offset support. `gather4_po` wasn't introduced until D3D11. Is it possible to use it with a level 10.1 device?
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."
That doesn't seem quite right. Shader model 4 doesn't support UAVs unless "ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x" from D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS is set. We currently set that when we have at least WINED3D_FEATURE_LEVEL_11.
Thanks, sent a v2 that makes this an 11.0 feature instead.