[Piglit] [PATCH] pbo: delete unmapping the GL_PIXEL_UNPACK_BUFFER before using it and correct the data expected form glGetMapusv
Józef Kucia
joseph.kucia at gmail.com
Mon May 15 19:11:18 UTC 2017
On Fri, May 5, 2017 at 1:45 PM, Sandra Koroniewska
<sandra.koroniewska at gmail.com> wrote:
> This fixes tests/spec/gl-2.1/pbo on Windows Intel driver. According to OpenGL 2.1 spec, page 38 "Unmapping a mapped buffer
> object invalidates the pointers to its data store and sets the object’s
> BUFFER MAPPED state to FALSE and its BUFFER MAP POINTER state to NULL." and to page 251 about GetPixelMap "If a pixel pack buffer is bound (as indicated by a non-zero value of
> PIXEL PACK BUFFER BINDING), data is an offset into the pixel pack buffer; otherwise,
> data is a pointer to client memory".
> ---
> tests/spec/gl-2.1/pbo.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/tests/spec/gl-2.1/pbo.c b/tests/spec/gl-2.1/pbo.c
> index bb4c0352c..1b561f7cb 100644
> --- a/tests/spec/gl-2.1/pbo.c
> +++ b/tests/spec/gl-2.1/pbo.c
> @@ -305,7 +305,6 @@ test_pixel_map(void)
> pbo_mem[i] = max - i - 1;
>
> if (use_unpack) {
> - glUnmapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB);
This change is suspicious. The buffer was mapped to fill it with
values above, and it can be safely unmapped at this point. Why do you
need this change?
> glPixelMapusv(GL_PIXEL_MAP_R_TO_R, max, NULL);
> glPixelMapusv(GL_PIXEL_MAP_G_TO_G, max, NULL);
> glPixelMapusv(GL_PIXEL_MAP_B_TO_B, max, NULL);
> @@ -353,7 +352,7 @@ test_pixel_map(void)
> }
>
> for (i = 0; i < max; i++) {
> - if (pbo_mem[i] != (255 - i)) {
> + if (pbo_mem[i] != (max - i - 1)) {
Please use tabs instead of spaces. Otherwise, this seems to be a
correct fix. I guess that the previous version of the test passes with
some drivers probably because "max" is equal to 256.
More information about the Piglit
mailing list