[croquet] bug hunting
orion elenzil
"sv04er502" at sneakemail.com
Wed Mar 30 17:32:38 UTC 2005
Thanks Andreas.
I will try these.
Orion
Andreas Raab andreas.raab-at-gmx.de |squeak devlists| wrote:
> Hi Orion -
>
> Well, debugging these issues goes roughly like follows:
> * You go to squeak.hpl.hp.com and choose to "browse the VM repository"
> * Here you navigate to
> trunk/platforms/Cross/plugins/B3DAcceleratorPlugin
> * Look at sqOpenGLRenderer.c to find line 409 (you probably have to
> download the file and use a reasonable text editor to find it)
> * Line 409 is in glSetTransform:
> 407: DPRINTF(5, (fp, "### Installing new transformations\n"));
> 408: glMatrixMode(GL_PROJECTION);
> 409: ERROR_CHECK;
>
> So it looks like glMatrixMode() is failing, right? Wrong! The
> ERROR_CHECK macro uses glGetError() and glGetError() will keep the error
> around until it has been reported. So the only thing we know is that
> sometime *before* the method was called the error has occured. Time to
> look at the Squeak side.
>
> The easiest (and likely best) thing to do is to throw in an occasional
> glGetError() check in your own code and print it to the transcript. Here
> is a safe way way of doing this:
>
> printError: ogl
> err := ogl glGetError().
> err = 0 ifFalse:[
> WorldState addDeferredUIMessage:[
> Transcript cr; show: 'OpenGL error: ', err hex.
> ].
> ].
>
> This will print out any errors and from here it's basically divide and
> conquer - just use binary search (or random guesses ;-) to narrow down
> where the error occurs.
>
> The exercise left for the reader: Write a OpenGLErrorTrap class which
> automatically checks for the first occurance of a glGetError() after
> invoking any of the OpenGL methods. Hint: Make it a ProtoObject subclass
> and learn more about proxies ;-)
>
> Cheers,
> - Andreas
>
> orion elenzil wrote:
>
>> any tips how i'd track down a bug like this ?
>> i'm getting one per frame, it looks like.
>>
>> from squeak3d.log:
>>
>> ERROR (file sqOpenGLRenderer.c, line 409): a GL function failed --
>> GL_INVALID_ENUM
>>
>>
>> tia,
>> orion
>>
>>
>>
>>
>> ---
>> You are currently subscribed to croquet as: andreas.raab at gmx.de
>> To unsubscribe send a blank email to leave-croquet-872834H at lists.wisc.edu
>>
>>
>
> ---
> You are currently subscribed to croquet as: sv04er502 at sneakemail.com
> To unsubscribe send a blank email to leave-croquet-872834H at lists.wisc.edu
More information about the Squeak-dev
mailing list
|