[Mesa-dev] [PATCH 10/17] gallium/util: Ensure util_framebuffer_get_num_samples() is valid
eocallaghan at alterapraxis.com
eocallaghan at alterapraxis.com
Fri Mar 25 08:46:30 UTC 2016
On 2016-03-25 14:20, Ilia Mirkin wrote:
> Instead of introducing buggy code in patch 6/17 and then fixing it up
> here, you need to fold this with patch 6 so that it's all done at the
> same time.
Yea, can do. Cheers,
>
> On Thu, Mar 24, 2016 at 8:11 PM, Edward O'Callaghan
> <eocallaghan at alterapraxis.com> wrote:
>> Upon context creation, internal driver structures are malloc()'ed
>> and memset() to zero them. This results in a invalid number of
>> samples 'by default'. Handle this in the simplest way to avoid
>> elaborate and probably equally sub-optimial solutions.
>>
>> V2: Minor, use "NOTE:" instead of "N.B." in comment.
>>
>> Signed-off-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>
>> Reviewed-by: Marek Olšák <marek.olsak at amd.com>
>> ---
>> src/gallium/auxiliary/util/u_framebuffer.c | 8 +++++++-
>> 1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/gallium/auxiliary/util/u_framebuffer.c
>> b/src/gallium/auxiliary/util/u_framebuffer.c
>> index 775f050..b020f27 100644
>> --- a/src/gallium/auxiliary/util/u_framebuffer.c
>> +++ b/src/gallium/auxiliary/util/u_framebuffer.c
>> @@ -204,9 +204,15 @@ util_framebuffer_get_num_samples(const struct
>> pipe_framebuffer_state *fb)
>> * In the case of ARB_framebuffer_no_attachment
>> * we obtain the number of samples directly from
>> * the framebuffer state.
>> + *
>> + * NOTE: fb->samples may wind up as zero due to memset()'s on
>> internal
>> + * driver structures on their initialization and so we take
>> the
>> + * MAX here to ensure we have a valid number of samples.
>> However,
>> + * if samples is legitimately not getting set somewhere
>> + * multi-sampling will evidently break.
>> */
>> if (!(fb->nr_cbufs || fb->zsbuf))
>> - return fb->samples;
>> + return MAX2(fb->samples, 1);
>>
>> for (i = 0; i < fb->nr_cbufs; i++) {
>> if (fb->cbufs[i]) {
>> --
>> 2.5.5
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list