[Piglit] [PATCH 1/8] shader_runner: support integer textures

Nicolai Hähnle nhaehnle at gmail.com
Mon Apr 25 23:56:01 UTC 2016


On 25.04.2016 13:08, Matt Turner wrote:
> On Wed, Apr 6, 2016 at 6:10 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
>> From: Nicolai Hähnle <nicolai.haehnle at amd.com>
>>
>> ---
>>   tests/shaders/shader_runner.c | 17 +++++++++++++++++
>>   tests/util/piglit-util-gl.c   | 35 +++++++++++++++++++++++++++++++++++
>>   tests/util/piglit-util-gl.h   |  1 +
>>   3 files changed, 53 insertions(+)
>>
>> diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
>> index 8d2a9bd..206258c 100644
>> --- a/tests/shaders/shader_runner.c
>> +++ b/tests/shaders/shader_runner.c
>> @@ -3102,6 +3102,23 @@ piglit_display(void)
>>                                              GL_UNSIGNED_NORMALIZED);
>>                          if (!piglit_is_core_profile)
>>                                  glEnable(GL_TEXTURE_2D);
>> +               } else if (sscanf(line, "texture integer %d ( %d", &tex, &w) == 2) {
>> +                       GLenum int_fmt;
>> +                       int b, a;
>> +                       int num_scanned =
>> +                               sscanf(line,
>> +                                      "texture integer %d ( %d , %d ) ( %d, %d ) %31s",
>> +                                      &tex, &w, &h, &b, &a, s);
>> +                       if (num_scanned < 6) {
>> +                               fprintf(stderr,
>> +                                       "invalid texture integer command!\n");
>> +                               piglit_report_result(PIGLIT_FAIL);
>> +                       }
>> +
>> +                       int_fmt = piglit_get_gl_enum_from_name(s);
>> +
>> +                       glActiveTexture(GL_TEXTURE0 + tex);
>> +                       piglit_integer_texture(int_fmt, w, h, b, a);
>>                  } else if (sscanf(line, "texture miptree %d", &tex) == 1) {
>>                          glActiveTexture(GL_TEXTURE0 + tex);
>>                          piglit_miptree_texture();
>> diff --git a/tests/util/piglit-util-gl.c b/tests/util/piglit-util-gl.c
>> index dbdfb13..e8a47c5 100644
>> --- a/tests/util/piglit-util-gl.c
>> +++ b/tests/util/piglit-util-gl.c
>> @@ -2494,6 +2494,41 @@ piglit_rgbw_texture(GLenum internalFormat, int w, int h, GLboolean mip,
>>   }
>>
>>   /**
>> + * Generates a texture with the given integer internal format.
>> + * Pixel data will be filled as R = x, G = y, B = b, A = a.
>> + */
>> +GLuint piglit_integer_texture(GLenum internalFormat, int w, int h, int b, int a)
>
> Returns GLuint, but there's no return in the function, and the call
> site doesn't use the result. I think you meant to make this void.

Thanks for pointing this out. I actually meant to have it return the 
texture object, like the other piglit_*_texture functions do. I've just 
pushed a minor change for this.

Cheers,
Nicolai


More information about the Piglit mailing list