EXA/Composite acceleration for R300

Alex Deucher alexdeucher at gmail.com
Wed Sep 6 15:27:47 PDT 2006


On 9/5/06, Patrick Forget <patrick.forget2 at gmail.com> wrote:
>
> Hello,
>
> 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.

Can you post your patches somewhere?  It will help in figuring out the problem.

Alex


>
> 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.
>
> 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.
>
> 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)
>
> BEGIN_ACCEL(1 + VTX_REG_COUNT * 4);
> OUT_ACCEL_REG(RADEON_SE_VF_CNTL,
>            (RADEON_VF_PRIM_TYPE_QUAD_LIST |
>                       RADEON_VF_PRIM_WALK_DATA |
>                       4 << RADEON_VF_NUM_VERTICES_SHIFT));
> VTX_OUT(dstX,     dstY,     srcX,    srcY,    maskX,    maskY);
> VTX_OUT(dstX,     dstY + h, srcX,    srcYend, maskX,    maskYend);
> VTX_OUT(dstX + w, dstY + h, srcXend, srcYend, maskXend, maskYend);
> VTX_OUT(dstX + w, dstY,     srcXend, srcY,    maskXend, maskY);
> FINISH_ACCEL();
>
> 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?
>
> 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?
>
> Patrick
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
>
>



More information about the xorg mailing list