Does Xorg'x XRender implementation support "better-than-bilinear" interpolation?

Pierre-Loup A. Griffais pgriffais at nvidia.com
Mon Sep 10 19:17:42 PDT 2012


On 09/10/2012 06:08 PM, Daniel Stone wrote:
> Hi,
>
> On 10 September 2012 23:33, Maarten Maathuis<madman2003 at gmail.com>  wrote:
>> On Mon, Sep 10, 2012 at 11:05 PM, Clemens Eisserer<linuxhippy at gmail.com>  wrote:
>>> I just realized that at least on my machine (fedora 17 + intel 20.2),
>>> the only interpolation modes offered by Xrender are: {nearest ,
>>> bilinear , convolution, fast , good, best}
>>> I always thought best translates into something better than bilinear,
>>> but it seems to be just equal to it.
>>>
>>> Is there any way to archive bicubic interpolation or any other
>>> higher-than-bilinear interpolation using xrender?
>>> As Java2D offers bicubic interpolation, it would mean a fallback to
>>> software-rendering every time a program requests high-quality
>>> interpolation.
>
> 'Best' might be bicubic.  It might be nearest.  It might be anything,
> it's just whatever the driver thinks will offer the best quality.
>
> Bicubic is not required to be offered, but it may be.

I'm not very familiar with bicubic interpolation, but couldn't it be achieved 
using the 'convolution' filter with the adequate kernel? (possibly in several 
passes at different scales). AFAIK 'convolution' is always provided and often 
accelerated.

Thanks,
  - Pierre-Loup

>
>> I don't see it in the renderproto, so it's probably not possible
>> without a spec extension.
>>
>> http://cgit.freedesktop.org/xorg/proto/renderproto/tree/render.h
>
> The filters are a list of strings; a protocol extension is not
> required for a driver to offer (and a client use) more filters than
> the predefined ones.
>
> Cheers,
> Daniel
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel


More information about the xorg-devel mailing list