I just switched to Ubuntu for testing out PCL with BRLCAD, because Mac OSX just
keeps throwing error after error. I was able to build it with PCL in the
CMakeLists.
However, when I tried to add PCL libraries in include/rt/geom.h (I was trying
to replace the pnt structure with that of PCL’s point cloud class), I get a
build error saying the type ‘namespace' is not found. This is because PCL uses
the C++ library called Boost and that causes a problem as namespaces can’t be
used in C programs.
I tried using build option ENABLE_ALL_CXX_COMPILE and still get a 'template
with C linkage' error.
I’m going to try wrapping the C++ functions used by the boost namespace to
make it work with the header file in C (geom.h) - similar to this
<https://stackoverflow.com/questions/16058245/including-c-header-file-with-namespace-in-c-source-file-causes-compilation-err>
answer in stack overflow.
Regards,
Abhishek
> On Apr 3, 2018, at 2:30 AM, Christopher Sean Morrison <brl...@mac.com> wrote:
>
> That build error is in libnetpbm, and it looks like it’s using the Python
> framework, not the python you want to build against. That’s possibly an
> issue in libnetpbm’s build logic, check the build files there.
>
> Cheers!
> Sean
>
>
> On Apr 2, 2018, at 12:08 PM, Abhishek Vasudevan <abhishek.open...@gmail.com
> <mailto:abhishek.open...@gmail.com>> wrote:
>
>> Sorry, I think I was using the trunk version. Used the svn command to
>> download the code repository. You’re right with the unclean build. I cleared
>> up all the build files and tried using 'make install' once again. However,
>> this time I’m getting a python related error as shown in the screenshot. PCL
>> has some build code related to Python and is somehow causing a problem.
>>
>> PCL works fine when I build it separately, however, throws these errors when
>> I try to build it with BRLCAD. Any suggestions on what I should try next?
>>
>> Regards,
>> Abhishek
>>
>> <Screen Shot 2018-04-03 at 1.33.35 AM.png>
>>
>>> On Apr 2, 2018, at 4:40 PM, Christopher Sean Morrison <brl...@mac.com
>>> <mailto:brl...@mac.com>> wrote:
>>>
>>> No, I don’t. At quick look, I would think you’ve maybe been trying
>>> different build settings and this is an “unclean” build. Try deleting your
>>> build directory and building again fresh. If it still doesn’t work, I
>>> would have said it was something wrong with the Tcl update on trunk last
>>> week, but you said you’re using 7.26.4 and not trunk — so next suggestion
>>> would be to try trunk.
>>>
>>> Sean
>>>
>>>
>>>> On Apr 2, 2018, at 1:54 AM, Abhishek Vasudevan <abhishek.open...@gmail.com
>>>> <mailto:abhishek.open...@gmail.com>> wrote:
>>>>
>>>> I am using the latest version i.e., 7.26.4. I added the following lines to
>>>> the CMakeLists:
>>>>
>>>> find_package(PCL 1.8 REQUIRED COMPONENTS common io)
>>>> include_directories(${PCL_INCLUDE_DIRS})
>>>> link_directories(${PCL_LIBRARY_DIRS})
>>>> add_definitions(${PCL_DEFINITIONS})
>>>>
>>>> After this, I used: cmake .. -DBRLCAD_BUNDLED_LIBS=Bundled
>>>> -DBRLCAD_EXTRADOCS=OFF
>>>> Following this, I used 'sudo make install' and keep getting the error as
>>>> shown in screenshot.
>>>> <Screen Shot 2018-04-02 at 3.38.52 PM.png>
>>>>
>>>> Any idea what this error is about?
>>>>
>>>> Warm regards,
>>>> Abhishek
>>>>
>>>>> On Apr 2, 2018, at 12:30 PM, Christopher Sean Morrison <brl...@mac.com
>>>>> <mailto:brl...@mac.com>> wrote:
>>>>>
>>>>> BRL-CAD 7.2.4 was released in 2005 and didn’t use cmake, so hopefully you
>>>>> meant 7.26.4 or, better still, a trunk checkout from the SVN repository.
>>>>> If you’re going to be modifying code, you should typically use the latest
>>>>> repository sources.
>>>>>
>>>>> That said, it’s not clear from your screenshot why adding PCL would cause
>>>>> an error in xmltools, unless PCL includes its own copy of libxml that is
>>>>> incompatible with the bundled xsltproc sources. Try running cmake with
>>>>> -DBRLCAD_EXTRADOCS=OFF
>>>>>
>>>>> That should turn off the documentation system using xmltools.
>>>>>
>>>>> Cheers!
>>>>> Sean
>>>>>
>>>>>
>>>>>
>>>>>> On Apr 1, 2018, at 9:46 PM, Abhishek Vasudevan
>>>>>> <abhishek.open...@gmail.com <mailto:abhishek.open...@gmail.com>> wrote:
>>>>>>
>>>>>> Hello,
>>>>>> I’m having trouble building the code with PCL. I’ve added the PCL
>>>>>> 'find_package and include_directories’ in the CMakeLists (of the top
>>>>>> parent directory) and during the build process, it keeps throwing some
>>>>>> error related to struct _xmlBuf (while scanning the dependencies of
>>>>>> target xml in file
>>>>>> brlcad-7.2.4/misc/tools/xmltools/libxml/src/HTMLparser.c - screenshot
>>>>>> attached). But. when I remove the PCL part from the CMakeLists, the code
>>>>>> gets built.
>>>>>>
>>>>>> I’ll keep trying to resolve this issue. However, it would seem you have
>>>>>> to review my proposal without the patch.
>>>>>>
>>>>>> Warm regards,
>>>>>> Abhishek
>>>>>>
>>>>>> <Screen Shot 2018-04-02 at 11.41.49 AM.png>
>>>>>>
>>>>>>> On Mar 29, 2018, at 2:23 AM, Christopher Sean Morrison <brl...@mac.com
>>>>>>> <mailto:brl...@mac.com>> wrote:
>>>>>>>
>>>>>>> Jingchun,
>>>>>>>
>>>>>>> Are you currently working on a code patch?
>>>>>>>
>>>>>>> If you’re not, I would very much recommend it for you because it's
>>>>>>> difficult to tell from your proposal how adept you will be at working
>>>>>>> with BRL-CAD’s code and what practical OpenCL experience you have.
>>>>>>> Perhaps you can try converting the HYP primitive or implement an OpenCL
>>>>>>> unit test for rt_boolweave() or something else from Vasco’s
>>>>>>> comprehensive OpenCL to-do list. If you can submit something before
>>>>>>> Monday, that would be helpful.
>>>>>>>
>>>>>>> That goes for everyone who submitted a GSoC proposal. Please try to
>>>>>>> have all code patches and pull requests submitted as soon as possible
>>>>>>> if you’re providing supplementary productive coding evidence along with
>>>>>>> your proposal. Thank you to everyone that has worked so hard! It’s
>>>>>>> going to be a competitive selection.
>>>>>>>
>>>>>>> Cheers!
>>>>>>> Sean
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> On Mar 26, 2018, at 9:40 PM, Vasco Alexandre da Silva Costa
>>>>>>>> <vasco.co...@gmail.com <mailto:vasco.co...@gmail.com>> wrote:
>>>>>>>>
>>>>>>>> The TODO list is just a suggestion based on our knowledge (i.e. that
>>>>>>>> of the maintainers) given the current status of OpenCL librt. In other
>>>>>>>> words, we already know those are open issues, so we don't need to be
>>>>>>>> convinced of the need for those changes. :-)
>>>>>>>> Everyone is welcome to propose their own (new) changes, as long as
>>>>>>>> they provide a proper rationale for them.
>>>>>>>>
>>>>>>>> We should have started this proposal discussion process earlier
>>>>>>>> though...
>>>>>>>>
>>>>>>>> On Mon, Mar 26, 2018 at 9:41 PM, Jingchun Wang <jingc...@uchicago.edu
>>>>>>>> <mailto:jingc...@uchicago.edu>> wrote:
>>>>>>>>> Hi Vasco,
>>>>>>>>>
>>>>>>>>> Thank you for your comments. Yes I’d like to cooperate with one else
>>>>>>>>> and include OpenCL code optimization into plan according to .cl files
>>>>>>>>> given.
>>>>>>>>> For items in TODO list, are they assigned to certain individual or
>>>>>>>>> open to any contributors? I mean, should I select ones from the list
>>>>>>>>> or choose something new into my Detailed Plan?
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Jingchun
>>>>>>>>>
>>>>>>>>>> On Mar 26, 2018, at 2:33 PM, Vasco Alexandre da Silva Costa
>>>>>>>>>> <vasco.co...@gmail.com <mailto:vasco.co...@gmail.com>> wrote:
>>>>>>>>>>
>>>>>>>>>> Ok, I've now managed to see your draft proposal (thanks for granting
>>>>>>>>>> read access).
>>>>>>>>>>
>>>>>>>>>> You seem to have done your homework with regards to the CG aspects of
>>>>>>>>>> the problem. However we typically expect implementation and planning
>>>>>>>>>> detail more than CG theory in the proposal. You don't seem to have
>>>>>>>>>> had
>>>>>>>>>> enough time to look into BRL-CAD (source code) proper though. There
>>>>>>>>>> already is a basic OpenCL rendering pipeline implementation with
>>>>>>>>>> several primitives, the thing is, there are still more primitives to
>>>>>>>>>> port and several further code optimizations could be done to improve
>>>>>>>>>> performance in several stages of the rendering pipelines.
>>>>>>>>>>
>>>>>>>>>> I have a recently up to date summary of the status of the OpenCL
>>>>>>>>>> raytracer code here:
>>>>>>>>>> http://brlcad.org/wiki/User:Vasco.costa
>>>>>>>>>> <http://brlcad.org/wiki/User:Vasco.costa>
>>>>>>>>>>
>>>>>>>>>> Since someone else is interested in the primitives work as well this
>>>>>>>>>> year, we could split that work among you both, but I get that you
>>>>>>>>>> have
>>>>>>>>>> experience with HPC code optimization? In that case, you could
>>>>>>>>>> include
>>>>>>>>>> code optimization in your work plan. For example you could work on
>>>>>>>>>> some of these elements of the TODO list I link to above:
>>>>>>>>>>
>>>>>>>>>> - Split struct hit in common.cl into two structs. One for shot()
>>>>>>>>>> results and another for norm() results. This will reduce the amount
>>>>>>>>>> of
>>>>>>>>>> memory used to store temporary results between stages. (EASY)
>>>>>>>>>> - Execute prefix sums and reductions in clt_frame() on the device to
>>>>>>>>>> eliminate round-trips. (MEDIUM)
>>>>>>>>>> - Refactor code so single-hit and multi-hit don't require recompiling
>>>>>>>>>> all the sources twice.
>>>>>>>>>> - Cache the compiled binaries so things aren't recompiled on every
>>>>>>>>>> launch. (EASY)
>>>>>>>>>> - Don't intersect primitives twice. This requires a dynamic memory
>>>>>>>>>> allocator. (HARD)
>>>>>>>>>> - Smarter kernel scheduling for reduce thread divergence. For example
>>>>>>>>>> coallesce all the quadric intersections. (MEDIUM)
>>>>>>>>>> - Spatial partitioning (perhaps a hybrid Kd-tree) in order to have
>>>>>>>>>> early exit on scenes with high depth complexity. (HARD)
>>>>>>>>>>
>>>>>>>>>> The current OpenCL librt code is mostly under this part of the
>>>>>>>>>> source code tree:
>>>>>>>>>> https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/librt/
>>>>>>>>>> <https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/librt/>
>>>>>>>>>> It's in the .cl files and primitives/primitive_util.c
>>>>>>>>>>
>>>>>>>>>> You can learn more about how to use BRL-CAD with the quick reference
>>>>>>>>>> card:
>>>>>>>>>> http://brlcad.org/w/images/5/52/MGED_Quick_Reference_Card.pdf
>>>>>>>>>> <http://brlcad.org/w/images/5/52/MGED_Quick_Reference_Card.pdf>
>>>>>>>>>>
>>>>>>>>>> With regards to OpenCL, since you know C/C++ you can read these
>>>>>>>>>> resources:
>>>>>>>>>> https://www.khronos.org/files/opencl-1-2-quick-reference-card.pdf
>>>>>>>>>> <https://www.khronos.org/files/opencl-1-2-quick-reference-card.pdf>
>>>>>>>>>> https://yosefk.com/blog/simd-simt-smt-parallelism-in-nvidia-gpus.html
>>>>>>>>>>
>>>>>>>>>> <https://yosefk.com/blog/simd-simt-smt-parallelism-in-nvidia-gpus.html>
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>>
>>>>>>>>>> On Mon, Mar 26, 2018 at 8:08 PM, Vasco Alexandre da Silva Costa
>>>>>>>>>> <vasco.co...@gmail.com <mailto:vasco.co...@gmail.com>> wrote:
>>>>>>>>>>> Hello,
>>>>>>>>>>> You have uploaded your proposal to the GSoC website but you haven't
>>>>>>>>>>> given us permissions to view your draft proposal so we can comment
>>>>>>>>>>> on
>>>>>>>>>>> it before the deadline.
>>>>>>>>>>>
>>>>>>>>>>> We also expect students to introduce themselves to the community (in
>>>>>>>>>>> our case this is typically done via this project mailing-list or the
>>>>>>>>>>> project IRC chat channel). In this way we can get to know you and
>>>>>>>>>>> discuss your work proposal to increase your chances of a smooth GSoC
>>>>>>>>>>> experience.
>>>>>>>>>>>
>>>>>>>>>>> These steps are summarized here:
>>>>>>>>>>> http://brlcad.org/wiki/Summer_of_Code/Checklist
>>>>>>>>>>> <http://brlcad.org/wiki/Summer_of_Code/Checklist>
>>>>>>>>>>>
>>>>>>>>>>> Also, we typically request that students provide a working proof
>>>>>>>>>>> that
>>>>>>>>>>> they can modify the codebase, in your case, this can be as simple as
>>>>>>>>>>> providing a patch to port one of the easier to port quadrics
>>>>>>>>>>> primitives, like HYP (Hyperboloid), from ANSI C to OpenCL. It
>>>>>>>>>>> shouldn't be too hard to do since you can use one of the other
>>>>>>>>>>> already
>>>>>>>>>>> ported primitives (like ELL) as a template. You basically need to
>>>>>>>>>>> port
>>>>>>>>>>> the ray-primitive intersection (shot) code from C to OpenCL and to
>>>>>>>>>>> provide the glue code which packs and unpacks that primitive from
>>>>>>>>>>> the
>>>>>>>>>>> C side to the OpenCL side.
>>>>>>>>>>>
>>>>>>>>>>> (sorry for re-sending this e-mail as I didn't put the mailing-list
>>>>>>>>>>> in
>>>>>>>>>>> the CC properly)
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Vasco Alexandre da Silva Costa
>>>>>>>>>>> PhD in Computer Engineering (Computer Graphics)
>>>>>>>>>>> Instituto Superior Técnico/University of Lisbon, Portugal
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Vasco Alexandre da Silva Costa
>>>>>>>>>> PhD in Computer Engineering (Computer Graphics)
>>>>>>>>>> Instituto Superior Técnico/University of Lisbon, Portugal
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Vasco Alexandre da Silva Costa
>>>>>>>> PhD in Computer Engineering (Computer Graphics)
>>>>>>>> Instituto Superior Técnico/University of Lisbon, Portugal
>>>>>>>>
>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>> Check out the vibrant tech community on one of the world's most
>>>>>>>> engaging tech sites, Slashdot.org <http://slashdot.org/>!
>>>>>>>> http://sdm.link/slashdot <http://sdm.link/slashdot>
>>>>>>>> _______________________________________________
>>>>>>>> BRL-CAD Developer mailing list
>>>>>>>> brlcad-devel@lists.sourceforge.net
>>>>>>>> <mailto:brlcad-devel@lists.sourceforge.net>
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>>>>> <https://lists.sourceforge.net/lists/listinfo/brlcad-devel>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> Check out the vibrant tech community on one of the world's most
>>>>>>> engaging tech sites, Slashdot.org <http://slashdot.org/>!
>>>>>>> http://sdm.link/slashdot_______________________________________________
>>>>>>> <http://sdm.link/slashdot_______________________________________________>
>>>>>>> BRL-CAD Developer mailing list
>>>>>>> brlcad-devel@lists.sourceforge.net
>>>>>>> <mailto:brlcad-devel@lists.sourceforge.net>
>>>>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>>>> <https://lists.sourceforge.net/lists/listinfo/brlcad-devel>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> Check out the vibrant tech community on one of the world's most
>>>>>> engaging tech sites, Slashdot.org <http://slashdot.org/>!
>>>>>> http://sdm.link/slashdot_______________________________________________
>>>>>> <http://sdm.link/slashdot_______________________________________________>
>>>>>> BRL-CAD Developer mailing list
>>>>>> brlcad-devel@lists.sourceforge.net
>>>>>> <mailto:brlcad-devel@lists.sourceforge.net>
>>>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>>> <https://lists.sourceforge.net/lists/listinfo/brlcad-devel>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Check out the vibrant tech community on one of the world's most
>>>>> engaging tech sites, Slashdot.org <http://slashdot.org/>!
>>>>> http://sdm.link/slashdot_______________________________________________
>>>>> <http://sdm.link/slashdot_______________________________________________>
>>>>> BRL-CAD Developer mailing list
>>>>> brlcad-devel@lists.sourceforge.net
>>>>> <mailto:brlcad-devel@lists.sourceforge.net>
>>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>> <https://lists.sourceforge.net/lists/listinfo/brlcad-devel>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Check out the vibrant tech community on one of the world's most
>>>> engaging tech sites, Slashdot.org <http://slashdot.org/>!
>>>> http://sdm.link/slashdot_______________________________________________
>>>> <http://sdm.link/slashdot_______________________________________________>
>>>> BRL-CAD Developer mailing list
>>>> brlcad-devel@lists.sourceforge.net
>>>> <mailto:brlcad-devel@lists.sourceforge.net>
>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>> <https://lists.sourceforge.net/lists/listinfo/brlcad-devel>
>>>
>>> ------------------------------------------------------------------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org <http://slashdot.org/>!
>>> http://sdm.link/slashdot_______________________________________________
>>> <http://sdm.link/slashdot_______________________________________________>
>>> BRL-CAD Developer mailing list
>>> brlcad-devel@lists.sourceforge.net
>>> <mailto:brlcad-devel@lists.sourceforge.net>
>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>> <https://lists.sourceforge.net/lists/listinfo/brlcad-devel>
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org <http://slashdot.org/>!
>> http://sdm.link/slashdot
>> <http://sdm.link/slashdot>_______________________________________________
>> BRL-CAD Developer mailing list
>> brlcad-devel@lists.sourceforge.net
>> <mailto:brlcad-devel@lists.sourceforge.net>
>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>> <https://lists.sourceforge.net/lists/listinfo/brlcad-devel>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org!
> http://sdm.link/slashdot_______________________________________________
> BRL-CAD Developer mailing list
> brlcad-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel