Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-pra...@amd.com>
On 07/08/2019 04:42, Ilia Mirkin wrote: > The shader has size1x32, but the images are 4-component. In such a case, > the results are undefined. Make it a single component. > > Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> > --- > .../image_functions.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/tests/spec/ext_shader_image_load_store/image_functions.c > b/tests/spec/ext_shader_image_load_store/image_functions.c > index 22a3dfc72..baa2c24f8 100644 > --- a/tests/spec/ext_shader_image_load_store/image_functions.c > +++ b/tests/spec/ext_shader_image_load_store/image_functions.c > @@ -64,7 +64,7 @@ static const char* vs = > static GLuint > create_texture() > { > - static int data[4 * TEX_WIDTH]; > + static int data[TEX_WIDTH]; > GLuint texture; > glGenTextures(1, &texture); > glBindTexture(GL_TEXTURE_1D, texture); > @@ -75,7 +75,7 @@ create_texture() > glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_T, GL_REPEAT); > > memset(data, 0, sizeof(data)); > - glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA32I, TEX_WIDTH, 0, > GL_RGBA_INTEGER, GL_INT, data); > + glTexImage1D(GL_TEXTURE_1D, 0, GL_R32I, TEX_WIDTH, 0, GL_RED_INTEGER, > GL_INT, data); > > return texture; > } > @@ -84,7 +84,7 @@ static void > read_texture(void* data, size_t s) > { > glGetTexImage(GL_TEXTURE_1D, 0, > - GL_RGBA_INTEGER, > + GL_RED_INTEGER, > GL_INT, > data); > } > @@ -92,7 +92,7 @@ read_texture(void* data, size_t s) > static GLuint > create_buffer_texture() > { > - static int data[4 * TEX_WIDTH]; > + static int data[TEX_WIDTH]; > GLuint texture, buffer; > glGenTextures(1, &texture); > glBindTexture(GL_TEXTURE_BUFFER, texture); > @@ -103,7 +103,7 @@ create_buffer_texture() > glBindBuffer(GL_ARRAY_BUFFER, buffer); > glBufferStorage(GL_ARRAY_BUFFER, sizeof(data), data, GL_MAP_READ_BIT); > > - glTexBuffer(GL_TEXTURE_BUFFER, GL_RGBA32I, buffer); > + glTexBuffer(GL_TEXTURE_BUFFER, GL_R32I, buffer); > > return texture; > } > @@ -139,9 +139,9 @@ run_test(void * _data) > GLint image_location = glGetUniformLocation(program, "image"); > GLint wrap_location = glGetUniformLocation(program, "wrap_value"); > GLuint texture = test->create_texture(); > - GLint read_back[4 * TEX_WIDTH]; > + GLint read_back[TEX_WIDTH]; > > - glBindImageTextureEXT(0, texture, 0, GL_FALSE, 0, GL_READ_WRITE, > GL_RGBA32I); > + glBindImageTextureEXT(0, texture, 0, GL_FALSE, 0, GL_READ_WRITE, > GL_R32I); > > glUseProgram(program); > glUniform1i(image_location, 0); > @@ -159,7 +159,7 @@ run_test(void * _data) > /* The first component of the first pixel has been written to by all > invocations */ > pass = pass && read_back[0] == test->expected_value; > /* All other pixels/components should be untouched */ > - for (int i = 1; i < 4 * TEX_WIDTH; i++) { > + for (int i = 1; i < TEX_WIDTH; i++) { > pass = pass && read_back[i] == 0; > } > > _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit