YaGL/VIGS: Use GL_UNSIGNED_INT_8_8_8_8_REV instead of GL_UNSIGNED_BYTE 78/14878/1
authorStanislav Vorobiov <s.vorobiov@samsung.com>
Mon, 13 Jan 2014 09:37:10 +0000 (13:37 +0400)
committerStanislav Vorobiov <s.vorobiov@samsung.com>
Mon, 13 Jan 2014 09:37:10 +0000 (13:37 +0400)
On Mac OS X glReadPixels with GL_UNSIGNED_BYTE may introduce stalls
even when it's used with PBO, so use
GL_UNSIGNED_INT_8_8_8_8_REV - it's the same
thing and it doesn't stall glReadPixels

Change-Id: I40ae1981579b3596f42f9a22604fd3d7fad8e335

hw/vigs/vigs_gl_backend.c
hw/yagl/yagl_apis/gles/yagl_host_gles_calls.c
hw/yagl/yagl_backends/egl_offscreen/yagl_egl_offscreen_context.c

index 1b15747e7f26ac2dec4f83896815d62a08d2e815..7529b4b3fd23d2ee19c64a746f543e6db2fc0461 100644 (file)
@@ -774,7 +774,7 @@ static struct vigs_surface *vigs_gl_backend_create_surface(struct vigs_backend *
     case vigsp_surface_bgra8888:
         tex_internalformat = GL_RGBA8;
         tex_format = GL_BGRA;
-        tex_type = GL_UNSIGNED_BYTE;
+        tex_type = GL_UNSIGNED_INT_8_8_8_8_REV;
         break;
     default:
         assert(false);
index 1dfb18fe3fea163550bd75677cf7cfa513c2f44f..6fd3426ede043ef7f6552b303cda931fa50c5214 100644 (file)
@@ -2013,7 +2013,7 @@ void yagl_host_glUpdateOffscreenImageYAGL(GLuint texture,
                                     height,
                                     0,
                                     format,
-                                    GL_UNSIGNED_BYTE,
+                                    GL_UNSIGNED_INT_8_8_8_8_REV,
                                     pixels);
 
     gles_api_ts->driver->PixelStorei(GL_UNPACK_ALIGNMENT,
index 3b517a1acf84b0eacd1541d79e7b2da1959a615e..fbfaf47caa06f99aef639321653cbd35e6a68b0e 100644 (file)
@@ -192,7 +192,7 @@ bool yagl_egl_offscreen_context_read_pixels(struct yagl_egl_offscreen_context *c
     gles_driver->PixelStorei(GL_PACK_ALIGNMENT, 1);
 
     gles_driver->ReadPixels(0, 0,
-                            width, height, format, GL_UNSIGNED_BYTE,
+                            width, height, format, GL_UNSIGNED_INT_8_8_8_8_REV,
                             NULL);
 
     mapped_pixels = gles_driver->MapBuffer(GL_PIXEL_PACK_BUFFER_ARB,