MCPcopy Create free account
hub / github.com/KhronosGroup/OpenCL-CTS / test_buffer_fill

Function test_buffer_fill

test_conformance/buffers/test_buffer_fill.cpp:560–709  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

558
559
560static int test_buffer_fill(cl_device_id deviceID, cl_context context,
561 cl_command_queue queue, int num_elements,
562 size_t size, char *type, int loops, void *inptr[5],
563 void *hostptr[5], void *pattern[5],
564 size_t offset_elements, size_t fill_elements,
565 const char *kernelCode[], const char *kernelName[],
566 int (*fn)(void *, void *, int))
567{
568 void *outptr[5];
569 clProgramWrapper program[5];
570 clKernelWrapper kernel[5];
571 size_t ptrSizes[5];
572 size_t global_work_size[3];
573 int err;
574 int i;
575 int src_flag_id;
576 int total_errors = 0;
577
578 size_t min_alignment = get_min_alignment(context);
579
580 global_work_size[0] = (size_t)num_elements;
581
582 ptrSizes[0] = size;
583 ptrSizes[1] = ptrSizes[0] << 1;
584 ptrSizes[2] = ptrSizes[1] << 1;
585 ptrSizes[3] = ptrSizes[2] << 1;
586 ptrSizes[4] = ptrSizes[3] << 1;
587
588 loops = (loops < 5 ? loops : 5);
589 for (i = 0; i < loops; i++)
590 {
591 err = create_single_kernel_helper(context, &program[i], &kernel[i], 1,
592 &kernelCode[i], kernelName[i]);
593 if (err)
594 {
595 log_error(" Error creating program for %s\n", type);
596 return -1;
597 }
598
599 for (src_flag_id = 0; src_flag_id < NUM_FLAGS; src_flag_id++)
600 {
601 // Skip immutable memory flags
602 if (flag_set[src_flag_id] & CL_MEM_IMMUTABLE_EXT)
603 {
604 continue;
605 }
606
607 clEventWrapper event[2];
608 clMemWrapper buffers[2];
609 if ((flag_set[src_flag_id] & CL_MEM_USE_HOST_PTR) || (flag_set[src_flag_id] & CL_MEM_COPY_HOST_PTR))
610 buffers[0] = clCreateBuffer(context, flag_set[src_flag_id],
611 ptrSizes[i] * num_elements,
612 hostptr[i], &err);
613 else
614 buffers[0] =
615 clCreateBuffer(context, flag_set[src_flag_id],
616 ptrSizes[i] * num_elements, NULL, &err);
617 if (!buffers[0] || err)

Callers 1

REGISTER_TESTFunction · 0.85

Calls 4

get_min_alignmentFunction · 0.85
align_mallocFunction · 0.85
align_freeFunction · 0.85

Tested by

no test coverage detected