diff options
Diffstat (limited to 'Events/XDC2009/Notes.mdwn')
-rw-r--r-- | Events/XDC2009/Notes.mdwn | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/Events/XDC2009/Notes.mdwn b/Events/XDC2009/Notes.mdwn new file mode 100644 index 00000000..4d917916 --- /dev/null +++ b/Events/XDC2009/Notes.mdwn @@ -0,0 +1,255 @@ + + +# XDC2009 Notes + +Live from sunny Portland, it's the X Developer's Conference 2009! + +[[!toc ]] + + +## Monday, September 28 + +Bart Massey: Welcome, Introductions + + +### SoC review + +* Been doing this for about three years +* Bart looking to get out of the organizer role next year; volunteers? +* Hard to find good mentors; volunteers? +* Corbin (only SoC student in attendance) on his project: shatter + * don't take summer classes if you're doing a project! + * also, be fearless about applying if you're a student, you'll do better than you think +* ajax on mentoring: good, rewarding, helps if you have a routine and regular updates +* Have we asked the students what the pain points were? Uh, no. Hmm, should do that. + +### Board talk + +* new hardware this year? yeah, probably. +* Still finalizing 501(c)3 reorg. Paperwork! So much paperwork. +* Elections coming up again, nominate yourself or your friends/enemies + +### krh: rootless X with Composite + +* Expose [[CompositeRedirectSubWindows|CompositeRedirectSubWindows]], hook [[CreateWindow|CreateWindow]], redirect root window in CW hook +* Hook [[RealizeWindow|RealizeWindow]] and make GEM handles for the window pixmap, tear it down in [[UnrealizeWindow|UnrealizeWindow]] +* Update it in [[SetWindowPixmap|SetWindowPixmap]] (resize, reparent, etc) +* Hook [[MoveWindow|MoveWindow]] to reflect X position as Wayland moves + +### gregkh: Death of HAL + +* HAL is dead upstream! +* Linux will probably port to libudev +* Others will need to port to... other. + +### bernie: multiseat with USB video demo + + +### jakob: Debugging gallium drivers + +* trace module for API calls +* rbug: remote debugging, object inspection, rendering single-stepping, etc. +* [[http://git.freedesktop.org/mesa/rbug-gui.git|http://git.freedesktop.org/mesa/rbug-gui.git]] + +### daniels: Release stuff + +* 1.7 mostly done +* 7.5 basically just needs badging and releasing. Huzzah! +* Development proposal: [[http://lists.x.org/archives/xorg-devel/2009-September/002231.html|http://lists.x.org/archives/xorg-devel/2009-September/002231.html]] +* Do we merge the drivers back in? Hm. +* The protocol header re-org made bisecting irritating. Are we done? +* "Our release process is, we name a month, and then two months after that..." +* General consensus on having someone to own master and manage merges +* Given regular server releases, driver merge is generally acceptable +* 1.8 targets: XKB2, XI2.1 grab fixes, some DRI2 proto enhancements, RANDR proto enhancements, GLX 1.4, VDPAU token in DRI2 +* Corbin: "shatter by 1.10" +* Testing. We should really do some of that. +* Testing: should get hardware for it (scan grabber, etc) + +### mjg59: Power management + +* What draws power? GPU, VRAM, outputs, and displays +* GPU: clock gating, reclocking +* VRAM: framebuffer compression, reclocking +* Outputs: Load detection, PLLs +* Displays: LVDS reclocking, DPMS +* Until recently, all we had support for was DPMS, enabling clock gating, static power policy +* Moving to more on-demand response +* Savings: LVDS reclock ~0.5W, gpu/memory reclock 10-15W +* Could reclock the HT link on AMD IGP +* Could use sideport RAM on IGP too +* Could change PCIE lane count, but that requires ~3 frames to do... probably machine-dependent +* Should do adaptive screensaver timeouts +* Could D3 the entire card? Really touchy. +* How far can we go with input policy? Screensaver for example, you could suspend the keyboard. + * daniels: when we update grabs, we'll add flags + +## Tuesday, September 29 + + +### idr: OpenGL 3 and Mesa + +* Several patented technologies in OpenGL that we want in Mesa + * Floating point textures and render targets (in core GL3), certain compressed texture formats +* external libraries solve some of it (for S3TC), could kinda do that with fp textures... but not targets +* could act like freetype (configure switch for patented technologies) +* could try to get OIN to help on the patent license front +* plan: yes, do both of those + +### krh: Stitching together FBOs + KMS + EGL + +* Goal is to be able to do EGL straight on top of KMS +* KMS: drmAddModeFB, drmModeSetCrtc, drmModePageFlip +* EGL: eglCreateWindowSurface, eglCreatePixmapSurface, eglSwapBuffers +* FBO: glGenRenderbuffers, glRenderbufferStorage +* Possibility: use EGL images to do glue together KMS objects to GL + +### idr: GL shaders for shader model 3/4 + +* Advanced assembly shader extensions for Mesa +* middleware wants to generate assembly shaders: wine/cedega, Cg +* ARB_vertex_program is really basic, no branches/predication/texture fetching + * Enough for most GLSL shaders; supported in hw on 965/r200/nv20 +* NV_vertex_program2 adds predication, branches, procedure calls + * supported in hw on nv30 and (kinda) 965 +* NV_vertex_program3 adds texture lookups, address push/pop, relative indexing into attr/result arrays, second condition code register; basically shader model 3 + * supported in hw on nv40 and ~965 +* NV_vertext_program4 adds integer insns, structured branching, unified insn set with fragment processor; shader model 4 + * G80, ~965 +* ARB_fragment_program: base support, no branches, no predication + * r300, i915, nv30, r500 +* NV_fragment_program: predication, partial derivatives, packing/unpacking insns + * nv30, ~965, r500 +* NV_fragment_program2: structured branching (no unstructured), fragment facing attribute, misc insns + * nv40, ~965, r500 +* NV_fragment_program4: integer insns, unified instruction set with vertex processor + * G80, ~965, r600 +* lots of nvidia extensions that match their hardware but not really anybody else's + * instructions only on nv hardware, no structured branched on vertex model, different predication model... +* what we want is supportable across a range of hardware: 965, R500; 915 and R300 stuck at existing ARB level +* want structured branching, predication, vertex textures, partial derivatives +* Is this worth doing? Less work than making GLSL rock, but we kinda need to do that anyway +* Nice for middleware, but does it help app developers? +* Modest support; we'll bang something out in the working session later. + +### aaronp: Synchronisation and presentation + +* No defined ordering between X and direct rendering + +* GLX APIs are only good for your own X and GL stream, not useful between apps +* X sync objects, like GL sync objects. Contains nothing but binary state: triggered or not. +* Rendering streams could be stalled until sync object reaches triggered. +* Export these to other APIs so you can sync between them +* Also need control over where and when presentation happens, and feedback on when buffers are in use by presentation +* Explicit multibuffering: allocate multiple backing pixmaps, explicitly set backs to be the new front; kind of like existing multibuffer extension? +* Sync counters not _that_ close of a match, since hardware really only has boolean triggers +* Presentation requests forwarded to the current CM, or else automatically composited + +### bernie: multiseat technical stuff + +* udev script runs on plug and fires up a seat by launching gdm on the device +* Walkthrough of scripts at [[http://libdlo.freedesktop.org/wiki/MultiSeatTerminal|http://libdlo.freedesktop.org/wiki/MultiSeatTerminal]] + +### jbarnes: intel driver update + +* DDX + * EDID fixes, hang fixes, XvMC for new chipsets, KMS output transforms, KMS-only build available, cursor flicker fix, regen fixes + * Future: Removal of UMS, glamour, maybe cairo-drm? +* 3D: Big pile of GL features, texture tiling, hang fixes + * Future: various GLX and DRI2 sync extensions, GL3 features; XXX [[MissingFunctionality|MissingFunctionality]] on DRI wiki +* Kernel 2.6.31: dynamic clock control, self-refresh support, error detection, FIFO watermark support, misc output fixes, vbios parsing fixes, [[DisplayPort|DisplayPort]] support, MCHBAR allocation, new chipsets +* Kernel 2.6.32: GPU hang recovery, FBC support, tracepoints, hang fixes, misc output improvements, madvise support, memory shrinker, display cleanups +* Kernel future: per-process GTT, context support, page flipping, DRM events, GPU scheduling, zone rendering + +### agd5f: AMD driver update + +* 3D driver for R600 and R700! Pretty much works, which is awesome. +* Working on IRQ support for R600 and R700 +* More power management work in KMS +* R800 support coming up +* HDMI audio +* XvMC in gallium for R300-R500 now, 600 and 700 soon +* Lot of suspend and resume fixes +* sideport scanout support +* debugfs support in 2.6.31 +* usual future stuff like pageflipping + +### krh: wayland + +* New, minimal, composited display server +* Server and compositor is one process +* Not a remote display protocol +* All clients are direct rendering; efficient buffer sharing is assumed (GEM, TTM, etc) +* Either allocate a buffer, render, and pass to wayland; or incrementally update an existing buffer +* Needs input, which is basically copied MPX and XI2 +* Multipointer, all events have a device ID; hotplug, axis and button labels +* Passes on evdev codes +* XKB as a client side library +* Transforms screen input coordinates to surface coordinates +* Not like earlier attempts - Fresco, Y, SDL - by reusing X components +* X runs on wayland, either rooted or rootless, so your apps still work. + +## Wednesday, September 30 + + +### tiago: PCI and VGA arbitration updates + +* X used to do all PCI management and direct hardware access +* RAC was built to handle multiple PCI devices +* libpciaccess pulled most of this out from the server, but broke multiple device support +* RAC recently removed, needed to be in kernel for multiple X server support anyway +* VGA arbiter landed in linux kernel, allows multiple X servers to work again +* Most recent hardware actually doesn't need the arbiter, but needs driver support +* X is very cautious about wrapping everything for arbitration, could probably be optimized +* int10 outside X, something like udev to trigger it for non-KMS devices +* Todo: remove old probe scheme, last bits of RAC +* Future: hotplug graphics, hybrid graphics + +### eamon: XACE updates + +* compiz plugin with security context in menu, permanent overlay for context display +* firefox running in a different security context; different frame colors for different contexts +* Defeats xspy! Defeats [[GetImage|GetImage]]! It's like the future. +* Has MPX support, so you can give different contexts to different devices, bind keyboards to password dialogs, etc. +* DRI2 needs better lockdown so you can't just attach to arbitrary buffers + +### corbin: Why Xorg Sucks + +* Classes of users: Naïve, Informed, Experienced +* Naïve complaints: old, bloated, my youtube doesn't work, flash, java, fglrx/nvidia +* Rebuttal: Mature, full features, backward-compatible, out-of-tree is not our problem +* Informed complaints: m12n was a bad idea, X protocol is old, 3D doesn't work, HD video doesn't work, hotplug displays don't... +* Mostly just a matter of wanting the moon on a stick +* Linux haters: no FBOs or pbuffers, no GLSL, no DRI2, no GL2 or GL3, no GLX 1.4 +* Actual state of 3D: decent, getting better +* Not that far from actually satisfying the complaints! + +### tiago and oliver: Embedded Xorg + +* Mostly moved from kdrive to Xorg +* Supports newer extensions, and is actively developed, but has much larger RSS +* Xorg is already shrinking, which is good +* Basic configuration will disable dga, dri, glx, ipv6, xinerama, xaa... +* Could add more configuration options to disable more things; worth the complexity? Probably. +* x86emu, vgahw, ddc, etc... could reasonably be optional +* lots of the core is still kind of large, but is mostly .text, so meh +* RANDR happens a lot, should be fast; external screensaver control would be nice + +### ajax: Future of the DDX + +* Is our goal X, or the stuff to enable things like X; Arguably should be the latter +* Moving enablers out of X (already: kms, pixman; future targets: xkb, x86emu/libx86) +* What about X config? +* Move EDID and DisplayID parsers to a lib; Make drivers/apps use it. +* Move i2c into a separate lib +* fbdevhw could be removed +* Remove non-randr 1.2 stuff? +* randr extension for full display state setup (full set of outputs and crtcs in one shot) +* DPMS and screensaver extensions; should be only one +* Remove DPMS, add new functionality to randr, tell internal screensaver something else is managing the screensaver +* Extra cruft: old ramdacs, gatos tuners/decoders, bank switching, PC98, [[ScrnInfoRec|ScrnInfoRec]] +* MAXSCREENS/MAXFORMATS/MAXDEVICES +* One DDX with loadable backends +* Xinerama - unify proto with randr; Make most of the screen stuff global; need shatter +* Adding YUV/JPEG/opaque data source pictures to render +* Moving Xv to render so we can do Xv in the DIX?
\ No newline at end of file |