@@ -343,13 +343,15 @@ struct SLayerContext
343
343
}
344
344
345
345
// Required for OpenCL 2.2 devices.
346
- if (deviceVersion == CL_MAKE_VERSION (2 , 2 , 0 )) {
346
+ if (deviceILVersion.find (" SPIR-V_1.1" ) != std::string::npos &&
347
+ deviceVersion == CL_MAKE_VERSION (2 , 2 , 0 )) {
347
348
deviceInfo.Capabilities .push_back (spv::CapabilityPipeStorage);
348
349
}
349
350
350
351
// Required for OpenCL 2.2, or OpenCL 3.0 devices supporting sub-groups.
351
- if (deviceVersion == CL_MAKE_VERSION (2 , 2 , 0 ) ||
352
- (deviceVersion >= CL_MAKE_VERSION (3 , 0 , 0 ) && deviceMaxNumSubGroups != 0 )) {
352
+ if (deviceILVersion.find (" SPIR-V_1.1" ) != std::string::npos &&
353
+ (deviceVersion == CL_MAKE_VERSION (2 , 2 , 0 ) ||
354
+ (deviceVersion >= CL_MAKE_VERSION (3 , 0 , 0 ) && deviceMaxNumSubGroups != 0 ))) {
353
355
deviceInfo.Capabilities .push_back (spv::CapabilitySubgroupDispatch);
354
356
}
355
357
@@ -497,7 +499,7 @@ struct SLayerContext
497
499
// Required for devices supporting cl_ext_float_atomics and fp64 atomic adds.
498
500
if (checkStringForExtension (deviceExtensions.c_str (), " cl_ext_float_atomics" ) &&
499
501
(deviceFp64AtomicCapabilities & (CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT | CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT))) {
500
- deviceInfo.Capabilities .push_back (spv::CapabilityAtomicFloat64MinMaxEXT );
502
+ deviceInfo.Capabilities .push_back (spv::CapabilityAtomicFloat64AddEXT );
501
503
}
502
504
503
505
// Required for devices supporting cl_ext_float_atomics and fp64 atomic min and max.
0 commit comments