Hi Abhishek,
I don't think it's a good idea to make include/rt/geom.h dependent on PCL,
Boost, etc.. You can adapt rt_pnts_internal and the pnt_~ structs to the
needs of PCL but shouldn't include PCL directly. If there is no other
possibility, you can refer to a PCL structure in rt_pnts_internal or pnt_~
with a void*.
Only librt should be linked with PCL, and there only files contained in
src/librt/primitives/pnts should include it. To include and use PCL you
had to rename pnts.c to pnts.cpp and make a C++ file from it this way.
Regards,
Daniel
2018-04-07 9:49 GMT+02:00 Abhishek Vasudevan <abhishek.open...@gmail.com>:
> 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> 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>
> 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>
> 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>
> 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 -D
> BRLCAD_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>
> 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>
> 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> 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>
> 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> 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
>
> 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/
> 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
>
> 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://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> 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
>
> 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
> _______________________________________________
> 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://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://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://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://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://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://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
>
>
>
> ------------------------------------------------------------
> ------------------
> 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