MCPcopy Create free account
hub / github.com/BinomialLLC/basis_universal / opencl_init

Function opencl_init

encoder/basisu_opencl.cpp:730–780  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

basisu_encoder_initFunction · 0.85

Calls 8

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

Tested by

no test coverage detected