From 25f558ad9aafb9e09481bf71be37fbcf0a636dfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= Date: Thu, 2 Nov 2006 18:21:27 +0000 Subject: [PATCH] Add notes on choosing GLXFBConfig's. svn path=/branches/work/kwin_composite/; revision=601277 --- COMPOSITE_TODO | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/COMPOSITE_TODO b/COMPOSITE_TODO index 391524b869..ac6138b83f 100644 --- a/COMPOSITE_TODO +++ b/COMPOSITE_TODO @@ -21,17 +21,6 @@ TODO General TODO ================================= -! XComposite overlay window - - X.Org 7.1 and newer have XComposite extension version 0.3, which allows - creating an overlay window to paint to instead of painting to the root window - - the code in glcompmgr for this is in HAVE_OVERLAYS, stealing primarily from - here should be better since it's simpler and the code so far has been - modelled more after glcompmgr - - the code in compiz for this is in USE_COW -! - use double-buffering with the overlay window - kwin already has code - for double-buffered destination drawable, but I haven't been able to test it - - should be only needed for OpenGL code, I think this doesn't matter for XRender - ? alpha clear hack + - find out if it affects performance + - if yes, try to find a better way of solving the problem @@ -95,6 +84,29 @@ OpenGL TODO of some #defines like GLX_TEXTURE_FORMAT_EXT - Beryl has this code in beryl.h +! XComposite overlay window + - X.Org 7.1 and newer have XComposite extension version 0.3, which allows + creating an overlay window to paint to instead of painting to the root window + - the code in glcompmgr for this is in HAVE_OVERLAYS, stealing primarily from + here should be better since it's simpler and the code so far has been + modelled more after glcompmgr + - the code in compiz for this is in USE_COW +! - use double-buffering with the overlay window - kwin already has code + for double-buffered destination drawable, but I haven't been able to test it + - should be only needed for OpenGL code, I think this doesn't matter for XRender + +! improved GLXFBConfig support + - it seems a different config for each depth would be needed + - from http://lists.freedesktop.org/archives/xorg/2006-July/016859.html and + http://lists.freedesktop.org/archives/xorg/2006-July/017005.html it seems + that some implementations have config support broken and glXChooseFBConfig() + doesn't work with them properly + - Compiz instead uses glXGetFBConfigs(), iterates over all configs and chooses + the best one for every depth (code is in screen.c, search for "getFBConfigs") +! - so most probably KWin should do similarly - get all configs, find the best + one for the root window (or for the window used in the XComposite overlay) + and the best one for every depth of drawables + + sync to vblank - currently the compositing code is run with 20ms timer, i.e. constant 50fps - the GLX_SGI_video_sync extension should be used @@ -117,6 +129,8 @@ OpenGL TODO + - perhaps syncing to vblank will be needed to avoid flicker ! - XCopyArea() should not update the whole screen but only the affected areas +? compiz checks that "GLX_SGIX_fbconfig" extension is present and requires it + XRender TODO ==============================