Re: downscaling YUV fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2012-12-19 13:52, Archit Taneja wrote:
> On Wednesday 19 December 2012 04:51 PM, Tomi Valkeinen wrote:
>> On 2012-12-19 13:19, Tomi Valkeinen wrote:
>>> On 2012-12-19 12:51, Peter Meerwald wrote:
>>>> Hello,
>>>>
>>>>> In the case we set it to 4, the DISPC_FCLK is fast enough to do the
>>>>> required
>>>>> downscaling, but in the case when it's set to 0, it might need to
>>>>> pre decimate
>>>>> rather than try to scale.
>>>>
>>>> this is my understanding as well
>>>>
>>>>>> I think there is a bug downscaling YUV data when resorting to
>>>>>> pre-decimation; setting CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK is a
>>>>>> workaround
>>>>>> -- any ideas how this can be fixed?
>>>>
>>>>> Pre-decimation should work for YUV formats also. Could you share
>>>>> DISPC reg
>>>>> dumps when this happens:
>>>>>
>>>>> mount -t debugfs debugfs /sys/kernel/debug
>>>>> cat /sys/kernel/debug/omapdss/dispc
>>>>
>>>> please find the files http://pmeerw.net/ok.dispc (with
>>>> FCK_PER_PCK=4) and
>>>> http://pmeerw.net/fail.dispc (FCK_PER_PCK=0)
>>>
>>> Something funny is going on here. I can reproduce on omap3 with a few
>>> hacks that reduce the clocks. The PICTURE_SIZE's width field is
>>> different for working and non-working cases, but I think it should be
>>> the same for both.
>>
>> Ah, never mind. Of course the picture_size needs to be modified if
>> predecimation is used...
> 
> You said that you see the issue with RGB too. Did you mean the
> picture_size, or visually also?

Visually. I see skewed image for both RGB and YUV modes on omap3.

It was a bit difficult to reproduce, but I first forced the clocks down,
and then I was able to get predecimation for RGB, but not YUV. The
reason was this:

		if (color_mode == OMAP_DSS_COLOR_RGB24U)
			core_clk <<= 1;

So for some reason, the core_clk requirement for RGB24U is x2 than for
others. I have _no_ idea why that is, the line has been there from the
start...

After I removed the if, so that the core_clk requirement is x2 always, I
also got predecimation for YUV, and I see the same skew.

> One thing I'm guessing is that DMA fetching with predecimation isn't
> really optimised for omap3, if the pixel clock in Peter's setup is high,
> the DISPC DMA might not be able to fetch pixels fast enough in
> predecimation case. That sort of supports the possibility of a skewed
> image seen.

The image I get is stable, and clearly something that happens when, say,
row_inc is one pixel too much, or similar.

 Tomi


Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux