Compare commits
	
		
			1 Commits
		
	
	
		
			3.34.5
			...
			wip/carlos
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 162d6d45a0 | 
| @@ -147,3 +147,11 @@ COGL_WINSYS_FEATURE_BEGIN (surfaceless_context, | ||||
|                            "surfaceless_context\0", | ||||
|                            COGL_EGL_WINSYS_FEATURE_SURFACELESS_CONTEXT) | ||||
| COGL_WINSYS_FEATURE_END () | ||||
|  | ||||
| #ifdef EGL_IMG_context_priority | ||||
| COGL_WINSYS_FEATURE_BEGIN (context_priority, | ||||
|                            "IMG\0", | ||||
|                            "context_priority\0", | ||||
|                            COGL_EGL_WINSYS_FEATURE_CONTEXT_PRIORITY) | ||||
| COGL_WINSYS_FEATURE_END () | ||||
| #endif | ||||
|   | ||||
| @@ -105,7 +105,8 @@ typedef enum _CoglEGLWinsysFeature | ||||
|   COGL_EGL_WINSYS_FEATURE_CREATE_CONTEXT                =1L<<3, | ||||
|   COGL_EGL_WINSYS_FEATURE_BUFFER_AGE                    =1L<<4, | ||||
|   COGL_EGL_WINSYS_FEATURE_FENCE_SYNC                    =1L<<5, | ||||
|   COGL_EGL_WINSYS_FEATURE_SURFACELESS_CONTEXT           =1L<<6 | ||||
|   COGL_EGL_WINSYS_FEATURE_SURFACELESS_CONTEXT           =1L<<6, | ||||
|   COGL_EGL_WINSYS_FEATURE_CONTEXT_PRIORITY              =1L<<7, | ||||
| } CoglEGLWinsysFeature; | ||||
|  | ||||
| typedef struct _CoglRendererEGL | ||||
|   | ||||
| @@ -345,7 +345,7 @@ try_create_context (CoglDisplay *display, | ||||
|   CoglRendererEGL *egl_renderer = renderer->winsys; | ||||
|   EGLDisplay edpy; | ||||
|   EGLConfig config; | ||||
|   EGLint attribs[9]; | ||||
|   EGLint attribs[11]; | ||||
|   EGLint cfg_attribs[MAX_EGL_CONFIG_ATTRIBS]; | ||||
|   GError *config_error = NULL; | ||||
|   const char *error_message; | ||||
| @@ -394,7 +394,15 @@ try_create_context (CoglDisplay *display, | ||||
|       attribs[5] = EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR; | ||||
|       attribs[6] = EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR; | ||||
|       attribs[7] = EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR; | ||||
|       attribs[8] = EGL_NONE; | ||||
|  | ||||
|       if (egl_renderer->private_features & COGL_EGL_WINSYS_FEATURE_CONTEXT_PRIORITY) | ||||
|         { | ||||
|           attribs[8] = EGL_CONTEXT_PRIORITY_LEVEL_IMG; | ||||
|           attribs[9] = EGL_CONTEXT_PRIORITY_HIGH_IMG; | ||||
|           attribs[10] = EGL_NONE; | ||||
|         } | ||||
|       else | ||||
|         attribs[8] = EGL_NONE; | ||||
|     } | ||||
|   else if (display->renderer->driver == COGL_DRIVER_GLES2) | ||||
|     { | ||||
| @@ -416,6 +424,17 @@ try_create_context (CoglDisplay *display, | ||||
|       goto fail; | ||||
|     } | ||||
|  | ||||
|   if (egl_renderer->private_features & COGL_EGL_WINSYS_FEATURE_CONTEXT_PRIORITY) | ||||
|     { | ||||
|       EGLint value = EGL_CONTEXT_PRIORITY_MEDIUM_IMG; | ||||
|  | ||||
|       eglQueryContext(egl_renderer->edpy, egl_display->egl_context, | ||||
|                       EGL_CONTEXT_PRIORITY_LEVEL_IMG, &value); | ||||
|  | ||||
|       if (value != EGL_CONTEXT_PRIORITY_HIGH_IMG) | ||||
|         g_warning ("Failed to obtain high priority context"); | ||||
|     } | ||||
|  | ||||
|   if (egl_renderer->platform_vtable->context_created && | ||||
|       !egl_renderer->platform_vtable->context_created (display, error)) | ||||
|     return FALSE; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user