Linux Graphics Drivers: an Introduction
Linux Graphics Drivers: an Introduction
Version 3
St¨¦phane Marchesin
March 15, 2012
2
Contents
1
2
3
4
Introduction
7
1.1
Book overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.2
What this book does not cover . . . . . . . . . . . . . . . . . . . . . . . . .
8
A Look at the Hardware
9
2.1
Hardware Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.2
Bus types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.3
Virtual and Physical Memory . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.4
Anatomy of a Graphics Card . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.5
Programming the card . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.6
Graphics Hardware Examples . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.6.1
Forward renderers . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.6.2
Deferred Renderers . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
The Big Picture
25
3.1
The X11 infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.2
The DRI/DRM infrastructure . . . . . . . . . . . . . . . . . . . . . . . . .
26
Framebuffer Drivers
31
4.1
Creating a framebuffer driver . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.2
Framebuffer operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
3
CONTENTS
5
6
7
The Direct Rendering Manager
35
5.1
DRM batch buffer submission model . . . . . . . . . . . . . . . . . . . . .
36
5.1.1
Hardware sharing . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
5.1.2
Memory management and security . . . . . . . . . . . . . . . . .
37
5.2
Modesetting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5.3
libdrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
Drivers
39
6.1
Creating a basic driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
6.2
ShadowFB acceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
6.3
XAA acceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
6.4
EXA acceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Video Decoding
45
7.1
Video Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
7.2
Video decoding pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
7.2.1
Entropy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
7.2.2
Inverse DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
7.2.3
Motion Compensation . . . . . . . . . . . . . . . . . . . . . . . . .
46
7.2.4
Color Space Conversion . . . . . . . . . . . . . . . . . . . . . . . .
46
Video decoding APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
7.3
8
9
4
OpenGL
51
8.1
The OpenGL Rendering Pipeline . . . . . . . . . . . . . . . . . . . . . . .
51
8.1.1
Vertex processing . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
8.1.2
Geometry processing . . . . . . . . . . . . . . . . . . . . . . . . . .
51
8.1.3
Fragment processing . . . . . . . . . . . . . . . . . . . . . . . . . .
51
Mesa
53
9.1
Mesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
9.2
Mesa internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
9.2.1
53
Textures in mesa . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONTENTS
10 Gallium 3D
55
10.1 Gallium3D: a plan for a new generation of hardware . . . . . . . . . . . .
55
10.2 State trackers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
10.3 Pipe driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
10.4 Winsys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
10.5 Vertex submission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
10.6 Writing Gallium3D drivers . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
10.7 Shaders in Gallium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
11 GPU Computing
59
12 Suspend and Resume
61
13 Technical Specifications
63
13.1 Obtaining official specifications . . . . . . . . . . . . . . . . . . . . . . . .
63
13.2 Reverse engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
14 Beyond Development
67
14.1 Testing for conformance . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
14.2 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
14.3 Upstreaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
15 Conclusions
69
5
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
Related searches
- example of an introduction paragraph
- an introduction to marketing pdf
- how to write an introduction letter
- how to write an introduction about yourself
- model theory an introduction pdf
- structure of an introduction paragraph
- writing an introduction for an argument essay
- what does an introduction paragraph include
- marketing an introduction pdf free
- marketing an introduction 13e pdf
- how to write an introduction paragraph essay
- how to start an introduction paragraph essay