Gallium3D is Mesa's new driver model that addresses issues with the classic model. It separates driver responsibilities into reusable components: a state tracker handles APIs like OpenGL, a pipe driver abstracts the hardware, and a pipe winsys interfaces with the operating system. This makes drivers more portable and easier to develop while supporting multiple graphics APIs on a single hardware driver.
Opendaylight is a project which promotes the Software Defined Networking.
Officially started on April -8th-2013.
The linux foundation planned an pivotal role in it, but it’s a consortium and multiple tech companies are partnered to led the SDN.
Its based on Eclipse Public License – v 1.0 (EPL).
------------------
Software defined networking is a research area which let a network to program, It also output network control applications, and those applications are to control the network
Example :
A network formed by the openflow enabled switch.
Controller Platform provides the OPEN APIs to program the network.
Controller Applications control the network based on the needs
SQL Developer isn't just for...developers!
SQL Developer doubles the features available to the end user with the DBA panel, accessible from the View menu.
Opendaylight is a project which promotes the Software Defined Networking.
Officially started on April -8th-2013.
The linux foundation planned an pivotal role in it, but it’s a consortium and multiple tech companies are partnered to led the SDN.
Its based on Eclipse Public License – v 1.0 (EPL).
------------------
Software defined networking is a research area which let a network to program, It also output network control applications, and those applications are to control the network
Example :
A network formed by the openflow enabled switch.
Controller Platform provides the OPEN APIs to program the network.
Controller Applications control the network based on the needs
SQL Developer isn't just for...developers!
SQL Developer doubles the features available to the end user with the DBA panel, accessible from the View menu.
The Top 5 Reasons to Deploy Your Applications on Oracle RACMarkus Michalewicz
A presentation for developers, DBAs, and managers. This presentation was first presented in course of the AIOUG Maximum Availability Architecture (MAA)-focus month August 2021. The first reason might surprise you!
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Sandesh Rao
In this session, I will cover under-the-hood features that power Oracle Real Application Clusters (Oracle RAC) 19c specifically around Cache Fusion and Service management. Improvements in Oracle RAC helps in integration with features such as Multitenant and Data Guard. In fact, these features benefit immensely when used with Oracle RAC. Finally we will talk about changes to the broader Oracle RAC Family of Products stack and the algorithmic changes that helps quickly detect sick/dead nodes/instances and the reconfiguration improvements to ensure that the Oracle RAC Databases continue to function without any disruption
Oracle RAC 12c Practical Performance Management and Tuning as presented during Oracle Open World 2013 with Michael Zoll.
This is part three of the Oracle RAC 12c "reindeer series" used for OOW13 Oracle RAC-related presentations.
This part concludes the main part of the "reindeer series" except for one bonus track "Oracle Multitenant meets Oracle RAC 12c" (available via SlidesShare, too).
Some basic knowledges required for beginners in writing linux kernel module - with a description of linux source tree, so that the idea of where and how develops. The working of insmod and rmmod commands are described also.
Presented as a pre-conference tutorial at the GPU Technology Conference in San Jose on September 20, 2010.
Learn about NVIDIA's OpenGL 4.1 functionality available now on Fermi-based GPUs.
Presented September 30, 2009 in San Jose, California at GPU Technology Conference.
Describes the new features of OpenGL 3.2 and NVIDIA's extensions beyond 3.2 such as bindless graphics, direct state access, separate shader objects, copy image, texture barrier, and Cg 2.2.
OpenGL NVIDIA Command-List: Approaching Zero Driver OverheadTristan Lorach
This presentation introduces a new NVIDIA extension called Command-list.
The purpose of this presentation is to explain the basic concepts on how to use it and show what are the benefits.
The sample I used for the talk is here: https://github.com/nvpro-samples/gl_commandlist_bk3d_models
The driver for trying should be PreRelease 347.09
http://www.nvidia.com/download/driverResults.aspx/80913/en-us
The Top 5 Reasons to Deploy Your Applications on Oracle RACMarkus Michalewicz
A presentation for developers, DBAs, and managers. This presentation was first presented in course of the AIOUG Maximum Availability Architecture (MAA)-focus month August 2021. The first reason might surprise you!
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Sandesh Rao
In this session, I will cover under-the-hood features that power Oracle Real Application Clusters (Oracle RAC) 19c specifically around Cache Fusion and Service management. Improvements in Oracle RAC helps in integration with features such as Multitenant and Data Guard. In fact, these features benefit immensely when used with Oracle RAC. Finally we will talk about changes to the broader Oracle RAC Family of Products stack and the algorithmic changes that helps quickly detect sick/dead nodes/instances and the reconfiguration improvements to ensure that the Oracle RAC Databases continue to function without any disruption
Oracle RAC 12c Practical Performance Management and Tuning as presented during Oracle Open World 2013 with Michael Zoll.
This is part three of the Oracle RAC 12c "reindeer series" used for OOW13 Oracle RAC-related presentations.
This part concludes the main part of the "reindeer series" except for one bonus track "Oracle Multitenant meets Oracle RAC 12c" (available via SlidesShare, too).
Some basic knowledges required for beginners in writing linux kernel module - with a description of linux source tree, so that the idea of where and how develops. The working of insmod and rmmod commands are described also.
Presented as a pre-conference tutorial at the GPU Technology Conference in San Jose on September 20, 2010.
Learn about NVIDIA's OpenGL 4.1 functionality available now on Fermi-based GPUs.
Presented September 30, 2009 in San Jose, California at GPU Technology Conference.
Describes the new features of OpenGL 3.2 and NVIDIA's extensions beyond 3.2 such as bindless graphics, direct state access, separate shader objects, copy image, texture barrier, and Cg 2.2.
OpenGL NVIDIA Command-List: Approaching Zero Driver OverheadTristan Lorach
This presentation introduces a new NVIDIA extension called Command-list.
The purpose of this presentation is to explain the basic concepts on how to use it and show what are the benefits.
The sample I used for the talk is here: https://github.com/nvpro-samples/gl_commandlist_bk3d_models
The driver for trying should be PreRelease 347.09
http://www.nvidia.com/download/driverResults.aspx/80913/en-us
presented at SIGGRAPH 2014 in Vancouver during NVIDIA's "Best of GTC" sponsored sessions
http://www.nvidia.com/object/siggraph2014-best-gtc.html
Watch the replay that includes a demo of GPU-accelerated Illustrator and several OpenGL 4 demos running on NVIDIA's Tegra Shield tablet.
http://www.ustream.tv/recorded/51255959
Find out more about the OpenGL examples for GameWorks:
https://developer.nvidia.com/gameworks-opengl-samples
Secret of Intel Management Engine by Igor SkochinskyCODE BLUE
Intel Management Engine ("ME") is a dedicated microcontroller embedded in all recent Intel motherboard chipsets. It works independently from the main CPU, can be active even when the rest of the system is powered off, and has a dedicated connection to the network interface for out-of-band networking which bypasses the main CPU and the installed OS. It not only performs the management tasks for which it was originally designed, but also implements features such as Intel Identity Protection Technology (IPT), Protected Audio-Video Path, Intel Anti-Theft, Intel TPM, NFC communication and more. There is not much info available about how exactly it works, and this talk aims to fill the gap and describe the low-level details.
Igor Skochinsky
Igor Skochinsky is currently one of the main developers of the world-famous Interactive Disassembler and Hex-Rays Decompiler. Even before joining Hex-Rays in 2008 he had been interested in reverse engineering for a long time and had brief periods of Internet fame after releasing a dumper for DRM-ed iTunes files (QTFairUse6) and hacking the original Amazon Kindle. He spoke previously at Recon, Breakpoint and Hack.LU.
Ever wondered how to use modern OpenGL in a way that radically reduces driver overhead? Then this talk is for you.
John McDonald and Cass Everitt gave this talk at Steam Dev Days in Seattle on Jan 16, 2014.
Embedded Recipes 2019 - Making embedded graphics less specialAnne Nicolas
Traditionally graphics drivers were one of the last hold-outs of proprietary software in an embedded Linux system. This situation is changing with open-source graphics drivers showing up for almost all of the graphics acceleration peripherals on the market right now. This talk will show how open-source graphics drivers are making embedded systems less special, as well as trying to provide an overview of the Linux graphics stack, de-mystifying what is often seen as black magic GPU stuff from outside observers.
Lucas Stach
[Ubucon Europe 2018] Introduction to mesa, the open-source graphics API imple...Samuel Iglesias Gonsálvez
Nowadays, there is an increasing number of the applications for any modern GNU/Linux distro that need graphics hardware acceleration to run (or to improve performance), not only games but desktops environments, office suites or browsers, among many others. Graphics hardware acceleration requires a suitable driver for the HW present in the system. This talk will cover a brief introduction to the Linux graphics stack, focusing on the Mesa library, an open-source implementation of the OpenGL and Vulkan APIs which supports a variety of GPUs from different manufacturers: AMD, NVIDIA, Intel, Broadcom, etc. The talk will cover topics such as how Mesa development is performed, how to contribute to the project (even as a non-developer) and some details about how it works internally.
Porting the Source Engine to Linux: Valve's Lessons Learnedbasisspace
These slides discuss the techniques applied to porting a large, commercial AAA engine from Windows to Linux. It includes the lessons learned along the way, and pitfalls we ran into to help serve as a warning to other developers.
Kernel Recipes 2014 - The Linux graphics stack and Nouveau driverAnne Nicolas
The Linux graphics stack is constantly evolving to add support for new hardware. This evolution and new software specifications have forced the X graphical server to be split into several components including a now rotates in the Linux kernel, the Direct Rendering Manager (DRM). A quick presentation of these components and their role will be carried out before looking at new major change in the common code, the NVIDIA Optimus technology.
One equipped with Optimus technology laptop has two graphics processing units (GPUs), one from Intel and one from NVIDIA. This technology combines the low power Intel GPU when the machine is not used to the performance of NVIDIA GPUs when the user plays. This technology, however, is a nightmare to manage kernel-side although the final building blocks necessary for its complete management are being finalized. Further explanation of this issue will be made and we’ll see how this new software architecture has added graphics acceleration on embedded processor SoCs like Tegra.
The case of open source NVIDIA driver, called “New” will then be studied. This is the graphics driver community as it is developed without the help of NVIDIA and attracted several regular contributors, including myself! We’ll take a quick history of the project before talking about the current developments and issues related to the lack of documentation.
The end of this presentation will then be left to the participants so they can ask more general questions about the graphics stack, if they wish.
Martin Peres, Laboratoire Bordelais de Recherche en Informatique
3-Way Scripts are simple code units which can automatically respond to (1) class instantiation and function calls, (2) calls on command line, (3) web API calls. The key merit is that all the three methods are handled by the same code without any additional overhead. In additional to the core idea of 3-way scripting, this paper also adds a security feature for the web API function in form of generation and handling of keys across multiple instances of code running at multiple locations. The main objective for the security features is the same as core idea -- to minimize the coding overhead and maximize simplicity and flexibility. The proposed design is showcased as a practical solution for cloud applications which consist of a large number of independent and loosely coupled instances of the same code. In current practice, this showcase is close in nature to popular scale-out platforms like Docker and Heroku.
Embedded Recipes 2019 - LLVM / Clang integrationAnne Nicolas
Buildroot is a popular and easy to use embedded Linux build system. It generates, in few minutes, lightweight and customized Linux systems, including the cross-compilation toolchain, kernel and bootloader images, as well as a wide variety of userspace libraries and programs.
This talk is about the integration of LLVM/clang into Buildroot.
In 2018, Valentin Korenblit, supervised by Romain Naour, worked on this topic during his internship at Smile ECS. After a short introduction about llvm/clang and Buildroot, this talk will go through the numerous issues discovered while adding llvm/clang componants and how these issues were fixed. Romain will also detail the work in progress and the work to be done based on llvm/clang libraries (OpenCL, Compiler-rt, BCC. Chromium, ldd).
Romain Naour
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime RipardAnne Nicolas
Every modern multimedia-oriented ARM SoC usually has a number of display controllers, to drive a screen or an LCD panel, and a GPU, to provide 3D acceleration. The Linux kernel framework of choice to support these controllers is the DRM subsystem.
This talk will walk through the DRM stack, the architecture of a DRM/KMS driver and the interaction between the display and GPU drivers. The presentation is based on the work we have done to develop a DRM driver for the Allwinner SoCs display controller with multiple outputs, such as parallel display interfaces, HDMI or MIPI-DSI. The work done to make the ARM Mali OpenGL driver work on top of a mainline DRM/KMS driver will also be detailed, as well as the more traditional, Mesa-based, solution used in a variety of other platforms.
Maxime Ripard, Free Electrons
A Project Report on Insurance System with Tracking Manager
Gallium3D - Mesa's New Driver Model
1. Gallium3D - Mesa’s New Driver Model
Chia-I Wu
olvaffe@gmail.com
Mar 27, 2011
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 1 / 24
2. Agenda
Who Am I?
main developer of Mesa EGL stack
Android(-x86) port of Mesa
experiences in OpenGL stacks
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 2 / 24
3. Agenda
Who Am I?
main developer of Mesa EGL stack
Android(-x86) port of Mesa
experiences in OpenGL stacks
a member of 0xlab
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 2 / 24
4. Agenda
Agenda
OpenGL and Linux: DRI
classic and Gallium3D driver models
how does it make a developer happy
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 3 / 24
5. OpenGL and Linux
Mesa v.s. Proprietary Drivers
Isn’t this the case?
Mesa Proprietary
stability . v
performance . v
feature set . v
it’s free v .
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 4 / 24
6. OpenGL and Linux
Not Always
Figure: nouveau v.s. nVidia binary driver (phronix)
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 5 / 24
7. OpenGL and Linux
People
BIG TEAMS / BIG BUDGET
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 6 / 24
8. OpenGL and Linux
DRI
Direct Rendering Infrastructure, DRI
direct rendering
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 7 / 24
9. OpenGL and Linux
DRI
Direct Rendering Infrastructure, DRI
direct rendering
core X rendering
indirect rendering
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 7 / 24
10. OpenGL and Linux
DRI Components
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 8 / 24
11. OpenGL and Linux
DRI Components
<hw> dri.so is the DRI or 3D driver
<hw> drv.so is the DDX or 2D driver
<hw>.ko is the DRM kernel module
libdrm <hw>.so is the user space library for the DRM module
GLX and DRI2 are X11 protocols
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 8 / 24
12. OpenGL and Linux
They are all complex
DRM driver for buffer management, mode setting, ... (radeon has ∼70k LoC)
DDX driver for 2D operations, video, mode setting, ... (radeon has ∼100k LoC)
DRI driver for OpenGL (radeon has ∼90k LoC)
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 9 / 24
13. OpenGL and Linux
OpenGL under Mesa Classic Driver Model
libGL.so <hw>_dri.so libdrm_<hw>.so
DRI driver interface Mesa common code HW code
In the classic model,
there is common code that checks the arguments of an OpenGL call and updates
internal states
it then calls into the HW code using the function table implemented there
There is an almost one-to-one mapping between OpenGL API and the function table that
the HW code implements.
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 10 / 24
14. OpenGL and Linux
Dissection of the DRI driver
libGL.so <hw>_dri.so libdrm_<hw>.so
DRI driver interface Mesa common code HW code
OS dependent: the HW code
display server dependent: none
OpenGL dependent: the common and HW code
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 11 / 24
15. OpenGL and Linux
Problems with the Classic Model
The problems with the classic model are
it is OpenGL(ES) only; even the hardware can support OpenVG, OpenCL, ...
the driver uses OpenGL data types and objects
the driver must handle the differences between OpenGL and the hardware
an implementation issue instead of a design issue in view of the DRI architecture
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 12 / 24
16. Gallium3D
Ideal Model
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 13 / 24
17. Gallium3D
Gallium3D
libGL.so <hw>_dri.so libdrm_<hw>.so
DRI state tracker
pipe driver pipe winsys
OpenGL state tracker
OS dependent: the pipe winsys
display server dependent: none
OpenGL dependent: OpenGL state tracker
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 14 / 24
18. Gallium3D
Gallium3D
libGL.so <hw>_dri.so libdrm_<hw>.so
DRI state tracker
pipe driver pipe winsys
OpenGL state tracker
OS dependent: the pipe winsys
display server dependent: none
OpenGL dependent: OpenGL state tracker
The pipe driver is highly protable and has a well-defined interface!
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 14 / 24
19. Gallium3D
Classic Model to Gallium3D Model
libGL.so <hw>_dri.so libdrm_<hw>.so
DRI driver interface Mesa common code HW code
DRI state tracker
pipe driver pipe winsys
OpenGL state tracker
This is a non-trivial process
DRI and OpenGL state trackers are written once and shared
the pipe driver and winsys must be written for each HW
new drivers should adopt the Gallium3D model from beginning
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 15 / 24
20. Gallium3D
Gallium3D: examples
libEGL.so egl_dri2.so <hw>_dri.so libdrm_<hw>.so
DRI state tracker
pipe driver pipe winsys
OpenVG state tracker
libOpenCL.so <hw>_dri.so libdrm_<hw>.so
DRI state tracker
pipe driver pipe winsys
OpenCL state tracker
(You can also have all OpenGL, OpenVG, and OpenCL state trackers inside a single DRI
driver)
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 16 / 24
21. Gallium3D
Gallium3D: even for DDX
Xorg <hw>_drv.so (DDX) libdrm_<hw>.so
DDX state tracker pipe driver pipe winsys
A modern DDX driver is more than a 2D driver
EXA/UXA
Xrender
video decoding
mode setting KMS
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 17 / 24
22. Gallium3D
Gallium3D: SVGA
VMWare has a virtual GPU named SVGA. The aquisition of Tungsten Graphics gives
vmwgfx.ko DRM module
Gallium3D based DRI driver
Gallium3D based DDX driver
Gallium3D based D3D9 driver (D3D9 state tracker + Windows winsys)
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 18 / 24
23. Developers
Gallium3D core
Gallium3D core consists of
two interfaces: struct pipe screen and struct pipe context
helper functions for format conversions, buffer management, vertex processing, and
etc.
wrappers of OS or compiler dependent functions, such as threads, timing, I/O
Pipe drivers implement struct pipe screen and struct pipe context interfaces.
State trackers are users of the interfaces.
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 19 / 24
24. Developers
struct pipe screen
The pipe screen is an abstraction of the adapter. It is used for
querying adapter capabilities/limitations
creating resources
fencing
and other misc operations
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 20 / 24
25. Developers
struct pipe context
The pipe context is an abstraction of the graphics pipeline (and some misc operations)
vertex buffers vertex fetcher
vertex shader
geometry shader stream output buffers
textures and
constant buffers rasterizer
fragment shader
per-fragment ops color and depth buffers
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 21 / 24
26. Developers
Pseudo Code
/∗ c r e a t e t h e p i p e s c r e e n ∗/
s t r u c t p i p e s c r e e n ∗ s c r e e n = o p e n h w d e v i c e ( dev name ) ;
/∗ c r e a t e a p i p e c o n t e x t ∗/
s t r u c t p i p e s c r e e n ∗ p i p e = s c r e e n −>c o n t e x t c r e a t e ( / ∗ . . . ∗ / ) ;
struct pipe resource ∗ res ;
/∗ c r e a t e a r e s o u r c e from t h e s c r e e n ∗/
r e s = s c r e e n −>r e s o u r c e c r e a t e ( / ∗ . . . ∗ / ) ;
/∗ s e t t h e r e s o u r c e a s t h e f r a m e b u f f e r ∗/
p i p e −>s e t f r a m e b u f f e r s t a t e ( / ∗ . . . ∗ / ) ;
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 22 / 24
27. Developers
It is easier
Gallium3D driver model
has well-defined interfaces and types
is close to the hardware
has reusable state trackers
has lots of helper functions
supports pipe screen/context wrapping: trace, rbug, galahad
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 23 / 24
28. Q&A
Q&A
Questions?
Chia-I Wu (olvaffe@gmail.com) Gallium3D - Mesa’s New Driver Model Mar 27, 2011 24 / 24