X.Org & BSD - Upcoming Plans

Similar documents
The future of X.Org on non-gnu/linux systems

Input handling in wscons and X

The Linux graphics stack, Optimus and the Nouveau driver

README for X11R7.5. The X.Org Foundation 1. October 2009

Linux DRM Developer s Guide

Building X 2D rendering acceleration with OpenGL. Eric Anholt Intel Open Source Technology Center

Introduction to creating 3D UI with BeagleBoard. ESC-341 Presented by Diego Dompe

A brief overview of DRM/KMS and its status in NetBSD

The Nouveau community at FOSDEM History Architecture Conclusion Demos. Nouveau. Recap, on-going and future work

Linux DRM Developer s Guide

X only supports one mouse and one keyboard.

IOActive Security Advisory

Choosing free software graphical libraries for embedded devices

ECE 598 Advanced Operating Systems Lecture 18

Status Report 2015/09. Alexandre Courbot Martin Peres. Logo by Valeria Aguilera, CC BY-ND

TG-Gallium Driver Stack. Softpipe, Cell and Beyond. Keith Whitwell

X.org security. Recap, vulnerabilities, attacks and discussions on the graphic stack s security. Martin Peres & Timothée Ravier

Bringing X.org's GLX Support Into the Modern Age

State of the DragonFly graphics stack

UI, Graphics & EFL. Carsten Haitzler Principal Engineer Samsung Electronics Korea Founder/Leader Enlightenment / EFL

Information for SiS Users

Intel GFX CI and IGT. What services do we provide, our roadmaps, and lessons learnt! Martin Peres & Arek Hiler Feb 3 rd 2018

Roadmap to a GL-based composited desktop for Linux

Copyright Khronos Group Page 1. Vulkan Overview. June 2015

CIS c. University of Pennsylvania Zachary Goldberg. Notes

Early History of APIs. PHIGS and X. SGI and GL. Programming with OpenGL Part 1: Background. Objectives

The Wayland Display Server

Introduction to the Direct Rendering Infrastructure

Sync Points in the Intel Gfx Driver. Jesse Barnes Intel Open Source Technology Center

EE , GPU Programming

Embedded Linux UI Comparison. Tim Bird Senior Staff Software Engineer Sony Electronics

Programming with OpenGL Part 1: Background

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Graphics Hardware. Instructor Stephen J. Guy

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Moblin v2 SDK. Open Source Technology Center Presented by Bob Spencer

RESOURCE MANAGEMENT MICHAEL ROITZSCH

Graphics Stack Update

Expose NVIDIA s performance counters to the userspace for NV50/Tesla

Ati Radeon 7000 Not Supported On This Hardware

RESOURCE MANAGEMENT MICHAEL ROITZSCH

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

Native D3D9 on Mesa Gallium Nine : the status

Releasing and Testing Free Opensource Graphics Drivers: the case of Mesa3D

Windowing System on a 3D Pipeline. February 2005

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012

ECE 571 Advanced Microprocessor-Based Design Lecture 20

X and DPS. Juliusz Chroboczek. 27 February 2001, updated 30 October 2006

EzBench, a tool to help you benchmark and bisect the Graphics Stack s performance

Vulkan: Architecture positive How Vulkan maps to PowerVR GPUs Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics.

AMD gdebugger 6.2 for Linux

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Overview. Technology Details. D/AVE NX Preliminary Product Brief

Chapter 2: Operating-System Structures

RESOURCE MANAGEMENT MICHAEL ROITZSCH

CSE 4/521 Introduction to Operating Systems

Glitz: Hardware Accelerated Image Compositing using OpenGL

GUI Basics and Windowing Systems. Using X Windows as a case study

Enlightenment Foundation Libraries 2.0 Time to rethink and make things easier!

In the Driver s Seat

SPICE: An Open Remote Computing Solution

Mention driver developers in the room. Because of time this will be fairly high level, feel free to come talk to us afterwards

ArcGIS Engine Developer Kit System Requirements

Having Problems w/linux (freeware) Graphics?

Mobile HW and Bandwidth

Superbuffers Workgroup Update. Barthold Lichtenbelt

Basic Concepts & OS History

ECE 571 Advanced Microprocessor-Based Design Lecture 18

Graphics Processing Unit (GPU)

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Part 3: Chromium in Practice

VA Smalltalk Update. 24 th ESUG Conference Prague, Czech Republic August 23, John O Keefe Chief Technical Officer Instantiations, Inc.

Running Android on the Mainline Graphics Stack. Robert

Blink: 3D Display Multiplexing for Virtualized Applications

Bringing display and 3D to the C.H.I.P computer

API Background. Prof. George Wolberg Dept. of Computer Science City College of New York

L4/Darwin: Evolving UNIX. Charles Gray Research Engineer, National ICT Australia

Security Issues Related to Pentium System Management Mode

GUI Basics and Windowing Systems

Simplifying Applications Use of Wall-Sized Tiled Displays. Espen Skjelnes Johnsen, Otto J. Anshus, John Markus Bjørndalen, Tore Larsen

! Readings! ! Room-level, on-chip! vs.!

NVIDIA CUDA GETTING STARTED GUIDE FOR LINUX

ArcGIS Engine Runtime System Requirements

Instructions Board Game For Windows 7 32 Bit Laptop >>>CLICK HERE<<<

Bringing display and 3D to the C.H.I.P computer

CS427 Multicore Architecture and Parallel Computing

Doom 3 Dante. Performance on Mesa (i965) (Not a Demo!) Oliver McFadden 1

GUI Programming with GTK+

EFL at ELC 2016 A toolkit for developping efficient and attractive Uis on embedded devices

Inside Biosphere3D The free digital globe from a developer prospect. Steffen Ernst

Chapter 2. Operating-System Structures

Porting FreeBSD to AArch64

ArcReader System Requirements

LK-Tris: A embedded game on a phone. from Michael Zimmermann

A Practical Introduction to Version Control Systems

Virtualization and memory hierarchy

FreeRDS and its X friends. David Hardening FORT XDC 2014

EECS 482 Introduction to Operating Systems

CSC 2405: Computer Systems II

ATI FirePro /FireGL Unified Driver Version Release Note

Transcription:

X.Org & BSD - Upcoming Plans Matthieu Herrb OpenBSD/X.Org BSDCan, May 17 2008 http://www.laas.fr/~matthieu/talks/bsdcan2008.pdf

Agenda 1 Introduction 2 Some history... 3 The present 4 The future 5 Conclusion

Agenda 1 Introduction 2 Some history... 3 The present 4 The future 5 Conclusion

Introduction X is the underlying technology for all the Linux BSD on the desktop stuff. Often mis-understood by users (normal) and developers (less normal). Goals of this talk: provide some information to *BSD developers on directions of the X window system attract some developers to X

Agenda 1 Introduction 2 Some history... 3 The present 4 The future 5 Conclusion

late 80 s - X11R5 Mostly monochrome or 8 bit colour (indexed) frame-buffers Simple non-anti-aliased drawings Server side non-anti-aliased text rendering Athena widgets and Motif toolkits First steps at porting to the i386/pc architecture (X386, XFree86 2.1) But relatively small and efficient for the epoch

90 s - X11R6 Initial X11R6 release done by the X Consortium. No radical change in hw or core rendering model Lots of extensions and peripheral functionalities (Xprint, LBX, PEX, XIE, XKB, Xinput,.. XFree86 contributions : Modular X server architecture XAA: 2D hw acceleration DRI: 3D hw acceleration based on Mesa3D (OpenGL) During this period, lots of code growth (and bloat) but few benefits for the end-users (focus on new hardware support).

Early 2000 - Xrender Porter & Duff compositing inside a window fb + render code Font rendering in the client, with anti-aliasing KAA (EXA) new 2D hw acceleration framework Cairo new 2D drawing library

A political interlude Some developers unhappy with the XFree86 development model Put together the new X.Org foundation to resume X development XFree86 decides to change its license in a way that made it irrelevant in a couple of weeks... 1st visible change of the new X.Org foundation: change the build system to modular (autotools based). 2nd visible change : move repositories to git.

Mid 2000 s - Compositing desktop: Xgl & Compiz New desktop model: windows are rendered off-screen first and then ńcompositedż together on the desktop. Using 3D transforms between off-screen and the desktop, and hw-accelerated compositing based on OpenGL Clients display directly on the screen Evolutions : AIGLX, removing the need for Xgl, better Xvideo support,... XCB: new C bindings for the X11 protocol, based on an XML specification. Compositing manager Clients display off screen

Agenda 1 Introduction 2 Some history... 3 The present 4 The future 5 Conclusion

X architecture - direct rendering Toolkits & Applications libgl Mesa driver libx11 X server X driver drm console driver kernel graphics hardware

X architecture - indirect rendering Toolkits & Applications libgl libx11 X server Mesa driver X driver drm console driver kernel graphics hardware

Last year: X.Org 7.3 New features in X.Org 7.3 XRandr 1.2: dynamic management of screens new pixman library, to share many of the pixel-level compositing code between X server and other libs (Cairo) that need them. New intel driver 2.0, independent of the BIOS for mode-setting. Implements XRandr 1.2. Input hot-plug support and code clean-ups (breaks some existing drivers) Composite enabled by default XKB code cleanups Support for DTrace on Solaris Improvements in drivers and EXA code More auto-configuration capabilities

Coming soon: X.Org 7.4 New pciaccess library for PCI bus access XACE replaces X Security extension Generalisation of XRandr 1.2 in drivers Radeonhd driver (based on newly available docs from AMD/ATI)

OpenBSD Status OpenBSD 4.3 (released May 1) includes X.Org 7.3. Work has started on porting DRI, based on NetBSD s port. still beta, not enabled by default almost all drivers work libpciaccess has been ported, We should be able to include X.Org 7.4 in OpenBSD 4.4.

Other BSDs FreeBSD 7.0 includes Xorg 7.3 NetBSD 4.0 uses XFree86 4.6 pkgsrc has xserver 1.3 DragonFly 1.12 uses pkgsrc

Some news from X.Org foundation Current Board of Directors: Eric Anholt Egbert Eich Matthieu Herrb Adam Jackson Bart Massey Keith Packard Daniel Stone Carl Worth On going work: XDC - Google campus, Mountain View Ca, april 2008 XDS - Edinburgh Zoo, Scotland september 10-12, 2008 New foundation membership agreement - boost membership New PR committee - better communication

X.Org - Google Summer of Code Generic GPU-Accelerated Video Decoding Younes Manton Mentor: Stephane Marchesin Enhancing xcb-glx for wider usability Kristóf Ralovich Mentor: Bart Massey GUI Tool for assisted editing of the XKB configuration database Symeon Xenitellis Mentor: Sergey Udaltsov DRI/Mesa r300 Cleanups, Optimizations, and Features Erik Boettcher Mentor: Alexander Deucher Moving all the input code into a separate thread Tiago Vignatti Mentor: Daniel Stone

Agenda 1 Introduction 2 Some history... 3 The present 4 The future 5 Conclusion

Work in progress X server internal API cleanups XRandR 1.3: support for several separate cards TTM (or GEM?) - new memory management code in DRM, uses more Gart features, enables the kernel instead of the userland X server to manage video memory. DRI 2 + Gallium: new architecture for Mesa3D drivers. Closer to the hardware. MPX - multi-pointer X Input transforms for composite In-kernel mode-settings

X architecture - DRI2 Toolkits & Applications libgl Mesa driver libx11 X server X driver drm/ttm console driver kernel graphics hardware

Gallium App Mesa State tracker Gallium HW driver OS winsys drm Old Mesa driver Kernel make drm simpler / closer to modern 3D HW hw independent state trackers takes care of OpenGL

MPX Virtual pointers - cursors Multi Pointer X attached to zero or more physical devices provide the events to the applications Virtual keyboards - focus attached to zero or more physical devices provides the events to the applications To be merged in master next week.

Kernel-side mode-settings Mode-setting: programming the graphics card into a given graphical mode (1280x1024 at 72Hz with 32 bits per pixel for example). requires access to the hardware registers of the card currently done by the driver code in the X server itself: kernel doesn t know about the state of the video card, can t restore a text mode in case of a crash duplication of work/code with graphical text modes ( framebuffer mode) security issues: privilege escalation to kernel privilege goal is to : integrate mode settings in drm let XRandR control all configuration some code exists for the intel and radeon drivers. Dave Airlie has an accelerated X server running without any privilege

*BSD TODO Input hot-plug HAL/DBus? Porting more DRMs (nouveau,...) TTM/Gem Framework for in-kernel mode settings Promote the MIT/BSD license

NetBSD/OpenBSD Legacy architectures Problems: 8 bits or less displays slow CPUs and limited RAM gcc 2.95/a.out/no shared libs (OpenBSD) X.Org evolution is slowly but firmly stopping to support those arches. (Modern embedded systems have 16bit or better) Solutions: port kdrive to the BSD console drivers (partly done - to be debugged) but kdrive needs gcc3 or better a new simple X server with only semi-legacy technologies (no Composite, no OpenGL, no fancy Xinput)?

Agenda 1 Introduction 2 Some history... 3 The present 4 The future 5 Conclusion

Conclusion X development is going well Again exploring the leading edges of user interfaces Challenge for *BSD to participate and not only follow Some open issues: Colour management Hardware documentation for Open-Source drivers (nvidia,...)

Questions?