| 874 | } |
| 875 | |
| 876 | void opencl_destroy_context(opencl_context_ptr pContext) |
| 877 | { |
| 878 | if (!pContext) |
| 879 | return; |
| 880 | |
| 881 | interval_timer tm; |
| 882 | tm.start(); |
| 883 | |
| 884 | g_ocl.destroy_buffer(pContext->m_ocl_pixel_blocks); |
| 885 | |
| 886 | g_ocl.destroy_kernel(pContext->m_ocl_determine_selectors_kernel); |
| 887 | g_ocl.destroy_kernel(pContext->m_ocl_find_optimal_selector_clusters_for_each_block_kernel); |
| 888 | g_ocl.destroy_kernel(pContext->m_ocl_encode_etc1s_from_pixel_cluster_kernel); |
| 889 | g_ocl.destroy_kernel(pContext->m_ocl_encode_etc1s_blocks_kernel); |
| 890 | g_ocl.destroy_kernel(pContext->m_ocl_refine_endpoint_clusterization_kernel); |
| 891 | |
| 892 | g_ocl.destroy_command_queue(pContext->m_command_queue); |
| 893 | |
| 894 | memset(pContext, 0, sizeof(opencl_context)); |
| 895 | |
| 896 | free(pContext); |
| 897 | |
| 898 | debug_printf("opencl_destroy_context: Elapsed time: %f secs\n", tm.get_elapsed_secs()); |
| 899 | } |
| 900 | |
| 901 | #pragma pack(push, 1) |
| 902 | struct cl_encode_etc1s_param_struct |
no test coverage detected