[Pixman] [PATCH v10 11/15] pixman-filter: Turn off subsampling for width=1 filters

Bill Spitzak spitzak at gmail.com
Thu Feb 4 19:56:46 PST 2016


On 02/04/2016 02:39 AM, Oded Gabbay wrote:
> On Tue, Feb 2, 2016 at 8:28 AM,  <spitzak at gmail.com> wrote:
>> From: Bill Spitzak <spitzak at gmail.com>
>>
>> Due to normalization these filters must all be identical (a single 1.0).
>>
>> Also make IMPULSE.IMPULSE produce a width=1 filter, rather than zero
>> (which did not work).
>>
>> v7: Replaced earlier tests for BOX.IMPULSE
>> v10: Moved code to filter_width function
>>
>> Signed-off-by: Bill Spitzak <spitzak at gmail.com>
>> ---
>>   pixman/pixman-filter.c | 8 +++++++-
>>   1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c
>> index 10fa398..520ce92 100644
>> --- a/pixman/pixman-filter.c
>> +++ b/pixman/pixman-filter.c
>> @@ -341,7 +341,13 @@ static int
>>   filter_width(pixman_kernel_t reconstruct, pixman_kernel_t sample,
>>               double* size, int* subsample_bits)
>>   {
>> -    return ceil (filters[reconstruct].width + *size * filters[sample].width);
>> +    int width = ceil (filters[reconstruct].width + *size * filters[sample].width);
>> +    if (width <= 1)
>> +    {
>> +       width = 1;
>> +       *subsample_bits = 0;
>> +    }
>> +    return width;
>>   }
>>
>>   /* Create the parameter list for a SEPARABLE_CONVOLUTION filter
>> --
>> 1.9.1
>>
>> _______________________________________________
>> Pixman mailing list
>> Pixman at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/pixman
>
> I would need to see some form of test/example that is affected by this
> patch, as I don't have the knowledge to even ACK it.
>
> Otherwise, you will need to get someone else to review this (Soren ?).

If the filter has one sample it is by definition 1.0 since the filters 
are normalized. Since every filter must match the subsample position 
does not matter.

However this code is really only hit for some degenerate cases that are 
not really used, as it matches the IMPULSE option, so it is probably ok 
to leave the subsamples alone. I think it is necessary to avoid a width 
of zero as the other code does not like it.




More information about the Pixman mailing list