From: Eric Nelson <eric.nelson@boundarydevices.com>
To: Carlos Rafael Giani <dv@pseudoterminal.org>,
"meta-freescale@yoctoproject.org"
<meta-freescale@yoctoproject.org>
Subject: Re: Missing vsync support in Vivante drivers
Date: Tue, 18 Mar 2014 17:26:53 -0700 [thread overview]
Message-ID: <5328E44D.4040201@boundarydevices.com> (raw)
In-Reply-To: <5328BD2A.2080800@pseudoterminal.org>
Hi Carlos,
On 03/18/2014 02:39 PM, Carlos Rafael Giani wrote:
> Hello,
>
> in the past, there has always been a problem with vsync, OpenGL ES
> output, and X11. Very noticeable tearing affects all such applications.
> So far, neither Vivante nor Freescale have ever commented on this. Is
> there anything known? Should the newest drivers fix this?
You have odd timing. I was just looking into this today for a
customer.
In our kernels and the Freescale kernels. there seems to be an
issue with the default allocation of the frame-buffer, such that
only space for a single buffer is present.
http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tree/drivers/video/mxc/mxc_ipuv3_fb.c?h=imx_3.0.35_4.1.0#n862
Without a larger allocation, I don't think the frame buffer
driver has any way of swapping cleanly at vertical sync.
The 3.10.17-beta kernel seems to do the same thing:
http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tree/drivers/video/mxc/mxc_ipuv3_fb.c?h=imx_3.10.17_1.0.0_beta#n870
You can see this at run-time by looking in
/sys/class/graphics/fb0/virtual_size.
# cat /sys/class/graphics/fb0/mode
U:1280x800p-59
# cat /sys/class/graphics/fb0/virtual_size
1280,800
You can also alter things by using sysfs:
# echo 1280,1600 > /sys/class/graphics/fb0/virtual_size
After changing the size, the FBIO_PAN ioctl does the right
thing. i.e.:
variable_info.yoffset = x;
err = ioctl(fdfb,FBIOPAN_DISPLAY,&variable_info);
And you can see the same thing using /sys/class/graphics/fb0/pan.
It's not clear to me who should be doing this though.
In an X environment, I would expect this to be controlled
through xorg.conf somehow, but my attempts to get fbdev
and shadowfb proved fruitless.
I haven't had a chance to look into the Vivante X driver
and I'm not sure where the OpenGL stack this should be
performed, but since the timing really has to be coordinated
by the frame-buffer, there should be a call somewhere.
In my immediate customer case, using the frame buffer calls
directly is sufficient.
Regards,
Eric
next prev parent reply other threads:[~2014-03-19 0:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-18 21:39 Missing vsync support in Vivante drivers Carlos Rafael Giani
2014-03-19 0:26 ` Eric Nelson [this message]
2014-05-01 9:50 ` Carlos Rafael Giani
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5328E44D.4040201@boundarydevices.com \
--to=eric.nelson@boundarydevices.com \
--cc=dv@pseudoterminal.org \
--cc=meta-freescale@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.