<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>