1// 2// Copyright (C) 2009-2021 Intel Corporation 3// 4// SPDX-License-Identifier: MIT 5// 6// 7 8module presplit; 9 10kernel_module presplit_kernels ("bvh_build_presplit.cl") 11{ 12 links lsc_intrinsics; 13 14 kernel opencl_kernel_compute_num_presplits < kernelFunction="compute_num_presplits" >; 15 kernel opencl_kernel_priority_sum < kernelFunction="priority_sum" >; 16 kernel opencl_kernel_perform_presplits < kernelFunction="perform_presplits" >; 17} 18 19import struct MKBuilderState "structs.grl"; 20import struct MKSizeEstimate "structs.grl"; 21 22 23metakernel compute_num_presplits( 24 MKBuilderState state, 25 qword presplit_buffer, 26 dword numHwThreads ) 27{ 28 dispatch opencl_kernel_compute_num_presplits ( numHwThreads, 1, 1 ) args( 29 state.build_globals, 30 state.bvh_buffer, 31 state.build_primref_buffer, 32 presplit_buffer, 33 state.geomDesc_buffer ); 34} 35 36 37metakernel priority_sum( 38 MKBuilderState state, 39 MKSizeEstimate estimate, 40 qword presplit_buffer ) 41{ 42 dispatch opencl_kernel_priority_sum ( 1, 1, 1 ) args( 43 state.build_globals, 44 presplit_buffer, 45 estimate.numPrimitivesToSplit / 2 ); 46} 47 48metakernel perform_presplits( 49 MKBuilderState state, 50 MKSizeEstimate estimate, 51 qword presplit_buffer, 52 dword numHwThreads ) 53{ 54 dispatch opencl_kernel_perform_presplits ( numHwThreads, 1, 1 ) args( 55 state.build_globals, 56 state.bvh_buffer, 57 state.build_primref_buffer, 58 presplit_buffer, 59 state.bvh_buffer, 60 state.geomDesc_buffer, 61 estimate.numPrimitivesToSplit / 2 ); 62} 63