diff --git a/.pick_status.json b/.pick_status.json index ca4ed28ba4b..6660c01787f 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2083,7 +2083,7 @@ "description": "anv: only advertise 64b atomic floats if 64b floats are supported", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index cbb77b32d84..d8a43e22107 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1652,7 +1652,8 @@ void anv_GetPhysicalDeviceFeatures2( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *features = (void *)ext; features->shaderBufferFloat32Atomics = true; features->shaderBufferFloat32AtomicAdd = pdevice->info.has_lsc; - features->shaderBufferFloat64Atomics = pdevice->info.has_lsc; + features->shaderBufferFloat64Atomics = + pdevice->info.has_64bit_float && pdevice->info.has_lsc; features->shaderBufferFloat64AtomicAdd = false; features->shaderSharedFloat32Atomics = true; features->shaderSharedFloat32AtomicAdd = false; @@ -1671,7 +1672,8 @@ void anv_GetPhysicalDeviceFeatures2( features->shaderBufferFloat16AtomicAdd = false; features->shaderBufferFloat16AtomicMinMax = false; features->shaderBufferFloat32AtomicMinMax = pdevice->info.ver >= 9; - features->shaderBufferFloat64AtomicMinMax = pdevice->info.has_lsc; + features->shaderBufferFloat64AtomicMinMax = + pdevice->info.has_64bit_float && pdevice->info.has_lsc; features->shaderSharedFloat16Atomics = false; features->shaderSharedFloat16AtomicAdd = false; features->shaderSharedFloat16AtomicMinMax = false;