I tell a lie 6.5 also has the problem.

 


From: mesa3d-users-bounces@lists.sourceforge.net [mailto:mesa3d-users-bounces@lists.sourceforge.net] On Behalf Of Heath Feather
Sent: Tuesday, October 17, 2006 11:18 AM
To: mesa3d-users@lists.sourceforge.net
Subject: [Mesa3d-users] 6.5.1 clipped line crash

 

Just got the following backtrace from the new 6.5.1 under linux-x86 X11.This is an app that previously worked fine with Mesa 5.1, 6.0, 6.41,6.5 and NVIDIA drivers.

 

It seems to be sensitive to certain clipped lines, if I shorten some so that they don’t get clipped and it will run, some lines which should be clipped just don’t get rendered. If you look at the bottom of the backtrace the render buffer “rb” is a NULL pointer.

 

Heath.

 

=============================================================

 

Program received signal SIGSEGV, Segmentation fault.

0xb64f109e in _swrast_write_rgba_span (ctx=0x9d26630, span=0xbfffaf90) at swrast/s_span.c:1379

1379             rb->PutValues(ctx, rb, span->end, span->array->x, span->array->y,

Current language:  auto; currently c

(gdb) bt

#0  0xb64f109e in _swrast_write_rgba_span (ctx=0x9d26630, span=0xbfffaf90) at swrast/s_span.c:1379

#1  0xb64e532f in simple_rgba_line (ctx=0x9d26630, vert0=0xb5351368, vert1=0xb535150c) at s_linetemp.h:430

#2  0xb64df0a3 in _swrast_validate_line (ctx=0x9d26630, v0=0xb5351368, v1=0xb535150c) at swrast/s_context.c:331

#3  0xb64de8fe in _swrast_Line (ctx=0xbfffaf90, v0=0xb5351368, v1=0xb535150c) at swrast/s_context.c:587

#4  0xb651f2bf in swsetup_line (ctx=0x9d26630, v0=3041615880, v1=3041632264) at swrast_setup/ss_triangle.c:278

#5  0xb6478cad in _tnl_RenderClippedLine (ctx=0xbfffaf90, ii=2, jj=3) at tnl/t_vb_render.c:251

#6  0xb647c81a in clip_line_4 (ctx=0x9d26630, v0=2, v1=3, mask=12 '\f') at t_vb_cliptmp.h:173

#7  0xb6478d59 in clip_render_lines_verts (ctx=0x9d26630, start=0, count=2, flags=49) at t_vb_rendertmp.h:88

#8  0xb647c1b9 in run_render (ctx=0x9d26630, stage=0x9f5b8d4) at tnl/t_vb_render.c:320

#9  0xb646aece in _tnl_run_pipeline (ctx=0x9d26630) at tnl/t_pipeline.c:159 #10 0xb64a3232 in _tnl_flush_vtx (ctx=0x9d26630) at tnl/t_vtx_exec.c:281

#11 0xb649a095 in _tnl_FlushVertices (ctx=0x9d26630, flags=1) at tnl/t_vtx_api.c:881

#12 0xb63e0fcd in _mesa_PopAttrib () at main/attrib.c:815

#13 0x08054329 in LGOCanvas::drawMainScene() (this=0x80adfb0) at lgocanvas.cpp:153

#14 0x08057617 in LGOCanvas::redrawResizeGLXPbuffer() (this=0x80adfb0) at lgocanvasportability.cpp:60

#15 0x080551a3 in LGOCanvas::redrawResize() (this=0x80adfb0) at lgocanvas.cpp:702

#16 0x08054f43 in LGOCanvas::paintGL() (this=0x80adfb0) at lgocanvas.cpp:636

#17 0xb6a4b571 in QGLWidget::glDraw() (this=0x80adfb0) at qgl.cpp:3050

#18 0xb6a4ab49 in QGLWidget::updateGL() (this=0x80adfb0) at qgl.cpp:2683

#19 0x08054e37 in LGOCanvas::actualResizeGL() (this=0x80adfb0) at lgocanvas.cpp:611 #20 0x080554f9 in LGOCanvas::timerEvent(QTimerEvent*) (this=0x80adfb0, pEvent=0xbfffbc20) at lgocanvas.cpp:819

#21 0xb752eed1 in QObject::event(QEvent*) (this=0x80adfb0, e=0xbfffbc20) at kernel/qobject.cpp:990

#22 0xb6cf524b in QWidget::event(QEvent*) (this=0x80adfb0, event=0xbfffbc20) at kernel/qwidget.cpp:5917

#23 0xb6a68fb3 in QGLWidget::event(QEvent*) (this=0x80adfb0, e=0xbfffbc20) at qgl_x11.cpp:1059

#24 0xb6ca17a5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=0x8061d90, receiver=0x80adfb0, e=0xbfffbc20) at kernel/qapplication.cpp:3433

#25 0xb6ca149a in QApplication::notify(QObject*, QEvent*) (this=0xbfffbfb0, receiver=0x80adfb0, e=0xbfffbc20) at kernel/qapplication.cpp:3374

#26 0xb751f3af in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=0x80adfb0, event=0xbfffbc20) at qcoreapplication.h:178

#27 0xb7549c14 in timerSourceDispatch (source=0x8067560) at kernel/qeventdispatcher_glib.cpp:187

#28 0xb6356c30 in unblock_source () from /usr/lib/libglib-2.0.so.0

#29 0xb6357c98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #30 0xb6357fad in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0

#31 0xb63581ec in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0

#32 0xb754ae19 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x80661f8, flags={i = 20}) at kernel/qeventdispatcher_glib.cpp:361

#33 0xb6d37b4b in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x80661f8, flags={i = 0})

    at kernel/qguieventdispatcher_glib.cpp:174

#34 0xb751851d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xbfffbf00, flags={i = 20}) at kernel/qeventloop.cpp:123

#35 0xb751860f in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xbfffbf00, flags={i = 0}) at kernel/qeventloop.cpp:169

#36 0xb751b13a in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:688

#37 0xb6c9fa41 in QApplication::exec() () at kernel/qapplication.cpp:2926

#38 0x08052b06 in Lgo_UnitTest::TestCanvas(int, char**) (fake_argc=0, fake_argv=0xbfffc0ec) at lgotestcanvas.cpp:34

#39 0x0804e9e1 in Cpp_FunctionCaller(int (*)(int, char**), int, char**) (function=0x8052ab4 <Lgo_UnitTest::TestCanvas(int, char**)>, argc=0, argv=0xbfffc0ec)

    at lgotestdft.cpp:285

#40 0x0804e7ff in Dispatch (testcase=0x805e09c, argc=1, argv=0xbfffc0e8) at lgotestdft.cpp:150

#41 0x0804e940 in Dft_TestDispatch(Dft_DispatchEntry_t const*, int, int, char**) (dispatch_table=0x805e094, num_entries=2, argc=1, argv=0xbfffc0e8) at lgotestdft.cpp:225

#42 0x0804ec7b in main (argc=2, argv=0xbfffc0e4) at lgotest.cpp:131

(gdb) p ctx

$1 = (GLcontext *) 0x9d26630

(gdb) p rb

$2 = (struct gl_renderbuffer *) 0x0

(gdb) p span

$3 = (struct sw_span *) 0xbfffaf90

(gdb) p* span

$4 = {x = 134651600, y = -1231027996, start = 0, end = 12414, writeAll = 1 '\001', primitive = 6913, facing = 0, interpMask = 1, red = 522240, redStep = 0, green = 0,

  greenStep = 0, blue = 0, blueStep = 0, alpha = 522240, alphaStep = 0, specRed = 523264, specRedStep = 0, specGreen = 523264, specGreenStep = 0, specBlue = 1056964608,

  specBlueStep = 0, index = 1024, indexStep = 0, z = 1024, zStep = 0, fog = -1.99757099, fogStep = -3.0855083e-06, tex = {{0, 9.02436211e-43, 0, 1.6395192e-43}, {

      0.50000006, 1.26116862e-44, 0, 1.72359711e-43}, {7.3324904e-40, 0, 7.3324904e-40, 0}, {7.3324904e-40, 0, 7.3324904e-40, 0}, {1.43492963e-42, 0, 1.43492963e-42,

      0}, {1.43492963e-42, 0, -1.99757671, -3.32822583e-06}, {1.50463277e-36, 0, 0, -0}, {0.5, 643.5, 0, 1}}, texStepX = {{3.40515527e-41, -1.99758339, 7.3181411e-40,

      0}, {1, -0, -0, -0}, {5.7453237e-44, 0, -nan(0x7fffd8), 0}, {0, 2.3509887e-38, -1.99758434, -1.17699146e-05}, {1.40129846e-45, 2.3509887e-38, -1.99758625,

      -1.17699547e-05}, {0, 2.35098898e-38, -1.99758816, -1.17699146e-05}, {1.40129846e-45, 2.3509887e-38, -1.99759007, -1.17699547e-05}, {4.0507719e-34,

      1.40129846e-45, 1.40129846e-45, -1.17699328e-05}}, texStepY = {{4.0507719e-34, -1.32490677e-05, -1.99759388, -1.17698564e-05}, {4.0507719e-34, 1.40129846e-45, 0,

      -1.17698346e-05}, {1.40129846e-45, -1.32490677e-05, -1.99759769, -1.17697291e-05}, {4.0507719e-34, 1.40129846e-45, 0, -1.17696291e-05}, {-1.32490677e-05,

      4.20040315e-34, -1.99760151, -1.17715745e-05}, {4.04646298e-34, -1.99761391, 4.48415509e-44, -1.17715263e-05}, {-2.42518581e-06, -1.32490677e-05, -1.99760532,

      -1.17712825e-05}, {-1.99761009, 4.04646298e-34, 0, -1.17712661e-05}}, intTex = {-1219271427, -1218557872}, intTexStep = {-1073761848, -1220182800}, var = {{

      -1.99761009, 4.04646298e-34}, {-1.997756, -1.17709887e-05}, {-1.32490677e-05, 1.26116862e-43}, {-1.99761295, -1.25969818e-05}, {4.04646298e-34, 1.40129846e-45}, {

      -1.99761677, -1.2514658e-05}, {-1.32490677e-05, -1.32490677e-05}, {-1.99761677, -1.25141596e-05}, {-1.99775696, 4.05098128e-34}, {1.23314265e-43,

      -1.25141432e-05}, {-1.32490677e-05, -1.32490677e-05}, {-1.99776173, -1.25870247e-05}, {-1.99775696, 7.8472714e-44}, {-1.99776173, -1.25859569e-05}, {

      -4.14486249e-06, -4.76847526e-06}, {-1.9976263, -4.44987472e-06}}, varStepX = {{4.05170862e-34, -1.99762869}, {2.80259693e-45, -1.99762869}, {1.40129846e-44,

      3.01713572e-41}, {-1.99763632, -4.76847526e-06}, {2.80259693e-45, 4.1780412e-34}, {4.04642992e-34, 7.8472714e-44}, {3.58732407e-43, 4.20389539e-45}, {-1.99762869,

      7.8472714e-44}, {7.70714155e-44, 7.56701171e-44}, {-1.99763584, -4.96063421e-06}, {0, 2.35099515e-38}, {-1.99763584, -1.17699146e-05}, {1.40129846e-45,

      2.3509887e-38}, {-1.99763775, -1.17699547e-05}, {0, 2.35098898e-38}, {-1.99763966, -1.17699146e-05}}, varStepY = {{1.40129846e-45, 2.3509887e-38}, {-1.99764156,

      -3.12129782e-06}, {-3.12840893e-06, 5.90901321e-33}, {-1.99772167, -3.12101224e-06}, {5.06517577e-33, 1.90469611e-33}, {-1.99772358, -3.1209986e-06}, {

      1.50933181e-33, 1.40129846e-45}, {0, -3.1209986e-06}, {1.40129846e-45, -1.32490677e-05}, {-1.99764919, -1.17697291e-05}, {4.0507719e-34, 1.40129846e-45}, {0,

      -1.17696291e-05}, {-1.32490677e-05, 4.20040315e-34}, {-1.99765301, -1.17715745e-05}, {-3.00258239e-06, 2.37460585e-33}, {1, 32768}}, dzdx = 0, dzdy = 32768,

  w = 1, dwdx = 0, dwdy = 0, drdx = -3.32822583e-06, drdy = -1.99767208, dgdx = -3.00219722e-06, dgdy = -3.00258239e-06, dbdx = -6.74568128e-07, dbdy = 1, dadx = 32768,

  dady = 0, dsrdx = -3.1949412e-06, dsrdy = 0, dsgdx = -3.07407663e-06, dsgdy = 2.3509887e-38, dsbdx = -3.32822583e-06, dsbdy = -1.99766636, dfogdx = -3.19493142e-06,

  dfogdy = 5.06517577e-33, arrayMask = 2049, array = 0xb54a7008}

(gdb) l

131           result = Dft_TestDispatch(subtests, num_tests, argc-1, argv+1);

132         }

133       catch(...)

134         {

135           printf("LGOTest::Unknown Exception\n");

136         }

137

138       return(result);

139     }

(gdb) up

#1  0xb64e532f in simple_rgba_line (ctx=0x9d26630, vert0=0xb5351368, vert1=0xb535150c) at s_linetemp.h:430

430     s_linetemp.h: No such file or directory.

        in s_linetemp.h

(gdb) down

#0  0xb64f109e in _swrast_write_rgba_span (ctx=0x9d26630, span=0xbfffaf90) at swrast/s_span.c:1379

1379             rb->PutValues(ctx, rb, span->end, span->array->x, span->array->y,

(gdb) l

1374          if (span->arrayMask & SPAN_XY) {

1375             /* array of pixel coords */

1376             ASSERT(rb->PutValues);

1377             ASSERT(rb->_BaseFormat == GL_RGB || rb->_BaseFormat == GL_RGBA);

1378             /* XXX check datatype */

1379             rb->PutValues(ctx, rb, span->end, span->array->x, span->array->y,

1380                           span->array->rgba, span->array->mask);

1381          }

1382          else {

1383             /* horizontal run of pixels */