File: sycl_image_handle.cl

package info (click to toggle)
intel-graphics-compiler2 2.28.4-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 792,744 kB
  • sloc: cpp: 5,761,745; ansic: 466,928; lisp: 312,143; python: 114,790; asm: 44,736; pascal: 10,930; sh: 8,033; perl: 7,914; ml: 3,625; awk: 3,523; yacc: 2,747; javascript: 2,667; lex: 1,898; f90: 1,028; cs: 573; xml: 474; makefile: 344; objc: 162
file content (47 lines) | stat: -rw-r--r-- 3,206 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*========================== begin_copyright_notice ============================

Copyright (C) 2023 Intel Corporation

SPDX-License-Identifier: MIT

============================= end_copyright_notice ===========================*/

// ---------OpConvertHandleToImage/SampledImage/SamplerINTEL---------
// Convert SYCL bindless image integer handle to spirv image/sampled image
#define DEF_CONVERT_HANDLE_TO_IMAGE(DIM, INT_PARAMS, ACC_QUAL, ARRAY_DEPTH)                                                                           \
global Img##DIM##d##ARRAY_DEPTH##_##ACC_QUAL* OVERLOADABLE __spirv_ConvertHandleToImageINTEL_RPU3AS133__spirv_Image__void_##INT_PARAMS(size_t handle) \
{                                                                                                                                                     \
    return __builtin_astype(handle, global Img##DIM##d##ARRAY_DEPTH##_##ACC_QUAL*);                                                                   \
}

#define DEF_CONVERT_HANDLE_TO_IMAGE_ACC_QUAL(DIM, INT_PARAMS, ARRAY_DEPTH) \
DEF_CONVERT_HANDLE_TO_IMAGE(DIM, INT_PARAMS##_0, ro, ARRAY_DEPTH)          \
DEF_CONVERT_HANDLE_TO_IMAGE(DIM, INT_PARAMS##_1, wo, ARRAY_DEPTH)          \
DEF_CONVERT_HANDLE_TO_IMAGE(DIM, INT_PARAMS##_2, rw, ARRAY_DEPTH)          \

DEF_CONVERT_HANDLE_TO_IMAGE_ACC_QUAL(1, 0_0_0_0_0_0, )             // 1d
DEF_CONVERT_HANDLE_TO_IMAGE_ACC_QUAL(1, 0_0_1_0_0_0, _array)       // 1d array
DEF_CONVERT_HANDLE_TO_IMAGE_ACC_QUAL(2, 1_0_0_0_0_0, )             // 2d
DEF_CONVERT_HANDLE_TO_IMAGE_ACC_QUAL(2, 1_1_0_0_0_0, _depth)       // 2d depth
DEF_CONVERT_HANDLE_TO_IMAGE_ACC_QUAL(2, 1_0_1_0_0_0, _array)       // 2d array
DEF_CONVERT_HANDLE_TO_IMAGE_ACC_QUAL(2, 1_1_1_0_0_0, _array_depth) // 2d depth array
DEF_CONVERT_HANDLE_TO_IMAGE_ACC_QUAL(3, 2_0_0_0_0_0, )             // 3d

#define DEF_CONVERT_HANDLE_TO_SAMPLED_IMAGE(DIM, INT_PARAMS, ARRAY_DEPTH)                                                                                        \
__spirv_SampledImage_##DIM##D##ARRAY_DEPTH OVERLOADABLE __spirv_ConvertHandleToSampledImageINTEL_RPU3AS140__spirv_SampledImage__void_##INT_PARAMS(size_t handle) \
{                                                                                                                                                                \
    return __builtin_astype(handle, __spirv_SampledImage_##DIM##D##ARRAY_DEPTH);                                                                                 \
}

DEF_CONVERT_HANDLE_TO_SAMPLED_IMAGE(1, 0_0_0_0_0_0_0, )             // 1d
DEF_CONVERT_HANDLE_TO_SAMPLED_IMAGE(1, 0_0_1_0_0_0_0, _array)       // 1d array
DEF_CONVERT_HANDLE_TO_SAMPLED_IMAGE(2, 1_0_0_0_0_0_0, )             // 2d
DEF_CONVERT_HANDLE_TO_SAMPLED_IMAGE(2, 1_1_0_0_0_0_0, _depth)       // 2d depth
DEF_CONVERT_HANDLE_TO_SAMPLED_IMAGE(2, 1_0_1_0_0_0_0, _array)       // 2d array
DEF_CONVERT_HANDLE_TO_SAMPLED_IMAGE(2, 1_1_1_0_0_0_0, _array_depth) // 2d depth array
DEF_CONVERT_HANDLE_TO_SAMPLED_IMAGE(3, 2_0_0_0_0_0_0, )             // 3d

__spirv_Sampler OVERLOADABLE __spirv_ConvertHandleToSamplerINTEL(size_t handle)
{
    return __builtin_IB_convert_object_type_to_spirv_sampler((ulong *)handle);
}