Hi,

while I was trying to understand the DMA buffer allocation of the radeon
driver a few months ago I added an assertion at the end of
radeonAllocDmaRegion:

   assert (rmesa->dma.current.ptr <= rmesa->dma.current.end);

It fails if someone tries to allocate more DMA buffer space than one DMA
buffer size. Now while testing quakeforge after a long time again the
assertion did actually fail. RADEON_DEBUG=ioctl shows that
radeonAllocDmaRegion is called with bytes=72000. IIRC the DMA buffer
size is 65536. Here is a backtrace:

nq-glx: radeon_ioctl.c:635: radeonAllocDmaRegion: Assertion `rmesa->dma.current.ptr <= 
rmesa->dma.current.end' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread 1024 (LWP 1016)]
0x40334581 in kill () from /lib/libc.so.6
(gdb) bt
#0  0x40334581 in kill () from /lib/libc.so.6
#1  0x40334394 in raise () from /lib/libc.so.6
#2  0x403358d1 in abort () from /lib/libc.so.6
#3  0x4032edb2 in __assert_fail () from /lib/libc.so.6
#4  0x41654ce7 in radeonAllocDmaRegion () at radeon_ioctl.c:609
#5  0x41656442 in radeonEmitArrays (ctx=0x8167898, inputs=24)
    at radeon_maos_verts.c:305
#6  0x416788e5 in radeon_run_tcl_render (ctx=0x8167898, stage=0x82e2d38)
    at radeon_tcl.c:315
#7  0x4162f733 in _tnl_run_pipeline (ctx=0x8167898) at t_pipeline.c:154
#8  0x41661d87 in radeonWrapRunPipeline (ctx=0x8167898) at radeon_state.c:2088
#9  0x41620115 in _tnl_DrawElements (mode=2823, count=137243856, 
    type=137243856, indices=0x8318ba8) at t_array_api.c:99
#10 0x415bb936 in neutral_DrawElements (mode=0, count=0, type=0, indices=0x0)
    at ../../../../extras/Mesa/src/vtxfmt_tmp.h:369
#11 0x41680571 in radeon_fallback_DrawElements (mode=0, count=0, type=0, 
    indices=0x0) at ../../../../../../extras/Mesa/src/vtxfmt_tmp.h:369
#12 0x415bb936 in neutral_DrawElements (mode=0, count=0, type=0, indices=0x0)
    at ../../../../extras/Mesa/src/vtxfmt_tmp.h:369
#13 0x40026f38 in Draw_nString (x=6, y=1078070736, 
    str=0x4144e780 "_histogram GL_EXT_packed_pixels GL_EXT_polygon_offset", ' ' 
<repeats 19 times>, "GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_texture3D", ' 
' <repeats 17 times>, "GL_EXT_texture_env_add GL_EXT_texture_env_combine ---Type 
<return> to continue, or q <return> to quit---
"..., count=0) at gl_draw.c:367
#14 0x72676f74 in ?? ()
Cannot access memory at address 0x7369685f

Felix

               __\|/__    ___     ___     ___
__Tschüß_______\_6 6_/___/__ \___/__ \___/___\___You can do anything,___
_____Felix_______\Ä/\ \_____\ \_____\ \______U___just not everything____
  [EMAIL PROTECTED]    >o<__/   \___/   \___/        at the same time!


-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to