<div dir="ltr">Hi,<div class="gmail_extra"><br><br><div class="gmail_quote">On 28 December 2012 01:08, Maarten Maathuis <span dir="ltr"><<a href="mailto:madman2003@gmail.com" target="_blank">madman2003@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><span style="color:rgb(34,34,34)">As far as i remember you typically allocate a shadow (there are some</span><br>
</div></div>
driver hooks for that, check existing drivers like intel, radeon or<br>
nouveau). This will become the new scanout buffer and this has the<br>
rotated dimensions. The original rendering will still be done to the<br>
"normal" framebuffer. Composite with rotation in combination with<br>
damage (a system used in X to track what areas have been rendered to<br>
i.e. damaged) is used to keep the shadow up to date.<br>
<br>
You should probably implement the shadow hooks that are present in the<br>
crtc structure. You should make sure this shadow allocation gets used<br>
as the framebuffer. And you should check if your composite<br>
implementation supports rotation, if not it may be necessary to expand<br>
it with support for any scaling/rotation matrix or else add a special<br>
case for 90 degree rotation if your hardware supports that.<br></blockquote><div><br></div><div style>As you can see from the linked diff, the fbdev driver implements rotation as the hardware can do it on scanout.  It also doesn't support any acceleration, given that OMAP carries an SGX, so neither the shadow nor Composite hooks are relevant here.</div>
<div style><br></div><div style>Cheers,</div><div style>Daniel</div></div></div></div>