<div>Hello,<br><br>As you may be aware, the radeon driver only support
exa core operation for R300 and above. I do have a R300 (M11 I think)
and try to include support for exa for this card. However, with a lot
of effort, i wasn't able to make it work. Someone in this list may be
more aware on the internal of the R300 to point me towards a solution.
<br><br>I am using Ubuntu Dapper with xorg 7.0. I did use the driver
source tarball from xorg 7.0. Currently, I got DRI enable, using 3D
open source driver. I have try also to disable glx and DRI for some
tests. I have changed the code in radeon_exa_render.c to add the
function R300PrepareComposite, R300CheckComposite, R300TextureSetup,
R300CheckCompositeTexture by starting will the R200 path and replacing
with the appropriate register for R300 (taken in R300_reg.h from
Mesa). Some of them are straightforward, but other are just guess.
<br><br>The mean issues is a hang of the OS which prevent me of
finding the good set of registers. This is expected if the wrong set
of command are send to the video card. I have trace back the freeze to
the function RadeonComposite (path is ACCEL_CP). Putting a #if 0 to
avoid sending the command stream to the video card in this function
alone prevent the freeze.
<br><br>As a reference, here the offending bit in RadeonComposite()
that trigger the problem. I have check in the sourceforge r300 project
for the r300_demo.c and the current Mesa r300 driver. Both use the
same code path for immediate rendering (the register name have changed,
but the numerical values are kept the same)
<br><br>BEGIN_ACCEL(1 + VTX_REG_COUNT * 4);<br>OUT_ACCEL_REG(RADEON_SE_VF_CNTL,<br> (RADEON_VF_PRIM_TYPE_QUAD_LIST |<br> RADEON_VF_PRIM_WALK_DATA |<br> 4 << RADEON_VF_NUM_VERTICES_SHIFT));
<br>VTX_OUT(dstX, dstY, srcX, srcY, maskX, maskY);<br>VTX_OUT(dstX, dstY + h, srcX, srcYend, maskX, maskYend);<br>VTX_OUT(dstX + w, dstY + h, srcXend, srcYend, maskXend, maskYend);<br>VTX_OUT(dstX + w, dstY, srcXend, srcY, maskXend, maskY);
<br>FINISH_ACCEL();<br><br>If that part of the code is correct, any
other reason could trigger a frozen screen (OS freeze)? If I don't
setup the card icorrectly in R300PrepareComposite, should I only
expect garbage/image corruption on the screen?<br><br>Any
suggestion. Maybe someone with more experience on the driver side
could check the code. What is the best way to discuss of this issue.
Is it better to open a bug in Buzilla and attach the code or simply use
the mailing list?
<br></div><span class="sg"><br>Patrick</span>