On Tue, 11 Jan 2005 17:47:31 +0100, Roland Scheidegger
<[EMAIL PROTECTED]> wrote:
> Alex Deucher wrote:
> > On Mon, 10 Jan 2005 23:41:55 -0500, Michel Dänzer <[EMAIL PROTECTED]> wrote:
> >
> >>On Wed, 2005-01-05 at 09:27 -0500, Alex Deucher wrote:
> >>
> >>>Ok, so last night I think I figured out why pageflipping was borked
> >>>with mergedfb.  Unfortunately the fix requires changes to the drm and
> >>>sarea.  I'm wondering what the best way to do this is and maintain
> >>>compatability.  When crtc1 is at offset 0 pageflipping should work
> >>>with a simple patch to radeon_driver.c::RadeonDoAdjustframe().  the
> >>>backbuffer offset was being added to the base address after the
> >>>crtc2_base info was updated in the sarea.  That's an easy fix.
> >>
> >>For what? radeon_cp_dispatch_flip() adds the offset before writing the
> >>CRTC(2)_OFFSET registers?
> >>
> >
> >
> > you're right.
> >
> >
> >>>For situations where crtc2 is at offset 0 and crtc1 is at a higher offset,
> >>>changes to the drm and sarea are required.  I think the easiest
> >>>solution would be to add a crtc1_base to the sarea and update that in
> >>>RadeonDoAdjustframe() just like crtc2_base.  The problem is that in
> >>>the drm in radeon_state.c::radeon_cp_dispatch_flip() the offset of
> >>>crtc1 is calculated from the sarea frame info which could be crtc1 or
> >>>crtc2 depending on their orientation.  It should really be calcluated
> >>>in RadeonDoAdjustframe() just like crtc2 base.
> >>
> >>Why don't you make sure the frame info is set the way the DRM expects it
> >>instead?
> >
> >
> >
> > That's a good idea.  The code in the drm should work fine with a small
> > modification to the DDX, the problem is values in the in the sarea
> > that get set in the DDX never make it to the drm.  I did some testing
> > of this solution last night and the values I set in the DDX never make
> > it to the drm.  I'm not sure why; I'm not yet that familiar with the
> > drm.  Everything works fine if I hard code the offsets in the dispatch
> > pageflip function in the drm.  Does any one have any ideas?
> >
> > Alex
> 
> Are you trying to fix up the frame.y and frame.x values in the sarea in
> ddx? This will probably not work, since _DRIAdjustFrame (in dri.c) will
> overwrite them right after that. Though I don't know if this is actually
> always called, or only if a 3d client is running.
> 

hmm, that could cause other problems...  That still doesn't explain
why crtc2_base doesn't make it to the drm properly though, unless that
gets messed with elsewhere as well.

Alex

> Roland
>


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to