diff --git a/cogl/cogl-context.c b/cogl/cogl-context.c index bdfd8a5dc..0d2a8f6de 100644 --- a/cogl/cogl-context.c +++ b/cogl/cogl-context.c @@ -244,8 +244,6 @@ cogl_context_new (CoglDisplay *display, return NULL; } - _cogl_gpu_info_init (context, &context->gpu); - context->attribute_name_states_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); context->attribute_name_index_map = NULL; diff --git a/cogl/driver/gl/cogl-gl.c b/cogl/driver/gl/cogl-gl.c index 1ff3f2cd0..1a020edfe 100644 --- a/cogl/driver/gl/cogl-gl.c +++ b/cogl/driver/gl/cogl-gl.c @@ -339,6 +339,8 @@ _cogl_driver_update_features (CoglContext *ctx, _cogl_get_gl_version (ctx, &gl_major, &gl_minor); + _cogl_gpu_info_init (ctx, &ctx->gpu); + flags = (COGL_FEATURE_TEXTURE_READ_PIXELS | COGL_FEATURE_UNSIGNED_INT_INDICES | COGL_FEATURE_DEPTH_RANGE); diff --git a/cogl/driver/gles/cogl-gles.c b/cogl/driver/gles/cogl-gles.c index 1e07f20a9..b570feab4 100644 --- a/cogl/driver/gles/cogl-gles.c +++ b/cogl/driver/gles/cogl-gles.c @@ -184,6 +184,8 @@ _cogl_driver_update_features (CoglContext *context, context->glGetString (GL_VERSION), context->glGetString (GL_EXTENSIONS)); + _cogl_gpu_info_init (context, &context->gpu); + gl_extensions = (const char*) context->glGetString (GL_EXTENSIONS); _cogl_feature_check_ext_functions (context, diff --git a/cogl/winsys/cogl-winsys-glx.c b/cogl/winsys/cogl-winsys-glx.c index 4e2249cd6..665010664 100644 --- a/cogl/winsys/cogl-winsys-glx.c +++ b/cogl/winsys/cogl-winsys-glx.c @@ -420,8 +420,30 @@ update_winsys_features (CoglContext *context, GError **error) TRUE); if (glx_renderer->pf_glXCopySubBuffer || context->glBlitFramebuffer) - COGL_FLAGS_SET (context->winsys_features, - COGL_WINSYS_FEATURE_SWAP_REGION, TRUE); + { + CoglGpuInfoArchitecture arch; + + /* XXX: ONGOING BUG: + * (Don't change the line above since we use this to grep for + * un-resolved bug workarounds as part of the release process.) + * + * "The "drisw" binding in Mesa for loading sofware renderers is + * broken, and neither glBlitFramebuffer nor glXCopySubBuffer + * work correctly." + * - ajax + * - https://bugzilla.gnome.org/show_bug.cgi?id=674208 + * + * This is broken in software Mesa at least as of 7.10 + */ + arch = context->gpu.architecture; + if (arch != COGL_GPU_INFO_ARCHITECTURE_LLVMPIPE && + arch != COGL_GPU_INFO_ARCHITECTURE_SOFTPIPE && + arch != COGL_GPU_INFO_ARCHITECTURE_SWRAST) + { + COGL_FLAGS_SET (context->winsys_features, + COGL_WINSYS_FEATURE_SWAP_REGION, TRUE); + } + } /* Note: glXCopySubBuffer and glBlitFramebuffer won't be throttled * by the SwapInterval so we have to throttle swap_region requests diff --git a/doc/RELEASING b/doc/RELEASING index 4fa0ebc49..4f23f1512 100644 --- a/doc/RELEASING +++ b/doc/RELEASING @@ -52,6 +52,9 @@ When making a new release; - Use git shortlog -n -s to get the list of authors - The following bash snippet may help with extracting the list of bugs closed: + - Grep the source code for "XXX: ONGOING BUG" and add a + section about workarounds for un-resolved upstream bugs. + URLS=$(git log $1|grep bugzilla|sort|uniq) for i in $URLS