User:Rishabhsuthar32/GSoC20/Log
From BRL-CAD
Development Logs
Community Bonding Period
- Compiled working version of BRL-CAD with OpenCL on Ubuntu 18.04
- Got familiarised with the MGED commands and the sequence of code being called from the build
- Checked out other primitives which have been parallelized and their structure
Weekly update
- Week - 1 (June 1 - June 5)
- June 1: Working on getting ARBN primitive parallelized via OpenCL
- June 6: Submitted patch for review (June 6)
- Week - 2 (June 8 - June 12)
- June 8: Working on getting PIPE primitive parallelized via OpenCL
- June 9: Worked on discont_radius_shot() function
- June 10: Worked on bend_pipe_shot() function
- June 12: Worked on linear_pipe_shot() function
- Week - 3 (June 15 - June 19)
- June 15: Worked on pipe_start_shot() and pipe_end_shot() function
- June 17: Assembled all in pipe_shot() function
- June 19: Fixed a few bugs in pipe_shot() file
- Week - 4 (June 22 - June 26)
- June 22: Submitted the PIPE patch file in sourceforge
- June 23: Started working on Dispalcement Map primitive
- June 24: Worked on dsp_in_rpp() function
- June 26: Worked on recurse_dsp_bb() function
- Week - 5 (June 29 - July 03)
- June 29: Got stuck in recurse_dsp_bb() function
- July 1: First Evaluation Feedback
// Kept DSP primitive on hold owing to it's complex structure. Once I get used to the simple primitives, I'll be in a better position to work on DSP primitive. Hence, have kept it for the last month.
- July 3 : Started working on Volume primitive
- Week - 6 (July 6 - July 10)
- July 6: Completed rt_vol_shot() and rt_vol_norm() function
- July 8: Resolved few bugs
- July 9 - 10: Took a break for travelling to hometown owing to Covid-19
- Week - 7 (July 13 - July 17)
- July 13: Submitted patch for Volume primitive
- July 14: Started working on Metaball primitive
- July 15: Converted secondary function: rt_metaball_point_value_iso()
- July 16: Converted secondary function: rt_metaball_find_intersection()
- July 17: Implemented rt_metaball_shot() in metaball_shot.cl file
- Week - 8
- July 20: Completed rt_metaball_norm() function. Read about the inline functions being used here and it's possible counterpart and usage in OpenCL. I think I'll merge rt_metaball_norm_internal() into the norm method.
- July 21: Seems like there were two versions of the algorithm, only one of which was being used. Have removed the old version code from metaball_shot.cl file to remove redundancy.
- July 22: Submitted metaball primitive here: https://sourceforge.net/p/brlcad/patches/548/ . I made a typo mistake while developing a patch, I've resubmitted it. Use the latest patch in comments section. Onto EBM primitive now!
- July 23: The -z flag worked FINALLY! I though of giving it a try once again today and it worked. I'd to change the FindOpenCL.cmake file locally to ensure it catches the correct path of OpenCL directory. This has indeed solved a big problem of mine. I'll revisit the previous patches now and update them accordingly. Will also include a detailed documentation of the commands and resolution of the errors I faced for future reference soon.
- July 24: Submitted patch for FindOpenCL.cmake file here: https://sourceforge.net/p/brlcad/patches/549/ . Debugged the ARBN primitive patch files to remove the compile-time errors and typos! Moved on to VOL primitive, couldn't find relevant rendering command.
- Week - 9
- July 27: Debugging METABALL primitive. Looking into plausible ways of passing extra parameters r_min and r_max from metaball_shot() to its rt.cl declaration.
- July 28: While compiling previously converted primitives like ELL and ARB8, I got compilation error. On running the code, I found a bug in master branch itself. There was a mismatch between uchar2 and uchar3 in clt_frame() function in primitve_util.c and all it's related functions. I've updated the code, will include a patch for this. All primitives are rendering successfully now! Yayyyy!