PIPE_SWIZZLE_X is always 0 and desc->swizzle is an unsigned char meaning
that desc->swizzle can never be smaller then PIPE_SWIZZLE_X. Removing
these checks doesn't change the code path at all because they would
always give the same result. Issue discovered by Coverity.

CID: 1337954

Signed-off-by: Jakob Sinclair <[email protected]>
---

I don't have push access so anyone reviewing this could push it. Thanks!

 src/gallium/drivers/radeon/r600_texture.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index a1c314e..aa19fc0 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -1752,10 +1752,9 @@ static void vi_get_fast_clear_parameters(enum 
pipe_format surface_format,
                return;
 
        for (i = 0; i < 4; ++i) {
-               int index = desc->swizzle[i] - PIPE_SWIZZLE_X;
+               int index = desc->swizzle[i];
 
-               if (desc->swizzle[i] < PIPE_SWIZZLE_X ||
-                   desc->swizzle[i] > PIPE_SWIZZLE_W)
+               if (desc->swizzle[i] > PIPE_SWIZZLE_W)
                        continue;
 
                if (util_format_is_pure_sint(surface_format)) {
@@ -1781,7 +1780,6 @@ static void vi_get_fast_clear_parameters(enum pipe_format 
surface_format,
        for (int i = 0; i < 4; ++i)
                if (values[i] != main_value &&
                    desc->swizzle[i] - PIPE_SWIZZLE_X != extra_channel &&
-                   desc->swizzle[i] >= PIPE_SWIZZLE_X &&
                    desc->swizzle[i] <= PIPE_SWIZZLE_W)
                        return;
 
-- 
2.8.3

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to