Using The Existing Driver Framework To Achieve a Composited X Desktop XDevConf, February 8, 2006 Andy Ritger, NVIDIA Corporation.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
TAC Vista Security. Target  TAC Vista & Security Integration  Key customer groups –Existing TAC Vista users Provide features and hardware for security.
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
© Copyright Lumension Security Lumension Security PatchLink Enterprise Reporting™ 6.4 Overview and What’s New.
Chapter 13 Embedded Systems
Chapter 11 Operating Systems
Notion of a Project Notes from OOSE Slides - modified.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 8: Implementing and Managing Printers.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 8 Introduction to Printers in a Windows Server 2008 Network.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 Operating System Organization.
ADVANCED LINUX SECURITY. Abstract : Using mandatory access control greatly increases the security of an operating system. SELinux, which is an implementation.
Release & Deployment ITIL Version 3
DXVA 2.0 A new Hardware Video Acceleration Pipeline for Windows Vista
May 30 th – 31 st, 2006 Sheraton Ottawa. Microsoft Certificate Lifecycle Manager Saleem Kanji Technology Solutions Professional - Windows Server Microsoft.
 Road Safety the European Union Policy Carla Hess European Commission, Directorate General for Mobility & Transport Road.
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
Background History Note 1 Refer to Soltis: Appendix.
IT Essentials: PC Hardware and Software 1 Chapter 7 Windows NT/2000/XP Operating Systems.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
Quick Guide to help your transition
Introduction to ISO 9001:2000.
Use of the Concept of Transparency in the Design of Hierarchically Structured Systems Paper by: D.L. Parnas and D.P. Siewiorek Presentation by: Josh Wetzel.
An Overview of the NVIDIA UNIX Graphics Driver XDevConf, February 8, 2006 Andy Ritger, NVIDIA Corporation.
SCSC 311 Information Systems: hardware and software.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
CSI - Introduction General Understanding. What is ITSM and what is its Value? ITSM is a set of specialized organizational capabilities for providing value.
Service Transition & Planning Service Validation & Testing
Y. Kotani · F. Ino · K. Hagihara Springer Science + Business Media B.V Reporter: 李長霖.
111 Notion of a Project Notes from OOSE Slides – a different textbook used in the past Read/review carefully and understand.
Event Management & ITIL V3
FLOOR CANDY.
TeamCluster Project Real time project management solutions Harry Hvostov April 27, 2002.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
XGL: X11 replacement ? O.Couet, ROOT meeting 11/07/2006.
Software Acquisition and Project Management Lesson I: Introduction.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due today, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Today: –Continue.
Foundations of Information Systems in Business. System ® System  A system is an interrelated set of business procedures used within one business unit.
Kathy Corbiere Service Delivery and Performance Commission
© Copyright Khronos Group, Page 1 Khronos and OpenGL ES Status Neil Trevett Vice President Embedded Content, NVIDIA President, Khronos.
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
© 2012 IBM Corporation IBM Security Systems 1 © 2012 IBM Corporation Cloud Security: Who do you trust? Martin Borrett Director of the IBM Institute for.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
DEVICE DRIVERS Presented by: Group 7. What are Device Drivers? Device driver or hardware driver is a program that manages the system’s interaction with.
Managing Servers Lesson 10. Skills Matrix Technology SkillObjective DomainObjective # Using Remote DesktopPlan server management strategies 2.1 Delegating.
Chapter 16 Client/Server Computing Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Computer System Structures
Software Risk Management
Data Center Infrastructure
Data and database administration
VirtualGL.
IBM Start Now Host Integration Solutions
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Chapter 2: The Linux System Part 1
Multithreaded Programming
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Chapter 2: Operating-System Structures
Delivering great hardware solutions for Windows
Chapter 2: Operating-System Structures
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Server Management and Automation Windows Server 2012 R2
Windows Operating System
Designing Scalable Architectures
Presentation transcript:

Using The Existing Driver Framework To Achieve a Composited X Desktop XDevConf, February 8, 2006 Andy Ritger, NVIDIA Corporation

Copyright © NVIDIA Corporation 2004 Introduction Make the case for using the existing XFree86/X.Org DDX loadable driver framework to achieve a production-quality composited X desktop To frame discussion, present goals for the X Windows System Compare and contrast the X-on-OpenGL driver model with the existing loadable driver model Address arguments and misconceptions surrounding X-on-OpenGL Present a roadmap for how to get from today to a production-quality composited X desktop

Copyright © NVIDIA Corporation 2004 The Existing Loadable Driver Framework High level, flexible interface between DDX and loadable hardware-specific drivers Imposes minimal restrictions on how a driver performs its rendering and modesetting With this flexible infrastructure, vendors have provided many features, including: Direct-rendering hardware-accelerated OpenGL TwinView/MergedFB Quad-Buffered Stereo Workstation Overlays SLI

Copyright © NVIDIA Corporation 2004 The X-on-OpenGL Model Motivated partly by lack of hardware-acceleration of the Render extension A successful implementation of X-on-OpenGL, Xgl, is in progress Replace XFree86/X.Org DDX with DDX that renders using OpenGL No hardware-specific X driver Instead use hardware-specific OpenGL driver Traditional X driver tasks (rendering, modesetting) handled by X-on-OpenGL DDX X-on-OpenGL DDX calls stand-alone OpenGL driver to perform low-level rendering and modesetting

Copyright © NVIDIA Corporation 2004 Goals for X Windows For purposes of discussion, we identify several goals for the X window system The nine goals in the following slides are based upon: Keith Packard's paper, "Getting X Off The Hardware", OLS 2004 The interests of IHVs such as NVIDIA General trends in the X windows community

Copyright © NVIDIA Corporation 2004 Goals for X Windows (cont.) 1) Bring a compelling composited X window system to the UNIX desktop 2) Give window manager and composite manager authors the power and flexibility to explore new realms of user interfaces 3) Maintain application backward compatibility 4) Improve interaction between X and UNIX kernels, particularly in the area of PCI device management

Copyright © NVIDIA Corporation 2004 Goals for X Windows (cont.) 5) Make relevant X rendering perform optimally and make best possible use of the available graphics hardware 6) Continue to support existing advanced functionality, such as hardware-accelerated direct-rendering OpenGL 7) Grant vendors the flexibility to expose vendor-specific features such as TwinView/MergedFB, Quad-Buffered Stereo, SLI, and FrameLock

Copyright © NVIDIA Corporation 2004 Goals for X Windows (cont.) 8) Give users the flexibility to chose for themselves when they want a composited desktop and when they want full performance OpenGL or features like Workstation Overlays that may not be compatible with Composite 9) Bring the functionality of Damage and Composite to production quality in the near future, so that it can be shipped and enabled by default by operating system vendors

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Goals 1, 2, and 3 Goals 1, 2, and 3 are implicitly accomplished with either driver model, due to the design of the Damage and Composite extensions: We have the tools to create a composited X desktop (Goal 1) Composite managers have control over compositing policy (Goal 2) Damage/Composite are transparent to current X applications, achieving backwards compatibility (Goal 3) Both driver models equally satisfy these three goals

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Goal 4 Goal 4: Improve PCI configuration interaction between between the X server and the UNIX kernels Independent of either driver model Work is already in progress in this area This work will support Goal 4 equally for both driver models

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Goal 5 Goal 5: optimal performance, and best possible use of available GPU power Both X driver and OpenGL have access to the same hardware capabilities Additionally, X driver has more context, and should be able to make better tradeoffs

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Goal 5 (cont.) Current mediocre Render performance: Caused by lack of attention Caused by out-dated XAA Not caused by driver framework Render performance improving with loadable driver framework: EXA Render getting more attention from NVIDIA: Many improvements and stability fixes made “RenderAccel” enabled by default in nvr85 release Much more tuning possible and will be phased in Current driver model atleast as capable as X-on- OpenGL to make optimal use of GPU

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Goals 6 and 7 Goals 6 and 7 considered together; both focus on giving vendors the flexibility to support features like direct- rendered OpenGL, TwinView, Stereo, Overlays, and SLI Existing driver model allows these features X-on-OpenGL model poses problems for supporting these advanced features

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Goals 6 and 7 (cont.) Direct-rendering OpenGL needs a server-side component to: Propogate drawable data from X server to client Manage Synchronization between client and server such that client's rendering arrives in the right place at the right time In X-on-OpenGL model, there is no vendor-provided server component Who handles direct-rendering data propogation and synchronization in X-on-OpenGL?

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Goals 6 and 7 (cont.) Using same OpenGL library for X-on-OpenGL X server and direct-rendering client would require special communication between X server and OpenGL: OpenGL library needs to know if it is in client or server OpenGL library in server must manage data propogation and synchronization Xgl supports indirect rendering only

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Goals 6 and 7 (cont.) Features such as: FrameLock Quad-Buffered Stereo Workstation Overlays SLI depend on coordination between vendor's X driver and OpenGL client library Implementing these in the X-on-OpenGL model would require complex back doors The X-on-OpenGL model does not give vendors the flexibility to adequately support these features

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Goal 8 Goal 8: give users flexibility to choose when they want a composited desktop and when they want features that may not be compatible with a composited desktop Contingent on the ability to have those features at all X-on-OpenGL not conducive to vendor-provided advanced features This goal not achievable with X-on-OpenGL With current driver framework, users can disable Composite and have full performance and functionality

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Goal 9 Goal 9: bring composited X desktop technology to market soon To achieve feature parity with the current available drivers (or as close as possible), the X-on-OpenGL model would require a huge investment of time and engineering resources The existing loadable driver framework requires only minor incremental work to achieve our goals Roadmap will be presented in a few slides

Copyright © NVIDIA Corporation 2004 Comparison of Driver Models: Summary Existing driver framework can do everything that X- on-OpenGL can do Existing driver framework requires only incremental enhancements to achieve our goals Existing driver framework is flexible enough to support advanced features important to many UNIX users

Copyright © NVIDIA Corporation 2004 Arguments & Rebuttals In the following section, we review a collection of arguments and misconceptions surrounding X-on- OpenGL; each is followed by a rebuttal.

Copyright © NVIDIA Corporation 2004 Arguments & Rebuttals (cont.) Argument: "Using accelerated OpenGL drivers will provide dramatic performance improvements for important operations now ill-supported in existing X drivers." - Keith Packard, 'Getting X Off The Hardware' Response: An X driver within the existing loadable driver framework has access to the same hardware capabilities as an OpenGL driver. An X driver should perform at least as well as X-on-OpenGL on the same hardware.

Copyright © NVIDIA Corporation 2004 Arguments & Rebuttals (cont.) Argument: OpenGL applications cannot work with Composite unless the X server is also using OpenGL for its rendering. Response: The OpenGL driver must coordinate with the X server to render to the redirected window and to propogate Damage notification. The coordination is important, but how the X server performs its rendering is not relevant. How direct-rendering OpenGL accomplishes its rendering is not dependent on how X implements its rendering.

Copyright © NVIDIA Corporation 2004 Arguments & Rebuttals (cont.) Argument: Using OpenGL for compositing the X desktop requires that the X server use OpenGL for its rendering. Response: The composite manager can composite however it likes (Render, OpenGL, core X primitives). A composite manager can use OpenGL by retrieving redirected windows' pixmap data, and using that data as an OpenGL texture. In the future, GLX_EXT_texture_from_pixmap could be used for this. How the composite manager accomplishes its rendering is not dependent on how X implements its rendering.

Copyright © NVIDIA Corporation 2004 Arguments & Rebuttals (cont.) Argument: "...3D [hardware] is simply faster than 2D [hardware]." - Jon Smirl, 'The State of Linux Graphics' Response: Not always true. It depends on the operation. The implementer of an X driver will assess how best to use the available hardware to accomplish the requested rendering.

Copyright © NVIDIA Corporation 2004 Arguments & Rebuttals (cont.) Argument: "At some future point the graphics chip vendors are going to remove that dot labeled 2D and only leave us only with 3D hardware.” - Jon Smirl, 'The State of Linux Graphics' Response: Graphics chip vendors build hardware that most effectively accomplishes the tasks at hand. One of those tasks is accelerating a modern X desktop. It is the role of the X driver implementer to assess how optimally to perform the necessary operations.

Copyright © NVIDIA Corporation 2004 Arguments & Rebuttals (cont.) Argument: X-on-OpenGL will be easier for IHVs, because now an IHV will only need to provide a stand-alone OpenGL driver, rather than both an OpenGL driver and an X driver. Response: If the goal were simply to accelerate X rendering, then this might be true. However, the X-on-OpenGL model makes it much more difficult for vendors to provide advanced features. From this perspective, X-on-OpenGL will not make things easier for IHVs.

Copyright © NVIDIA Corporation 2004 Arguments & Rebuttals (cont.) Argument: X-on-OpenGL will be easier for the open source community because it lessens IHV dependence. The open source community can implement their own Render driver with X-on-OpenGL and only depend on IHVs for an OpenGL implementation. Response: Implementing a full OpenGL driver is a huge task; implementing Render acceleration is a much smaller task. An IHV commited enough to Linux to provide an OpenGL driver is going to be interested in having that OpenGL implementation exposed to direct-rendering OpenGL clients, and will likely be interested in also exposing vendor-specific features.

Copyright © NVIDIA Corporation 2004 Arguments & Rebuttals (cont.) Argument: "...graphics vendors really only care about MS Windows so they do the minimum driver support they can get away with for Linux." - Jon Smirl, 'The State of Linux Graphics' Response: That is certainly not true in the case of NVIDIA.

Copyright © NVIDIA Corporation 2004 Future Directions OpenGL-based composite managers Need to resolve the “output window” question Need an efficient means to use X pixmaps as OpenGL textures: GLX_EXT_texture_from_pixmap To bring Composite to the mainstream: OpenGL implementers: add support for direct-rendering to redirected windows OpenGL implementers: add support for texture_from_pixmap Continue to improve Render acceleration EXA is making great progress NVIDIA will continue to improve its Render support Address Xv + Composite Fix remaining Composite bugs in X.Org server Enable Composite by default

Copyright © NVIDIA Corporation 2004 Future Directions (cont.) Establish industry standard benchmarks Does x11perf measure everything about Render that we care about? As OpenGL composite manager technology matures, construct appropriate benchmarks Encourage healthy performance competition through posting benchmark results Ensure that driver developers and IHVs take X performance seriously Establish industry standard conformance tests Is rendercheck exhuastive? Should rendercheck be folded into VSW? Correctness tests for texture_from_pixmap

Copyright © NVIDIA Corporation 2004 Conclusion The existing loadable driver framework: Can rovide high performance Render acceleration Can support accelerated composited X desktop Is flexible enough to allow vendor-provided features Requires only incremental enhancements Is the best driver model to achieve our goals

Copyright © NVIDIA Corporation 2004 Questions? xdevconf_2006_presentations.html