YaGL: Mark glGenTextures call as flushing 00/62000/1 accepted/tizen/common/20160315.221341 accepted/tizen/ivi/20160315.115920 accepted/tizen/mobile/20160315.115824 accepted/tizen/tv/20160315.115842 accepted/tizen/wearable/20160315.115902 submit/tizen/20160315.012116
authorVasiliy Ulyanov <v.ulyanov@samsung.com>
Sat, 12 Mar 2016 14:10:12 +0000 (17:10 +0300)
committerVasiliy Ulyanov <v.ulyanov@samsung.com>
Sat, 12 Mar 2016 14:10:12 +0000 (17:10 +0300)
This is a workaround for web-tct. There seems to be a race
condition with these tests (i.e. they are rendering from
several threads without ensuring GL synchronization). The
commit should be reverted as soon as a proper fix is applied.

Change-Id: I095e76f0d9c84e7623035ca24817cfc98e7a2ae5
Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
GLES_common/yagl_gles_calls.in
GLES_common/yagl_host_gles_calls.c

index e0cf14eadcae97d5ce90aaf3ef0497b8e7a14383..f3273289f24ff843b5a74dc8dae4719f799f882a 100644 (file)
@@ -37,7 +37,7 @@ void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLint offset,
 void glMapBuffer(GLuint buffer, const GLuint *ranges, GLvoid *data)
 void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizei size)
 # Textures
-void glGenTextures(const GLuint *textures)
+@void glGenTextures(const GLuint *textures)
 void glBindTexture(GLenum target, GLuint texture)
 void glActiveTexture(GLenum texture)
 void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
index a810c022ce6318dd2c50d8ae6af49536e0e00ccc..86c46116f69f030cd471aa3b67c352ac249035e8 100644 (file)
@@ -519,6 +519,7 @@ void yagl_host_glGenTextures(const GLuint *textures, int32_t textures_count)
     yagl_transport_begin(t, yagl_api_id_gles, 35, 2 * 8, 0 * 8 + yagl_transport_array_size(textures, textures_count, sizeof(GLuint)));
     yagl_transport_put_out_array(t, textures, textures_count, sizeof(GLuint));
     yagl_transport_end(t);
+    yagl_transport_flush(t, NULL);
 }
 
 /*