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