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