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