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<deathsimple at 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<jglisse at 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.

Reply via email to