[Mesa-dev] [PATCH] gallium: add missing zero-init for resource templates
Roland Scheidegger
sroland at vmware.com
Wed Oct 12 03:30:39 UTC 2016
Am 07.10.2016 um 19:08 schrieb Rob Clark:
> so, btw, the question is whether to push this patch, or the one that
> initializes ->next to NULL in the drivers, or possibly both for good
> measure.
Yes, why not do both. It makes it explicit that this magic next pointer
isn't going to do anything with "normally created" resources. But I
don't really care much there...
Roland
> memset'ing the templ is probably a sane future-proofing thing to do regardless.
>
> BR,
> -R
>
> On Fri, Oct 7, 2016 at 12:02 PM, Rob Clark <robdclark at gmail.com> wrote:
>> Mostly test code, plus one spot I noticed in r600.
>>
>> Signed-off-by: Rob Clark <robdclark at gmail.com>
>> ---
>> src/gallium/drivers/radeon/r600_texture.c | 1 +
>> src/gallium/tests/graw/clear.c | 1 +
>> src/gallium/tests/graw/fs-test.c | 2 ++
>> src/gallium/tests/graw/graw_util.h | 2 ++
>> src/gallium/tests/graw/gs-test.c | 3 +++
>> src/gallium/tests/graw/quad-sample.c | 2 ++
>> src/gallium/tests/graw/shader-leak.c | 1 +
>> src/gallium/tests/graw/tri-gs.c | 1 +
>> src/gallium/tests/graw/tri-instanced.c | 1 +
>> src/gallium/tests/graw/vs-test.c | 3 +++
>> 10 files changed, 17 insertions(+)
>>
>> diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c
>> index 6ad5f85..57cdbcf 100644
>> --- a/src/gallium/drivers/radeon/r600_texture.c
>> +++ b/src/gallium/drivers/radeon/r600_texture.c
>> @@ -1361,6 +1361,7 @@ bool r600_init_flushed_depth_texture(struct pipe_context *ctx,
>> }
>> }
>>
>> + memset(&resource, 0, sizeof(resource));
>> resource.target = texture->target;
>> resource.format = pipe_format;
>> resource.width0 = texture->width0;
>> diff --git a/src/gallium/tests/graw/clear.c b/src/gallium/tests/graw/clear.c
>> index 533ce9f..45b0cc0 100644
>> --- a/src/gallium/tests/graw/clear.c
>> +++ b/src/gallium/tests/graw/clear.c
>> @@ -65,6 +65,7 @@ static void init( void )
>> if (ctx == NULL)
>> exit(3);
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = formats[i];
>> templat.width0 = WIDTH;
>> diff --git a/src/gallium/tests/graw/fs-test.c b/src/gallium/tests/graw/fs-test.c
>> index b237692..e2e7ac8 100644
>> --- a/src/gallium/tests/graw/fs-test.c
>> +++ b/src/gallium/tests/graw/fs-test.c
>> @@ -293,6 +293,7 @@ static void init_tex( void )
>> tex2d[1][1][3] = 255;
>> #endif
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = PIPE_FORMAT_B8G8R8A8_UNORM;
>> templat.width0 = SIZE;
>> @@ -402,6 +403,7 @@ static void init( void )
>> if (ctx == NULL)
>> exit(3);
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = formats[i];
>> templat.width0 = WIDTH;
>> diff --git a/src/gallium/tests/graw/graw_util.h b/src/gallium/tests/graw/graw_util.h
>> index f603385..36064e1 100644
>> --- a/src/gallium/tests/graw/graw_util.h
>> +++ b/src/gallium/tests/graw/graw_util.h
>> @@ -43,6 +43,7 @@ graw_util_create_window(struct graw_info *info,
>> int i;
>>
>> memset(info, 0, sizeof(*info));
>> + memset(&resource_temp, 0, sizeof(resource_temp));
>>
>> /* It's hard to say whether window or screen should be created
>> * first. Different environments would prefer one or the other.
>> @@ -224,6 +225,7 @@ graw_util_create_tex2d(const struct graw_info *info,
>> struct pipe_resource temp, *tex;
>> struct pipe_box box;
>>
>> + memset(&temp, 0, sizeof(temp));
>> temp.target = PIPE_TEXTURE_2D;
>> temp.format = format;
>> temp.width0 = width;
>> diff --git a/src/gallium/tests/graw/gs-test.c b/src/gallium/tests/graw/gs-test.c
>> index 00fb591..46042c6 100644
>> --- a/src/gallium/tests/graw/gs-test.c
>> +++ b/src/gallium/tests/graw/gs-test.c
>> @@ -150,6 +150,7 @@ static void init_fs_constbuf( void )
>> {
>> struct pipe_resource templat;
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_BUFFER;
>> templat.format = PIPE_FORMAT_R8_UNORM;
>> templat.width0 = sizeof(constants1);
>> @@ -383,6 +384,7 @@ static void init_tex( void )
>> tex2d[1][1][3] = 255;
>> #endif
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = PIPE_FORMAT_B8G8R8A8_UNORM;
>> templat.width0 = SIZE;
>> @@ -492,6 +494,7 @@ static void init( void )
>> if (ctx == NULL)
>> exit(3);
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = formats[i];
>> templat.width0 = WIDTH;
>> diff --git a/src/gallium/tests/graw/quad-sample.c b/src/gallium/tests/graw/quad-sample.c
>> index d1bee35..03f51fc 100644
>> --- a/src/gallium/tests/graw/quad-sample.c
>> +++ b/src/gallium/tests/graw/quad-sample.c
>> @@ -209,6 +209,7 @@ static void init_tex( void )
>> tex2d[1][1][3] = 255;
>> #endif
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = PIPE_FORMAT_B8G8R8A8_UNORM;
>> templat.width0 = SIZE;
>> @@ -317,6 +318,7 @@ static void init( void )
>> if (ctx == NULL)
>> exit(3);
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = formats[i];
>> templat.width0 = WIDTH;
>> diff --git a/src/gallium/tests/graw/shader-leak.c b/src/gallium/tests/graw/shader-leak.c
>> index a4502af..dddb69c 100644
>> --- a/src/gallium/tests/graw/shader-leak.c
>> +++ b/src/gallium/tests/graw/shader-leak.c
>> @@ -192,6 +192,7 @@ static void init( void )
>> if (ctx == NULL)
>> exit(3);
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = formats[i];
>> templat.width0 = WIDTH;
>> diff --git a/src/gallium/tests/graw/tri-gs.c b/src/gallium/tests/graw/tri-gs.c
>> index 6aad51c..6d9e41d 100644
>> --- a/src/gallium/tests/graw/tri-gs.c
>> +++ b/src/gallium/tests/graw/tri-gs.c
>> @@ -199,6 +199,7 @@ static void init( void )
>> if (ctx == NULL)
>> exit(3);
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = formats[i];
>> templat.width0 = WIDTH;
>> diff --git a/src/gallium/tests/graw/tri-instanced.c b/src/gallium/tests/graw/tri-instanced.c
>> index 2065c11..b1fa21d 100644
>> --- a/src/gallium/tests/graw/tri-instanced.c
>> +++ b/src/gallium/tests/graw/tri-instanced.c
>> @@ -250,6 +250,7 @@ static void init( void )
>> if (ctx == NULL)
>> exit(3);
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = formats[i];
>> templat.width0 = WIDTH;
>> diff --git a/src/gallium/tests/graw/vs-test.c b/src/gallium/tests/graw/vs-test.c
>> index 48f06f4..14e63cd 100644
>> --- a/src/gallium/tests/graw/vs-test.c
>> +++ b/src/gallium/tests/graw/vs-test.c
>> @@ -82,6 +82,7 @@ static void init_fs_constbuf( void )
>> struct pipe_resource templat;
>> struct pipe_box box;
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_BUFFER;
>> templat.format = PIPE_FORMAT_R8_UNORM;
>> templat.width0 = sizeof(constants);
>> @@ -281,6 +282,7 @@ static void init_tex( void )
>> tex2d[1][1][3] = 255;
>> #endif
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = PIPE_FORMAT_B8G8R8A8_UNORM;
>> templat.width0 = SIZE;
>> @@ -390,6 +392,7 @@ static void init( void )
>> if (ctx == NULL)
>> exit(3);
>>
>> + memset(&templat, 0, sizeof(templat));
>> templat.target = PIPE_TEXTURE_2D;
>> templat.format = formats[i];
>> templat.width0 = WIDTH;
>> --
>> 2.7.4
>>
More information about the mesa-dev
mailing list