Hi Wojtek, thanks for clarification, I've gone ahead and merged the
workaround as it looks perfectly benign.

On Wed, May 28, 2008 at 3:54 PM, Wojciech Lewandowski
<[EMAIL PROTECTED]> wrote:
> Hi Robert,
>
> I use it and have not observed any issues. I would say its rather safe.
>
> I reported this bug to NVidia. And it looks like they are doing something to
> fix the problem. In the meantime they sent me two bit cryptic emails
> informing they verified and fixed it. Last email was also saying that fix is
> awaiting for final verification and closure. I don't know when they make
> fixed drivers available, though, so I would vote for merging my workaround
> for time being.
>
> I promise I will let you know or even send the submission removing this
> workaround when NVidia informs me that fixed drivers are available.
>
> Cheers,
> Wojtek
>
>
>
>> Hi Wojtek,
>>
>> I'm just following up on your workaround for the NVidia WindowsXP
>> multi-thread make current bug.   Others have reported problems since
>> you posted your fix, and while I know the bug is now Nvidia have
>> acknowledged the problem, we don't yet know how long it might be to a
>> fix... so I'm tempted to merge your workaround.
>>
>> Thoughts?
>> Robert.
>>
>> On Mon, May 12, 2008 at 1:28 PM, Wojciech Lewandowski
>> <[EMAIL PROTECTED]> wrote:
>>>
>>> Hi again,
>>>
>>> I have modified GraphicsWindowWin32::makeCurrentImplementation method.
>>> Code
>>> attached. This modification solves both garbage in
>>> TriangleStrip/TriangleFans and FBO problems. So a complete succes for me
>>> ;-)
>>>
>>> I am posting it on osg users forum instead of osg submissions because I
>>> expecty we want some discussion before submitting it.
>>>
>>> I don't know how this workaroud should be additionaly wrapped. In this
>>> form
>>> its alredy rather non aggressive - second wglMakeCurrent will be called
>>> fairly seldom.  What additional conditions we would like to see tested
>>> before applying this worakoround. Any suggestions ? Should I check
>>> GL_VENDOR, GL_RENDERER, GL_VERSION strings ? Does OSG offer some methods
>>> to
>>> query OS, drivers version ?
>>>
>>> Maybe othe places in the code are more appriopriate for this call.
>>>
>>> Cheers,
>>> Wojtek
>>>
>>>> Hi Everyone,
>>>>
>>>> Lets get back to the main topic of this thread ie garbage in Multicore
>>>> CPU
>>>> /
>>>> NVidia / DualView / Window XP.
>>>>
>>>> I attached my OpenGL repro for those who are interested. I would be
>>>> grateful
>>>> if somoene could check if my threading code is OK (and maybe simplify
>>>> it).
>>>> If it is, I will try to submit the bug to NVidia.
>>>>
>>>> Check out what happens when  repeatMakeCurrent variable gets changed to
>>>> non
>>>> zero value. This causes repetition of wglMakeCurrent and fixes the
>>>> issue.
>>>> I
>>>> will try to check this method in OSG next week.
>>>>
>>>> I am heading back home for the weekend. I will stay online but I don't
>>>> have
>>>> multicore CPU there so I won't be able to check codes till monday.
>>>>
>>>> Cheers,
>>>> Wojtek Lewandowski
>>>>
>>>>
>>>>> Hi Robert, Paul and J-S,
>>>>>
>>>>> I don't think I was clear enough. Its too early to say that
>>>>> wglMakeCurrent
>>>>> will be a good workaround for OSG.
>>>>> I only said that it "relaxed" the problem in my OpenGL repro.
>>>>>
>>>>> It looks like first wglMakeCurrent (when renderer thread is started)
>>>>> does
>>>>> not initialize properly some internal OpenGL context data. If I repeat
>>>>> it
>>>>> in second frame everything becomes correct. So if wglMakeCurrent was a
>>>>> solution it would be needed only once more on frame.
>>>>>
>>>>> But I learned all this using my open gl repro without Display Lists and
>>>>> to
>>>>> be honest I did not checked what will happen if DisplayLists are
>>>>> generated
>>>>> on a first frame (like OSG does). I suspect they might stay screwed
>>>>> even
>>>>> if second wglMAkeCurrent gets called.  I am currently trying to check
>>>>> this
>>>>> out. I just need some more time to investigate.
>>>>>
>>>>> I got some questions regarding this issue so I decided to inform guys
>>>>> for
>>>>> whom this is relevant by posting on osg-users. I am certainly far from
>>>>> proposing fixes at this moment.
>>>>>
>>>>> Wojtek
>>>>>
>>>>>
>>>>>> Hi Wojciech,
>>>>>>
>>>>>> On Fri, May 9, 2008 at 2:16 PM, Wojciech Lewandowski
>>>>>> <[EMAIL PROTECTED]> wrote:
>>>>>>>
>>>>>>> Problem could be relaxed when wglMakeCurrent gets called before each
>>>>>>> frame
>>>>>>> rendering. I noticed that artifacts appeared when wglMakeCurrent was
>>>>>>> called
>>>>>>> only once while worker rendering thread initialization . When
>>>>>>> wglMakeCurrent
>>>>>>> was called every frame artifacts did not appear.
>>>>>>
>>>>>> wglMakeCurrent "shouldn't" be required if one has a thread per
>>>>>> context, one a thread does a wglMakeCurrent() it shouldn't release the
>>>>>> context till this thread calls release context (done with
>>>>>> wglMakeCurrent(_hdc, NULL)).
>>>>>>
>>>>>> As you are finding that the wglMakeCurrent() per frame is required,
>>>>>> this either suggests that the OpenGL driver is playing fast and loose
>>>>>> with the graphics context behind the scenes so the app looses the
>>>>>> context being current, in which case this is very much a driver bug,
>>>>>> or that the OSG itself is doing makeCurrent on the context from
>>>>>> another thread or releasing the context when it shouldn't.
>>>>>>
>>>>>> Could you put some debug output into GraphicsWindowWin32.cpp's
>>>>>> makeCurrentImplementation(..) and relaseContextImplementation(..) to
>>>>>> see if there are being called when you wouldn't expect, printing out
>>>>>> the
>>>>>> pointer to the current thread would be useful as well.
>>>>>>
>>>>>> Robert.
>>>>>> _______________________________________________
>>>>>> osg-users mailing list
>>>>>> osg-users@lists.openscenegraph.org
>>>>>>
>>>>>>
>>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>>>
>>>>> _______________________________________________
>>>>> osg-users mailing list
>>>>> osg-users@lists.openscenegraph.org
>>>>>
>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>>
>>>
>>>
>>>
>>> --------------------------------------------------------------------------------
>>>
>>>
>>>> _______________________________________________
>>>> osg-users mailing list
>>>> osg-users@lists.openscenegraph.org
>>>>
>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>>
>>>
>>> _______________________________________________
>>> osg-users mailing list
>>> osg-users@lists.openscenegraph.org
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>
>>>
>> _______________________________________________
>> osg-users mailing list
>> osg-users@lists.openscenegraph.org
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to