HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
cl_d3d11.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (c) 2008-2020 The Khronos Group Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  ******************************************************************************/
16 
17 #ifndef __OPENCL_CL_D3D11_H
18 #define __OPENCL_CL_D3D11_H
19 
20 #if defined(_MSC_VER)
21 #if _MSC_VER >=1500
22 #pragma warning( push )
23 #pragma warning( disable : 4201 )
24 #pragma warning( disable : 5105 )
25 #endif
26 #endif
27 #include <d3d11.h>
28 #if defined(_MSC_VER)
29 #if _MSC_VER >=1500
30 #pragma warning( pop )
31 #endif
32 #endif
33 #include <CL/cl.h>
34 #include <CL/cl_platform.h>
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 /******************************************************************************
41  * cl_khr_d3d11_sharing */
42 #define cl_khr_d3d11_sharing 1
43 
46 
47 /******************************************************************************/
48 
49 /* Error Codes */
50 #define CL_INVALID_D3D11_DEVICE_KHR -1006
51 #define CL_INVALID_D3D11_RESOURCE_KHR -1007
52 #define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008
53 #define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009
54 
55 /* cl_d3d11_device_source */
56 #define CL_D3D11_DEVICE_KHR 0x4019
57 #define CL_D3D11_DXGI_ADAPTER_KHR 0x401A
58 
59 /* cl_d3d11_device_set */
60 #define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B
61 #define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C
62 
63 /* cl_context_info */
64 #define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D
65 #define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D
66 
67 /* cl_mem_info */
68 #define CL_MEM_D3D11_RESOURCE_KHR 0x401E
69 
70 /* cl_image_info */
71 #define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F
72 
73 /* cl_command_type */
74 #define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020
75 #define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021
76 
77 /******************************************************************************/
78 
80  cl_platform_id platform,
81  cl_d3d11_device_source_khr d3d_device_source,
82  void * d3d_object,
83  cl_d3d11_device_set_khr d3d_device_set,
84  cl_uint num_entries,
85  cl_device_id * devices,
86  cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2;
87 
89  cl_context context,
91  ID3D11Buffer * resource,
92  cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
93 
95  cl_context context,
97  ID3D11Texture2D * resource,
98  UINT subresource,
99  cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
100 
102  cl_context context,
104  ID3D11Texture3D * resource,
105  UINT subresource,
106  cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
107 
109  cl_command_queue command_queue,
110  cl_uint num_objects,
111  const cl_mem * mem_objects,
112  cl_uint num_events_in_wait_list,
113  const cl_event * event_wait_list,
115 
117  cl_command_queue command_queue,
118  cl_uint num_objects,
119  const cl_mem * mem_objects,
120  cl_uint num_events_in_wait_list,
121  const cl_event * event_wait_list,
123 
124 /***************************************************************
125 * cl_intel_sharing_format_query_d3d11
126 ***************************************************************/
127 #define cl_intel_sharing_format_query_d3d11 1
128 
129 /* when cl_khr_d3d11_sharing is supported */
130 
133  cl_context context,
134  cl_mem_flags flags,
135  cl_mem_object_type image_type,
136  cl_uint plane,
137  cl_uint num_entries,
138  DXGI_FORMAT* d3d11_formats,
139  cl_uint* num_texture_formats) ;
140 
141 typedef cl_int (CL_API_CALL *
143  cl_context context,
145  cl_mem_object_type image_type,
146  cl_uint plane,
147  cl_uint num_entries,
148  DXGI_FORMAT* d3d11_formats,
149  cl_uint* num_texture_formats) ;
150 
151 #ifdef __cplusplus
152 }
153 #endif
154 
155 #endif /* __OPENCL_CL_D3D11_H */
156 
struct _cl_device_id * cl_device_id
Definition: cl.h:30
uint32_t cl_uint
Definition: cl_platform.h:261
GLbitfield flags
Definition: glcorearb.h:1596
struct _cl_context * cl_context
Definition: cl.h:31
cl_uint cl_mem_object_type
Definition: cl.h:70
cl_int(CL_API_CALL * clEnqueueReleaseD3D11ObjectsKHR_fn)(cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_2
Definition: cl_d3d11.h:116
int32_t cl_int
Definition: cl_platform.h:260
#define CL_API_SUFFIX__VERSION_1_2
Definition: cl_platform.h:69
struct _cl_platform_id * cl_platform_id
Definition: cl.h:29
cl_uint cl_d3d11_device_set_khr
Definition: cl_d3d11.h:45
cl_mem(CL_API_CALL * clCreateFromD3D11BufferKHR_fn)(cl_context context, cl_mem_flags flags, ID3D11Buffer *resource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2
Definition: cl_d3d11.h:88
struct _cl_event * event
Definition: glcorearb.h:2961
#define CL_API_ENTRY
Definition: cl_platform.h:38
cl_uint cl_d3d11_device_source_khr
Definition: cl_d3d11.h:44
cl_int(CL_API_CALL * clGetDeviceIDsFromD3D11KHR_fn)(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) CL_API_SUFFIX__VERSION_1_2
Definition: cl_d3d11.h:79
cl_mem(CL_API_CALL * clCreateFromD3D11Texture2DKHR_fn)(cl_context context, cl_mem_flags flags, ID3D11Texture2D *resource, UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2
Definition: cl_d3d11.h:94
struct _cl_mem * cl_mem
Definition: cl.h:33
cl_int(CL_API_CALL * clEnqueueAcquireD3D11ObjectsKHR_fn)(cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_2
Definition: cl_d3d11.h:108
cl_mem(CL_API_CALL * clCreateFromD3D11Texture3DKHR_fn)(cl_context context, cl_mem_flags flags, ID3D11Texture3D *resource, UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2
Definition: cl_d3d11.h:101
CL_API_ENTRY cl_int CL_API_CALL clGetSupportedD3D11TextureFormatsINTEL(cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, cl_uint plane, cl_uint num_entries, DXGI_FORMAT *d3d11_formats, cl_uint *num_texture_formats)
struct _cl_event * cl_event
Definition: cl.h:36
struct _cl_command_queue * cl_command_queue
Definition: cl.h:32
#define CL_API_CALL
Definition: cl_platform.h:41
cl_int(CL_API_CALL * clGetSupportedD3D11TextureFormatsINTEL_fn)(cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, cl_uint plane, cl_uint num_entries, DXGI_FORMAT *d3d11_formats, cl_uint *num_texture_formats)
Definition: cl_d3d11.h:142
cl_bitfield cl_mem_flags
Definition: cl.h:66
UINT
Definition: ImfPixelType.h:24