|
From: n9ine n. e. <n9i...@gm...> - 2008-09-01 12:49:43
|
Hi all;
I a m programming a nurb viewer using a 3d engine (written in c++). I
am using glu api to create the nurb and then tissalate it.
I have got this error when I try to trim the surface. The same code
work fine when I use Opengl to draw the nurb. And I succeded to view a
non trimmed surface with the engine. But when I trimm it :( this is
What i got :
checkjarc: geometric linkage screwed up 3
PWLARC NP: 2 FL: 1
VERTEX 0.250000 0.500000
VERTEX 0.000000 0.000000
PWLARC NP: 2 FL: 1
VERTEX 0.250000 0.250000
VERTEX 0.000000 0.000000
Assertion failed: bin.firstarc()->check() != 0, file ..\..\..\..\src
\glu\sgi\lib
nurbs\internals\subdivider.cc, line 658
Can some gentil man help me.
kind regards
|
|
From: Brian P. <bri...@tu...> - 2008-09-01 14:31:00
|
n9ine nvidia engine wrote: > Hi all; > > I a m programming a nurb viewer using a 3d engine (written in c++). I > am using glu api to create the nurb and then tissalate it. > > I have got this error when I try to trim the surface. The same code > work fine when I use Opengl to draw the nurb. And I succeded to view a > non trimmed surface with the engine. But when I trimm it :( this is > What i got : > > checkjarc: geometric linkage screwed up 3 > PWLARC NP: 2 FL: 1 > VERTEX 0.250000 0.500000 > VERTEX 0.000000 0.000000 > PWLARC NP: 2 FL: 1 > VERTEX 0.250000 0.250000 > VERTEX 0.000000 0.000000 > Assertion failed: bin.firstarc()->check() != 0, file ..\..\..\..\src > \glu\sgi\lib > nurbs\internals\subdivider.cc, line 658 > > Can some gentil man help me. > The nurbs tessellator/trimmer is fairly complex code so it's hard to say what's really happening. A few things you could try though: 1. It looks like there's some debug code in the Arc::check() function in arc.cc that, if enabled, might give some clues. 2. Try disabling the failing assertion, or just return from the function if it fails. -Brian |
|
From: n9ine n. e. <n9i...@gm...> - 2008-09-02 07:13:19
|
Hi Brian,
Thank you for help, I have done what you have suggested.
I obtianed this error :
s difference 0.250000
Assertion failed: head == NULL, file
..\..\..\..\src\glu\sgi\libnurbs\internals\
bin.cc, line 58
I disabled this last assertion, I obtained this one
Run-Time Check Failure #0 - The value of ESP was not properly saved across a
function call. This is usually a result of calling a function declared with
one calling convention with a function pointer declared with a different
calling convention.
//file : nurbstess.cc - line 308
do_freeall( );
resetObjects();
}
I think it could be precision error between the engine and glu (s difference
0.250000). I am using GLfloat to declare cltpoints and knots. Is this
possible?
Regards
|
|
From: Utkarsh A. <utk...@ki...> - 2008-09-03 15:22:00
|
Hi Brian,
I am trying to come up with a small test case that reproduces this issue
that we are having with ParaView using Mesa 7.1 (as well as git-Mesa) on
a 64 bit debian box.
The assertion fails following repeated creation/deletion of display
lists (ofcourse when display lists are not used, everything is peachy).
For debugging purposes I put a printf as follows in tnl/t_draw.c:
static void bind_inputs( GLcontext *ctx,
const struct gl_client_array *inputs[],
GLint count,
struct gl_buffer_object **bo,
GLuint *nr_bo )
{
...
for (i = 0; i < VERT_ATTRIB_MAX; i++) {
const void *ptr;
if (inputs[i]->BufferObj->Name) {
if (!inputs[i]->BufferObj->Pointer) {
...
printf("i : %i\n", i);
printf("name: %i\n", inputs[i]->BufferObj->Name);
assert(inputs[i]->BufferObj->Pointer);
}
...
}
On successful runs it looks like:
i : 0
name: 1
i : 0
name: 1
i : 31
name: 1
However when the assertion fails, the output is:
i : 0
name: 1
i : 31
name: 10999
Not sure that's very helpful, perhaps you can point me in the right
direction for producing more relevant debug output.
Thanks,
Utkarsh
|
|
From: Brian P. <bri...@tu...> - 2008-09-03 15:40:27
|
Utkarsh Ayachit wrote:
> Hi Brian,
>
> I am trying to come up with a small test case that reproduces this issue
> that we are having with ParaView using Mesa 7.1 (as well as git-Mesa) on
> a 64 bit debian box.
>
> The assertion fails following repeated creation/deletion of display
> lists (ofcourse when display lists are not used, everything is peachy).
>
> For debugging purposes I put a printf as follows in tnl/t_draw.c:
>
> static void bind_inputs( GLcontext *ctx,
> const struct gl_client_array *inputs[],
> GLint count,
> struct gl_buffer_object **bo,
> GLuint *nr_bo )
> {
> ...
> for (i = 0; i < VERT_ATTRIB_MAX; i++) {
> const void *ptr;
>
> if (inputs[i]->BufferObj->Name) {
> if (!inputs[i]->BufferObj->Pointer) {
> ...
>
> printf("i : %i\n", i);
> printf("name: %i\n", inputs[i]->BufferObj->Name);
> assert(inputs[i]->BufferObj->Pointer);
> }
> ...
> }
>
> On successful runs it looks like:
> i : 0
> name: 1
> i : 0
> name: 1
> i : 31
> name: 1
>
> However when the assertion fails, the output is:
> i : 0
> name: 1
> i : 31
> name: 10999
>
> Not sure that's very helpful, perhaps you can point me in the right
> direction for producing more relevant debug output.
I haven't seen that one before. Do you happen to have a small test
program that I could try here? I think I've got a 64-bit Linux install
here somewhere...
You might also try running with valgrind to see if it finds anything.
-Brian
|
|
From: Utkarsh A. <utk...@ki...> - 2008-09-03 16:53:38
Attachments:
valgrind
|
Brian Paul wrote:
> Utkarsh Ayachit wrote:
>> Hi Brian,
>>
>> I am trying to come up with a small test case that reproduces this
>> issue that we are having with ParaView using Mesa 7.1 (as well as
>> git-Mesa) on a 64 bit debian box.
>>
>> The assertion fails following repeated creation/deletion of display
>> lists (ofcourse when display lists are not used, everything is peachy).
>>
>> For debugging purposes I put a printf as follows in tnl/t_draw.c:
>>
>> static void bind_inputs( GLcontext *ctx,
>> const struct gl_client_array *inputs[],
>> GLint count,
>> struct gl_buffer_object **bo,
>> GLuint *nr_bo )
>> {
>> ...
>> for (i = 0; i < VERT_ATTRIB_MAX; i++) {
>> const void *ptr;
>>
>> if (inputs[i]->BufferObj->Name) {
>> if (!inputs[i]->BufferObj->Pointer) {
>> ...
>>
>> printf("i : %i\n", i);
>> printf("name: %i\n", inputs[i]->BufferObj->Name);
>> assert(inputs[i]->BufferObj->Pointer);
>> }
>> ...
>> }
>>
>> On successful runs it looks like:
>> i : 0
>> name: 1
>> i : 0
>> name: 1
>> i : 31
>> name: 1
>>
>> However when the assertion fails, the output is:
>> i : 0
>> name: 1
>> i : 31
>> name: 10999
>>
>> Not sure that's very helpful, perhaps you can point me in the right
>> direction for producing more relevant debug output.
>
> I haven't seen that one before. Do you happen to have a small test
> program that I could try here? I think I've got a 64-bit Linux install
> here somewhere...
>
> You might also try running with valgrind to see if it finds anything.
I am attaching the output from valgrind. There indeed are a few
suspicious invalid writes.
The crash is very random, I am still trying to isolate the cause to
write out a small example.
Utkarsh
|
|
From: Brian P. <bri...@tu...> - 2008-09-03 18:45:38
|
Utkarsh Ayachit wrote:
>
>
> Brian Paul wrote:
>> Utkarsh Ayachit wrote:
>>> Hi Brian,
>>>
>>> I am trying to come up with a small test case that reproduces this
>>> issue that we are having with ParaView using Mesa 7.1 (as well as
>>> git-Mesa) on a 64 bit debian box.
>>>
>>> The assertion fails following repeated creation/deletion of display
>>> lists (ofcourse when display lists are not used, everything is peachy).
>>>
>>> For debugging purposes I put a printf as follows in tnl/t_draw.c:
>>>
>>> static void bind_inputs( GLcontext *ctx,
>>> const struct gl_client_array *inputs[],
>>> GLint count,
>>> struct gl_buffer_object **bo,
>>> GLuint *nr_bo )
>>> {
>>> ...
>>> for (i = 0; i < VERT_ATTRIB_MAX; i++) {
>>> const void *ptr;
>>>
>>> if (inputs[i]->BufferObj->Name) {
>>> if (!inputs[i]->BufferObj->Pointer) {
>>> ...
>>> printf("i : %i\n", i);
>>> printf("name: %i\n", inputs[i]->BufferObj->Name);
>>> assert(inputs[i]->BufferObj->Pointer);
>>> }
>>> ...
>>> }
>>>
>>> On successful runs it looks like:
>>> i : 0
>>> name: 1
>>> i : 0
>>> name: 1
>>> i : 31
>>> name: 1
>>>
>>> However when the assertion fails, the output is:
>>> i : 0
>>> name: 1
>>> i : 31
>>> name: 10999
>>>
>>> Not sure that's very helpful, perhaps you can point me in the right
>>> direction for producing more relevant debug output.
>>
>> I haven't seen that one before. Do you happen to have a small test
>> program that I could try here? I think I've got a 64-bit Linux
>> install here somewhere...
>>
>> You might also try running with valgrind to see if it finds anything.
>
> I am attaching the output from valgrind. There indeed are a few
> suspicious invalid writes.
>
> The crash is very random, I am still trying to isolate the cause to
> write out a small example.
I haven't been able to reproduce this with any hacked demos here.
Do you want to send me a ParaView binary?
-Brian
|
|
From: Utkarsh A. <utk...@ki...> - 2008-09-03 19:04:11
|
Brian Paul wrote:
> Utkarsh Ayachit wrote:
>>
>>
>> Brian Paul wrote:
>>> Utkarsh Ayachit wrote:
>>>> Hi Brian,
>>>>
>>>> I am trying to come up with a small test case that reproduces this
>>>> issue that we are having with ParaView using Mesa 7.1 (as well as
>>>> git-Mesa) on a 64 bit debian box.
>>>>
>>>> The assertion fails following repeated creation/deletion of display
>>>> lists (ofcourse when display lists are not used, everything is peachy).
>>>>
>>>> For debugging purposes I put a printf as follows in tnl/t_draw.c:
>>>>
>>>> static void bind_inputs( GLcontext *ctx,
>>>> const struct gl_client_array *inputs[],
>>>> GLint count,
>>>> struct gl_buffer_object **bo,
>>>> GLuint *nr_bo )
>>>> {
>>>> ...
>>>> for (i = 0; i < VERT_ATTRIB_MAX; i++) {
>>>> const void *ptr;
>>>>
>>>> if (inputs[i]->BufferObj->Name) {
>>>> if (!inputs[i]->BufferObj->Pointer) {
>>>> ...
>>>> printf("i : %i\n", i);
>>>> printf("name: %i\n", inputs[i]->BufferObj->Name);
>>>> assert(inputs[i]->BufferObj->Pointer);
>>>> }
>>>> ...
>>>> }
>>>>
>>>> On successful runs it looks like:
>>>> i : 0
>>>> name: 1
>>>> i : 0
>>>> name: 1
>>>> i : 31
>>>> name: 1
>>>>
>>>> However when the assertion fails, the output is:
>>>> i : 0
>>>> name: 1
>>>> i : 31
>>>> name: 10999
>>>>
>>>> Not sure that's very helpful, perhaps you can point me in the right
>>>> direction for producing more relevant debug output.
>>>
>>> I haven't seen that one before. Do you happen to have a small test
>>> program that I could try here? I think I've got a 64-bit Linux
>>> install here somewhere...
>>>
>>> You might also try running with valgrind to see if it finds anything.
>>
>> I am attaching the output from valgrind. There indeed are a few
>> suspicious invalid writes.
>>
>> The crash is very random, I am still trying to isolate the cause to
>> write out a small example.
>
> I haven't been able to reproduce this with any hacked demos here.
>
> Do you want to send me a ParaView binary?
>
Sure thing. I am creating one right now.
Utkarsh
|
|
From: Utkarsh A. <utk...@ki...> - 2008-09-03 19:48:22
|
Brian Paul wrote: > Utkarsh Ayachit wrote: >> Brian, >> >> If I build ParaView with debian-lenny (gcc 4.3) can you run it (or do >> you prefer debian-etch? > > Hmmm, I don't have any debian installations here. Pretty much just fedora. > > My 64-bit system has fedora 9. > > -Brian > > This is built using gcc-4.1. Let me know if you cannot run it. http://paraview.org/files/v3.3/ForBrian/paraview-3.3.1-Linux-x86_64.tar.gz To reproduce the bug do the following: * start ./bin/paraview * From the "Sources" menu, select "Sphere" * Hit the "Apply" button on the properties page (lower left dock window). You;ll see a sphere rendered * From the "Filters" menu, select "Common|Clip". A clip plane widget will be shown over the sphere * On the properties tab (below the Apply button), there's a "Show Plane" check box. Just keep on toggling it for a while. After a few (sometimes just a couple, other times several) toggles, paraview will crash with: paraview-real: tnl/t_draw.c:203: bind_inputs: Assertion `inputs[i]->BufferObj->Pointer' failed. Utkarsh |
|
From: Brian P. <bri...@tu...> - 2008-09-03 21:21:18
|
Utkarsh Ayachit wrote: > Brian Paul wrote: >> Utkarsh Ayachit wrote: >>> Brian, >>> >>> If I build ParaView with debian-lenny (gcc 4.3) can you run it (or do >>> you prefer debian-etch? >> >> Hmmm, I don't have any debian installations here. Pretty much just >> fedora. >> >> My 64-bit system has fedora 9. >> >> -Brian >> >> > > This is built using gcc-4.1. Let me know if you cannot run it. > > http://paraview.org/files/v3.3/ForBrian/paraview-3.3.1-Linux-x86_64.tar.gz > > To reproduce the bug do the following: > * start ./bin/paraview > * From the "Sources" menu, select "Sphere" > * Hit the "Apply" button on the properties page (lower left dock > window). You;ll see a sphere rendered > * From the "Filters" menu, select "Common|Clip". A clip plane widget > will be shown over the sphere > * On the properties tab (below the Apply button), there's a "Show Plane" > check box. Just keep on toggling it for a while. After a few (sometimes > just a couple, other times several) toggles, paraview will crash with: > > paraview-real: tnl/t_draw.c:203: bind_inputs: Assertion > `inputs[i]->BufferObj->Pointer' failed. OK, I'm getting the assertion here. I'll try to debug it tomorrow... -Brian |