include: Update the OpenCL headers to latest
A few breaking changes in rusticl which this also fixes. Reviewed-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32821>
This commit is contained in:
@@ -113,8 +113,8 @@ typedef cl_bitfield cl_device_atomic_capabilities;
|
||||
typedef cl_bitfield cl_device_device_enqueue_capabilities;
|
||||
typedef cl_uint cl_khronos_vendor_id;
|
||||
typedef cl_properties cl_mem_properties;
|
||||
typedef cl_uint cl_version;
|
||||
#endif
|
||||
typedef cl_uint cl_version;
|
||||
|
||||
typedef struct _cl_image_format {
|
||||
cl_channel_order image_channel_order;
|
||||
@@ -569,11 +569,8 @@ typedef struct _cl_name_version {
|
||||
#define CL_RGx 0x10BB
|
||||
#define CL_RGBx 0x10BC
|
||||
#endif
|
||||
#ifdef CL_VERSION_1_2
|
||||
#define CL_DEPTH 0x10BD
|
||||
#define CL_DEPTH_STENCIL 0x10BE
|
||||
#endif
|
||||
#ifdef CL_VERSION_2_0
|
||||
#define CL_DEPTH 0x10BD
|
||||
#define CL_sRGB 0x10BF
|
||||
#define CL_sRGBx 0x10C0
|
||||
#define CL_sRGBA 0x10C1
|
||||
@@ -597,9 +594,6 @@ typedef struct _cl_name_version {
|
||||
#define CL_UNSIGNED_INT32 0x10DC
|
||||
#define CL_HALF_FLOAT 0x10DD
|
||||
#define CL_FLOAT 0x10DE
|
||||
#ifdef CL_VERSION_1_2
|
||||
#define CL_UNORM_INT24 0x10DF
|
||||
#endif
|
||||
#ifdef CL_VERSION_2_1
|
||||
#define CL_UNORM_INT_101010_2 0x10E0
|
||||
#endif
|
||||
@@ -920,8 +914,6 @@ typedef struct _cl_name_version {
|
||||
/* cl_khronos_vendor_id */
|
||||
#define CL_KHRONOS_VENDOR_ID_CODEPLAY 0x10004
|
||||
|
||||
#ifdef CL_VERSION_3_0
|
||||
|
||||
/* cl_version */
|
||||
#define CL_VERSION_MAJOR_BITS (10)
|
||||
#define CL_VERSION_MINOR_BITS (10)
|
||||
@@ -945,9 +937,14 @@ typedef struct _cl_name_version {
|
||||
(((minor) & CL_VERSION_MINOR_MASK) << CL_VERSION_PATCH_BITS) | \
|
||||
((patch) & CL_VERSION_PATCH_MASK))
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
/* CL_NO_PROTOTYPES implies CL_NO_CORE_PROTOTYPES: */
|
||||
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_CORE_PROTOTYPES)
|
||||
#define CL_NO_CORE_PROTOTYPES
|
||||
#endif
|
||||
|
||||
/********************************************************************************************************/
|
||||
#if !defined(CL_NO_CORE_PROTOTYPES)
|
||||
|
||||
/* Platform API */
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
@@ -1929,6 +1926,8 @@ clEnqueueTask(cl_command_queue command_queue,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2_DEPRECATED;
|
||||
|
||||
#endif /* !defined(CL_NO_CORE_PROTOTYPES) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2020 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2023 The Khronos Group Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -14,8 +14,12 @@
|
||||
* limitations under the License.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OPENCL_CL_D3D10_H
|
||||
#define __OPENCL_CL_D3D10_H
|
||||
#ifndef OPENCL_CL_D3D10_H_
|
||||
#define OPENCL_CL_D3D10_H_
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos OpenCL XML API Registry.
|
||||
*/
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#if _MSC_VER >=1500
|
||||
@@ -30,33 +34,54 @@
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
|
||||
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
/* CL_NO_EXTENSION_PROTOTYPES implies
|
||||
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
|
||||
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* cl_khr_d3d10_sharing */
|
||||
/***************************************************************
|
||||
* cl_khr_d3d10_sharing
|
||||
***************************************************************/
|
||||
#define cl_khr_d3d10_sharing 1
|
||||
#define CL_KHR_D3D10_SHARING_EXTENSION_NAME \
|
||||
"cl_khr_d3d10_sharing"
|
||||
|
||||
|
||||
#define CL_KHR_D3D10_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
typedef cl_uint cl_d3d10_device_source_khr;
|
||||
typedef cl_uint cl_d3d10_device_set_khr;
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Error Codes */
|
||||
/* Error codes */
|
||||
#define CL_INVALID_D3D10_DEVICE_KHR -1002
|
||||
#define CL_INVALID_D3D10_RESOURCE_KHR -1003
|
||||
#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004
|
||||
#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005
|
||||
|
||||
/* cl_d3d10_device_source_nv */
|
||||
/* cl_d3d10_device_source_khr */
|
||||
#define CL_D3D10_DEVICE_KHR 0x4010
|
||||
#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011
|
||||
|
||||
/* cl_d3d10_device_set_nv */
|
||||
/* cl_d3d10_device_set_khr */
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012
|
||||
#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013
|
||||
|
||||
@@ -74,60 +99,157 @@ typedef cl_uint cl_d3d10_device_set_khr;
|
||||
#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017
|
||||
#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)(
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromD3D10KHR_t(
|
||||
cl_platform_id platform,
|
||||
cl_d3d10_device_source_khr d3d_device_source,
|
||||
void * d3d_object,
|
||||
void* d3d_object,
|
||||
cl_d3d10_device_set_khr d3d_device_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id * devices,
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0;
|
||||
cl_device_id* devices,
|
||||
cl_uint* num_devices);
|
||||
|
||||
typedef cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)(
|
||||
typedef clGetDeviceIDsFromD3D10KHR_t *
|
||||
clGetDeviceIDsFromD3D10KHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromD3D10BufferKHR_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Buffer * resource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
ID3D10Buffer* resource,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)(
|
||||
typedef clCreateFromD3D10BufferKHR_t *
|
||||
clCreateFromD3D10BufferKHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromD3D10Texture2DKHR_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Texture2D * resource,
|
||||
ID3D10Texture2D* resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)(
|
||||
typedef clCreateFromD3D10Texture2DKHR_t *
|
||||
clCreateFromD3D10Texture2DKHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromD3D10Texture3DKHR_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Texture3D * resource,
|
||||
ID3D10Texture3D* resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)(
|
||||
typedef clCreateFromD3D10Texture3DKHR_t *
|
||||
clCreateFromD3D10Texture3DKHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueAcquireD3D10ObjectsKHR_t(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_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_0;
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)(
|
||||
typedef clEnqueueAcquireD3D10ObjectsKHR_t *
|
||||
clEnqueueAcquireD3D10ObjectsKHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueReleaseD3D10ObjectsKHR_t(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_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_0;
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
typedef clEnqueueReleaseD3D10ObjectsKHR_t *
|
||||
clEnqueueReleaseD3D10ObjectsKHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromD3D10KHR(
|
||||
cl_platform_id platform,
|
||||
cl_d3d10_device_source_khr d3d_device_source,
|
||||
void* d3d_object,
|
||||
cl_d3d10_device_set_khr d3d_device_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id* devices,
|
||||
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromD3D10BufferKHR(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Buffer* resource,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromD3D10Texture2DKHR(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Texture2D* resource,
|
||||
UINT subresource,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromD3D10Texture3DKHR(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Texture3D* resource,
|
||||
UINT subresource,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireD3D10ObjectsKHR(
|
||||
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_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseD3D10ObjectsKHR(
|
||||
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_0;
|
||||
|
||||
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
/***************************************************************
|
||||
* cl_intel_sharing_format_query_d3d10
|
||||
***************************************************************/
|
||||
#define cl_intel_sharing_format_query_d3d10 1
|
||||
#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10_EXTENSION_NAME \
|
||||
"cl_intel_sharing_format_query_d3d10"
|
||||
|
||||
|
||||
#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
|
||||
|
||||
/* when cl_khr_d3d10_sharing is supported */
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetSupportedD3D10TextureFormatsINTEL_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_mem_object_type image_type,
|
||||
cl_uint num_entries,
|
||||
DXGI_FORMAT* d3d10_formats,
|
||||
cl_uint* num_texture_formats);
|
||||
|
||||
typedef clGetSupportedD3D10TextureFormatsINTEL_t *
|
||||
clGetSupportedD3D10TextureFormatsINTEL_fn ;
|
||||
|
||||
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetSupportedD3D10TextureFormatsINTEL(
|
||||
cl_context context,
|
||||
@@ -137,18 +259,10 @@ clGetSupportedD3D10TextureFormatsINTEL(
|
||||
DXGI_FORMAT* d3d10_formats,
|
||||
cl_uint* num_texture_formats) ;
|
||||
|
||||
typedef cl_int (CL_API_CALL *
|
||||
clGetSupportedD3D10TextureFormatsINTEL_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_mem_object_type image_type,
|
||||
cl_uint num_entries,
|
||||
DXGI_FORMAT* d3d10_formats,
|
||||
cl_uint* num_texture_formats) ;
|
||||
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_D3D10_H */
|
||||
|
||||
#endif /* OPENCL_CL_D3D10_H_ */
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2020 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2023 The Khronos Group Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -14,8 +14,12 @@
|
||||
* limitations under the License.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OPENCL_CL_D3D11_H
|
||||
#define __OPENCL_CL_D3D11_H
|
||||
#ifndef OPENCL_CL_D3D11_H_
|
||||
#define OPENCL_CL_D3D11_H_
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos OpenCL XML API Registry.
|
||||
*/
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#if _MSC_VER >=1500
|
||||
@@ -30,33 +34,54 @@
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
|
||||
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
/* CL_NO_EXTENSION_PROTOTYPES implies
|
||||
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
|
||||
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* cl_khr_d3d11_sharing */
|
||||
/***************************************************************
|
||||
* cl_khr_d3d11_sharing
|
||||
***************************************************************/
|
||||
#define cl_khr_d3d11_sharing 1
|
||||
#define CL_KHR_D3D11_SHARING_EXTENSION_NAME \
|
||||
"cl_khr_d3d11_sharing"
|
||||
|
||||
|
||||
#define CL_KHR_D3D11_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
typedef cl_uint cl_d3d11_device_source_khr;
|
||||
typedef cl_uint cl_d3d11_device_set_khr;
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Error Codes */
|
||||
/* Error codes */
|
||||
#define CL_INVALID_D3D11_DEVICE_KHR -1006
|
||||
#define CL_INVALID_D3D11_RESOURCE_KHR -1007
|
||||
#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008
|
||||
#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009
|
||||
|
||||
/* cl_d3d11_device_source */
|
||||
/* cl_d3d11_device_source_khr */
|
||||
#define CL_D3D11_DEVICE_KHR 0x4019
|
||||
#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A
|
||||
|
||||
/* cl_d3d11_device_set */
|
||||
/* cl_d3d11_device_set_khr */
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B
|
||||
#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C
|
||||
|
||||
@@ -74,60 +99,158 @@ typedef cl_uint cl_d3d11_device_set_khr;
|
||||
#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020
|
||||
#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)(
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromD3D11KHR_t(
|
||||
cl_platform_id platform,
|
||||
cl_d3d11_device_source_khr d3d_device_source,
|
||||
void * d3d_object,
|
||||
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;
|
||||
cl_device_id* devices,
|
||||
cl_uint* num_devices);
|
||||
|
||||
typedef cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)(
|
||||
typedef clGetDeviceIDsFromD3D11KHR_t *
|
||||
clGetDeviceIDsFromD3D11KHR_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromD3D11BufferKHR_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Buffer * resource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
ID3D11Buffer* resource,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)(
|
||||
typedef clCreateFromD3D11BufferKHR_t *
|
||||
clCreateFromD3D11BufferKHR_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromD3D11Texture2DKHR_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Texture2D * resource,
|
||||
ID3D11Texture2D* resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)(
|
||||
typedef clCreateFromD3D11Texture2DKHR_t *
|
||||
clCreateFromD3D11Texture2DKHR_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromD3D11Texture3DKHR_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Texture3D * resource,
|
||||
ID3D11Texture3D* resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)(
|
||||
typedef clCreateFromD3D11Texture3DKHR_t *
|
||||
clCreateFromD3D11Texture3DKHR_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueAcquireD3D11ObjectsKHR_t(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_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;
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)(
|
||||
typedef clEnqueueAcquireD3D11ObjectsKHR_t *
|
||||
clEnqueueAcquireD3D11ObjectsKHR_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueReleaseD3D11ObjectsKHR_t(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_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;
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
typedef clEnqueueReleaseD3D11ObjectsKHR_t *
|
||||
clEnqueueReleaseD3D11ObjectsKHR_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromD3D11KHR(
|
||||
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;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromD3D11BufferKHR(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Buffer* resource,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromD3D11Texture2DKHR(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Texture2D* resource,
|
||||
UINT subresource,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromD3D11Texture3DKHR(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Texture3D* resource,
|
||||
UINT subresource,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireD3D11ObjectsKHR(
|
||||
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;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseD3D11ObjectsKHR(
|
||||
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;
|
||||
|
||||
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
/***************************************************************
|
||||
* cl_intel_sharing_format_query_d3d11
|
||||
***************************************************************/
|
||||
#define cl_intel_sharing_format_query_d3d11 1
|
||||
#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11_EXTENSION_NAME \
|
||||
"cl_intel_sharing_format_query_d3d11"
|
||||
|
||||
|
||||
#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
|
||||
|
||||
/* when cl_khr_d3d11_sharing is supported */
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetSupportedD3D11TextureFormatsINTEL_t(
|
||||
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);
|
||||
|
||||
typedef clGetSupportedD3D11TextureFormatsINTEL_t *
|
||||
clGetSupportedD3D11TextureFormatsINTEL_fn ;
|
||||
|
||||
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetSupportedD3D11TextureFormatsINTEL(
|
||||
cl_context context,
|
||||
@@ -138,19 +261,10 @@ clGetSupportedD3D11TextureFormatsINTEL(
|
||||
DXGI_FORMAT* d3d11_formats,
|
||||
cl_uint* num_texture_formats) ;
|
||||
|
||||
typedef 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) ;
|
||||
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_D3D11_H */
|
||||
|
||||
#endif /* OPENCL_CL_D3D11_H_ */
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2020 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2023 The Khronos Group Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -14,22 +14,12 @@
|
||||
* limitations under the License.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_H
|
||||
#define __OPENCL_CL_DX9_MEDIA_SHARING_H
|
||||
#ifndef OPENCL_CL_DX9_MEDIA_SHARING_H_
|
||||
#define OPENCL_CL_DX9_MEDIA_SHARING_H_
|
||||
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************/
|
||||
/* cl_khr_dx9_media_sharing */
|
||||
#define cl_khr_dx9_media_sharing 1
|
||||
|
||||
typedef cl_uint cl_dx9_media_adapter_type_khr;
|
||||
typedef cl_uint cl_dx9_media_adapter_set_khr;
|
||||
/*
|
||||
** This header is generated from the Khronos OpenCL XML API Registry.
|
||||
*/
|
||||
|
||||
#if defined(_WIN32)
|
||||
#if defined(_MSC_VER)
|
||||
@@ -45,17 +35,53 @@ typedef cl_uint cl_dx9_media_adapter_set_khr;
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
#endif
|
||||
typedef struct _cl_dx9_surface_info_khr
|
||||
{
|
||||
IDirect3DSurface9 *resource;
|
||||
HANDLE shared_handle;
|
||||
} cl_dx9_surface_info_khr;
|
||||
#endif
|
||||
|
||||
#include <CL/cl.h>
|
||||
|
||||
/******************************************************************************/
|
||||
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
/* Error Codes */
|
||||
/* CL_NO_EXTENSION_PROTOTYPES implies
|
||||
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
|
||||
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/***************************************************************
|
||||
* cl_khr_dx9_media_sharing
|
||||
***************************************************************/
|
||||
#define cl_khr_dx9_media_sharing 1
|
||||
#define CL_KHR_DX9_MEDIA_SHARING_EXTENSION_NAME \
|
||||
"cl_khr_dx9_media_sharing"
|
||||
|
||||
|
||||
#define CL_KHR_DX9_MEDIA_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
typedef cl_uint cl_dx9_media_adapter_type_khr;
|
||||
typedef cl_uint cl_dx9_media_adapter_set_khr;
|
||||
|
||||
#if defined(_WIN32)
|
||||
typedef struct _cl_dx9_surface_info_khr {
|
||||
IDirect3DSurface9* resource;
|
||||
HANDLE shared_handle;
|
||||
} cl_dx9_surface_info_khr;
|
||||
|
||||
#endif /* defined(_WIN32) */
|
||||
|
||||
/* Error codes */
|
||||
#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010
|
||||
#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011
|
||||
#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012
|
||||
@@ -86,52 +112,113 @@ typedef struct _cl_dx9_surface_info_khr
|
||||
#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B
|
||||
#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)(
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromDX9MediaAdapterKHR_t(
|
||||
cl_platform_id platform,
|
||||
cl_uint num_media_adapters,
|
||||
cl_dx9_media_adapter_type_khr * media_adapter_type,
|
||||
void * media_adapters,
|
||||
cl_dx9_media_adapter_type_khr* media_adapter_type,
|
||||
void* media_adapters,
|
||||
cl_dx9_media_adapter_set_khr media_adapter_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id * devices,
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2;
|
||||
cl_device_id* devices,
|
||||
cl_uint* num_devices);
|
||||
|
||||
typedef cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)(
|
||||
typedef clGetDeviceIDsFromDX9MediaAdapterKHR_t *
|
||||
clGetDeviceIDsFromDX9MediaAdapterKHR_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromDX9MediaSurfaceKHR_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_dx9_media_adapter_type_khr adapter_type,
|
||||
void * surface_info,
|
||||
void* surface_info,
|
||||
cl_uint plane,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)(
|
||||
typedef clCreateFromDX9MediaSurfaceKHR_t *
|
||||
clCreateFromDX9MediaSurfaceKHR_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueAcquireDX9MediaSurfacesKHR_t(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_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;
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)(
|
||||
typedef clEnqueueAcquireDX9MediaSurfacesKHR_t *
|
||||
clEnqueueAcquireDX9MediaSurfacesKHR_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueReleaseDX9MediaSurfacesKHR_t(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_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;
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
/***************************************
|
||||
* cl_intel_dx9_media_sharing extension *
|
||||
****************************************/
|
||||
typedef clEnqueueReleaseDX9MediaSurfacesKHR_t *
|
||||
clEnqueueReleaseDX9MediaSurfacesKHR_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromDX9MediaAdapterKHR(
|
||||
cl_platform_id platform,
|
||||
cl_uint num_media_adapters,
|
||||
cl_dx9_media_adapter_type_khr* media_adapter_type,
|
||||
void* media_adapters,
|
||||
cl_dx9_media_adapter_set_khr media_adapter_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id* devices,
|
||||
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromDX9MediaSurfaceKHR(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_dx9_media_adapter_type_khr adapter_type,
|
||||
void* surface_info,
|
||||
cl_uint plane,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireDX9MediaSurfacesKHR(
|
||||
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;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseDX9MediaSurfacesKHR(
|
||||
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;
|
||||
|
||||
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
/***************************************************************
|
||||
* cl_intel_dx9_media_sharing
|
||||
***************************************************************/
|
||||
#define cl_intel_dx9_media_sharing 1
|
||||
#define CL_INTEL_DX9_MEDIA_SHARING_EXTENSION_NAME \
|
||||
"cl_intel_dx9_media_sharing"
|
||||
|
||||
|
||||
#define CL_INTEL_DX9_MEDIA_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
|
||||
|
||||
typedef cl_uint cl_dx9_device_source_intel;
|
||||
typedef cl_uint cl_dx9_device_set_intel;
|
||||
|
||||
/* error codes */
|
||||
/* Error codes */
|
||||
#define CL_INVALID_DX9_DEVICE_INTEL -1010
|
||||
#define CL_INVALID_DX9_RESOURCE_INTEL -1011
|
||||
#define CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL -1012
|
||||
@@ -161,19 +248,61 @@ typedef cl_uint cl_dx9_device_set_intel;
|
||||
/* cl_command_type */
|
||||
#define CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL 0x402A
|
||||
#define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B
|
||||
/******************************************************************************/
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromDX9INTEL(
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromDX9INTEL_t(
|
||||
cl_platform_id platform,
|
||||
cl_dx9_device_source_intel dx9_device_source,
|
||||
void* dx9_object,
|
||||
cl_dx9_device_set_intel dx9_device_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id* devices,
|
||||
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1;
|
||||
cl_uint* num_devices);
|
||||
|
||||
typedef cl_int (CL_API_CALL* clGetDeviceIDsFromDX9INTEL_fn)(
|
||||
typedef clGetDeviceIDsFromDX9INTEL_t *
|
||||
clGetDeviceIDsFromDX9INTEL_fn CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromDX9MediaSurfaceINTEL_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
IDirect3DSurface9* resource,
|
||||
HANDLE sharedHandle,
|
||||
UINT plane,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef clCreateFromDX9MediaSurfaceINTEL_t *
|
||||
clCreateFromDX9MediaSurfaceINTEL_fn CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueAcquireDX9ObjectsINTEL_t(
|
||||
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);
|
||||
|
||||
typedef clEnqueueAcquireDX9ObjectsINTEL_t *
|
||||
clEnqueueAcquireDX9ObjectsINTEL_fn CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueReleaseDX9ObjectsINTEL_t(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
cl_mem* mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
typedef clEnqueueReleaseDX9ObjectsINTEL_t *
|
||||
clEnqueueReleaseDX9ObjectsINTEL_fn CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromDX9INTEL(
|
||||
cl_platform_id platform,
|
||||
cl_dx9_device_source_intel dx9_device_source,
|
||||
void* dx9_object,
|
||||
@@ -191,14 +320,6 @@ clCreateFromDX9MediaSurfaceINTEL(
|
||||
UINT plane,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
typedef cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceINTEL_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
IDirect3DSurface9* resource,
|
||||
HANDLE sharedHandle,
|
||||
UINT plane,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireDX9ObjectsINTEL(
|
||||
cl_command_queue command_queue,
|
||||
@@ -208,14 +329,6 @@ clEnqueueAcquireDX9ObjectsINTEL(
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event) CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueAcquireDX9ObjectsINTEL_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_1;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseDX9ObjectsINTEL(
|
||||
cl_command_queue command_queue,
|
||||
@@ -225,21 +338,35 @@ clEnqueueReleaseDX9ObjectsINTEL(
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event) CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueReleaseDX9ObjectsINTEL_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
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_1;
|
||||
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
/***************************************************************
|
||||
* cl_intel_sharing_format_query_dx9
|
||||
***************************************************************/
|
||||
#define cl_intel_sharing_format_query_dx9 1
|
||||
#define CL_INTEL_SHARING_FORMAT_QUERY_DX9_EXTENSION_NAME \
|
||||
"cl_intel_sharing_format_query_dx9"
|
||||
|
||||
|
||||
#define CL_INTEL_SHARING_FORMAT_QUERY_DX9_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
|
||||
|
||||
/* when cl_khr_dx9_media_sharing or cl_intel_dx9_media_sharing is supported */
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetSupportedDX9MediaSurfaceFormatsINTEL_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_mem_object_type image_type,
|
||||
cl_uint plane,
|
||||
cl_uint num_entries,
|
||||
D3DFORMAT* dx9_formats,
|
||||
cl_uint* num_surface_formats);
|
||||
|
||||
typedef clGetSupportedDX9MediaSurfaceFormatsINTEL_t *
|
||||
clGetSupportedDX9MediaSurfaceFormatsINTEL_fn ;
|
||||
|
||||
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetSupportedDX9MediaSurfaceFormatsINTEL(
|
||||
cl_context context,
|
||||
@@ -250,19 +377,10 @@ clGetSupportedDX9MediaSurfaceFormatsINTEL(
|
||||
D3DFORMAT* dx9_formats,
|
||||
cl_uint* num_surface_formats) ;
|
||||
|
||||
typedef cl_int (CL_API_CALL *
|
||||
clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_mem_object_type image_type,
|
||||
cl_uint plane,
|
||||
cl_uint num_entries,
|
||||
D3DFORMAT* dx9_formats,
|
||||
cl_uint* num_surface_formats) ;
|
||||
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_H */
|
||||
|
||||
#endif /* OPENCL_CL_DX9_MEDIA_SHARING_H_ */
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2020 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2023 The Khronos Group Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -14,15 +14,45 @@
|
||||
* limitations under the License.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OPENCL_CL_EGL_H
|
||||
#define __OPENCL_CL_EGL_H
|
||||
#ifndef OPENCL_CL_EGL_H_
|
||||
#define OPENCL_CL_EGL_H_
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos OpenCL XML API Registry.
|
||||
*/
|
||||
|
||||
#include <CL/cl.h>
|
||||
|
||||
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
/* CL_NO_EXTENSION_PROTOTYPES implies
|
||||
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
|
||||
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/***************************************************************
|
||||
* cl_khr_egl_image
|
||||
***************************************************************/
|
||||
#define cl_khr_egl_image 1
|
||||
#define CL_KHR_EGL_IMAGE_EXTENSION_NAME \
|
||||
"cl_khr_egl_image"
|
||||
|
||||
|
||||
#define CL_KHR_EGL_IMAGE_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
/* Command type for events created with clEnqueueAcquireEGLObjectsKHR */
|
||||
#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F
|
||||
@@ -39,82 +69,117 @@ typedef void* CLeglImageKHR;
|
||||
/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */
|
||||
typedef void* CLeglDisplayKHR;
|
||||
|
||||
/* CLeglSyncKHR is an opaque handle to an EGLSync object */
|
||||
typedef void* CLeglSyncKHR;
|
||||
|
||||
/* properties passed to clCreateFromEGLImageKHR */
|
||||
typedef intptr_t cl_egl_image_properties_khr;
|
||||
|
||||
|
||||
#define cl_khr_egl_image 1
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromEGLImageKHR_t(
|
||||
cl_context context,
|
||||
CLeglDisplayKHR egldisplay,
|
||||
CLeglImageKHR eglimage,
|
||||
cl_mem_flags flags,
|
||||
const cl_egl_image_properties_khr* properties,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef clCreateFromEGLImageKHR_t *
|
||||
clCreateFromEGLImageKHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueAcquireEGLObjectsKHR_t(
|
||||
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);
|
||||
|
||||
typedef clEnqueueAcquireEGLObjectsKHR_t *
|
||||
clEnqueueAcquireEGLObjectsKHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueReleaseEGLObjectsKHR_t(
|
||||
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);
|
||||
|
||||
typedef clEnqueueReleaseEGLObjectsKHR_t *
|
||||
clEnqueueReleaseEGLObjectsKHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromEGLImageKHR(cl_context context,
|
||||
CLeglDisplayKHR egldisplay,
|
||||
CLeglImageKHR eglimage,
|
||||
cl_mem_flags flags,
|
||||
const cl_egl_image_properties_khr * properties,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_mem (CL_API_CALL *clCreateFromEGLImageKHR_fn)(
|
||||
clCreateFromEGLImageKHR(
|
||||
cl_context context,
|
||||
CLeglDisplayKHR egldisplay,
|
||||
CLeglImageKHR eglimage,
|
||||
cl_mem_flags flags,
|
||||
const cl_egl_image_properties_khr * properties,
|
||||
cl_int * errcode_ret);
|
||||
|
||||
const cl_egl_image_properties_khr* properties,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireEGLObjectsKHR(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_0;
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueAcquireEGLObjectsKHR_fn)(
|
||||
clEnqueueAcquireEGLObjectsKHR(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
const cl_mem* mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event);
|
||||
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseEGLObjectsKHR(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_0;
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueReleaseEGLObjectsKHR_fn)(
|
||||
clEnqueueReleaseEGLObjectsKHR(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
const cl_mem* mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event);
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
/***************************************************************
|
||||
* cl_khr_egl_event
|
||||
***************************************************************/
|
||||
#define cl_khr_egl_event 1
|
||||
#define CL_KHR_EGL_EVENT_EXTENSION_NAME \
|
||||
"cl_khr_egl_event"
|
||||
|
||||
|
||||
#define CL_KHR_EGL_EVENT_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */
|
||||
/* type CLeglDisplayKHR */
|
||||
|
||||
/* CLeglSyncKHR is an opaque handle to an EGLSync object */
|
||||
typedef void* CLeglSyncKHR;
|
||||
|
||||
|
||||
typedef cl_event CL_API_CALL
|
||||
clCreateEventFromEGLSyncKHR_t(
|
||||
cl_context context,
|
||||
CLeglSyncKHR sync,
|
||||
CLeglDisplayKHR display,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef clCreateEventFromEGLSyncKHR_t *
|
||||
clCreateEventFromEGLSyncKHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_event CL_API_CALL
|
||||
clCreateEventFromEGLSyncKHR(cl_context context,
|
||||
CLeglSyncKHR sync,
|
||||
CLeglDisplayKHR display,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_event (CL_API_CALL *clCreateEventFromEGLSyncKHR_fn)(
|
||||
clCreateEventFromEGLSyncKHR(
|
||||
cl_context context,
|
||||
CLeglSyncKHR sync,
|
||||
CLeglDisplayKHR display,
|
||||
cl_int * errcode_ret);
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_EGL_H */
|
||||
#endif /* OPENCL_CL_EGL_H_ */
|
||||
|
3283
include/CL/cl_ext.h
3283
include/CL/cl_ext.h
File diff suppressed because it is too large
Load Diff
1184
include/CL/cl_function_types.h
Normal file
1184
include/CL/cl_function_types.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2021 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2023 The Khronos Group Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -14,117 +14,53 @@
|
||||
* limitations under the License.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OPENCL_CL_GL_H
|
||||
#define __OPENCL_CL_GL_H
|
||||
#ifndef OPENCL_CL_GL_H_
|
||||
#define OPENCL_CL_GL_H_
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos OpenCL XML API Registry.
|
||||
*/
|
||||
|
||||
#include <CL/cl.h>
|
||||
|
||||
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
/* CL_NO_EXTENSION_PROTOTYPES implies
|
||||
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
|
||||
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef cl_uint cl_gl_object_type;
|
||||
typedef cl_uint cl_gl_texture_info;
|
||||
typedef cl_uint cl_gl_platform_info;
|
||||
typedef struct __GLsync *cl_GLsync;
|
||||
|
||||
/* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */
|
||||
#define CL_GL_OBJECT_BUFFER 0x2000
|
||||
#define CL_GL_OBJECT_TEXTURE2D 0x2001
|
||||
#define CL_GL_OBJECT_TEXTURE3D 0x2002
|
||||
#define CL_GL_OBJECT_RENDERBUFFER 0x2003
|
||||
#ifdef CL_VERSION_1_2
|
||||
#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E
|
||||
#define CL_GL_OBJECT_TEXTURE1D 0x200F
|
||||
#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010
|
||||
#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011
|
||||
#endif
|
||||
|
||||
/* cl_gl_texture_info */
|
||||
#define CL_GL_TEXTURE_TARGET 0x2004
|
||||
#define CL_GL_MIPMAP_LEVEL 0x2005
|
||||
#ifdef CL_VERSION_1_2
|
||||
#define CL_GL_NUM_SAMPLES 0x2012
|
||||
#endif
|
||||
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLBuffer(cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLuint bufobj,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#ifdef CL_VERSION_1_2
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture(cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLenum target,
|
||||
cl_GLint miplevel,
|
||||
cl_GLuint texture,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
#endif
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLRenderbuffer(cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLuint renderbuffer,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLObjectInfo(cl_mem memobj,
|
||||
cl_gl_object_type * gl_object_type,
|
||||
cl_GLuint * gl_object_name) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLTextureInfo(cl_mem memobj,
|
||||
cl_gl_texture_info param_name,
|
||||
size_t param_value_size,
|
||||
void * param_value,
|
||||
size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireGLObjects(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_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseGLObjects(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_0;
|
||||
|
||||
|
||||
/* Deprecated OpenCL 1.1 APIs */
|
||||
extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture2D(cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLenum target,
|
||||
cl_GLint miplevel,
|
||||
cl_GLuint texture,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture3D(cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLenum target,
|
||||
cl_GLint miplevel,
|
||||
cl_GLuint texture,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
/* cl_khr_gl_sharing extension */
|
||||
|
||||
/***************************************************************
|
||||
* cl_khr_gl_sharing
|
||||
***************************************************************/
|
||||
#define cl_khr_gl_sharing 1
|
||||
#define CL_KHR_GL_SHARING_EXTENSION_NAME \
|
||||
"cl_khr_gl_sharing"
|
||||
|
||||
|
||||
#define CL_KHR_GL_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
typedef int cl_GLint;
|
||||
typedef unsigned int cl_GLenum;
|
||||
typedef unsigned int cl_GLuint;
|
||||
|
||||
typedef cl_uint cl_gl_context_info;
|
||||
|
||||
/* Additional Error Codes */
|
||||
/* Error codes */
|
||||
#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000
|
||||
|
||||
/* cl_gl_context_info */
|
||||
@@ -138,37 +74,335 @@ typedef cl_uint cl_gl_context_info;
|
||||
#define CL_WGL_HDC_KHR 0x200B
|
||||
#define CL_CGL_SHAREGROUP_KHR 0x200C
|
||||
|
||||
typedef cl_uint cl_gl_object_type;
|
||||
typedef cl_uint cl_gl_texture_info;
|
||||
typedef cl_uint cl_gl_platform_info;
|
||||
|
||||
/* cl_gl_object_type */
|
||||
#define CL_GL_OBJECT_BUFFER 0x2000
|
||||
#define CL_GL_OBJECT_TEXTURE2D 0x2001
|
||||
#define CL_GL_OBJECT_TEXTURE3D 0x2002
|
||||
#define CL_GL_OBJECT_RENDERBUFFER 0x2003
|
||||
|
||||
#if defined(CL_VERSION_1_2)
|
||||
/* cl_gl_object_type */
|
||||
#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E
|
||||
#define CL_GL_OBJECT_TEXTURE1D 0x200F
|
||||
#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010
|
||||
#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011
|
||||
|
||||
#endif /* defined(CL_VERSION_1_2) */
|
||||
|
||||
/* cl_gl_texture_info */
|
||||
#define CL_GL_TEXTURE_TARGET 0x2004
|
||||
#define CL_GL_MIPMAP_LEVEL 0x2005
|
||||
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetGLContextInfoKHR_t(
|
||||
const cl_context_properties* properties,
|
||||
cl_gl_context_info param_name,
|
||||
size_t param_value_size,
|
||||
void* param_value,
|
||||
size_t* param_value_size_ret);
|
||||
|
||||
typedef clGetGLContextInfoKHR_t *
|
||||
clGetGLContextInfoKHR_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromGLBuffer_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLuint bufobj,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef clCreateFromGLBuffer_t *
|
||||
clCreateFromGLBuffer_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLContextInfoKHR(const cl_context_properties * properties,
|
||||
clGetGLContextInfoKHR(
|
||||
const cl_context_properties* properties,
|
||||
cl_gl_context_info param_name,
|
||||
size_t param_value_size,
|
||||
void * param_value,
|
||||
size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
void* param_value,
|
||||
size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)(
|
||||
const cl_context_properties * properties,
|
||||
cl_gl_context_info param_name,
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLBuffer(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLuint bufobj,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
#if defined(CL_VERSION_1_2)
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLenum target,
|
||||
cl_GLint miplevel,
|
||||
cl_GLuint texture,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef clCreateFromGLTexture_t *
|
||||
clCreateFromGLTexture_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLenum target,
|
||||
cl_GLint miplevel,
|
||||
cl_GLuint texture,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
#endif /* defined(CL_VERSION_1_2) */
|
||||
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromGLRenderbuffer_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLuint renderbuffer,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef clCreateFromGLRenderbuffer_t *
|
||||
clCreateFromGLRenderbuffer_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetGLObjectInfo_t(
|
||||
cl_mem memobj,
|
||||
cl_gl_object_type* gl_object_type,
|
||||
cl_GLuint* gl_object_name);
|
||||
|
||||
typedef clGetGLObjectInfo_t *
|
||||
clGetGLObjectInfo_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetGLTextureInfo_t(
|
||||
cl_mem memobj,
|
||||
cl_gl_texture_info param_name,
|
||||
size_t param_value_size,
|
||||
void * param_value,
|
||||
size_t * param_value_size_ret);
|
||||
void* param_value,
|
||||
size_t* param_value_size_ret);
|
||||
|
||||
/*
|
||||
* cl_khr_gl_event extension
|
||||
*/
|
||||
typedef clGetGLTextureInfo_t *
|
||||
clGetGLTextureInfo_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueAcquireGLObjects_t(
|
||||
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);
|
||||
|
||||
typedef clEnqueueAcquireGLObjects_t *
|
||||
clEnqueueAcquireGLObjects_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueReleaseGLObjects_t(
|
||||
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);
|
||||
|
||||
typedef clEnqueueReleaseGLObjects_t *
|
||||
clEnqueueReleaseGLObjects_fn CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLRenderbuffer(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLuint renderbuffer,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLObjectInfo(
|
||||
cl_mem memobj,
|
||||
cl_gl_object_type* gl_object_type,
|
||||
cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLTextureInfo(
|
||||
cl_mem memobj,
|
||||
cl_gl_texture_info param_name,
|
||||
size_t param_value_size,
|
||||
void* param_value,
|
||||
size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireGLObjects(
|
||||
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_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseGLObjects(
|
||||
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_0;
|
||||
|
||||
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
/* OpenCL 1.0 APIs that were deprecated in OpenCL 1.2 */
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture2D_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLenum target,
|
||||
cl_GLint miplevel,
|
||||
cl_GLuint texture,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef clCreateFromGLTexture2D_t *
|
||||
clCreateFromGLTexture2D_fn CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture3D_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLenum target,
|
||||
cl_GLint miplevel,
|
||||
cl_GLuint texture,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef clCreateFromGLTexture3D_t *
|
||||
clCreateFromGLTexture3D_fn CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture2D(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLenum target,
|
||||
cl_GLint miplevel,
|
||||
cl_GLuint texture,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture3D(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_GLenum target,
|
||||
cl_GLint miplevel,
|
||||
cl_GLuint texture,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
/***************************************************************
|
||||
* cl_khr_gl_event
|
||||
***************************************************************/
|
||||
#define cl_khr_gl_event 1
|
||||
#define CL_KHR_GL_EVENT_EXTENSION_NAME \
|
||||
"cl_khr_gl_event"
|
||||
|
||||
|
||||
#define CL_KHR_GL_EVENT_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
typedef struct __GLsync * cl_GLsync;
|
||||
|
||||
/* cl_command_type */
|
||||
#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D
|
||||
|
||||
extern CL_API_ENTRY cl_event CL_API_CALL
|
||||
clCreateEventFromGLsyncKHR(cl_context context,
|
||||
|
||||
typedef cl_event CL_API_CALL
|
||||
clCreateEventFromGLsyncKHR_t(
|
||||
cl_context context,
|
||||
cl_GLsync sync,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1;
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef clCreateEventFromGLsyncKHR_t *
|
||||
clCreateEventFromGLsyncKHR_fn CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_event CL_API_CALL
|
||||
clCreateEventFromGLsyncKHR(
|
||||
cl_context context,
|
||||
cl_GLsync sync,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
/***************************************************************
|
||||
* cl_khr_gl_depth_images
|
||||
***************************************************************/
|
||||
#define cl_khr_gl_depth_images 1
|
||||
#define CL_KHR_GL_DEPTH_IMAGES_EXTENSION_NAME \
|
||||
"cl_khr_gl_depth_images"
|
||||
|
||||
|
||||
#define CL_KHR_GL_DEPTH_IMAGES_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
/* cl_channel_order */
|
||||
#define CL_DEPTH_STENCIL 0x10BE
|
||||
|
||||
/* cl_channel_type */
|
||||
#define CL_UNORM_INT24 0x10DF
|
||||
|
||||
/***************************************************************
|
||||
* cl_khr_gl_msaa_sharing
|
||||
***************************************************************/
|
||||
#define cl_khr_gl_msaa_sharing 1
|
||||
#define CL_KHR_GL_MSAA_SHARING_EXTENSION_NAME \
|
||||
"cl_khr_gl_msaa_sharing"
|
||||
|
||||
|
||||
#define CL_KHR_GL_MSAA_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
/* cl_gl_texture_info */
|
||||
#define CL_GL_NUM_SAMPLES 0x2012
|
||||
|
||||
/***************************************************************
|
||||
* cl_intel_sharing_format_query_gl
|
||||
***************************************************************/
|
||||
#define cl_intel_sharing_format_query_gl 1
|
||||
#define CL_INTEL_SHARING_FORMAT_QUERY_GL_EXTENSION_NAME \
|
||||
"cl_intel_sharing_format_query_gl"
|
||||
|
||||
|
||||
#define CL_INTEL_SHARING_FORMAT_QUERY_GL_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
|
||||
|
||||
/* when cl_khr_gl_sharing is supported */
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetSupportedGLTextureFormatsINTEL_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_mem_object_type image_type,
|
||||
cl_uint num_entries,
|
||||
cl_GLenum* gl_formats,
|
||||
cl_uint* num_texture_formats);
|
||||
|
||||
typedef clGetSupportedGLTextureFormatsINTEL_t *
|
||||
clGetSupportedGLTextureFormatsINTEL_fn ;
|
||||
|
||||
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetSupportedGLTextureFormatsINTEL(
|
||||
cl_context context,
|
||||
@@ -178,17 +412,10 @@ clGetSupportedGLTextureFormatsINTEL(
|
||||
cl_GLenum* gl_formats,
|
||||
cl_uint* num_texture_formats) ;
|
||||
|
||||
typedef cl_int (CL_API_CALL *
|
||||
clGetSupportedGLTextureFormatsINTEL_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_mem_object_type image_type,
|
||||
cl_uint num_entries,
|
||||
cl_GLenum* gl_formats,
|
||||
cl_uint* num_texture_formats) ;
|
||||
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_GL_H */
|
||||
#endif /* OPENCL_CL_GL_H_ */
|
||||
|
@@ -15,4 +15,4 @@
|
||||
******************************************************************************/
|
||||
|
||||
#include <CL/cl_gl.h>
|
||||
#pragma message("All OpenGL-related extensions have been moved into cl_gl.h. Please include cl_gl.h directly.")
|
||||
#pragma message("The extensions in cl_gl_ext.h have been moved into cl_gl.h. Please include cl_gl.h directly.")
|
||||
|
440
include/CL/cl_half.h
Normal file
440
include/CL/cl_half.h
Normal file
@@ -0,0 +1,440 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2019-2020 The Khronos Group Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
******************************************************************************/
|
||||
|
||||
/**
|
||||
* This is a header-only utility library that provides OpenCL host code with
|
||||
* routines for converting to/from cl_half values.
|
||||
*
|
||||
* Example usage:
|
||||
*
|
||||
* #include <CL/cl_half.h>
|
||||
* ...
|
||||
* cl_half h = cl_half_from_float(0.5f, CL_HALF_RTE);
|
||||
* cl_float f = cl_half_to_float(h);
|
||||
*/
|
||||
|
||||
#ifndef OPENCL_CL_HALF_H
|
||||
#define OPENCL_CL_HALF_H
|
||||
|
||||
#include <CL/cl_platform.h>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Rounding mode used when converting to cl_half.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
CL_HALF_RTE, // round to nearest even
|
||||
CL_HALF_RTZ, // round towards zero
|
||||
CL_HALF_RTP, // round towards positive infinity
|
||||
CL_HALF_RTN, // round towards negative infinity
|
||||
} cl_half_rounding_mode;
|
||||
|
||||
|
||||
/* Private utility macros. */
|
||||
#define CL_HALF_EXP_MASK 0x7C00
|
||||
#define CL_HALF_MAX_FINITE_MAG 0x7BFF
|
||||
|
||||
|
||||
/*
|
||||
* Utility to deal with values that overflow when converting to half precision.
|
||||
*/
|
||||
static inline cl_half cl_half_handle_overflow(cl_half_rounding_mode rounding_mode,
|
||||
uint16_t sign)
|
||||
{
|
||||
if (rounding_mode == CL_HALF_RTZ)
|
||||
{
|
||||
// Round overflow towards zero -> largest finite number (preserving sign)
|
||||
return (sign << 15) | CL_HALF_MAX_FINITE_MAG;
|
||||
}
|
||||
else if (rounding_mode == CL_HALF_RTP && sign)
|
||||
{
|
||||
// Round negative overflow towards positive infinity -> most negative finite number
|
||||
return (1 << 15) | CL_HALF_MAX_FINITE_MAG;
|
||||
}
|
||||
else if (rounding_mode == CL_HALF_RTN && !sign)
|
||||
{
|
||||
// Round positive overflow towards negative infinity -> largest finite number
|
||||
return CL_HALF_MAX_FINITE_MAG;
|
||||
}
|
||||
|
||||
// Overflow to infinity
|
||||
return (sign << 15) | CL_HALF_EXP_MASK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Utility to deal with values that underflow when converting to half precision.
|
||||
*/
|
||||
static inline cl_half cl_half_handle_underflow(cl_half_rounding_mode rounding_mode,
|
||||
uint16_t sign)
|
||||
{
|
||||
if (rounding_mode == CL_HALF_RTP && !sign)
|
||||
{
|
||||
// Round underflow towards positive infinity -> smallest positive value
|
||||
return (sign << 15) | 1;
|
||||
}
|
||||
else if (rounding_mode == CL_HALF_RTN && sign)
|
||||
{
|
||||
// Round underflow towards negative infinity -> largest negative value
|
||||
return (sign << 15) | 1;
|
||||
}
|
||||
|
||||
// Flush to zero
|
||||
return (sign << 15);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert a cl_float to a cl_half.
|
||||
*/
|
||||
static inline cl_half cl_half_from_float(cl_float f, cl_half_rounding_mode rounding_mode)
|
||||
{
|
||||
// Type-punning to get direct access to underlying bits
|
||||
union
|
||||
{
|
||||
cl_float f;
|
||||
uint32_t i;
|
||||
} f32;
|
||||
f32.f = f;
|
||||
|
||||
// Extract sign bit
|
||||
uint16_t sign = f32.i >> 31;
|
||||
|
||||
// Extract FP32 exponent and mantissa
|
||||
uint32_t f_exp = (f32.i >> (CL_FLT_MANT_DIG - 1)) & 0xFF;
|
||||
uint32_t f_mant = f32.i & ((1 << (CL_FLT_MANT_DIG - 1)) - 1);
|
||||
|
||||
// Remove FP32 exponent bias
|
||||
int32_t exp = f_exp - CL_FLT_MAX_EXP + 1;
|
||||
|
||||
// Add FP16 exponent bias
|
||||
uint16_t h_exp = (uint16_t)(exp + CL_HALF_MAX_EXP - 1);
|
||||
|
||||
// Position of the bit that will become the FP16 mantissa LSB
|
||||
uint32_t lsb_pos = CL_FLT_MANT_DIG - CL_HALF_MANT_DIG;
|
||||
|
||||
// Check for NaN / infinity
|
||||
if (f_exp == 0xFF)
|
||||
{
|
||||
if (f_mant)
|
||||
{
|
||||
// NaN -> propagate mantissa and silence it
|
||||
uint16_t h_mant = (uint16_t)(f_mant >> lsb_pos);
|
||||
h_mant |= 0x200;
|
||||
return (sign << 15) | CL_HALF_EXP_MASK | h_mant;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Infinity -> zero mantissa
|
||||
return (sign << 15) | CL_HALF_EXP_MASK;
|
||||
}
|
||||
}
|
||||
|
||||
// Check for zero
|
||||
if (!f_exp && !f_mant)
|
||||
{
|
||||
return (sign << 15);
|
||||
}
|
||||
|
||||
// Check for overflow
|
||||
if (exp >= CL_HALF_MAX_EXP)
|
||||
{
|
||||
return cl_half_handle_overflow(rounding_mode, sign);
|
||||
}
|
||||
|
||||
// Check for underflow
|
||||
if (exp < (CL_HALF_MIN_EXP - CL_HALF_MANT_DIG - 1))
|
||||
{
|
||||
return cl_half_handle_underflow(rounding_mode, sign);
|
||||
}
|
||||
|
||||
// Check for value that will become denormal
|
||||
if (exp < -14)
|
||||
{
|
||||
// Denormal -> include the implicit 1 from the FP32 mantissa
|
||||
h_exp = 0;
|
||||
f_mant |= 1 << (CL_FLT_MANT_DIG - 1);
|
||||
|
||||
// Mantissa shift amount depends on exponent
|
||||
lsb_pos = -exp + (CL_FLT_MANT_DIG - 25);
|
||||
}
|
||||
|
||||
// Generate FP16 mantissa by shifting FP32 mantissa
|
||||
uint16_t h_mant = (uint16_t)(f_mant >> lsb_pos);
|
||||
|
||||
// Check whether we need to round
|
||||
uint32_t halfway = 1 << (lsb_pos - 1);
|
||||
uint32_t mask = (halfway << 1) - 1;
|
||||
switch (rounding_mode)
|
||||
{
|
||||
case CL_HALF_RTE:
|
||||
if ((f_mant & mask) > halfway)
|
||||
{
|
||||
// More than halfway -> round up
|
||||
h_mant += 1;
|
||||
}
|
||||
else if ((f_mant & mask) == halfway)
|
||||
{
|
||||
// Exactly halfway -> round to nearest even
|
||||
if (h_mant & 0x1)
|
||||
h_mant += 1;
|
||||
}
|
||||
break;
|
||||
case CL_HALF_RTZ:
|
||||
// Mantissa has already been truncated -> do nothing
|
||||
break;
|
||||
case CL_HALF_RTP:
|
||||
if ((f_mant & mask) && !sign)
|
||||
{
|
||||
// Round positive numbers up
|
||||
h_mant += 1;
|
||||
}
|
||||
break;
|
||||
case CL_HALF_RTN:
|
||||
if ((f_mant & mask) && sign)
|
||||
{
|
||||
// Round negative numbers down
|
||||
h_mant += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Check for mantissa overflow
|
||||
if (h_mant & 0x400)
|
||||
{
|
||||
h_exp += 1;
|
||||
h_mant = 0;
|
||||
}
|
||||
|
||||
return (sign << 15) | (h_exp << 10) | h_mant;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert a cl_double to a cl_half.
|
||||
*/
|
||||
static inline cl_half cl_half_from_double(cl_double d, cl_half_rounding_mode rounding_mode)
|
||||
{
|
||||
// Type-punning to get direct access to underlying bits
|
||||
union
|
||||
{
|
||||
cl_double d;
|
||||
uint64_t i;
|
||||
} f64;
|
||||
f64.d = d;
|
||||
|
||||
// Extract sign bit
|
||||
uint16_t sign = f64.i >> 63;
|
||||
|
||||
// Extract FP64 exponent and mantissa
|
||||
uint64_t d_exp = (f64.i >> (CL_DBL_MANT_DIG - 1)) & 0x7FF;
|
||||
uint64_t d_mant = f64.i & (((uint64_t)1 << (CL_DBL_MANT_DIG - 1)) - 1);
|
||||
|
||||
// Remove FP64 exponent bias
|
||||
int64_t exp = d_exp - CL_DBL_MAX_EXP + 1;
|
||||
|
||||
// Add FP16 exponent bias
|
||||
uint16_t h_exp = (uint16_t)(exp + CL_HALF_MAX_EXP - 1);
|
||||
|
||||
// Position of the bit that will become the FP16 mantissa LSB
|
||||
uint32_t lsb_pos = CL_DBL_MANT_DIG - CL_HALF_MANT_DIG;
|
||||
|
||||
// Check for NaN / infinity
|
||||
if (d_exp == 0x7FF)
|
||||
{
|
||||
if (d_mant)
|
||||
{
|
||||
// NaN -> propagate mantissa and silence it
|
||||
uint16_t h_mant = (uint16_t)(d_mant >> lsb_pos);
|
||||
h_mant |= 0x200;
|
||||
return (sign << 15) | CL_HALF_EXP_MASK | h_mant;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Infinity -> zero mantissa
|
||||
return (sign << 15) | CL_HALF_EXP_MASK;
|
||||
}
|
||||
}
|
||||
|
||||
// Check for zero
|
||||
if (!d_exp && !d_mant)
|
||||
{
|
||||
return (sign << 15);
|
||||
}
|
||||
|
||||
// Check for overflow
|
||||
if (exp >= CL_HALF_MAX_EXP)
|
||||
{
|
||||
return cl_half_handle_overflow(rounding_mode, sign);
|
||||
}
|
||||
|
||||
// Check for underflow
|
||||
if (exp < (CL_HALF_MIN_EXP - CL_HALF_MANT_DIG - 1))
|
||||
{
|
||||
return cl_half_handle_underflow(rounding_mode, sign);
|
||||
}
|
||||
|
||||
// Check for value that will become denormal
|
||||
if (exp < -14)
|
||||
{
|
||||
// Include the implicit 1 from the FP64 mantissa
|
||||
h_exp = 0;
|
||||
d_mant |= (uint64_t)1 << (CL_DBL_MANT_DIG - 1);
|
||||
|
||||
// Mantissa shift amount depends on exponent
|
||||
lsb_pos = (uint32_t)(-exp + (CL_DBL_MANT_DIG - 25));
|
||||
}
|
||||
|
||||
// Generate FP16 mantissa by shifting FP64 mantissa
|
||||
uint16_t h_mant = (uint16_t)(d_mant >> lsb_pos);
|
||||
|
||||
// Check whether we need to round
|
||||
uint64_t halfway = (uint64_t)1 << (lsb_pos - 1);
|
||||
uint64_t mask = (halfway << 1) - 1;
|
||||
switch (rounding_mode)
|
||||
{
|
||||
case CL_HALF_RTE:
|
||||
if ((d_mant & mask) > halfway)
|
||||
{
|
||||
// More than halfway -> round up
|
||||
h_mant += 1;
|
||||
}
|
||||
else if ((d_mant & mask) == halfway)
|
||||
{
|
||||
// Exactly halfway -> round to nearest even
|
||||
if (h_mant & 0x1)
|
||||
h_mant += 1;
|
||||
}
|
||||
break;
|
||||
case CL_HALF_RTZ:
|
||||
// Mantissa has already been truncated -> do nothing
|
||||
break;
|
||||
case CL_HALF_RTP:
|
||||
if ((d_mant & mask) && !sign)
|
||||
{
|
||||
// Round positive numbers up
|
||||
h_mant += 1;
|
||||
}
|
||||
break;
|
||||
case CL_HALF_RTN:
|
||||
if ((d_mant & mask) && sign)
|
||||
{
|
||||
// Round negative numbers down
|
||||
h_mant += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Check for mantissa overflow
|
||||
if (h_mant & 0x400)
|
||||
{
|
||||
h_exp += 1;
|
||||
h_mant = 0;
|
||||
}
|
||||
|
||||
return (sign << 15) | (h_exp << 10) | h_mant;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert a cl_half to a cl_float.
|
||||
*/
|
||||
static inline cl_float cl_half_to_float(cl_half h)
|
||||
{
|
||||
// Type-punning to get direct access to underlying bits
|
||||
union
|
||||
{
|
||||
cl_float f;
|
||||
uint32_t i;
|
||||
} f32;
|
||||
|
||||
// Extract sign bit
|
||||
uint16_t sign = h >> 15;
|
||||
|
||||
// Extract FP16 exponent and mantissa
|
||||
uint16_t h_exp = (h >> (CL_HALF_MANT_DIG - 1)) & 0x1F;
|
||||
uint16_t h_mant = h & 0x3FF;
|
||||
|
||||
// Remove FP16 exponent bias
|
||||
int32_t exp = h_exp - CL_HALF_MAX_EXP + 1;
|
||||
|
||||
// Add FP32 exponent bias
|
||||
uint32_t f_exp = exp + CL_FLT_MAX_EXP - 1;
|
||||
|
||||
// Check for NaN / infinity
|
||||
if (h_exp == 0x1F)
|
||||
{
|
||||
if (h_mant)
|
||||
{
|
||||
// NaN -> propagate mantissa and silence it
|
||||
uint32_t f_mant = h_mant << (CL_FLT_MANT_DIG - CL_HALF_MANT_DIG);
|
||||
f_mant |= 0x400000;
|
||||
f32.i = (sign << 31) | 0x7F800000 | f_mant;
|
||||
return f32.f;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Infinity -> zero mantissa
|
||||
f32.i = (sign << 31) | 0x7F800000;
|
||||
return f32.f;
|
||||
}
|
||||
}
|
||||
|
||||
// Check for zero / denormal
|
||||
if (h_exp == 0)
|
||||
{
|
||||
if (h_mant == 0)
|
||||
{
|
||||
// Zero -> zero exponent
|
||||
f_exp = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Denormal -> normalize it
|
||||
// - Shift mantissa to make most-significant 1 implicit
|
||||
// - Adjust exponent accordingly
|
||||
uint32_t shift = 0;
|
||||
while ((h_mant & 0x400) == 0)
|
||||
{
|
||||
h_mant <<= 1;
|
||||
shift++;
|
||||
}
|
||||
h_mant &= 0x3FF;
|
||||
f_exp -= shift - 1;
|
||||
}
|
||||
}
|
||||
|
||||
f32.i = (sign << 31) | (f_exp << 23) | (h_mant << 13);
|
||||
return f32.f;
|
||||
}
|
||||
|
||||
|
||||
#undef CL_HALF_EXP_MASK
|
||||
#undef CL_HALF_MAX_FINITE_MAG
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* OPENCL_CL_HALF_H */
|
1459
include/CL/cl_icd.h
1459
include/CL/cl_icd.h
File diff suppressed because it is too large
Load Diff
125
include/CL/cl_layer.h
Normal file
125
include/CL/cl_layer.h
Normal file
@@ -0,0 +1,125 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2023 The Khronos Group Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef OPENCL_CL_LAYER_H_
|
||||
#define OPENCL_CL_LAYER_H_
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos OpenCL XML API Registry.
|
||||
*/
|
||||
|
||||
#include <CL/cl_icd.h>
|
||||
|
||||
#include <CL/cl.h>
|
||||
|
||||
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
/* CL_NO_EXTENSION_PROTOTYPES implies
|
||||
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
|
||||
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/***************************************************************
|
||||
* cl_loader_layers
|
||||
***************************************************************/
|
||||
#define cl_loader_layers 1
|
||||
#define CL_LOADER_LAYERS_EXTENSION_NAME \
|
||||
"cl_loader_layers"
|
||||
|
||||
|
||||
#define CL_LOADER_LAYERS_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
typedef cl_uint cl_layer_info;
|
||||
typedef cl_uint cl_layer_api_version;
|
||||
|
||||
/* cl_layer_info */
|
||||
#define CL_LAYER_API_VERSION 0x4240
|
||||
#define CL_LAYER_NAME 0x4241
|
||||
|
||||
/* Misc API enums */
|
||||
#define CL_LAYER_API_VERSION_100 100
|
||||
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetLayerInfo_t(
|
||||
cl_layer_info param_name,
|
||||
size_t param_value_size,
|
||||
void* param_value,
|
||||
size_t* param_value_size_ret);
|
||||
|
||||
typedef clGetLayerInfo_t *
|
||||
clGetLayerInfo_fn ;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clInitLayer_t(
|
||||
cl_uint num_entries,
|
||||
const cl_icd_dispatch* target_dispatch,
|
||||
cl_uint* num_entries_ret,
|
||||
const cl_icd_dispatch** layer_dispatch_ret);
|
||||
|
||||
typedef clInitLayer_t *
|
||||
clInitLayer_fn ;
|
||||
|
||||
/*
|
||||
** The function pointer typedefs prefixed with "pfn_" are provided for
|
||||
** compatibility with earlier versions of the headers. New code is
|
||||
** encouraged to use the function pointer typedefs that are suffixed with
|
||||
** "_fn" instead, for consistency.
|
||||
*/
|
||||
|
||||
typedef clGetLayerInfo_t *
|
||||
pfn_clGetLayerInfo ;
|
||||
|
||||
typedef clInitLayer_t *
|
||||
pfn_clInitLayer ;
|
||||
|
||||
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetLayerInfo(
|
||||
cl_layer_info param_name,
|
||||
size_t param_value_size,
|
||||
void* param_value,
|
||||
size_t* param_value_size_ret) ;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clInitLayer(
|
||||
cl_uint num_entries,
|
||||
const cl_icd_dispatch* target_dispatch,
|
||||
cl_uint* num_entries_ret,
|
||||
const cl_icd_dispatch** layer_dispatch_ret) ;
|
||||
|
||||
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* OPENCL_CL_LAYER_H_ */
|
@@ -77,7 +77,7 @@ extern "C" {
|
||||
#ifdef __GNUC__
|
||||
#define CL_API_SUFFIX_DEPRECATED __attribute__((deprecated))
|
||||
#define CL_API_PREFIX_DEPRECATED
|
||||
#elif defined(_WIN32)
|
||||
#elif defined(_MSC_VER) && !defined(__clang__)
|
||||
#define CL_API_SUFFIX_DEPRECATED
|
||||
#define CL_API_PREFIX_DEPRECATED __declspec(deprecated)
|
||||
#else
|
||||
@@ -361,11 +361,6 @@ typedef double cl_double;
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
/* Mirror types to GL types. Mirror types allow us to avoid deciding which 87s to load based on whether we are using GL or GLES here. */
|
||||
typedef unsigned int cl_GLuint;
|
||||
typedef int cl_GLint;
|
||||
typedef unsigned int cl_GLenum;
|
||||
|
||||
/*
|
||||
* Vector types
|
||||
*
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2020 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2023 The Khronos Group Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -14,12 +14,33 @@
|
||||
* limitations under the License.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H
|
||||
#define __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H
|
||||
#ifndef OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_
|
||||
#define OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos OpenCL XML API Registry.
|
||||
*/
|
||||
|
||||
#include <va/va.h>
|
||||
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
#include <va/va.h>
|
||||
|
||||
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
/* CL_NO_EXTENSION_PROTOTYPES implies
|
||||
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
|
||||
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
|
||||
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -29,9 +50,29 @@ extern "C" {
|
||||
* cl_intel_sharing_format_query_va_api
|
||||
***************************************************************/
|
||||
#define cl_intel_sharing_format_query_va_api 1
|
||||
#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API_EXTENSION_NAME \
|
||||
"cl_intel_sharing_format_query_va_api"
|
||||
|
||||
|
||||
#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
|
||||
|
||||
/* when cl_intel_va_api_media_sharing is supported */
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetSupportedVA_APIMediaSurfaceFormatsINTEL_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_mem_object_type image_type,
|
||||
cl_uint plane,
|
||||
cl_uint num_entries,
|
||||
VAImageFormat* va_api_formats,
|
||||
cl_uint* num_surface_formats);
|
||||
|
||||
typedef clGetSupportedVA_APIMediaSurfaceFormatsINTEL_t *
|
||||
clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn ;
|
||||
|
||||
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetSupportedVA_APIMediaSurfaceFormatsINTEL(
|
||||
cl_context context,
|
||||
@@ -42,23 +83,22 @@ clGetSupportedVA_APIMediaSurfaceFormatsINTEL(
|
||||
VAImageFormat* va_api_formats,
|
||||
cl_uint* num_surface_formats) ;
|
||||
|
||||
typedef cl_int (CL_API_CALL *
|
||||
clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_mem_object_type image_type,
|
||||
cl_uint plane,
|
||||
cl_uint num_entries,
|
||||
VAImageFormat* va_api_formats,
|
||||
cl_uint* num_surface_formats) ;
|
||||
|
||||
/******************************************
|
||||
* cl_intel_va_api_media_sharing extension *
|
||||
*******************************************/
|
||||
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
/***************************************************************
|
||||
* cl_intel_va_api_media_sharing
|
||||
***************************************************************/
|
||||
#define cl_intel_va_api_media_sharing 1
|
||||
#define CL_INTEL_VA_API_MEDIA_SHARING_EXTENSION_NAME \
|
||||
"cl_intel_va_api_media_sharing"
|
||||
|
||||
/* error codes */
|
||||
|
||||
#define CL_INTEL_VA_API_MEDIA_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
|
||||
|
||||
typedef cl_uint cl_va_api_device_source_intel;
|
||||
typedef cl_uint cl_va_api_device_set_intel;
|
||||
|
||||
/* Error codes */
|
||||
#define CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL -1098
|
||||
#define CL_INVALID_VA_API_MEDIA_SURFACE_INTEL -1099
|
||||
#define CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL -1100
|
||||
@@ -84,20 +124,59 @@ clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)(
|
||||
#define CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL 0x409A
|
||||
#define CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL 0x409B
|
||||
|
||||
typedef cl_uint cl_va_api_device_source_intel;
|
||||
typedef cl_uint cl_va_api_device_set_intel;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromVA_APIMediaAdapterINTEL(
|
||||
typedef cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromVA_APIMediaAdapterINTEL_t(
|
||||
cl_platform_id platform,
|
||||
cl_va_api_device_source_intel media_adapter_type,
|
||||
void* media_adapter,
|
||||
cl_va_api_device_set_intel media_adapter_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id* devices,
|
||||
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2;
|
||||
cl_uint* num_devices);
|
||||
|
||||
typedef cl_int (CL_API_CALL * clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)(
|
||||
typedef clGetDeviceIDsFromVA_APIMediaAdapterINTEL_t *
|
||||
clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_mem CL_API_CALL
|
||||
clCreateFromVA_APIMediaSurfaceINTEL_t(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
VASurfaceID* surface,
|
||||
cl_uint plane,
|
||||
cl_int* errcode_ret);
|
||||
|
||||
typedef clCreateFromVA_APIMediaSurfaceINTEL_t *
|
||||
clCreateFromVA_APIMediaSurfaceINTEL_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueAcquireVA_APIMediaSurfacesINTEL_t(
|
||||
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);
|
||||
|
||||
typedef clEnqueueAcquireVA_APIMediaSurfacesINTEL_t *
|
||||
clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_int CL_API_CALL
|
||||
clEnqueueReleaseVA_APIMediaSurfacesINTEL_t(
|
||||
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);
|
||||
|
||||
typedef clEnqueueReleaseVA_APIMediaSurfacesINTEL_t *
|
||||
clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromVA_APIMediaAdapterINTEL(
|
||||
cl_platform_id platform,
|
||||
cl_va_api_device_source_intel media_adapter_type,
|
||||
void* media_adapter,
|
||||
@@ -114,13 +193,6 @@ clCreateFromVA_APIMediaSurfaceINTEL(
|
||||
cl_uint plane,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_mem (CL_API_CALL * clCreateFromVA_APIMediaSurfaceINTEL_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
VASurfaceID* surface,
|
||||
cl_uint plane,
|
||||
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireVA_APIMediaSurfacesINTEL(
|
||||
cl_command_queue command_queue,
|
||||
@@ -130,14 +202,6 @@ clEnqueueAcquireVA_APIMediaSurfacesINTEL(
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueAcquireVA_APIMediaSurfacesINTEL_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;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseVA_APIMediaSurfacesINTEL(
|
||||
cl_command_queue command_queue,
|
||||
@@ -147,17 +211,10 @@ clEnqueueReleaseVA_APIMediaSurfacesINTEL(
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef cl_int (CL_API_CALL *clEnqueueReleaseVA_APIMediaSurfacesINTEL_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;
|
||||
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H */
|
||||
|
||||
#endif /* OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_ */
|
||||
|
@@ -105,9 +105,12 @@ opencl_headers = files(
|
||||
'CL/cl_egl.h',
|
||||
'CL/cl_ext.h',
|
||||
'CL/cl_ext_intel.h',
|
||||
'CL/cl_function_types.h',
|
||||
'CL/cl_gl.h',
|
||||
'CL/cl_gl_ext.h',
|
||||
'CL/cl_half.h',
|
||||
'CL/cl_icd.h',
|
||||
'CL/cl_layer.h',
|
||||
'CL/cl_platform.h',
|
||||
'CL/cl_va_api_media_sharing_intel.h',
|
||||
'CL/cl_version.h',
|
||||
|
@@ -485,40 +485,40 @@ extern "C" fn clGetExtensionFunctionAddress(
|
||||
"clCreateCommandQueueWithPropertiesKHR" => cl_ext_func!(clCreateCommandQueueWithProperties: clCreateCommandQueueWithPropertiesKHR_fn),
|
||||
|
||||
// cl_khr_icd
|
||||
"clGetPlatformInfo" => cl_ext_func!(clGetPlatformInfo: cl_api_clGetPlatformInfo),
|
||||
"clGetPlatformInfo" => cl_ext_func!(clGetPlatformInfo: clGetPlatformInfo_fn),
|
||||
"clIcdGetPlatformIDsKHR" => cl_ext_func!(clIcdGetPlatformIDsKHR: clIcdGetPlatformIDsKHR_fn),
|
||||
|
||||
// cl_khr_il_program
|
||||
"clCreateProgramWithILKHR" => cl_ext_func!(clCreateProgramWithIL: clCreateProgramWithILKHR_fn),
|
||||
|
||||
// cl_khr_gl_sharing
|
||||
"clCreateFromGLBuffer" => cl_ext_func!(clCreateFromGLBuffer: cl_api_clCreateFromGLBuffer),
|
||||
"clCreateFromGLRenderbuffer" => cl_ext_func!(clCreateFromGLRenderbuffer: cl_api_clCreateFromGLRenderbuffer),
|
||||
"clCreateFromGLTexture" => cl_ext_func!(clCreateFromGLTexture: cl_api_clCreateFromGLTexture),
|
||||
"clCreateFromGLTexture2D" => cl_ext_func!(clCreateFromGLTexture2D: cl_api_clCreateFromGLTexture2D),
|
||||
"clCreateFromGLTexture3D" => cl_ext_func!(clCreateFromGLTexture3D: cl_api_clCreateFromGLTexture3D),
|
||||
"clEnqueueAcquireGLObjects" => cl_ext_func!(clEnqueueAcquireGLObjects: cl_api_clEnqueueAcquireGLObjects),
|
||||
"clEnqueueReleaseGLObjects" => cl_ext_func!(clEnqueueReleaseGLObjects: cl_api_clEnqueueReleaseGLObjects),
|
||||
"clGetGLContextInfoKHR" => cl_ext_func!(clGetGLContextInfoKHR: cl_api_clGetGLContextInfoKHR),
|
||||
"clGetGLObjectInfo" => cl_ext_func!(clGetGLObjectInfo: cl_api_clGetGLObjectInfo),
|
||||
"clGetGLTextureInfo" => cl_ext_func!(clGetGLTextureInfo: cl_api_clGetGLTextureInfo),
|
||||
"clCreateFromGLBuffer" => cl_ext_func!(clCreateFromGLBuffer: clCreateFromGLBuffer_fn),
|
||||
"clCreateFromGLRenderbuffer" => cl_ext_func!(clCreateFromGLRenderbuffer: clCreateFromGLRenderbuffer_fn),
|
||||
"clCreateFromGLTexture" => cl_ext_func!(clCreateFromGLTexture: clCreateFromGLTexture_fn),
|
||||
"clCreateFromGLTexture2D" => cl_ext_func!(clCreateFromGLTexture2D: clCreateFromGLTexture2D_fn),
|
||||
"clCreateFromGLTexture3D" => cl_ext_func!(clCreateFromGLTexture3D: clCreateFromGLTexture3D_fn),
|
||||
"clEnqueueAcquireGLObjects" => cl_ext_func!(clEnqueueAcquireGLObjects: clEnqueueAcquireGLObjects_fn),
|
||||
"clEnqueueReleaseGLObjects" => cl_ext_func!(clEnqueueReleaseGLObjects: clEnqueueReleaseGLObjects_fn),
|
||||
"clGetGLContextInfoKHR" => cl_ext_func!(clGetGLContextInfoKHR: clGetGLContextInfoKHR_fn),
|
||||
"clGetGLObjectInfo" => cl_ext_func!(clGetGLObjectInfo: clGetGLObjectInfo_fn),
|
||||
"clGetGLTextureInfo" => cl_ext_func!(clGetGLTextureInfo: clGetGLTextureInfo_fn),
|
||||
|
||||
// cl_khr_suggested_local_work_size
|
||||
"clGetKernelSuggestedLocalWorkSizeKHR" => cl_ext_func!(clGetKernelSuggestedLocalWorkSizeKHR: clGetKernelSuggestedLocalWorkSizeKHR_fn),
|
||||
|
||||
// cl_arm_shared_virtual_memory
|
||||
"clEnqueueSVMFreeARM" => cl_ext_func!(clEnqueueSVMFreeARM: cl_api_clEnqueueSVMFree),
|
||||
"clEnqueueSVMMapARM" => cl_ext_func!(clEnqueueSVMMapARM: cl_api_clEnqueueSVMMap),
|
||||
"clEnqueueSVMMemcpyARM" => cl_ext_func!(clEnqueueSVMMemcpyARM: cl_api_clEnqueueSVMMemcpy),
|
||||
"clEnqueueSVMMemFillARM" => cl_ext_func!(clEnqueueSVMMemFillARM: cl_api_clEnqueueSVMMemFill),
|
||||
"clEnqueueSVMUnmapARM" => cl_ext_func!(clEnqueueSVMUnmapARM: cl_api_clEnqueueSVMUnmap),
|
||||
"clSetKernelArgSVMPointerARM" => cl_ext_func!(clSetKernelArgSVMPointer: cl_api_clSetKernelArgSVMPointer),
|
||||
"clSetKernelExecInfoARM" => cl_ext_func!(clSetKernelExecInfo: cl_api_clSetKernelExecInfo),
|
||||
"clSVMAllocARM" => cl_ext_func!(clSVMAlloc: cl_api_clSVMAlloc),
|
||||
"clSVMFreeARM" => cl_ext_func!(clSVMFree: cl_api_clSVMFree),
|
||||
"clEnqueueSVMFreeARM" => cl_ext_func!(clEnqueueSVMFreeARM: clEnqueueSVMFreeARM_fn),
|
||||
"clEnqueueSVMMapARM" => cl_ext_func!(clEnqueueSVMMapARM: clEnqueueSVMMapARM_fn),
|
||||
"clEnqueueSVMMemcpyARM" => cl_ext_func!(clEnqueueSVMMemcpyARM: clEnqueueSVMMemcpyARM_fn),
|
||||
"clEnqueueSVMMemFillARM" => cl_ext_func!(clEnqueueSVMMemFillARM: clEnqueueSVMMemFillARM_fn),
|
||||
"clEnqueueSVMUnmapARM" => cl_ext_func!(clEnqueueSVMUnmapARM: clEnqueueSVMUnmapARM_fn),
|
||||
"clSetKernelArgSVMPointerARM" => cl_ext_func!(clSetKernelArgSVMPointer: clSetKernelArgSVMPointerARM_fn),
|
||||
"clSetKernelExecInfoARM" => cl_ext_func!(clSetKernelExecInfo: clSetKernelExecInfoARM_fn),
|
||||
"clSVMAllocARM" => cl_ext_func!(clSVMAlloc: clSVMAllocARM_fn),
|
||||
"clSVMFreeARM" => cl_ext_func!(clSVMFree: clSVMFreeARM_fn),
|
||||
|
||||
// DPCPP bug https://github.com/intel/llvm/issues/9964
|
||||
"clSetProgramSpecializationConstant" => cl_ext_func!(clSetProgramSpecializationConstant: cl_api_clSetProgramSpecializationConstant),
|
||||
"clSetProgramSpecializationConstant" => cl_ext_func!(clSetProgramSpecializationConstant: clSetProgramSpecializationConstant_fn),
|
||||
|
||||
_ => ptr::null_mut(),
|
||||
}
|
||||
|
@@ -1930,8 +1930,8 @@ fn enqueue_fill_image(
|
||||
command_queue: cl_command_queue,
|
||||
image: cl_mem,
|
||||
fill_color: *const ::std::os::raw::c_void,
|
||||
origin: *const [usize; 3],
|
||||
region: *const [usize; 3],
|
||||
origin: *const usize,
|
||||
region: *const usize,
|
||||
num_events_in_wait_list: cl_uint,
|
||||
event_wait_list: *const cl_event,
|
||||
event: *mut cl_event,
|
||||
|
@@ -101,7 +101,6 @@ rusticl_gen_args = [
|
||||
|
||||
rusticl_bindgen_args = [
|
||||
'--no-convert-floats',
|
||||
'--use-array-pointers-in-arguments',
|
||||
'--default-enum-style', 'rust',
|
||||
'--with-derive-partialeq',
|
||||
'--with-derive-eq',
|
||||
@@ -260,6 +259,10 @@ rusticl_mesa_bindings = rust.bindgen(
|
||||
],
|
||||
args : [
|
||||
rusticl_bindgen_args,
|
||||
|
||||
# we want that for mesa
|
||||
'--use-array-pointers-in-arguments',
|
||||
|
||||
# mesa utils
|
||||
'--allowlist-function', 'blob_.*',
|
||||
'--allowlist-function', 'disk_cache_.*',
|
||||
|
Reference in New Issue
Block a user