summaryrefslogtreecommitdiffstats
path: root/README
blob: 13c376e2804dc6561b7c49778fff859502169a73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
xf86-video-armada
X.org graphics driver for KMS based systems with pluggable GPU backend

What is xf86-video-armada?
--------------------------
The xf86-video-armada module is a 2D graphics driver for the X Window
System as implemented by X.org, supporting these DRM KMS drivers:

	Freescale i.MX
	Marvell Armada 510 (Dove)

and GPU drivers:

	Vivante libGAL (Armada only)
	Etnaviv (Armada and i.MX) with galcore kernel driver
	Etnaviv (Armada and i.MX) with etnaviv DRM kernel driver

Build requirements
------------------
xf86-video-armada can be built as a stand-alone KMS driver, or with
Vivante and/or Etnaviv GPU support.  Please carefully note that there
are three variants of GPU driver for Vivante GPUs, and confusingly
two of the open source variants that are quite different are both
called "etnaviv" by their authors.  I will refer to the DRM version
as "etnadrm" below.

When building with Vivante libGAL support, the configure options
--with-libgal-include= and --with-libgal-lib= should indicate the
location of the libGAL headers and library respectively if they
are not available via the compiler's standard include and library
paths.  Vivante libGAL support can be explicitly enabled or disabled
via the --enable-vivante and --disable-vivante configure options,
otherwise support will be automatically detected.

When building Etnaviv support, the configure options
--with-etnaviv-include= and --with-etnaviv-lib= should indicate the
location of the etnaviv headers and library respectively if they
are not available via the compiler's standard include and library
paths.  Alternatively, --with-etnaviv-source= can be used to indicate
the location of the built Etnaviv tree.  Etnaviv (aka libetnaviv)
support can be explicitly enabled or disabled via the --enable-etnaviv
and --disable-etnaviv configure options, otherwise support will be
automatically detected.

When building Etnadrm support, either the configure option
--with-etnaviv-include= or --with-etnaviv-source= needs to be provided
so etnadrm can find the etnaviv headers, similar to the Etnaviv support
option above.  The etnaviv library does not need to be configured,
built or installed.  Etnadrm support can be explicitly enabled or
disabled via the --enable-etnadrm and --disable-etnadrm configure
options, otherwise support will be automatically detected.

The following packages are required by this driver:

- libdrm-armada   git://git.armlinux.org.uk/~rmk/libdrm-armada.git/

The following packages are optional, but are required for building
etnaviv and etnadrm:

- etnaviv         https://github.com/laanwj/etna_viv.git

What operations are accelerated?
--------------------------------
- Copies using all alu operations.
- GetImage partially accelerated.
- PutImage partially accelerated.
- Solid fills without stipples or partial plane mask.
- FillSpans without stipples or partial plane mask.
- Xrender compositing without alpha maps, and for PE1.0 hardware, without
  component alpha.
- Xrender glyph caching, and rendering of glyphs - etnaviv only.
- Xv textured adapter - etnaviv only.

Common build instructions
-------------------------

These instructions give the exact build procedure for building
xf86-video-armada to support the etnadrm GPU driver without the etnaviv
and vivante GPU drivers.  This is what most people will require:

$ git clone git://git.armlinux.org.uk/~rmk/libdrm-armada.git/
$ cd libdrm-armada
$ mkdir m4; autoreconf -f -i
$ ./configure --prefix=/usr
$ make
$ make install
$ cd ..
$ git clone https://github.com/laanwj/etna_viv.git
$ ETNA_SRC=$PWD/etna_viv
$ git clone git://git.armlinux.org.uk/~rmk/xf86-video-armada.git/
$ cd xf86-video-armada
$ git checkout unstable-devel
$ ./autogen.sh --prefix=/usr --disable-vivante --disable-etnaviv \
  --with-etnaviv-source=$ETNA_SRC
$ make
$ make install
$ cp conf/xorg-sample.conf /etc/X11/xorg.conf

You will need to edit xorg.conf according to your needs (eg, setting
XvPreferOverlay).

The commands above:
- Download libdrm-armada
- Configure, build and install libdrm-armada
- Download etna_viv
- Download xf86-video-armada
- Configure, build and install xf86-video-armada
- install the sample xorg.conf