1/********************************************************************************** 2 * Copyright (c) 2008-2012 The Khronos Group Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and/or associated documentation files (the 6 * "Materials"), to deal in the Materials without restriction, including 7 * without limitation the rights to use, copy, modify, merge, publish, 8 * distribute, sublicense, and/or sell copies of the Materials, and to 9 * permit persons to whom the Materials are furnished to do so, subject to 10 * the following conditions: 11 * 12 * The above copyright notice and this permission notice shall be included 13 * in all copies or substantial portions of the Materials. 14 * 15 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 21 * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 22 **********************************************************************************/ 23 24/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ 25 26#ifndef __OPENCL_CL_D3D11_H 27#define __OPENCL_CL_D3D11_H 28 29#include <d3d11.h> 30#include <CL/cl.h> 31#include <CL/cl_platform.h> 32 33#ifdef __cplusplus 34extern "C" { 35#endif 36 37/****************************************************************************** 38 * cl_khr_d3d11_sharing */ 39#define cl_khr_d3d11_sharing 1 40 41typedef cl_uint cl_d3d11_device_source_khr; 42typedef cl_uint cl_d3d11_device_set_khr; 43 44/******************************************************************************/ 45 46/* Error Codes */ 47#define CL_INVALID_D3D11_DEVICE_KHR -1006 48#define CL_INVALID_D3D11_RESOURCE_KHR -1007 49#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008 50#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009 51 52/* cl_d3d11_device_source */ 53#define CL_D3D11_DEVICE_KHR 0x4019 54#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A 55 56/* cl_d3d11_device_set */ 57#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B 58#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C 59 60/* cl_context_info */ 61#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D 62#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D 63 64/* cl_mem_info */ 65#define CL_MEM_D3D11_RESOURCE_KHR 0x401E 66 67/* cl_image_info */ 68#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F 69 70/* cl_command_type */ 71#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020 72#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 73 74/******************************************************************************/ 75 76typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)( 77 cl_platform_id platform, 78 cl_d3d11_device_source_khr d3d_device_source, 79 void * d3d_object, 80 cl_d3d11_device_set_khr d3d_device_set, 81 cl_uint num_entries, 82 cl_device_id * devices, 83 cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; 84 85typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)( 86 cl_context context, 87 cl_mem_flags flags, 88 ID3D11Buffer * resource, 89 cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; 90 91typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)( 92 cl_context context, 93 cl_mem_flags flags, 94 ID3D11Texture2D * resource, 95 UINT subresource, 96 cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; 97 98typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)( 99 cl_context context, 100 cl_mem_flags flags, 101 ID3D11Texture3D * resource, 102 UINT subresource, 103 cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; 104 105typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)( 106 cl_command_queue command_queue, 107 cl_uint num_objects, 108 const cl_mem * mem_objects, 109 cl_uint num_events_in_wait_list, 110 const cl_event * event_wait_list, 111 cl_event * event) CL_API_SUFFIX__VERSION_1_2; 112 113typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)( 114 cl_command_queue command_queue, 115 cl_uint num_objects, 116 const cl_mem * mem_objects, 117 cl_uint num_events_in_wait_list, 118 const cl_event * event_wait_list, 119 cl_event * event) CL_API_SUFFIX__VERSION_1_2; 120 121#ifdef __cplusplus 122} 123#endif 124 125#endif /* __OPENCL_CL_D3D11_H */ 126 127