Radeon M7 rendering problem for SXGA+

Alex Deucher alexdeucher at gmail.com
Wed Oct 18 19:32:44 PDT 2006


On 10/18/06, John Klingler <john at jupiter.com> wrote:
>
>  Well, Alex, as it turns out I tried that before and it didn't work and now
> I can see
>  why. By itself it is not enough. Backtracking to see what needs to be done
> keeps widening
>  with no end in sight short of just using the xorg radeon driver. If there
> were a simple
>  way of doing that, I would. However, the xorg drivers are not easily
> decoupled from the
>  upper level infrastructure. The alternative of just using the xorg DDX
> would require
>  integrating my DDX with it. I looked at that before and ran into the same
> problem.
>
>  In any case, thanks for taking the time to help.

I'm not sure I understand the widening problem.  If you are writing
your own driver just set the pitch of the drawing engine to the pitch
of the surface you are drawing to.  make sure your pitch matches the
HW requirements.  You will have to set the pitch on both the src and
dst surfaces.  EXA might be easier to follow since the pitch and
offsets are configured per pixmap.  Take a look at radeon_exa.c and
radeon_exa_funcs.c.  Also keep in mind that the crtc pitch and the
drawing engine pitch do not have to match.  You can have a huge
virtual desktop with a variable sized window looking into it.

Alex

>
>
>  John
>
>  John Klingler wrote:
>  Thanks, Alex,
>
>  I think that's what I was looking for:
>  radeon_accelfuncs.c: OUT_ACCEL_REG(RADEON_DEFAULT_OFFSET,
> info->dst_pitch_offset);
>
>  I'll try it in a few minutes.
>
>  I wrote a little test program to see what RADEONSetPitch() does with 1400
> and it
>  does indeed round virtualX up to a displayWidth of 1408,
> RADEONPreInitModes,
>  however, sets displayWidth  = virtualX without adjustment, which was
> confusing.
>  I was having trouble figuring out what the driver did with displayWidth.
>
>  John
>
>  Alex Deucher wrote:
> On 10/18/06, John Klingler <john at jupiter.com> wrote:
>
> I am not using the xorg radeon driver but I have been going through the code
>  to see how this is handled. As far as I have been able to determine, the
>  driver does not support SXGA+. I will look again. (Can you give me a hint?)
>
>
>  The driver handles all modes just fine.  see radeon_driver.c
>  RADEONSetPitch() and the drawing engine's destination/pitch register:
>  info->dst_pitch_offset = (((pScrn->displayWidth *
>  info->CurrentLayout.pixel_bytes / 64)
>  << 22) | ((info->fbLocation + pScrn->fbOffset) >> 10));
>
>  Alex
>
>
>



More information about the xorg mailing list