On Sun, Mar 20, 2016 at 7:32 PM, Vasco Alexandre da Silva Costa <
vasco.co...@gmail.com> wrote:

> Ok, now the code compiles! I checked the code and functionally it looks
> good. But you need to indent the code according to the BRL-CAD coding
> style. e.g. indent the code with 4 spaces and use regular tabs with 8
> spaces. This is particularly noticeable in the .cl file.
>
> The style rules are under "CODING STYLE & STANDARDS" in the HACKING file
> of BRL-CAD SVN trunk.
>

PS: Any decent text editor should be able to be configured to automatically
indent the code appropriately. All files in BRL-CAD comes with Emacs
indentation directives. I use Vim but there are plenty of other text
editors around.


> On Sun, Mar 20, 2016 at 2:58 AM, Param Hanji <param.catchch...@gmail.com>
> wrote:
>
>> Fixed it
>>
>>
>> On Sun, Mar 20, 2016 at 6:47 AM Vasco Alexandre da Silva Costa <
>> vasco.co...@gmail.com> wrote:
>>
>>> It doesn't compile. It seems you forgot a function declaration in a
>>> header file:
>>>
>>> .../brlcad/trunk/src/librt/primitives/primitive_util.c: In function
>>> ‘clt_solid_pack’:
>>> .../brlcad/trunk/src/librt/primitives/primitive_util.c:648:25: error:
>>> implicit declaration of function ‘clt_epa_pack’
>>> [-Werror=implicit-function-declaration]
>>>   case ID_EPA:    size = clt_epa_pack(pool, stp); break;
>>>                          ^
>>>
>>>
>>> On Sat, Mar 19, 2016 at 1:03 PM, Param Hanji <param.catchch...@gmail.com
>>> > wrote:
>>>
>>>> Here's the new patch.
>>>>
>>>>
>>>> On Sat, Mar 19, 2016 at 6:32 PM Param Hanji <param.catchch...@gmail.com>
>>>> wrote:
>>>>
>>>>> Oops I did manually edit the patch. I ran diff again and uploaded the
>>>>> patch without changes. I also changed the ID used to 19.
>>>>>
>>>>> On Sat 19 Mar, 2016, 2:51 AM Vasco Alexandre da Silva Costa, <
>>>>> vasco.co...@gmail.com> wrote:
>>>>>
>>>>>> On Fri, Mar 18, 2016 at 9:14 PM, Vasco Alexandre da Silva Costa <
>>>>>> vasco.co...@gmail.com> wrote:
>>>>>>
>>>>>>> On Fri, Mar 18, 2016 at 1:17 PM, Param Hanji <
>>>>>>> param.catchch...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> On Thu, Mar 17, 2016 at 4:57 AM Vasco Alexandre da Silva Costa <
>>>>>>>> vasco.co...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> On Wed, Mar 16, 2016 at 9:44 PM, Param Hanji <
>>>>>>>>> param.catchch...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> You will need a lot of time to port bool.c so you need to schedule
>>>>>>>>> appropriately. That code is rife with gotos, structs with pointers, 
>>>>>>>>> and
>>>>>>>>> dynamic memory allocation. We don't want any of that in OpenCL. The 
>>>>>>>>> sooner
>>>>>>>>> you start looking into that code the better. I did some patches last 
>>>>>>>>> summer
>>>>>>>>> to remove many gotos from the existing code but there are still 
>>>>>>>>> several
>>>>>>>>> left.
>>>>>>>>>
>>>>>>>>> I suggest you read the presentation Sean linked to so you can get
>>>>>>>>> an idea for what boolean operations and CSG are:
>>>>>>>>> http://web.iitd.ac.in/~hegde/cad/lecture/L30_solidmod_basics.pdf
>>>>>>>>>
>>>>>>>>> The main functions of interest in bool.c are rt_bool_eval,
>>>>>>>>> rt_boolweave, and rt_boolfinal. rt_boolweave and rt_bool_final do 
>>>>>>>>> dynamic
>>>>>>>>> memory allocations with linked lists but, if you read their code 
>>>>>>>>> carefully,
>>>>>>>>> the maximum output size is bounded as a function of the input size. 
>>>>>>>>> The
>>>>>>>>> input is the list of intersection points. The size of the list of
>>>>>>>>> intersection points is already being computed by rt.cl:count_hits().
>>>>>>>>> So you can pre allocate a chunk of memory with the maximum possible 
>>>>>>>>> output
>>>>>>>>> size and pass that array to your functions.
>>>>>>>>> As for rt_bool_eval the boolean ops tree is stored as a tree of
>>>>>>>>> pointers to structs. Can't have that. The rt_bool_eval function uses 
>>>>>>>>> gotos.
>>>>>>>>> Can't have those either.
>>>>>>>>>
>>>>>>>>
>>>>>>>> I'll start looking into the code as soon as i can. Is there any
>>>>>>>> resource I can refer to get a brief high level understanding of how ray
>>>>>>>> tracing occurs. I have no knowledge of computer graphics and even
>>>>>>>> theoretical resources pertaining to the specific functions(eval, weave)
>>>>>>>> would be helpful. I'll look out for some on my own too.
>>>>>>>>
>>>>>>>
>>>>>>> If you want a brief idea of how the ray-tracing algorithm works you
>>>>>>> can look at the relevant Wikipedia page. Wikipedia is a decent resource 
>>>>>>> for
>>>>>>> basic computer graphics knowledge:
>>>>>>> https://en.wikipedia.org/wiki/Ray_tracing_%28graphics%29
>>>>>>>
>>>>>>> For knowing how CSG works, including the boolean ops, that lecture
>>>>>>> PDF is a good resource.
>>>>>>>
>>>>>>>
>>>>>>>> I started a patch in ANSI C to reimplement rt_bool_eval without
>>>>>>>> gotos with a linearized tree, stored in an array, which can be easily
>>>>>>>> copied to the compute device. You can find that patch here:
>>>>>>>> https://sourceforge.net/p/brlcad/patches/417/
>>>>>>>>
>>>>>>>>> The rt_bool_eval patch #417 is functional but it still has some
>>>>>>>>> warts in it.
>>>>>>>>>
>>>>>>>>>
>>>>>>>> I noticed that you had proposed to design a new implementation of
>>>>>>>> the boolean weave function in this pdf last year.
>>>>>>>>
>>>>>>>> https://drive.google.com/file/d/0B85Rkmt7rnCTZV9HNVIyZTRUMWM/view
>>>>>>>>
>>>>>>>> Was this discarded entirely? If not, does it make sense to change
>>>>>>>> the way weave is performed currently to facilitate easy portability to
>>>>>>>> OpenCL? Or should I just go about porting the existing code?
>>>>>>>>
>>>>>>>
>>>>>>> That PDF you linked to is from a pre-proposal which was later
>>>>>>> changed with output from Sean and the others. Eventually it was decided
>>>>>>> that we would start with a first hit ray tracer and later on work on the
>>>>>>> boolean evaluation proper to get working CSG. It just turns out that 
>>>>>>> there
>>>>>>> was too much effort involved in getting the object partitioning and the
>>>>>>> rendering pipeline up to speed. Not to mention all those primitives... 
>>>>>>> So I
>>>>>>> couldn't finish work on boolean evaluation before the GSoC period 
>>>>>>> ended. I
>>>>>>> just did some cleanups (e.g. goto removal) on bool.c.
>>>>>>>
>>>>>>> Which is a good thing too or there would be little left to work on
>>>>>>> for this GSoC. :-)
>>>>>>>
>>>>>>> Just ignore that PDF you got from Google Drive, which is something I
>>>>>>> wrote before the GSoC 2015 period started, and read the advice I gave 
>>>>>>> you
>>>>>>> about how to tackle bool.c in this maling-list which includes the 
>>>>>>> knowledge
>>>>>>> I have now. I described a possible approach in detail here. I also said
>>>>>>> which functions were most important (rt_bool_eval, rt_boolweave,
>>>>>>> rt_bool_final)
>>>>>>>
>>>>>>
>>>>>> PS: That project timeline in the PDF was shot down and I had to
>>>>>> revise it. There was too much time doing research in it and not enough 
>>>>>> time
>>>>>> actually coding. At the time I was unsure if the current bool weave
>>>>>> algorithm BRL-CAD uses would make sense on a GPU or not. It turns out it
>>>>>> does make sense but its like I said: you have to remove all the gotos,
>>>>>> remove all pointers inside data structures, figure out the bounds of the
>>>>>> memory you need a priori, and rethink the algorithm from those dynamic
>>>>>> linked lists to a priori bounded arrays.
>>>>>>
>>>>>> --
>>>>>> Vasco Alexandre da Silva Costa
>>>>>> PhD in Computer Engineering (Computer Graphics)
>>>>>> Instituto Superior Técnico/University of Lisbon, Portugal
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> Transform Data into Opportunity.
>>>>>> Accelerate data analysis in your applications with
>>>>>> Intel Data Analytics Acceleration Library.
>>>>>> Click to learn more.
>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
>>>>>> _______________________________________________
>>>>>> BRL-CAD Developer mailing list
>>>>>> brlcad-devel@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>>>
>>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Transform Data into Opportunity.
>>>> Accelerate data analysis in your applications with
>>>> Intel Data Analytics Acceleration Library.
>>>> Click to learn more.
>>>> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
>>>> _______________________________________________
>>>> BRL-CAD Developer mailing list
>>>> brlcad-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>
>>>>
>>>
>>>
>>> --
>>> Vasco Alexandre da Silva Costa
>>> PhD in Computer Engineering (Computer Graphics)
>>> Instituto Superior Técnico/University of Lisbon, Portugal
>>>
>>> ------------------------------------------------------------------------------
>>> Transform Data into Opportunity.
>>> Accelerate data analysis in your applications with
>>> Intel Data Analytics Acceleration Library.
>>> Click to learn more.
>>> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
>>> _______________________________________________
>>> BRL-CAD Developer mailing list
>>> brlcad-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>
>>
>>
>> ------------------------------------------------------------------------------
>> Transform Data into Opportunity.
>> Accelerate data analysis in your applications with
>> Intel Data Analytics Acceleration Library.
>> Click to learn more.
>> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
>> _______________________________________________
>> BRL-CAD Developer mailing list
>> brlcad-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>
>>
>
>
> --
> 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
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to