@@ -36,14 +36,6 @@ static const char *kernelpattern_image_write_1D =
36
36
" write_image%s( dest, index, %s(value));\n "
37
37
" }\n " ;
38
38
39
- static const char *kernelpattern_image_write_1D_half =
40
- " #pragma OPENCL EXTENSION cl_khr_fp16 : enable\n "
41
- " __kernel void sample_test( __global half4 *source, write_only image1d_t dest )\n "
42
- " {\n "
43
- " uint index = get_global_id(0);\n "
44
- " write_imagef( dest, index, vload_half4(index, (__global half *)source));\n "
45
- " }\n " ;
46
-
47
39
static const char *kernelpattern_image_write_1D_buffer =
48
40
" __kernel void sample_test( __global %s4 *source, write_only image1d_buffer_t dest )\n "
49
41
" {\n "
@@ -52,14 +44,6 @@ static const char *kernelpattern_image_write_1D_buffer =
52
44
" write_image%s( dest, index, %s(value));\n "
53
45
" }\n " ;
54
46
55
- static const char *kernelpattern_image_write_1D_buffer_half =
56
- " #pragma OPENCL EXTENSION cl_khr_fp16 : enable\n "
57
- " __kernel void sample_test( __global half4 *source, write_only image1d_buffer_t dest )\n "
58
- " {\n "
59
- " uint index = get_global_id(0);\n "
60
- " write_imagef( dest, index, vload_half4(index, (__global half *)source));\n "
61
- " }\n " ;
62
-
63
47
static const char *kernelpattern_image_write_2D =
64
48
" __kernel void sample_test( __global %s4 *source, write_only image2d_t dest )\n "
65
49
" {\n "
@@ -70,16 +54,6 @@ static const char *kernelpattern_image_write_2D =
70
54
" write_image%s( dest, (int2)( tidX, tidY ), %s(value));\n "
71
55
" }\n " ;
72
56
73
- static const char *kernelpattern_image_write_2D_half =
74
- " #pragma OPENCL EXTENSION cl_khr_fp16 : enable\n "
75
- " __kernel void sample_test( __global half4 *source, write_only image2d_t dest )\n "
76
- " {\n "
77
- " int tidX = get_global_id(0);\n "
78
- " int tidY = get_global_id(1);\n "
79
- " uint index = tidY * get_image_width( dest ) + tidX;\n "
80
- " write_imagef( dest, (int2)( tidX, tidY ), vload_half4(index, (__global half *)source));\n "
81
- " }\n " ;
82
-
83
57
static const char *kernelpattern_image_write_1Darray =
84
58
" __kernel void sample_test( __global %s4 *source, write_only image1d_array_t dest )\n "
85
59
" {\n "
@@ -90,16 +64,6 @@ static const char *kernelpattern_image_write_1Darray =
90
64
" write_image%s( dest, (int2)( tidX, tidY ), %s(value));\n "
91
65
" }\n " ;
92
66
93
- static const char *kernelpattern_image_write_1Darray_half =
94
- " #pragma OPENCL EXTENSION cl_khr_fp16 : enable\n "
95
- " __kernel void sample_test( __global half4 *source, write_only image1d_array_t dest )\n "
96
- " {\n "
97
- " int tidX = get_global_id(0);\n "
98
- " int tidY = get_global_id(1);\n "
99
- " uint index = tidY * get_image_width( dest ) + tidX;\n "
100
- " write_imagef( dest, (int2)( tidX, tidY ), vload_half4(index, (__global half *)source));\n "
101
- " }\n " ;
102
-
103
67
static const char *kernelpattern_image_write_3D =
104
68
" #pragma OPENCL EXTENSION cl_khr_3d_image_writes : enable\n "
105
69
" __kernel void sample_test( __global %s4 *source, write_only image3d_t dest )\n "
@@ -114,20 +78,6 @@ static const char *kernelpattern_image_write_3D =
114
78
" write_image%s( dest, (int4)( tidX, tidY, tidZ, 0 ), %s(value));\n "
115
79
" }\n " ;
116
80
117
- static const char *kernelpattern_image_write_3D_half =
118
- " #pragma OPENCL EXTENSION cl_khr_fp16 : enable\n "
119
- " #pragma OPENCL EXTENSION cl_khr_3d_image_writes : enable\n "
120
- " __kernel void sample_test( __global half4 *source, write_only image3d_t dest )\n "
121
- " {\n "
122
- " int tidX = get_global_id(0);\n "
123
- " int tidY = get_global_id(1);\n "
124
- " int tidZ = get_global_id(2);\n "
125
- " int width = get_image_width( dest );\n "
126
- " int height = get_image_height( dest );\n "
127
- " int index = tidZ * width * height + tidY * width + tidX;\n "
128
- " write_imagef( dest, (int4)( tidX, tidY, tidZ, 0 ), vload_half4(index, (__global half *)source));\n "
129
- " }\n " ;
130
-
131
81
static const char *kernelpattern_image_write_2Darray =
132
82
" __kernel void sample_test( __global %s4 *source, write_only image2d_array_t dest )\n "
133
83
" {\n "
@@ -141,19 +91,6 @@ static const char *kernelpattern_image_write_2Darray =
141
91
" write_image%s( dest, (int4)( tidX, tidY, tidZ, 0 ), %s(value));\n "
142
92
" }\n " ;
143
93
144
- static const char *kernelpattern_image_write_2Darray_half =
145
- " #pragma OPENCL EXTENSION cl_khr_fp16 : enable\n "
146
- " __kernel void sample_test( __global half4 *source, write_only image2d_array_t dest )\n "
147
- " {\n "
148
- " int tidX = get_global_id(0);\n "
149
- " int tidY = get_global_id(1);\n "
150
- " int tidZ = get_global_id(2);\n "
151
- " int width = get_image_width( dest );\n "
152
- " int height = get_image_height( dest );\n "
153
- " int index = tidZ * width * height + tidY * width + tidX;\n "
154
- " write_imagef( dest, (int4)( tidX, tidY, tidZ, 0 ), vload_half4(index, (__global half *)source));\n "
155
- " }\n " ;
156
-
157
94
#ifdef GL_VERSION_3_2
158
95
159
96
static const char * kernelpattern_image_write_2D_depth =
@@ -192,24 +129,12 @@ static const char *get_appropriate_write_kernel(GLenum target,
192
129
{
193
130
switch (get_base_gl_target (target))
194
131
{
195
- case GL_TEXTURE_1D:
196
-
197
- if (type == kHalf )
198
- return kernelpattern_image_write_1D_half;
199
- else
200
- return kernelpattern_image_write_1D;
201
- break ;
132
+ case GL_TEXTURE_1D: return kernelpattern_image_write_1D; break ;
202
133
case GL_TEXTURE_BUFFER:
203
- if (type == kHalf )
204
- return kernelpattern_image_write_1D_buffer_half;
205
- else
206
- return kernelpattern_image_write_1D_buffer;
134
+ return kernelpattern_image_write_1D_buffer;
207
135
break ;
208
136
case GL_TEXTURE_1D_ARRAY:
209
- if (type == kHalf )
210
- return kernelpattern_image_write_1Darray_half;
211
- else
212
- return kernelpattern_image_write_1Darray;
137
+ return kernelpattern_image_write_1Darray;
213
138
break ;
214
139
case GL_COLOR_ATTACHMENT0:
215
140
case GL_RENDERBUFFER:
@@ -220,29 +145,18 @@ static const char *get_appropriate_write_kernel(GLenum target,
220
145
if (channel_order == CL_DEPTH || channel_order == CL_DEPTH_STENCIL)
221
146
return kernelpattern_image_write_2D_depth;
222
147
#endif
223
- if (type == kHalf )
224
- return kernelpattern_image_write_2D_half;
225
- else
226
- return kernelpattern_image_write_2D;
148
+ return kernelpattern_image_write_2D;
227
149
break ;
228
150
229
151
case GL_TEXTURE_2D_ARRAY:
230
152
#ifdef GL_VERSION_3_2
231
153
if (channel_order == CL_DEPTH || channel_order == CL_DEPTH_STENCIL)
232
154
return kernelpattern_image_write_2D_array_depth;
233
155
#endif
234
- if (type == kHalf )
235
- return kernelpattern_image_write_2Darray_half;
236
- else
237
- return kernelpattern_image_write_2Darray;
156
+ return kernelpattern_image_write_2Darray;
238
157
break ;
239
158
240
- case GL_TEXTURE_3D:
241
- if (type == kHalf )
242
- return kernelpattern_image_write_3D_half;
243
- else
244
- return kernelpattern_image_write_3D;
245
- break ;
159
+ case GL_TEXTURE_3D: return kernelpattern_image_write_3D; break ;
246
160
247
161
default :
248
162
log_error (" Unsupported GL tex target (%s) passed to write test: "
@@ -310,8 +224,7 @@ void set_dimensions_by_target(GLenum target, size_t *dims, size_t sizes[3],
310
224
int test_cl_image_write (cl_context context, cl_command_queue queue,
311
225
GLenum target, cl_mem clImage, size_t width,
312
226
size_t height, size_t depth, cl_image_format *outFormat,
313
- ExplicitType *outType, void **outSourceBuffer, MTdata d,
314
- bool supports_half)
227
+ ExplicitType *outType, void **outSourceBuffer, MTdata d)
315
228
{
316
229
size_t global_dims, global_sizes[3 ];
317
230
clProgramWrapper program;
@@ -335,11 +248,6 @@ int test_cl_image_write(cl_context context, cl_command_queue queue,
335
248
336
249
const char *appropriateKernel = get_appropriate_write_kernel (
337
250
target, *outType, outFormat->image_channel_order );
338
- if (*outType == kHalf && !supports_half)
339
- {
340
- log_info (" cl_khr_fp16 isn't supported. Skip this test.\n " );
341
- return 0 ;
342
- }
343
251
344
252
const char *suffix = get_kernel_suffix (outFormat);
345
253
const char *convert = get_write_conversion (outFormat, *outType);
@@ -429,8 +337,7 @@ static int test_image_write(cl_context context, cl_command_queue queue,
429
337
GLenum glTarget, GLuint glTexture, size_t width,
430
338
size_t height, size_t depth,
431
339
cl_image_format *outFormat, ExplicitType *outType,
432
- void **outSourceBuffer, MTdata d,
433
- bool supports_half)
340
+ void **outSourceBuffer, MTdata d)
434
341
{
435
342
int error;
436
343
@@ -450,8 +357,7 @@ static int test_image_write(cl_context context, cl_command_queue queue,
450
357
}
451
358
452
359
return test_cl_image_write (context, queue, glTarget, image, width, height,
453
- depth, outFormat, outType, outSourceBuffer, d,
454
- supports_half);
360
+ depth, outFormat, outType, outSourceBuffer, d);
455
361
}
456
362
457
363
int supportsHalf (cl_context context, bool *supports_half)
@@ -523,11 +429,6 @@ static int test_image_format_write(cl_context context, cl_command_queue queue,
523
429
ExplicitType type, MTdata d)
524
430
{
525
431
int error;
526
- // If we're testing a half float format, then we need to determine the
527
- // rounding mode of this machine. Punt if we fail to do so.
528
-
529
- if (type == kHalf )
530
- if (DetectFloatToHalfRoundingMode (queue)) return 1 ;
531
432
532
433
// Create an appropriate GL texture or renderbuffer, given the target.
533
434
@@ -616,28 +517,19 @@ static int test_image_format_write(cl_context context, cl_command_queue queue,
616
517
globj = glRenderbuffer;
617
518
}
618
519
619
- bool supports_half = false ;
620
- error = supportsHalf (context, &supports_half);
621
- if (error != 0 ) return error;
622
-
623
- error = test_image_write (context, queue, target, globj, width, height,
624
- depth, &clFormat, &sourceType,
625
- (void **)&outSourceBuffer, d, supports_half);
520
+ error =
521
+ test_image_write (context, queue, target, globj, width, height, depth,
522
+ &clFormat, &sourceType, (void **)&outSourceBuffer, d);
626
523
627
- if (error != 0 || ((sourceType == kHalf ) && !supports_half) )
524
+ if (error != 0 )
628
525
{
629
526
if (outSourceBuffer) free (outSourceBuffer);
630
527
return error;
631
528
}
632
529
633
530
if (!outSourceBuffer) return 0 ;
634
531
635
- // If actual source type was half, convert to float for validation.
636
-
637
- if (sourceType == kHalf )
638
- validationType = kFloat ;
639
- else
640
- validationType = sourceType;
532
+ validationType = sourceType;
641
533
642
534
BufferOwningPtr<char > validationSource;
643
535
@@ -685,7 +577,7 @@ static int test_image_format_write(cl_context context, cl_command_queue queue,
685
577
int valid = 0 ;
686
578
if (convertedGLResults)
687
579
{
688
- if (sourceType == kFloat || sourceType == kHalf )
580
+ if (sourceType == kFloat )
689
581
{
690
582
if (clFormat.image_channel_data_type == CL_UNORM_INT_101010)
691
583
{
0 commit comments