xref: /aosp_15_r20/external/ComputeLibrary/include/CL/cl_d3d10.h (revision c217d954acce2dbc11938adb493fc0abd69584f3)
1*c217d954SCole Faust /*******************************************************************************
2*c217d954SCole Faust  * Copyright (c) 2008-2020 The Khronos Group Inc.
3*c217d954SCole Faust  *
4*c217d954SCole Faust  * Licensed under the Apache License, Version 2.0 (the "License");
5*c217d954SCole Faust  * you may not use this file except in compliance with the License.
6*c217d954SCole Faust  * You may obtain a copy of the License at
7*c217d954SCole Faust  *
8*c217d954SCole Faust  *    http://www.apache.org/licenses/LICENSE-2.0
9*c217d954SCole Faust  *
10*c217d954SCole Faust  * Unless required by applicable law or agreed to in writing, software
11*c217d954SCole Faust  * distributed under the License is distributed on an "AS IS" BASIS,
12*c217d954SCole Faust  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*c217d954SCole Faust  * See the License for the specific language governing permissions and
14*c217d954SCole Faust  * limitations under the License.
15*c217d954SCole Faust  ******************************************************************************/
16*c217d954SCole Faust 
17*c217d954SCole Faust #ifndef __OPENCL_CL_D3D10_H
18*c217d954SCole Faust #define __OPENCL_CL_D3D10_H
19*c217d954SCole Faust 
20*c217d954SCole Faust #if defined(_MSC_VER)
21*c217d954SCole Faust #if _MSC_VER >=1500
22*c217d954SCole Faust #pragma warning( push )
23*c217d954SCole Faust #pragma warning( disable : 4201 )
24*c217d954SCole Faust #endif
25*c217d954SCole Faust #endif
26*c217d954SCole Faust #include <d3d10.h>
27*c217d954SCole Faust #if defined(_MSC_VER)
28*c217d954SCole Faust #if _MSC_VER >=1500
29*c217d954SCole Faust #pragma warning( pop )
30*c217d954SCole Faust #endif
31*c217d954SCole Faust #endif
32*c217d954SCole Faust #include <CL/cl.h>
33*c217d954SCole Faust #include <CL/cl_platform.h>
34*c217d954SCole Faust 
35*c217d954SCole Faust #ifdef __cplusplus
36*c217d954SCole Faust extern "C" {
37*c217d954SCole Faust #endif
38*c217d954SCole Faust 
39*c217d954SCole Faust /******************************************************************************
40*c217d954SCole Faust  * cl_khr_d3d10_sharing                                                       */
41*c217d954SCole Faust #define cl_khr_d3d10_sharing 1
42*c217d954SCole Faust 
43*c217d954SCole Faust typedef cl_uint cl_d3d10_device_source_khr;
44*c217d954SCole Faust typedef cl_uint cl_d3d10_device_set_khr;
45*c217d954SCole Faust 
46*c217d954SCole Faust /******************************************************************************/
47*c217d954SCole Faust 
48*c217d954SCole Faust /* Error Codes */
49*c217d954SCole Faust #define CL_INVALID_D3D10_DEVICE_KHR                  -1002
50*c217d954SCole Faust #define CL_INVALID_D3D10_RESOURCE_KHR                -1003
51*c217d954SCole Faust #define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR       -1004
52*c217d954SCole Faust #define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR           -1005
53*c217d954SCole Faust 
54*c217d954SCole Faust /* cl_d3d10_device_source_nv */
55*c217d954SCole Faust #define CL_D3D10_DEVICE_KHR                          0x4010
56*c217d954SCole Faust #define CL_D3D10_DXGI_ADAPTER_KHR                    0x4011
57*c217d954SCole Faust 
58*c217d954SCole Faust /* cl_d3d10_device_set_nv */
59*c217d954SCole Faust #define CL_PREFERRED_DEVICES_FOR_D3D10_KHR           0x4012
60*c217d954SCole Faust #define CL_ALL_DEVICES_FOR_D3D10_KHR                 0x4013
61*c217d954SCole Faust 
62*c217d954SCole Faust /* cl_context_info */
63*c217d954SCole Faust #define CL_CONTEXT_D3D10_DEVICE_KHR                  0x4014
64*c217d954SCole Faust #define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C
65*c217d954SCole Faust 
66*c217d954SCole Faust /* cl_mem_info */
67*c217d954SCole Faust #define CL_MEM_D3D10_RESOURCE_KHR                    0x4015
68*c217d954SCole Faust 
69*c217d954SCole Faust /* cl_image_info */
70*c217d954SCole Faust #define CL_IMAGE_D3D10_SUBRESOURCE_KHR               0x4016
71*c217d954SCole Faust 
72*c217d954SCole Faust /* cl_command_type */
73*c217d954SCole Faust #define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR         0x4017
74*c217d954SCole Faust #define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR         0x4018
75*c217d954SCole Faust 
76*c217d954SCole Faust /******************************************************************************/
77*c217d954SCole Faust 
78*c217d954SCole Faust typedef cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)(
79*c217d954SCole Faust     cl_platform_id             platform,
80*c217d954SCole Faust     cl_d3d10_device_source_khr d3d_device_source,
81*c217d954SCole Faust     void *                     d3d_object,
82*c217d954SCole Faust     cl_d3d10_device_set_khr    d3d_device_set,
83*c217d954SCole Faust     cl_uint                    num_entries,
84*c217d954SCole Faust     cl_device_id *             devices,
85*c217d954SCole Faust     cl_uint *                  num_devices) CL_API_SUFFIX__VERSION_1_0;
86*c217d954SCole Faust 
87*c217d954SCole Faust typedef cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)(
88*c217d954SCole Faust     cl_context     context,
89*c217d954SCole Faust     cl_mem_flags   flags,
90*c217d954SCole Faust     ID3D10Buffer * resource,
91*c217d954SCole Faust     cl_int *       errcode_ret) CL_API_SUFFIX__VERSION_1_0;
92*c217d954SCole Faust 
93*c217d954SCole Faust typedef cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)(
94*c217d954SCole Faust     cl_context        context,
95*c217d954SCole Faust     cl_mem_flags      flags,
96*c217d954SCole Faust     ID3D10Texture2D * resource,
97*c217d954SCole Faust     UINT              subresource,
98*c217d954SCole Faust     cl_int *          errcode_ret) CL_API_SUFFIX__VERSION_1_0;
99*c217d954SCole Faust 
100*c217d954SCole Faust typedef cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)(
101*c217d954SCole Faust     cl_context        context,
102*c217d954SCole Faust     cl_mem_flags      flags,
103*c217d954SCole Faust     ID3D10Texture3D * resource,
104*c217d954SCole Faust     UINT              subresource,
105*c217d954SCole Faust     cl_int *          errcode_ret) CL_API_SUFFIX__VERSION_1_0;
106*c217d954SCole Faust 
107*c217d954SCole Faust typedef cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)(
108*c217d954SCole Faust     cl_command_queue command_queue,
109*c217d954SCole Faust     cl_uint          num_objects,
110*c217d954SCole Faust     const cl_mem *   mem_objects,
111*c217d954SCole Faust     cl_uint          num_events_in_wait_list,
112*c217d954SCole Faust     const cl_event * event_wait_list,
113*c217d954SCole Faust     cl_event *       event) CL_API_SUFFIX__VERSION_1_0;
114*c217d954SCole Faust 
115*c217d954SCole Faust typedef cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)(
116*c217d954SCole Faust     cl_command_queue command_queue,
117*c217d954SCole Faust     cl_uint          num_objects,
118*c217d954SCole Faust     const cl_mem *   mem_objects,
119*c217d954SCole Faust     cl_uint          num_events_in_wait_list,
120*c217d954SCole Faust     const cl_event * event_wait_list,
121*c217d954SCole Faust     cl_event *       event) CL_API_SUFFIX__VERSION_1_0;
122*c217d954SCole Faust 
123*c217d954SCole Faust #ifdef __cplusplus
124*c217d954SCole Faust }
125*c217d954SCole Faust #endif
126*c217d954SCole Faust 
127*c217d954SCole Faust #endif  /* __OPENCL_CL_D3D10_H */
128*c217d954SCole Faust 
129