[Soc-2014-dev] Weekly Report #02 - Viewport FX III

Jason Wilkins jason.a.wilkins at gmail.com
Sat May 31 22:59:46 CEST 2014


On Saturday, May 31, 2014, Sergey Sharybin <sergey.vfx at gmail.com> wrote:

> I'm not sure why to blame merges. We couldn't postpone everything
> actually. Not even sure why it might be an issue for the project. You might
> easily ignore them for now.
>

I wouldn't suggest that anything be postponed.  I could put off
merging, but I'm not convinced it would save work later.  Seeing as how
this year was significantly less work than last year supports that idea
(even though it is anecdotal).  The difference is merging after 2 months
versus 6.  It has to be done eventually.


>
> Looks like you're trying to put all the legacy code onto the compatibility
> layer and bring it to live all together, which is rather a huge project and
> which didn't work two times already. What is the point of compatibility
> layer anyway?
>

Calling it a compatibility layer is probably somewhat of a misnomer.  I
did designed it to allow legacy OpenGL drivers to work, but it's more like
a custom shader support library written on top of OpenGL 3 core that can
fall back to older gl.

I actually feel that no gl calls should be made outside of the gpu source
directory.  I'll continue this thought below...


>
> Would really suggest making smaller steps in order to make stuff mergeable
> to master:
>
> - Put all the stuff needed from GHOST side and all the mathutils stuff and
> other utility functions to master. This should work just fine with the
> legacy OpenGL we're using.
>

Right.


> - In the branch start porting areas one-by-one into new GL. Starting with
> window draw and interface elements. And by porting i mean port to new GL
> calls, not some compatibility layer. It should even be possible to have
> interface using newer GL and viewport using legacy code.
>

I would say that over 3/4 of the functions used in Blender drawing code do
not exist in core GL.  If there were no legacy code at all in Blender we
would still want something like the misnamed compatibility layer to make
drawing code readable.

Still, the idea of bringing up one module at a time is best, but I do not
see the benefit of writing the drawing code, say,  in an editor, directly
on top of OpenGL.

OpenGL was low level to begin with.  OpenGL 3 is even lower level.  Putting
code to manage shaders, buffers, and uniforms in higher level code like an
editor seems wrong.

That is why I've taken to calling the compatibility layer a "replacement".
 It is not compatible with legacy OpenGL, but tries to capture how blender
actually uses legacy OpenGL and only implements that functionality which
needs to be replaced since it was removed from core.  It has a similar
interface to make porting easier.

I admit that bringing everything up and live at once might not be the best,
but, I also couldn't be sure I had captured everything without actually
doing that.

But now it is clear that I don't have to maintain it anymore since all of
the functionality has been proofed.  I can now bring up one module at a
time without fearing that something in the next module is going to force me
to go back and redesign everything.


- Then port all the rest areas to new GL. Something like: port them, test
> them, merge them.
>

The porting has already been done.  I don't think you really want me to
inline the OpenGL 3.2 code out of the replacement code.  My replacement
might not have the best design, but I believe it's existence is the correct
decision and can be improved as time goes on.

A side note, I wouldn't use the word "fail" to describe my work.  I'm
guessing you mean I've failed to contribute anything to master.  I'll agree
with that, and I'm focused on rectifying that.


>
>
> On Sat, May 31, 2014 at 4:12 PM, Campbell Barton <ideasman42 at gmail.com
> <javascript:_e(%7B%7D,'cvml','ideasman42 at gmail.com');>> wrote:
>
>> Recommend meld:
>> http://meldmerge.org
>>
>> It can be set as git's mergetool and handles 3way merges pretty nice.
>>
>> Although I never tried other tools (probably vimdiff is good too if you
>> use vim)
>>
>> On Sat, May 31, 2014 at 3:28 PM, Jason Wilkins
>> <jason.a.wilkins at gmail.com
>> <javascript:_e(%7B%7D,'cvml','jason.a.wilkins at gmail.com');>> wrote:
>> > Last year took a few weeks to gain momentum due to fixing up the code
>> after
>> > merging, so I should have realized I might be in the same boat this
>> year.
>> >
>> > Luckily, I seem to have learned a thing or two about how to manage this
>> so I
>> > should have things working again by the end of the weekend.  It helps
>> that I
>> > merged things back in March, but some recent changes to the rendering
>> code
>> > (loop normals?) caused a lot of pain.
>> >
>> > The switch to git also helps a lot.
>> >
>> > This week I've started to contact users about helping me develop and
>> run a
>> > set of regression and performance tests.  There is a thread on Blender
>> > Artists here:
>> >
>> > http://blenderartists.org/forum/showthread.php?338377-Viewport-FX-III
>> >
>> > Next week I'll be putting up for review the changes to GHOST that
>> separates
>> > the window system from the opengl context.  I had hoped to have this
>> ready
>> > to go before gsoc started, but I ended up having to meet some other
>> > deadlines :(
>> >
>> > I'm also going to pull some other things out like additional math
>> functions
>> > and the replacement for the OpenGL matrix stack.  While I want to mainly
>> > focus on getting things that could/can cause lots of conflicts reviewed
>> > first, I think some modules like a CPU based matrix stack might be
>> useful
>> > libraries for others to be able to use.
>> >
>> > Although my branch currently compiles on Windows, it is broken, and
>> does not
>> > draw properly due to the merge.  As I review the diff in order to find
>> > patches to submit I'm also going to be trying to fix that. grr..
>> >
>> > No major questions right now.
>> >
>> > I might venture to ask for people's opinion.  I currently use kdiff3 as
>> my
>> > merge tool.  I've found it really helps compared to the tool that comes
>> with
>> > Tortoise, but really those are the only two tools I've ever used.  So,
>> my
>> > question would be, does anybody have a tool that runs on Windows or
>> MacOS
>> > that they think is better than kdiff3?  I would be open to learning a
>> new
>> > tool if it would speed merging further, since I have gotten a lot of
>> > practice at that lately...
>> >
>> > _______________________________________________
>> > Soc-2014-dev mailing list
>> > Soc-2014-dev at blender.org
>> <javascript:_e(%7B%7D,'cvml','Soc-2014-dev at blender.org');>
>> > http://lists.blender.org/mailman/listinfo/soc-2014-dev
>> >
>>
>>
>>
>> --
>> - Campbell
>> _______________________________________________
>> Soc-2014-dev mailing list
>> Soc-2014-dev at blender.org
>> <javascript:_e(%7B%7D,'cvml','Soc-2014-dev at blender.org');>
>> http://lists.blender.org/mailman/listinfo/soc-2014-dev
>>
>
>
>
> --
> With best regards, Sergey Sharybin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/soc-2014-dev/attachments/20140531/90baaca3/attachment.htm 


More information about the Soc-2014-dev mailing list