MCPcopy Create free account
hub / github.com/defold/defold / opencl_init

Function opencl_init

engine/dlib/src/basis/encoder/basisu_opencl.cpp:728–778  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

726 ocl g_ocl;
727
728 bool opencl_init(bool force_serialization)
729 {
730 if (g_ocl.is_initialized())
731 {
732 assert(0);
733 return false;
734 }
735
736 if (!g_ocl.init(force_serialization))
737 {
738 ocl_error_printf("opencl_init: Failed initializing OpenCL\n");
739 return false;
740 }
741
742 const char* pKernel_src = nullptr;
743 size_t kernel_src_size = 0;
744 uint8_vec kernel_src;
745
746#if BASISU_USE_OCL_KERNELS_HEADER
747 pKernel_src = reinterpret_cast<const char*>(ocl_kernels_cl);
748 kernel_src_size = ocl_kernels_cl_len;
749#else
750 if (!read_file_to_vec(BASISU_OCL_KERNELS_FILENAME, kernel_src))
751 {
752 ocl_error_printf("opencl_init: Cannot read OpenCL kernel source file \"%s\"\n", BASISU_OCL_KERNELS_FILENAME);
753 g_ocl.deinit();
754 return false;
755 }
756
757 pKernel_src = (char*)kernel_src.data();
758 kernel_src_size = kernel_src.size();
759#endif
760
761 if (!kernel_src_size)
762 {
763 ocl_error_printf("opencl_init: Invalid OpenCL kernel source file \"%s\"\n", BASISU_OCL_KERNELS_FILENAME);
764 g_ocl.deinit();
765 return false;
766 }
767
768 if (!g_ocl.init_program(pKernel_src, kernel_src_size))
769 {
770 ocl_error_printf("opencl_init: Failed compiling OpenCL program\n");
771 g_ocl.deinit();
772 return false;
773 }
774
775 printf("OpenCL support initialized successfully\n");
776
777 return true;
778 }
779
780 void opencl_deinit()
781 {

Callers 1

basisu_encoder_initFunction · 0.85

Calls 9

ocl_error_printfFunction · 0.85
read_file_to_vecFunction · 0.85
is_initializedMethod · 0.80
deinitMethod · 0.80
init_programMethod · 0.80
initMethod · 0.65
assertFunction · 0.50
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected