Add notes on choosing GLXFBConfig's.
svn path=/branches/work/kwin_composite/; revision=601277
This commit is contained in:
parent
245df12129
commit
25f558ad9a
1 changed files with 25 additions and 11 deletions
|
@ -21,17 +21,6 @@ TODO
|
||||||
General 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
|
? alpha clear hack
|
||||||
+ - find out if it affects performance
|
+ - find out if it affects performance
|
||||||
+ - if yes, try to find a better way of solving the problem
|
+ - 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
|
of some #defines like GLX_TEXTURE_FORMAT_EXT
|
||||||
- Beryl has this code in beryl.h
|
- 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
|
+ sync to vblank
|
||||||
- currently the compositing code is run with 20ms timer, i.e. constant 50fps
|
- currently the compositing code is run with 20ms timer, i.e. constant 50fps
|
||||||
- the GLX_SGI_video_sync extension should be used
|
- 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
|
+ - perhaps syncing to vblank will be needed to avoid flicker
|
||||||
! - XCopyArea() should not update the whole screen but only the affected areas
|
! - 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
|
XRender TODO
|
||||||
==============================
|
==============================
|
||||||
|
|
Loading…
Reference in a new issue