Exemplo n.º 1
0
static void
piglit_get_image_region(cl_mem image, size_t *region)
{
	size_t *p = NULL;
	cl_mem_object_type *type;

	type = piglit_cl_get_mem_object_info(image, CL_MEM_TYPE);

	p = piglit_cl_get_image_info(image, CL_IMAGE_WIDTH);
	region[0] = *p;
	free(p);

	switch (*type) {
#ifdef CL_VERSION_1_2
		case CL_MEM_OBJECT_IMAGE1D_ARRAY:
			p = piglit_cl_get_image_info(image, CL_IMAGE_ARRAY_SIZE);
			region[1] = *p;
			free(p);
			region[2] = 1;
			break;
		case CL_MEM_OBJECT_IMAGE1D:
		case CL_MEM_OBJECT_IMAGE1D_BUFFER:
			region[1] = 1;
			region[2] = 1;
			break;
		case CL_MEM_OBJECT_IMAGE2D_ARRAY:
			p = piglit_cl_get_image_info(image, CL_IMAGE_HEIGHT);
			region[1] = *p;
			free(p);
			p = piglit_cl_get_image_info(image, CL_IMAGE_ARRAY_SIZE);
			region[2] = *p;
			free(p);
			break;
#endif
		case CL_MEM_OBJECT_IMAGE2D:
			p = piglit_cl_get_image_info(image, CL_IMAGE_HEIGHT);
			region[1] = *p;
			free(p);
			region[2] = 1;
			break;
		case CL_MEM_OBJECT_IMAGE3D:
			p = piglit_cl_get_image_info(image, CL_IMAGE_HEIGHT);
			region[1] = *p;
			free(p);
			p = piglit_cl_get_image_info(image, CL_IMAGE_DEPTH);
			region[2] = *p;
			free(p);
			break;
	}

	free(type);
}
Exemplo n.º 2
0
bool
piglit_cl_read_whole_buffer(cl_command_queue command_queue, cl_mem buffer,
                            void *ptr)
{
	bool success;
	size_t* buffer_size;

	buffer_size = piglit_cl_get_mem_object_info(buffer, CL_MEM_SIZE);
	success = piglit_cl_read_buffer(command_queue, buffer, 0, *buffer_size,
	                                ptr);
	free(buffer_size);

	return success;
}