diff --git a/src/api.cpp b/src/api.cpp index 5d609ca4..48c37ad7 100644 --- a/src/api.cpp +++ b/src/api.cpp @@ -741,11 +741,15 @@ cl_int CLVK_API_CALL clGetDeviceInfo(cl_device_id dev, case CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS: case CL_DEVICE_PIPE_SUPPORT: case CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT: - case CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT: val_bool = CL_FALSE; copy_ptr = &val_bool; size_ret = sizeof(val_bool); break; + case CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT: + val_bool = CL_TRUE; + copy_ptr = &val_bool; + size_ret = sizeof(val_bool); + break; case CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES: val_dev_enqueue_caps = 0; copy_ptr = &val_dev_enqueue_caps; diff --git a/src/device.cpp b/src/device.cpp index d1dfbc03..69788715 100644 --- a/src/device.cpp +++ b/src/device.cpp @@ -551,6 +551,8 @@ void cvk_device::build_extension_ils_list() { MAKE_NAME_VERSION(3, 0, 0, "__opencl_c_images"), MAKE_NAME_VERSION(3, 0, 0, "__opencl_c_read_write_images"), MAKE_NAME_VERSION(3, 0, 0, "__opencl_c_3d_image_writes"), + MAKE_NAME_VERSION(3, 0, 0, "__opencl_c_generic_address_space"), + MAKE_NAME_VERSION(3, 0, 0, "__opencl_c_program_scope_global_variables"), }; if (supports_atomic_order_acq_rel()) { m_opencl_c_features.push_back( diff --git a/src/program.cpp b/src/program.cpp index 49029ed6..2fa06764 100644 --- a/src/program.cpp +++ b/src/program.cpp @@ -843,6 +843,7 @@ std::string cvk_program::prepare_build_options(const cvk_device* device) const { {"-cl-strict-aliasing", ""}, // clspv require entrypoint inlining for OpenCL 2.0 {"-cl-std=CL2.0", "-cl-std=CL2.0 -inline-entry-points"}, + {"-cl-std=CL3.0", "-cl-std=CL3.0 -inline-entry-points"}, {"-create-library", ""}, };