C Specification

To query OpenCL devices corresponding to a Direct3D 11 device or a DXGI device, call the function

// Provided by cl_khr_d3d11_sharing
cl_int clGetDeviceIDsFromD3D11KHR(
    cl_platform_id platform,
    cl_d3d11_device_source_khr d3d_device_source,
    void* d3d_object,
    cl_d3d11_device_set_khr d3d_device_set,
    cl_uint num_entries,
    cl_device_id* devices,
    cl_uint* num_devices);
clGetDeviceIDsFromD3D11KHR is provided by the cl_khr_d3d11_sharing extension.

Parameters

  • platform refers to the platform ID returned by clGetPlatformIDs.

  • d3d_device_source specifies the type of d3d_object, and must be one of the values shown in the Direct3D 11 Object Types table.

  • d3d_object specifies the object whose corresponding OpenCL devices are being queried. The type of d3d_object must be as specified in the Direct3D 11 Object Types table.

  • d3d_device_set specifies the set of devices to return, and must be one of the values shown in the Direct3D 11 Device Sets table.

  • num_entries is the number of cl_device_id entries that can be added to devices. If devices is not NULL then num_entries must be greater than zero.

  • devices returns a list of OpenCL devices found. The cl_device_id values returned in devices can be used to identify a specific OpenCL device. If devices is NULL, this argument is ignored. The number of OpenCL devices returned is the minimum of the value specified by num_entries and the number of OpenCL devices corresponding to d3d_object.

  • num_devices returns the number of OpenCL devices available that correspond to d3d_object. If num_devices is NULL, this argument is ignored.

Description

Table 1. Direct3D 11 object types that may be used by clGetDeviceIDsFromD3D11KHR
cl_d3d11_device_source_khr Type of d3d_object

CL_D3D11_DEVICE_KHR

provided by the cl_khr_d3d11_sharing extension.

ID3D11Device *

CL_D3D11_DXGI_ADAPTER_KHR

provided by the cl_khr_d3d11_sharing extension.

IDXGIAdapter *

Table 2. Sets of devices queriable using clGetDeviceIDsFromD3D11KHR
cl_d3d11_device_set_khr Devices returned in devices

CL_PREFERRED_DEVICES_FOR_D3D11_KHR

provided by the cl_khr_d3d11_sharing extension.

The preferred OpenCL devices associated with the specified Direct3D object.

CL_ALL_DEVICES_FOR_D3D11_KHR

provided by the cl_khr_d3d11_sharing extension.

All OpenCL devices which may interoperate with the specified Direct3D object. Performance of sharing data on these devices may be considerably less than on the preferred devices.

clGetDeviceIDsFromD3D11KHR returns CL_SUCCESS if the function is executed successfully. Otherwise it may return

  • CL_INVALID_PLATFORM if platform is not a valid platform.

  • CL_INVALID_VALUE if d3d_device_source is not a valid value, d3d_device_set is not a valid value, num_entries is equal to zero and devices is not NULL, or if both num_devices and devices are NULL.

  • CL_DEVICE_NOT_FOUND if no OpenCL devices that correspond to d3d_object were found.

See Also

Document Notes

For more information, see the OpenCL Specification

This page is extracted from the OpenCL Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0