-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Brian Paul wrote:
| Brian Paul wrote:
|> On 2/21/08, Ian Romanick <[EMAIL PROTECTED]> wrote:
|>> -----BEGIN PGP SIGNED MESSAGE-----
|>> Hash: SHA1
|>>
|>> Brian Paul wrote:
|>> | Ian Romanick wrote:
|>>
|>> |> Suggestions?
|>> |
|>> | demos/texcyl.c is the one texturing test that pretty much works as
|>> | expected. Use the right mouse button for the options menu.
|>>
|>>
|>> Unfortunately texcyl, renormal, and possibly others die with
|>> "cmd_batch(): assertion 0 failed." Somehow a 0 command is sneaking in.
|>> ~ I've been trying to debug it, but I can't see what's happening
|>> different for renormal than, say, gears. Ugh. :(
|> Hmmm, those programs were working fine for me the other day. I'll try
|> to test tomorrow or over the weekend.
|
| I just updated everything, fixed some build breakage, and the above
| tests run OK here now.
I managed to track down the problem. cell_start_spus is being called
multiple times. Each time it is called the SPUs expect the buffers to
be stored in a different location. However, when the batch data is
later sent to the SPUs, the addresses for one of the earlier invocations
of cell_start_spus is used. The buffer the SPUs actually look at is
empty, and 'cmd_batch(): assertion 0 failed.' results.
I added a printf to cell_start_spus. I've attached the GDB output with
backtraces at each call to cell_start_spus.
It seems to me that the state tied to the SPUs should be treated as a
singleton. cell_start_spus should only be called once, and later calls
to cell_create_context should use the same singleton data. If this
approach seems correct, I'll start working on it tomorrow.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
iD8DBQFHw2+iX1gOwKyEAw8RAp4UAJ42Bb3vVb/KdE900a5RKioFfTTI+wCeIHAR
IA7PGPftCgru9ZrfqzQH5DE=
=UKIq
-----END PGP SIGNATURE-----
[?1034hGNU gdb Red Hat Linux (6.6-42.fc8rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "ppc-redhat-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) b cell_start_sup[K[Kpus
Make breakpoint pending on future shared library load? (y or [n])
Breakpoint 1 (cell_start_spus) pending.
(gdb) r
Starting program: /home/idr/devel/graphics/mesa-build/progs/demos/texcyl
[Thread debugging using libthread_db enabled]
Breakpoint 2 at 0xfc99504: file cell_spu.c, line 104.
Pending breakpoint "cell_start_spus" resolved
[New Thread -137900032 (LWP 3150)]
[Switching to Thread -137900032 (LWP 3150)]
Breakpoint 2, cell_start_spus (cell=0x1001d330) at cell_spu.c:104
104 ASSERT_ALIGN16(&cell_global.command[0]);
(gdb) bt
#0 cell_start_spus (cell=0x1001d330) at cell_spu.c:104
#1 0x0fc96e58 in cell_create_context (winsys=0x1001d2e8, cws=0x1001cbe8)
at cell_context.c:232
#2 0x0fc4f8b8 in xmesa_create_pipe_context (xmesa=0x1001cc68,
pixelformat=613568780) at xm_winsys.c:451
#3 0x0fc4d4a8 in XMesaCreateContext (v=0x1001d1d0, share_list=0x0)
at xm_api.c:775
#4 0x0fc47ea8 in Fake_glXCreateContext (dpy=0x10016048, visinfo=0x1001cc38,
share_list=0x0, direct=1) at fakeglx.c:1431
#5 0x0fc40dd4 in glXCreateContext (dpy=0x10016048, visinfo=0x1001cc38,
shareList=0x0, direct=1) at glxapi.c:188
#6 0x0f91efd0 in fgOpenWindow () from /usr/lib/libglut.so.3
#7 0x0f91d2cc in fgCreateWindow () from /usr/lib/libglut.so.3
#8 0x0f91e8a0 in glutCreateWindow () from /usr/lib/libglut.so.3
#9 0x10002e50 in main (argc=1, argv=0xffff89a4) at texcyl.c:266
(gdb) cont
Continuing.
[New Thread -138165072 (LWP 3153)]
[New Thread -148912976 (LWP 3154)]
[New Thread -159660880 (LWP 3155)]
[New Thread -170408784 (LWP 3156)]
[New Thread -181156688 (LWP 3157)]
[New Thread -191904592 (LWP 3158)]
Breakpoint 2, cell_start_spus (cell=0x100a2800) at cell_spu.c:104
104 ASSERT_ALIGN16(&cell_global.command[0]);
(gdb) bt
#0 cell_start_spus (cell=0x100a2800) at cell_spu.c:104
#1 0x0fc96e58 in cell_create_context (winsys=0x1001d2e8, cws=0x100a22c8)
at cell_context.c:232
#2 0x0fc4f8b8 in xmesa_create_pipe_context (xmesa=0x100a2300,
pixelformat=613568780) at xm_winsys.c:451
#3 0x0fc4d4a8 in XMesaCreateContext (v=0x1001d1d0, share_list=0x0)
at xm_api.c:775
#4 0x0fc47ea8 in Fake_glXCreateContext (dpy=0x10016048, visinfo=0x100711d0,
share_list=0x0, direct=1) at fakeglx.c:1431
#5 0x0fc40dd4 in glXCreateContext (dpy=0x10016048, visinfo=0x100711d0,
shareList=0x0, direct=1) at glxapi.c:188
#6 0x0f91f254 in fgOpenWindow () from /usr/lib/libglut.so.3
#7 0x0f91d2cc in fgCreateWindow () from /usr/lib/libglut.so.3
#8 0x0f91d39c in fgCreateMenu () from /usr/lib/libglut.so.3
#9 0x0f91a170 in glutCreateMenu () from /usr/lib/libglut.so.3
#10 0x10002e90 in main (argc=1, argv=0xffff89a4) at texcyl.c:276
(gdb) cont
Continuing.
PPU: SPU 0 buffer 0 = 0x1001da60
PPU: SPU 0 buffer 1 = 0x1001ea60
PPU: SPU 0 buffer 2 = 0x1001fa60
PPU: SPU 0 buffer 3 = 0x10020a60
PPU: SPU 1 buffer 0 = 0x1001da60
PPU: SPU 1 buffer 1 = 0x1001ea60
PPU: SPU 1 buffer 2 = 0x1001fa60
PPU: SPU 1 buffer 3 = 0x10020a60
PPU: SPU 2 buffer 0 = 0x1001da60
PPU: SPU 2 buffer 1 = 0x1001ea60
PPU: SPU 2 buffer 2 = 0x1001fa60
PPU: SPU 2 buffer 3 = 0x10020a60
PPU: SPU 3 buffer 0 = 0x1001da60
PPU: SPU 3 buffer 1 = 0x1001ea60
PPU: SPU 3 buffer 2 = 0x1001fa60
PPU: SPU 3 buffer 3 = 0x10020a60
PPU: SPU 4 buffer 0 = 0x1001da60
PPU: SPU 4 buffer 1 = 0x1001ea60
PPU: SPU 4 buffer 2 = 0x1001fa60
PPU: SPU 4 buffer 3 = 0x10020a60
PPU: SPU 5 buffer 0 = 0x1001da60
PPU: SPU 5 buffer 1 = 0x1001ea60
PPU: SPU 5 buffer 2 = 0x1001fa60
PPU: SPU 5 buffer 3 = 0x10020a60
PPU: SPU 0 buffer 0 = 0x100a2f30
PPU: SPU 0 buffer 1 = 0x100a3f30
PPU: SPU 0 buffer 2 = 0x100a4f30
PPU: SPU 0 buffer 3 = 0x100a5f30
PPU: SPU 1 buffer 0 = 0x100a2f30
PPU: SPU 1 buffer 1 = 0x100a3f30
PPU: SPU 1 buffer 2 = 0x100a4f30
P[New Thread -203987792 (LWP 3159)]
[New Thread -214735696 (LWP 3160)]
[New Thread -225483600 (LWP 3161)]
[New Thread -236231504 (LWP 3162)]
[New Thread -246979408 (LWP 3163)]
[New Thread -257727312 (LWP 3164)]
Breakpoint 2, cell_start_spus (cell=0x100f0e10) at cell_spu.c:104
104 ASSERT_ALIGN16(&cell_global.command[0]);
(gdb) bt
#0 cell_start_spus (cell=0x100f0e10) at cell_spu.c:104
#1 0x0fc96e58 in cell_create_context (winsys=0x1001d2e8, cws=0x100f0df0)
at cell_context.c:232
#2 0x0fc4f8b8 in xmesa_create_pipe_context (xmesa=0x100f0de0,
pixelformat=613568780) at xm_winsys.c:451
#3 0x0fc4d4a8 in XMesaCreateContext (v=0x1001d1d0, share_list=0x0)
at xm_api.c:775
#4 0x0fc47ea8 in Fake_glXCreateContext (dpy=0x10016048, visinfo=0x100711d0,
share_list=0x0, direct=1) at fakeglx.c:1431
#5 0x0fc40dd4 in glXCreateContext (dpy=0x10016048, visinfo=0x100711d0,
shareList=0x0, direct=1) at glxapi.c:188
#6 0x0f91efd0 in fgOpenWindow () from /usr/lib/libglut.so.3
#7 0x0f91d2cc in fgCreateWindow () from /usr/lib/libglut.so.3
#8 0x0f91d39c in fgCreateMenu () from /usr/lib/libglut.so.3
#9 0x0f91a170 in glutCreateMenu () from /usr/lib/libglut.so.3
#10 0x10002e90 in main (argc=1, argv=0xffff89a4) at texcyl.c:276
(gdb) cont
Continuing.
PU: SPU 1 buffer 3 = 0x100a5f30
PPU: SPU 2 buffer 0 = 0x100a2f30
PPU: SPU 2 buffer 1 = 0x100a3f30
PPU: SPU 2 buffer 2 = 0x100a4f30
PPU: SPU 2 buffer 3 = 0x100a5f30
PPU: SPU 3 buffer 0 = 0x100a2f30
PPU: SPU 3 buffer 1 = 0x100a3f30
PPU: SPU 3 buffer 2 = 0x100a4f30
PPU: SPU 3 buffer 3 = 0x100a5f30
PPU: SPU 4 buffer 0 = 0x100a2f30
PPU: SPU 4 buffer 1 = 0x100a3f30
PPU: SPU 4 buffer 2 = 0x100a4f30
PPU: SPU 4 buffer 3 = 0x100a5f30
PPU: SPU 5 buffer 0 = 0x100a2f30
PPU: SPU 5 buffer 1 = 0x100a3f30
PPU: SPU 5 buffer 2 = 0x100a4f30
PPU: SPU 5 buffer 3 = 0x100a5f30
PPU: SPU 0 buffer 0 = 0x100f1540
PPU: SPU 0 buffer 1 = 0x100f2540
PPU: SPU 0 buffer 2 = 0x100f3540
PPU: SPU 0 buffer 3 = 0x100f4540
PPU: SPU 1 buffer 0 = 0x100f1540
PPU: SPU 1 buffer 1 = 0x100f2540
PPU: SPU 1 buffer 2 = 0x100f3540
PPU: SPU 1 buffer 3 = 0x100f4540
PPU: SPU 2 buffer 0 = 0x100f1540
PPU: SPU 2 buffer 1 = 0x100f2540
PPU: SPU 2 buffer 2 = 0x100f3540
PPU: SPU 2 buffer 3 = 0x100f4540
PPU: SPU 3 buffer 0 = 0x100f1540
PPU: SPU 3 buffer 1 = 0x100f2540
PP[New Thread -268475216 (LWP 3165)]
[New Thread -279223120 (LWP 3166)]
[New Thread -289971024 (LWP 3167)]
[New Thread -300718928 (LWP 3168)]
[New Thread -311466832 (LWP 3169)]
[New Thread -322214736 (LWP 3170)]
[Thread -300718928 (LWP 3168) exited]
[Thread -279223120 (LWP 3166) exited]
[Thread -322214736 (LWP 3170) exited]
[Thread -268475216 (LWP 3165) exited]
[Thread -289971024 (LWP 3167) exited]
[Thread -311466832 (LWP 3169) exited]
Program received signal SIGINT, Interrupt.
0xf7ddc18c in read () from /lib/libc.so.6
(gdb) quit
The program is running. Exit anyway? (y or n)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev