On 06/07/2011 04:14 PM, Keith Packard wrote:
On Tue,  7 Jun 2011 15:54:39 -0700, Kenneth Graunke<kenn...@whitecape.org>  
wrote:
According to BSpec volume 1c.4 section 3.2.9, Display (Plane) Select is
now at bits 21:19 instead of 21:20.

Signed-off-by: Kenneth Graunke<kenn...@whitecape.org>

I will note that the docs have an obvious bug -- 21:8 are 'reserved' on
IVB while 21:19 are 'Display (Plane) Select'.

In the latest version of the Render Engine Command Streamer chapter, 18:8 are 'reserved' on IVB. Perhaps you have an old copy?

Apparently MI_DISPLAY_FLIP also exists in the Blitter Engine on IVB. I suspect we actually need to use that, but I haven't tried to yet.

I trust you've actually
tried this on hardware and noticed that it works better now?

No, actually...page flips are still broken. I suspect this patch is necessary but insufficient. Feel free to hold off on merging it.

+
+       case 7:
+               OUT_RING(MI_DISPLAY_FLIP | (intel_crtc->plane<<  19));
+               OUT_RING(fb->pitch | obj->tiling_mode);
+               OUT_RING(obj->gtt_offset);
+
+               pf = I915_READ(PF_CTL(pipe))&  PF_ENABLE;
+               pipesrc = I915_READ(PIPESRC(pipe))&  0x0fff0fff;
+               OUT_RING(pf | pipesrc);

What's this last DWORD supposed to be for? The IVB spec says length
should be '1' and there should be only 3 DWORDS in this command.

Good question. My reading of the docs say that it should be 3 DWORDs on SNB as well; this code was directly lifted from "case 6" above (save the first line).

--Kenneth
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to