QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4938|回复: 6

xdevconf-2005-notes

[复制链接]
发表于 2005-2-16 22:26:07 | 显示全部楼层 |阅读模式
http://freedesktop.org/~ajax/xdevconf-2005-notes.txt


Saturday, February 12
Starting at 9:00
       
Welcome, logistics, agenda, schedule bashing

  Freedesktop Forum: What Problems Do We Need To Solve
  - Havoc Penningon, George Staikos, Jim Gettys

jg intro:
X needs to work in the context of a larger project
software will not restrict itself to unix
what's the larger context we need to work in, how do we get there

standards page is huge
no idea what's "official", many of these specs are just bad
some are actively deprecated
do we need to formalize the process? (maybe)
do we need to expand the scope? (probably)
do we need real doc writers, or at least professional editing (yes)
problem with some of these specs is a very small audience, so size of
community isn't necessarily an indicator of activity or relevance
need to triage these a bit
need to split the standards page up to be relevant per audience - this is
what toolkit authors need to know versus what app authors need to know
idea: bugzilla component for interop problems
very few toolkits we (anyone) cares about: qt, gtk, mozilla, ooo, motif
don't really want to block on motif in terms of forward progress, much higher
BC constraint requirement there.  keeping motif working is valuable.

adopted needs work: basedir, menu, mime, icon
xsettings isn't really adopted outside of gtk
XDS is rox-only
systray - adopted but sucks
icon theme - no standard for icon names, so not as useful as it could be
recent file - semi-adopted, clee says due for a rewrite
startup-notification well adopted, too bad gnome doesn't do it yet...
file uri spec - there is an RFC, but it's useless, needs a bit of work
clipboard specs are all kind of hazy

suggestion from jg: matrix for each toolkit showing support status
again mostly just needs manpower

suggestion from lars: need to switch input method and keyboard map as one
jg response: you want to switch keyboard maps and have it work?
owen mentions case of irc client wanting different methods per tab
so might need to expose that to the app somehow

comment from zack: we're trying to implement all of these external to
gtk/qt, this kinda sucks because it's hard to do and doesn't necessarily
integrate
owen response: yeah, but when we don't do them external to the toolkit
they don't get adopted

now on to projects
some of the software are just sample implementations without much adoption
- uim, startup-notification
many of these don't even have proper release schedules
big projects: fontconfig, gstreamer, dbus, hal, cairo
- cairo plans to hit 1.0 before the next gtk release (before august)
- small package set works as a base fdo platform release
keep it small

translation is an issue, hard to work on due to project setup

management
want east coast hosting / mirrors
clee is on the job
admin process is difficult
possibility raised of unified IT for multiple projects, maybe through pooled
funding from the various projects

DND Specification Issues
- Owen Taylor and George Staikos

george: dnd issues
DND Warts page
current spec prevents some use cases
also some systray spec issues
- breakout to gamera for discussion
resulting notes:
- http://freedesktop.org/wiki/Standards_2fSystrayAndAppletsMeeting
- http://freedesktop.org/wiki/Standards_2fXDNDRevision

xrestop, xephyr, and X on handhelds
- Mathew Allum

xrestop: top for X
pretty good for finding offenders
lies a little (but that's okay)

xephyr: like Xnest, only paints to an XImage
kdrive based, supports nice features like lower bit depths, randr, visual
paint debugging, damage/fixes/composite, even if the host server doesn't

x on handhelds:
arm or similar CPU at ~200MHz+
small flash (32M or more), similar amounts of RAM, small display
generally if you can get a framebuffer it'll work
tend to use kdrive Xfbdev
tslib for touchscreen input with some calibration support from the server
2-3M footprint when trimmed down
performance pretty much linear with fb speed
xlib can be built wihtout xlocal, xkb, xcms
cuts size in half, mostly works, could use some polish
will generally run any X app
some apps specifically for handhelds: matchbox, GPE, minimo

matchbox: tiny wm specifically designed for non-desktop platforms
not just for handhelds but kiosks and appliances too
minimal window management policy, compile-time flags for features eg Pango
desktop apps mostly work (dialogs etc. are tricky)
supports most of ewmh/xsettings/systray
demo at http://projects.o-hand.com/matchbox/demos.html

xoo: gtk wrapper around xnest/xephyr
allows buttons and such for input
http://projects.o-hand.com/xoo/

what's next?
- embedded GL would be cool
- general tools work for embedded

competition:
opie, qt/embedded on framebuffer
plusses and minuses to each, opie has better sync but x is more like x

Testing Strategies
- Stuart Anderson, Free Standards Group and X.org

X has a serious need for improved testing
VSW4 has been nice but we can always use more
Useful both for correctness and for identifying regressions
Rules for commit to test suites need to be more restrictive
- need to be sure whether the test or the implementation is at fault
Need for a working group on testing
http://xorg.freedesktop.org/wiki/TestGroup/CodeManagement for the proposal
Should integrate this with tinderbox the way mozilla does
tinderbox and automated testing (Xvfb eg) saves a lot of stress
makes it very easy to narrow search for commits that caused problems

Short Topics
- All

output only windows
- recent keithp commit in kdrive
- the input shape for the window is really cool, lets you pass clicks through
- useful for translucent windows

color management
- needed for mac-like usage of X (print media, etc)
- Xcms is fairly broken and largely unused
- might need to be more general than just X (scanners, printers)
- lots of patent noise
- we're bigger than the mac, but that won't get us in the door

non-suid server
- traditionally a problem on suck hardware (x86)
- drivers can tell the server if they need i/o ports (do by default)
- console init now works right without root
- privsep from openbsd might be relevant

xim cache
- xim startup takes forever, there's a better fix out there in suse
- question as to whether it's worth staying on XIM (probably not?)

commit process

dmx
- can use composite to automate calibrating and balancing these
- very configurable
killing xorg.conf

open nv driver
security

(missed the rest of these, if anyone else has notes let me know)

Sunday, February 13
Starting at 9:00

X Proxy and Multicast Demo
- David Flynn, Realm Systems
http://www.stampede.org/~daflynn/
proxy is basically a full server in C++
mirrors real server state, so can do predictive responses
looks like a single client to the real server
three new extensions: nest, share, view
not xlib based at all, good batching, very low overhead
basically makes X stateless, proxy can migrate across servers
passes more of vsw5 than Xvnc
nest extension works around app assumptions about visibility
share extension binds XIDs to a share object
view extension is used by viewing apps to look at shares

A Unified View of Improving X Desktop Rendering (Fedora Rendering Project)
- The Owen Taylor, Søren Sandmann, Kristian Høgsberg and Diana Fong sh

owen intro
goals: dynamic graphics, animations, general flash
old components: gtk, pango, gnome desktop
new components: Cairo, OpenGL
cairo: uniform rendering layer

kristian on printing
uniform API for all output backends, so identical output on all devices

cairo/gtk integration
pango as text api

compositing managers
usually same app as window manager
spiffifity - compmgr in metacity
luminocity - opengl based compmgr
with the compmgr, moving is fast, resizes... not so much, but could be
why GL?  good match for a compmgr: textures, filtering, scaling, shadows
industry standard, currently faster than Render
accelerated indirect GL
needed for remote luminocity, and good for local luminocity
direct rendering has more bandwidth, but needs more sync
need unclipped GL to the root window, redirection of GL and Xv, accelerated
indirect GL, some cairo and libpixman optimization, and server Render accel

Cairo Status
- Carl Worth, Red Hat
what we've done
- new backends, devs, apps, bindings, license (LGPL/MPL)
- performance improvements
- backends in 04-2004: glitz, render, core X, memory, postscript
- now also have pdf, quartz, win32
new devs:
- alexander larrson: xpdf in cairo, profiling, performance improvements
- krh: pdf backend, general backend interface work
- calum r: osx
new apps: dia, gtk/pango, scribus, swfdec, squeak, xpdf, etc.
goals: cairo 1.0 before gtk 2.6, hopefully may or june 2005
todo:
- api stabilization
- test suite: have infrastructure, need backends, need tests
- performance: profiling with real apps
API issues: rendering equation, clipping, mask support, destroy notifiers,
transparent datatypes, group rendering
questions:
- why no lock?  clients are responsible for telling cairo when the image is
  damaged by external draws.

X Input Redirection
- Deron Johnson, Keith Packard
if the compmgr moves the window, you need to translate pointer screen
position to window coordinates.
this works when the mouse is within the window
when it's not, you need to translate again
this solves problems for for multiple systems - PLG, luminocity, croquet
XME - X Modular Event system
runs either in the server or in an evmgr client
based on dix/{events,grabs}.c
modular, clear inputs and outputs, uses server for grabs and events
alternative approaches:
- scene graph in the server: multithreaded design, single-threaded server
- Z model: needs two picks, not fast
- share memory scene graph: timing problems, big code changes, blocks server
proof of concept runs moz and gnome, good start
todo: integrate into looking glass, xinput support, unified codebase
far future: input drivers and xkb into the evmgr
plg update:
open project, http://lg3d-core.dev.java.net/
release 0.61 shipped, most X apps work, livecd version in progress
next major release june 2005, focus on X performance and 3d apps

A New Input System
- Kristian Hogsberg, Jim Gettys
x currently assumes a limited set of input devices
no way to associate axes with events
no way to discover which driver corresponds to a device
no way to do hotplug
need a way to ask the driver for its button and axis names
xinput extension is mostly good
needs hotplug, device controls and valuators
static config sucks
implementation is mostly about ancient serial devices, which is not reality
evdev driver is a good start
dbus/hal can provide for plugging and configuration
X SI lacks callbacks for socket state change - applies to more than just input
interesting security problems
need user and session concepts, and expose the policy to apps somehow
wire protocol issues

Polling And Scheduling in the X Main Loop
- Kristian Høgsberg, Red Hat
Reworking the X server main loop, with proposed changes.
X server needs to learn how to be a client for hal/dbus
current main loop has no mechanism for callbacks when fds are readable

X and Media Support
- Leon Shiman
Media Application Server - www.mediaapplicationserver.net
developed under the auspices of the Open Group starting in about 1999
designed to be separable but tightly integrable, scalable
peer-to-peer design
works on everything - solaris, linux, aix, win32

3D Graphics Pipelines
- Nick Triantos, NVidia
overview of the pipeline, nvidia software overview, strengths and challenges
point, lines and triangles, vertices, texture mapping, gouraud shading
per fragment color, all of which gets alpha-blended to the framebuffer
the life of a triangle: vertex fetch, vertex processing, prim assembly,
rasterize and z cull, pixel shader pre-texture, texture, pixel shader
post-texture, framebuffer blend
vertex processing:
vertices go one at a time - color and interpolants in the vp
all inputs treated as float4 within the vp
instruction set: mul, add, mas, sin, cos, rsq, tex, etc.
512 instructions long, 64k instructions per vertex
output values interpolated by hw, fed to fragment processor
MIMD execution units
fragment processing:
programs go per-fragment, to 1-4 buffers.  float precision.
similar instruction set as vp.  up to 16 textures bound
anisotropic filtering, min/mag, rotation, etc.
up to 8192 instructions per fragprog.  simd execution across many units.
raster ops:
z buffer, stencil buffer, alpha blending, downsampling for antialiasing
engine optimized to distribute work across memory units
interesting note: 32GB/s on card, 2.4GBs to and from card
driver architecture:
kernel bits do chip init, interrupts, resource management
client driver optimizes state changes, compiles vp/fp, queue commands
command submission is generally "fire and forget"
GLX: interface with the window system, allocate surfaces, manage clipping
strengths of the 3d pipeline:
min/mag of textures (if you have mipmaps)
rotating textures at full speed
blending and compositing
can usually do YUV textures too
very flexible
weakness of the pipeline:
state changes can be very expensive
high quality font rasterization best done in software
3d programs can take arbitrary time
functional variance between vendors: interpolation, precision, sampling
loss of the video overlay
no 8bpp pseudocolor (oh darn)
driver model allows one app to be a pig
driver complexity grows
3d rasterisation doesn't match X rules
challenges: memory management
many threads can use GL at once
any one thread can allocate surfaces/textures/...
how do you ensure fairness among programs?
- pre-allocate for compositor?
- page out for fullscreen?
- other ideas?
how do you do video?  cards can convert or do it natively
but performance and quality can suffer
low latency is a pain, decode -> compositor -> scanout
overlay engine is finite-time, GL may not be
might need lots of memory, audio sync needs consideration
challenge: keep the desktop responsive
big triangles and lots of vp/fp ops can take huge amounts of time


Monday, February 14
Starting at 9:00
X on GL
- David Reveman, Novell
       
Mesa Solo
- Jon Smirl
       
Merging fbdev and DRM
- Jon Smirl
       
Open Source Legal Issues, Patents and Copyrights
- Scott Peterson and Greg Jones
       
X.org Update
- Audience
发表于 2005-2-17 10:09:47 | 显示全部楼层
谢谢搂主,希望这里能成为介绍 linux 世界最新技术的前沿。

看来有必要把 freedesktop.org 介绍给大家,现在添加上。

上边的内容太庞杂了,那些能用在 MagicLinux 里呢?
回复

使用道具 举报

 楼主| 发表于 2005-2-17 12:41:32 | 显示全部楼层
>>上边的内容太庞杂了,那些能用在 MagicLinux 里呢?
认真阅读一下,就不会有这个疑问了。

不管Redhat, Suse, gentoo, debian 还是其他发行版,如果单纯从发行版的角度来说,都只是“出口加工”的角色。当然像红帽,suse这样拥有(雇佣?)g/k 开发者的发行版(公司?)就不一样了,他们可以从桌面环境的角度考虑这个问题。

大多数的底层技术(桌面相关的)都要等到K/G(或者其他桌面环境)收养以后,发行版才谈得上使用。
回复

使用道具 举报

发表于 2005-2-17 13:46:12 | 显示全部楼层
谢谢提示,再仔细看几遍。现在还有很多方面不懂呢。
回复

使用道具 举报

发表于 2005-2-17 14:38:20 | 显示全部楼层
jcome 给的连接,应该对理解上述内容,很有帮助的。请大家分段阅读(这样不累)。 偶看了两个多小时。

http://ircconf.debian.org.tw/log/2004-10-21.html
回复

使用道具 举报

发表于 2005-2-17 17:44:40 | 显示全部楼层
在这里说明一下:
jcome 贴的是“X Developer's Meeting”(2005-02-12~2005-02-14)的前两天的会议记录。

讨论了很多前沿的技术问题,参与者很多都是 freedesktop.org 的重量级人物,比如:jg、Keith等人。
回复

使用道具 举报

 楼主| 发表于 2005-2-17 18:39:48 | 显示全部楼层
bamfox  辛苦了。

更多详细的幻灯片,演示 等东东在下面的连接有,

http://freedesktop.org/Software/XDevConf
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-27 06:02 , Processed in 0.181795 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表