Path: blob/main_old/include/CL/cl_dx9_media_sharing.h
1693 views
/*******************************************************************************1* Copyright (c) 2008-2020 The Khronos Group Inc.2*3* Licensed under the Apache License, Version 2.0 (the "License");4* you may not use this file except in compliance with the License.5* You may obtain a copy of the License at6*7* http://www.apache.org/licenses/LICENSE-2.08*9* Unless required by applicable law or agreed to in writing, software10* distributed under the License is distributed on an "AS IS" BASIS,11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12* See the License for the specific language governing permissions and13* limitations under the License.14******************************************************************************/1516#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_H17#define __OPENCL_CL_DX9_MEDIA_SHARING_H1819#include <CL/cl.h>20#include <CL/cl_platform.h>2122#ifdef __cplusplus23extern "C" {24#endif2526/******************************************************************************/27/* cl_khr_dx9_media_sharing */28#define cl_khr_dx9_media_sharing 12930typedef cl_uint cl_dx9_media_adapter_type_khr;31typedef cl_uint cl_dx9_media_adapter_set_khr;3233#if defined(_WIN32)34#include <d3d9.h>35typedef struct _cl_dx9_surface_info_khr36{37IDirect3DSurface9 *resource;38HANDLE shared_handle;39} cl_dx9_surface_info_khr;40#endif414243/******************************************************************************/4445/* Error Codes */46#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -101047#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -101148#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -101249#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -10135051/* cl_media_adapter_type_khr */52#define CL_ADAPTER_D3D9_KHR 0x202053#define CL_ADAPTER_D3D9EX_KHR 0x202154#define CL_ADAPTER_DXVA_KHR 0x20225556/* cl_media_adapter_set_khr */57#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x202358#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x20245960/* cl_context_info */61#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x202562#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x202663#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x20276465/* cl_mem_info */66#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x202867#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x20296869/* cl_image_info */70#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A7172/* cl_command_type */73#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B74#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C7576/******************************************************************************/7778typedef cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)(79cl_platform_id platform,80cl_uint num_media_adapters,81cl_dx9_media_adapter_type_khr * media_adapter_type,82void * media_adapters,83cl_dx9_media_adapter_set_khr media_adapter_set,84cl_uint num_entries,85cl_device_id * devices,86cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2;8788typedef cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)(89cl_context context,90cl_mem_flags flags,91cl_dx9_media_adapter_type_khr adapter_type,92void * surface_info,93cl_uint plane,94cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;9596typedef cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)(97cl_command_queue command_queue,98cl_uint num_objects,99const cl_mem * mem_objects,100cl_uint num_events_in_wait_list,101const cl_event * event_wait_list,102cl_event * event) CL_API_SUFFIX__VERSION_1_2;103104typedef cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)(105cl_command_queue command_queue,106cl_uint num_objects,107const cl_mem * mem_objects,108cl_uint num_events_in_wait_list,109const cl_event * event_wait_list,110cl_event * event) CL_API_SUFFIX__VERSION_1_2;111112/***************************************113* cl_intel_dx9_media_sharing extension *114****************************************/115116#define cl_intel_dx9_media_sharing 1117118typedef cl_uint cl_dx9_device_source_intel;119typedef cl_uint cl_dx9_device_set_intel;120121/* error codes */122#define CL_INVALID_DX9_DEVICE_INTEL -1010123#define CL_INVALID_DX9_RESOURCE_INTEL -1011124#define CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL -1012125#define CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL -1013126127/* cl_dx9_device_source_intel */128#define CL_D3D9_DEVICE_INTEL 0x4022129#define CL_D3D9EX_DEVICE_INTEL 0x4070130#define CL_DXVA_DEVICE_INTEL 0x4071131132/* cl_dx9_device_set_intel */133#define CL_PREFERRED_DEVICES_FOR_DX9_INTEL 0x4024134#define CL_ALL_DEVICES_FOR_DX9_INTEL 0x4025135136/* cl_context_info */137#define CL_CONTEXT_D3D9_DEVICE_INTEL 0x4026138#define CL_CONTEXT_D3D9EX_DEVICE_INTEL 0x4072139#define CL_CONTEXT_DXVA_DEVICE_INTEL 0x4073140141/* cl_mem_info */142#define CL_MEM_DX9_RESOURCE_INTEL 0x4027143#define CL_MEM_DX9_SHARED_HANDLE_INTEL 0x4074144145/* cl_image_info */146#define CL_IMAGE_DX9_PLANE_INTEL 0x4075147148/* cl_command_type */149#define CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL 0x402A150#define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B151/******************************************************************************/152153extern CL_API_ENTRY cl_int CL_API_CALL154clGetDeviceIDsFromDX9INTEL(155cl_platform_id platform,156cl_dx9_device_source_intel dx9_device_source,157void* dx9_object,158cl_dx9_device_set_intel dx9_device_set,159cl_uint num_entries,160cl_device_id* devices,161cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1;162163typedef cl_int (CL_API_CALL* clGetDeviceIDsFromDX9INTEL_fn)(164cl_platform_id platform,165cl_dx9_device_source_intel dx9_device_source,166void* dx9_object,167cl_dx9_device_set_intel dx9_device_set,168cl_uint num_entries,169cl_device_id* devices,170cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1;171172extern CL_API_ENTRY cl_mem CL_API_CALL173clCreateFromDX9MediaSurfaceINTEL(174cl_context context,175cl_mem_flags flags,176IDirect3DSurface9* resource,177HANDLE sharedHandle,178UINT plane,179cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;180181typedef cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceINTEL_fn)(182cl_context context,183cl_mem_flags flags,184IDirect3DSurface9* resource,185HANDLE sharedHandle,186UINT plane,187cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;188189extern CL_API_ENTRY cl_int CL_API_CALL190clEnqueueAcquireDX9ObjectsINTEL(191cl_command_queue command_queue,192cl_uint num_objects,193const cl_mem* mem_objects,194cl_uint num_events_in_wait_list,195const cl_event* event_wait_list,196cl_event* event) CL_API_SUFFIX__VERSION_1_1;197198typedef cl_int (CL_API_CALL *clEnqueueAcquireDX9ObjectsINTEL_fn)(199cl_command_queue command_queue,200cl_uint num_objects,201const cl_mem* mem_objects,202cl_uint num_events_in_wait_list,203const cl_event* event_wait_list,204cl_event* event) CL_API_SUFFIX__VERSION_1_1;205206extern CL_API_ENTRY cl_int CL_API_CALL207clEnqueueReleaseDX9ObjectsINTEL(208cl_command_queue command_queue,209cl_uint num_objects,210cl_mem* mem_objects,211cl_uint num_events_in_wait_list,212const cl_event* event_wait_list,213cl_event* event) CL_API_SUFFIX__VERSION_1_1;214215typedef cl_int (CL_API_CALL *clEnqueueReleaseDX9ObjectsINTEL_fn)(216cl_command_queue command_queue,217cl_uint num_objects,218cl_mem* mem_objects,219cl_uint num_events_in_wait_list,220const cl_event* event_wait_list,221cl_event* event) CL_API_SUFFIX__VERSION_1_1;222223#ifdef __cplusplus224}225#endif226227#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_H */228229230231