You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
362 lines
12 KiB
362 lines
12 KiB
#include <CL/cl.h>
|
|
#include "param_struct.h"
|
|
#include <platform/icd_test_log.h>
|
|
|
|
extern cl_mem image;
|
|
extern cl_context context;
|
|
extern cl_command_queue command_queue;
|
|
extern cl_event event;
|
|
extern cl_mem buffer;
|
|
|
|
int ret_val;
|
|
|
|
const struct clGetSupportedImageFormats_st clGetSupportedImageFormatsData[NUM_ITEMS_clGetSupportedImageFormats] =
|
|
{
|
|
{ NULL, 0x0, 0, 0, NULL, NULL }
|
|
};
|
|
|
|
const struct clEnqueueCopyImageToBuffer_st clEnqueueCopyImageToBufferData[NUM_ITEMS_clEnqueueCopyImageToBuffer] =
|
|
{
|
|
{ NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL }
|
|
};
|
|
|
|
const struct clEnqueueCopyBufferToImage_st clEnqueueCopyBufferToImageData[NUM_ITEMS_clEnqueueCopyBufferToImage] =
|
|
{
|
|
{ NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL }
|
|
};
|
|
|
|
const struct clEnqueueMapImage_st clEnqueueMapImageData[NUM_ITEMS_clEnqueueMapImage] =
|
|
{
|
|
{ NULL, NULL, 0, 0x0, NULL, NULL, NULL, NULL,0, NULL, NULL}
|
|
};
|
|
|
|
const struct clEnqueueReadImage_st clEnqueueReadImageData[NUM_ITEMS_clEnqueueReadImage] =
|
|
{
|
|
{ NULL, NULL, 0, NULL, NULL, 0, 0, NULL, 0, NULL, NULL }
|
|
};
|
|
|
|
const struct clEnqueueWriteImage_st clEnqueueWriteImageData[NUM_ITEMS_clEnqueueWriteImage] =
|
|
{
|
|
{ NULL, NULL, 0, NULL, NULL, 0, 0, NULL, 0, NULL, NULL }
|
|
};
|
|
|
|
const struct clEnqueueFillImage_st clEnqueueFillImageData[NUM_ITEMS_clEnqueueFillImage] =
|
|
{
|
|
{ NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL }
|
|
};
|
|
|
|
const struct clEnqueueCopyImage_st clEnqueueCopyImageData[NUM_ITEMS_clEnqueueCopyImage] =
|
|
{
|
|
{ NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL }
|
|
};
|
|
|
|
const struct clGetImageInfo_st clGetImageInfoData[NUM_ITEMS_clGetImageInfo] =
|
|
{
|
|
{ NULL, 0, 0, NULL, NULL}
|
|
};
|
|
|
|
int test_clGetSupportedImageFormats(const struct clGetSupportedImageFormats_st *data)
|
|
{
|
|
test_icd_app_log("clGetSupportedImageFormats(%p, %x, %u, %u, %p, %p)\n",
|
|
context,
|
|
data->flags,
|
|
data->image_type,
|
|
data->num_entries,
|
|
data->image_formats,
|
|
data->num_image_formats);
|
|
|
|
ret_val = clGetSupportedImageFormats(context,
|
|
data->flags,
|
|
data->image_type,
|
|
data->num_entries,
|
|
data->image_formats,
|
|
data->num_image_formats);
|
|
|
|
test_icd_app_log("Value returned: %d\n", ret_val);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
int test_clEnqueueCopyImageToBuffer(const struct clEnqueueCopyImageToBuffer_st *data)
|
|
{
|
|
test_icd_app_log("clEnqueueCopyImageToBuffer(%p, %p, %p, %p, %p, %u, %u, %p, %p)\n",
|
|
command_queue,
|
|
image,
|
|
buffer,
|
|
data->src_origin,
|
|
data->region,
|
|
data->dst_offset,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
ret_val = clEnqueueCopyImageToBuffer(command_queue,
|
|
image,
|
|
buffer,
|
|
data->src_origin,
|
|
data->region,
|
|
data->dst_offset,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
test_icd_app_log("Value returned: %d\n", ret_val);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
int test_clEnqueueCopyBufferToImage(const struct clEnqueueCopyBufferToImage_st *data)
|
|
{
|
|
test_icd_app_log("clEnqueueCopyBufferToImage(%p, %p, %p, %u, %p, %p, %u, %p, %p)\n",
|
|
command_queue,
|
|
buffer,
|
|
image,
|
|
data->src_offset,
|
|
data->dst_origin,
|
|
data->region,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
ret_val = clEnqueueCopyBufferToImage(command_queue,
|
|
buffer,
|
|
image,
|
|
data->src_offset,
|
|
data->dst_origin,
|
|
data->region,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
test_icd_app_log("Value returned: %d\n", ret_val);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
int test_clEnqueueMapImage(const struct clEnqueueMapImage_st *data)
|
|
{
|
|
void *return_value;
|
|
test_icd_app_log("clEnqueueMapImage(%p, %p, %u, %x, %p, %p, %p, %p, %u, %p, %p, %p)\n",
|
|
command_queue,
|
|
image,
|
|
data->blocking_map,
|
|
data->map_flags,
|
|
data->origin,
|
|
data->region,
|
|
data->image_row_pitch,
|
|
data->image_slice_pitch,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event,
|
|
data->errcode_ret);
|
|
|
|
return_value = clEnqueueMapImage(command_queue,
|
|
image,
|
|
data->blocking_map,
|
|
data->map_flags,
|
|
data->origin,
|
|
data->region,
|
|
data->image_row_pitch,
|
|
data->image_slice_pitch,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event,
|
|
data->errcode_ret);
|
|
|
|
test_icd_app_log("Value returned: %p\n", return_value);
|
|
|
|
free(return_value);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
int test_clEnqueueReadImage(const struct clEnqueueReadImage_st *data)
|
|
{
|
|
test_icd_app_log("clEnqueueReadImage(%p, %p, %u, %p, %p, %u, %u, %p, %u, %p, %p)\n",
|
|
command_queue,
|
|
image,
|
|
data->blocking_read,
|
|
data->origin,
|
|
data->region,
|
|
data->row_pitch,
|
|
data->slice_pitch,
|
|
data->ptr,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
ret_val = clEnqueueReadImage(command_queue,
|
|
image,
|
|
data->blocking_read,
|
|
data->origin,
|
|
data->region,
|
|
data->row_pitch,
|
|
data->slice_pitch,
|
|
data->ptr,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
test_icd_app_log("Value returned: %d\n", ret_val);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
int test_clEnqueueWriteImage(const struct clEnqueueWriteImage_st *data)
|
|
{
|
|
test_icd_app_log("clEnqueueWriteImage(%p, %p, %u, %p, %p, %u, %u, %p, %u, %p, %p)\n",
|
|
command_queue,
|
|
image,
|
|
data->blocking_write,
|
|
data->origin,
|
|
data->region,
|
|
data->input_row_pitch,
|
|
data->input_slice_pitch,
|
|
data->ptr,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
ret_val = clEnqueueWriteImage(command_queue,
|
|
image,
|
|
data->blocking_write,
|
|
data->origin,
|
|
data->region,
|
|
data->input_row_pitch,
|
|
data->input_slice_pitch,
|
|
data->ptr,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
test_icd_app_log("Value returned: %d\n", ret_val);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
int test_clEnqueueFillImage(const struct clEnqueueFillImage_st *data)
|
|
{
|
|
test_icd_app_log("clEnqueueFillImage(%p, %p, %p, %p, %p, %u, %p, %p)\n",
|
|
command_queue,
|
|
image,
|
|
data->fill_color,
|
|
data->origin,
|
|
data->region,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
ret_val = clEnqueueFillImage(command_queue,
|
|
image,
|
|
data->fill_color,
|
|
data->origin,
|
|
data->region,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
test_icd_app_log("Value returned: %d\n", ret_val);
|
|
|
|
return 0;
|
|
|
|
}
|
|
int test_clEnqueueCopyImage(const struct clEnqueueCopyImage_st *data)
|
|
{
|
|
test_icd_app_log("clEnqueueCopyImage(%p, %p, %p, %p, %p, %p, %u, %p, %p)\n",
|
|
command_queue,
|
|
image,
|
|
image,
|
|
data->src_origin,
|
|
data->dst_origin,
|
|
data->region,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
ret_val = clEnqueueCopyImage(command_queue,
|
|
image,
|
|
image,
|
|
data->src_origin,
|
|
data->dst_origin,
|
|
data->region,
|
|
data->num_events_in_wait_list,
|
|
data->event_wait_list,
|
|
&event);
|
|
|
|
test_icd_app_log("Value returned: %d\n", ret_val);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
int test_clGetImageInfo(const struct clGetImageInfo_st *data)
|
|
{
|
|
test_icd_app_log("clGetImageInfo(%p, %u, %u, %p, %p)\n",
|
|
image,
|
|
data->param_name,
|
|
data->param_value_size,
|
|
data->param_value,
|
|
data->param_value_size_ret);
|
|
|
|
ret_val = clGetImageInfo(image,
|
|
data->param_name,
|
|
data->param_value_size,
|
|
data->param_value,
|
|
data->param_value_size_ret);
|
|
|
|
test_icd_app_log("Value returned: %d\n", ret_val);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
int test_image_objects()
|
|
{
|
|
int i;
|
|
|
|
for (i = 0; i<NUM_ITEMS_clGetSupportedImageFormats; i++) {
|
|
test_clGetSupportedImageFormats(&clGetSupportedImageFormatsData[i]);
|
|
}
|
|
|
|
for (i = 0; i<NUM_ITEMS_clEnqueueCopyImageToBuffer; i++) {
|
|
test_clEnqueueCopyImageToBuffer(&clEnqueueCopyImageToBufferData[i]);
|
|
}
|
|
|
|
for (i = 0; i<NUM_ITEMS_clEnqueueCopyBufferToImage; i++) {
|
|
test_clEnqueueCopyBufferToImage(&clEnqueueCopyBufferToImageData[i]);
|
|
}
|
|
|
|
for (i = 0; i<NUM_ITEMS_clEnqueueMapImage; i++) {
|
|
test_clEnqueueMapImage(&clEnqueueMapImageData[i]);
|
|
}
|
|
|
|
for (i = 0; i<NUM_ITEMS_clEnqueueReadImage; i++) {
|
|
test_clEnqueueReadImage(&clEnqueueReadImageData[i]);
|
|
}
|
|
|
|
for (i = 0; i<NUM_ITEMS_clEnqueueWriteImage; i++) {
|
|
test_clEnqueueWriteImage(&clEnqueueWriteImageData[i]);
|
|
}
|
|
|
|
for (i = 0; i<NUM_ITEMS_clEnqueueFillImage; i++) {
|
|
test_clEnqueueFillImage(&clEnqueueFillImageData[i]);
|
|
}
|
|
|
|
for (i = 0; i<NUM_ITEMS_clEnqueueCopyImage; i++) {
|
|
test_clEnqueueCopyImage(&clEnqueueCopyImageData[i]);
|
|
}
|
|
|
|
for (i = 0; i<NUM_ITEMS_clGetImageInfo; i++) {
|
|
test_clGetImageInfo(&clGetImageInfoData[i]);
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|