On 29.02.2012 00:23, Jerome Glisse wrote:
On Tue, 2012-02-28 at 23:19 +0100, Christian König wrote:
Without this fix the driver randomly treats
textures as arrays and I'm really wondering
why gcc isn't complaining about it.

Signed-off-by: Christian König<deathsim...@vodafone.de>
---
  drivers/gpu/drm/radeon/r600_cs.c |    1 +
  1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c
index 38ce5d0..387fcc9 100644
--- a/drivers/gpu/drm/radeon/r600_cs.c
+++ b/drivers/gpu/drm/radeon/r600_cs.c
@@ -1304,6 +1304,7 @@ static int r600_check_texture_resource(struct 
radeon_cs_parser *p,  u32 idx,
        h0 = G_038004_TEX_HEIGHT(word1) + 1;
        d0 = G_038004_TEX_DEPTH(word1);
        nfaces = 1;
+       array = 0;
        switch (G_038000_DIM(word0)) {
        case V_038000_SQ_TEX_DIM_1D:
        case V_038000_SQ_TEX_DIM_2D:
I think if array field are properly initialized this shouldn't be an
issue. But anyway this patch is needed.

Reviewed-by: Jerome Glisse<jgli...@redhat.com>
Yes indeed, and that is also how I stumbled over this bug. It might be problematic for cubemaps, since I don't know how base_array and last_array are initialized there.

Anyway, what concerns me more is why gcc isn't complaining about it? It's quite obvious that the "if" is depending on an uninitialized value here.

Aren't we compiling with "-Wuninitialized" or is it just not work correctly?

Christian.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to