[Mesa-dev] [PATCH 1/3] freedreno/a2xx: fix comparison out of range warnings

Rob Clark robdclark at gmail.com
Mon Aug 1 13:47:46 UTC 2016


On Mon, Aug 1, 2016 at 8:10 AM, Eric Engestrom
<eric.engestrom at imgtec.com> wrote:
> On Sat, Jul 30, 2016 at 09:49:57AM +0200, Francesco Ansanelli wrote:
>> Signed-off-by: Francesco Ansanelli <francians at gmail.com>
>> ---
>>  src/gallium/drivers/freedreno/a2xx/fd2_screen.c |    8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/gallium/drivers/freedreno/a2xx/fd2_screen.c b/src/gallium/drivers/freedreno/a2xx/fd2_screen.c
>> index fe4849b..007b9e6 100644
>> --- a/src/gallium/drivers/freedreno/a2xx/fd2_screen.c
>> +++ b/src/gallium/drivers/freedreno/a2xx/fd2_screen.c
>> @@ -61,7 +61,7 @@ fd2_screen_is_format_supported(struct pipe_screen *pscreen,
>>
>>       if ((usage & (PIPE_BIND_SAMPLER_VIEW |
>>                               PIPE_BIND_VERTEX_BUFFER)) &&
>> -                     (fd2_pipe2surface(format) != ~0u)) {
>> +                     (fd2_pipe2surface(format) != (enum a2xx_sq_surfaceformat)~0)) {
>
> You said the compiler warning goes away, but is the condition guaranteed
> to hit? I expect, with enums having varying size, that this cast will
> not always work. I agree with Rob Herring, adding the error value to the
> enum is better.

iirc, error value in enums caused some problems since it resulted in
some cases with enum values that are too many bits for the
corresponding bitfield in register and/or instructions.

BR,
-R

>>               retval |= usage & (PIPE_BIND_SAMPLER_VIEW |
>>                               PIPE_BIND_VERTEX_BUFFER);
>>       }
>> @@ -70,7 +70,7 @@ fd2_screen_is_format_supported(struct pipe_screen *pscreen,
>>                               PIPE_BIND_DISPLAY_TARGET |
>>                               PIPE_BIND_SCANOUT |
>>                               PIPE_BIND_SHARED)) &&
>> -                     (fd2_pipe2color(format) != ~0u)) {
>> +                     (fd2_pipe2color(format) != (enum a2xx_colorformatx)~0)) {
>>               retval |= usage & (PIPE_BIND_RENDER_TARGET |
>>                               PIPE_BIND_DISPLAY_TARGET |
>>                               PIPE_BIND_SCANOUT |
>> @@ -78,12 +78,12 @@ fd2_screen_is_format_supported(struct pipe_screen *pscreen,
>>       }
>>
>>       if ((usage & PIPE_BIND_DEPTH_STENCIL) &&
>> -                     (fd_pipe2depth(format) != ~0u)) {
>> +                     (fd_pipe2depth(format) != (enum adreno_rb_depth_format)~0)) {
>>               retval |= PIPE_BIND_DEPTH_STENCIL;
>>       }
>>
>>       if ((usage & PIPE_BIND_INDEX_BUFFER) &&
>> -                     (fd_pipe2index(format) != ~0u)) {
>> +                     (fd_pipe2index(format) != (enum pc_di_index_size)~0)) {
>>               retval |= PIPE_BIND_INDEX_BUFFER;
>>       }
>>
>> --
>> 1.7.9.5
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> 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