summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/application-issues.html85
-rw-r--r--docs/application-issues.rst48
-rw-r--r--docs/bugs.html59
-rw-r--r--docs/bugs.rst30
-rw-r--r--docs/codingstyle.html143
-rw-r--r--docs/codingstyle.rst124
-rw-r--r--docs/conform.html703
-rw-r--r--docs/conform.rst675
-rw-r--r--docs/contents.html108
-rw-r--r--docs/contents.rst86
-rw-r--r--docs/debugging.html43
-rw-r--r--docs/debugging.rst17
-rw-r--r--docs/developers.html58
-rw-r--r--docs/developers.rst25
-rw-r--r--docs/devinfo.html82
-rw-r--r--docs/devinfo.rst44
-rw-r--r--docs/dispatch.html273
-rw-r--r--docs/dispatch.rst255
-rw-r--r--docs/download.html98
-rw-r--r--docs/download.rst61
-rw-r--r--docs/egl.html252
-rw-r--r--docs/egl.rst197
-rw-r--r--docs/envvars.html786
-rw-r--r--docs/envvars.rst724
-rw-r--r--docs/extensions.html51
-rw-r--r--docs/extensions.rst31
-rw-r--r--docs/faq.html382
-rw-r--r--docs/faq.rst322
-rw-r--r--docs/helpwanted.html89
-rw-r--r--docs/helpwanted.rst47
-rw-r--r--docs/index.html2769
-rw-r--r--docs/index.rst2824
-rw-r--r--docs/install.html254
-rw-r--r--docs/install.rst212
-rw-r--r--docs/intro.html404
-rw-r--r--docs/intro.rst308
-rw-r--r--docs/license.html123
-rw-r--r--docs/license.rst90
-rw-r--r--docs/lists.html97
-rw-r--r--docs/lists.rst62
-rw-r--r--docs/llvmpipe.html343
-rw-r--r--docs/llvmpipe.rst272
-rw-r--r--docs/meson.html541
-rw-r--r--docs/meson.rst498
-rw-r--r--docs/opengles.html70
-rw-r--r--docs/opengles.rst54
-rw-r--r--docs/osmesa.html80
-rw-r--r--docs/osmesa.rst45
-rw-r--r--docs/perf.html76
-rw-r--r--docs/perf.rst44
-rw-r--r--docs/postprocess.html60
-rw-r--r--docs/postprocess.rst33
-rw-r--r--docs/precompiled.html36
-rw-r--r--docs/precompiled.rst14
-rw-r--r--docs/release-calendar.html108
-rw-r--r--docs/release-calendar.rst44
-rw-r--r--docs/releasing.html423
-rw-r--r--docs/releasing.rst351
-rw-r--r--docs/relnotes.html871
-rw-r--r--docs/relnotes.rst580
-rw-r--r--docs/relnotes/10.0.1.html150
-rw-r--r--docs/relnotes/10.0.1.rst124
-rw-r--r--docs/relnotes/10.0.2.html161
-rw-r--r--docs/relnotes/10.0.2.rst127
-rw-r--r--docs/relnotes/10.0.3.html206
-rw-r--r--docs/relnotes/10.0.3.rst174
-rw-r--r--docs/relnotes/10.0.4.html191
-rw-r--r--docs/relnotes/10.0.4.rst162
-rw-r--r--docs/relnotes/10.0.5.html173
-rw-r--r--docs/relnotes/10.0.5.rst147
-rw-r--r--docs/relnotes/10.0.html146
-rw-r--r--docs/relnotes/10.0.rst132
-rw-r--r--docs/relnotes/10.1.1.html254
-rw-r--r--docs/relnotes/10.1.1.rst223
-rw-r--r--docs/relnotes/10.1.2.html179
-rw-r--r--docs/relnotes/10.1.2.rst159
-rw-r--r--docs/relnotes/10.1.3.html90
-rw-r--r--docs/relnotes/10.1.3.rst64
-rw-r--r--docs/relnotes/10.1.4.html100
-rw-r--r--docs/relnotes/10.1.4.rst74
-rw-r--r--docs/relnotes/10.1.5.html105
-rw-r--r--docs/relnotes/10.1.5.rst76
-rw-r--r--docs/relnotes/10.1.6.html138
-rw-r--r--docs/relnotes/10.1.6.rst110
-rw-r--r--docs/relnotes/10.1.html75
-rw-r--r--docs/relnotes/10.1.rst50
-rw-r--r--docs/relnotes/10.2.1.html61
-rw-r--r--docs/relnotes/10.2.1.rst42
-rw-r--r--docs/relnotes/10.2.2.html181
-rw-r--r--docs/relnotes/10.2.2.rst152
-rw-r--r--docs/relnotes/10.2.3.html130
-rw-r--r--docs/relnotes/10.2.3.rst96
-rw-r--r--docs/relnotes/10.2.4.html127
-rw-r--r--docs/relnotes/10.2.4.rst103
-rw-r--r--docs/relnotes/10.2.5.html188
-rw-r--r--docs/relnotes/10.2.5.rst163
-rw-r--r--docs/relnotes/10.2.6.html118
-rw-r--r--docs/relnotes/10.2.6.rst104
-rw-r--r--docs/relnotes/10.2.7.html211
-rw-r--r--docs/relnotes/10.2.7.rst183
-rw-r--r--docs/relnotes/10.2.8.html130
-rw-r--r--docs/relnotes/10.2.8.rst106
-rw-r--r--docs/relnotes/10.2.9.html101
-rw-r--r--docs/relnotes/10.2.9.rst76
-rw-r--r--docs/relnotes/10.2.html99
-rw-r--r--docs/relnotes/10.2.rst69
-rw-r--r--docs/relnotes/10.3.1.html158
-rw-r--r--docs/relnotes/10.3.1.rst131
-rw-r--r--docs/relnotes/10.3.2.html115
-rw-r--r--docs/relnotes/10.3.2.rst91
-rw-r--r--docs/relnotes/10.3.3.html209
-rw-r--r--docs/relnotes/10.3.3.rst184
-rw-r--r--docs/relnotes/10.3.4.html106
-rw-r--r--docs/relnotes/10.3.4.rst83
-rw-r--r--docs/relnotes/10.3.5.html88
-rw-r--r--docs/relnotes/10.3.5.rst66
-rw-r--r--docs/relnotes/10.3.6.html124
-rw-r--r--docs/relnotes/10.3.6.rst100
-rw-r--r--docs/relnotes/10.3.7.html93
-rw-r--r--docs/relnotes/10.3.7.rst73
-rw-r--r--docs/relnotes/10.3.html335
-rw-r--r--docs/relnotes/10.3.rst369
-rw-r--r--docs/relnotes/10.4.1.html97
-rw-r--r--docs/relnotes/10.4.1.rst76
-rw-r--r--docs/relnotes/10.4.2.html127
-rw-r--r--docs/relnotes/10.4.2.rst102
-rw-r--r--docs/relnotes/10.4.3.html145
-rw-r--r--docs/relnotes/10.4.3.rst123
-rw-r--r--docs/relnotes/10.4.4.html100
-rw-r--r--docs/relnotes/10.4.4.rst72
-rw-r--r--docs/relnotes/10.4.5.html114
-rw-r--r--docs/relnotes/10.4.5.rst89
-rw-r--r--docs/relnotes/10.4.6.html143
-rw-r--r--docs/relnotes/10.4.6.rst115
-rw-r--r--docs/relnotes/10.4.7.html134
-rw-r--r--docs/relnotes/10.4.7.rst107
-rw-r--r--docs/relnotes/10.4.html259
-rw-r--r--docs/relnotes/10.4.rst269
-rw-r--r--docs/relnotes/10.5.0.html212
-rw-r--r--docs/relnotes/10.5.0.rst217
-rw-r--r--docs/relnotes/10.5.1.html217
-rw-r--r--docs/relnotes/10.5.1.rst194
-rw-r--r--docs/relnotes/10.5.2.html130
-rw-r--r--docs/relnotes/10.5.2.rst102
-rw-r--r--docs/relnotes/10.5.3.html125
-rw-r--r--docs/relnotes/10.5.3.rst101
-rw-r--r--docs/relnotes/10.5.4.html125
-rw-r--r--docs/relnotes/10.5.4.rst103
-rw-r--r--docs/relnotes/10.5.5.html95
-rw-r--r--docs/relnotes/10.5.5.rst70
-rw-r--r--docs/relnotes/10.5.6.html147
-rw-r--r--docs/relnotes/10.5.6.rst116
-rw-r--r--docs/relnotes/10.5.7.html103
-rw-r--r--docs/relnotes/10.5.7.rst79
-rw-r--r--docs/relnotes/10.5.8.html112
-rw-r--r--docs/relnotes/10.5.8.rst83
-rw-r--r--docs/relnotes/10.5.9.html140
-rw-r--r--docs/relnotes/10.5.9.rst118
-rw-r--r--docs/relnotes/10.6.0.html331
-rw-r--r--docs/relnotes/10.6.0.rst362
-rw-r--r--docs/relnotes/10.6.1.html104
-rw-r--r--docs/relnotes/10.6.1.rst80
-rw-r--r--docs/relnotes/10.6.2.html165
-rw-r--r--docs/relnotes/10.6.2.rst141
-rw-r--r--docs/relnotes/10.6.3.html106
-rw-r--r--docs/relnotes/10.6.3.rst77
-rw-r--r--docs/relnotes/10.6.4.html137
-rw-r--r--docs/relnotes/10.6.4.rst112
-rw-r--r--docs/relnotes/10.6.5.html124
-rw-r--r--docs/relnotes/10.6.5.rst95
-rw-r--r--docs/relnotes/10.6.6.html164
-rw-r--r--docs/relnotes/10.6.6.rst136
-rw-r--r--docs/relnotes/10.6.7.html75
-rw-r--r--docs/relnotes/10.6.7.rst53
-rw-r--r--docs/relnotes/10.6.8.html136
-rw-r--r--docs/relnotes/10.6.8.rst102
-rw-r--r--docs/relnotes/10.6.9.html130
-rw-r--r--docs/relnotes/10.6.9.rst104
-rw-r--r--docs/relnotes/11.0.0.html261
-rw-r--r--docs/relnotes/11.0.0.rst276
-rw-r--r--docs/relnotes/11.0.1.html134
-rw-r--r--docs/relnotes/11.0.1.rst105
-rw-r--r--docs/relnotes/11.0.2.html85
-rw-r--r--docs/relnotes/11.0.2.rst63
-rw-r--r--docs/relnotes/11.0.3.html185
-rw-r--r--docs/relnotes/11.0.3.rst157
-rw-r--r--docs/relnotes/11.0.4.html168
-rw-r--r--docs/relnotes/11.0.4.rst144
-rw-r--r--docs/relnotes/11.0.5.html172
-rw-r--r--docs/relnotes/11.0.5.rst139
-rw-r--r--docs/relnotes/11.0.6.html145
-rw-r--r--docs/relnotes/11.0.6.rst114
-rw-r--r--docs/relnotes/11.0.7.html154
-rw-r--r--docs/relnotes/11.0.7.rst135
-rw-r--r--docs/relnotes/11.0.8.html200
-rw-r--r--docs/relnotes/11.0.8.rst173
-rw-r--r--docs/relnotes/11.0.9.html127
-rw-r--r--docs/relnotes/11.0.9.rst99
-rw-r--r--docs/relnotes/11.1.0.html283
-rw-r--r--docs/relnotes/11.1.0.rst300
-rw-r--r--docs/relnotes/11.1.1.html197
-rw-r--r--docs/relnotes/11.1.1.rst167
-rw-r--r--docs/relnotes/11.1.2.html182
-rw-r--r--docs/relnotes/11.1.2.rst156
-rw-r--r--docs/relnotes/11.1.3.html319
-rw-r--r--docs/relnotes/11.1.3.rst283
-rw-r--r--docs/relnotes/11.1.4.html182
-rw-r--r--docs/relnotes/11.1.4.rst147
-rw-r--r--docs/relnotes/11.2.0.html296
-rw-r--r--docs/relnotes/11.2.0.rst312
-rw-r--r--docs/relnotes/11.2.1.html119
-rw-r--r--docs/relnotes/11.2.1.rst88
-rw-r--r--docs/relnotes/11.2.2.html210
-rw-r--r--docs/relnotes/11.2.2.rst172
-rw-r--r--docs/relnotes/12.0.0.html335
-rw-r--r--docs/relnotes/12.0.0.rst364
-rw-r--r--docs/relnotes/12.0.1.html65
-rw-r--r--docs/relnotes/12.0.1.rst41
-rw-r--r--docs/relnotes/12.0.2.html403
-rw-r--r--docs/relnotes/12.0.2.rst376
-rw-r--r--docs/relnotes/12.0.3.html71
-rw-r--r--docs/relnotes/12.0.3.rst48
-rw-r--r--docs/relnotes/12.0.4.html321
-rw-r--r--docs/relnotes/12.0.4.rst281
-rw-r--r--docs/relnotes/12.0.5.html138
-rw-r--r--docs/relnotes/12.0.5.rst109
-rw-r--r--docs/relnotes/12.0.6.html148
-rw-r--r--docs/relnotes/12.0.6.rst118
-rw-r--r--docs/relnotes/13.0.0.html311
-rw-r--r--docs/relnotes/13.0.0.rst333
-rw-r--r--docs/relnotes/13.0.1.html188
-rw-r--r--docs/relnotes/13.0.1.rst152
-rw-r--r--docs/relnotes/13.0.2.html189
-rw-r--r--docs/relnotes/13.0.2.rst154
-rw-r--r--docs/relnotes/13.0.3.html177
-rw-r--r--docs/relnotes/13.0.3.rst147
-rw-r--r--docs/relnotes/13.0.4.html255
-rw-r--r--docs/relnotes/13.0.4.rst214
-rw-r--r--docs/relnotes/13.0.5.html210
-rw-r--r--docs/relnotes/13.0.5.rst184
-rw-r--r--docs/relnotes/13.0.6.html287
-rw-r--r--docs/relnotes/13.0.6.rst255
-rw-r--r--docs/relnotes/17.0.0.html285
-rw-r--r--docs/relnotes/17.0.0.rst285
-rw-r--r--docs/relnotes/17.0.1.html221
-rw-r--r--docs/relnotes/17.0.1.rst180
-rw-r--r--docs/relnotes/17.0.2.html185
-rw-r--r--docs/relnotes/17.0.2.rst155
-rw-r--r--docs/relnotes/17.0.3.html189
-rw-r--r--docs/relnotes/17.0.3.rst147
-rw-r--r--docs/relnotes/17.0.4.html156
-rw-r--r--docs/relnotes/17.0.4.rst123
-rw-r--r--docs/relnotes/17.0.5.html144
-rw-r--r--docs/relnotes/17.0.5.rst116
-rw-r--r--docs/relnotes/17.0.6.html186
-rw-r--r--docs/relnotes/17.0.6.rst156
-rw-r--r--docs/relnotes/17.0.7.html145
-rw-r--r--docs/relnotes/17.0.7.rst115
-rw-r--r--docs/relnotes/17.1.0.html224
-rw-r--r--docs/relnotes/17.1.0.rst229
-rw-r--r--docs/relnotes/17.1.1.html188
-rw-r--r--docs/relnotes/17.1.1.rst150
-rw-r--r--docs/relnotes/17.1.10.html155
-rw-r--r--docs/relnotes/17.1.10.rst129
-rw-r--r--docs/relnotes/17.1.2.html187
-rw-r--r--docs/relnotes/17.1.2.rst159
-rw-r--r--docs/relnotes/17.1.3.html156
-rw-r--r--docs/relnotes/17.1.3.rst117
-rw-r--r--docs/relnotes/17.1.4.html220
-rw-r--r--docs/relnotes/17.1.4.rst178
-rw-r--r--docs/relnotes/17.1.5.html203
-rw-r--r--docs/relnotes/17.1.5.rst161
-rw-r--r--docs/relnotes/17.1.6.html225
-rw-r--r--docs/relnotes/17.1.6.rst187
-rw-r--r--docs/relnotes/17.1.7.html148
-rw-r--r--docs/relnotes/17.1.7.rst121
-rw-r--r--docs/relnotes/17.1.8.html115
-rw-r--r--docs/relnotes/17.1.8.rst87
-rw-r--r--docs/relnotes/17.1.9.html144
-rw-r--r--docs/relnotes/17.1.9.rst114
-rw-r--r--docs/relnotes/17.2.0.html218
-rw-r--r--docs/relnotes/17.2.0.rst215
-rw-r--r--docs/relnotes/17.2.1.html200
-rw-r--r--docs/relnotes/17.2.1.rst160
-rw-r--r--docs/relnotes/17.2.2.html203
-rw-r--r--docs/relnotes/17.2.2.rst164
-rw-r--r--docs/relnotes/17.2.3.html181
-rw-r--r--docs/relnotes/17.2.3.rst149
-rw-r--r--docs/relnotes/17.2.4.html132
-rw-r--r--docs/relnotes/17.2.4.rst102
-rw-r--r--docs/relnotes/17.2.5.html156
-rw-r--r--docs/relnotes/17.2.5.rst125
-rw-r--r--docs/relnotes/17.2.6.html187
-rw-r--r--docs/relnotes/17.2.6.rst163
-rw-r--r--docs/relnotes/17.2.7.html247
-rw-r--r--docs/relnotes/17.2.7.rst212
-rw-r--r--docs/relnotes/17.2.8.html112
-rw-r--r--docs/relnotes/17.2.8.rst85
-rw-r--r--docs/relnotes/17.3.0.html246
-rw-r--r--docs/relnotes/17.3.0.rst258
-rw-r--r--docs/relnotes/17.3.1.html191
-rw-r--r--docs/relnotes/17.3.1.rst151
-rw-r--r--docs/relnotes/17.3.2.html109
-rw-r--r--docs/relnotes/17.3.2.rst80
-rw-r--r--docs/relnotes/17.3.3.html151
-rw-r--r--docs/relnotes/17.3.3.rst118
-rw-r--r--docs/relnotes/17.3.4.html275
-rw-r--r--docs/relnotes/17.3.4.rst237
-rw-r--r--docs/relnotes/17.3.5.html63
-rw-r--r--docs/relnotes/17.3.5.rst42
-rw-r--r--docs/relnotes/17.3.6.html85
-rw-r--r--docs/relnotes/17.3.6.rst59
-rw-r--r--docs/relnotes/17.3.7.html312
-rw-r--r--docs/relnotes/17.3.7.rst271
-rw-r--r--docs/relnotes/17.3.8.html147
-rw-r--r--docs/relnotes/17.3.8.rst116
-rw-r--r--docs/relnotes/17.3.9.html162
-rw-r--r--docs/relnotes/17.3.9.rst126
-rw-r--r--docs/relnotes/18.0.0.html321
-rw-r--r--docs/relnotes/18.0.0.rst353
-rw-r--r--docs/relnotes/18.0.1.html225
-rw-r--r--docs/relnotes/18.0.1.rst187
-rw-r--r--docs/relnotes/18.0.2.html144
-rw-r--r--docs/relnotes/18.0.2.rst116
-rw-r--r--docs/relnotes/18.0.3.html107
-rw-r--r--docs/relnotes/18.0.3.rst76
-rw-r--r--docs/relnotes/18.0.4.html157
-rw-r--r--docs/relnotes/18.0.4.rst125
-rw-r--r--docs/relnotes/18.0.5.html162
-rw-r--r--docs/relnotes/18.0.5.rst135
-rw-r--r--docs/relnotes/18.1.0.html268
-rw-r--r--docs/relnotes/18.1.0.rst281
-rw-r--r--docs/relnotes/18.1.1.html168
-rw-r--r--docs/relnotes/18.1.1.rst137
-rw-r--r--docs/relnotes/18.1.2.html170
-rw-r--r--docs/relnotes/18.1.2.rst138
-rw-r--r--docs/relnotes/18.1.3.html167
-rw-r--r--docs/relnotes/18.1.3.rst138
-rw-r--r--docs/relnotes/18.1.4.html150
-rw-r--r--docs/relnotes/18.1.4.rst125
-rw-r--r--docs/relnotes/18.1.5.html183
-rw-r--r--docs/relnotes/18.1.5.rst148
-rw-r--r--docs/relnotes/18.1.6.html188
-rw-r--r--docs/relnotes/18.1.6.rst154
-rw-r--r--docs/relnotes/18.1.7.html104
-rw-r--r--docs/relnotes/18.1.7.rst81
-rw-r--r--docs/relnotes/18.1.8.html180
-rw-r--r--docs/relnotes/18.1.8.rst158
-rw-r--r--docs/relnotes/18.1.9.html178
-rw-r--r--docs/relnotes/18.1.9.rst150
-rw-r--r--docs/relnotes/18.2.0.html284
-rw-r--r--docs/relnotes/18.2.0.rst306
-rw-r--r--docs/relnotes/18.2.1.html227
-rw-r--r--docs/relnotes/18.2.1.rst192
-rw-r--r--docs/relnotes/18.2.2.html155
-rw-r--r--docs/relnotes/18.2.2.rst121
-rw-r--r--docs/relnotes/18.2.3.html167
-rw-r--r--docs/relnotes/18.2.3.rst135
-rw-r--r--docs/relnotes/18.2.4.html154
-rw-r--r--docs/relnotes/18.2.4.rst119
-rw-r--r--docs/relnotes/18.2.5.html172
-rw-r--r--docs/relnotes/18.2.5.rst138
-rw-r--r--docs/relnotes/18.2.6.html179
-rw-r--r--docs/relnotes/18.2.6.rst145
-rw-r--r--docs/relnotes/18.2.7.html167
-rw-r--r--docs/relnotes/18.2.7.rst134
-rw-r--r--docs/relnotes/18.2.8.html183
-rw-r--r--docs/relnotes/18.2.8.rst147
-rw-r--r--docs/relnotes/18.3.0.html285
-rw-r--r--docs/relnotes/18.3.0.rst308
-rw-r--r--docs/relnotes/18.3.1.html63
-rw-r--r--docs/relnotes/18.3.1.rst43
-rw-r--r--docs/relnotes/18.3.2.html265
-rw-r--r--docs/relnotes/18.3.2.rst228
-rw-r--r--docs/relnotes/18.3.3.html208
-rw-r--r--docs/relnotes/18.3.3.rst170
-rw-r--r--docs/relnotes/18.3.4.html180
-rw-r--r--docs/relnotes/18.3.4.rst147
-rw-r--r--docs/relnotes/18.3.5.html271
-rw-r--r--docs/relnotes/18.3.5.rst233
-rw-r--r--docs/relnotes/18.3.6.html169
-rw-r--r--docs/relnotes/18.3.6.rst137
-rw-r--r--docs/relnotes/19.0.0.html2471
-rw-r--r--docs/relnotes/19.0.0.rst2516
-rw-r--r--docs/relnotes/19.0.1.html159
-rw-r--r--docs/relnotes/19.0.1.rst130
-rw-r--r--docs/relnotes/19.0.2.html122
-rw-r--r--docs/relnotes/19.0.2.rst90
-rw-r--r--docs/relnotes/19.0.3.html148
-rw-r--r--docs/relnotes/19.0.3.rst116
-rw-r--r--docs/relnotes/19.0.4.html243
-rw-r--r--docs/relnotes/19.0.4.rst204
-rw-r--r--docs/relnotes/19.0.5.html137
-rw-r--r--docs/relnotes/19.0.5.rst107
-rw-r--r--docs/relnotes/19.0.6.html153
-rw-r--r--docs/relnotes/19.0.6.rst120
-rw-r--r--docs/relnotes/19.0.7.html150
-rw-r--r--docs/relnotes/19.0.7.rst115
-rw-r--r--docs/relnotes/19.0.8.html62
-rw-r--r--docs/relnotes/19.0.8.rst43
-rw-r--r--docs/relnotes/19.1.0.html4610
-rw-r--r--docs/relnotes/19.1.0.rst4677
-rw-r--r--docs/relnotes/19.1.1.html154
-rw-r--r--docs/relnotes/19.1.1.rst122
-rw-r--r--docs/relnotes/19.1.2.html194
-rw-r--r--docs/relnotes/19.1.2.rst158
-rw-r--r--docs/relnotes/19.1.3.html191
-rw-r--r--docs/relnotes/19.1.3.rst160
-rw-r--r--docs/relnotes/19.1.4.html227
-rw-r--r--docs/relnotes/19.1.4.rst191
-rw-r--r--docs/relnotes/19.1.5.html119
-rw-r--r--docs/relnotes/19.1.5.rst91
-rw-r--r--docs/relnotes/19.1.6.html132
-rw-r--r--docs/relnotes/19.1.6.rst104
-rw-r--r--docs/relnotes/19.1.7.html157
-rw-r--r--docs/relnotes/19.1.7.rst129
-rw-r--r--docs/relnotes/19.1.8.html267
-rw-r--r--docs/relnotes/19.1.8.rst234
-rw-r--r--docs/relnotes/19.2.0.html444
-rw-r--r--docs/relnotes/19.2.0.rst418
-rw-r--r--docs/relnotes/19.2.1.html159
-rw-r--r--docs/relnotes/19.2.1.rst92
-rw-r--r--docs/relnotes/19.2.2.html147
-rw-r--r--docs/relnotes/19.2.2.rst94
-rw-r--r--docs/relnotes/19.2.3.html146
-rw-r--r--docs/relnotes/19.2.3.rst87
-rw-r--r--docs/relnotes/19.2.4.html65
-rw-r--r--docs/relnotes/19.2.4.rst39
-rw-r--r--docs/relnotes/19.2.5.html115
-rw-r--r--docs/relnotes/19.2.5.rst63
-rw-r--r--docs/relnotes/19.2.6.html87
-rw-r--r--docs/relnotes/19.2.6.rst49
-rw-r--r--docs/relnotes/19.2.7.html96
-rw-r--r--docs/relnotes/19.2.7.rst55
-rw-r--r--docs/relnotes/19.2.8.html108
-rw-r--r--docs/relnotes/19.2.8.rst61
-rw-r--r--docs/relnotes/19.3.0.html3138
-rw-r--r--docs/relnotes/19.3.0.rst3039
-rw-r--r--docs/relnotes/19.3.1.html94
-rw-r--r--docs/relnotes/19.3.1.rst55
-rw-r--r--docs/relnotes/19.3.2.html138
-rw-r--r--docs/relnotes/19.3.2.rst95
-rw-r--r--docs/relnotes/19.3.3.html193
-rw-r--r--docs/relnotes/19.3.3.rst125
-rw-r--r--docs/relnotes/19.3.4.html187
-rw-r--r--docs/relnotes/19.3.4.rst123
-rw-r--r--docs/relnotes/19.3.5.html169
-rw-r--r--docs/relnotes/19.3.5.rst106
-rw-r--r--docs/relnotes/20.0.0.html3231
-rw-r--r--docs/relnotes/20.0.0.rst3154
-rw-r--r--docs/relnotes/20.0.1.html172
-rw-r--r--docs/relnotes/20.0.1.rst96
-rw-r--r--docs/relnotes/20.0.2.html159
-rw-r--r--docs/relnotes/20.0.2.rst107
-rw-r--r--docs/relnotes/20.0.3.html177
-rw-r--r--docs/relnotes/20.0.3.rst119
-rw-r--r--docs/relnotes/20.0.4.html68
-rw-r--r--docs/relnotes/20.0.4.rst38
-rw-r--r--docs/relnotes/20.0.5.html213
-rw-r--r--docs/relnotes/20.0.5.rst136
-rw-r--r--docs/relnotes/20.0.6.html130
-rw-r--r--docs/relnotes/20.0.6.rst83
-rw-r--r--docs/relnotes/20.0.7.html160
-rw-r--r--docs/relnotes/20.0.7.rst100
-rw-r--r--docs/relnotes/20.0.8.html203
-rw-r--r--docs/relnotes/20.0.8.rst143
-rw-r--r--docs/relnotes/20.1.0.html3939
-rw-r--r--docs/relnotes/20.1.0.rst3945
-rw-r--r--docs/relnotes/20.1.1.html178
-rw-r--r--docs/relnotes/20.1.1.rst122
-rw-r--r--docs/relnotes/6.4.1.html75
-rw-r--r--docs/relnotes/6.4.1.rst54
-rw-r--r--docs/relnotes/6.4.2.html81
-rw-r--r--docs/relnotes/6.4.2.rst59
-rw-r--r--docs/relnotes/6.4.html97
-rw-r--r--docs/relnotes/6.4.rst77
-rw-r--r--docs/relnotes/6.5.1.html146
-rw-r--r--docs/relnotes/6.5.1.rst118
-rw-r--r--docs/relnotes/6.5.2.html133
-rw-r--r--docs/relnotes/6.5.2.rst112
-rw-r--r--docs/relnotes/6.5.3.html126
-rw-r--r--docs/relnotes/6.5.3.rst105
-rw-r--r--docs/relnotes/6.5.html141
-rw-r--r--docs/relnotes/6.5.rst114
-rw-r--r--docs/relnotes/7.0.1.html108
-rw-r--r--docs/relnotes/7.0.1.rst88
-rw-r--r--docs/relnotes/7.0.2.html95
-rw-r--r--docs/relnotes/7.0.2.rst76
-rw-r--r--docs/relnotes/7.0.3.html91
-rw-r--r--docs/relnotes/7.0.3.rst73
-rw-r--r--docs/relnotes/7.0.4.html87
-rw-r--r--docs/relnotes/7.0.4.rst67
-rw-r--r--docs/relnotes/7.0.html100
-rw-r--r--docs/relnotes/7.0.rst79
-rw-r--r--docs/relnotes/7.1.html101
-rw-r--r--docs/relnotes/7.1.rst77
-rw-r--r--docs/relnotes/7.10.1.html383
-rw-r--r--docs/relnotes/7.10.1.rst362
-rw-r--r--docs/relnotes/7.10.2.html211
-rw-r--r--docs/relnotes/7.10.2.rst185
-rw-r--r--docs/relnotes/7.10.3.html308
-rw-r--r--docs/relnotes/7.10.3.rst298
-rw-r--r--docs/relnotes/7.10.html2798
-rw-r--r--docs/relnotes/7.10.rst2930
-rw-r--r--docs/relnotes/7.11.1.html396
-rw-r--r--docs/relnotes/7.11.1.rst395
-rw-r--r--docs/relnotes/7.11.2.html90
-rw-r--r--docs/relnotes/7.11.2.rst68
-rw-r--r--docs/relnotes/7.11.html353
-rw-r--r--docs/relnotes/7.11.rst375
-rw-r--r--docs/relnotes/7.2.html111
-rw-r--r--docs/relnotes/7.2.rst85
-rw-r--r--docs/relnotes/7.3.html100
-rw-r--r--docs/relnotes/7.3.rst74
-rw-r--r--docs/relnotes/7.4.1.html86
-rw-r--r--docs/relnotes/7.4.1.rst64
-rw-r--r--docs/relnotes/7.4.2.html81
-rw-r--r--docs/relnotes/7.4.2.rst58
-rw-r--r--docs/relnotes/7.4.3.html86
-rw-r--r--docs/relnotes/7.4.3.rst63
-rw-r--r--docs/relnotes/7.4.4.html75
-rw-r--r--docs/relnotes/7.4.4.rst52
-rw-r--r--docs/relnotes/7.4.html96
-rw-r--r--docs/relnotes/7.4.rst72
-rw-r--r--docs/relnotes/7.5.1.html77
-rw-r--r--docs/relnotes/7.5.1.rst55
-rw-r--r--docs/relnotes/7.5.2.html73
-rw-r--r--docs/relnotes/7.5.2.rst50
-rw-r--r--docs/relnotes/7.5.html108
-rw-r--r--docs/relnotes/7.5.rst86
-rw-r--r--docs/relnotes/7.6.1.html86
-rw-r--r--docs/relnotes/7.6.1.rst63
-rw-r--r--docs/relnotes/7.6.html91
-rw-r--r--docs/relnotes/7.6.rst69
-rw-r--r--docs/relnotes/7.7.1.html66
-rw-r--r--docs/relnotes/7.7.1.rst43
-rw-r--r--docs/relnotes/7.7.html77
-rw-r--r--docs/relnotes/7.7.rst55
-rw-r--r--docs/relnotes/7.8.1.html70
-rw-r--r--docs/relnotes/7.8.1.rst50
-rw-r--r--docs/relnotes/7.8.2.html152
-rw-r--r--docs/relnotes/7.8.2.rst111
-rw-r--r--docs/relnotes/7.8.3.html95
-rw-r--r--docs/relnotes/7.8.3.rst73
-rw-r--r--docs/relnotes/7.8.html77
-rw-r--r--docs/relnotes/7.8.rst54
-rw-r--r--docs/relnotes/7.9.1.html411
-rw-r--r--docs/relnotes/7.9.1.rst407
-rw-r--r--docs/relnotes/7.9.2.html340
-rw-r--r--docs/relnotes/7.9.2.rst320
-rw-r--r--docs/relnotes/7.9.html144
-rw-r--r--docs/relnotes/7.9.rst178
-rw-r--r--docs/relnotes/8.0.1.html158
-rw-r--r--docs/relnotes/8.0.1.rst132
-rw-r--r--docs/relnotes/8.0.2.html164
-rw-r--r--docs/relnotes/8.0.2.rst135
-rw-r--r--docs/relnotes/8.0.3.html324
-rw-r--r--docs/relnotes/8.0.3.rst292
-rw-r--r--docs/relnotes/8.0.4.html209
-rw-r--r--docs/relnotes/8.0.4.rst182
-rw-r--r--docs/relnotes/8.0.5.html264
-rw-r--r--docs/relnotes/8.0.5.rst256
-rw-r--r--docs/relnotes/8.0.html87
-rw-r--r--docs/relnotes/8.0.rst63
-rw-r--r--docs/relnotes/9.0.1.html167
-rw-r--r--docs/relnotes/9.0.1.rst139
-rw-r--r--docs/relnotes/9.0.2.html290
-rw-r--r--docs/relnotes/9.0.2.rst259
-rw-r--r--docs/relnotes/9.0.3.html247
-rw-r--r--docs/relnotes/9.0.3.rst226
-rw-r--r--docs/relnotes/9.0.html98
-rw-r--r--docs/relnotes/9.0.rst70
-rw-r--r--docs/relnotes/9.1.1.html235
-rw-r--r--docs/relnotes/9.1.1.rst206
-rw-r--r--docs/relnotes/9.1.2.html237
-rw-r--r--docs/relnotes/9.1.2.rst212
-rw-r--r--docs/relnotes/9.1.3.html230
-rw-r--r--docs/relnotes/9.1.3.rst209
-rw-r--r--docs/relnotes/9.1.4.html321
-rw-r--r--docs/relnotes/9.1.4.rst284
-rw-r--r--docs/relnotes/9.1.5.html140
-rw-r--r--docs/relnotes/9.1.5.rst116
-rw-r--r--docs/relnotes/9.1.6.html168
-rw-r--r--docs/relnotes/9.1.6.rst146
-rw-r--r--docs/relnotes/9.1.7.html168
-rw-r--r--docs/relnotes/9.1.7.rst140
-rw-r--r--docs/relnotes/9.1.html83
-rw-r--r--docs/relnotes/9.1.rst56
-rw-r--r--docs/relnotes/9.2.1.html206
-rw-r--r--docs/relnotes/9.2.1.rst168
-rw-r--r--docs/relnotes/9.2.2.html100
-rw-r--r--docs/relnotes/9.2.2.rst76
-rw-r--r--docs/relnotes/9.2.3.html115
-rw-r--r--docs/relnotes/9.2.3.rst91
-rw-r--r--docs/relnotes/9.2.4.html102
-rw-r--r--docs/relnotes/9.2.4.rst79
-rw-r--r--docs/relnotes/9.2.5.html120
-rw-r--r--docs/relnotes/9.2.5.rst98
-rw-r--r--docs/relnotes/9.2.html226
-rw-r--r--docs/relnotes/9.2.rst221
-rw-r--r--docs/repository.html220
-rw-r--r--docs/repository.rst190
-rw-r--r--docs/shading.html251
-rw-r--r--docs/shading.rst208
-rw-r--r--docs/sourcedocs.html51
-rw-r--r--docs/sourcedocs.rst21
-rw-r--r--docs/sourcetree.html177
-rw-r--r--docs/sourcetree.rst158
-rw-r--r--docs/submittingpatches.html431
-rw-r--r--docs/submittingpatches.rst404
-rw-r--r--docs/systems.html112
-rw-r--r--docs/systems.rst71
-rw-r--r--docs/thanks.html127
-rw-r--r--docs/thanks.rst66
-rw-r--r--docs/utilities.html41
-rw-r--r--docs/utilities.rst15
-rw-r--r--docs/versions.html1660
-rw-r--r--docs/versions.rst1652
-rw-r--r--docs/viewperf.html347
-rw-r--r--docs/viewperf.rst266
-rw-r--r--docs/vmware-guest.html321
-rw-r--r--docs/vmware-guest.rst314
-rw-r--r--docs/webmaster.html32
-rw-r--r--docs/webmaster.rst8
-rw-r--r--docs/xlibdriver.html282
-rw-r--r--docs/xlibdriver.rst222
626 files changed, 69177 insertions, 77922 deletions
diff --git a/docs/application-issues.html b/docs/application-issues.html
deleted file mode 100644
index c4ac9d9b31d..00000000000
--- a/docs/application-issues.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Application Issues</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Application Issues</h1>
-
-<p>
-This page documents known issues with some OpenGL applications.
-</p>
-
-
-<h2>Topogun</h2>
-
-<p>
-<a href="http://www.topogun.com/">Topogun</a> for Linux (version 2, at least)
-creates a GLX visual without requesting a depth buffer.
-This causes bad rendering if the OpenGL driver happens to choose a visual
-without a depth buffer.
-</p>
-
-<p>
-Mesa 9.1.2 and later (will) support a DRI configuration option to work around
-this issue.
-Using the <a href="https://dri.freedesktop.org/wiki/DriConf">driconf</a> tool,
-set the "Create all visuals with a depth buffer" option before running Topogun.
-Then, all GLX visuals will be created with a depth buffer.
-</p>
-
-
-<h2>Old OpenGL games</h2>
-
-<p>
-Some old OpenGL games (approx. ten years or older) may crash during
-start-up because of an extension string buffer-overflow problem.
-</p>
-
-<p>
-The problem is a modern OpenGL driver will return a very long string
-for the <code>glGetString(GL_EXTENSIONS)</code> query and if the application
-naively copies the string into a fixed-size buffer it can overflow the
-buffer and crash the application.
-</p>
-
-<p>
-The work-around is to set the <code>MESA_EXTENSION_MAX_YEAR</code>
-environment variable to the approximate release year of the game.
-This will cause the <code>glGetString(GL_EXTENSIONS)</code> query to only report
-extensions older than the given year.
-</p>
-
-<p>
-For example, if the game was released in 2001, do
-</p>
-<pre>
-export MESA_EXTENSION_MAX_YEAR=2001
-</pre>
-<p>
-before running the game.
-</p>
-
-
-
-<h2>Viewperf</h2>
-
-<p>
-See the <a href="viewperf.html">Viewperf issues</a> page for a detailed list
-of Viewperf issues.
-</p>
-
-
-</div>
-</body>
-</html>
diff --git a/docs/application-issues.rst b/docs/application-issues.rst
new file mode 100644
index 00000000000..22e3ec8be43
--- /dev/null
+++ b/docs/application-issues.rst
@@ -0,0 +1,48 @@
+Application Issues
+==================
+
+This page documents known issues with some OpenGL applications.
+
+Topogun
+-------
+
+`Topogun <http://www.topogun.com/>`__ for Linux (version 2, at least)
+creates a GLX visual without requesting a depth buffer. This causes bad
+rendering if the OpenGL driver happens to choose a visual without a
+depth buffer.
+
+Mesa 9.1.2 and later (will) support a DRI configuration option to work
+around this issue. Using the
+`driconf <https://dri.freedesktop.org/wiki/DriConf>`__ tool, set the
+"Create all visuals with a depth buffer" option before running Topogun.
+Then, all GLX visuals will be created with a depth buffer.
+
+Old OpenGL games
+----------------
+
+Some old OpenGL games (approx. ten years or older) may crash during
+start-up because of an extension string buffer-overflow problem.
+
+The problem is a modern OpenGL driver will return a very long string for
+the ``glGetString(GL_EXTENSIONS)`` query and if the application naively
+copies the string into a fixed-size buffer it can overflow the buffer
+and crash the application.
+
+The work-around is to set the ``MESA_EXTENSION_MAX_YEAR`` environment
+variable to the approximate release year of the game. This will cause
+the ``glGetString(GL_EXTENSIONS)`` query to only report extensions older
+than the given year.
+
+For example, if the game was released in 2001, do
+
+::
+
+ export MESA_EXTENSION_MAX_YEAR=2001
+
+before running the game.
+
+Viewperf
+--------
+
+See the `Viewperf issues <viewperf.html>`__ page for a detailed list of
+Viewperf issues.
diff --git a/docs/bugs.html b/docs/bugs.html
deleted file mode 100644
index 1bad3d8590c..00000000000
--- a/docs/bugs.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Report a Bug</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Report a Bug</h1>
-
-<p>
-The Mesa bug database is hosted on
-<a href="https://freedesktop.org">freedesktop.org</a>.
-The old bug database on SourceForge is no longer used.
-</p>
-
-<p>
-To file a Mesa bug, go to
-<a href="https://gitlab.freedesktop.org/mesa/mesa/-/issues">
-GitLab on freedesktop.org</a>
-</p>
-
-<p>
-Please follow these bug reporting guidelines:
-</p>
-
-<ul>
-<li>Check if a new version of Mesa is available which might have fixed
-the problem.
-<li>Check if your bug is already reported in the database.
-<li>Monitor your bug report for requests for additional information, etc.
-<li>Attach the output of running glxinfo or wglinfo.
-This will tell us the Mesa version, which device driver you're using, etc.
-<li>If you're reporting a crash, try to use your debugger (gdb) to get a stack
-trace. Also, recompile Mesa in debug mode to get more detailed information.
-<li>Describe in detail how to reproduce the bug, especially with games
-and applications that the Mesa developers might not be familiar with.
-<li>Provide an <a href="https://github.com/apitrace/apitrace">apitrace</a>
-or simple GLUT-based test program if possible.
-</ul>
-
-<p>
-The easier a bug is to reproduce, the sooner it will be fixed.
-Please do everything you can to facilitate quickly fixing bugs.
-If your bug report is vague or your test program doesn't compile
-easily, the problem may not be fixed very quickly.
-</p>
-
-</div>
-</body>
-</html>
diff --git a/docs/bugs.rst b/docs/bugs.rst
new file mode 100644
index 00000000000..1f09ec117ae
--- /dev/null
+++ b/docs/bugs.rst
@@ -0,0 +1,30 @@
+Report a Bug
+============
+
+The Mesa bug database is hosted on
+`freedesktop.org <https://freedesktop.org>`__. The old bug database on
+SourceForge is no longer used.
+
+To file a Mesa bug, go to `GitLab on
+freedesktop.org <https://gitlab.freedesktop.org/mesa/mesa/-/issues>`__
+
+Please follow these bug reporting guidelines:
+
+- Check if a new version of Mesa is available which might have fixed
+ the problem.
+- Check if your bug is already reported in the database.
+- Monitor your bug report for requests for additional information, etc.
+- Attach the output of running glxinfo or wglinfo. This will tell us
+ the Mesa version, which device driver you're using, etc.
+- If you're reporting a crash, try to use your debugger (gdb) to get a
+ stack trace. Also, recompile Mesa in debug mode to get more detailed
+ information.
+- Describe in detail how to reproduce the bug, especially with games
+ and applications that the Mesa developers might not be familiar with.
+- Provide an `apitrace <https://github.com/apitrace/apitrace>`__ or
+ simple GLUT-based test program if possible.
+
+The easier a bug is to reproduce, the sooner it will be fixed. Please do
+everything you can to facilitate quickly fixing bugs. If your bug report
+is vague or your test program doesn't compile easily, the problem may
+not be fixed very quickly.
diff --git a/docs/codingstyle.html b/docs/codingstyle.html
deleted file mode 100644
index 4e47769cbf3..00000000000
--- a/docs/codingstyle.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Coding Style</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Coding Style</h1>
-
-<p>
-Mesa is over 20 years old and the coding style has evolved over time.
-Some old parts use a style that's a bit out of date.
-
-Different sections of mesa can use different coding style as set in the local
-EditorConfig (.editorconfig) and/or Emacs (.dir-locals.el) file.
-
-Alternatively the following is applicable.
-
-If the guidelines below don't cover something, try following the format of
-existing, neighboring code.
-</p>
-
-<p>
-Basic formatting guidelines
-</p>
-
-<ul>
-<li>3-space indentation, no tabs.
-<li>Limit lines to 78 or fewer characters. The idea is to prevent line
-wrapping in 80-column editors and terminals. There are exceptions, such
-as if you're defining a large, static table of information.
-<li>Opening braces go on the same line as the if/for/while statement.
-For example:
-<pre>
-if (condition) {
- foo;
-} else {
- bar;
-}
-</pre>
-
-<li>Put a space before/after operators. For example, <code>a = b + c;</code>
-and not <code>a=b+c;</code>
-
-<li>This GNU indent command generally does the right thing for formatting:
-<pre>
-indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
-</pre>
-
-<li>
-<p>Use comments wherever you think it would be helpful for other developers.
-Several specific cases and style examples follow. Note that we roughly
-follow <a href="http://www.doxygen.nl">Doxygen</a> conventions.
-</p>
-Single-line comments:
-<pre>
-/* null-out pointer to prevent dangling reference below */
-bufferObj = NULL;
-</pre>
-Or,
-<pre>
-bufferObj = NULL; /* prevent dangling reference below */
-</pre>
-Multi-line comment:
-<pre>
-/* If this is a new buffer object id, or one which was generated but
- * never used before, allocate a buffer object now.
- */
-</pre>
-We try to quote the OpenGL specification where prudent:
-<pre>
-/* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
- *
- * "An INVALID_OPERATION error is generated for any of the following
- * conditions:
- *
- * * &lt;length&gt; is zero."
- *
- * Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
- * (30.10.2014) also says this, so it's no longer allowed for desktop GL,
- * either.
- */
-</pre>
-Function comment example:
-<pre>
-/**
- * Create and initialize a new buffer object. Called via the
- * ctx-&gt;Driver.CreateObject() driver callback function.
- * \param name integer name of the object
- * \param type one of GL_FOO, GL_BAR, etc.
- * \return pointer to new object or NULL if error
- */
-struct gl_object *
-_mesa_create_object(GLuint name, GLenum type)
-{
- /* function body */
-}
-</pre>
-
-<li>Put the function return type and qualifiers on one line and the function
-name and parameters on the next, as seen above. This makes it easy to use
-<code>grep ^function_name dir/*</code> to find function definitions. Also,
-the opening brace goes on the next line by itself (see above.)
-
-<li>Function names follow various conventions depending on the type of function:
-<pre>
-glFooBar() - a public GL entry point (in glapi_dispatch.c)
-_mesa_FooBar() - the internal immediate mode function
-save_FooBar() - retained mode (display list) function in dlist.c
-foo_bar() - a static (private) function
-_mesa_foo_bar() - an internal non-static Mesa function
-</pre>
-
-<li>Constants, macros and enum names are <code>ALL_UPPERCASE</code>, with _
-between words.
-<li>Mesa usually uses camel case for local variables (Ex:
-<code>localVarname</code>) while gallium typically uses underscores (Ex:
-<code>local_var_name</code>).
-<li>Global variables are almost never used because Mesa should be thread-safe.
-
-<li>Booleans. Places that are not directly visible to the GL API
-should prefer the use of <code>bool</code>, <code>true</code>, and
-<code>false</code> over <code>GLboolean</code>, <code>GL_TRUE</code>, and
-<code>GL_FALSE</code>. In C code, this may mean that
-<code>#include &lt;stdbool.h&gt;</code> needs to be added. The
-<code>try_emit_*</code> methods in <code>src/mesa/program/ir_to_mesa.cpp</code>
-and <code>src/mesa/state_tracker/st_glsl_to_tgsi.cpp</code> can serve as
-examples.
-
-</ul>
-
-</div>
-</body>
-</html>
diff --git a/docs/codingstyle.rst b/docs/codingstyle.rst
new file mode 100644
index 00000000000..eda7f9d51ba
--- /dev/null
+++ b/docs/codingstyle.rst
@@ -0,0 +1,124 @@
+Coding Style
+============
+
+Mesa is over 20 years old and the coding style has evolved over time.
+Some old parts use a style that's a bit out of date. Different sections
+of mesa can use different coding style as set in the local EditorConfig
+(.editorconfig) and/or Emacs (.dir-locals.el) file. Alternatively the
+following is applicable. If the guidelines below don't cover something,
+try following the format of existing, neighboring code.
+
+Basic formatting guidelines
+
+- 3-space indentation, no tabs.
+- Limit lines to 78 or fewer characters. The idea is to prevent line
+ wrapping in 80-column editors and terminals. There are exceptions,
+ such as if you're defining a large, static table of information.
+- Opening braces go on the same line as the if/for/while statement. For
+ example:
+
+ ::
+
+ if (condition) {
+ foo;
+ } else {
+ bar;
+ }
+
+- Put a space before/after operators. For example, ``a = b + c;`` and
+ not ``a=b+c;``
+- This GNU indent command generally does the right thing for
+ formatting:
+
+ ::
+
+ indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
+
+- Use comments wherever you think it would be helpful for other
+ developers. Several specific cases and style examples follow. Note
+ that we roughly follow `Doxygen <http://www.doxygen.nl>`__
+ conventions.
+
+ Single-line comments:
+
+ ::
+
+ /* null-out pointer to prevent dangling reference below */
+ bufferObj = NULL;
+
+ Or,
+
+ ::
+
+ bufferObj = NULL; /* prevent dangling reference below */
+
+ Multi-line comment:
+
+ ::
+
+ /* If this is a new buffer object id, or one which was generated but
+ * never used before, allocate a buffer object now.
+ */
+
+ We try to quote the OpenGL specification where prudent:
+
+ ::
+
+ /* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
+ *
+ * "An INVALID_OPERATION error is generated for any of the following
+ * conditions:
+ *
+ * * <length> is zero."
+ *
+ * Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
+ * (30.10.2014) also says this, so it's no longer allowed for desktop GL,
+ * either.
+ */
+
+ Function comment example:
+
+ ::
+
+ /**
+ * Create and initialize a new buffer object. Called via the
+ * ctx->Driver.CreateObject() driver callback function.
+ * \param name integer name of the object
+ * \param type one of GL_FOO, GL_BAR, etc.
+ * \return pointer to new object or NULL if error
+ */
+ struct gl_object *
+ _mesa_create_object(GLuint name, GLenum type)
+ {
+ /* function body */
+ }
+
+- Put the function return type and qualifiers on one line and the
+ function name and parameters on the next, as seen above. This makes
+ it easy to use ``grep ^function_name dir/*`` to find function
+ definitions. Also, the opening brace goes on the next line by itself
+ (see above.)
+- Function names follow various conventions depending on the type of
+ function:
+
+ ::
+
+ glFooBar() - a public GL entry point (in glapi_dispatch.c)
+ _mesa_FooBar() - the internal immediate mode function
+ save_FooBar() - retained mode (display list) function in dlist.c
+ foo_bar() - a static (private) function
+ _mesa_foo_bar() - an internal non-static Mesa function
+
+- Constants, macros and enum names are ``ALL_UPPERCASE``, with \_
+ between words.
+- Mesa usually uses camel case for local variables (Ex:
+ ``localVarname``) while gallium typically uses underscores (Ex:
+ ``local_var_name``).
+- Global variables are almost never used because Mesa should be
+ thread-safe.
+- Booleans. Places that are not directly visible to the GL API should
+ prefer the use of ``bool``, ``true``, and ``false`` over
+ ``GLboolean``, ``GL_TRUE``, and ``GL_FALSE``. In C code, this may
+ mean that ``#include <stdbool.h>`` needs to be added. The
+ ``try_emit_*`` methods in ``src/mesa/program/ir_to_mesa.cpp`` and
+ ``src/mesa/state_tracker/st_glsl_to_tgsi.cpp`` can serve as examples.
diff --git a/docs/conform.html b/docs/conform.html
deleted file mode 100644
index 1c3a2a489dc..00000000000
--- a/docs/conform.html
+++ /dev/null
@@ -1,703 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Conformance Testing</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Conformance Testing</h1>
-
-<p>
-The SGI OpenGL conformance tests verify correct operation of OpenGL
-implementations. I, Brian Paul, have been given a copy of the tests
-for testing Mesa. The tests are not publicly available.
-</p>
-<p>
-This file has the latest results of testing Mesa with the OpenGL 1.2
-conformance tests. Testing with the preliminary OpenGL 1.3 tests has
-also been done. Mesa passes all the 1.3 tests.
-</p>
-<p>
-The tests were run using the software X11 device driver on 24-bpp
-and 16-bpp displays.
-</p>
-<p>
-Mesa 4.0 and later pass all conformance tests at all path levels.
-Note that this says nothing about the conformance of hardware drivers
-based upon Mesa.
-</p>
-
-
-<pre>
-
-COVERAGE TESTS
---------------
-
-Test that all API functions accept the legal parameters and reject
-illegal parameters. The result of each test is either pass or fail.
-
-% covgl
-OpenGL Coverage Test.
-Version 1.2
-
-covgl passed.
-
-covgl passed at 1.1 level.
-
-covgl passed at 1.2 level.
-
-covgl passed for ARB_multitexture.
-
-
-% covglu
-OpenGL GLU Coverage Test.
-Version 1.3
-
-covglu passed.
-
-covglu passed at 1.1 level.
-
-
-% covglx
-OpenGL X Coverage Test.
-Version 1.1.1
-
-covglx passed.
-
-
-% primtest -v
-Open GL Primitives Test.
-Version 1.2
-
-[lots of output deleted]
-
-292159 Combinations.
-primtest passed.
-
-
-
-
-GL CONFORMANCE TEST
-===================
-
-Render test images, read them back, then test for expected results.
-
-
-----------------------------------------------------------------------
-% conform -v 2
-
-OpenGL Conformance Test
-Version 1.2
-
-Setup Report.
- Verbose level = 2.
- Random number seed = 1.
- Path inactive.
-
-Visual Report.
- Display ID = 35. Indirect Rendering.
- Double Buffered.
- RGBA (5, 6, 5, 0).
- Stencil (8).
- Depth (16).
- Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
- zero error epsilon = 0.000122.
- RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
- Depth buffer error epsilon = 0.000137.
- Stencil plane error epsilon = 0.00404.
- Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-Must Pass test passed.
-Divide By Zero test passed.
-Viewport Clamp test passed.
-Matrix Stack test passed.
-Matrix Stack Mixing test passed.
-Vertex Order test passed.
-Transformations test passed.
-Transformation Normal test passed.
-Viewport Transformation test passed.
-Buffer Clear test passed.
-Buffer Corners test passed.
-Buffer Color test passed.
-Color Ramp test passed.
-Mask test passed.
-Buffer Invariance test passed.
-Accumulation Buffer test passed.
-Select test passed.
-Feedback test passed.
-Scissor test passed.
-Alpha Plane Function test passed.
-Stencil Plane Clear test passed.
-Stencil Plane Corners test passed.
-Stencil Plane Operation test passed.
-Stencil Plane Function test passed.
-Depth Buffer Clear test passed.
-Depth Buffer Function test passed.
-Blend test passed.
-Dither test passed.
-LogicOp Function test does not exist for an RGB visual.
-DrawPixels test passed.
-CopyPixels test passed.
-Bitmap Rasterization test passed.
-Point Rasterization test passed.
-Anti-aliased Point test passed.
-Line Rasterization test passed.
-Line Stipple test passed.
-Anti-aliased Line test passed.
-Horizontal and Vertical Line test passed.
-Triangle Rasterization test passed.
-Triangle Tile test passed.
-Triangle Stipple test passed.
-Anti-aliased Triangles test passed.
-Quad Rasterization test passed.
-Polygon Face test passed.
-Polygon Cull test passed.
-Polygon Stipple test passed.
-Polygon Edge test passed.
-Ambient Material test passed.
-Ambient Scene test passed.
-Attenuation Position test passed.
-Diffuse Light test passed.
-Diffuse Material test passed.
-Diffuse Material Normal test passed.
-Diffuse Material Positioning test passed.
-Emissive Material test passed.
-Specular Exponent test passed.
-Specular Exponent Normal test passed.
-Specular Local Eye Half Angle test passed.
-Specular Light test passed.
-Specular Material test passed.
-Specular Normal test passed.
-Spot Positioning test passed.
-Spot Exponent and Positioning test passed.
-Spot Exponent and Direction test passed.
-Fog Exponential test passed.
-Fog Linear test passed.
-Texture Decal test passed.
-Texture Border test passed.
-Mipmaps Selection test passed.
-Mipmaps Interpolation test passed.
-Display Lists test passed.
-Evaluator test passed.
-Evaluator Color test passed.
-Texture Edge Clamp test passed.
-Packed Pixels test passed.
-Texture LOD test passed.
-Rescale Normal test passed.
-Color Table test passed.
-Convolution test passed.
-Convolution Border test passed.
-Histogram test passed.
-MinMax test passed.
-MultiTexture test passed.
-
-Conform passed.
-
-----------------------------------------------------------------------
-% conform -v 2 -p 1
-
-OpenGL Conformance Test
-Version 1.2
-
-Setup Report.
- Verbose level = 2.
- Random number seed = 1.
- Path level = 1.
-
-Visual Report.
- Display ID = 35. Indirect Rendering.
- Double Buffered.
- RGBA (5, 6, 5, 0).
- Stencil (8).
- Depth (16).
- Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
- zero error epsilon = 0.000122.
- RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
- Depth buffer error epsilon = 0.000137.
- Stencil plane error epsilon = 0.00404.
- Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-Must Pass test passed.
-Divide By Zero test passed.
-Viewport Clamp test passed.
-Matrix Stack test passed.
-Matrix Stack Mixing test passed.
-Vertex Order test passed.
-Transformations test passed.
-Transformation Normal test passed.
-Viewport Transformation test passed.
-Buffer Clear test passed.
-Buffer Corners test passed.
-Buffer Color test passed.
-Color Ramp test passed.
-Mask test passed.
-Buffer Invariance test passed.
-Accumulation Buffer test passed.
-Select test passed.
-Feedback test passed.
-Scissor test passed.
-Alpha Plane Function test passed.
-Stencil Plane Clear test passed.
-Stencil Plane Corners test passed.
-Stencil Plane Operation test passed.
-Stencil Plane Function test passed.
-Depth Buffer Clear test passed.
-Depth Buffer Function test passed.
-Blend test passed.
-Dither test passed.
-LogicOp Function test does not exist for an RGB visual.
-DrawPixels test passed.
-CopyPixels test passed.
-Bitmap Rasterization test passed.
-Point Rasterization test passed.
-Anti-aliased Point test passed.
-Line Rasterization test passed.
-Line Stipple test passed.
-Anti-aliased Line test passed.
-Horizontal and Vertical Line test passed.
-Triangle Rasterization test passed.
-Triangle Tile test passed.
-Triangle Stipple test passed.
-Anti-aliased Triangles test passed.
-Quad Rasterization test passed.
-Polygon Face test passed.
-Polygon Cull test passed.
-Polygon Stipple test passed.
-Polygon Edge test passed.
-Ambient Material test passed.
-Ambient Scene test passed.
-Attenuation Position test passed.
-Diffuse Light test passed.
-Diffuse Material test passed.
-Diffuse Material Normal test passed.
-Diffuse Material Positioning test passed.
-Emissive Material test passed.
-Specular Exponent test passed.
-Specular Exponent Normal test passed.
-Specular Local Eye Half Angle test passed.
-Specular Light test passed.
-Specular Material test passed.
-Specular Normal test passed.
-Spot Positioning test passed.
-Spot Exponent and Positioning test passed.
-Spot Exponent and Direction test passed.
-Fog Exponential test passed.
-Fog Linear test passed.
-Texture Decal test passed.
-Texture Border test passed.
-Mipmaps Selection test passed.
-Mipmaps Interpolation test passed.
-Display Lists test passed.
-Evaluator test passed.
-Evaluator Color test passed.
-Texture Edge Clamp test passed.
-Packed Pixels test passed.
-Texture LOD test passed.
-Rescale Normal test passed.
-Color Table test passed.
-Convolution test passed.
-Convolution Border test passed.
-Histogram test passed.
-MinMax test passed.
-MultiTexture test passed.
-
-Conform passed.
-
-----------------------------------------------------------------------
-% conform -v 2 -p 2
-
-OpenGL Conformance Test
-Version 1.2
-
-Setup Report.
- Verbose level = 2.
- Random number seed = 1.
- Path level = 2.
-
-Visual Report.
- Display ID = 35. Indirect Rendering.
- Double Buffered.
- RGBA (5, 6, 5, 0).
- Stencil (8).
- Depth (16).
- Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
- zero error epsilon = 0.000122.
- RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
- Depth buffer error epsilon = 0.000137.
- Stencil plane error epsilon = 0.00404.
- Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-Must Pass test passed.
-Divide By Zero test passed.
-Viewport Clamp test passed.
-Matrix Stack test passed.
-Matrix Stack Mixing test passed.
-Vertex Order test passed.
-Transformations test passed.
-Transformation Normal test passed.
-Viewport Transformation test passed.
-Buffer Clear test passed.
-Buffer Corners test passed.
-Buffer Color test passed.
-Color Ramp test passed.
-Mask test passed.
-Buffer Invariance test passed.
-Accumulation Buffer test passed.
-Select test passed.
-Feedback test passed.
-Scissor test passed.
-Alpha Plane Function test passed.
-Stencil Plane Clear test passed.
-Stencil Plane Corners test passed.
-Stencil Plane Operation test passed.
-Stencil Plane Function test passed.
-Depth Buffer Clear test passed.
-Depth Buffer Function test passed.
-Blend test passed.
-Dither test passed.
-LogicOp Function test does not exist for an RGB visual.
-DrawPixels test passed.
-CopyPixels test passed.
-Bitmap Rasterization test passed.
-Point Rasterization test passed.
-Anti-aliased Point test passed.
-Line Rasterization test passed.
-Line Stipple test passed.
-Anti-aliased Line test passed.
-Horizontal and Vertical Line test passed.
-Triangle Rasterization test passed.
-Triangle Tile test passed.
-Triangle Stipple test passed.
-Anti-aliased Triangles test passed.
-Quad Rasterization test passed.
-Polygon Face test passed.
-Polygon Cull test passed.
-Polygon Stipple test passed.
-Polygon Edge test passed.
-Ambient Material test passed.
-Ambient Scene test passed.
-Attenuation Position test passed.
-Diffuse Light test passed.
-Diffuse Material test passed.
-Diffuse Material Normal test passed.
-Diffuse Material Positioning test passed.
-Emissive Material test passed.
-Specular Exponent test passed.
-Specular Exponent Normal test passed.
-Specular Local Eye Half Angle test passed.
-Specular Light test passed.
-Specular Material test passed.
-Specular Normal test passed.
-Spot Positioning test passed.
-Spot Exponent and Positioning test passed.
-Spot Exponent and Direction test passed.
-Fog Exponential test passed.
-Fog Linear test passed.
-Texture Decal test passed.
-Texture Border test passed.
-Mipmaps Selection test passed.
-Mipmaps Interpolation test passed.
-Display Lists test passed.
-Evaluator test passed.
-Evaluator Color test passed.
-Texture Edge Clamp test passed.
-Packed Pixels test passed.
-Texture LOD test passed.
-Rescale Normal test passed.
-Color Table test passed.
-Convolution test passed.
-Convolution Border test passed.
-Histogram test passed.
-MinMax test passed.
-MultiTexture test passed.
-
-Conform passed.
-
-----------------------------------------------------------------------
-% conform -v 2 -p 3
-
-OpenGL Conformance Test
-Version 1.2
-
-Setup Report.
- Verbose level = 2.
- Random number seed = 1.
- Path level = 3.
-
-Visual Report.
- Display ID = 35. Indirect Rendering.
- Double Buffered.
- RGBA (5, 6, 5, 0).
- Stencil (8).
- Depth (16).
- Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
- zero error epsilon = 0.000122.
- RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
- Depth buffer error epsilon = 0.000137.
- Stencil plane error epsilon = 0.00404.
- Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-Must Pass test passed.
-Divide By Zero test passed.
-Viewport Clamp test passed.
-Matrix Stack test passed.
-Matrix Stack Mixing test passed.
-Vertex Order test passed.
-Transformations test passed.
-Transformation Normal test passed.
-Viewport Transformation test passed.
-Buffer Clear test passed.
-Buffer Corners test passed.
-Buffer Color test passed.
-Color Ramp test passed.
-Mask test passed.
-Buffer Invariance test passed.
-Accumulation Buffer test passed.
-Select test passed.
-Feedback test passed.
-Scissor test passed.
-Alpha Plane Function test passed.
-Stencil Plane Clear test passed.
-Stencil Plane Corners test passed.
-Stencil Plane Operation test passed.
-Stencil Plane Function test passed.
-Depth Buffer Clear test passed.
-Depth Buffer Function test passed.
-Blend test passed.
-Dither test passed.
-LogicOp Function test does not exist for an RGB visual.
-DrawPixels test passed.
-CopyPixels test passed.
-Bitmap Rasterization test passed.
-Point Rasterization test passed.
-Anti-aliased Point test passed.
-Line Rasterization test passed.
-Line Stipple test passed.
-Anti-aliased Line test passed.
-Horizontal and Vertical Line test passed.
-Triangle Rasterization test passed.
-Triangle Tile test passed.
-Triangle Stipple test passed.
-Anti-aliased Triangles test passed.
-Quad Rasterization test passed.
-Polygon Face test passed.
-Polygon Cull test passed.
-Polygon Stipple test passed.
-Polygon Edge test passed.
-Ambient Material test passed.
-Ambient Scene test passed.
-Attenuation Position test passed.
-Diffuse Light test passed.
-Diffuse Material test passed.
-Diffuse Material Normal test passed.
-Diffuse Material Positioning test passed.
-Emissive Material test passed.
-Specular Exponent test passed.
-Specular Exponent Normal test passed.
-Specular Local Eye Half Angle test passed.
-Specular Light test passed.
-Specular Material test passed.
-Specular Normal test passed.
-Spot Positioning test passed.
-Spot Exponent and Positioning test passed.
-Spot Exponent and Direction test passed.
-Fog Exponential test passed.
-Fog Linear test passed.
-Texture Decal test passed.
-Texture Border test passed.
-Mipmaps Selection test passed.
-Mipmaps Interpolation test passed.
-Display Lists test passed.
-Evaluator test passed.
-Evaluator Color test passed.
-Texture Edge Clamp test passed.
-Packed Pixels test passed.
-Texture LOD test passed.
-Rescale Normal test passed.
-Color Table test passed.
-Convolution test passed.
-Convolution Border test passed.
-Histogram test passed.
-MinMax test passed.
-MultiTexture test passed.
-
-Conform passed.
-
-----------------------------------------------------------------------
-% conform -v 2 -p 4
-
-OpenGL Conformance Test
-Version 1.2
-
-Setup Report.
- Verbose level = 2.
- Random number seed = 1.
- Path level = 4.
-
-Visual Report.
- Display ID = 35. Indirect Rendering.
- Double Buffered.
- RGBA (5, 6, 5, 0).
- Stencil (8).
- Depth (16).
- Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
- zero error epsilon = 0.000122.
- RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
- Depth buffer error epsilon = 0.000137.
- Stencil plane error epsilon = 0.00404.
- Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-Must Pass test passed.
-Divide By Zero test passed.
-Viewport Clamp test passed.
-Matrix Stack test passed.
-Matrix Stack Mixing test passed.
-Vertex Order test passed.
-Transformations test passed.
-Transformation Normal test passed.
-Viewport Transformation test passed.
-Buffer Clear test passed.
-Buffer Corners test passed.
-Buffer Color test passed.
-Color Ramp test passed.
-Mask test passed.
-Buffer Invariance test passed.
-Accumulation Buffer test passed.
-Select test passed.
-Feedback test passed.
-Scissor test passed.
-Alpha Plane Function test passed.
-Stencil Plane Clear test passed.
-Stencil Plane Corners test passed.
-Stencil Plane Operation test passed.
-Stencil Plane Function test passed.
-Depth Buffer Clear test passed.
-Depth Buffer Function test passed.
-Blend test passed.
-Dither test passed.
-LogicOp Function test does not exist for an RGB visual.
-DrawPixels test passed.
-CopyPixels test passed.
-Bitmap Rasterization test passed.
-Point Rasterization test passed.
-Anti-aliased Point test passed.
-Line Rasterization test passed.
-Line Stipple test passed.
-Anti-aliased Line test passed.
-Horizontal and Vertical Line test passed.
-Triangle Rasterization test passed.
-Triangle Tile test passed.
-Triangle Stipple test passed.
-Anti-aliased Triangles test passed.
-Quad Rasterization test passed.
-Polygon Face test passed.
-Polygon Cull test passed.
-Polygon Stipple test passed.
-Polygon Edge test passed.
-Ambient Material test passed.
-Ambient Scene test passed.
-Attenuation Position test passed.
-Diffuse Light test passed.
-Diffuse Material test passed.
-Diffuse Material Normal test passed.
-Diffuse Material Positioning test passed.
-Emissive Material test passed.
-Specular Exponent test passed.
-Specular Exponent Normal test passed.
-Specular Local Eye Half Angle test passed.
-Specular Light test passed.
-Specular Material test passed.
-Specular Normal test passed.
-Spot Positioning test passed.
-Spot Exponent and Positioning test passed.
-Spot Exponent and Direction test passed.
-Fog Exponential test passed.
-Fog Linear test passed.
-Texture Decal test passed.
-Texture Border test passed.
-Mipmaps Selection test passed.
-Mipmaps Interpolation test passed.
-Display Lists test passed.
-Evaluator test passed.
-Evaluator Color test passed.
-Texture Edge Clamp test passed.
-Packed Pixels test passed.
-Texture LOD test passed.
-Rescale Normal test passed.
-Color Table test passed.
-Convolution test passed.
-Convolution Border test passed.
-Histogram test passed.
-MinMax test passed.
-MultiTexture test passed.
-
-Conform passed.
-
-
-
-GLX CONFORMANCE TEST
-====================
-
-% conformx -v 2
-
-OpenGL X Conformance Test
-Version 1.1.1
-
-Setup Report.
- Verbose level = 2.
- Random number seed = 1.
- Path inactive.
-
-Visual Report.
- Display ID = 34. Direct Rendering.
- Double Buffered.
- RGBA (8, 8, 8, 0).
- Stencil (8).
- Depth (16).
- Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
- zero error epsilon = 0.000122.
- RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122.
- Depth buffer error epsilon = 0.000137.
- Stencil plane error epsilon = 0.00404.
- Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-glReadPixels() test passed.
-Font test passed.
-
-Conformx passed.
-
-
-</pre>
-
-NOTE: conformx passes for all machine path levels (-p option).
-
-</div>
-</body>
-</html>
diff --git a/docs/conform.rst b/docs/conform.rst
new file mode 100644
index 00000000000..219d0a496b8
--- /dev/null
+++ b/docs/conform.rst
@@ -0,0 +1,675 @@
+Conformance Testing
+===================
+
+The SGI OpenGL conformance tests verify correct operation of OpenGL
+implementations. I, Brian Paul, have been given a copy of the tests for
+testing Mesa. The tests are not publicly available.
+
+This file has the latest results of testing Mesa with the OpenGL 1.2
+conformance tests. Testing with the preliminary OpenGL 1.3 tests has
+also been done. Mesa passes all the 1.3 tests.
+
+The tests were run using the software X11 device driver on 24-bpp and
+16-bpp displays.
+
+Mesa 4.0 and later pass all conformance tests at all path levels. Note
+that this says nothing about the conformance of hardware drivers based
+upon Mesa.
+
+::
+
+ COVERAGE TESTS
+ --------------
+
+ Test that all API functions accept the legal parameters and reject
+ illegal parameters. The result of each test is either pass or fail.
+
+ % covgl
+ OpenGL Coverage Test.
+ Version 1.2
+
+ covgl passed.
+
+ covgl passed at 1.1 level.
+
+ covgl passed at 1.2 level.
+
+ covgl passed for ARB_multitexture.
+
+
+ % covglu
+ OpenGL GLU Coverage Test.
+ Version 1.3
+
+ covglu passed.
+
+ covglu passed at 1.1 level.
+
+
+ % covglx
+ OpenGL X Coverage Test.
+ Version 1.1.1
+
+ covglx passed.
+
+
+ % primtest -v
+ Open GL Primitives Test.
+ Version 1.2
+
+ [lots of output deleted]
+
+ 292159 Combinations.
+ primtest passed.
+
+
+
+
+ GL CONFORMANCE TEST
+ ===================
+
+ Render test images, read them back, then test for expected results.
+
+
+ ----------------------------------------------------------------------
+ % conform -v 2
+
+ OpenGL Conformance Test
+ Version 1.2
+
+ Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path inactive.
+
+ Visual Report.
+ Display ID = 35. Indirect Rendering.
+ Double Buffered.
+ RGBA (5, 6, 5, 0).
+ Stencil (8).
+ Depth (16).
+ Accumulation (16, 16, 16, 16).
+
+ Epsilon Report.
+ zero error epsilon = 0.000122.
+ RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
+ Depth buffer error epsilon = 0.000137.
+ Stencil plane error epsilon = 0.00404.
+ Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
+
+ Default State test passed.
+ Must Pass test passed.
+ Divide By Zero test passed.
+ Viewport Clamp test passed.
+ Matrix Stack test passed.
+ Matrix Stack Mixing test passed.
+ Vertex Order test passed.
+ Transformations test passed.
+ Transformation Normal test passed.
+ Viewport Transformation test passed.
+ Buffer Clear test passed.
+ Buffer Corners test passed.
+ Buffer Color test passed.
+ Color Ramp test passed.
+ Mask test passed.
+ Buffer Invariance test passed.
+ Accumulation Buffer test passed.
+ Select test passed.
+ Feedback test passed.
+ Scissor test passed.
+ Alpha Plane Function test passed.
+ Stencil Plane Clear test passed.
+ Stencil Plane Corners test passed.
+ Stencil Plane Operation test passed.
+ Stencil Plane Function test passed.
+ Depth Buffer Clear test passed.
+ Depth Buffer Function test passed.
+ Blend test passed.
+ Dither test passed.
+ LogicOp Function test does not exist for an RGB visual.
+ DrawPixels test passed.
+ CopyPixels test passed.
+ Bitmap Rasterization test passed.
+ Point Rasterization test passed.
+ Anti-aliased Point test passed.
+ Line Rasterization test passed.
+ Line Stipple test passed.
+ Anti-aliased Line test passed.
+ Horizontal and Vertical Line test passed.
+ Triangle Rasterization test passed.
+ Triangle Tile test passed.
+ Triangle Stipple test passed.
+ Anti-aliased Triangles test passed.
+ Quad Rasterization test passed.
+ Polygon Face test passed.
+ Polygon Cull test passed.
+ Polygon Stipple test passed.
+ Polygon Edge test passed.
+ Ambient Material test passed.
+ Ambient Scene test passed.
+ Attenuation Position test passed.
+ Diffuse Light test passed.
+ Diffuse Material test passed.
+ Diffuse Material Normal test passed.
+ Diffuse Material Positioning test passed.
+ Emissive Material test passed.
+ Specular Exponent test passed.
+ Specular Exponent Normal test passed.
+ Specular Local Eye Half Angle test passed.
+ Specular Light test passed.
+ Specular Material test passed.
+ Specular Normal test passed.
+ Spot Positioning test passed.
+ Spot Exponent and Positioning test passed.
+ Spot Exponent and Direction test passed.
+ Fog Exponential test passed.
+ Fog Linear test passed.
+ Texture Decal test passed.
+ Texture Border test passed.
+ Mipmaps Selection test passed.
+ Mipmaps Interpolation test passed.
+ Display Lists test passed.
+ Evaluator test passed.
+ Evaluator Color test passed.
+ Texture Edge Clamp test passed.
+ Packed Pixels test passed.
+ Texture LOD test passed.
+ Rescale Normal test passed.
+ Color Table test passed.
+ Convolution test passed.
+ Convolution Border test passed.
+ Histogram test passed.
+ MinMax test passed.
+ MultiTexture test passed.
+
+ Conform passed.
+
+ ----------------------------------------------------------------------
+ % conform -v 2 -p 1
+
+ OpenGL Conformance Test
+ Version 1.2
+
+ Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path level = 1.
+
+ Visual Report.
+ Display ID = 35. Indirect Rendering.
+ Double Buffered.
+ RGBA (5, 6, 5, 0).
+ Stencil (8).
+ Depth (16).
+ Accumulation (16, 16, 16, 16).
+
+ Epsilon Report.
+ zero error epsilon = 0.000122.
+ RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
+ Depth buffer error epsilon = 0.000137.
+ Stencil plane error epsilon = 0.00404.
+ Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
+
+ Default State test passed.
+ Must Pass test passed.
+ Divide By Zero test passed.
+ Viewport Clamp test passed.
+ Matrix Stack test passed.
+ Matrix Stack Mixing test passed.
+ Vertex Order test passed.
+ Transformations test passed.
+ Transformation Normal test passed.
+ Viewport Transformation test passed.
+ Buffer Clear test passed.
+ Buffer Corners test passed.
+ Buffer Color test passed.
+ Color Ramp test passed.
+ Mask test passed.
+ Buffer Invariance test passed.
+ Accumulation Buffer test passed.
+ Select test passed.
+ Feedback test passed.
+ Scissor test passed.
+ Alpha Plane Function test passed.
+ Stencil Plane Clear test passed.
+ Stencil Plane Corners test passed.
+ Stencil Plane Operation test passed.
+ Stencil Plane Function test passed.
+ Depth Buffer Clear test passed.
+ Depth Buffer Function test passed.
+ Blend test passed.
+ Dither test passed.
+ LogicOp Function test does not exist for an RGB visual.
+ DrawPixels test passed.
+ CopyPixels test passed.
+ Bitmap Rasterization test passed.
+ Point Rasterization test passed.
+ Anti-aliased Point test passed.
+ Line Rasterization test passed.
+ Line Stipple test passed.
+ Anti-aliased Line test passed.
+ Horizontal and Vertical Line test passed.
+ Triangle Rasterization test passed.
+ Triangle Tile test passed.
+ Triangle Stipple test passed.
+ Anti-aliased Triangles test passed.
+ Quad Rasterization test passed.
+ Polygon Face test passed.
+ Polygon Cull test passed.
+ Polygon Stipple test passed.
+ Polygon Edge test passed.
+ Ambient Material test passed.
+ Ambient Scene test passed.
+ Attenuation Position test passed.
+ Diffuse Light test passed.
+ Diffuse Material test passed.
+ Diffuse Material Normal test passed.
+ Diffuse Material Positioning test passed.
+ Emissive Material test passed.
+ Specular Exponent test passed.
+ Specular Exponent Normal test passed.
+ Specular Local Eye Half Angle test passed.
+ Specular Light test passed.
+ Specular Material test passed.
+ Specular Normal test passed.
+ Spot Positioning test passed.
+ Spot Exponent and Positioning test passed.
+ Spot Exponent and Direction test passed.
+ Fog Exponential test passed.
+ Fog Linear test passed.
+ Texture Decal test passed.
+ Texture Border test passed.
+ Mipmaps Selection test passed.
+ Mipmaps Interpolation test passed.
+ Display Lists test passed.
+ Evaluator test passed.
+ Evaluator Color test passed.
+ Texture Edge Clamp test passed.
+ Packed Pixels test passed.
+ Texture LOD test passed.
+ Rescale Normal test passed.
+ Color Table test passed.
+ Convolution test passed.
+ Convolution Border test passed.
+ Histogram test passed.
+ MinMax test passed.
+ MultiTexture test passed.
+
+ Conform passed.
+
+ ----------------------------------------------------------------------
+ % conform -v 2 -p 2
+
+ OpenGL Conformance Test
+ Version 1.2
+
+ Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path level = 2.
+
+ Visual Report.
+ Display ID = 35. Indirect Rendering.
+ Double Buffered.
+ RGBA (5, 6, 5, 0).
+ Stencil (8).
+ Depth (16).
+ Accumulation (16, 16, 16, 16).
+
+ Epsilon Report.
+ zero error epsilon = 0.000122.
+ RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
+ Depth buffer error epsilon = 0.000137.
+ Stencil plane error epsilon = 0.00404.
+ Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
+
+ Default State test passed.
+ Must Pass test passed.
+ Divide By Zero test passed.
+ Viewport Clamp test passed.
+ Matrix Stack test passed.
+ Matrix Stack Mixing test passed.
+ Vertex Order test passed.
+ Transformations test passed.
+ Transformation Normal test passed.
+ Viewport Transformation test passed.
+ Buffer Clear test passed.
+ Buffer Corners test passed.
+ Buffer Color test passed.
+ Color Ramp test passed.
+ Mask test passed.
+ Buffer Invariance test passed.
+ Accumulation Buffer test passed.
+ Select test passed.
+ Feedback test passed.
+ Scissor test passed.
+ Alpha Plane Function test passed.
+ Stencil Plane Clear test passed.
+ Stencil Plane Corners test passed.
+ Stencil Plane Operation test passed.
+ Stencil Plane Function test passed.
+ Depth Buffer Clear test passed.
+ Depth Buffer Function test passed.
+ Blend test passed.
+ Dither test passed.
+ LogicOp Function test does not exist for an RGB visual.
+ DrawPixels test passed.
+ CopyPixels test passed.
+ Bitmap Rasterization test passed.
+ Point Rasterization test passed.
+ Anti-aliased Point test passed.
+ Line Rasterization test passed.
+ Line Stipple test passed.
+ Anti-aliased Line test passed.
+ Horizontal and Vertical Line test passed.
+ Triangle Rasterization test passed.
+ Triangle Tile test passed.
+ Triangle Stipple test passed.
+ Anti-aliased Triangles test passed.
+ Quad Rasterization test passed.
+ Polygon Face test passed.
+ Polygon Cull test passed.
+ Polygon Stipple test passed.
+ Polygon Edge test passed.
+ Ambient Material test passed.
+ Ambient Scene test passed.
+ Attenuation Position test passed.
+ Diffuse Light test passed.
+ Diffuse Material test passed.
+ Diffuse Material Normal test passed.
+ Diffuse Material Positioning test passed.
+ Emissive Material test passed.
+ Specular Exponent test passed.
+ Specular Exponent Normal test passed.
+ Specular Local Eye Half Angle test passed.
+ Specular Light test passed.
+ Specular Material test passed.
+ Specular Normal test passed.
+ Spot Positioning test passed.
+ Spot Exponent and Positioning test passed.
+ Spot Exponent and Direction test passed.
+ Fog Exponential test passed.
+ Fog Linear test passed.
+ Texture Decal test passed.
+ Texture Border test passed.
+ Mipmaps Selection test passed.
+ Mipmaps Interpolation test passed.
+ Display Lists test passed.
+ Evaluator test passed.
+ Evaluator Color test passed.
+ Texture Edge Clamp test passed.
+ Packed Pixels test passed.
+ Texture LOD test passed.
+ Rescale Normal test passed.
+ Color Table test passed.
+ Convolution test passed.
+ Convolution Border test passed.
+ Histogram test passed.
+ MinMax test passed.
+ MultiTexture test passed.
+
+ Conform passed.
+
+ ----------------------------------------------------------------------
+ % conform -v 2 -p 3
+
+ OpenGL Conformance Test
+ Version 1.2
+
+ Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path level = 3.
+
+ Visual Report.
+ Display ID = 35. Indirect Rendering.
+ Double Buffered.
+ RGBA (5, 6, 5, 0).
+ Stencil (8).
+ Depth (16).
+ Accumulation (16, 16, 16, 16).
+
+ Epsilon Report.
+ zero error epsilon = 0.000122.
+ RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
+ Depth buffer error epsilon = 0.000137.
+ Stencil plane error epsilon = 0.00404.
+ Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
+
+ Default State test passed.
+ Must Pass test passed.
+ Divide By Zero test passed.
+ Viewport Clamp test passed.
+ Matrix Stack test passed.
+ Matrix Stack Mixing test passed.
+ Vertex Order test passed.
+ Transformations test passed.
+ Transformation Normal test passed.
+ Viewport Transformation test passed.
+ Buffer Clear test passed.
+ Buffer Corners test passed.
+ Buffer Color test passed.
+ Color Ramp test passed.
+ Mask test passed.
+ Buffer Invariance test passed.
+ Accumulation Buffer test passed.
+ Select test passed.
+ Feedback test passed.
+ Scissor test passed.
+ Alpha Plane Function test passed.
+ Stencil Plane Clear test passed.
+ Stencil Plane Corners test passed.
+ Stencil Plane Operation test passed.
+ Stencil Plane Function test passed.
+ Depth Buffer Clear test passed.
+ Depth Buffer Function test passed.
+ Blend test passed.
+ Dither test passed.
+ LogicOp Function test does not exist for an RGB visual.
+ DrawPixels test passed.
+ CopyPixels test passed.
+ Bitmap Rasterization test passed.
+ Point Rasterization test passed.
+ Anti-aliased Point test passed.
+ Line Rasterization test passed.
+ Line Stipple test passed.
+ Anti-aliased Line test passed.
+ Horizontal and Vertical Line test passed.
+ Triangle Rasterization test passed.
+ Triangle Tile test passed.
+ Triangle Stipple test passed.
+ Anti-aliased Triangles test passed.
+ Quad Rasterization test passed.
+ Polygon Face test passed.
+ Polygon Cull test passed.
+ Polygon Stipple test passed.
+ Polygon Edge test passed.
+ Ambient Material test passed.
+ Ambient Scene test passed.
+ Attenuation Position test passed.
+ Diffuse Light test passed.
+ Diffuse Material test passed.
+ Diffuse Material Normal test passed.
+ Diffuse Material Positioning test passed.
+ Emissive Material test passed.
+ Specular Exponent test passed.
+ Specular Exponent Normal test passed.
+ Specular Local Eye Half Angle test passed.
+ Specular Light test passed.
+ Specular Material test passed.
+ Specular Normal test passed.
+ Spot Positioning test passed.
+ Spot Exponent and Positioning test passed.
+ Spot Exponent and Direction test passed.
+ Fog Exponential test passed.
+ Fog Linear test passed.
+ Texture Decal test passed.
+ Texture Border test passed.
+ Mipmaps Selection test passed.
+ Mipmaps Interpolation test passed.
+ Display Lists test passed.
+ Evaluator test passed.
+ Evaluator Color test passed.
+ Texture Edge Clamp test passed.
+ Packed Pixels test passed.
+ Texture LOD test passed.
+ Rescale Normal test passed.
+ Color Table test passed.
+ Convolution test passed.
+ Convolution Border test passed.
+ Histogram test passed.
+ MinMax test passed.
+ MultiTexture test passed.
+
+ Conform passed.
+
+ ----------------------------------------------------------------------
+ % conform -v 2 -p 4
+
+ OpenGL Conformance Test
+ Version 1.2
+
+ Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path level = 4.
+
+ Visual Report.
+ Display ID = 35. Indirect Rendering.
+ Double Buffered.
+ RGBA (5, 6, 5, 0).
+ Stencil (8).
+ Depth (16).
+ Accumulation (16, 16, 16, 16).
+
+ Epsilon Report.
+ zero error epsilon = 0.000122.
+ RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
+ Depth buffer error epsilon = 0.000137.
+ Stencil plane error epsilon = 0.00404.
+ Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
+
+ Default State test passed.
+ Must Pass test passed.
+ Divide By Zero test passed.
+ Viewport Clamp test passed.
+ Matrix Stack test passed.
+ Matrix Stack Mixing test passed.
+ Vertex Order test passed.
+ Transformations test passed.
+ Transformation Normal test passed.
+ Viewport Transformation test passed.
+ Buffer Clear test passed.
+ Buffer Corners test passed.
+ Buffer Color test passed.
+ Color Ramp test passed.
+ Mask test passed.
+ Buffer Invariance test passed.
+ Accumulation Buffer test passed.
+ Select test passed.
+ Feedback test passed.
+ Scissor test passed.
+ Alpha Plane Function test passed.
+ Stencil Plane Clear test passed.
+ Stencil Plane Corners test passed.
+ Stencil Plane Operation test passed.
+ Stencil Plane Function test passed.
+ Depth Buffer Clear test passed.
+ Depth Buffer Function test passed.
+ Blend test passed.
+ Dither test passed.
+ LogicOp Function test does not exist for an RGB visual.
+ DrawPixels test passed.
+ CopyPixels test passed.
+ Bitmap Rasterization test passed.
+ Point Rasterization test passed.
+ Anti-aliased Point test passed.
+ Line Rasterization test passed.
+ Line Stipple test passed.
+ Anti-aliased Line test passed.
+ Horizontal and Vertical Line test passed.
+ Triangle Rasterization test passed.
+ Triangle Tile test passed.
+ Triangle Stipple test passed.
+ Anti-aliased Triangles test passed.
+ Quad Rasterization test passed.
+ Polygon Face test passed.
+ Polygon Cull test passed.
+ Polygon Stipple test passed.
+ Polygon Edge test passed.
+ Ambient Material test passed.
+ Ambient Scene test passed.
+ Attenuation Position test passed.
+ Diffuse Light test passed.
+ Diffuse Material test passed.
+ Diffuse Material Normal test passed.
+ Diffuse Material Positioning test passed.
+ Emissive Material test passed.
+ Specular Exponent test passed.
+ Specular Exponent Normal test passed.
+ Specular Local Eye Half Angle test passed.
+ Specular Light test passed.
+ Specular Material test passed.
+ Specular Normal test passed.
+ Spot Positioning test passed.
+ Spot Exponent and Positioning test passed.
+ Spot Exponent and Direction test passed.
+ Fog Exponential test passed.
+ Fog Linear test passed.
+ Texture Decal test passed.
+ Texture Border test passed.
+ Mipmaps Selection test passed.
+ Mipmaps Interpolation test passed.
+ Display Lists test passed.
+ Evaluator test passed.
+ Evaluator Color test passed.
+ Texture Edge Clamp test passed.
+ Packed Pixels test passed.
+ Texture LOD test passed.
+ Rescale Normal test passed.
+ Color Table test passed.
+ Convolution test passed.
+ Convolution Border test passed.
+ Histogram test passed.
+ MinMax test passed.
+ MultiTexture test passed.
+
+ Conform passed.
+
+
+
+ GLX CONFORMANCE TEST
+ ====================
+
+ % conformx -v 2
+
+ OpenGL X Conformance Test
+ Version 1.1.1
+
+ Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path inactive.
+
+ Visual Report.
+ Display ID = 34. Direct Rendering.
+ Double Buffered.
+ RGBA (8, 8, 8, 0).
+ Stencil (8).
+ Depth (16).
+ Accumulation (16, 16, 16, 16).
+
+ Epsilon Report.
+ zero error epsilon = 0.000122.
+ RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122.
+ Depth buffer error epsilon = 0.000137.
+ Stencil plane error epsilon = 0.00404.
+ Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
+
+ Default State test passed.
+ glReadPixels() test passed.
+ Font test passed.
+
+ Conformx passed.
+
+NOTE: conformx passes for all machine path levels (-p option).
diff --git a/docs/contents.html b/docs/contents.html
deleted file mode 100644
index 10499931928..00000000000
--- a/docs/contents.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Contents</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-
- <!--Override a few values from the style sheet: -->
- <style type="text/css">
- <!--
- body {
- background-color: #cccccc;
- color: black;
- }
- h2 {
- font-size: inherit;
- font-weight: bold;
- }
- a:link {
- color: #000;
- }
- a:visited {
- color: #000;
- }
- -->
- </style>
-</head>
-<body>
-
-<h2>Documentation</h2>
-<ul>
-<li><a href="intro.html" target="_parent">Introduction</a>
-<li><a href="index.html" target="_parent">News</a>
-<li><a href="developers.html" target="_parent">Developers</a>
-<li><a href="systems.html" target="_parent">Platforms and Drivers</a>
-<li><a href="license.html" target="_parent">License and Copyright</a>
-<li><a href="faq.html" target="_parent">Frequently Asked Questions</a>
-<li><a href="relnotes.html" target="_parent">Release Notes</a>
-<li><a href="thanks.html" target="_parent">Acknowledgements</a>
-<li><a href="conform.html" target="_parent">Conformance Testing</a>
-</ul>
-
-<h2>Download and Install</h2>
-<ul>
-<li><a href="download.html" target="_parent">Downloading and Unpacking</a>
-<li><a href="install.html" target="_parent">Compiling and Installing</a>
- <ul>
- <li><a href="meson.html" target="_parent">Meson</a></li>
- </ul>
-</li>
-<li><a href="precompiled.html" target="_parent">Precompiled Libraries</a>
-</ul>
-
-<h2>Need help?</h2>
-<ul>
-<li><a href="lists.html" target="_parent">Mailing Lists</a>
-<li><a href="bugs.html" target="_parent">Report a bug</a>
-<li><a href="webmaster.html" target="_parent">Webmaster</a>
-<li><a href="https://dri.freedesktop.org/" target="_parent">Mesa/DRI Wiki</a>
-</ul>
-
-<h2>User Topics</h2>
-<ul>
-<li><a href="shading.html" target="_parent">Shading Language</a>
-<li><a href="egl.html" target="_parent">EGL</a>
-<li><a href="opengles.html" target="_parent">OpenGL ES</a>
-<li><a href="envvars.html" target="_parent">Environment Variables</a>
-<li><a href="osmesa.html" target="_parent">Off-screen Rendering</a>
-<li><a href="debugging.html" target="_parent">Debugging Tips</a>
-<li><a href="perf.html" target="_parent">Performance Tips</a>
-<li><a href="extensions.html" target="_parent">Mesa Extensions</a>
-<li><a href="llvmpipe.html" target="_parent">Gallium LLVMpipe Driver</a>
-<li><a href="vmware-guest.html" target="_parent">VMware SVGA3D Guest Driver</a>
-<li><a href="postprocess.html" target="_parent">Gallium Post-processing</a>
-<li><a href="application-issues.html" target="_parent">Application Issues</a>
-<li><a href="viewperf.html" target="_parent">Viewperf Issues</a>
-</ul>
-
-<h2>Developer Topics</h2>
-<ul>
-<li><a href="repository.html" target="_parent">Source Code Repository</a>
-<li><a href="sourcetree.html" target="_parent">Source Code Tree</a>
-<li><a href="utilities.html" target="_parent">Utilities</a>
-<li><a href="helpwanted.html" target="_parent">Help Wanted</a>
-<li><a href="devinfo.html" target="_parent">Development Notes</a>
-<li><a href="codingstyle.html" target="_parent">Coding Style</a>
-<li><a href="submittingpatches.html" target="_parent">Submitting Patches</a>
-<li><a href="releasing.html" target="_parent">Releasing Process</a>
-<li><a href="release-calendar.html" target="_parent">Release Calendar</a>
-<li><a href="sourcedocs.html" target="_parent">Source Documentation</a>
-<li><a href="dispatch.html" target="_parent">GL Dispatch</a>
-</ul>
-
-<h2>Links</h2>
-<ul>
-<li><a href="https://www.opengl.org" target="_parent">OpenGL Website</a>
-<li><a href="https://dri.freedesktop.org" target="_parent">DRI Website</a>
-<li><a href="https://www.freedesktop.org" target="_parent">freedesktop.org</a>
-<li><a href="https://planet.freedesktop.org" target="_parent">Developer Blogs</a>
-</ul>
-
-<h2>Hosted by:</h2>
-<dl>
-<dd><a href="https://www.freedesktop.org" target="_parent">freedesktop.org</a>
-</dl>
-
-</body>
-</html>
diff --git a/docs/contents.rst b/docs/contents.rst
new file mode 100644
index 00000000000..6db72c43a72
--- /dev/null
+++ b/docs/contents.rst
@@ -0,0 +1,86 @@
+.. toctree::
+ :maxdepth: 1
+ :caption: Documentation
+ :hidden:
+
+ intro
+ self
+ developers
+ systems
+ license
+ faq
+ relnotes
+ thanks
+ conform
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Download and Install
+ :hidden:
+
+ download
+ install
+ precompiled
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Need help?
+ :hidden:
+
+ lists
+ bugs
+ webmaster
+ Mesa/DRI Wiki <https://dri.freedesktop.org/>
+
+.. toctree::
+ :maxdepth: 1
+ :caption: User Topics
+ :hidden:
+
+ shading
+ egl
+ opengles
+ envvars
+ osmesa
+ debugging
+ perf
+ extensions
+ llvmpipe
+ vmware-guest
+ postprocess
+ application-issues
+ viewperf
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Developer Topics
+ :hidden:
+
+ repository
+ sourcetree
+ utilities
+ helpwanted
+ devinfo
+ codingstyle
+ submittingpatches
+ releasing
+ release-calendar
+ sourcedocs
+ dispatch
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Links
+ :hidden:
+
+ OpenGL Website <https://www.opengl.org>
+ DRI Website <https://dri.freedesktop.org>
+ freedesktop.org <https://www.freedesktop.org>
+ Developer Blogs <https://planet.freedesktop.org>
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Hosted by:
+ :hidden:
+
+ freedesktop.org <https://planet.freedesktop.org>
diff --git a/docs/debugging.html b/docs/debugging.html
deleted file mode 100644
index c6f69fe162d..00000000000
--- a/docs/debugging.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Debugging Tips</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Debugging Tips</h1>
-
-<p>
- Normally Mesa (and OpenGL) records but does not notify the user of
- errors. It is up to the application to call
- <code>glGetError</code> to check for errors. Mesa supports an
- environment variable, <code>MESA_DEBUG</code>, to help with debugging. If
- <code>MESA_DEBUG</code> is defined, a message will be printed to stdout
- whenever an error occurs.
-</p>
-
-<p>
- More extensive error checking is done in DEBUG builds
- (<code>--buildtype debug</code> for meson, <code>build=debug</code> for scons).
-</p>
-<p>
- In your debugger you can set a breakpoint in <code>_mesa_error()</code> to trap
- Mesa errors.
-</p>
-<p>
- There is a display list printing/debugging facility. See the end of
- <code>src/dlist.c</code> for details.
-</p>
-
-</div>
-</body>
-</html>
diff --git a/docs/debugging.rst b/docs/debugging.rst
new file mode 100644
index 00000000000..1e90c52a9cf
--- /dev/null
+++ b/docs/debugging.rst
@@ -0,0 +1,17 @@
+Debugging Tips
+==============
+
+Normally Mesa (and OpenGL) records but does not notify the user of
+errors. It is up to the application to call ``glGetError`` to check for
+errors. Mesa supports an environment variable, ``MESA_DEBUG``, to help
+with debugging. If ``MESA_DEBUG`` is defined, a message will be printed
+to stdout whenever an error occurs.
+
+More extensive error checking is done in DEBUG builds
+(``--buildtype debug`` for meson, ``build=debug`` for scons).
+
+In your debugger you can set a breakpoint in ``_mesa_error()`` to trap
+Mesa errors.
+
+There is a display list printing/debugging facility. See the end of
+``src/dlist.c`` for details.
diff --git a/docs/developers.html b/docs/developers.html
deleted file mode 100644
index 52cec2e3ba2..00000000000
--- a/docs/developers.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Developers</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Developers</h1>
-
-<p>
-Both professional and volunteer developers contribute to Mesa.
-</p>
-<p>
-<a href="https://www.vmware.com/">VMware</a>
-employs several of the main Mesa developers including Brian Paul
-and Keith Whitwell.
-</p>
-
-<p>
-In the past, Tungsten Graphics contracts implemented many Mesa features
-including:
-</p>
-<ul>
-<li>DRI drivers for Intel i965, i945, i915 and other chips
-<li>Advanced memory manager and framebuffer object support
-<li>Shading language compiler and OpenGL 2.0 support
-<li>MiniGLX environment
-</ul>
-
-<p>
-Other companies including
-<a href="https://01.org/linuxgraphics">Intel</a>
-and RedHat also actively contribute to the project.
-Intel has recently contributed the new GLSL compiler in Mesa 7.9.
-</p>
-
-<p>
-<a href="https://www.lunarg.com/">LunarG</a> can be contacted
-for custom Mesa / 3D graphics development.
-</p>
-
-<p>
-Volunteers have made significant contributions to all parts of Mesa, including
-complete device drivers.
-</p>
-
-</div>
-</body>
-</html>
diff --git a/docs/developers.rst b/docs/developers.rst
new file mode 100644
index 00000000000..2cf68dfa21d
--- /dev/null
+++ b/docs/developers.rst
@@ -0,0 +1,25 @@
+Developers
+==========
+
+Both professional and volunteer developers contribute to Mesa.
+
+`VMware <https://www.vmware.com/>`__ employs several of the main Mesa
+developers including Brian Paul and Keith Whitwell.
+
+In the past, Tungsten Graphics contracts implemented many Mesa features
+including:
+
+- DRI drivers for Intel i965, i945, i915 and other chips
+- Advanced memory manager and framebuffer object support
+- Shading language compiler and OpenGL 2.0 support
+- MiniGLX environment
+
+Other companies including `Intel <https://01.org/linuxgraphics>`__ and
+RedHat also actively contribute to the project. Intel has recently
+contributed the new GLSL compiler in Mesa 7.9.
+
+`LunarG <https://www.lunarg.com/>`__ can be contacted for custom Mesa /
+3D graphics development.
+
+Volunteers have made significant contributions to all parts of Mesa,
+including complete device drivers.
diff --git a/docs/devinfo.html b/docs/devinfo.html
deleted file mode 100644
index e1f290a6fa1..00000000000
--- a/docs/devinfo.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Development Notes</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Development Notes</h1>
-
-
-<ul>
-<li><a href="#extensions">Adding Extensions</a>
-</ul>
-
-<h2 id="extensions">Adding Extensions</h2>
-
-<p>
-To add a new GL extension to Mesa you have to do at least the following.
-</p>
-
-<ul>
-<li>
- If <code>glext.h</code> doesn't define the extension, edit
- <code>include/GL/gl.h</code> and add code like this:
- <pre>
- #ifndef GL_EXT_the_extension_name
- #define GL_EXT_the_extension_name 1
- /* declare the new enum tokens */
- /* prototype the new functions */
- /* TYPEDEFS for the new functions */
- #endif
- </pre>
-</li>
-<li>
- In the <code>src/mapi/glapi/gen/</code> directory, add the new extension
- functions and enums to the <code>gl_API.xml</code> file.
- Then, a bunch of source files must be regenerated by executing the
- corresponding Python scripts.
-</li>
-<li>
- Add a new entry to the <code>gl_extensions</code> struct in
- <code>mtypes.h</code> if the extension requires driver capabilities not
- already exposed by another extension.
-</li>
-<li>
- Add a new entry to the <code>src/mesa/main/extensions_table.h</code> file.
-</li>
-<li>
- From this point, the best way to proceed is to find another extension,
- similar to the new one, that's already implemented in Mesa and use it
- as an example.
-</li>
-<li>
- If the new extension adds new GL state, the functions in
- <code>get.c</code>, <code>enable.c</code> and <code>attrib.c</code>
- will most likely require new code.
-</li>
-<li>
- To determine if the new extension is active in the current context,
- use the auto-generated <code>_mesa_has_##name_str()</code> function
- defined in <code>src/mesa/main/extensions.h</code>.
-</li>
-<li>
- The dispatch tests <code>check_table.cpp</code> and
- <code>dispatch_sanity.cpp</code> should be updated with details about
- the new extensions functions. These tests are run using
- <code>meson test</code>.
-</li>
-</ul>
-
-</div>
-</body>
-</html>
diff --git a/docs/devinfo.rst b/docs/devinfo.rst
new file mode 100644
index 00000000000..4e06bbf7e79
--- /dev/null
+++ b/docs/devinfo.rst
@@ -0,0 +1,44 @@
+Development Notes
+=================
+
+- `Adding Extensions <#extensions>`__
+
+.. _extensions:
+
+Adding Extensions
+-----------------
+
+To add a new GL extension to Mesa you have to do at least the following.
+
+- If ``glext.h`` doesn't define the extension, edit ``include/GL/gl.h``
+ and add code like this:
+
+ ::
+
+ #ifndef GL_EXT_the_extension_name
+ #define GL_EXT_the_extension_name 1
+ /* declare the new enum tokens */
+ /* prototype the new functions */
+ /* TYPEDEFS for the new functions */
+ #endif
+
+
+- In the ``src/mapi/glapi/gen/`` directory, add the new extension
+ functions and enums to the ``gl_API.xml`` file. Then, a bunch of
+ source files must be regenerated by executing the corresponding
+ Python scripts.
+- Add a new entry to the ``gl_extensions`` struct in ``mtypes.h`` if
+ the extension requires driver capabilities not already exposed by
+ another extension.
+- Add a new entry to the ``src/mesa/main/extensions_table.h`` file.
+- From this point, the best way to proceed is to find another
+ extension, similar to the new one, that's already implemented in Mesa
+ and use it as an example.
+- If the new extension adds new GL state, the functions in ``get.c``,
+ ``enable.c`` and ``attrib.c`` will most likely require new code.
+- To determine if the new extension is active in the current context,
+ use the auto-generated ``_mesa_has_##name_str()`` function defined in
+ ``src/mesa/main/extensions.h``.
+- The dispatch tests ``check_table.cpp`` and ``dispatch_sanity.cpp``
+ should be updated with details about the new extensions functions.
+ These tests are run using ``meson test``.
diff --git a/docs/dispatch.html b/docs/dispatch.html
deleted file mode 100644
index 34ab44dd915..00000000000
--- a/docs/dispatch.html
+++ /dev/null
@@ -1,273 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>GL Dispatch</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>GL Dispatch</h1>
-
-<p>Several factors combine to make efficient dispatch of OpenGL functions
-fairly complicated. This document attempts to explain some of the issues
-and introduce the reader to Mesa's implementation. Readers already familiar
-with the issues around GL dispatch can safely skip ahead to the <a
-href="#overview">overview of Mesa's implementation</a>.</p>
-
-<h2>1. Complexity of GL Dispatch</h2>
-
-<p>Every GL application has at least one object called a GL <em>context</em>.
-This object, which is an implicit parameter to every GL function, stores all
-of the GL related state for the application. Every texture, every buffer
-object, every enable, and much, much more is stored in the context. Since
-an application can have more than one context, the context to be used is
-selected by a window-system dependent function such as
-<code>glXMakeContextCurrent</code>.</p>
-
-<p>In environments that implement OpenGL with X-Windows using GLX, every GL
-function, including the pointers returned by <code>glXGetProcAddress</code>, are
-<em>context independent</em>. This means that no matter what context is
-currently active, the same <code>glVertex3fv</code> function is used.</p>
-
-<p>This creates the first bit of dispatch complexity. An application can
-have two GL contexts. One context is a direct rendering context where
-function calls are routed directly to a driver loaded within the
-application's address space. The other context is an indirect rendering
-context where function calls are converted to GLX protocol and sent to a
-server. The same <code>glVertex3fv</code> has to do the right thing depending
-on which context is current.</p>
-
-<p>Highly optimized drivers or GLX protocol implementations may want to
-change the behavior of GL functions depending on current state. For
-example, <code>glFogCoordf</code> may operate differently depending on whether
-or not fog is enabled.</p>
-
-<p>In multi-threaded environments, it is possible for each thread to have a
-different GL context current. This means that poor old <code>glVertex3fv</code>
-has to know which GL context is current in the thread where it is being
-called.</p>
-
-<h2 id="overview">2. Overview of Mesa's Implementation</h2>
-
-<p>Mesa uses two per-thread pointers. The first pointer stores the address
-of the context current in the thread, and the second pointer stores the
-address of the <em>dispatch table</em> associated with that context. The
-dispatch table stores pointers to functions that actually implement
-specific GL functions. Each time a new context is made current in a thread,
-these pointers a updated.</p>
-
-<p>The implementation of functions such as <code>glVertex3fv</code> becomes
-conceptually simple:</p>
-
-<ul>
-<li>Fetch the current dispatch table pointer.</li>
-<li>Fetch the pointer to the real <code>glVertex3fv</code> function from the
-table.</li>
-<li>Call the real function.</li>
-</ul>
-
-<p>This can be implemented in just a few lines of C code. The file
-<code>src/mesa/glapi/glapitemp.h</code> contains code very similar to this.</p>
-
-<figure>
-<pre>
-void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
-{
- const struct _glapi_table * const dispatch = GET_DISPATCH();
-
- (*dispatch-&gt;Vertex3f)(x, y, z);
-}
-</pre>
-<figcaption>Sample dispatch function</figcaption>
-</figure>
-
-<p>The problem with this simple implementation is the large amount of
-overhead that it adds to every GL function call.</p>
-
-<p>In a multithreaded environment, a naive implementation of
-<code>GET_DISPATCH</code> involves a call to <code>pthread_getspecific</code> or a
-similar function. Mesa provides a wrapper function called
-<code>_glapi_get_dispatch</code> that is used by default.</p>
-
-<h2>3. Optimizations</h2>
-
-<p>A number of optimizations have been made over the years to diminish the
-performance hit imposed by GL dispatch. This section describes these
-optimizations. The benefits of each optimization and the situations where
-each can or cannot be used are listed.</p>
-
-<h3>3.1. Dual dispatch table pointers</h3>
-
-<p>The vast majority of OpenGL applications use the API in a single threaded
-manner. That is, the application has only one thread that makes calls into
-the GL. In these cases, not only do the calls to
-<code>pthread_getspecific</code> hurt performance, but they are completely
-unnecessary! It is possible to detect this common case and avoid these
-calls.</p>
-
-<p>Each time a new dispatch table is set, Mesa examines and records the ID
-of the executing thread. If the same thread ID is always seen, Mesa knows
-that the application is, from OpenGL's point of view, single threaded.</p>
-
-<p>As long as an application is single threaded, Mesa stores a pointer to
-the dispatch table in a global variable called <code>_glapi_Dispatch</code>.
-The pointer is also stored in a per-thread location via
-<code>pthread_setspecific</code>. When Mesa detects that an application has
-become multithreaded, <code>NULL</code> is stored in <code>_glapi_Dispatch</code>.</p>
-
-<p>Using this simple mechanism the dispatch functions can detect the
-multithreaded case by comparing <code>_glapi_Dispatch</code> to <code>NULL</code>.
-The resulting implementation of <code>GET_DISPATCH</code> is slightly more
-complex, but it avoids the expensive <code>pthread_getspecific</code> call in
-the common case.</p>
-
-<figure>
-<pre>
-#define GET_DISPATCH() \
- (_glapi_Dispatch != NULL) \
- ? _glapi_Dispatch : pthread_getspecific(&amp;_glapi_Dispatch_key)
-</pre>
-<figcaption>Improved <code>GET_DISPATCH</code> Implementation</figcaption>
-</figure>
-
-<h3>3.2. ELF TLS</h3>
-
-<p>Starting with the 2.4.20 Linux kernel, each thread is allocated an area
-of per-thread, global storage. Variables can be put in this area using some
-extensions to GCC. By storing the dispatch table pointer in this area, the
-expensive call to <code>pthread_getspecific</code> and the test of
-<code>_glapi_Dispatch</code> can be avoided.</p>
-
-<p>The dispatch table pointer is stored in a new variable called
-<code>_glapi_tls_Dispatch</code>. A new variable name is used so that a single
-libGL can implement both interfaces. This allows the libGL to operate with
-direct rendering drivers that use either interface. Once the pointer is
-properly declared, <code>GET_DISPACH</code> becomes a simple variable
-reference.</p>
-
-<figure>
-<pre>
-extern __thread struct _glapi_table *_glapi_tls_Dispatch
- __attribute__((tls_model("initial-exec")));
-
-#define GET_DISPATCH() _glapi_tls_Dispatch
-</pre>
-<figcaption>TLS <code>GET_DISPATCH</code> Implementation</figcaption>
-</figure>
-
-<p>Use of this path is controlled by the preprocessor define
-<code>USE_ELF_TLS</code>. Any platform capable of using ELF TLS should use this
-as the default dispatch method.</p>
-
-<h3>3.3. Assembly Language Dispatch Stubs</h3>
-
-<p>Many platforms has difficulty properly optimizing the tail-call in the
-dispatch stubs. Platforms like x86 that pass parameters on the stack seem
-to have even more difficulty optimizing these routines. All of the dispatch
-routines are very short, and it is trivial to create optimal assembly
-language versions. The amount of optimization provided by using assembly
-stubs varies from platform to platform and application to application.
-However, by using the assembly stubs, many platforms can use an additional
-space optimization (see <a href="#fixedsize">below</a>).</p>
-
-<p>The biggest hurdle to creating assembly stubs is handling the various
-ways that the dispatch table pointer can be accessed. There are four
-different methods that can be used:</p>
-
-<ol>
-<li>Using <code>_glapi_Dispatch</code> directly in builds for non-multithreaded
-environments.</li>
-<li>Using <code>_glapi_Dispatch</code> and <code>_glapi_get_dispatch</code> in
-multithreaded environments.</li>
-<li>Using <code>_glapi_Dispatch</code> and <code>pthread_getspecific</code> in
-multithreaded environments.</li>
-<li>Using <code>_glapi_tls_Dispatch</code> directly in TLS enabled
-multithreaded environments.</li>
-</ol>
-
-<p>People wishing to implement assembly stubs for new platforms should focus
-on #4 if the new platform supports TLS. Otherwise, implement #2 followed by
-#3. Environments that do not support multithreading are uncommon and not
-terribly relevant.</p>
-
-<p>Selection of the dispatch table pointer access method is controlled by a
-few preprocessor defines.</p>
-
-<ul>
-<li>If <code>USE_ELF_TLS</code> is defined, method #3 is used.</li>
-<li>If <code>HAVE_PTHREAD</code> is defined, method #2 is used.</li>
-<li>If none of the preceding are defined, method #1 is used.</li>
-</ul>
-
-<p>Two different techniques are used to handle the various different cases.
-On x86 and SPARC, a macro called <code>GL_STUB</code> is used. In the preamble
-of the assembly source file different implementations of the macro are
-selected based on the defined preprocessor variables. The assembly code
-then consists of a series of invocations of the macros such as:
-
-<figure>
-<pre>
-GL_STUB(Color3fv, _gloffset_Color3fv)
-</pre>
-<figcaption>SPARC Assembly Implementation of <code>glColor3fv</code></figcaption>
-</figure>
-
-<p>The benefit of this technique is that changes to the calling pattern
-(i.e., addition of a new dispatch table pointer access method) require fewer
-changed lines in the assembly code.</p>
-
-<p>However, this technique can only be used on platforms where the function
-implementation does not change based on the parameters passed to the
-function. For example, since x86 passes all parameters on the stack, no
-additional code is needed to save and restore function parameters around a
-call to <code>pthread_getspecific</code>. Since x86-64 passes parameters in
-registers, varying amounts of code needs to be inserted around the call to
-<code>pthread_getspecific</code> to save and restore the GL function's
-parameters.</p>
-
-<p>The other technique, used by platforms like x86-64 that cannot use the
-first technique, is to insert <code>#ifdef</code> within the assembly
-implementation of each function. This makes the assembly file considerably
-larger (e.g., 29,332 lines for <code>glapi_x86-64.S</code> versus 1,155 lines for
-<code>glapi_x86.S</code>) and causes simple changes to the function
-implementation to generate many lines of diffs. Since the assembly files
-are typically generated by scripts (see <a href="#autogen">below</a>), this
-isn't a significant problem.</p>
-
-<p>Once a new assembly file is created, it must be inserted in the build
-system. There are two steps to this. The file must first be added to
-<code>src/mesa/sources</code>. That gets the file built and linked. The second
-step is to add the correct <code>#ifdef</code> magic to
-<code>src/mesa/glapi/glapi_dispatch.c</code> to prevent the C version of the
-dispatch functions from being built.</p>
-
-<h3 id="fixedsize">3.4. Fixed-Length Dispatch Stubs</h3>
-
-<p>To implement <code>glXGetProcAddress</code>, Mesa stores a table that
-associates function names with pointers to those functions. This table is
-stored in <code>src/mesa/glapi/glprocs.h</code>. For different reasons on
-different platforms, storing all of those pointers is inefficient. On most
-platforms, including all known platforms that support TLS, we can avoid this
-added overhead.</p>
-
-<p>If the assembly stubs are all the same size, the pointer need not be
-stored for every function. The location of the function can instead be
-calculated by multiplying the size of the dispatch stub by the offset of the
-function in the table. This value is then added to the address of the first
-dispatch stub.</p>
-
-<p>This path is activated by adding the correct <code>#ifdef</code> magic to
-<code>src/mesa/glapi/glapi.c</code> just before <code>glprocs.h</code> is
-included.</p>
-
-</div>
-</body>
-</html>
diff --git a/docs/dispatch.rst b/docs/dispatch.rst
new file mode 100644
index 00000000000..c7b0af37636
--- /dev/null
+++ b/docs/dispatch.rst
@@ -0,0 +1,255 @@
+GL Dispatch
+===========
+
+Several factors combine to make efficient dispatch of OpenGL functions
+fairly complicated. This document attempts to explain some of the issues
+and introduce the reader to Mesa's implementation. Readers already
+familiar with the issues around GL dispatch can safely skip ahead to the
+`overview of Mesa's implementation <#overview>`__.
+
+1. Complexity of GL Dispatch
+----------------------------
+
+Every GL application has at least one object called a GL *context*. This
+object, which is an implicit parameter to every GL function, stores all
+of the GL related state for the application. Every texture, every buffer
+object, every enable, and much, much more is stored in the context.
+Since an application can have more than one context, the context to be
+used is selected by a window-system dependent function such as
+``glXMakeContextCurrent``.
+
+In environments that implement OpenGL with X-Windows using GLX, every GL
+function, including the pointers returned by ``glXGetProcAddress``, are
+*context independent*. This means that no matter what context is
+currently active, the same ``glVertex3fv`` function is used.
+
+This creates the first bit of dispatch complexity. An application can
+have two GL contexts. One context is a direct rendering context where
+function calls are routed directly to a driver loaded within the
+application's address space. The other context is an indirect rendering
+context where function calls are converted to GLX protocol and sent to a
+server. The same ``glVertex3fv`` has to do the right thing depending on
+which context is current.
+
+Highly optimized drivers or GLX protocol implementations may want to
+change the behavior of GL functions depending on current state. For
+example, ``glFogCoordf`` may operate differently depending on whether or
+not fog is enabled.
+
+In multi-threaded environments, it is possible for each thread to have a
+different GL context current. This means that poor old ``glVertex3fv``
+has to know which GL context is current in the thread where it is being
+called.
+
+.. _overview:
+
+2. Overview of Mesa's Implementation
+------------------------------------
+
+Mesa uses two per-thread pointers. The first pointer stores the address
+of the context current in the thread, and the second pointer stores the
+address of the *dispatch table* associated with that context. The
+dispatch table stores pointers to functions that actually implement
+specific GL functions. Each time a new context is made current in a
+thread, these pointers a updated.
+
+The implementation of functions such as ``glVertex3fv`` becomes
+conceptually simple:
+
+- Fetch the current dispatch table pointer.
+- Fetch the pointer to the real ``glVertex3fv`` function from the
+ table.
+- Call the real function.
+
+This can be implemented in just a few lines of C code. The file
+``src/mesa/glapi/glapitemp.h`` contains code very similar to this.
+
+::
+
+ void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
+ {
+ const struct _glapi_table * const dispatch = GET_DISPATCH();
+
+ (*dispatch->Vertex3f)(x, y, z);
+ }
+
+Sample dispatch function
+
+The problem with this simple implementation is the large amount of
+overhead that it adds to every GL function call.
+
+In a multithreaded environment, a naive implementation of
+``GET_DISPATCH`` involves a call to ``pthread_getspecific`` or a similar
+function. Mesa provides a wrapper function called
+``_glapi_get_dispatch`` that is used by default.
+
+3. Optimizations
+----------------
+
+A number of optimizations have been made over the years to diminish the
+performance hit imposed by GL dispatch. This section describes these
+optimizations. The benefits of each optimization and the situations
+where each can or cannot be used are listed.
+
+3.1. Dual dispatch table pointers
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The vast majority of OpenGL applications use the API in a single
+threaded manner. That is, the application has only one thread that makes
+calls into the GL. In these cases, not only do the calls to
+``pthread_getspecific`` hurt performance, but they are completely
+unnecessary! It is possible to detect this common case and avoid these
+calls.
+
+Each time a new dispatch table is set, Mesa examines and records the ID
+of the executing thread. If the same thread ID is always seen, Mesa
+knows that the application is, from OpenGL's point of view, single
+threaded.
+
+As long as an application is single threaded, Mesa stores a pointer to
+the dispatch table in a global variable called ``_glapi_Dispatch``. The
+pointer is also stored in a per-thread location via
+``pthread_setspecific``. When Mesa detects that an application has
+become multithreaded, ``NULL`` is stored in ``_glapi_Dispatch``.
+
+Using this simple mechanism the dispatch functions can detect the
+multithreaded case by comparing ``_glapi_Dispatch`` to ``NULL``. The
+resulting implementation of ``GET_DISPATCH`` is slightly more complex,
+but it avoids the expensive ``pthread_getspecific`` call in the common
+case.
+
+::
+
+ #define GET_DISPATCH() \
+ (_glapi_Dispatch != NULL) \
+ ? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
+
+Improved ``GET_DISPATCH`` Implementation
+
+3.2. ELF TLS
+~~~~~~~~~~~~
+
+Starting with the 2.4.20 Linux kernel, each thread is allocated an area
+of per-thread, global storage. Variables can be put in this area using
+some extensions to GCC. By storing the dispatch table pointer in this
+area, the expensive call to ``pthread_getspecific`` and the test of
+``_glapi_Dispatch`` can be avoided.
+
+The dispatch table pointer is stored in a new variable called
+``_glapi_tls_Dispatch``. A new variable name is used so that a single
+libGL can implement both interfaces. This allows the libGL to operate
+with direct rendering drivers that use either interface. Once the
+pointer is properly declared, ``GET_DISPACH`` becomes a simple variable
+reference.
+
+::
+
+ extern __thread struct _glapi_table *_glapi_tls_Dispatch
+ __attribute__((tls_model("initial-exec")));
+
+ #define GET_DISPATCH() _glapi_tls_Dispatch
+
+TLS ``GET_DISPATCH`` Implementation
+
+Use of this path is controlled by the preprocessor define
+``USE_ELF_TLS``. Any platform capable of using ELF TLS should use this
+as the default dispatch method.
+
+3.3. Assembly Language Dispatch Stubs
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Many platforms has difficulty properly optimizing the tail-call in the
+dispatch stubs. Platforms like x86 that pass parameters on the stack
+seem to have even more difficulty optimizing these routines. All of the
+dispatch routines are very short, and it is trivial to create optimal
+assembly language versions. The amount of optimization provided by using
+assembly stubs varies from platform to platform and application to
+application. However, by using the assembly stubs, many platforms can
+use an additional space optimization (see `below <#fixedsize>`__).
+
+The biggest hurdle to creating assembly stubs is handling the various
+ways that the dispatch table pointer can be accessed. There are four
+different methods that can be used:
+
+#. Using ``_glapi_Dispatch`` directly in builds for non-multithreaded
+ environments.
+#. Using ``_glapi_Dispatch`` and ``_glapi_get_dispatch`` in
+ multithreaded environments.
+#. Using ``_glapi_Dispatch`` and ``pthread_getspecific`` in
+ multithreaded environments.
+#. Using ``_glapi_tls_Dispatch`` directly in TLS enabled multithreaded
+ environments.
+
+People wishing to implement assembly stubs for new platforms should
+focus on #4 if the new platform supports TLS. Otherwise, implement #2
+followed by #3. Environments that do not support multithreading are
+uncommon and not terribly relevant.
+
+Selection of the dispatch table pointer access method is controlled by a
+few preprocessor defines.
+
+- If ``USE_ELF_TLS`` is defined, method #3 is used.
+- If ``HAVE_PTHREAD`` is defined, method #2 is used.
+- If none of the preceding are defined, method #1 is used.
+
+Two different techniques are used to handle the various different cases.
+On x86 and SPARC, a macro called ``GL_STUB`` is used. In the preamble of
+the assembly source file different implementations of the macro are
+selected based on the defined preprocessor variables. The assembly code
+then consists of a series of invocations of the macros such as:
+
+::
+
+ GL_STUB(Color3fv, _gloffset_Color3fv)
+
+SPARC Assembly Implementation of ``glColor3fv``
+
+The benefit of this technique is that changes to the calling pattern
+(i.e., addition of a new dispatch table pointer access method) require
+fewer changed lines in the assembly code.
+
+However, this technique can only be used on platforms where the function
+implementation does not change based on the parameters passed to the
+function. For example, since x86 passes all parameters on the stack, no
+additional code is needed to save and restore function parameters around
+a call to ``pthread_getspecific``. Since x86-64 passes parameters in
+registers, varying amounts of code needs to be inserted around the call
+to ``pthread_getspecific`` to save and restore the GL function's
+parameters.
+
+The other technique, used by platforms like x86-64 that cannot use the
+first technique, is to insert ``#ifdef`` within the assembly
+implementation of each function. This makes the assembly file
+considerably larger (e.g., 29,332 lines for ``glapi_x86-64.S`` versus
+1,155 lines for ``glapi_x86.S``) and causes simple changes to the
+function implementation to generate many lines of diffs. Since the
+assembly files are typically generated by scripts (see
+`below <#autogen>`__), this isn't a significant problem.
+
+Once a new assembly file is created, it must be inserted in the build
+system. There are two steps to this. The file must first be added to
+``src/mesa/sources``. That gets the file built and linked. The second
+step is to add the correct ``#ifdef`` magic to
+``src/mesa/glapi/glapi_dispatch.c`` to prevent the C version of the
+dispatch functions from being built.
+
+.. _fixedsize:
+
+3.4. Fixed-Length Dispatch Stubs
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To implement ``glXGetProcAddress``, Mesa stores a table that associates
+function names with pointers to those functions. This table is stored in
+``src/mesa/glapi/glprocs.h``. For different reasons on different
+platforms, storing all of those pointers is inefficient. On most
+platforms, including all known platforms that support TLS, we can avoid
+this added overhead.
+
+If the assembly stubs are all the same size, the pointer need not be
+stored for every function. The location of the function can instead be
+calculated by multiplying the size of the dispatch stub by the offset of
+the function in the table. This value is then added to the address of
+the first dispatch stub.
+
+This path is activated by adding the correct ``#ifdef`` magic to
+``src/mesa/glapi/glapi.c`` just before ``glprocs.h`` is included.
diff --git a/docs/download.html b/docs/download.html
deleted file mode 100644
index 52ad51d414b..00000000000
--- a/docs/download.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Downloading and Unpacking</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Downloading and Unpacking</h1>
-
-<h2>Downloading</h2>
-
-<p>
-You can download the released versions of Mesa via
-<a href="https://mesa.freedesktop.org/archive/">HTTPS</a>
-or
-<a href="ftp://ftp.freedesktop.org/pub/mesa/">FTP</a>.
-</p>
-
-<p>
-Starting with the first release of 2017, Mesa's version scheme is
-year-based. Filenames are in the form <code>mesa-Y.N.P.tar.gz</code>, where
-<code>Y</code> is the year (two digits), <code>N</code> is an incremental number
-(starting at 0) and <code>P</code> is the patch number (0 for the first
-release, 1 for the first patch after that).
-</p>
-
-<p>
-When a new release is coming, release candidates (betas) may be found
-in the same directory, and are recognisable by the
-<code>mesa-Y.N.P-<b>rc</b>X.tar.gz</code> filename.
-</p>
-
-
-<h2>Unpacking</h2>
-
-<p>
-Mesa releases are available in two formats: <code>.tar.xz</code> and <code>.tar.gz</code>.
-</p>
-
-<p>
-To unpack the tarball:
-</p>
-<pre>
- tar xf mesa-Y.N.P.tar.xz
-</pre>
-<p>or</p>
-<pre>
- tar xf mesa-Y.N.P.tar.gz
-</pre>
-
-
-<h2>Contents</h2>
-
-<p>
-Proceed to the <a href="install.html">compilation and installation
-instructions</a>.
-</p>
-
-
-<h2>Demos, GLUT, and GLU</h2>
-
-<p>
-A package of SGI's GLU library is available
-<a href="ftp://ftp.freedesktop.org/pub/mesa/glu/">here</a>
-</p>
-
-<p>
-A package of Mark Kilgard's GLUT library is available
-<a href="ftp://ftp.freedesktop.org/pub/mesa/glut/">here</a>
-</p>
-
-<p>
-The Mesa demos collection is available
-<a href="ftp://ftp.freedesktop.org/pub/mesa/demos/">here</a>
-</p>
-
-<p>
-In the past, GLUT, GLU and the Mesa demos were released in conjunction with
-Mesa releases. But since GLUT, GLU and the demos change infrequently, they
-were split off into their own git repositories:
-
-<a href="https://gitlab.freedesktop.org/mesa/glut">GLUT</a>,
-<a href="https://gitlab.freedesktop.org/mesa/glu">GLU</a> and
-<a href="https://gitlab.freedesktop.org/mesa/demos">Demos</a>,
-</p>
-
-</div>
-</body>
-</html>
diff --git a/docs/download.rst b/docs/download.rst
new file mode 100644
index 00000000000..eb4058ce089
--- /dev/null
+++ b/docs/download.rst
@@ -0,0 +1,61 @@
+Downloading and Unpacking
+=========================
+
+Downloading
+-----------
+
+You can download the released versions of Mesa via
+`HTTPS <https://mesa.freedesktop.org/archive/>`__ or
+`FTP <ftp://ftp.freedesktop.org/pub/mesa/>`__.
+
+Starting with the first release of 2017, Mesa's version scheme is
+year-based. Filenames are in the form ``mesa-Y.N.P.tar.gz``, where ``Y``
+is the year (two digits), ``N`` is an incremental number (starting at 0)
+and ``P`` is the patch number (0 for the first release, 1 for the first
+patch after that).
+
+When a new release is coming, release candidates (betas) may be found in
+the same directory, and are recognisable by the
+``mesa-Y.N.P-rcX.tar.gz`` filename.
+
+Unpacking
+---------
+
+Mesa releases are available in two formats: ``.tar.xz`` and ``.tar.gz``.
+
+To unpack the tarball:
+
+::
+
+ tar xf mesa-Y.N.P.tar.xz
+
+or
+
+::
+
+ tar xf mesa-Y.N.P.tar.gz
+
+Contents
+--------
+
+Proceed to the `compilation and installation
+instructions <install.html>`__.
+
+Demos, GLUT, and GLU
+--------------------
+
+A package of SGI's GLU library is available
+`here <ftp://ftp.freedesktop.org/pub/mesa/glu/>`__
+
+A package of Mark Kilgard's GLUT library is available
+`here <ftp://ftp.freedesktop.org/pub/mesa/glut/>`__
+
+The Mesa demos collection is available
+`here <ftp://ftp.freedesktop.org/pub/mesa/demos/>`__
+
+In the past, GLUT, GLU and the Mesa demos were released in conjunction
+with Mesa releases. But since GLUT, GLU and the demos change
+infrequently, they were split off into their own git repositories:
+`GLUT <https://gitlab.freedesktop.org/mesa/glut>`__,
+`GLU <https://gitlab.freedesktop.org/mesa/glu>`__ and
+`Demos <https://gitlab.freedesktop.org/mesa/demos>`__,
diff --git a/docs/egl.html b/docs/egl.html
deleted file mode 100644
index 6f4028f756a..00000000000
--- a/docs/egl.html
+++ /dev/null
@@ -1,252 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>EGL</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>EGL</h1>
-
-<p>The current version of EGL in Mesa implements EGL 1.4. More information
-about EGL can be found at
-<a href="https://www.khronos.org/egl/">
-https://www.khronos.org/egl/</a>.</p>
-
-<p>The Mesa's implementation of EGL uses a driver architecture. The main
-library (<code>libEGL</code>) is window system neutral. It provides the EGL
-API entry points and helper functions for use by the drivers. Drivers are
-dynamically loaded by the main library and most of the EGL API calls are
-directly dispatched to the drivers.</p>
-
-<p>The driver in use decides the window system to support.</p>
-
-<h2>Build EGL</h2>
-
-<ol>
-<li>
-<p>Configure your build with the desired client APIs and enable
-the driver for your hardware. For example:</p>
-
-<pre>
-$ meson configure \
- -D egl=true \
- -D gles1=true \
- -D gles2=true \
- -D dri-drivers=... \
- -D gallium-drivers=...
-</pre>
-
-<p>The main library and OpenGL is enabled by default. The first two options
-above enables <a href="opengles.html">OpenGL ES 1.x and 2.x</a>. The last two
-options enables the listed classic and Gallium drivers respectively.</p>
-
-</li>
-
-<li>Build and install Mesa as usual.</li>
-</ol>
-
-<p>In the given example, it will build and install <code>libEGL</code>,
-<code>libGL</code>, <code>libGLESv1_CM</code>, <code>libGLESv2</code>, and one
-or more EGL drivers.</p>
-
-<h3>Configure Options</h3>
-
-<p>There are several options that control the build of EGL at configuration
-time</p>
-
-<dl>
-<dt><code>-D egl=true</code></dt>
-<dd>
-
-<p>By default, EGL is enabled. When disabled, the main library and the drivers
-will not be built.</p>
-
-</dd>
-
-<dt><code>-D platforms=...</code></dt>
-<dd>
-
-<p>List the platforms (window systems) to support. Its argument is a comma
-separated string such as <code>-D platforms=x11,drm</code>. It decides
-the platforms a driver may support. The first listed platform is also used by
-the main library to decide the native platform.</p>
-
-<p>The available platforms are <code>x11</code>, <code>drm</code>,
-<code>wayland</code>, <code>surfaceless</code>, <code>android</code>,
-and <code>haiku</code>.
-The <code>android</code> platform can either be built as a system
-component, part of AOSP, using <code>Android.mk</code> files, or
-cross-compiled using appropriate options.
-Unless for special needs, the build system should
-select the right platforms automatically.</p>
-
-</dd>
-
-<dt><code>-D gles1=true</code> and <code>-D gles2=true</code></dt>
-<dd>
-
-<p>These options enable OpenGL ES support in OpenGL. The result is one big
-internal library that supports multiple APIs.</p>
-
-</dd>
-
-<dt><code>-D shared-glapi=true</code></dt>
-<dd>
-
-<p>By default, <code>libGL</code> has its own copy of <code>libglapi</code>.
-This options makes <code>libGL</code> use the shared <code>libglapi</code>. This
-is required if applications mix OpenGL and OpenGL ES.</p>
-
-</dd>
-
-</dl>
-
-<h2>Use EGL</h2>
-
-<h3>Demos</h3>
-
-<p>There are demos for the client APIs supported by EGL. They can be found in
-mesa/demos repository.</p>
-
-<h3>Environment Variables</h3>
-
-<p>There are several environment variables that control the behavior of EGL at
-runtime</p>
-
-<dl>
-<dt><code>EGL_PLATFORM</code></dt>
-<dd>
-
-<p>This variable specifies the native platform. The valid values are the same
-as those for <code>-D platforms=...</code>. When the variable is not set,
-the main library uses the first platform listed in
-<code>-D platforms=...</code> as the native platform.</p>
-
-<p>Extensions like <code>EGL_MESA_drm_display</code> define new functions to
-create displays for non-native platforms. These extensions are usually used by
-applications that support non-native platforms. Setting this variable is
-probably required only for some of the demos found in mesa/demo repository.</p>
-
-</dd>
-
-<dt><code>EGL_LOG_LEVEL</code></dt>
-<dd>
-
-<p>This changes the log level of the main library and the drivers. The valid
-values are: <code>debug</code>, <code>info</code>, <code>warning</code>, and
-<code>fatal</code>.</p>
-
-</dd>
-</dl>
-
-<h2>EGL Drivers</h2>
-
-<dl>
-<dt><code>egl_dri2</code></dt>
-<dd>
-
-<p>This driver supports both <code>x11</code> and <code>drm</code> platforms.
-It functions as a DRI driver loader. For <code>x11</code> support, it talks to
-the X server directly using (XCB-)DRI2 protocol.</p>
-
-<p>This driver can share DRI drivers with <code>libGL</code>.</p>
-
-</dd>
-</dl>
-
-<h2>Packaging</h2>
-
-<p>The ABI between the main library and its drivers are not stable. Nor is
-there a plan to stabilize it at the moment.</p>
-
-<h2>Developers</h2>
-
-<p>The sources of the main library and drivers can be found at
-<code>src/egl/</code>.</p>
-
-<h3>Lifetime of Display Resources</h3>
-
-<p>Contexts and surfaces are examples of display resources. They might live
-longer than the display that creates them.</p>
-
-<p>In EGL, when a display is terminated through <code>eglTerminate</code>, all
-display resources should be destroyed. Similarly, when a thread is released
-through <code>eglReleaseThread</code>, all current display resources should be
-released. Another way to destroy or release resources is through functions
-such as <code>eglDestroySurface</code> or <code>eglMakeCurrent</code>.</p>
-
-<p>When a resource that is current to some thread is destroyed, the resource
-should not be destroyed immediately. EGL requires the resource to live until
-it is no longer current. A driver usually calls
-<code>eglIs&lt;Resource&gt;Bound</code> to check if a resource is bound
-(current) to any thread in the destroy callbacks. If it is still bound, the
-resource is not destroyed.</p>
-
-<p>The main library will mark destroyed current resources as unlinked. In a
-driver's <code>MakeCurrent</code> callback,
-<code>eglIs&lt;Resource&gt;Linked</code> can then be called to check if a newly
-released resource is linked to a display. If it is not, the last reference to
-the resource is removed and the driver should destroy the resource. But it
-should be careful here because <code>MakeCurrent</code> might be called with an
-uninitialized display.</p>
-
-<p>This is the only mechanism provided by the main library to help manage the
-resources. The drivers are responsible to the correct behavior as defined by
-EGL.</p>
-
-<h3><code>EGL_RENDER_BUFFER</code></h3>
-
-<p>In EGL, the color buffer a context should try to render to is decided by the
-binding surface. It should try to render to the front buffer if the binding
-surface has <code>EGL_RENDER_BUFFER</code> set to
-<code>EGL_SINGLE_BUFFER</code>; If the same context is later bound to a
-surface with <code>EGL_RENDER_BUFFER</code> set to
-<code>EGL_BACK_BUFFER</code>, the context should try to render to the back
-buffer. However, the context is allowed to make the final decision as to which
-color buffer it wants to or is able to render to.</p>
-
-<p>For pbuffer surfaces, the render buffer is always
-<code>EGL_BACK_BUFFER</code>. And for pixmap surfaces, the render buffer is
-always <code>EGL_SINGLE_BUFFER</code>. Unlike window surfaces, EGL spec
-requires their <code>EGL_RENDER_BUFFER</code> values to be honored. As a
-result, a driver should never set <code>EGL_PIXMAP_BIT</code> or
-<code>EGL_PBUFFER_BIT</code> bits of a config if the contexts created with the
-config won't be able to honor the <code>EGL_RENDER_BUFFER</code> of pixmap or
-pbuffer surfaces.</p>
-
-<p>It should also be noted that pixmap and pbuffer surfaces are assumed to be
-single-buffered, in that <code>eglSwapBuffers</code> has no effect on them. It
-is desirable that a driver allocates a private color buffer for each pbuffer
-surface created. If the window system the driver supports has native pbuffers,
-or if the native pixmaps have more than one color buffers, the driver should
-carefully attach the native color buffers to the EGL surfaces, re-route them if
-required.</p>
-
-<p>There is no defined behavior as to, for example, how
-<code>glDrawBuffer</code> interacts with <code>EGL_RENDER_BUFFER</code>. Right
-now, it is desired that the draw buffer in a client API be fixed for pixmap and
-pbuffer surfaces. Therefore, the driver is responsible to guarantee that the
-client API renders to the specified render buffer for pixmap and pbuffer
-surfaces.</p>
-
-<h3><code>EGLDisplay</code> Mutex</h3>
-
-The <code>EGLDisplay</code> will be locked before calling any of the dispatch
-functions (well, except for GetProcAddress which does not take an
-<code>EGLDisplay</code>). This guarantees that the same dispatch function will
-not be called with the sample display at the same time. If a driver has access
-to an <code>EGLDisplay</code> without going through the EGL APIs, the driver
-should as well lock the display before using it.
-
-</div>
-</body>
-</html>
diff --git a/docs/egl.rst b/docs/egl.rst
new file mode 100644
index 00000000000..9b7f2c035a2
--- /dev/null
+++ b/docs/egl.rst
@@ -0,0 +1,197 @@
+EGL
+===
+
+The current version of EGL in Mesa implements EGL 1.4. More information
+about EGL can be found at https://www.khronos.org/egl/.
+
+The Mesa's implementation of EGL uses a driver architecture. The main
+library (``libEGL``) is window system neutral. It provides the EGL API
+entry points and helper functions for use by the drivers. Drivers are
+dynamically loaded by the main library and most of the EGL API calls are
+directly dispatched to the drivers.
+
+The driver in use decides the window system to support.
+
+Build EGL
+---------
+
+#. Configure your build with the desired client APIs and enable the
+ driver for your hardware. For example:
+
+ ::
+
+ $ meson configure \
+ -D egl=true \
+ -D gles1=true \
+ -D gles2=true \
+ -D dri-drivers=... \
+ -D gallium-drivers=...
+
+ The main library and OpenGL is enabled by default. The first two
+ options above enables `OpenGL ES 1.x and 2.x <opengles.html>`__. The
+ last two options enables the listed classic and Gallium drivers
+ respectively.
+
+#. Build and install Mesa as usual.
+
+In the given example, it will build and install ``libEGL``, ``libGL``,
+``libGLESv1_CM``, ``libGLESv2``, and one or more EGL drivers.
+
+Configure Options
+~~~~~~~~~~~~~~~~~
+
+There are several options that control the build of EGL at configuration
+time
+
+``-D egl=true``
+ By default, EGL is enabled. When disabled, the main library and the
+ drivers will not be built.
+
+``-D platforms=...``
+ List the platforms (window systems) to support. Its argument is a
+ comma separated string such as ``-D platforms=x11,drm``. It decides
+ the platforms a driver may support. The first listed platform is also
+ used by the main library to decide the native platform.
+
+ The available platforms are ``x11``, ``drm``, ``wayland``,
+ ``surfaceless``, ``android``, and ``haiku``. The ``android`` platform
+ can either be built as a system component, part of AOSP, using
+ ``Android.mk`` files, or cross-compiled using appropriate options.
+ Unless for special needs, the build system should select the right
+ platforms automatically.
+
+``-D gles1=true`` and ``-D gles2=true``
+ These options enable OpenGL ES support in OpenGL. The result is one
+ big internal library that supports multiple APIs.
+
+``-D shared-glapi=true``
+ By default, ``libGL`` has its own copy of ``libglapi``. This options
+ makes ``libGL`` use the shared ``libglapi``. This is required if
+ applications mix OpenGL and OpenGL ES.
+
+Use EGL
+-------
+
+Demos
+~~~~~
+
+There are demos for the client APIs supported by EGL. They can be found
+in mesa/demos repository.
+
+Environment Variables
+~~~~~~~~~~~~~~~~~~~~~
+
+There are several environment variables that control the behavior of EGL
+at runtime
+
+``EGL_PLATFORM``
+ This variable specifies the native platform. The valid values are the
+ same as those for ``-D platforms=...``. When the variable is not set,
+ the main library uses the first platform listed in
+ ``-D platforms=...`` as the native platform.
+
+ Extensions like ``EGL_MESA_drm_display`` define new functions to
+ create displays for non-native platforms. These extensions are
+ usually used by applications that support non-native platforms.
+ Setting this variable is probably required only for some of the demos
+ found in mesa/demo repository.
+
+``EGL_LOG_LEVEL``
+ This changes the log level of the main library and the drivers. The
+ valid values are: ``debug``, ``info``, ``warning``, and ``fatal``.
+
+EGL Drivers
+-----------
+
+``egl_dri2``
+ This driver supports both ``x11`` and ``drm`` platforms. It functions
+ as a DRI driver loader. For ``x11`` support, it talks to the X server
+ directly using (XCB-)DRI2 protocol.
+
+ This driver can share DRI drivers with ``libGL``.
+
+Packaging
+---------
+
+The ABI between the main library and its drivers are not stable. Nor is
+there a plan to stabilize it at the moment.
+
+Developers
+----------
+
+The sources of the main library and drivers can be found at
+``src/egl/``.
+
+Lifetime of Display Resources
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Contexts and surfaces are examples of display resources. They might live
+longer than the display that creates them.
+
+In EGL, when a display is terminated through ``eglTerminate``, all
+display resources should be destroyed. Similarly, when a thread is
+released through ``eglReleaseThread``, all current display resources
+should be released. Another way to destroy or release resources is
+through functions such as ``eglDestroySurface`` or ``eglMakeCurrent``.
+
+When a resource that is current to some thread is destroyed, the
+resource should not be destroyed immediately. EGL requires the resource
+to live until it is no longer current. A driver usually calls
+``eglIs<Resource>Bound`` to check if a resource is bound (current) to
+any thread in the destroy callbacks. If it is still bound, the resource
+is not destroyed.
+
+The main library will mark destroyed current resources as unlinked. In a
+driver's ``MakeCurrent`` callback, ``eglIs<Resource>Linked`` can then be
+called to check if a newly released resource is linked to a display. If
+it is not, the last reference to the resource is removed and the driver
+should destroy the resource. But it should be careful here because
+``MakeCurrent`` might be called with an uninitialized display.
+
+This is the only mechanism provided by the main library to help manage
+the resources. The drivers are responsible to the correct behavior as
+defined by EGL.
+
+``EGL_RENDER_BUFFER``
+~~~~~~~~~~~~~~~~~~~~~
+
+In EGL, the color buffer a context should try to render to is decided by
+the binding surface. It should try to render to the front buffer if the
+binding surface has ``EGL_RENDER_BUFFER`` set to ``EGL_SINGLE_BUFFER``;
+If the same context is later bound to a surface with
+``EGL_RENDER_BUFFER`` set to ``EGL_BACK_BUFFER``, the context should try
+to render to the back buffer. However, the context is allowed to make
+the final decision as to which color buffer it wants to or is able to
+render to.
+
+For pbuffer surfaces, the render buffer is always ``EGL_BACK_BUFFER``.
+And for pixmap surfaces, the render buffer is always
+``EGL_SINGLE_BUFFER``. Unlike window surfaces, EGL spec requires their
+``EGL_RENDER_BUFFER`` values to be honored. As a result, a driver should
+never set ``EGL_PIXMAP_BIT`` or ``EGL_PBUFFER_BIT`` bits of a config if
+the contexts created with the config won't be able to honor the
+``EGL_RENDER_BUFFER`` of pixmap or pbuffer surfaces.
+
+It should also be noted that pixmap and pbuffer surfaces are assumed to
+be single-buffered, in that ``eglSwapBuffers`` has no effect on them. It
+is desirable that a driver allocates a private color buffer for each
+pbuffer surface created. If the window system the driver supports has
+native pbuffers, or if the native pixmaps have more than one color
+buffers, the driver should carefully attach the native color buffers to
+the EGL surfaces, re-route them if required.
+
+There is no defined behavior as to, for example, how ``glDrawBuffer``
+interacts with ``EGL_RENDER_BUFFER``. Right now, it is desired that the
+draw buffer in a client API be fixed for pixmap and pbuffer surfaces.
+Therefore, the driver is responsible to guarantee that the client API
+renders to the specified render buffer for pixmap and pbuffer surfaces.
+
+``EGLDisplay`` Mutex
+~~~~~~~~~~~~~~~~~~~~
+
+The ``EGLDisplay`` will be locked before calling any of the dispatch
+functions (well, except for GetProcAddress which does not take an
+``EGLDisplay``). This guarantees that the same dispatch function will
+not be called with the sample display at the same time. If a driver has
+access to an ``EGLDisplay`` without going through the EGL APIs, the
+driver should as well lock the display before using it.
diff --git a/docs/envvars.html b/docs/envvars.html
deleted file mode 100644
index a642daf59c2..00000000000
--- a/docs/envvars.html
+++ /dev/null
@@ -1,786 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Environment Variables</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Environment Variables</h1>
-
-<p>
-Normally, no environment variables need to be set. Most of the environment
-variables used by Mesa/Gallium are for debugging purposes, but they can
-sometimes be useful for debugging end-user issues.
-</p>
-
-
-<h2>LibGL environment variables</h2>
-
-<dl>
-<dt><code>LIBGL_DEBUG</code></dt>
-<dd>If defined debug information will be printed to stderr.
- If set to <code>verbose</code> additional information will be
- printed.</dd>
-<dt><code>LIBGL_DRIVERS_PATH</code></dt>
-<dd>colon-separated list of paths to search for DRI drivers</dd>
-<dt><code>LIBGL_ALWAYS_INDIRECT</code></dt>
-<dd>if set to <code>true</code>, forces an indirect rendering
- context/connection.</dd>
-<dt><code>LIBGL_ALWAYS_SOFTWARE</code></dt>
-<dd>if set to <code>true</code>, always use software rendering</dd>
-<dt><code>LIBGL_NO_DRAWARRAYS</code></dt>
-<dd>if set to <code>true</code>, do not use DrawArrays GLX protocol
- (for debugging)</dd>
-<dt><code>LIBGL_SHOW_FPS</code></dt>
-<dd>print framerate to stdout based on the number of
- <code>glXSwapBuffers</code> calls per second.</dd>
-<dt><code>LIBGL_DRI3_DISABLE</code></dt>
-<dd>disable DRI3 if set to <code>true</code>.</dd>
-</dl>
-
-<h2>Core Mesa environment variables</h2>
-
-<dl>
-<dt><code>MESA_NO_ASM</code></dt>
-<dd>if set, disables all assembly language optimizations</dd>
-<dt><code>MESA_NO_MMX</code></dt>
-<dd>if set, disables Intel MMX optimizations</dd>
-<dt><code>MESA_NO_3DNOW</code></dt>
-<dd>if set, disables AMD 3DNow! optimizations</dd>
-<dt><code>MESA_NO_SSE</code></dt>
-<dd>if set, disables Intel SSE optimizations</dd>
-<dt><code>MESA_NO_ERROR</code></dt>
-<dd>if set to 1, error checking is disabled as per <code>KHR_no_error</code>.
- This will result in undefined behaviour for invalid use of the api, but
- can reduce CPU use for apps that are known to be error free.</dd>
-<dt><code>MESA_DEBUG</code></dt>
-<dd>if set, error messages are printed to stderr. For example,
- if the application generates a <code>GL_INVALID_ENUM</code> error, a
- corresponding error message indicating where the error occurred, and
- possibly why, will be printed to stderr. For release builds,
- <code>MESA_DEBUG</code> defaults to off (no debug output).
- <code>MESA_DEBUG</code> accepts the following comma-separated list of
- named flags, which adds extra behaviour to just set
- <code>MESA_DEBUG=1</code>:
- <dl>
- <dt><code>silent</code></dt>
- <dd>turn off debug messages. Only useful for debug builds.</dd>
- <dt><code>flush</code></dt>
- <dd>flush after each drawing command</dd>
- <dt><code>incomplete_tex</code></dt>
- <dd>extra debug messages when a texture is incomplete</dd>
- <dt><code>incomplete_fbo</code></dt>
- <dd>extra debug messages when a fbo is incomplete</dd>
- <dt><code>context</code></dt>
- <dd>create a debug context (see <code>GLX_CONTEXT_DEBUG_BIT_ARB</code>)
- and print error and performance messages to stderr (or
- <code>MESA_LOG_FILE</code>).</dd>
- </dl>
-</dd>
-<dt><code>MESA_LOG_FILE</code></dt>
-<dd>specifies a file name for logging all errors, warnings,
- etc., rather than stderr</dd>
-<dt><code>MESA_TEX_PROG</code></dt>
-<dd>if set, implement conventional texture env modes with
- fragment programs (intended for developers only)</dd>
-<dt><code>MESA_TNL_PROG</code></dt>
-<dd>if set, implement conventional vertex transformation operations with
- vertex programs (intended for developers only). Setting this variable
- automatically sets the <code>MESA_TEX_PROG</code> variable as well.</dd>
-<dt><code>MESA_EXTENSION_OVERRIDE</code></dt>
-<dd>can be used to enable/disable extensions. A value such as
- <code>GL_EXT_foo -GL_EXT_bar</code> will enable the
- <code>GL_EXT_foo</code> extension and disable the
- <code>GL_EXT_bar</code> extension.</dd>
-<dt><code>MESA_EXTENSION_MAX_YEAR</code></dt>
-<dd>The <code>GL_EXTENSIONS</code> string returned by Mesa is sorted by
- extension year. If this variable is set to year X, only extensions
- defined on or before year X will be reported. This is to work-around a
- bug in some games where the extension string is copied into a fixed-size
- buffer without truncating. If the extension string is too long, the
- buffer overrun can cause the game to crash. This is a work-around for
- that.</dd>
-<dt><code>MESA_GL_VERSION_OVERRIDE</code></dt>
-<dd>changes the value returned by
-<code>glGetString(GL_VERSION)</code> and possibly the GL API type.
-<ul>
- <li>The format should be <code>MAJOR.MINOR[FC|COMPAT]</code>
- <li><code>FC</code> is an optional suffix that indicates a forward
- compatible context. This is only valid for versions &gt;= 3.0.
- <li><code>COMPAT</code> is an optional suffix that indicates a
- compatibility context or <code>GL_ARB_compatibility</code> support.
- This is only valid for versions &gt;= 3.1.
- <li>GL versions &lt;= 3.0 are set to a compatibility (non-Core)
- profile
- <li>GL versions = 3.1, depending on the driver, it may or may not
- have the <code>ARB_compatibility</code> extension enabled.
- <li>GL versions &gt;= 3.2 are set to a Core profile
- <li>Examples:
- <dl>
- <dt><code>2.1</code></dt>
- <dd>select a compatibility (non-Core) profile with GL version 2.1.</dd>
- <dt><code>3.0</code></dt>
- <dd>select a compatibility (non-Core) profile with GL version 3.0.</dd>
- <dt><code>3.0FC</code></dt>
- <dd>select a Core+Forward Compatible profile with GL version 3.0.</dd>
- <dt><code>3.1</code></dt>
- <dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
- enabled per the driver default.</dd>
- <dt><code>3.1FC</code></dt>
- <dd>select GL version 3.1 with forward compatibility and
- <code>GL_ARB_compatibility</code> disabled.</dd>
- <dt><code>3.1COMPAT</code></dt>
- <dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
- enabled.</dd>
- <dt><code>X.Y</code></dt>
- <dd>override GL version to X.Y without changing the profile.</dd>
- <dt><code>X.YFC</code></dt>
- <dd>select a Core+Forward Compatible profile with GL version X.Y.</dd>
- <dt><code>X.YCOMPAT</code></dt>
- <dd>select a Compatibility profile with GL version X.Y.</dd>
- </dl>
- <li>Mesa may not really implement all the features of the given
- version. (for developers only)
-</ul>
-</dd>
-<dt><code>MESA_GLES_VERSION_OVERRIDE</code></dt>
-<dd>changes the value returned by <code>glGetString(GL_VERSION)</code>
- for OpenGL ES.
-<ul>
-<li> The format should be <code>MAJOR.MINOR</code>
-<li> Examples: <code>2.0</code>, <code>3.0</code>, <code>3.1</code>
-<li> Mesa may not really implement all the features of the given version.
-(for developers only)
-</ul>
-</dd>
-<dt><code>MESA_GLSL_VERSION_OVERRIDE</code></dt>
-<dd>changes the value returned by
- <code>glGetString(GL_SHADING_LANGUAGE_VERSION)</code>.
- Valid values are integers, such as <code>130</code>. Mesa will not
- really implement all the features of the given language version if
- it's higher than what's normally reported. (for developers only)
-</dd>
-<dt><code>MESA_GLSL_CACHE_DISABLE</code></dt>
-<dd>if set to <code>true</code>, disables the GLSL shader cache</dd>
-<dt><code>MESA_GLSL_CACHE_MAX_SIZE</code></dt>
-<dd>if set, determines the maximum size of the on-disk cache of compiled GLSL
- programs. Should be set to a number optionally followed by <code>K</code>,
- <code>M</code>, or <code>G</code> to specify a size in kilobytes,
- megabytes, or gigabytes. By default, gigabytes will be assumed. And if
- unset, a maximum size of 1GB will be used. Note: A separate cache might
- be created for each architecture that Mesa is installed for on your
- system. For example under the default settings you may end up with a 1GB
- cache for x86_64 and another 1GB cache for i386.</dd>
-<dt><code>MESA_GLSL_CACHE_DIR</code></dt>
-<dd>if set, determines the directory to be used for the on-disk cache of
- compiled GLSL programs. If this variable is not set, then the cache will
- be stored in <code>$XDG_CACHE_HOME/mesa_shader_cache</code> (if that
- variable is set), or else within <code>.cache/mesa_shader_cache</code>
- within the user's home directory.
-</dd>
-<dt><code>MESA_GLSL</code></dt>
-<dd><a href="shading.html#envvars">shading language compiler options</a></dd>
-<dt><code>MESA_NO_MINMAX_CACHE</code></dt>
-<dd>when set, the minmax index cache is globally disabled.</dd>
-<dt><code>MESA_SHADER_CAPTURE_PATH</code></dt>
-<dd>see <a href="shading.html#capture">Capturing Shaders</a></dd>
-<dt><code>MESA_SHADER_DUMP_PATH</code> and <code>MESA_SHADER_READ_PATH</code></dt>
-<dd>see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></dd>
-<dt><code>MESA_VK_VERSION_OVERRIDE</code></dt>
-<dd>changes the Vulkan physical device version
- as returned in <code>VkPhysicalDeviceProperties::apiVersion</code>.
- <ul>
- <li>The format should be <code>MAJOR.MINOR[.PATCH]</code></li>
- <li>This will not let you force a version higher than the driver's
- instance version as advertised by
- <code>vkEnumerateInstanceVersion</code></li>
- <li>This can be very useful for debugging but some features may not be
- implemented correctly. (For developers only)</li>
- </ul>
-</dd>
-</dl>
-
-
-<h2>NIR passes enviroment variables</h2>
-<p>
-The following are only applicable for drivers that uses NIR, as they
-modify the behaviour for the common NIR_PASS and NIR_PASS_V macros,
-that wrap calls to NIR lowering/optimizations.
-</p>
-
-<dl>
- <dt><code>NIR_PRINT</code></dt>
- <dd>If defined, the resulting NIR shader will be printed out at each succesful NIR lowering/optimization call.</dd>
- <dt><code>NIR_TEST_CLONE</code></dt>
- <dd>If defined, cloning a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
- <dt><code>NIR_TEST_SERIALIZE</code></dt>
- <dd>If defined, serialize and deserialize a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
-</dl>
-
-
-<h2>Mesa Xlib driver environment variables</h2>
-
-<p>
-The following are only applicable to the Mesa Xlib software driver.
-See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
-</p>
-<dl>
-<dt><code>MESA_RGB_VISUAL</code></dt>
-<dd>specifies the X visual and depth for RGB mode</dd>
-<dt><code>MESA_CI_VISUAL</code></dt>
-<dd>specifies the X visual and depth for CI mode</dd>
-<dt><code>MESA_BACK_BUFFER</code></dt>
-<dd>specifies how to implement the back color buffer, either
- <code>pixmap</code> or <code>ximage</code></dd>
-<dt><code>MESA_GAMMA</code></dt>
-<dd>gamma correction coefficients for red, green, blue channels</dd>
-<dt><code>MESA_XSYNC</code></dt>
-<dd>enable synchronous X behavior (for debugging only)</dd>
-<dt><code>MESA_GLX_FORCE_CI</code></dt>
-<dd>if set, force GLX to treat 8bpp visuals as CI visuals</dd>
-<dt><code>MESA_GLX_FORCE_ALPHA</code></dt>
-<dd>if set, forces RGB windows to have an alpha channel.</dd>
-<dt><code>MESA_GLX_DEPTH_BITS</code></dt>
-<dd>specifies default number of bits for depth buffer.</dd>
-<dt><code>MESA_GLX_ALPHA_BITS</code></dt>
-<dd>specifies default number of bits for alpha channel.</dd>
-</dl>
-
-
-<h2>i945/i965 driver environment variables (non-Gallium)</h2>
-
-<dl>
-<dt><code>INTEL_NO_HW</code></dt>
-<dd>if set to 1, prevents batches from being submitted to the hardware.
- This is useful for debugging hangs, etc.</dd>
-<dt><code>INTEL_DEBUG</code></dt>
-<dd>a comma-separated list of named flags, which do various things:
-<dl>
- <dt><code>ann</code></dt>
- <dd>annotate IR in assembly dumps</dd>
- <dt><code>aub</code></dt>
- <dd>dump batches into an AUB trace for use with simulation tools</dd>
- <dt><code>bat</code></dt>
- <dd>emit batch information</dd>
- <dt><code>blit</code></dt>
- <dd>emit messages about blit operations</dd>
- <dt><code>blorp</code></dt>
- <dd>emit messages about the blorp operations (blits &amp; clears)</dd>
- <dt><code>buf</code></dt>
- <dd>emit messages about buffer objects</dd>
- <dt><code>clip</code></dt>
- <dd>emit messages about the clip unit (for old gens, includes the CLIP program)</dd>
- <dt><code>color</code></dt>
- <dd>use color in output</dd>
- <dt><code>cs</code></dt>
- <dd>dump shader assembly for compute shaders</dd>
- <dt><code>do32</code></dt>
- <dd>generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</dd>
- <dt><code>dri</code></dt>
- <dd>emit messages about the DRI interface</dd>
- <dt><code>fbo</code></dt>
- <dd>emit messages about framebuffers</dd>
- <dt><code>fs</code></dt>
- <dd>dump shader assembly for fragment shaders</dd>
- <dt><code>gs</code></dt>
- <dd>dump shader assembly for geometry shaders</dd>
- <dt><code>hex</code></dt>
- <dd>print instruction hex dump with the disassembly</dd>
- <dt><code>l3</code></dt>
- <dd>emit messages about the new L3 state during transitions</dd>
- <dt><code>miptree</code></dt>
- <dd>emit messages about miptrees</dd>
- <dt><code>no8</code></dt>
- <dd>don't generate SIMD8 fragment shader</dd>
- <dt><code>no16</code></dt>
- <dd>suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</dd>
- <dt><code>nocompact</code></dt>
- <dd>disable instruction compaction</dd>
- <dt><code>nodualobj</code></dt>
- <dd>suppress generation of dual-object geometry shader code</dd>
- <dt><code>nofc</code></dt>
- <dd>disable fast clears</dd>
- <dt><code>norbc</code></dt>
- <dd>disable single sampled render buffer compression</dd>
- <dt><code>optimizer</code></dt>
- <dd>dump shader assembly to files at each optimization pass and iteration that make progress</dd>
- <dt><code>perf</code></dt>
- <dd>emit messages about performance issues</dd>
- <dt><code>perfmon</code></dt>
- <dd>emit messages about <code>AMD_performance_monitor</code></dd>
- <dt><code>pix</code></dt>
- <dd>emit messages about pixel operations</dd>
- <dt><code>prim</code></dt>
- <dd>emit messages about drawing primitives</dd>
- <dt><code>reemit</code></dt>
- <dd>mark all state dirty on each draw call</dd>
- <dt><code>sf</code></dt>
- <dd>emit messages about the strips &amp; fans unit (for old gens, includes the SF program)</dd>
- <dt><code>shader_time</code></dt>
- <dd>record how much GPU time is spent in each shader</dd>
- <dt><code>spill_fs</code></dt>
- <dd>force spilling of all registers in the scalar backend (useful to debug spilling code)</dd>
- <dt><code>spill_vec4</code></dt>
- <dd>force spilling of all registers in the vec4 backend (useful to debug spilling code)</dd>
- <dt><code>state</code></dt>
- <dd>emit messages about state flag tracking</dd>
- <dt><code>submit</code></dt>
- <dd>emit batchbuffer usage statistics</dd>
- <dt><code>sync</code></dt>
- <dd>after sending each batch, emit a message and wait for that batch to finish rendering</dd>
- <dt><code>tcs</code></dt>
- <dd>dump shader assembly for tessellation control shaders</dd>
- <dt><code>tes</code></dt>
- <dd>dump shader assembly for tessellation evaluation shaders</dd>
- <dt><code>tex</code></dt>
- <dd>emit messages about textures.</dd>
- <dt><code>urb</code></dt>
- <dd>emit messages about URB setup</dd>
- <dt><code>vert</code></dt>
- <dd>emit messages about vertex assembly</dd>
- <dt><code>vs</code></dt>
- <dd>dump shader assembly for vertex shaders</dd>
-</dl>
-</dd>
-<dt><code>INTEL_SCALAR_VS</code> (or <code>TCS</code>, <code>TES</code>,
- <code>GS</code>)</dt>
-<dd>force scalar/vec4 mode for a shader stage (Gen8-9 only)</dd>
-<dt><code>INTEL_PRECISE_TRIG</code></dt>
-<dd>if set to 1, true or yes, then the driver prefers accuracy over
- performance in trig functions.</dd>
-</dl>
-
-
-<h2>Radeon driver environment variables (radeon, r200, and r300g)</h2>
-
-<dl>
-<dt><code>RADEON_NO_TCL</code></dt>
-<dd>if set, disable hardware-accelerated Transform/Clip/Lighting.</dd>
-</dl>
-
-
-<h2>EGL environment variables</h2>
-
-<p>
-Mesa EGL supports different sets of environment variables. See the
-<a href="egl.html">Mesa EGL</a> page for the details.
-</p>
-
-
-<h2>Gallium environment variables</h2>
-
-<dl>
-<dt><code>GALLIUM_HUD</code></dt>
-<dd>draws various information on the screen, like framerate,
- cpu load, driver statistics, performance counters, etc.
- Set <code>GALLIUM_HUD=help</code> and run e.g.
- <code>glxgears</code> for more info.</dd>
-<dt><code>GALLIUM_HUD_PERIOD</code></dt>
-<dd>sets the hud update rate in seconds (float). Use zero
- to update every frame. The default period is 1/2 second.</dd>
-<dt><code>GALLIUM_HUD_VISIBLE</code></dt>
-<dd>control default visibility, defaults to true.</dd>
-<dt><code>GALLIUM_HUD_TOGGLE_SIGNAL</code></dt>
-<dd>toggle visibility via user specified signal.
- Especially useful to toggle hud at specific points of application and
- disable for unencumbered viewing the rest of the time. For example, set
- <code>GALLIUM_HUD_VISIBLE</code> to <code>false</code> and
- <code>GALLIUM_HUD_TOGGLE_SIGNAL</code> to <code>10</code>
- (<code>SIGUSR1</code>).
- Use <code>kill -10 &lt;pid&gt;</code> to toggle the hud as desired.</dd>
-<dt><code>GALLIUM_HUD_SCALE</code></dt>
-<dd>Scale hud by an integer factor, for high DPI displays. Default is 1.</dd>
-<dt><code>GALLIUM_HUD_DUMP_DIR</code></dt>
-<dd>specifies a directory for writing the displayed hud values into files.</dd>
-<dt><code>GALLIUM_DRIVER</code></dt>
-<dd>useful in combination with <code>LIBGL_ALWAYS_SOFTWARE=true</code> for
- choosing one of the software renderers <code>softpipe</code>,
- <code>llvmpipe</code> or <code>swr</code>.</dd>
-<dt><code>GALLIUM_LOG_FILE</code></dt>
-<dd>specifies a file for logging all errors, warnings, etc.
- rather than stderr.</dd>
-<dt><code>GALLIUM_PRINT_OPTIONS</code></dt>
-<dd>if non-zero, print all the Gallium environment variables which are
- used, and their current values.</dd>
-<dt><code>GALLIUM_DUMP_CPU</code></dt>
-<dd>if non-zero, print information about the CPU on start-up</dd>
-<dt><code>TGSI_PRINT_SANITY</code></dt>
-<dd>if set, do extra sanity checking on TGSI shaders and
- print any errors to stderr.</dd>
-<dt><code>DRAW_FSE</code></dt>
-<dd>???</dd>
-<dt><code>DRAW_NO_FSE</code></dt>
-<dd>???</dd>
-<dt><code>DRAW_USE_LLVM</code></dt>
-<dd>if set to zero, the draw module will not use LLVM to execute
- shaders, vertex fetch, etc.</dd>
-<dt><code>ST_DEBUG</code></dt>
-<dd>controls debug output from the Mesa/Gallium state tracker.
- Setting to <code>tgsi</code>, for example, will print all the TGSI
- shaders. See <code>src/mesa/state_tracker/st_debug.c</code> for other
- options.</dd>
-</dl>
-
-<h3>Clover environment variables</h3>
-
-<dl>
-<dt><code>CLOVER_EXTRA_BUILD_OPTIONS</code></dt>
-<dd>allows specifying additional compiler and linker
- options. Specified options are appended after the options set by the OpenCL
- program in <code>clBuildProgram</code>.</dd>
-<dt><code>CLOVER_EXTRA_COMPILE_OPTIONS</code></dt>
-<dd>allows specifying additional compiler
- options. Specified options are appended after the options set by the OpenCL
- program in <code>clCompileProgram</code>.</dd>
-<dt><code>CLOVER_EXTRA_LINK_OPTIONS</code></dt>
-<dd>allows specifying additional linker
- options. Specified options are appended after the options set by the OpenCL
- program in <code>clLinkProgram</code>.</dd>
-</dl>
-
-
-<h3>Softpipe driver environment variables</h3>
-<dl>
-<dt><code>SOFTPIPE_DUMP_FS</code></dt>
-<dd>if set, the softpipe driver will print fragment shaders to stderr</dd>
-<dt><code>SOFTPIPE_DUMP_GS</code></dt>
-<dd>if set, the softpipe driver will print geometry shaders to stderr</dd>
-<dt><code>SOFTPIPE_NO_RAST</code></dt>
-<dd>if set, rasterization is no-op'd. For profiling purposes.</dd>
-<dt><code>SOFTPIPE_USE_LLVM</code></dt>
-<dd>if set, the softpipe driver will try to use LLVM JIT for
- vertex shading processing.</dd>
-</dl>
-
-
-<h3>LLVMpipe driver environment variables</h3>
-<dl>
-<dt><code>LP_NO_RAST</code></dt>
-<dd>if set LLVMpipe will no-op rasterization</dd>
-<dt><code>LP_DEBUG</code></dt>
-<dd>a comma-separated list of debug options is accepted. See the
- source code for details.</dd>
-<dt><code>LP_PERF</code></dt>
-<dd>a comma-separated list of options to selectively no-op various
- parts of the driver. See the source code for details.</dd>
-<dt><code>LP_NUM_THREADS</code></dt>
-<dd>an integer indicating how many threads to use for rendering.
- Zero turns off threading completely. The default value is the number of CPU
- cores present.</dd>
-</dl>
-
-<h3>VMware SVGA driver environment variables</h3>
-<dl>
-<dt><code>SVGA_FORCE_SWTNL</code></dt>
-<dd>force use of software vertex transformation</dd>
-<dt><code>SVGA_NO_SWTNL</code></dt>
-<dd>don't allow software vertex transformation fallbacks (will often result
- in incorrect rendering).</dd>
-<dt><code>SVGA_DEBUG</code></dt>
-<dd>for dumping shaders, constant buffers, etc. See the code for
- details.</dd>
-<dt><code>SVGA_EXTRA_LOGGING</code></dt>
-<dd>if set, enables extra logging to the <code>vmware.log</code> file,
- such as the OpenGL program's name and command line arguments.</dd>
-<dt><code>SVGA_NO_LOGGING</code></dt>
-<dd>if set, disables logging to the <code>vmware.log</code> file. This is
- useful when using Valgrind because it otherwise crashes when
- initializing the host log feature.</dd>
-</dl>
-<p>See the driver code for other, lesser-used variables.</p>
-
-<h3>WGL environment variables</h3>
-<dl>
-<dt><code>WGL_SWAP_INTERVAL</code></dt>
-<dd>to set a swap interval, equivalent to calling
- <code>wglSwapIntervalEXT()</code> in an application. If this
- environment variable is set, application calls to
- <code>wglSwapIntervalEXT()</code> will have no effect.</dd>
-</dl>
-
-<h3>VA-API environment variables</h3>
-<dl>
-<dt><code>VAAPI_MPEG4_ENABLED</code></dt>
-<dd>enable MPEG4 for VA-API, disabled by default.</dd>
-</dl>
-
-
-<h3>VC4 driver environment variables</h3>
-<dl>
-<dt><code>VC4_DEBUG</code></dt>
-<dd>a comma-separated list of named flags, which do various things:
-<dl>
- <dt><code>cl</code></dt>
- <dd>dump command list during creation</dd>
- <dt><code>qpu</code></dt>
- <dd>dump generated QPU instructions</dd>
- <dt><code>qir</code></dt>
- <dd>dump QPU IR during program compile</dd>
- <dt><code>nir</code></dt>
- <dd>dump NIR during program compile</dd>
- <dt><code>tgsi</code></dt>
- <dd>dump TGSI during program compile</dd>
- <dt><code>shaderdb</code></dt>
- <dd>dump program compile information for shader-db analysis</dd>
- <dt><code>perf</code></dt>
- <dd>print during performance-related events</dd>
- <dt><code>norast</code></dt>
- <dd>skip actual hardware execution of commands</dd>
- <dt><code>always_flush</code></dt>
- <dd>flush after each draw call</dd>
- <dt><code>always_sync</code></dt>
- <dd>wait for finish after each flush</dd>
- <dt><code>dump</code></dt>
- <dd>write a GPU command stream trace file (VC4 simulator only)</dd>
-</dl>
-</dd>
-</dl>
-
-
-<h3>RADV driver environment variables</h3>
-<dl>
-<dt><code>RADV_DEBUG</code></dt>
-<dd>a comma-separated list of named flags, which do various things:
-<dl>
- <dt><code>allbos</code></dt>
- <dd>force all allocated buffers to be referenced in submissions</dd>
- <dt><code>allentrypoints</code></dt>
- <dd>enable all device/instance entrypoints</dd>
- <dt><code>checkir</code></dt>
- <dd>validate the LLVM IR before LLVM compiles the shader</dd>
- <dt><code>errors</code></dt>
- <dd>display more info about errors</dd>
- <dt><code>info</code></dt>
- <dd>show GPU-related information</dd>
- <dt><code>metashaders</code></dt>
- <dd>dump internal meta shaders</dd>
- <dt><code>nobinning</code></dt>
- <dd>disable primitive binning</dd>
- <dt><code>nocache</code></dt>
- <dd>disable shaders cache</dd>
- <dt><code>nocompute</code></dt>
- <dd>disable compute queue</dd>
- <dt><code>nodcc</code></dt>
- <dd>disable Delta Color Compression (DCC) on images</dd>
- <dt><code>nodynamicbounds</code></dt>
- <dd>do not check OOB access for dynamic descriptors</dd>
- <dt><code>nofastclears</code></dt>
- <dd>disable fast color/depthstencil clears</dd>
- <dt><code>nohiz</code></dt>
- <dd>disable HIZ for depthstencil images</dd>
- <dt><code>noibs</code></dt>
- <dd>disable directly recording command buffers in GPU-visible memory</dd>
- <dt><code>noloadstoreopt</code></dt>
- <dd>disable LLVM SILoadStoreOptimizer pass</dd>
- <dt><code>nomemorycache</code></dt>
- <dd>disable memory shaders cache</dd>
- <dt><code>nongg</code></dt>
- <dd>disable NGG for GFX10+</dd>
- <dt><code>nooutoforder</code></dt>
- <dd>disable out-of-order rasterization</dd>
- <dt><code>noshaderballot</code></dt>
- <dd>disable shader ballot</dd>
- <dt><code>nothreadllvm</code></dt>
- <dd>disable LLVM threaded compilation</dd>
- <dt><code>preoptir</code></dt>
- <dd>dump LLVM IR before any optimizations</dd>
- <dt><code>shaders</code></dt>
- <dd>dump shaders</dd>
- <dt><code>shaderstats</code></dt>
- <dd>dump shader statistics</dd>
- <dt><code>spirv</code></dt>
- <dd>dump SPIR-V</dd>
- <dt><code>startup</code></dt>
- <dd>display info at startup</dd>
- <dt><code>syncshaders</code></dt>
- <dd>synchronize shaders after all draws/dispatches</dd>
- <dt><code>vmfaults</code></dt>
- <dd>check for VM memory faults via dmesg</dd>
- <dt><code>zerovram</code></dt>
- <dd>initialize all memory allocated in VRAM as zero</dd>
-</dl>
-</dd>
-<dt><code>RADV_FORCE_FAMILY</code></dt>
-<dd>create a null device to compile shaders without a AMD GPU (eg. gfx900)</dd>
-<dt><code>RADV_PERFTEST</code></dt>
-<dd>a comma-separated list of named flags, which do various things:
-<dl>
- <dt><code>aco</code></dt>
- <dd>enable ACO experimental compiler</dd>
- <dt><code>bolist</code></dt>
- <dd>enable the global BO list</dd>
- <dt><code>cswave32</code></dt>
- <dd>enable wave32 for compute shaders (GFX10+)</dd>
- <dt><code>dccmsaa</code></dt>
- <dd>enable DCC for MSAA images</dd>
- <dt><code>dfsm</code></dt>
- <dd>enable dfsm</dd>
- <dt><code>gewave32</code></dt>
- <dd>enable wave32 for vertex/tess/geometry shaders (GFX10+)</dd>
- <dt><code>localbos</code></dt>
- <dd>enable local BOs</dd>
- <dt><code>pswave32</code></dt>
- <dd>enable wave32 for pixel shaders (GFX10+)</dd>
- <dt><code>shader_ballot</code></dt>
- <dd>enable shader ballot</dd>
- <dt><code>tccompatcmask</code></dt>
- <dd>enable TC-compat cmask for MSAA images</dd>
-</dl>
-</dd>
-<dt><code>RADV_SECURE_COMPILE_THREADS</code></dt>
-<dd>maximum number of secure compile threads (up to 32)</dd>
-<dt><code>RADV_TEX_ANISO</code></dt>
-<dd>force anisotropy filter (up to 16)</dd>
-<dt><code>RADV_TRACE_FILE</code></dt>
-<dd>generate cmdbuffer tracefiles when a GPU hang is detected</dd>
-<dt><code>ACO_DEBUG</code></dt>
-<dd>a comma-separated list of named flags, which do various things:
-<dl>
- <dt><code>validateir</code></dt>
- <dd>validate the ACO IR at various points of compilation (enabled by default for debug/debugoptimized builds)</dd>
- <dt><code>validatera</code></dt>
- <dd>validate register assignment of ACO IR and catches many RA bugs</dd>
- <dt><code>perfwarn</code></dt>
- <dd>abort on some suboptimal code generation</dd>
-</dl>
-</dd>
-</dl>
-
-<h3>radeonsi driver environment variables</h3>
-<dl>
-<dt><code>AMD_DEBUG</code></dt>
-<dd>a comma-separated list of named flags, which do various things:</dd>
-<dl>
-<dd></dd>
- <h4>Disable features / workaround flags (useful to diagnose an issue):</h4>
- <dt><code>nodma</code></dt>
- <dd>Disable SDMA</dd>
- <dt><code>nodmaclear</code></dt>
- <dd>Disable SDMA clears</dd>
- <dt><code>nodmacopyimage</code></dt>
- <dd>Disable SDMA image copies</dd>
- <dt><code>zerovram</code></dt>
- <dd>Clear VRAM allocations.</dd>
- <dt><code>nodcc</code></dt>
- <dd>Disable DCC.</dd>
- <dt><code>nodccclear</code></dt>
- <dd>Disable DCC fast clear.</dd>
- <dt><code>nodccfb</code></dt>
- <dd>Disable separate DCC on the main framebuffer</dd>
- <dt><code>nodccmsaa</code></dt>
- <dd>Disable DCC for MSAA</dd>
- <dt><code>nodpbb</code></dt>
- <dd>Disable DPBB.</dd>
- <dt><code>nodfsm</code></dt>
- <dd>Disable DFSM.</dd>
- <dt><code>notiling</code></dt>
- <dd>Disable tiling</dd>
- <dt><code>nofmask</code></dt>
- <dd>Disable MSAA compression</dd>
- <dt><code>nohyperz</code></dt>
- <dd>Disable Hyper-Z</dd>
- <dt><code>norbplus</code></dt>
- <dd>Disable RB+.</dd>
- <dt><code>no2d</code></dt>
- <dd>Disable 2D tiling</dd>
- <h4>Info flags:</h4>
- <dt><code>info</code></dt>
- <dd>Print driver information</dd>
- <dt><code>tex</code></dt>
- <dd>Print texture info</dd>
- <dt><code>compute</code></dt>
- <dd>Print compute info</dd>
- <dt><code>vm</code></dt>
- <dd>Print virtual addresses when creating resources</dd>
- <h4>Print shaders flags:</h4>
- <dt><code>vs</code></dt>
- <dd>Print vertex shaders</dd>
- <dt><code>ps</code></dt>
- <dd>Print pixel shaders</dd>
- <dt><code>gs</code></dt>
- <dd>Print geometry shaders</dd>
- <dt><code>tcs</code></dt>
- <dd>Print tessellation control shaders</dd>
- <dt><code>tes</code></dt>
- <dd>Print tessellation evaluation shaders</dd>
- <dt><code>cs</code></dt>
- <dd>Print compute shaders</dd>
- <dt><code>noir</code></dt>
- <dd>Don't print the LLVM IR</dd>
- <dt><code>nonir</code></dt>
- <dd>Don't print NIR when printing shaders</dd>
- <dt><code>noasm</code></dt>
- <dd>Don't print disassembled shaders</dd>
- <dt><code>preoptir</code></dt>
- <dd>Print the LLVM IR before initial optimizations</dd>
- <h4>Shader compilation tuning flags:</h4>
- <dt><code>gisel</code></dt>
- <dd>Enable LLVM global instruction selector.</dd>
- <dt><code>w32ge</code></dt>
- <dd>Use Wave32 for vertex, tessellation, and geometry shaders.</dd>
- <dt><code>w32ps</code></dt>
- <dd>Use Wave32 for pixel shaders.</dd>
- <dt><code>w32cs</code></dt>
- <dd>Use Wave32 for computes shaders.</dd>
- <dt><code>w64ge</code></dt>
- <dd>Use Wave64 for vertex, tessellation, and geometry shaders.</dd>
- <dt><code>w64ps</code></dt>
- <dd>Use Wave64 for pixel shaders.</dd>
- <dt><code>w64cs</code></dt>
- <dd>Use Wave64 for computes shaders.</dd>
- <dt><code>checkir</code></dt>
- <dd>Enable additional sanity checks on shader IR</dd>
- <dt><code>mono</code></dt>
- <dd>Use old-style monolithic shaders compiled on demand</dd>
- <dt><code>nooptvariant</code></dt>
- <dd>Disable compiling optimized shader variants.</dd>
- <h4>Advanced usage flags:</h4>
- <dt><code>forcedma</code></dt>
- <dd>Use SDMA for all operations when possible.</dd>
- <dt><code>nowc</code></dt>
- <dd>Disable GTT write combining</dd>
- <dt><code>check_vm</code></dt>
- <dd>Check VM faults and dump debug info.</dd>
- <dt><code>reserve_vmid</code></dt>
- <dd>Force VMID reservation per context.</dd>
- <dt><code>nogfx</code></dt>
- <dd>Disable graphics. Only multimedia compute paths can be used.</dd>
- <dt><code>nongg</code></dt>
- <dd>Disable NGG and use the legacy pipeline.</dd>
- <dt><code>nggc</code></dt>
- <dd>Always use NGG culling even when it can hurt.</dd>
- <dt><code>nonggc</code></dt>
- <dd>Disable NGG culling.</dd>
- <dt><code>alwayspd</code></dt>
- <dd>Always enable the primitive discard compute shader.</dd>
- <dt><code>pd</code></dt>
- <dd>Enable the primitive discard compute shader for large draw calls.</dd>
- <dt><code>nopd</code></dt>
- <dd>Disable the primitive discard compute shader.</dd>
- <dt><code>switch_on_eop</code></dt>
- <dd>Program WD/IA to switch on end-of-packet.</dd>
- <dt><code>nooutoforder</code></dt>
- <dd>Disable out-of-order rasterization</dd>
- <dt><code>dpbb</code></dt>
- <dd>Enable DPBB.</dd>
- <dt><code>dfsm</code></dt>
- <dd>Enable DFSM.</dd>
-</dl>
-
-<p>
-Other Gallium drivers have their own environment variables. These may change
-frequently so the source code should be consulted for details.
-</p>
-
-</div>
-</body>
-</html>
diff --git a/docs/envvars.rst b/docs/envvars.rst
new file mode 100644
index 00000000000..59060cf400a
--- /dev/null
+++ b/docs/envvars.rst
@@ -0,0 +1,724 @@
+Environment Variables
+=====================
+
+Normally, no environment variables need to be set. Most of the
+environment variables used by Mesa/Gallium are for debugging purposes,
+but they can sometimes be useful for debugging end-user issues.
+
+LibGL environment variables
+---------------------------
+
+``LIBGL_DEBUG``
+ If defined debug information will be printed to stderr. If set to
+ ``verbose`` additional information will be printed.
+``LIBGL_DRIVERS_PATH``
+ colon-separated list of paths to search for DRI drivers
+``LIBGL_ALWAYS_INDIRECT``
+ if set to ``true``, forces an indirect rendering context/connection.
+``LIBGL_ALWAYS_SOFTWARE``
+ if set to ``true``, always use software rendering
+``LIBGL_NO_DRAWARRAYS``
+ if set to ``true``, do not use DrawArrays GLX protocol (for
+ debugging)
+``LIBGL_SHOW_FPS``
+ print framerate to stdout based on the number of ``glXSwapBuffers``
+ calls per second.
+``LIBGL_DRI3_DISABLE``
+ disable DRI3 if set to ``true``.
+
+Core Mesa environment variables
+-------------------------------
+
+``MESA_NO_ASM``
+ if set, disables all assembly language optimizations
+``MESA_NO_MMX``
+ if set, disables Intel MMX optimizations
+``MESA_NO_3DNOW``
+ if set, disables AMD 3DNow! optimizations
+``MESA_NO_SSE``
+ if set, disables Intel SSE optimizations
+``MESA_NO_ERROR``
+ if set to 1, error checking is disabled as per ``KHR_no_error``. This
+ will result in undefined behaviour for invalid use of the api, but
+ can reduce CPU use for apps that are known to be error free.
+``MESA_DEBUG``
+ if set, error messages are printed to stderr. For example, if the
+ application generates a ``GL_INVALID_ENUM`` error, a corresponding
+ error message indicating where the error occurred, and possibly why,
+ will be printed to stderr. For release builds, ``MESA_DEBUG``
+ defaults to off (no debug output). ``MESA_DEBUG`` accepts the
+ following comma-separated list of named flags, which adds extra
+ behaviour to just set ``MESA_DEBUG=1``:
+
+ ``silent``
+ turn off debug messages. Only useful for debug builds.
+ ``flush``
+ flush after each drawing command
+ ``incomplete_tex``
+ extra debug messages when a texture is incomplete
+ ``incomplete_fbo``
+ extra debug messages when a fbo is incomplete
+ ``context``
+ create a debug context (see ``GLX_CONTEXT_DEBUG_BIT_ARB``) and
+ print error and performance messages to stderr (or
+ ``MESA_LOG_FILE``).
+
+``MESA_LOG_FILE``
+ specifies a file name for logging all errors, warnings, etc., rather
+ than stderr
+``MESA_TEX_PROG``
+ if set, implement conventional texture env modes with fragment
+ programs (intended for developers only)
+``MESA_TNL_PROG``
+ if set, implement conventional vertex transformation operations with
+ vertex programs (intended for developers only). Setting this variable
+ automatically sets the ``MESA_TEX_PROG`` variable as well.
+``MESA_EXTENSION_OVERRIDE``
+ can be used to enable/disable extensions. A value such as
+ ``GL_EXT_foo -GL_EXT_bar`` will enable the ``GL_EXT_foo`` extension
+ and disable the ``GL_EXT_bar`` extension.
+``MESA_EXTENSION_MAX_YEAR``
+ The ``GL_EXTENSIONS`` string returned by Mesa is sorted by extension
+ year. If this variable is set to year X, only extensions defined on
+ or before year X will be reported. This is to work-around a bug in
+ some games where the extension string is copied into a fixed-size
+ buffer without truncating. If the extension string is too long, the
+ buffer overrun can cause the game to crash. This is a work-around for
+ that.
+``MESA_GL_VERSION_OVERRIDE``
+ changes the value returned by ``glGetString(GL_VERSION)`` and
+ possibly the GL API type.
+
+ - The format should be ``MAJOR.MINOR[FC|COMPAT]``
+ - ``FC`` is an optional suffix that indicates a forward compatible
+ context. This is only valid for versions >= 3.0.
+ - ``COMPAT`` is an optional suffix that indicates a compatibility
+ context or ``GL_ARB_compatibility`` support. This is only valid
+ for versions >= 3.1.
+ - GL versions <= 3.0 are set to a compatibility (non-Core) profile
+ - GL versions = 3.1, depending on the driver, it may or may not have
+ the ``ARB_compatibility`` extension enabled.
+ - GL versions >= 3.2 are set to a Core profile
+ - Examples:
+
+ ``2.1``
+ select a compatibility (non-Core) profile with GL version 2.1.
+ ``3.0``
+ select a compatibility (non-Core) profile with GL version 3.0.
+ ``3.0FC``
+ select a Core+Forward Compatible profile with GL version 3.0.
+ ``3.1``
+ select GL version 3.1 with ``GL_ARB_compatibility`` enabled per
+ the driver default.
+ ``3.1FC``
+ select GL version 3.1 with forward compatibility and
+ ``GL_ARB_compatibility`` disabled.
+ ``3.1COMPAT``
+ select GL version 3.1 with ``GL_ARB_compatibility`` enabled.
+ ``X.Y``
+ override GL version to X.Y without changing the profile.
+ ``X.YFC``
+ select a Core+Forward Compatible profile with GL version X.Y.
+ ``X.YCOMPAT``
+ select a Compatibility profile with GL version X.Y.
+
+ - Mesa may not really implement all the features of the given
+ version. (for developers only)
+
+``MESA_GLES_VERSION_OVERRIDE``
+ changes the value returned by ``glGetString(GL_VERSION)`` for OpenGL
+ ES.
+
+ - The format should be ``MAJOR.MINOR``
+ - Examples: ``2.0``, ``3.0``, ``3.1``
+ - Mesa may not really implement all the features of the given
+ version. (for developers only)
+
+``MESA_GLSL_VERSION_OVERRIDE``
+ changes the value returned by
+ ``glGetString(GL_SHADING_LANGUAGE_VERSION)``. Valid values are
+ integers, such as ``130``. Mesa will not really implement all the
+ features of the given language version if it's higher than what's
+ normally reported. (for developers only)
+``MESA_GLSL_CACHE_DISABLE``
+ if set to ``true``, disables the GLSL shader cache
+``MESA_GLSL_CACHE_MAX_SIZE``
+ if set, determines the maximum size of the on-disk cache of compiled
+ GLSL programs. Should be set to a number optionally followed by
+ ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
+ gigabytes. By default, gigabytes will be assumed. And if unset, a
+ maximum size of 1GB will be used. Note: A separate cache might be
+ created for each architecture that Mesa is installed for on your
+ system. For example under the default settings you may end up with a
+ 1GB cache for x86_64 and another 1GB cache for i386.
+``MESA_GLSL_CACHE_DIR``
+ if set, determines the directory to be used for the on-disk cache of
+ compiled GLSL programs. If this variable is not set, then the cache
+ will be stored in ``$XDG_CACHE_HOME/mesa_shader_cache`` (if that
+ variable is set), or else within ``.cache/mesa_shader_cache`` within
+ the user's home directory.
+``MESA_GLSL``
+ `shading language compiler options <shading.html#envvars>`__
+``MESA_NO_MINMAX_CACHE``
+ when set, the minmax index cache is globally disabled.
+``MESA_SHADER_CAPTURE_PATH``
+ see `Capturing Shaders <shading.html#capture>`__
+``MESA_SHADER_DUMP_PATH`` and ``MESA_SHADER_READ_PATH``
+ see `Experimenting with Shader
+ Replacements <shading.html#replacement>`__
+``MESA_VK_VERSION_OVERRIDE``
+ changes the Vulkan physical device version as returned in
+ ``VkPhysicalDeviceProperties::apiVersion``.
+
+ - The format should be ``MAJOR.MINOR[.PATCH]``
+ - This will not let you force a version higher than the driver's
+ instance version as advertised by ``vkEnumerateInstanceVersion``
+ - This can be very useful for debugging but some features may not be
+ implemented correctly. (For developers only)
+
+NIR passes enviroment variables
+-------------------------------
+
+The following are only applicable for drivers that uses NIR, as they
+modify the behaviour for the common NIR_PASS and NIR_PASS_V macros, that
+wrap calls to NIR lowering/optimizations.
+
+``NIR_PRINT``
+ If defined, the resulting NIR shader will be printed out at each
+ succesful NIR lowering/optimization call.
+``NIR_TEST_CLONE``
+ If defined, cloning a NIR shader would be tested at each succesful
+ NIR lowering/optimization call.
+``NIR_TEST_SERIALIZE``
+ If defined, serialize and deserialize a NIR shader would be tested at
+ each succesful NIR lowering/optimization call.
+
+Mesa Xlib driver environment variables
+--------------------------------------
+
+The following are only applicable to the Mesa Xlib software driver. See
+the `Xlib software driver page <xlibdriver.html>`__ for details.
+
+``MESA_RGB_VISUAL``
+ specifies the X visual and depth for RGB mode
+``MESA_CI_VISUAL``
+ specifies the X visual and depth for CI mode
+``MESA_BACK_BUFFER``
+ specifies how to implement the back color buffer, either ``pixmap``
+ or ``ximage``
+``MESA_GAMMA``
+ gamma correction coefficients for red, green, blue channels
+``MESA_XSYNC``
+ enable synchronous X behavior (for debugging only)
+``MESA_GLX_FORCE_CI``
+ if set, force GLX to treat 8bpp visuals as CI visuals
+``MESA_GLX_FORCE_ALPHA``
+ if set, forces RGB windows to have an alpha channel.
+``MESA_GLX_DEPTH_BITS``
+ specifies default number of bits for depth buffer.
+``MESA_GLX_ALPHA_BITS``
+ specifies default number of bits for alpha channel.
+
+i945/i965 driver environment variables (non-Gallium)
+----------------------------------------------------
+
+``INTEL_NO_HW``
+ if set to 1, prevents batches from being submitted to the hardware.
+ This is useful for debugging hangs, etc.
+``INTEL_DEBUG``
+ a comma-separated list of named flags, which do various things:
+
+ ``ann``
+ annotate IR in assembly dumps
+ ``aub``
+ dump batches into an AUB trace for use with simulation tools
+ ``bat``
+ emit batch information
+ ``blit``
+ emit messages about blit operations
+ ``blorp``
+ emit messages about the blorp operations (blits & clears)
+ ``buf``
+ emit messages about buffer objects
+ ``clip``
+ emit messages about the clip unit (for old gens, includes the CLIP
+ program)
+ ``color``
+ use color in output
+ ``cs``
+ dump shader assembly for compute shaders
+ ``do32``
+ generate compute shader SIMD32 programs even if workgroup size
+ doesn't exceed the SIMD16 limit
+ ``dri``
+ emit messages about the DRI interface
+ ``fbo``
+ emit messages about framebuffers
+ ``fs``
+ dump shader assembly for fragment shaders
+ ``gs``
+ dump shader assembly for geometry shaders
+ ``hex``
+ print instruction hex dump with the disassembly
+ ``l3``
+ emit messages about the new L3 state during transitions
+ ``miptree``
+ emit messages about miptrees
+ ``no8``
+ don't generate SIMD8 fragment shader
+ ``no16``
+ suppress generation of 16-wide fragment shaders. useful for
+ debugging broken shaders
+ ``nocompact``
+ disable instruction compaction
+ ``nodualobj``
+ suppress generation of dual-object geometry shader code
+ ``nofc``
+ disable fast clears
+ ``norbc``
+ disable single sampled render buffer compression
+ ``optimizer``
+ dump shader assembly to files at each optimization pass and
+ iteration that make progress
+ ``perf``
+ emit messages about performance issues
+ ``perfmon``
+ emit messages about ``AMD_performance_monitor``
+ ``pix``
+ emit messages about pixel operations
+ ``prim``
+ emit messages about drawing primitives
+ ``reemit``
+ mark all state dirty on each draw call
+ ``sf``
+ emit messages about the strips & fans unit (for old gens, includes
+ the SF program)
+ ``shader_time``
+ record how much GPU time is spent in each shader
+ ``spill_fs``
+ force spilling of all registers in the scalar backend (useful to
+ debug spilling code)
+ ``spill_vec4``
+ force spilling of all registers in the vec4 backend (useful to
+ debug spilling code)
+ ``state``
+ emit messages about state flag tracking
+ ``submit``
+ emit batchbuffer usage statistics
+ ``sync``
+ after sending each batch, emit a message and wait for that batch
+ to finish rendering
+ ``tcs``
+ dump shader assembly for tessellation control shaders
+ ``tes``
+ dump shader assembly for tessellation evaluation shaders
+ ``tex``
+ emit messages about textures.
+ ``urb``
+ emit messages about URB setup
+ ``vert``
+ emit messages about vertex assembly
+ ``vs``
+ dump shader assembly for vertex shaders
+
+``INTEL_SCALAR_VS`` (or ``TCS``, ``TES``, ``GS``)
+ force scalar/vec4 mode for a shader stage (Gen8-9 only)
+``INTEL_PRECISE_TRIG``
+ if set to 1, true or yes, then the driver prefers accuracy over
+ performance in trig functions.
+
+Radeon driver environment variables (radeon, r200, and r300g)
+-------------------------------------------------------------
+
+``RADEON_NO_TCL``
+ if set, disable hardware-accelerated Transform/Clip/Lighting.
+
+EGL environment variables
+-------------------------
+
+Mesa EGL supports different sets of environment variables. See the `Mesa
+EGL <egl.html>`__ page for the details.
+
+Gallium environment variables
+-----------------------------
+
+``GALLIUM_HUD``
+ draws various information on the screen, like framerate, cpu load,
+ driver statistics, performance counters, etc. Set
+ ``GALLIUM_HUD=help`` and run e.g. ``glxgears`` for more info.
+``GALLIUM_HUD_PERIOD``
+ sets the hud update rate in seconds (float). Use zero to update every
+ frame. The default period is 1/2 second.
+``GALLIUM_HUD_VISIBLE``
+ control default visibility, defaults to true.
+``GALLIUM_HUD_TOGGLE_SIGNAL``
+ toggle visibility via user specified signal. Especially useful to
+ toggle hud at specific points of application and disable for
+ unencumbered viewing the rest of the time. For example, set
+ ``GALLIUM_HUD_VISIBLE`` to ``false`` and
+ ``GALLIUM_HUD_TOGGLE_SIGNAL`` to ``10`` (``SIGUSR1``). Use
+ ``kill -10 <pid>`` to toggle the hud as desired.
+``GALLIUM_HUD_SCALE``
+ Scale hud by an integer factor, for high DPI displays. Default is 1.
+``GALLIUM_HUD_DUMP_DIR``
+ specifies a directory for writing the displayed hud values into
+ files.
+``GALLIUM_DRIVER``
+ useful in combination with ``LIBGL_ALWAYS_SOFTWARE=true`` for
+ choosing one of the software renderers ``softpipe``, ``llvmpipe`` or
+ ``swr``.
+``GALLIUM_LOG_FILE``
+ specifies a file for logging all errors, warnings, etc. rather than
+ stderr.
+``GALLIUM_PRINT_OPTIONS``
+ if non-zero, print all the Gallium environment variables which are
+ used, and their current values.
+``GALLIUM_DUMP_CPU``
+ if non-zero, print information about the CPU on start-up
+``TGSI_PRINT_SANITY``
+ if set, do extra sanity checking on TGSI shaders and print any errors
+ to stderr.
+``DRAW_FSE``
+ ???
+``DRAW_NO_FSE``
+ ???
+``DRAW_USE_LLVM``
+ if set to zero, the draw module will not use LLVM to execute shaders,
+ vertex fetch, etc.
+``ST_DEBUG``
+ controls debug output from the Mesa/Gallium state tracker. Setting to
+ ``tgsi``, for example, will print all the TGSI shaders. See
+ ``src/mesa/state_tracker/st_debug.c`` for other options.
+
+Clover environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``CLOVER_EXTRA_BUILD_OPTIONS``
+ allows specifying additional compiler and linker options. Specified
+ options are appended after the options set by the OpenCL program in
+ ``clBuildProgram``.
+``CLOVER_EXTRA_COMPILE_OPTIONS``
+ allows specifying additional compiler options. Specified options are
+ appended after the options set by the OpenCL program in
+ ``clCompileProgram``.
+``CLOVER_EXTRA_LINK_OPTIONS``
+ allows specifying additional linker options. Specified options are
+ appended after the options set by the OpenCL program in
+ ``clLinkProgram``.
+
+Softpipe driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``SOFTPIPE_DUMP_FS``
+ if set, the softpipe driver will print fragment shaders to stderr
+``SOFTPIPE_DUMP_GS``
+ if set, the softpipe driver will print geometry shaders to stderr
+``SOFTPIPE_NO_RAST``
+ if set, rasterization is no-op'd. For profiling purposes.
+``SOFTPIPE_USE_LLVM``
+ if set, the softpipe driver will try to use LLVM JIT for vertex
+ shading processing.
+
+LLVMpipe driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``LP_NO_RAST``
+ if set LLVMpipe will no-op rasterization
+``LP_DEBUG``
+ a comma-separated list of debug options is accepted. See the source
+ code for details.
+``LP_PERF``
+ a comma-separated list of options to selectively no-op various parts
+ of the driver. See the source code for details.
+``LP_NUM_THREADS``
+ an integer indicating how many threads to use for rendering. Zero
+ turns off threading completely. The default value is the number of
+ CPU cores present.
+
+VMware SVGA driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``SVGA_FORCE_SWTNL``
+ force use of software vertex transformation
+``SVGA_NO_SWTNL``
+ don't allow software vertex transformation fallbacks (will often
+ result in incorrect rendering).
+``SVGA_DEBUG``
+ for dumping shaders, constant buffers, etc. See the code for details.
+``SVGA_EXTRA_LOGGING``
+ if set, enables extra logging to the ``vmware.log`` file, such as the
+ OpenGL program's name and command line arguments.
+``SVGA_NO_LOGGING``
+ if set, disables logging to the ``vmware.log`` file. This is useful
+ when using Valgrind because it otherwise crashes when initializing
+ the host log feature.
+
+See the driver code for other, lesser-used variables.
+
+WGL environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``WGL_SWAP_INTERVAL``
+ to set a swap interval, equivalent to calling
+ ``wglSwapIntervalEXT()`` in an application. If this environment
+ variable is set, application calls to ``wglSwapIntervalEXT()`` will
+ have no effect.
+
+VA-API environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``VAAPI_MPEG4_ENABLED``
+ enable MPEG4 for VA-API, disabled by default.
+
+VC4 driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``VC4_DEBUG``
+ a comma-separated list of named flags, which do various things:
+
+ ``cl``
+ dump command list during creation
+ ``qpu``
+ dump generated QPU instructions
+ ``qir``
+ dump QPU IR during program compile
+ ``nir``
+ dump NIR during program compile
+ ``tgsi``
+ dump TGSI during program compile
+ ``shaderdb``
+ dump program compile information for shader-db analysis
+ ``perf``
+ print during performance-related events
+ ``norast``
+ skip actual hardware execution of commands
+ ``always_flush``
+ flush after each draw call
+ ``always_sync``
+ wait for finish after each flush
+ ``dump``
+ write a GPU command stream trace file (VC4 simulator only)
+
+RADV driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``RADV_DEBUG``
+ a comma-separated list of named flags, which do various things:
+
+ ``allbos``
+ force all allocated buffers to be referenced in submissions
+ ``allentrypoints``
+ enable all device/instance entrypoints
+ ``checkir``
+ validate the LLVM IR before LLVM compiles the shader
+ ``errors``
+ display more info about errors
+ ``info``
+ show GPU-related information
+ ``metashaders``
+ dump internal meta shaders
+ ``nobinning``
+ disable primitive binning
+ ``nocache``
+ disable shaders cache
+ ``nocompute``
+ disable compute queue
+ ``nodcc``
+ disable Delta Color Compression (DCC) on images
+ ``nodynamicbounds``
+ do not check OOB access for dynamic descriptors
+ ``nofastclears``
+ disable fast color/depthstencil clears
+ ``nohiz``
+ disable HIZ for depthstencil images
+ ``noibs``
+ disable directly recording command buffers in GPU-visible memory
+ ``noloadstoreopt``
+ disable LLVM SILoadStoreOptimizer pass
+ ``nomemorycache``
+ disable memory shaders cache
+ ``nongg``
+ disable NGG for GFX10+
+ ``nooutoforder``
+ disable out-of-order rasterization
+ ``noshaderballot``
+ disable shader ballot
+ ``nothreadllvm``
+ disable LLVM threaded compilation
+ ``preoptir``
+ dump LLVM IR before any optimizations
+ ``shaders``
+ dump shaders
+ ``shaderstats``
+ dump shader statistics
+ ``spirv``
+ dump SPIR-V
+ ``startup``
+ display info at startup
+ ``syncshaders``
+ synchronize shaders after all draws/dispatches
+ ``vmfaults``
+ check for VM memory faults via dmesg
+ ``zerovram``
+ initialize all memory allocated in VRAM as zero
+
+``RADV_FORCE_FAMILY``
+ create a null device to compile shaders without a AMD GPU (eg.
+ gfx900)
+``RADV_PERFTEST``
+ a comma-separated list of named flags, which do various things:
+
+ ``aco``
+ enable ACO experimental compiler
+ ``bolist``
+ enable the global BO list
+ ``cswave32``
+ enable wave32 for compute shaders (GFX10+)
+ ``dccmsaa``
+ enable DCC for MSAA images
+ ``dfsm``
+ enable dfsm
+ ``gewave32``
+ enable wave32 for vertex/tess/geometry shaders (GFX10+)
+ ``localbos``
+ enable local BOs
+ ``pswave32``
+ enable wave32 for pixel shaders (GFX10+)
+ ``shader_ballot``
+ enable shader ballot
+ ``tccompatcmask``
+ enable TC-compat cmask for MSAA images
+
+``RADV_SECURE_COMPILE_THREADS``
+ maximum number of secure compile threads (up to 32)
+``RADV_TEX_ANISO``
+ force anisotropy filter (up to 16)
+``RADV_TRACE_FILE``
+ generate cmdbuffer tracefiles when a GPU hang is detected
+``ACO_DEBUG``
+ a comma-separated list of named flags, which do various things:
+
+ ``validateir``
+ validate the ACO IR at various points of compilation (enabled by
+ default for debug/debugoptimized builds)
+ ``validatera``
+ validate register assignment of ACO IR and catches many RA bugs
+ ``perfwarn``
+ abort on some suboptimal code generation
+
+radeonsi driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``AMD_DEBUG``
+ a comma-separated list of named flags, which do various things:
+``nodma``
+ Disable SDMA
+``nodmaclear``
+ Disable SDMA clears
+``nodmacopyimage``
+ Disable SDMA image copies
+``zerovram``
+ Clear VRAM allocations.
+``nodcc``
+ Disable DCC.
+``nodccclear``
+ Disable DCC fast clear.
+``nodccfb``
+ Disable separate DCC on the main framebuffer
+``nodccmsaa``
+ Disable DCC for MSAA
+``nodpbb``
+ Disable DPBB.
+``nodfsm``
+ Disable DFSM.
+``notiling``
+ Disable tiling
+``nofmask``
+ Disable MSAA compression
+``nohyperz``
+ Disable Hyper-Z
+``norbplus``
+ Disable RB+.
+``no2d``
+ Disable 2D tiling
+``info``
+ Print driver information
+``tex``
+ Print texture info
+``compute``
+ Print compute info
+``vm``
+ Print virtual addresses when creating resources
+``vs``
+ Print vertex shaders
+``ps``
+ Print pixel shaders
+``gs``
+ Print geometry shaders
+``tcs``
+ Print tessellation control shaders
+``tes``
+ Print tessellation evaluation shaders
+``cs``
+ Print compute shaders
+``noir``
+ Don't print the LLVM IR
+``nonir``
+ Don't print NIR when printing shaders
+``noasm``
+ Don't print disassembled shaders
+``preoptir``
+ Print the LLVM IR before initial optimizations
+``gisel``
+ Enable LLVM global instruction selector.
+``w32ge``
+ Use Wave32 for vertex, tessellation, and geometry shaders.
+``w32ps``
+ Use Wave32 for pixel shaders.
+``w32cs``
+ Use Wave32 for computes shaders.
+``w64ge``
+ Use Wave64 for vertex, tessellation, and geometry shaders.
+``w64ps``
+ Use Wave64 for pixel shaders.
+``w64cs``
+ Use Wave64 for computes shaders.
+``checkir``
+ Enable additional sanity checks on shader IR
+``mono``
+ Use old-style monolithic shaders compiled on demand
+``nooptvariant``
+ Disable compiling optimized shader variants.
+``forcedma``
+ Use SDMA for all operations when possible.
+``nowc``
+ Disable GTT write combining
+``check_vm``
+ Check VM faults and dump debug info.
+``reserve_vmid``
+ Force VMID reservation per context.
+``nogfx``
+ Disable graphics. Only multimedia compute paths can be used.
+``nongg``
+ Disable NGG and use the legacy pipeline.
+``nggc``
+ Always use NGG culling even when it can hurt.
+``nonggc``
+ Disable NGG culling.
+``alwayspd``
+ Always enable the primitive discard compute shader.
+``pd``
+ Enable the primitive discard compute shader for large draw calls.
+``nopd``
+ Disable the primitive discard compute shader.
+``switch_on_eop``
+ Program WD/IA to switch on end-of-packet.
+``nooutoforder``
+ Disable out-of-order rasterization
+``dpbb``
+ Enable DPBB.
+``dfsm``
+ Enable DFSM.
+
+Other Gallium drivers have their own environment variables. These may
+change frequently so the source code should be consulted for details.
diff --git a/docs/extensions.html b/docs/extensions.html
deleted file mode 100644
index ffdad88c621..00000000000
--- a/docs/extensions.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Mesa Extensions</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Mesa Extensions</h1>
-
-<p>
-A number of extensions have been developed especially for Mesa.
-The specifications follow.
-</p>
-
-
-<ul>
-<li><a href="specs/OLD/MESA_agp_offset.spec">MESA_agp_offset.spec</a>
-<li><a href="specs/MESA_copy_sub_buffer.spec">MESA_copy_sub_buffer.spec</a>
-<li><a href="specs/MESA_drm_image.spec">MESA_drm_image.spec</a>
-<li><a href="specs/MESA_multithread_makecurrent.spec">MESA_multithread_makecurrent.spec</a>
-<li><a href="specs/OLD/MESA_packed_depth_stencil.spec">MESA_packed_depth_stencil.spec</a> (obsolete)
-<li><a href="specs/MESA_pack_invert.spec">MESA_pack_invert.spec</a>
-<li><a href="specs/MESA_pixmap_colormap.spec">MESA_pixmap_colormap.spec</a>
-<li><a href="specs/OLD/MESA_program_debug.spec">MESA_program_debug.spec</a> (obsolete)
-<li><a href="specs/MESA_release_buffers.spec">MESA_release_buffers.spec</a>
-<li><a href="specs/OLD/MESA_resize_buffers.spec">MESA_resize_buffers.spec</a> (obsolete)
-<li><a href="specs/OLD/MESA_set_3dfx_mode.spec">MESA_set_3dfx_mode.spec</a>
-<li><a href="specs/MESA_shader_debug.spec">MESA_shader_debug.spec</a>
-<li><a href="specs/OLD/MESA_sprite_point.spec">MESA_sprite_point.spec</a> (obsolete)
-<li><a href="specs/MESA_swap_control.spec">MESA_swap_control.spec</a>
-<li><a href="specs/MESA_swap_frame_usage.spec">MESA_swap_frame_usage.spec</a>
-<li><a href="specs/MESA_texture_array.spec">MESA_texture_array.spec</a>
-<li><a href="specs/MESA_texture_signed_rgba.spec">MESA_texture_signed_rgba.spec</a>
-<li><a href="specs/OLD/MESA_trace.spec">MESA_trace.spec</a> (obsolete)
-<li><a href="specs/MESA_window_pos.spec">MESA_window_pos.spec</a>
-<li><a href="specs/MESA_ycbcr_texture.spec">MESA_ycbcr_texture.spec</a>
-<li><a href="specs/WL_bind_wayland_display.spec">WL_bind_wayland_display.spec</a>
-</ul>
-
-</div>
-</body>
-</html>
diff --git a/docs/extensions.rst b/docs/extensions.rst
new file mode 100644
index 00000000000..d4a3dba71ae
--- /dev/null
+++ b/docs/extensions.rst
@@ -0,0 +1,31 @@
+Mesa Extensions
+===============
+
+A number of extensions have been developed especially for Mesa. The
+specifications follow.
+
+- `MESA_agp_offset.spec <specs/OLD/MESA_agp_offset.spec>`__
+- `MESA_copy_sub_buffer.spec <specs/MESA_copy_sub_buffer.spec>`__
+- `MESA_drm_image.spec <specs/MESA_drm_image.spec>`__
+- `MESA_multithread_makecurrent.spec <specs/MESA_multithread_makecurrent.spec>`__
+- `MESA_packed_depth_stencil.spec <specs/OLD/MESA_packed_depth_stencil.spec>`__
+ (obsolete)
+- `MESA_pack_invert.spec <specs/MESA_pack_invert.spec>`__
+- `MESA_pixmap_colormap.spec <specs/MESA_pixmap_colormap.spec>`__
+- `MESA_program_debug.spec <specs/OLD/MESA_program_debug.spec>`__
+ (obsolete)
+- `MESA_release_buffers.spec <specs/MESA_release_buffers.spec>`__
+- `MESA_resize_buffers.spec <specs/OLD/MESA_resize_buffers.spec>`__
+ (obsolete)
+- `MESA_set_3dfx_mode.spec <specs/OLD/MESA_set_3dfx_mode.spec>`__
+- `MESA_shader_debug.spec <specs/MESA_shader_debug.spec>`__
+- `MESA_sprite_point.spec <specs/OLD/MESA_sprite_point.spec>`__
+ (obsolete)
+- `MESA_swap_control.spec <specs/MESA_swap_control.spec>`__
+- `MESA_swap_frame_usage.spec <specs/MESA_swap_frame_usage.spec>`__
+- `MESA_texture_array.spec <specs/MESA_texture_array.spec>`__
+- `MESA_texture_signed_rgba.spec <specs/MESA_texture_signed_rgba.spec>`__
+- `MESA_trace.spec <specs/OLD/MESA_trace.spec>`__ (obsolete)
+- `MESA_window_pos.spec <specs/MESA_window_pos.spec>`__
+- `MESA_ycbcr_texture.spec <specs/MESA_ycbcr_texture.spec>`__
+- `WL_bind_wayland_display.spec <specs/WL_bind_wayland_display.spec>`__
diff --git a/docs/faq.html b/docs/faq.html
deleted file mode 100644
index 2d0f22ffd89..00000000000
--- a/docs/faq.html
+++ /dev/null
@@ -1,382 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Frequently Asked Questions</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Frequently Asked Questions</h1>
-Last updated: 19 September 2018
-
-<h2>Index</h2>
-<ol>
- <li><a href="#part1">High-level Questions and Answers</a></li>
- <li><a href="#part2">Compilation and Installation Problems</a></li>
- <li><a href="#part3">Runtime / Rendering Problems</a></li>
- <li><a href="#part4">Developer Questions</a></li>
-</ol>
-
-<h2 id="part1">1. High-level Questions and Answers</h2>
-
-<h3>1.1 What is Mesa?</h3>
-<p>
-Mesa is an open-source implementation of the OpenGL specification.
-OpenGL is a programming library for writing interactive 3D applications.
-See the <a href="https://www.opengl.org/">OpenGL website</a> for more
-information.
-</p>
-<p>
-Mesa 9.x supports the OpenGL 3.1 specification.
-</p>
-
-
-<h2>1.2 Does Mesa support/use graphics hardware?</h2>
-<p>
-Yes. Specifically, Mesa serves as the OpenGL core for the open-source DRI
-drivers for X.org.
-</p>
-<ul>
- <li>See the <a href="https://dri.freedesktop.org/">DRI website</a>
- for more information.</li>
- <li>See <a href="https://01.org/linuxgraphics">01.org</a>
- for more information about Intel drivers.</li>
- <li>See <a href="https://nouveau.freedesktop.org">nouveau.freedesktop.org</a>
- for more information about Nouveau drivers.</li>
- <li>See <a href="https://www.x.org/wiki/RadeonFeature">www.x.org/wiki/RadeonFeature</a>
- for more information about Radeon drivers.</li>
-</ul>
-
-<h2>1.3 What purpose does Mesa serve today?</h2>
-<p>
-Hardware-accelerated OpenGL implementations are available for most popular
-operating systems today.
-Still, Mesa serves at least these purposes:
-</p>
-<ul>
-<li>Mesa is used as the core of the open-source X.org DRI
- hardware drivers.
-</li>
-<li>Mesa is quite portable and allows OpenGL to be used on systems
- that have no other OpenGL solution.
-</li>
-<li>Software rendering with Mesa serves as a reference for validating the
- hardware drivers.
-</li>
-<li>A software implementation of OpenGL is useful for experimentation,
- such as testing new rendering techniques.
-</li>
-<li>Mesa can render images with deep color channels: 16-bit integer
- and 32-bit floating point color channels are supported.
- This capability is only now appearing in hardware.
-</li>
-<li>Mesa's internal limits (max lights, clip planes, texture size, etc) can be
- changed for special needs (hardware limits are hard to overcome).
-</li>
-</ul>
-
-
-<h2>1.4 What's the difference between "Stand-Alone" Mesa and the DRI drivers?</h2>
-<p>
-<em>Stand-alone Mesa</em> is the original incarnation of Mesa.
-On systems running the X Window System it does all its rendering through
-the Xlib API:
-</p>
-<ul>
-<li>The GLX API is supported, but it's really just an emulation of the
- real thing.
-<li>The GLX wire protocol is not supported and there's no OpenGL extension
- loaded by the X server.
-<li>There is no hardware acceleration.
-<li>The OpenGL library, <code>libGL.so</code>, contains everything (the
- programming API, the GLX functions and all the rendering code).
-</ul>
-<p>
-Alternately, Mesa acts as the core for a number of OpenGL hardware drivers
-within the DRI (Direct Rendering Infrastructure):
-<ul>
-<li>The <code>libGL.so</code> library provides the GL and GLX API functions,
- a GLX protocol encoder, and a device driver loader.
-<li>The device driver modules (such as <code>r200_dri.so</code>) contain
- a built-in copy of the core Mesa code.
-<li>The X server loads the GLX module.
- The GLX module decodes incoming GLX protocol and dispatches the commands
- to a rendering module.
- For the DRI, this module is basically a software Mesa renderer.
-</ul>
-
-
-
-<h2>1.5 How do I upgrade my DRI installation to use a new Mesa release?</h2>
-<p>
-This wasn't easy in the past.
-Now, the DRI drivers are included in the Mesa tree and can be compiled
-separately from the X server.
-Just follow the Mesa <a href="install.html">compilation instructions</a>.
-</p>
-
-
-<h2>1.6 Are there other open-source implementations of OpenGL?</h2>
-<p>
-Yes, SGI's <a href="http://web.archive.org/web/20171010115110_/http://oss.sgi.com/projects/ogl-sample/index.html">
-OpenGL Sample Implementation (SI)</a> is available.
-The SI was written during the time that OpenGL was originally designed.
-Unfortunately, development of the SI has stagnated.
-Mesa is much more up to date with modern features and extensions.
-</p>
-
-<p>
-<a href="https://sourceforge.net/projects/ogl-es/">Vincent</a> is
-an open-source implementation of OpenGL ES for mobile devices.
-
-<p>
-<a href="http://web.archive.org/web/20130830162848/http://www.dsbox.com/minigl.html">miniGL</a>
-is a subset of OpenGL for PalmOS devices. The website is gone, but the source
-code can still be found on <a href="https://sourceforge.net/projects/minigl/">sourceforge.net</a>.
-
-<p>
-<a href="http://bellard.org/TinyGL/">TinyGL</a>
-is a subset of OpenGL.
-</p>
-
-<p>
-<a href="https://sourceforge.net/projects/softgl/">SoftGL</a>
-is an OpenGL subset for mobile devices.
-</p>
-
-<p>
-<a href="http://chromium.sourceforge.net/">Chromium</a>
-isn't a conventional OpenGL implementation (it's layered upon OpenGL),
-but it does export the OpenGL API. It allows tiled rendering, sort-last
-rendering, etc.
-</p>
-
-<p>
-<a href="http://www.ticalc.org/archives/files/fileinfo/361/36173.html">ClosedGL</a>
-is an OpenGL subset library for TI graphing calculators.
-</p>
-
-<p>
-There may be other open OpenGL implementations, but Mesa is the most
-popular and feature-complete.
-</p>
-
-
-<h2 id="part2">2. Compilation and Installation Problems</h2>
-
-<h3>2.1 What's the easiest way to install Mesa?</h3>
-<p>
-If you're using a Linux-based system, your distro CD most likely already
-has Mesa packages (like RPM or DEB) which you can easily install.
-</p>
-
-
-<h3>2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</h3>
-<p>
-You're application is written in IRIS GL, not OpenGL.
-IRIS GL was the predecessor to OpenGL and is a different thing (almost)
-entirely.
-Mesa's not the solution.
-</p>
-
-
-<h3>2.3 Where is the GLUT library?</h3>
-<p>
-GLUT (OpenGL Utility Toolkit) is no longer in the separate
-<code>MesaGLUT-x.y.z.tar.gz</code> file.
-If you don't already have GLUT installed, you should grab
-<a href="http://freeglut.sourceforge.net/">freeglut</a>.
-</p>
-
-
-<h3>2.4 Where is the GLw library?</h3>
-<p>
-GLw (OpenGL widget library) is now available from a separate <a href="https://gitlab.freedesktop.org/mesa/glw">git repository</a>. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
-</p>
-
-
-<h2>2.5 What's the proper place for the libraries and headers?</h2>
-<p>
-On Linux-based systems you'll want to follow the
-<a href="https://www.khronos.org/registry/OpenGL/ABI/">Linux ABI</a> standard.
-Basically you'll want the following:
-</p>
-<dl>
-<dt><code>/usr/include/GL/gl.h</code></dt>
-<dd>the main OpenGL header</dd>
-<dt><code>/usr/include/GL/glu.h</code></dt>
-<dd>the OpenGL GLU (utility) header</dd>
-<dt><code>/usr/include/GL/glx.h</code></dt>
-<dd>the OpenGL GLX header</dd>
-<dt><code>/usr/include/GL/glext.h</code></dt>
-<dd>the OpenGL extensions header</dd>
-<dt><code>/usr/include/GL/glxext.h</code></dt>
-<dd>the OpenGL GLX extensions header</dd>
-<dt><code>/usr/include/GL/osmesa.h</code></dt>
-<dd>the Mesa off-screen rendering header</dd>
-<dt><code>/usr/lib/libGL.so</code></dt>
-<dd>a symlink to <code>libGL.so.1</code></dd>
-<dt><code>/usr/lib/libGL.so.1</code></dt>
-<dd>a symlink to <code>libGL.so.1.xyz</code></dd>
-<dt><code>/usr/lib/libGL.so.xyz</code></dt>
-<dd>the actual OpenGL/Mesa library. xyz denotes the
-Mesa version number.
-</dd>
-</dl>
-<p>
-When configuring Mesa, there are three meson options that affect the install
-location that you should take care with: <code>--prefix</code>,
-<code>--libdir</code>, and <code>-D dri-drivers-path</code>. To install Mesa
-into the system location where it will be available for all programs to use, set
-<code>--prefix=/usr</code>. Set <code>--libdir</code> to where your Linux
-distribution installs system libraries, usually either <code>/usr/lib</code> or
-<code>/usr/lib64</code>. Set <code>-D dri-drivers-path</code> to the directory
-where your Linux distribution installs DRI drivers. To find your system's DRI
-driver directory, try executing <code>find /usr -type d -name dri</code>. For
-example, if the <code>find</code> command listed <code>/usr/lib64/dri</code>,
-then set <code>-D dri-drivers-path=/usr/lib64/dri</code>.
-</p>
-<p>
-After determining the correct values for the install location, configure Mesa
-with <code>meson configure --prefix=/usr --libdir=xxx -D dri-drivers-path=xxx</code>
-and then install with <code>sudo ninja install</code>.
-</p>
-
-
-<h2 id="part3">3. Runtime / Rendering Problems</h2>
-
-<h3>3.1 Rendering is slow / why isn't my graphics hardware being used?</h3>
-<p>
-If Mesa can't use its hardware accelerated drivers it falls back on one of its software renderers.
-(eg. classic swrast, softpipe or llvmpipe)
-</p>
-<p>
-You can run the <code>glxinfo</code> program to learn about your OpenGL
-library.
-Look for the <code>OpenGL vendor</code> and <code>OpenGL renderer</code> values.
-That will identify who's OpenGL library with which driver you're using and what sort of
-hardware it has detected.
-</p>
-<p>
-If you're using a hardware accelerated driver you want <code>direct rendering: Yes</code>.
-</p>
-<p>
-If your DRI-based driver isn't working, go to the
-<a href="https://dri.freedesktop.org/">DRI website</a> for trouble-shooting information.
-</p>
-
-
-<h3>3.2 I'm seeing errors in depth (Z) buffering. Why?</h3>
-<p>
-Make sure the ratio of the far to near clipping planes isn't too great.
-Look
-<a href="https://www.opengl.org/archives/resources/faq/technical/depthbuffer.htm#0040">here</a>
-for details.
-</p>
-<p>
-Mesa uses a 16-bit depth buffer by default which is smaller and faster
-to clear than a 32-bit buffer but not as accurate.
-If you need a deeper you can modify the parameters to
-<code>glXChooseVisual</code> in your code.
-</p>
-
-
-<h3>3.3 Why Isn't depth buffering working at all?</h3>
-<p>
-Be sure you're requesting a depth buffered-visual. If you set the
-<code>MESA_DEBUG</code> environment variable it will warn you about trying
-to enable depth testing when you don't have a depth buffer.
-</p>
-<p>Specifically, make sure <code>glutInitDisplayMode</code> is being called
-with <code>GLUT_DEPTH</code> or <code>glXChooseVisual</code> is being
-called with a non-zero value for <code>GLX_DEPTH_SIZE</code>.
-</p>
-<p>This discussion applies to stencil buffers, accumulation buffers and
-alpha channels too.
-</p>
-
-
-<h3>3.4 Why does <code>glGetString()</code> always return <code>NULL</code>?</h3>
-<p>
-Be sure you have an active/current OpenGL rendering context before
-calling <code>glGetString</code>.
-</p>
-
-
-<h3>3.5 <code>GL_POINTS</code> and <code>GL_LINES</code> don't touch the
-right pixels</h3>
-<p>
-If you're trying to draw a filled region by using <code>GL_POINTS</code> or
-<code>GL_LINES</code> and seeing holes or gaps it's because of a float-to-int
-rounding problem. But this is not a bug. See Appendix H of the OpenGL
-Programming Guide - "OpenGL Correctness Tips". Basically, applying a
-translation of (0.375, 0.375, 0.0) to your coordinates will fix the problem.
-</p>
-
-
-<h2 id="part4">4. Developer Questions</h2>
-
-<h3>4.1 How can I contribute?</h3>
-<p>
-First, join the <a href="lists.html">mesa-dev mailing list</a>.
-That's where Mesa development is discussed.
-</p>
-<p>
-The <a href="https://www.opengl.org/documentation">
-OpenGL Specification</a> is the bible for OpenGL implementation work.
-You should read it.
-</p>
-<p>Most of the Mesa development work involves implementing new OpenGL
-extensions, writing hardware drivers (for the DRI), and code optimization.
-</p>
-
-<h3>4.2 How do I write a new device driver?</h3>
-<p>
-Unfortunately, writing a device driver isn't easy.
-It requires detailed understanding of OpenGL, the Mesa code, and your
-target hardware/operating system.
-3D graphics are not simple.
-</p>
-<p>
-The best way to get started is to use an existing driver as your starting
-point.
-For a classic hardware driver, the i965 driver is a good example.
-For a Gallium3D hardware driver, the r300g, r600g and the i915g are good examples.
-</p>
-<p>The DRI website has more information about writing hardware drivers.
-The process isn't well document because the Mesa driver interface changes
-over time, and we seldom have spare time for writing documentation.
-That being said, many people have managed to figure out the process.
-</p>
-<p>
-Joining the appropriate mailing lists and asking questions (and searching
-the archives) is a good way to get information.
-</p>
-
-
-<h3>4.3 Why isn't <code>GL_EXT_texture_compression_s3tc</code> implemented in
-Mesa?</h3>
-<p>
-Oh but it is! Prior to 2nd October 2017, the Mesa project did not include s3tc
-support due to intellectual property (IP) and/or patent issues around the s3tc
-algorithm.
-</p>
-<p>
-As of Mesa 17.3.0, Mesa now officially supports s3tc, as the patent has expired.
-</p>
-<p>
-In versions prior to this, a 3rd party <a href="https://dri.freedesktop.org/wiki/S3TC">
-plug-in library</a> was required.
-</p>
-
-</div>
-</body>
-</html>
diff --git a/docs/faq.rst b/docs/faq.rst
new file mode 100644
index 00000000000..8ce6fdf8f06
--- /dev/null
+++ b/docs/faq.rst
@@ -0,0 +1,322 @@
+Frequently Asked Questions
+==========================
+
+Last updated: 19 September 2018
+
+Index
+-----
+
+#. `High-level Questions and Answers <#part1>`__
+#. `Compilation and Installation Problems <#part2>`__
+#. `Runtime / Rendering Problems <#part3>`__
+#. `Developer Questions <#part4>`__
+
+.. _part1:
+
+1. High-level Questions and Answers
+-----------------------------------
+
+1.1 What is Mesa?
+~~~~~~~~~~~~~~~~~
+
+Mesa is an open-source implementation of the OpenGL specification.
+OpenGL is a programming library for writing interactive 3D applications.
+See the `OpenGL website <https://www.opengl.org/>`__ for more
+information.
+
+Mesa 9.x supports the OpenGL 3.1 specification.
+
+1.2 Does Mesa support/use graphics hardware?
+--------------------------------------------
+
+Yes. Specifically, Mesa serves as the OpenGL core for the open-source
+DRI drivers for X.org.
+
+- See the `DRI website <https://dri.freedesktop.org/>`__ for more
+ information.
+- See `01.org <https://01.org/linuxgraphics>`__ for more information
+ about Intel drivers.
+- See `nouveau.freedesktop.org <https://nouveau.freedesktop.org>`__ for
+ more information about Nouveau drivers.
+- See
+ `www.x.org/wiki/RadeonFeature <https://www.x.org/wiki/RadeonFeature>`__
+ for more information about Radeon drivers.
+
+1.3 What purpose does Mesa serve today?
+---------------------------------------
+
+Hardware-accelerated OpenGL implementations are available for most
+popular operating systems today. Still, Mesa serves at least these
+purposes:
+
+- Mesa is used as the core of the open-source X.org DRI hardware
+ drivers.
+- Mesa is quite portable and allows OpenGL to be used on systems that
+ have no other OpenGL solution.
+- Software rendering with Mesa serves as a reference for validating the
+ hardware drivers.
+- A software implementation of OpenGL is useful for experimentation,
+ such as testing new rendering techniques.
+- Mesa can render images with deep color channels: 16-bit integer and
+ 32-bit floating point color channels are supported. This capability
+ is only now appearing in hardware.
+- Mesa's internal limits (max lights, clip planes, texture size, etc)
+ can be changed for special needs (hardware limits are hard to
+ overcome).
+
+1.4 What's the difference between "Stand-Alone" Mesa and the DRI drivers?
+-------------------------------------------------------------------------
+
+*Stand-alone Mesa* is the original incarnation of Mesa. On systems
+running the X Window System it does all its rendering through the Xlib
+API:
+
+- The GLX API is supported, but it's really just an emulation of the
+ real thing.
+- The GLX wire protocol is not supported and there's no OpenGL
+ extension loaded by the X server.
+- There is no hardware acceleration.
+- The OpenGL library, ``libGL.so``, contains everything (the
+ programming API, the GLX functions and all the rendering code).
+
+Alternately, Mesa acts as the core for a number of OpenGL hardware
+drivers within the DRI (Direct Rendering Infrastructure):
+
+- The ``libGL.so`` library provides the GL and GLX API functions, a GLX
+ protocol encoder, and a device driver loader.
+- The device driver modules (such as ``r200_dri.so``) contain a
+ built-in copy of the core Mesa code.
+- The X server loads the GLX module. The GLX module decodes incoming
+ GLX protocol and dispatches the commands to a rendering module. For
+ the DRI, this module is basically a software Mesa renderer.
+
+1.5 How do I upgrade my DRI installation to use a new Mesa release?
+-------------------------------------------------------------------
+
+This wasn't easy in the past. Now, the DRI drivers are included in the
+Mesa tree and can be compiled separately from the X server. Just follow
+the Mesa `compilation instructions <install.html>`__.
+
+1.6 Are there other open-source implementations of OpenGL?
+----------------------------------------------------------
+
+Yes, SGI's `OpenGL Sample Implementation
+(SI) <http://web.archive.org/web/20171010115110_/http://oss.sgi.com/projects/ogl-sample/index.html>`__
+is available. The SI was written during the time that OpenGL was
+originally designed. Unfortunately, development of the SI has stagnated.
+Mesa is much more up to date with modern features and extensions.
+
+`Vincent <https://sourceforge.net/projects/ogl-es/>`__ is an open-source
+implementation of OpenGL ES for mobile devices.
+
+`miniGL <http://web.archive.org/web/20130830162848/http://www.dsbox.com/minigl.html>`__
+is a subset of OpenGL for PalmOS devices. The website is gone, but the
+source code can still be found on
+`sourceforge.net <https://sourceforge.net/projects/minigl/>`__.
+
+`TinyGL <http://bellard.org/TinyGL/>`__ is a subset of OpenGL.
+
+`SoftGL <https://sourceforge.net/projects/softgl/>`__ is an OpenGL
+subset for mobile devices.
+
+`Chromium <http://chromium.sourceforge.net/>`__ isn't a conventional
+OpenGL implementation (it's layered upon OpenGL), but it does export the
+OpenGL API. It allows tiled rendering, sort-last rendering, etc.
+
+`ClosedGL <http://www.ticalc.org/archives/files/fileinfo/361/36173.html>`__
+is an OpenGL subset library for TI graphing calculators.
+
+There may be other open OpenGL implementations, but Mesa is the most
+popular and feature-complete.
+
+.. _part2:
+
+2. Compilation and Installation Problems
+----------------------------------------
+
+2.1 What's the easiest way to install Mesa?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you're using a Linux-based system, your distro CD most likely already
+has Mesa packages (like RPM or DEB) which you can easily install.
+
+2.2 I get undefined symbols such as bgnpolygon, v3f, etc...
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You're application is written in IRIS GL, not OpenGL. IRIS GL was the
+predecessor to OpenGL and is a different thing (almost) entirely. Mesa's
+not the solution.
+
+2.3 Where is the GLUT library?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+GLUT (OpenGL Utility Toolkit) is no longer in the separate
+``MesaGLUT-x.y.z.tar.gz`` file. If you don't already have GLUT
+installed, you should grab
+`freeglut <http://freeglut.sourceforge.net/>`__.
+
+2.4 Where is the GLw library?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+GLw (OpenGL widget library) is now available from a separate `git
+repository <https://gitlab.freedesktop.org/mesa/glw>`__. Unless you're
+using very old Xt/Motif applications with OpenGL, you shouldn't need it.
+
+2.5 What's the proper place for the libraries and headers?
+----------------------------------------------------------
+
+On Linux-based systems you'll want to follow the `Linux
+ABI <https://www.khronos.org/registry/OpenGL/ABI/>`__ standard.
+Basically you'll want the following:
+
+``/usr/include/GL/gl.h``
+ the main OpenGL header
+``/usr/include/GL/glu.h``
+ the OpenGL GLU (utility) header
+``/usr/include/GL/glx.h``
+ the OpenGL GLX header
+``/usr/include/GL/glext.h``
+ the OpenGL extensions header
+``/usr/include/GL/glxext.h``
+ the OpenGL GLX extensions header
+``/usr/include/GL/osmesa.h``
+ the Mesa off-screen rendering header
+``/usr/lib/libGL.so``
+ a symlink to ``libGL.so.1``
+``/usr/lib/libGL.so.1``
+ a symlink to ``libGL.so.1.xyz``
+``/usr/lib/libGL.so.xyz``
+ the actual OpenGL/Mesa library. xyz denotes the Mesa version number.
+
+When configuring Mesa, there are three meson options that affect the
+install location that you should take care with: ``--prefix``,
+``--libdir``, and ``-D dri-drivers-path``. To install Mesa into the
+system location where it will be available for all programs to use, set
+``--prefix=/usr``. Set ``--libdir`` to where your Linux distribution
+installs system libraries, usually either ``/usr/lib`` or
+``/usr/lib64``. Set ``-D dri-drivers-path`` to the directory where your
+Linux distribution installs DRI drivers. To find your system's DRI
+driver directory, try executing ``find /usr -type d -name dri``. For
+example, if the ``find`` command listed ``/usr/lib64/dri``, then set
+``-D dri-drivers-path=/usr/lib64/dri``.
+
+After determining the correct values for the install location, configure
+Mesa with
+``meson configure --prefix=/usr --libdir=xxx -D dri-drivers-path=xxx``
+and then install with ``sudo ninja install``.
+
+.. _part3:
+
+3. Runtime / Rendering Problems
+-------------------------------
+
+3.1 Rendering is slow / why isn't my graphics hardware being used?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If Mesa can't use its hardware accelerated drivers it falls back on one
+of its software renderers. (eg. classic swrast, softpipe or llvmpipe)
+
+You can run the ``glxinfo`` program to learn about your OpenGL library.
+Look for the ``OpenGL vendor`` and ``OpenGL renderer`` values. That will
+identify who's OpenGL library with which driver you're using and what
+sort of hardware it has detected.
+
+If you're using a hardware accelerated driver you want
+``direct rendering: Yes``.
+
+If your DRI-based driver isn't working, go to the `DRI
+website <https://dri.freedesktop.org/>`__ for trouble-shooting
+information.
+
+3.2 I'm seeing errors in depth (Z) buffering. Why?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Make sure the ratio of the far to near clipping planes isn't too great.
+Look
+`here <https://www.opengl.org/archives/resources/faq/technical/depthbuffer.htm#0040>`__
+for details.
+
+Mesa uses a 16-bit depth buffer by default which is smaller and faster
+to clear than a 32-bit buffer but not as accurate. If you need a deeper
+you can modify the parameters to ``glXChooseVisual`` in your code.
+
+3.3 Why Isn't depth buffering working at all?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Be sure you're requesting a depth buffered-visual. If you set the
+``MESA_DEBUG`` environment variable it will warn you about trying to
+enable depth testing when you don't have a depth buffer.
+
+Specifically, make sure ``glutInitDisplayMode`` is being called with
+``GLUT_DEPTH`` or ``glXChooseVisual`` is being called with a non-zero
+value for ``GLX_DEPTH_SIZE``.
+
+This discussion applies to stencil buffers, accumulation buffers and
+alpha channels too.
+
+3.4 Why does ``glGetString()`` always return ``NULL``?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Be sure you have an active/current OpenGL rendering context before
+calling ``glGetString``.
+
+3.5 ``GL_POINTS`` and ``GL_LINES`` don't touch the right pixels
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you're trying to draw a filled region by using ``GL_POINTS`` or
+``GL_LINES`` and seeing holes or gaps it's because of a float-to-int
+rounding problem. But this is not a bug. See Appendix H of the OpenGL
+Programming Guide - "OpenGL Correctness Tips". Basically, applying a
+translation of (0.375, 0.375, 0.0) to your coordinates will fix the
+problem.
+
+.. _part4:
+
+4. Developer Questions
+----------------------
+
+4.1 How can I contribute?
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+First, join the `mesa-dev mailing list <lists.html>`__. That's where
+Mesa development is discussed.
+
+The `OpenGL Specification <https://www.opengl.org/documentation>`__ is
+the bible for OpenGL implementation work. You should read it.
+
+Most of the Mesa development work involves implementing new OpenGL
+extensions, writing hardware drivers (for the DRI), and code
+optimization.
+
+4.2 How do I write a new device driver?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Unfortunately, writing a device driver isn't easy. It requires detailed
+understanding of OpenGL, the Mesa code, and your target
+hardware/operating system. 3D graphics are not simple.
+
+The best way to get started is to use an existing driver as your
+starting point. For a classic hardware driver, the i965 driver is a good
+example. For a Gallium3D hardware driver, the r300g, r600g and the i915g
+are good examples.
+
+The DRI website has more information about writing hardware drivers. The
+process isn't well document because the Mesa driver interface changes
+over time, and we seldom have spare time for writing documentation. That
+being said, many people have managed to figure out the process.
+
+Joining the appropriate mailing lists and asking questions (and
+searching the archives) is a good way to get information.
+
+4.3 Why isn't ``GL_EXT_texture_compression_s3tc`` implemented in Mesa?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Oh but it is! Prior to 2nd October 2017, the Mesa project did not
+include s3tc support due to intellectual property (IP) and/or patent
+issues around the s3tc algorithm.
+
+As of Mesa 17.3.0, Mesa now officially supports s3tc, as the patent has
+expired.
+
+In versions prior to this, a 3rd party `plug-in
+library <https://dri.freedesktop.org/wiki/S3TC>`__ was required.
diff --git a/docs/helpwanted.html b/docs/helpwanted.html
deleted file mode 100644
index 2dbbc2b744b..00000000000
--- a/docs/helpwanted.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Help Wanted</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Help Wanted</h1>
-
-<p>
-We can always use more help with the Mesa project.
-Here are some specific ideas and areas where help would be appreciated:
-</p>
-
-<ol>
-<li>
-<b>Driver patching and testing.</b>
-Patches are often posted to the <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev mailing list</a>, but aren't
-immediately checked into git because not enough people are testing them.
-Just applying patches, testing and reporting back is helpful.
-<li>
-<b>Driver debugging.</b>
-There are plenty of open bugs in the <a href="https://gitlab.freedesktop.org/mesa/mesa/-/issues">bug database</a>.
-<li>
-<b>Remove aliasing warnings.</b>
-Enable gcc's <code>-Wstrict-aliasing=2 -fstrict-aliasing</code> arguments, and
-track down aliasing issues in the code.
-<li>
-<b>Contribute more tests to
-<a href="https://piglit.freedesktop.org/">Piglit</a>.</b>
-</ol>
-
-<p>
-You can find some further To-do lists here:
-</p>
-
-<p>
-<b>Common To-Do lists:</b>
-</p>
-<ul>
- <li><a href="https://gitlab.freedesktop.org/mesa/mesa/-/blob/master/docs/features.txt">
- <code>features.txt</code></a> - Status of OpenGL 3.x / 4.x features in
- Mesa.</li>
-</ul>
-
-<p>
-<b>Legacy Driver specific To-Do lists:</b>
-</p>
-<ul>
- <li><a href="https://dri.freedesktop.org/wiki/R600ToDo">
- <code>r600g</code></a> - Driver for ATI/AMD R600 - Northern Island.</li>
- <li><a href="https://dri.freedesktop.org/wiki/R300ToDo">
- <code>r300g</code></a> - Driver for ATI R300 - R500.</li>
-</ul>
-
-<p>
-If you want to do something new in Mesa, first join the Mesa developer's
-mailing list.
-Then post a message to propose what you want to do, just to make sure
-there's no issues.
-</p>
-
-<p>
-Anyone is welcome to contribute code to the Mesa project.
-By doing so, it's assumed that you agree to the code's licensing terms.
-</p>
-
-<p>
-Finally:
-</p>
-
-<ol>
-<li>Try to write high-quality code that follows the existing style.
-<li>Use uniform indentation, write comments, use meaningful identifiers, etc.
-<li>Test your code thoroughly. Include test programs if appropriate.
-</ol>
-
-</div>
-</body>
-</html>
diff --git a/docs/helpwanted.rst b/docs/helpwanted.rst
new file mode 100644
index 00000000000..eb44ee3c192
--- /dev/null
+++ b/docs/helpwanted.rst
@@ -0,0 +1,47 @@
+Help Wanted
+===========
+
+We can always use more help with the Mesa project. Here are some
+specific ideas and areas where help would be appreciated:
+
+#. **Driver patching and testing.** Patches are often posted to the
+ `mesa-dev mailing
+ list <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`__,
+ but aren't immediately checked into git because not enough people are
+ testing them. Just applying patches, testing and reporting back is
+ helpful.
+#. **Driver debugging.** There are plenty of open bugs in the `bug
+ database <https://gitlab.freedesktop.org/mesa/mesa/-/issues>`__.
+#. **Remove aliasing warnings.** Enable gcc's
+ ``-Wstrict-aliasing=2 -fstrict-aliasing`` arguments, and track down
+ aliasing issues in the code.
+#. **Contribute more tests
+ to**\ `Piglit <https://piglit.freedesktop.org/>`__\ **.**
+
+You can find some further To-do lists here:
+
+**Common To-Do lists:**
+
+- ```features.txt`` <https://gitlab.freedesktop.org/mesa/mesa/-/blob/master/docs/features.txt>`__
+ - Status of OpenGL 3.x / 4.x features in Mesa.
+
+**Legacy Driver specific To-Do lists:**
+
+- ```r600g`` <https://dri.freedesktop.org/wiki/R600ToDo>`__ - Driver
+ for ATI/AMD R600 - Northern Island.
+- ```r300g`` <https://dri.freedesktop.org/wiki/R300ToDo>`__ - Driver
+ for ATI R300 - R500.
+
+If you want to do something new in Mesa, first join the Mesa developer's
+mailing list. Then post a message to propose what you want to do, just
+to make sure there's no issues.
+
+Anyone is welcome to contribute code to the Mesa project. By doing so,
+it's assumed that you agree to the code's licensing terms.
+
+Finally:
+
+#. Try to write high-quality code that follows the existing style.
+#. Use uniform indentation, write comments, use meaningful identifiers,
+ etc.
+#. Test your code thoroughly. Include test programs if appropriate.
diff --git a/docs/index.html b/docs/index.html
deleted file mode 100644
index f8a19c5f090..00000000000
--- a/docs/index.html
+++ /dev/null
@@ -1,2769 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>The Mesa 3D Graphics Library</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>News</h1>
-
-<h2>June 11, 2020</h2>
-<p><a href="relnotes/20.0.8.html">Mesa 20.0.8</a> is released. This is a bug fix release.</p>
-<p>
-NOTE: It is anticipated that 20.0.8 will be the final release in the
-20.0 series. Users of 20.0 are encouraged to migrate to the 20.1
-series in order to obtain future fixes.
-</p>
-<h2>June 10, 2020</h2>
-<p><a href="relnotes/20.1.1.html">Mesa 20.1.1</a> is released. This is a bug fix release.</p>
-<h2>May 27, 2020</h2>
-<p><a href="relnotes/20.1.0.html">Mesa 20.1.0</a> is released. This is a new development release. See the release notes for more information about this release.</p>
-<h2>May 14, 2020</h2>
-<p><a href="relnotes/20.0.7.html">Mesa 20.0.7</a> is released. This is a bug fix release.</p>
-<h2>April 29, 2020</h2>
-<p><a href="relnotes/20.0.6.html">Mesa 20.0.6</a> is released. This is a bug fix release.</p>
-<h2>April 22, 2020</h2>
-<p><a href="relnotes/20.0.5.html">Mesa 20.0.5</a> is released. This is a bug fix release.</p>
-<h2>April 3, 2020</h2>
-<p><a href="relnotes/20.0.4.html">Mesa 20.0.4</a> is released. This is an emergency release which reverts a serious SPIR-V regression in the 20.0.3 release. Users of 20.0.3 are recommended to upgrade immediately.</p>
-<h2>April 1, 2020</h2>
-<p><a href="relnotes/20.0.3.html">Mesa 20.0.3</a> is released. This is a bug fix release.</p>
-<h2>March 18, 2020</h2>
-<p><a href="relnotes/20.0.2.html">Mesa 20.0.2</a> is released. This is a bug fix release.</p>
-<h2>March 9, 2020</h2>
-<p><a href="relnotes/19.3.5.html">Mesa 19.3.5</a> is released. This is a bug fix release, and the final 19.3.x release. Users are encouraged to migrate to 20.0.x in order to obtain future fixes.</p>
-<h2>March 5, 2020</h2>
-<p><a href="relnotes/20.0.1.html">Mesa 20.0.1</a> is released. This is a bug fix release.</p>
-<h2>February 19, 2020</h2>
-<p><a href="relnotes/20.0.0.html">Mesa 20.0.0</a> is released. This is a new development release. See the release notes for more information about this release.</p>
-<h2>February 13, 2020</h2>
-<p><a href="relnotes/19.3.4.html">Mesa 19.3.4</a> is released. This is a bug fix release.</p>
-<h2>January 28, 2020</h2>
-<p><a href="relnotes/19.3.3.html">Mesa 19.3.3</a> is released. This is a bug fix release.</p>
-<h2>January 9, 2020</h2>
-<p><a href="relnotes/19.3.2.html">Mesa 19.3.2</a> is released. This is a bug fix release.</p>
-<h2>December 18, 2019</h2>
-<p><a href="relnotes/19.2.8.html">Mesa 19.2.8</a> is released. This is a bug fix release.</p>
-<h2>December 18, 2019</h2>
-<p><a href="relnotes/19.3.1.html">Mesa 19.3.1</a> is released. This is a bug fix release.</p>
-<h2>December 12, 2019</h2>
-<p><a href="relnotes/19.3.0.html">Mesa 19.3.0</a> is released. This is a new development release. See the release notes for mor information about this release.</p>
-<h2>December 4, 2019</h2>
-<p><a href="relnotes/19.2.7.html">Mesa 19.2.7</a> is released. This is a bug fix release.</p>
-<h2>November 21, 2019</h2>
-<p><a href="relnotes/19.2.6.html">Mesa 19.2.6</a> is released. This is a bug fix release.</p>
-<h2>November 20, 2019</h2>
-<p><a href="relnotes/19.2.5.html">Mesa 19.2.5</a> is released. This is a bug fix release.</p>
-<h2>November 13, 2019</h2>
-<p><a href="relnotes/19.2.4.html">Mesa 19.2.4</a> is released. This is an emergency bugfix release, all users of 19.2.3 are recomended to upgrade immediately.</p>
-<h2>November 6, 2019</h2>
-<p><a href="relnotes/19.2.3.html">Mesa 19.2.3</a> is released. This is a bug fix release.</p>
-<h2>October 24, 2019</h2>
-<p><a href="relnotes/19.2.2.html">Mesa 19.2.2</a> is released. This is a bug fix release.</p>
-<h2>October 21, 2019</h2>
-<p>
-<a href="relnotes/19.1.8.html">Mesa 19.1.8</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 19.1.8 will be the final release in the
-19.1 series. Users of 19.1 are encouraged to migrate to the 19.2
-series in order to obtain future fixes.
-</p>
-
-<h2>October 9, 2019</h2>
-<p><a href="relnotes/19.2.1.html">Mesa 19.2.1</a> is released. This is a bug fix release.</p>
-<h2>September 25, 2019</h2>
-<p>
-<a href="relnotes/19.2.0.html">Mesa 19.2.0</a> is released.
-This is a new development release. See the release notes for more
-information about this release
-</p>
-
-<h2>September 17, 2019</h2>
-<p>
-<a href="relnotes/19.1.7.html">Mesa 19.1.7</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 3, 2019</h2>
-<p>
-<a href="relnotes/19.1.6.html">Mesa 19.1.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>August 23, 2019</h2>
-<p>
-<a href="relnotes/19.1.5.html">Mesa 19.1.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>August 7, 2019</h2>
-<p>
-<a href="relnotes/19.1.4.html">Mesa 19.1.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 23, 2019</h2>
-<p>
-<a href="relnotes/19.1.3.html">Mesa 19.1.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 9, 2019</h2>
-<p>
-<a href="relnotes/19.1.2.html">Mesa 19.1.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 26, 2019</h2>
-<p>
-<a href="relnotes/19.0.8.html">Mesa 19.0.8</a> is released.
-This is an emergency bug fix release. Users of 19.0.7 should updated to 19.0.8
-or 19.1.1 immediately.
-</p>
-
-<h2>June 25, 2019</h2>
-<p>
-<a href="relnotes/19.1.1.html">Mesa 19.1.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 24, 2019</h2>
-<p>
-<a href="relnotes/19.0.7.html">Mesa 19.0.7</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 19.0.7 will be the final release in the
-19.0 series. Users of 19.0 are encouraged to migrate to the 19.1
-series in order to obtain future fixes.
-</p>
-
-<h2>June 11, 2019</h2>
-<p>
-<a href="relnotes/19.1.0.html">Mesa 19.1.0</a> is released.
-This is a new development release. See the release notes for more
-information about this release
-</p>
-<h2>June 5, 2019</h2>
-<p>
-<a href="relnotes/19.0.6.html">Mesa 19.0.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>May 21, 2019</h2>
-<p>
-<a href="relnotes/19.0.5.html">Mesa 19.0.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>May 9, 2019</h2>
-<p>
-<a href="relnotes/19.0.4.html">Mesa 19.0.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 24, 2019</h2>
-<p>
-<a href="relnotes/19.0.3.html">Mesa 19.0.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 10, 2019</h2>
-<p>
-<a href="relnotes/19.0.2.html">Mesa 19.0.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 5, 2019</h2>
-<p>
-<a href="relnotes/18.3.6.html">Mesa 18.3.6</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 18.3.6 will be the final release in the
-18.3 series. Users of 18.3 are encouraged to migrate to the 19.0
-series in order to obtain future fixes.
-</p>
-
-<h2>March 27, 2019</h2>
-<p>
-<a href="relnotes/19.0.1.html">Mesa 19.0.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>March 18, 2019</h2>
-<p>
-<a href="relnotes/18.3.5.html">Mesa 18.3.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>March 13, 2019</h2>
-<p>
-<a href="relnotes/19.0.0.html">Mesa 19.0.0</a> is released.
-This is a new development release. See the release notes for more
-information about this release
-</p>
-
-<h2>February 18, 2019</h2>
-<p>
-<a href="relnotes/18.3.4.html">Mesa 18.3.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>January 31, 2019</h2>
-<p>
-<a href="relnotes/18.3.3.html">Mesa 18.3.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>January 17, 2019</h2>
-<p>
-<a href="relnotes/18.3.2.html">Mesa 18.3.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>December 27, 2018</h2>
-<p>
-<a href="relnotes/18.2.8.html">Mesa 18.2.8</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 18.2.8 will be the final release in the
-18.2 series. Users of 18.2 are encouraged to migrate to the 18.3
-series in order to obtain future fixes.
-</p>
-
-<h2>December 13, 2018</h2>
-<p>
-<a href="relnotes/18.2.7.html">Mesa 18.2.7</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>December 11, 2018</h2>
-<p>
-<a href="relnotes/18.3.1.html">Mesa 18.3.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>December 7, 2018</h2>
-<p>
-<a href="relnotes/18.3.0.html">Mesa 18.3.0</a> is released. This is a
-new development release. See the release notes for more information
-about the release.
-</p>
-
-<h2>November 28, 2018</h2>
-<p>
-<a href="relnotes/18.2.6.html">Mesa 18.2.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>November 15, 2018</h2>
-<p>
-<a href="relnotes/18.2.5.html">Mesa 18.2.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 31, 2018</h2>
-<p>
-<a href="relnotes/18.2.4.html">Mesa 18.2.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 19, 2018</h2>
-<p>
-<a href="relnotes/18.2.3.html">Mesa 18.2.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 5, 2018</h2>
-<p>
-<a href="relnotes/18.2.2.html">Mesa 18.2.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 24, 2018</h2>
-<p>
-<a href="relnotes/18.1.9.html">Mesa 18.1.9</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 18.1.9 will be the final release in the
-18.1 series. Users of 18.1 are encouraged to migrate to the 18.2
-series in order to obtain future fixes.
-</p>
-
-<h2>September 21, 2018</h2>
-<p>
-<a href="relnotes/18.2.1.html">Mesa 18.2.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 7, 2018</h2>
-<p>
-<a href="relnotes/18.1.8.html">Mesa 18.1.8</a> and
-<a href="relnotes/18.2.0.html">Mesa 18.2.0</a> are released.
-
-These are, respectively, a bug-fix release from the 18.1 branch and a
-new development release. See the release notes for more information
-about the releases.
-</p>
-
-<h2>August 24, 2018</h2>
-<p>
-<a href="relnotes/18.1.7.html">Mesa 18.1.7</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>August 13, 2018</h2>
-<p>
-<a href="relnotes/18.1.6.html">Mesa 18.1.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 27, 2018</h2>
-<p>
-<a href="relnotes/18.1.5.html">Mesa 18.1.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 13, 2018</h2>
-<p>
-<a href="relnotes/18.1.4.html">Mesa 18.1.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 29, 2018</h2>
-<p>
-<a href="relnotes/18.1.3.html">Mesa 18.1.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 15, 2018</h2>
-<p>
-<a href="relnotes/18.1.2.html">Mesa 18.1.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 3, 2018</h2>
-<p>
-<a href="relnotes/18.0.5.html">Mesa 18.0.5</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 18.0.5 will be the final release in the
-18.0 series. Users of 18.0 are encouraged to migrate to the 18.1
-series in order to obtain future fixes.
-</p>
-
-<h2>June 1, 2018</h2>
-<p>
-<a href="relnotes/18.1.1.html">Mesa 18.1.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>May 18, 2018</h2>
-<p>
-<a href="relnotes/18.1.0.html">Mesa 18.1.0</a> is released. This is a
-new development release. See the release notes for more information
-about the release.
-</p>
-
-<h2>May 17, 2018</h2>
-<p>
-<a href="relnotes/18.0.4.html">Mesa 18.0.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>May 7, 2018</h2>
-<p>
-<a href="relnotes/18.0.3.html">Mesa 18.0.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 28, 2018</h2>
-<p>
-<a href="relnotes/18.0.2.html">Mesa 18.0.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 18, 2018</h2>
-<p>
-<a href="relnotes/18.0.1.html">Mesa 18.0.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 18, 2018</h2>
-<p>
-<a href="relnotes/17.3.9.html">Mesa 17.3.9</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 17.3.9 will be the final release in the
-17.3 series. Users of 17.3 are encouraged to migrate to the 18.0
-series in order to obtain future fixes.
-</p>
-
-<h2>April 03, 2018</h2>
-<p>
-<a href="relnotes/17.3.8.html">Mesa 17.3.8</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>March 27, 2018</h2>
-<p>
-<a href="relnotes/18.0.0.html">Mesa 18.0.0</a> is released. This is a
-new development release. See the release notes for more information
-about the release.
-</p>
-
-<h2>March 21, 2018</h2>
-<p>
-<a href="relnotes/17.3.7.html">Mesa 17.3.7</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>February 26, 2018</h2>
-<p>
-<a href="relnotes/17.3.6.html">Mesa 17.3.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>February 19, 2018</h2>
-<p>
-<a href="relnotes/17.3.5.html">Mesa 17.3.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>February 15, 2018</h2>
-<p>
-<a href="relnotes/17.3.4.html">Mesa 17.3.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>January 18, 2018</h2>
-<p>
-<a href="relnotes/17.3.3.html">Mesa 17.3.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>January 8, 2018</h2>
-<p>
-<a href="relnotes/17.3.2.html">Mesa 17.3.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>December 22, 2017</h2>
-<p>
-<a href="relnotes/17.2.8.html">Mesa 17.2.8</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 17.2.8 will be the final release in the
-17.2 series. Users of 17.2 are encouraged to migrate to the 17.3
-series in order to obtain future fixes.
-</p>
-
-<h2>December 21, 2017</h2>
-<p>
-<a href="relnotes/17.3.1.html">Mesa 17.3.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>December 14, 2017</h2>
-<p>
-<a href="relnotes/17.2.7.html">Mesa 17.2.7</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>December 8, 2017</h2>
-<p>
-<a href="relnotes/17.3.0.html">Mesa 17.3.0</a> is released. This is a
-new development release. See the release notes for more information
-about the release.
-</p>
-
-<h2>November 25, 2017</h2>
-<p>
-<a href="relnotes/17.2.6.html">Mesa 17.2.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>November 10, 2017</h2>
-<p>
-<a href="relnotes/17.2.5.html">Mesa 17.2.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 30, 2017</h2>
-<p>
-<a href="relnotes/17.2.4.html">Mesa 17.2.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 19, 2017</h2>
-<p>
-<a href="relnotes/17.2.3.html">Mesa 17.2.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 2, 2017</h2>
-<p>
-<a href="relnotes/17.2.2.html">Mesa 17.2.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 25, 2017</h2>
-<p>
-<a href="relnotes/17.1.10.html">Mesa 17.1.10</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 17.1.10 will be the final release in the
-17.1 series. Users of 17.1 are encouraged to migrate to the 17.2
-series in order to obtain future fixes.
-</p>
-
-<h2>September 17, 2017</h2>
-<p>
-<a href="relnotes/17.2.1.html">Mesa 17.2.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 8, 2017</h2>
-<p>
-<a href="relnotes/17.1.9.html">Mesa 17.1.9</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 4, 2017</h2>
-<p>
-<a href="relnotes/17.2.0.html">Mesa 17.2.0</a> is released. This is a
-new development release. See the release notes for more information
-about the release.
-</p>
-
-<h2>August 28, 2017</h2>
-<p>
-<a href="relnotes/17.1.8.html">Mesa 17.1.8</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>August 21, 2017</h2>
-<p>
-<a href="relnotes/17.1.7.html">Mesa 17.1.7</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>August 7, 2017</h2>
-<p>
-<a href="relnotes/17.1.6.html">Mesa 17.1.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 14, 2017</h2>
-<p>
-<a href="relnotes/17.1.5.html">Mesa 17.1.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 30, 2017</h2>
-<p>
-<a href="relnotes/17.1.4.html">Mesa 17.1.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 19, 2017</h2>
-<p>
-<a href="relnotes/17.1.3.html">Mesa 17.1.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 5, 2017</h2>
-<p>
-<a href="relnotes/17.1.2.html">Mesa 17.1.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 1, 2017</h2>
-<p>
-<a href="relnotes/17.0.7.html">Mesa 17.0.7</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 17.0.7 will be the final release in the 17.0
-series. Users of 17.0 are encouraged to migrate to the 17.1 series in order
-to obtain future fixes.
-</p>
-
-<h2>May 25, 2017</h2>
-<p>
-<a href="relnotes/17.1.1.html">Mesa 17.1.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>May 12, 2017</h2>
-<p>
-<a href="relnotes/17.0.6.html">Mesa 17.0.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>May 10, 2017</h2>
-<p>
-<a href="relnotes/17.1.0.html">Mesa 17.1.0</a> is released. This is a
-new development release. See the release notes for more information
-about the release.
-</p>
-
-<h2>April 28, 2017</h2>
-<p>
-<a href="relnotes/17.0.5.html">Mesa 17.0.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 17, 2017</h2>
-<p>
-<a href="relnotes/17.0.4.html">Mesa 17.0.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 1, 2017</h2>
-<p>
-<a href="relnotes/17.0.3.html">Mesa 17.0.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>March 20, 2017</h2>
-<p>
-<a href="relnotes/13.0.6.html">Mesa 13.0.6</a> and
-<a href="relnotes/17.0.2.html">Mesa 17.0.2</a> are released.
-
-These are bug-fix releases from the 13.0 and 17.0 branches, respectively.
-</p>
-<p>
-NOTE: It is anticipated that 13.0.6 will be the final release in the 13.0
-series. Users of 13.0 are encouraged to migrate to the 17.0 series in order
-to obtain future fixes.
-</p>
-
-<h2>March 4, 2017</h2>
-<p>
-<a href="relnotes/17.0.1.html">Mesa 17.0.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>February 20, 2017</h2>
-<p>
-<a href="relnotes/13.0.5.html">Mesa 13.0.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>February 13, 2017</h2>
-<p>
-<a href="relnotes/17.0.0.html">Mesa 17.0.0</a> is released. This is a
-new development release. See the release notes for more information
-about the release.
-</p>
-
-<h2>February 1, 2017</h2>
-<p>
-<a href="relnotes/13.0.4.html">Mesa 13.0.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>January 23, 2017</h2>
-<p>
-<a href="relnotes/12.0.6.html">Mesa 12.0.6</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: This is an extra release for the 12.0 stable branch, as per developers'
-feedback. It is anticipated that 12.0.6 will be the final release in the 12.0
-series. Users of 12.0 are encouraged to migrate to the 13.0 series in order
-to obtain future fixes.
-</p>
-
-<h2>January 5, 2017</h2>
-<p>
-<a href="relnotes/13.0.3.html">Mesa 13.0.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>December 5, 2016</h2>
-<p>
-<a href="relnotes/12.0.5.html">Mesa 12.0.5</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 12.0.5 will be the final release in the 12.0
-series. Users of 12.0 are encouraged to migrate to the 13.0 series in order
-to obtain future fixes.
-</p>
-
-<h2>November 28, 2016</h2>
-<p>
-<a href="relnotes/13.0.2.html">Mesa 13.0.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>November 14, 2016</h2>
-<p>
-<a href="relnotes/13.0.1.html">Mesa 13.0.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>November 10, 2016</h2>
-<p>
-<a href="relnotes/12.0.4.html">Mesa 12.0.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>November 1, 2016</h2>
-<p>
-<a href="relnotes/13.0.0.html">Mesa 13.0.0</a> is released. This is a
-new development release. See the release notes for more information
-about the release.
-</p>
-
-<h2>September 15, 2016</h2>
-<p>
-<a href="relnotes/12.0.3.html">Mesa 12.0.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 2, 2016</h2>
-<p>
-<a href="relnotes/12.0.2.html">Mesa 12.0.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 8, 2016</h2>
-<p>
-<a href="relnotes/12.0.1.html">Mesa 12.0.1</a> is released.
-This is a bug-fix release, resolving build issues in the r600 and
-radeonsi drivers.
-</p>
-
-<p>
-<a href="relnotes/12.0.0.html">Mesa 12.0.0</a> is released. This is a
-new development release. See the release notes for more information
-about the release.
-</p>
-
-<h2>May 9, 2016</h2>
-<p>
-<a href="relnotes/11.1.4.html">Mesa 11.1.4</a> and
-<a href="relnotes/11.2.2.html">Mesa 11.2.2</a> are released.
-
-These are bug-fix releases from the 11.1 and 11.2 branches, respectively.
-</p>
-<p>
-NOTE: It is anticipated that 11.1.4 will be the final release in the 11.1.4
-series. Users of 11.1 are encouraged to migrate to the 11.2 series in order
-to obtain future fixes.
-</p>
-
-<h2>April 17, 2016</h2>
-<p>
-<a href="relnotes/11.1.3.html">Mesa 11.1.3</a> and
-<a href="relnotes/11.2.1.html">Mesa 11.2.1</a> are released.
-
-These are bug-fix releases from the 11.1 and 11.2 branches, respectively.
-</p>
-
-<h2>April 4, 2016</h2>
-<p>
-<a href="relnotes/11.2.0.html">Mesa 11.2.0</a> is released. This is a
-new development release. See the release notes for more information
-about the release.
-</p>
-
-<h2>February 10, 2016</h2>
-<p>
-<a href="relnotes/11.1.2.html">Mesa 11.1.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>January 22, 2016</h2>
-<p>
-<a href="relnotes/11.0.9.html">Mesa 11.0.9</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 11.0.9 will be the final release in the 11.0
-series. Users of 11.0 are encouraged to migrate to the 11.1 series in order
-to obtain future fixes.
-</p>
-
-<h2>January 13, 2016</h2>
-<p>
-<a href="relnotes/11.1.1.html">Mesa 11.1.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>December 21, 2015</h2>
-<p>
-<a href="relnotes/11.0.8.html">Mesa 11.0.8</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>December 15, 2015</h2>
-<p>
-<a href="relnotes/11.1.0.html">Mesa 11.1.0</a> is released. This is a new
-development release. See the release notes for more information about
-the release.
-</p>
-
-<h2>December 9, 2015</h2>
-<p>
-<a href="relnotes/11.0.7.html">Mesa 11.0.7</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-Mesa demos 8.3.0 is also released.
-See the <a href="https://lists.freedesktop.org/archives/mesa-announce/2015-December/000191.html">announcement</a> for more information about the release.
-You can download it from <a href="ftp://ftp.freedesktop.org/pub/mesa/demos/8.3.0/">ftp.freedesktop.org/pub/mesa/demos/8.3.0/</a>.
-</p>
-
-<h2>November 21, 2015</h2>
-<p>
-<a href="relnotes/11.0.6.html">Mesa 11.0.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>November 11, 2015</h2>
-<p>
-<a href="relnotes/11.0.5.html">Mesa 11.0.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 24, 2015</h2>
-<p>
-<a href="relnotes/11.0.4.html">Mesa 11.0.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 10, 2015</h2>
-<p>
-<a href="relnotes/11.0.3.html">Mesa 11.0.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 3, 2015</h2>
-<p>
-<a href="relnotes/10.6.9.html">Mesa 10.6.9</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 10.6.9 will be the final release in the 10.6
-series. Users of 10.6 are encouraged to migrate to the 11.0 series in order
-to obtain future fixes.
-</p>
-
-<h2>September 28, 2015</h2>
-<p>
-<a href="relnotes/11.0.2.html">Mesa 11.0.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 26, 2015</h2>
-<p>
-<a href="relnotes/11.0.1.html">Mesa 11.0.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 20, 2015</h2>
-<p>
-<a href="relnotes/10.6.8.html">Mesa 10.6.8</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 12, 2015</h2>
-<p>
-<a href="relnotes/11.0.0.html">Mesa 11.0.0</a> is released. This is a new
-development release. See the release notes for more information about
-the release.
-</p>
-
-<h2>September 10, 2015</h2>
-<p>
-<a href="relnotes/10.6.7.html">Mesa 10.6.7</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>September 4, 2015</h2>
-<p>
-<a href="relnotes/10.6.6.html">Mesa 10.6.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>August 22, 2015</h2>
-<p>
-<a href="relnotes/10.6.5.html">Mesa 10.6.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>August 11, 2015</h2>
-<p>
-<a href="relnotes/10.6.4.html">Mesa 10.6.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 26, 2015</h2>
-<p>
-<a href="relnotes/10.6.3.html">Mesa 10.6.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 11, 2015</h2>
-<p>
-<a href="relnotes/10.6.2.html">Mesa 10.6.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 04, 2015</h2>
-<p>
-<a href="relnotes/10.5.9.html">Mesa 10.5.9</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: It is anticipated that 10.5.9 will be the final release in the 10.5
-series. Users of 10.5 are encouraged to migrate to the 10.6 series in order
-to obtain future fixes.
-</p>
-
-<h2>June 29, 2015</h2>
-<p>
-<a href="relnotes/10.6.1.html">Mesa 10.6.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 20, 2015</h2>
-<p>
-<a href="relnotes/10.5.8.html">Mesa 10.5.8</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>June 14, 2015</h2>
-<p>
-<a href="relnotes/10.6.0.html">Mesa 10.6.0</a> is released. This is a new
-development release. See the release notes for more information about
-the release.
-</p>
-
-<h2>June 07, 2015</h2>
-<p>
-<a href="relnotes/10.5.7.html">Mesa 10.5.7</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>May 23, 2015</h2>
-<p>
-<a href="relnotes/10.5.6.html">Mesa 10.5.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>May 11, 2015</h2>
-<p>
-<a href="relnotes/10.5.5.html">Mesa 10.5.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 24, 2015</h2>
-<p>
-<a href="relnotes/10.5.4.html">Mesa 10.5.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 12, 2015</h2>
-<p>
-<a href="relnotes/10.5.3.html">Mesa 10.5.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>March 28, 2015</h2>
-<p>
-<a href="relnotes/10.5.2.html">Mesa 10.5.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>March 20, 2015</h2>
-<p>
-<a href="relnotes/10.4.7.html">Mesa 10.4.7</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>March 13, 2015</h2>
-<p>
-<a href="relnotes/10.5.1.html">Mesa 10.5.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>March 06, 2015</h2>
-<p>
-<a href="relnotes/10.5.0.html">Mesa 10.5.0</a> is released. This is a new
-development release. See the release notes for more information about
-the release.
-</p>
-
-<h2>March 06, 2015</h2>
-<p>
-<a href="relnotes/10.4.6.html">Mesa 10.4.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>February 21, 2015</h2>
-<p>
-<a href="relnotes/10.4.5.html">Mesa 10.4.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>February 06, 2015</h2>
-<p>
-<a href="relnotes/10.4.4.html">Mesa 10.4.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>January 24, 2015</h2>
-<p>
-<a href="relnotes/10.4.3.html">Mesa 10.4.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>January 12, 2015</h2>
-<p>
-<a href="relnotes/10.3.7.html">Mesa 10.3.7</a>
-and <a href="relnotes/10.4.2.html">Mesa 10.4.2</a> are released.
-
-These are bug-fix releases from the 10.3 and 10.4 branches, respectively.
-</p>
-<p>
-NOTE: It is anticipated that 10.3.7 will be the final release in the 10.3
-series. Users of 10.3 are encouraged to migrate to the 10.4 series in order
-to obtain future fixes.
-</p>
-
-<h2>December 29, 2014</h2>
-<p>
-<a href="relnotes/10.3.6.html">Mesa 10.3.6</a>
-and <a href="relnotes/10.4.1.html">Mesa 10.4.1</a> are released.
-
-These are bug-fix releases from the 10.3 and 10.4 branches, respectively.
-</p>
-
-<h2>December 14, 2014</h2>
-<p>
-<a href="relnotes/10.4.html">Mesa 10.4</a> is released. This is a new
-development release. See the release notes for more information about
-the release.
-</p>
-
-<h2>December 5, 2014</h2>
-<p>
-<a href="relnotes/10.3.5.html">Mesa 10.3.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>November 21, 2014</h2>
-<p>
-<a href="relnotes/10.3.4.html">Mesa 10.3.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>November 8, 2014</h2>
-<p>
-<a href="relnotes/10.3.3.html">Mesa 10.3.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 24, 2014</h2>
-<p>
-<a href="relnotes/10.3.2.html">Mesa 10.3.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>October 12, 2014</h2>
-<p>
-<a href="relnotes/10.2.9.html">Mesa 10.2.9</a>
-and <a href="relnotes/10.3.1.html">Mesa 10.3.1</a> are released.
-
-These are bug-fix releases from the 10.2 and 10.3 branches, respectively.
-</p>
-<p>
-NOTE: It is anticipated that 10.2.9 will be the final release in the 10.2
-series. Users of 10.2 are encouraged to migrate to the 10.3 series in order
-to obtain future fixes.
-</p>
-
-<h2>September 19, 2014</h2>
-<p>
-<a href="relnotes/10.3.html">Mesa 10.3</a> is released. This is a new
-development release. See the release notes for more information about
-the release.
-</p>
-<p>
-Also, <a href="relnotes/10.2.8.html">Mesa 10.2.8</a> is released.
-This is a bug fix release from the 10.2 branch.
-</p>
-
-<h2>September 6, 2014</h2>
-<p>
-<a href="relnotes/10.2.7.html">Mesa 10.2.7</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>August 19, 2014</h2>
-<p>
-<a href="relnotes/10.2.6.html">Mesa 10.2.6</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>August 2, 2014</h2>
-<p>
-<a href="relnotes/10.2.5.html">Mesa 10.2.5</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 18, 2014</h2>
-<p>
-<a href="relnotes/10.2.4.html">Mesa 10.2.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 7, 2014</h2>
-<p>
-<a href="relnotes/10.2.3.html">Mesa 10.2.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>July 5, 2014</h2>
-
-<p>
-Mesa demos 8.2.0 is released.
-See the <a href="https://lists.freedesktop.org/archives/mesa-announce/2014-July/000100.html">announcement</a> for more information about the release.
-You can download it from <a href="ftp://ftp.freedesktop.org/pub/mesa/demos/8.2.0/">ftp.freedesktop.org/pub/mesa/demos/8.2.0/</a>.
-</p>
-
-<h2>June 24, 2014</h2>
-<p>
-<a href="relnotes/10.1.6.html">Mesa 10.1.6</a>
-and <a href="relnotes/10.2.2.html">Mesa 10.2.2</a> are released.
-
-These are bug-fix releases from the 10.1 and 10.2 branches, respectively.
-</p>
-
-<h2>June 6, 2014</h2>
-<p>
-<a href="relnotes/10.2.1.html">Mesa 10.2.1</a> is released. This release
-only fixes a build error in the radeonsi driver that was introduced between
-10.2-rc5 and the 10.2 final release.
-</p>
-
-<h2>June 6, 2014</h2>
-<p>
-<a href="relnotes/10.2.html">Mesa 10.2</a> is released. This is a new
-development release. See the release notes for more information about
-the release.
-</p>
-<p>
-Also, <a href="relnotes/10.1.5.html">Mesa 10.1.5</a> is released.
-This is a bug fix release from the 10.1 branch.
-</p>
-
-<h2>May 20, 2014</h2>
-<p>
-<a href="relnotes/10.1.4.html">Mesa 10.1.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>May 9, 2014</h2>
-<p>
-<a href="relnotes/10.1.3.html">Mesa 10.1.3</a> is released.
-This is a bug-fix release, and is being released sooner than
-originally scheduled to fix a performance regression (vmware
-swapbuffers falling back to software) introduced to the
-10.1.2 release.
-</p>
-
-<h2>May 5, 2014</h2>
-<p>
-<a href="relnotes/10.1.2.html">Mesa 10.1.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 18, 2014</h2>
-<p>
-<a href="relnotes/10.1.1.html">Mesa 10.1.1</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>April 18, 2014</h2>
-<p>
-<a href="relnotes/10.0.5.html">Mesa 10.0.5</a> is released.
-This is a bug-fix release.
-</p>
-<p>
-NOTE: Since the 10.1.1 release is being released concurrently, it is
-anticipated that 10.0.5 will be the final release in the 10.0
-series. Users of 10.0 are encouraged to migrate to the 10.1 series in
-order to obtain future fixes.
-</p>
-
-<h2>March 12, 2014</h2>
-<p>
-<a href="relnotes/10.0.4.html">Mesa 10.0.4</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>March 4, 2014</h2>
-<p>
-<a href="relnotes/10.1.html">Mesa 10.1</a> is released.
-This is a new development release.
-See the release notes for more information about the release.
-</p>
-
-<h2>February 3, 2014</h2>
-<p>
-<a href="relnotes/10.0.3.html">Mesa 10.0.3</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>January 9, 2014</h2>
-<p>
-<a href="relnotes/10.0.2.html">Mesa 10.0.2</a> is released.
-This is a bug-fix release.
-</p>
-
-<h2>December 12, 2013</h2>
-<p>
-<a href="relnotes/10.0.1.html">Mesa 10.0.1</a>
-and <a href="relnotes/9.2.5.html">Mesa 9.2.5</a> are released.
-These are both bug-fix releases.
-</p>
-
-<h2>November 30, 2013</h2>
-<p>
-<a href="relnotes/10.0.html">Mesa 10.0</a> is released.
-This is a new development release.
-See the release notes for more information about the release.
-</p>
-
-<h2>November 27, 2013</h2>
-<p>
-<a href="relnotes/9.2.4.html">Mesa 9.2.4</a> is released.
-This is a bug fix release.
-</p>
-
-<h2>November 13, 2013</h2>
-<p>
-<a href="relnotes/9.2.3.html">Mesa 9.2.3</a> is released.
-This is a bug fix release.
-</p>
-
-<h2>October 18, 2013</h2>
-<p>
-<a href="relnotes/9.2.2.html">Mesa 9.2.2</a> is released.
-This is a bug fix release.
-</p>
-
-<h2>October 4, 2013</h2>
-<p>
-<a href="relnotes/9.2.1.html">Mesa 9.2.1</a> and
-<a href="relnotes/9.1.7.html">Mesa 9.1.7</a> are released,
-both bug-fix releases.
-</p>
-
-<h2>August 27, 2013</h2>
-<p>
-<a href="relnotes/9.2.html">Mesa 9.2</a> is released.
-This is a new development release.
-See the release notes for more information about the release.
-</p>
-
-<h2>August 1, 2013</h2>
-<p>
-<a href="relnotes/9.1.6.html">Mesa 9.1.6</a> is released.
-This is a bug fix release.
-</p>
-
-<h2>July 17, 2013</h2>
-<p>
-<a href="relnotes/9.1.5.html">Mesa 9.1.5</a> is released.
-This is a bug fix release.
-</p>
-
-<h2>July 1, 2013</h2>
-<p>
-<a href="relnotes/9.1.4.html">Mesa 9.1.4</a> is released.
-This is a bug fix release.
-</p>
-
-<h2>May 21, 2013</h2>
-<p>
-<a href="relnotes/9.1.3.html">Mesa 9.1.3</a> is released.
-This is a bug fix release.
-</p>
-
-<h2>April 30, 2013</h2>
-<p>
-<a href="relnotes/9.1.2.html">Mesa 9.1.2</a> is released.
-This is a bug fix release.
-</p>
-
-<h2>March 19, 2013</h2>
-<p>
-<a href="relnotes/9.1.1.html">Mesa 9.1.1</a> is released.
-This is a bug fix release.
-</p>
-
-<h2>February 24, 2013</h2>
-
-<p>
-Mesa demos 8.1.0 is released.
-See the <a href="https://lists.freedesktop.org/archives/mesa-dev/2013-February/035180.html">announcement</a> for more information about the release.
-You can download it from <a href="ftp://ftp.freedesktop.org/pub/mesa/demos/8.1.0/">ftp.freedesktop.org/pub/mesa/demos/8.1.0/</a>.
-</p>
-
-
-<h2>February 22, 2013</h2>
-
-<p>
-<a href="relnotes/9.1.html">Mesa 9.1</a> is released.
-This is a new development release.
-See the release notes for more information about the release.
-</p>
-
-
-<h2>February 21, 2013</h2>
-
-<p>
-<a href="relnotes/9.0.3.html">Mesa 9.0.3</a> is released.
-This is a bug fix release.
-</p>
-
-
-<h2>January 22, 2013</h2>
-
-<p>
-<a href="relnotes/9.0.2.html">Mesa 9.0.2</a> is released.
-This is a bug fix release.
-</p>
-
-
-<h2>November 16, 2012</h2>
-
-<p>
-<a href="relnotes/9.0.1.html">Mesa 9.0.1</a> is released.
-This is a bug fix release.
-</p>
-
-
-<h2>October 24, 2012</h2>
-
-<p>
-<a href="relnotes/8.0.5.html">Mesa 8.0.5</a> is released.
-This is a bug fix release.
-</p>
-
-
-<h2>October 8, 2012</h2>
-
-<p>
-<a href="relnotes/9.0.html">Mesa 9.0</a> is released.
-This is the first version of Mesa to support OpenGL 3.1 and GLSL 1.40
-(with the i965 driver).
-See the release notes for more information about the release.
-</p>
-
-
-<h2>July 10, 2012</h2>
-
-<p>
-<a href="relnotes/8.0.4.html">Mesa 8.0.4</a> is released.
-This is a bug fix release.
-</p>
-
-
-<h2>May 18, 2012</h2>
-
-<p>
-<a href="relnotes/8.0.3.html">Mesa 8.0.3</a> is released.
-This is a bug fix release.
-</p>
-
-
-<h2>March 21, 2012</h2>
-
-<p>
-<a href="relnotes/8.0.2.html">Mesa 8.0.2</a> is released.
-This is a bug fix release.
-</p>
-
-
-<h2>February 16, 2012</h2>
-
-<p>
-<a href="relnotes/8.0.1.html">Mesa 8.0.1</a> is released. This is a bug fix
-release. See the release notes for more information about the release.
-</p>
-
-<h2>February 9, 2012</h2>
-
-<p>
-<a href="relnotes/8.0.html">Mesa 8.0</a> is released.
-This is the first version of Mesa to support OpenGL 3.0 and GLSL 1.30
-(with the i965 driver).
-See the release notes for more information about the release.
-</p>
-
-
-<h2>November 27, 2011</h2>
-
-<p>
-<a href="relnotes/7.11.2.html">Mesa 7.11.2</a> is released. This is a bug fix
-release. This release was made primarily to fix build problems with 7.11.1 on
-Mandriva and to fix problems related to glCopyTexImage to luminance-alpha
-textures. The later was believed to have been fixed in 7.11.1 but was not.
-</p>
-
-<h2>November 17, 2011</h2>
-
-<p>
-<a href="relnotes/7.11.1.html">Mesa 7.11.1</a> is released. This is a bug
-fix release.
-</p>
-
-<h2>July 31, 2011</h2>
-
-<p>
-<a href="relnotes/7.11.html">Mesa 7.11</a> (final) is released. This is a new
-development release.
-</p>
-
-<h2>June 13, 2011</h2>
-
-<p>
-<a href="relnotes/7.10.3.html">Mesa 7.10.3</a> is released. This is a bug
-fix release.
-</p>
-
-<h2>April 6, 2011</h2>
-
-<p>
-<a href="relnotes/7.10.2.html">Mesa 7.10.2</a> is released. This is a bug
-fix release.
-</p>
-
-<h2>March 2, 2011</h2>
-
-<p>
-<a href="relnotes/7.9.2.html">Mesa 7.9.2</a> and
-<a href="relnotes/7.10.1.html">Mesa 7.10.1</a> are released. These are
-stable releases containing bug fixes since the 7.9.1 and 7.10 releases.
-</p>
-
-
-<h2>October 4, 2010</h2>
-
-<p>
-<a href="relnotes/7.9.html">Mesa 7.9</a> (final) is released. This is a new
-development release.
-</p>
-
-
-<h2>September 27, 2010</h2>
-
-<p>
-<a href="relnotes/7.9.html">Mesa 7.9.0-rc1</a> is released. This is a
-release candidate for the 7.9 development release.
-</p>
-
-
-<h2>June 16, 2010</h2>
-
-<p>
-<a href="relnotes/7.8.2.html">Mesa 7.8.2</a> is released. This is a bug-fix
-release collecting fixes since the 7.8.1 release.
-</p>
-
-
-<h2>April 5, 2010</h2>
-
-<p>
-<a href="relnotes/7.8.1.html">Mesa 7.8.1</a> is released. This is a bug-fix
-release for a few critical issues in the 7.8 release.
-</p>
-
-
-<h2>March 28, 2010</h2>
-<p>
-<a href="relnotes/7.7.1.html">Mesa 7.7.1</a> is released. This is a bug-fix
-release fixing issues found in the 7.7 release.
-</p>
-<p>
-Also, <a href="relnotes/7.8.html">Mesa 7.8</a> is released. This is a new
-development release.
-</p>
-
-
-
-<h2>December 21, 2009</h2>
-<p>
-<a href="relnotes/7.6.1.html">Mesa 7.6.1</a> is released. This is a bug-fix
-release fixing issues found in the 7.6 release.
-</p>
-<p>
-Also, <a href="relnotes/7.7.html">Mesa 7.7</a> is released. This is a new
-development release.
-</p>
-
-
-<h2>September 28, 2009</h2>
-<p>
-<a href="relnotes/7.6.html">Mesa 7.6</a> is released. This is a new feature
-release. Those especially concerned about stability may want to wait for the
-follow-on 7.6.1 bug-fix release.
-</p>
-<p>
-<a href="relnotes/7.5.2.html">Mesa 7.5.2</a> is also released.
-This is a stable release fixing bugs since the 7.5.1 release.
-</p>
-
-
-<h2>September 3, 2009</h2>
-<p>
-<a href="relnotes/7.5.1.html">Mesa 7.5.1</a> is released.
-This is a bug-fix release which fixes bugs found in version 7.5.
-</p>
-
-
-<h2>July 17, 2009</h2>
-<p>
-<a href="relnotes/7.5.html">Mesa 7.5</a> is released.
-This is a new features release. People especially concerned about
-stability may want to wait for the follow-on 7.5.1 bug-fix release.
-</p>
-
-
-<h2>June 23, 2009</h2>
-<p>
-<a href="relnotes/7.4.4.html">Mesa 7.4.4</a> is released.
-This is a stable release that fixes a regression in the i915/i965 drivers
-that slipped into the 7.4.3 release.
-</p>
-
-
-<h2>June 19, 2009</h2>
-<p>
-<a href="relnotes/7.4.3.html">Mesa 7.4.3</a> is released.
-This is a stable release fixing bugs since the 7.4.2 release.
-</p>
-
-
-<h2>May 15, 2009</h2>
-<p>
-<a href="relnotes/7.4.2.html">Mesa 7.4.2</a> is released.
-This is a stable release fixing bugs since the 7.4.1 release.
-</p>
-
-
-<h2>April 18, 2009</h2>
-<p>
-<a href="relnotes/7.4.1.html">Mesa 7.4.1</a> is released.
-This is a stable release fixing bugs since the 7.4 release.
-</p>
-
-
-<h2>March 27, 2009</h2>
-<p>
-<a href="relnotes/7.4.html">Mesa 7.4</a> is released.
-This is a stable release fixing bugs since the 7.3 release.
-</p>
-
-
-<h2>January 22, 2009</h2>
-<p>
-<a href="relnotes/7.3.html">Mesa 7.3</a> is released.
-This is a new development release.
-Mesa 7.4 will follow and will have bug fixes relative to 7.3.
-</p>
-
-
-<h2>September 20, 2008</h2>
-<p>
-<a href="relnotes/7.2.html">Mesa 7.2</a> is released.
-This is a stable, bug-fix release.
-</p>
-
-
-<h2>August 26, 2008</h2>
-<p>
-<a href="relnotes/7.1.html">Mesa 7.1</a> is released.
-This is a new development release.
-It should be relatively stable, but those especially concerned about
-stability should wait for the 7.2 release or use Mesa 7.0.4 (the
-previous stable release).
-</p>
-
-
-<h2>August 16, 2008</h2>
-<p>
-<a href="relnotes/7.0.4.html">Mesa 7.0.4</a> is released.
-This is a bug-fix release.
-</p>
-
-
-<h2>April 4, 2008</h2>
-<p>
-<a href="relnotes/7.0.3.html">Mesa 7.0.3</a> is released.
-This is a bug-fix release.
-</p>
-
-
-<h2>January 24, 2008</h2>
-
-<p>
-Added a new page describing the Mesa Cell driver.
-</p>
-
-
-
-<h2>November 13, 2007</h2>
-
-<p>
-Gallium3D is the codename for the new Mesa device driver architecture
-which is currently under development.
-</p>
-<p>
-Gallium3D development is taking place on the <em>gallium-0.1</em> branch
-of the git repository.
-Currently, there's only a software-only driver and an Intel i915/945 driver
-but other drivers will be coming...
-</p>
-
-
-<h2>November 10, 2007</h2>
-<p>
-<a href="relnotes/7.0.2.html">Mesa 7.0.2</a> is released.
-This is a bug-fix release.
-</p>
-
-
-<h2>August 3, 2007</h2>
-<p>
-<a href="relnotes/7.0.1.html">Mesa 7.0.1</a> is released.
-This is a bug-fix release.
-</p>
-
-
-<h2>June 22, 2007</h2>
-<p>
-<a href="relnotes/7.0.html">Mesa 7.0</a> is released.
-This is a stable release featuring OpenGL 2.1 support.
-</p>
-
-
-<h2>April 27, 2007</h2>
-<p>
-<a href="relnotes/6.5.3.html">Mesa 6.5.3</a> is released.
-This is a development release which will lead up to the Mesa 7.0 release
-(which will advertise OpenGL 2.1 API support).
-</p>
-
-
-<h2>March 26, 2007</h2>
-<p>
-The new Shading Language compiler branch has been merged into the git
-master branch. This is a step toward hardware support for the OpenGL
-2.0 Shading Language and will be included in the next Mesa release.
-In conjunction, <a href="http://glean.sf.net">Glean</a> has been updated
-with a new test that does over 130 tests of the
-shading language and built-in functions.
-</p>
-
-<h2>April 4, 2007</h2>
-<p>
-Thomas Hellstr&#246;m of Tungsten Graphics has written a whitepaper
-describing the new DRI memory management system.
-</p>
-
-<h2>December 5, 2006</h2>
-<p>
-Mesa is now using git as its source code management system.
-The previous CVS repository should no longer be used.
-See the <a href="repository.html">repository page</a> for more information.
-</p>
-
-<h2>December 2, 2006</h2>
-<p>
-<a href="relnotes/6.5.2.html">Mesa 6.5.2</a> has been released.
-This is a new development release.
-</p>
-
-<h2>September 15, 2006</h2>
-<p>
-<a href="relnotes/6.5.1.html">Mesa 6.5.1</a> has been released.
-This is a new development release.
-</p>
-
-<h2>March 31, 2006</h2>
-<p>
-<a href="relnotes/6.5.html">Mesa 6.5</a> has been released.
-This is a new development release.
-</p>
-
-
-<h2>February 2, 2006</h2>
-<p>
-<a href="relnotes/6.4.2.html">Mesa 6.4.2</a> has been released.
-This is stable, bug-fix release.
-</p>
-
-
-<h2>November 29, 2005</h2>
-<p>
-<a href="relnotes/6.4.1.html">Mesa 6.4.1</a> has been released.
-This is stable, bug-fix release.
-</p>
-
-
-
-<h2>October 24, 2005</h2>
-<p>
-<a href="relnotes/6.4.html">Mesa 6.4</a> has been released.
-This is stable, bug-fix release.
-</p>
-
-
-<h2>August 19, 2005</h2>
-<p>
-Mesa 6.3.2 has been released.
-Note: there was no public release of version 6.3.1.
-</p>
-<a href="versions.html#6.3.2">Changes in version 6.3.1</a>
-<p>
-The MD5 checksums are:
-</p>
-<pre>
-98192e45ed8d69113688f89f90869346 MesaLib-6.3.2.tar.gz
-0df27701df0924d17ddf41185efa8ce1 MesaLib-6.3.2.tar.bz2
-ccb2423aab77fc7e81ce628734586140 MesaLib-6.3.2.zip
-9d0fca0a7d051c34a0b485423fb3e85d MesaDemos-6.3.2.tar.gz
-96708868450c188205e42229b5d813c4 MesaDemos-6.3.2.tar.bz2
-c5102501e609aa8996d832fafacb8ab9 MesaDemos-6.3.2.zip
-</pre>
-
-
-<h2>July 20, 2005</h2>
-<p>
-Mesa 6.3 has been released.
-This is a development release with new features, changes and bug fixes.
-</p>
-<pre>
- New:
- - GL_EXT_framebuffer_object extension
- - GL_ARB_draw_buffers extension
- - GL_ARB_pixel_buffer_object extension
- - GL_OES_read_format extension (Ian Romanick)
- - DirectFB driver (Claudio Ciccani)
- - x86_64 vertex transformation code (Mikko T.)
- Changes:
- - added -stereo option for glxgears demo (Jacek Rosik)
- - updated the PBuffer demo code in xdemos/ directory
- - glDeleteTextures/Programs/Buffers() now makes the object ID
- available for immediate re-use
- - assorted 64-bit clean-ups fixes (x86_64 and Win64)
- - lots of internal changes for GL_EXT_framebuffer_object
- Bug fixes:
- - some functions didn't support PBO functionality
- - glGetTexImage didn't convert color index images to RGBA as required
- - fragment program texcoords were sometimes wrong for points and lines
- - fixed problem with negative dot product in arbfplight, fplight demos
- - fixed bug in perspective correction of antialiased, textured lines
- - querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
- - fixed a couple per-pixel fog bugs (Soju Matsumoto)
- - glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
- - fixed float parsing bug in ARB frag/vert programs (bug 2520)
- - XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
- - GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
- - glXChooseFBConfig() crashed if attribList pointer was NULL
- - program state.light[n].spot.direction.w was wrong value (bug 3083)
- - fragment program fog option required glEnable(GL_FOG) - wrong.
- - glColorTable() could produce a Mesa implementation error (bug 3135)
- - RasterPos could get corrupted by color index rendering path
- - Removed bad XTranslateCoordinates call when rendering to Pixmaps
- - glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
- - fixed a few Darwin compilation problems
-</pre>
-<p>
-The MD5 checksums are:
-</p>
-<pre>
-0236f552d37514776945d5a013e5bb7b MesaLib-6.3.tar.gz
-60e1a8f78c4a8c7750a1e95753190986 MesaLib-6.3.tar.bz2
-ca7c950fbace68c70caa822322db7223 MesaLib-6.3.zip
-25ea801645b376c014051804fe4974b2 MesaDemos-6.3.tar.gz
-9248e74872ea88c57ec25c900c295057 MesaDemos-6.3.tar.bz2
-8537dfa734ef258dcc7272097558d434 MesaDemos-6.3.zip
-</pre>
-
-
-<h2>December 9, 2004</h2>
-<p>
-Mesa 6.2.1 has been released.
-This is a stable release which just fixes bugs since the 6.2 release.
-</p>
-<pre>
- Bug fixes:
- - don't apply regular fog or color sum when using a fragment program
- - glProgramEnvParameter4fARB always generated an error on
- GL_FRAGMENT_PROGRAM_ARB (fdo bug 1645)
- - glVertexAttrib3svNV and glVertexAttrib3svARB were broken
- - fixed width/height mix-up in glSeparableFilter2D()
- - fixed regression in glCopyPixels + convolution
- - glReadPixels from a clipped front color buffer didn't always work
- - glTexImage didn't accept GL_RED/GREEN/BLUE as the format
- - Attempting queries/accesses of VBO 0 weren't detected as errors
- - paletted textures failed if the palette had fewer than 256 entries
- Changes:
- - fixed a bunch of compiler warnings found with gcc 3.4
- - bug reports should to go bugzilla.freedesktop.org
-</pre>
-<p>
-The MD5 checksums are:
-</p>
-<pre>
-80008a92f6e055d3bfdde2cf331ec3fa MesaLib-6.2.1.tar.gz
-f43228cd2bf70f583ef3275c1c545421 MesaLib-6.2.1.tar.bz2
-dec26cfd40116ad021020fea2d94f652 MesaLib-6.2.1.zip
-2c7af3c986a7571c8713c8bfee7e49e3 MesaDemos-6.2.1.tar.gz
-3cac74667b50bcbd4f67f594fb4224a2 MesaDemos-6.2.1.tar.bz2
-75b3edd12eb2b370caf05f29b99e508a MesaDemos-6.2.1.zip
-</pre>
-
-
-<h2>October 2, 2004</h2>
-<p>
-Mesa 6.2 has been released.
-This is a stable release which just fixes bugs since the 6.1 release.
-</p>
-<pre>
- New:
- - enabled GL_ARB_texture_rectangle (same as GL_NV_texture_rectangle)
- - updated Doxygen support (Jose Fonseca)
- Changes:
- - some GGI driver updates (Christoph Egger, bug 1025977)
- Bug fixes:
- - Omit GL_ARB_texture_non_power_of_two from list of OpenGL 1.5 features
- - fixed a few compilation issues on IRIX
- - fixed a matrix classification bug (reported by Wes Bethel)
- - we weren't reseting the vertex/fragment program error state
- before parsing (Dave Reveman)
- - adjust texcoords for sampling texture rectangles (Dave Reveman)
- - glGet*(GL_MAX_VERTEX_ATTRIBS_ARB) wasn't implemented
- - repeated calls to glDeleteTexture(t) could lead to a crash
- - fixed potential ref count bugs in VBOs and vertex/fragment programs
- - spriteblast demo didn't handle window size changes correctly
- - glTexSubImage didn't handle pixels=NULL correctly for PBOs
- - fixed color index mode glDrawPixels bug (Karl Schultz)
-</pre>
-<p>
-The MD5 checksums are:
-</p>
-<pre>
-9e8f34b059272dbb8e1f2c968b33bbf0 MesaLib-6.2.tar.gz
-3d6a6362390b6a37d3cb2e615f3ac7db MesaLib-6.2.tar.bz2
-6cfd7895d28e695c0dbbed9469564091 MesaLib-6.2.zip
-3e06e33b0809f09855cb60883b8bdfef MesaDemos-6.2.tar.gz
-9d160009c3dfdb35fe7e4088c9ba8f85 MesaDemos-6.2.tar.bz2
-856f7ec947122eb3c8985ebc2f654dcd MesaDemos-6.2.zip
-</pre>
-
-
-<h2>August 18, 2004</h2>
-<p>
-Mesa 6.1 has been released.
-This is a new development release (version 6.2 will be a stabilization
-release).
-</p>
-<pre>
- New:
- - Revamped Makefile system
- - glXUseRotatedXFont() utility (see xdemos/xuserotfont.c)
- - internal driver interface changes related to texture object
- allocation, vertex/fragment programs, BlendEquationSeparate, etc.
- - option to walk triangle edges with double-precision floats
- (Justin Novosad of Discreet) (see config.h file)
- - support for AUX buffers in software GLX driver
- - updated glext.h to version 24 and glxext.h to version 6
- - new MESA_GLX_FORCE_ALPHA and MESA_GLX_DEPTH_BITS env vars
- - updated BeOS support (Philippe Houdoin)
- Changes:
- - fragment fog interpolation is perspective corrected now
- - new glTexImage code, much cleaner, may be a bit faster
- Bug fixes:
- - glArrayElement in display lists didn't handle generic vertex attribs
- - glFogCoord didn't always work properly
- - ARB_fragment_program fog options didn't work
- - frag prog TEX instruction no longer incorrectly divides s,t,r by q
- - ARB frag prog TEX and TEXP instructions now use LOD=0
- - glTexEnviv in display lists didn't work
- - glRasterPos didn't do texgen or apply texture matrix
- - GL_DOUBLE-valued vertex arrays were broken in some cases
- - fixed texture rectangle edge/border sampling bugs
- - sampling an incomplete texture in a fragment program would segfault
- - glTexImage was missing a few error checks
- - fixed some minor glGetTexParameter glitches
- - GL_INTENSITY was mistakenly accepted as a &lt;format&gt; to glTexImage
- - fragment program writes to RC/HC register were broken
- - fixed a few glitches in GL_HP_occlusion_test extension
- - glBeginQueryARB and glEndQueryARB didn't work inside display lists
- - vertex program state references were broken
- - fixed triangle color interpolation bug on AIX (Shane Blackett)
- - fixed a number of minor memory leaks (bug #1002030)
-</pre>
-<p>
-The MD5 checksums are:
-</p>
-<pre>
-c9284d295ebcd2e0486cc3cd54e5863c MesaLib-6.1.tar.gz
-5de1f53ec0709f60fc68fdfed57351f3 MesaLib-6.1.tar.bz2
-483e77cac4789a5d36c42f3c0136d6d8 MesaLib-6.1.zip
-8c46cfa6f9732acc6f6c25724aad0246 MesaDemos-6.1.tar.gz
-89bfe0f6c69b39fd0ebd9fff481a4e9b MesaDemos-6.1.tar.bz2
-161268531fcc6f0c5a056430ee97e0c1 MesaDemos-6.1.zip
-</pre>
-
-
-
-<h2>April 2, 2004</h2>
-
-<p>
-Mesa 6.0.1 has been released.
-This release basically just fixes bugs since the 6.0. release.
-</p>
-<pre>
- New:
- - upgraded glext.h to version 22
- - new build targets (Dan Schikore)
- - new linux-x86-opteron build target (Heath Feather)
- Bug fixes:
- - glBindProgramARB didn't update all necessary state
- - fixed build problems on OpenBSD
- - omit CVS directories from tarballs
- - glGetTexImage(GL_COLOR_INDEX) was broken
- - fixed an infinite loop in t&amp;l module
- - silenced some valgrind warnings about using unitialized memory
- - fixed some compilation/link glitches on IRIX (Mike Stephens)
- - glBindProgram wasn't getting compiled into display lists
- - GLX_FBCONFIG_ID wasn't recognized in glXChooseFBConfig() (bug 888079)
- - two-sided lighting and vertex program didn't work (bug 887330)
- - stores to program parameter registers in vertex state programs
- didn't work.
- - fixed glOrtho bug found with gcc 3.2.2 (RH9)
- - glXCreateWindow() wasn't fully implemented (bug 890894)
- - generic vertex attribute arrays didn't work in display lists
- - vertex buffer objects' default usage and access fields were wrong
- - glDrawArrays with start!=0 was broken
- - fragment program PK2H, UP2H, UP4B and UP4UB instructions were broken
- - linux-osmesa16-static config didn't work
- - fixed a few color index rendering problems (bug 910687)
- - glInterleavedArrays didn't respect GL_CLIENT_ACTIVE_TEXTURE
- - OSMesa RGB and BGR modes were broken
- - glProgramStringARB mistakenly required a null-terminated string
- - fragment program XPD instruction was incorrect
- - glGetMaterial() didn't work reliably
-</pre>
-<p>
-The MD5 checksums are:
-</p>
-<pre>
-011be0e79666c7a6eb9693fbf9348653 MesaLib-6.0.1.tar.gz
-b7f14088c5c2f14490d2739a91102112 MesaLib-6.0.1.tar.bz2
-bf0510cf0a2b87d64cdd317eca3f1db1 MesaLib-6.0.1.zip
-b7b648599e0aaee1c4ffc554a2a9139e MesaDemos-6.0.1.tar.gz
-dd6aadfd9ca8e1cfa90c6ee492bc6f43 MesaDemos-6.0.1.tar.bz2
-eff71d59c211825e949199852f5a2316 MesaDemos-6.0.1.zip
-</pre>
-
-
-<h2>January 16, 2004</h2>
-
-<p>
-Mesa 6.0 has been released. This is a stabilization of the 5.1 release
-and primarily just incorporates bug fixes.
-</p>
-<pre>
- New:
- - full OpenGL 1.5 support
- - updated GL/glext.h file to version 21
- Changes:
- - changed max framebuffer size to 4Kx4K (MAX_WIDTH/HEIGHT in config.h)
- Bug fixes:
- - fixed bug in UNCLAMPED_FLOAT_TO_UBYTE macro; solves a color
- clamping issue
- - updated suno5-gcc configs
- - glColor3 functions sometimes resulted in undefined alpha values
- - fixed FP divide by zero error seen on VMS with xlockmore, others
- - fixed vertex/fragment program debug problem (bug 873011)
- - building on AIX with gcc works now
- - glDeleteProgramsARB failed for ARB fragment programs (bug 876160)
- - glDrawRangeElements tried to modify potentially read-only storage
- - updated files for building on Windows
-</pre>
-
-
-<h2>December 28, 2003</h2>
-
-<p>
-The Mesa CVS server has been moved to <a href="https://www.freedesktop.org">
-freedesktop.org</a> because of problems with SourceForge's anonymous
-CVS service.
-</p>
-
-
-<h2>December 17, 2003</h2>
-
-<p>
-Mesa 5.1 has been released. This is a new development release.
-Mesa 6.0 will be the next stable release and will support all
-OpenGL 1.5 features.
-</p>
-<pre>
- New features:
- - reorganized directory tree
- - GL_ARB_vertex/fragment_program extensions (Michal Krol &amp; Karl Rasche)
- - GL_ATI_texture_env_combine3 extension (Ian Romanick)
- - GL_SGI_texture_color_table extension (Eric Plante)
- - GL_NV_fragment_program extension
- - GL_NV_light_max_exponent extension
- - GL_EXT_texture_rectangle (identical to GL_NV_texture_rectangle)
- - GL_ARB_occlusion_query extension
- - GL_ARB_point_sprite extension
- - GL_ARB_texture_non_power_of_two extension
- - GL_IBM_multimode_draw_arrays extension
- - GL_EXT_texture_mirror_clamp extension (Ian Romanick)
- - GL_ARB_vertex_buffer_object extension
- - new X86 feature detection code (Petr Sebor)
- - less memory used for display lists and vertex buffers
- - demo of per-pixel lighting with a fragment program (demos/fplight.c)
- - new version (18) of glext.h header
- - new spriteblast.c demo of GL_ARB_point_sprite
- - faster glDrawPixels in X11 driver in some cases (see relnotes/5.1)
- - faster glCopyPixels in X11 driver in some cases (see relnotes/5.1)
- Bug fixes:
- - really enable OpenGL 1.4 features in DOS driver.
- - fixed issues in glDrawPixels and glCopyPixels for very wide images
- - glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint
- - fixed some texgen bugs reported by Daniel Borca
- - fixed wglMakeCurrent(NULL, NULL) bug (#835861)
- - fixed glTexSubImage3D z-offset bug (Cedric Gautier)
- - fixed RGBA blend enable bug (Ville Syrjala)
- - glAccum is supposed to be a no-op in selection/feedback mode
- - fixed texgen bug #597589 (John Popplewell)
- Changes:
- - dropped API trace feature (src/Trace/)
- - documentation overhaul. merged with website content. more html.
- - glxgears.c demo updated to use GLX swap rate extensions
- - glTexImage1/2/3D now allows width/height/depth = 0
- - disable SPARC asm code on Linux (bug 852204)
-</pre>
-<p>
-The MD5 checksums are:
-</p>
-<pre>
-78f452f6c55478471a744f07147612b5 MesaLib-5.1.tar.gz
-67b3b8d3f7f4c8c44904551b851d01af MesaLib-5.1.tar.bz2
-6dd19ffa750ec7f634e370a987505c9d MesaLib-5.1.zip
-e0214d4ebb22409dfa9262f2b52fd828 MesaDemos-5.1.tar.gz
-066c9aff4fd924405de1ae9bad5ec9a7 MesaDemos-5.1.tar.bz2
-d2b5ba32b53e0ad0576c637a4cc1fb41 MesaDemos-5.1.zip
-</pre>
-
-
-<h2>November 12, 2003</h2>
-
-<p>
-New Mesa 5.0.2 tarballs have been uploaded to SourceForge which fix a
-number of automake/libtool problems.
-</p>
-<p>
-The new MD5 checksums are:
-</p>
-<pre>
-a9dcf3ff9ad1b7d6ce73a0df7cff8b5b MesaLib-5.0.2.tar.gz
-7b4bf9261657c2fca03796d4955e6f50 MesaLib-5.0.2.tar.bz2
-79c141bddcbad557647535d02194f346 MesaLib-5.0.2.zip
-952d9dc823dd818981d1a648d7b2668a MesaDemos-5.0.2.tar.gz
-b81fafff90995025d2f25ea02b786642 MesaDemos-5.0.2.tar.bz2
-a21be975589e8a2d1871b6bb7874fffa MesaDemos-5.0.2.zip
-</pre>
-
-
-<h2>September 5, 2003</h2>
-
-<p>
-Mesa 5.0.2 has been released. This is a stable, bug-fix release.
-</p>
-<pre>
- Bug fixes:
- - fixed texgen problem causing texcoord's Q to be zero (stex3d)
- - default GL_TEXTURE_COMPARE_MODE_ARB was wrong
- - GL_CURRENT_MATRIX_NV query was wrong
- - GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one
- - GL_LIST_MODE query wasn't correct
- - GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported
- - GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value
- - blended, wide lines didn't always work correctly (bug 711595)
- - glVertexAttrib4svNV w component was always 1
- - fixed bug in GL_IBM_rasterpos_clip (missing return)
- - GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly
- - a few Solaris compilation fixes
- - fixed glClear() problem for DRI drivers (non-existant stencil, etc)
- - fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux)
- - fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz)
- - glFog() didn't clamp fog colors
- - fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the
- gl[Get]TexParameteri[v] functions
- - fixed invalid memory references in glTexGen functions (bug 781602)
- - integer-valued color arrays weren't handled correctly
- - glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work
- - GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1
- Changes:
- - build GLUT with -fexceptions so C++ apps propogate exceptions
-</pre>
-
-
-<h2>June 8, 2003</h2>
-
-<p>
-Mesa's directory tree has been overhauled.
-Things are better organized now with some thought toward future needs.
-</p>
-<p>
-In CVS, the latest Mesa 5.1 development code is now rooted under the
-<b>Mesa-newtree/</b> directory. The old top-level <b>Mesa/</b> directory
-holds the Mesa 5.0.x code which will be abandoned at some point.
-</p>
-
-
-<h2>March 30, 2003</h2>
-
-<p>
-Mesa 5.0.1 has been released. This is a stable, bug-fix release.
-</p>
-<pre>
- New:
- - DOS driver updates from Daniel Borca
- - updated GL/gl_mangle.h file (Bill Hoffman)
- Bug fixes:
- - auto mipmap generation for cube maps was broken (bug 641363)
- - writing/clearing software alpha channels was unreliable
- - minor compilation fixes for OS/2 (Evgeny Kotsuba)
- - fixed some bad assertions found with shadowtex demo
- - fixed error checking bug in glCopyTexSubImage2D (bug 659020)
- - glRotate(angle, -x, 0, 0) was incorrect (bug 659677)
- - fixed potential segfault in texture object validation (bug 659012)
- - fixed some bogus code in _mesa_test_os_sse_exception_support (Linus)
- - fix fog stride bug in tnl code for h/w drivers (Michel Danzer)
- - fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080)
- - glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3
- - fixed compilation problem on Solaris7/x86 (bug 536406)
- - fixed prefetch bug in 3DNow! code (Felix Kuhling)
- - fixed NeXT build problem (FABSF macro)
- - glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811)
- - zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964)
- - AA line and triangle Z values are now rounded, not truncated
- - fixed color interpolation bug when GLchan==GLfloat (bug 694461)
- - glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca)
- - fixed a minor GL_COLOR_MATERIAL bug
- - NV vertex program EXP instruction was broken
- - glColorMask misbehaved with X window / pixmap rendering
- - fix autoconf/libtool GLU C++ linker problem on Linux (a total hack)
- - attempt to fix GGI compilation problem when MesaDemos not present
- - NV vertex program ARL-relative fetches didn't work
- Changes:
- - use glPolygonOffset in gloss demo to avoid z-fighting artifacts
- - updated winpos and pointblast demos to use ARB extensions
- - disable SPARC normal transformation code (bug 673938)
- - GLU fixes for OS/2 (Evgeny Kotsuba)
-</pre>
-<p>
-MD5 checksums follow:
-</p>
-<pre>
-b80f8b5d53a3e9f19b9fde5af0c542f0 MesaLib-5.0.1.tar.gz
-513b4bbd7d38951f05027179063d876b MesaLib-5.0.1.tar.bz2
-eebd395678f4520d33b267e5d5c22651 MesaLib-5.0.1.zip
-49d7feaec6dc1d2091d7c3cc72a9b320 MesaDemos-5.0.1.tar.gz
-37190374a98c3c892f0698be9ca3acf0 MesaDemos-5.0.1.tar.bz2
-becd8bf17f5791361b4a54ba2a78e5c9 MesaDemos-5.0.1.zip
-</pre>
-
-
-
-<h2>March 7, 2003</h2>
-<p>
-Website and documentation overhaul.
-</p>
-<p>
-The website content and Mesa documentation (from the doc/ directory) have
-been merged together.
-All the documentation files have been entered into the CVS repository.
-Many of the old plain-text files have been converted to html and modernized.
-</p>
-
-
-<h2>November 13, 2002</h2>
-<p>Mesa 5.0 has been released. This is a stable release which
-implements the OpenGL 1.4 specification.
-</p>
-<pre>New:
- - OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4")
- - removed some overlooked debugging code
- - glxinfo updated to support GLX_ARB_multisample
- - GLUT now support GLX_ARB_multisample
- - updated DOS driver (Daniel Borca)
-Bug fixes:
- - GL_POINT and GL_LINE-mode polygons didn't obey cull state
- - fixed potential bug in _mesa_align_malloc/calloc()
- - fixed missing triangle bug when running vertex programs
- - fixed a few HPUX compilation problems
- - FX (Glide) driver didn't compile
- - setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work
- - a few EXT functions, like glGenTexturesEXT, were no-ops
- - a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate,
- glMultiDrawArrays and glMultiDrawElements were missing
- - glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken
- - Pentium 4 Mobile was mistakenly identified as having 3DNow!
- - fixed one-bit error in point/line fragment Z calculation
- - fixed potential segfault in fakeglx code
- - fixed color overflow problem in DOT3 texture env mode
-</pre>
-
-
-<h2>October 29, 2002</h2>
-<p>Mesa 4.1 has been released. This is a new development release.
-For a stable release, get 4.0.4.
-</p>
-<pre>New:
- - GL_NV_vertex_program extension
- - GL_NV_vertex_program1_1 extension
- - GL_ARB_window_pos extension
- - GL_ARB_depth_texture extension
- - GL_ARB_shadow extension
- - GL_ARB_shadow_ambient extension
- - GL_EXT_shadow_funcs extension
- - GL_ARB_point_parameters extension
- - GL_ARB_texture_env_crossbar
- - GL_NV_point_sprite extension
- - GL_NV_texture_rectangle extension
- - GL_EXT_multi_draw_arrays extension
- - GL_EXT_stencil_two_side extension
- - GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions
- - GL_ATI_texture_mirror_once extension (Ian Romanick)
- - massive overhaul/simplification of software rasterizer module,
- many contributions from Klaus Niederkrueger
- - faster software texturing in some cases (i.e. trilinear filtering)
- - new OSMesaGetProcAddress() function
- - more blend modes implemented with MMX code (Jose Fonseca)
- - added glutGetProcAddress() to GLUT
- - added GLUT_FPS env var to compute frames/second in glutSwapBuffers()
- - pbinfo and pbdemo PBuffer programs
- - glxinfo -v prints transprent pixel info (Gerd Sussner)
-Bug fixes:
- - better mipmap LOD computation (prevents excessive blurriness)
- - OSMesaMakeCurrent() didn't recognize buffer size changes
- - assorted conformance fixes for 16-bit/channel rendering
- - texcombine alpha subtraction mode was broken
- - fixed some blend problems when GLchan==GLfloat (Gerk Huisma)
- - clamp colors to [0,1] in OSMesa if GLchan==GLfloat (Gerk Huisma)
- - fixed divide by zero error in NURBS tessellator (Jon Perry)
- - fixed GL_LINEAR fog bug by adding clamping
- - fixed FP exceptions found using Alpha CPU
- - 3dfx/glide driver render-to-window feature was broken
- - added missing GLX_TRANSPARENT_RGB token to glx.h
- - fixed error checking related to paletted textures
- - fixed reference count error in glDeleteTextures (Randy Fayan)
-Changes:
- - New spec file and Python code to generate some GL dispatch files
- - Glide driver defaults to "no" with autoconf/automake
- - floating point color channels now clamped to [0,inf)
- - updated demos/stex3d with new options
-</pre>
-
-
-<h2>October 4, 2002</h2>
-<p>
-The <a href="faq.html">Mesa FAQ</a> has been rewritten.
-</p>
-
-<h2>October 3, 2002</h2>
-<p>Mesa 4.0.4 has been released. This is a stable bug-fix release.
-</p>
-<pre> New:
- - GL_NV_texture_rectangle extension
- - updated glext.h header (version 17)
- - updated DOS driver (Daniel Borca)
- - updated BeOS R5 driver (Philippe Houdoin)
- - added GL_IBM_texture_mirror_repeat
- - glxinfo now takes -l option to print interesting OpenGL limits info
- - GL_MESA_ycbcr_texture extension
- - GL_APPLE_client_storage extension (for some DRI drivers only)
- - GL_MESA_pack_invert extension
- Bug fixes:
- - fixed GL_LINEAR fog bug by adding clamping
- - fixed FP exceptions found using Alpha CPU
- - 3dfx MESA_GLX_FX=window (render to window) didn't work
- - fixed memory leak in wglCreateContest (Karl Schultz)
- - define GLAPIENTRY and GLAPI if undefined in glu.h
- - wglGetProcAddress didn't handle all API functions
- - when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map
- - removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc()
- - error checking in compressed tex image functions had some glitches
- - fixed AIX compile problem in src/config.c
- - glGetTexImage was using pixel unpacking instead of packing params
- - auto-mipmap generation for cube maps was incorrect
- Changes:
- - max texture units reduced to six to accommodate texture rectangles
- - removed unfinished GL_MESA_sprite_point extension code
-</pre>
-
-<h2>June 25, 2002</h2>
-<p>Mesa 4.0.3 has been released. This is a stable bug-fix release.
-</p>
-<pre> New:
- - updated GL/glext.h file (version 15)
- - corrected MMX blend code (Jose Fonseca)
- - support for software-based alpha planes in Windows driver
- - updated GGI driver (Filip Spacek)
- Bug fixes:
- - glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens
- - OSMesaMakeCurrent() didn't recognize buffer size changes
- - assorted conformance fixes for 16-bit/channel rendering
- - texcombine alpha subtraction mode was broken
- - fixed lighting bug with non-uniform scaling and display lists
- - fixed bug when deleting shared display lists
- - disabled SPARC cliptest assembly code (Mesa bug 544665)
- - fixed a couple Solaris compilation/link problems
- - blending clipped glDrawPixels didn't always work
- - glGetTexImage() didn't accept packed pixel types
- - glPixelMapu[is]v() could explode given too large of pixelmap
- - glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT
- - glXCopyContext() could lead to segfaults
- - glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665)
- Changes:
- - lots of C++ (g++) code clean-ups
- - lots of T&amp;L updates for the Radeon DRI driver
- Known bugs:
- - mipmap LOD computation (fixed for Mesa 4.1)
-</pre>
-
-<h2>April 2, 2002</h2>
-<p>Mesa 4.0.2 has been released. This is a stable bug-fix release.
-</p>
-<pre> New:
- - New DOS (DJGPP) driver written by Daniel Borca
- - New driver interface functions for TCL drivers (such as Radeon DRI)
- - GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32"
- if using deep color channels
- - latest GL/glext.h and GL/glxext.h headers from SGI
- Bug fixes:
- - GL_BLEND with non-black texture env color wasn't always correct
- - GL_REPLACE with GL_RGB texture format wasn't always correct (alpha)
- - glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken
- - glReadPixels was sometimes mistakenly clipped by the scissor box
- - glDraw/ReadPixels didn't catch all the errors that they should have
- - Fixed 24bpp rendering problem in Windows driver (Karl Schultz)
- - 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c)
- - Fixed 1-bit float-&gt;int conversion bug in glDrawPixels(GL_DEPTH_COMP)
- - glColorMask as sometimes effecting glXSwapBuffers()
- - fixed a potential bug in XMesaGarbageCollect()
- - N threads rendering into one window didn't work reliably
- - glCopyPixels didn't work for deep color channels
- - improved 8 -&gt; 16bit/channel texture image conversion (Gerk Huisma)
- - glPopAttrib() didn't correctly restore user clip planes
- - user clip planes failed for some perspective projections (Chromium)
-</pre>
-
-<h2>December 17, 2001</h2>
-<p>Mesa 4.0.1 has been released. This is a stable bug-fix release.
-</p>
-<pre> New:
- - better sub-pixel sample positions for AA triangles (Ray Tice)
- - slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
- Bug fixes:
- - added missing break statements in glGet*() for multisample cases
- - fixed uninitialized hash table mutex bug (display lists / texobjs)
- - fixed bad teximage error check conditional (bug 476846)
- - fixed demos readtex.c compilation problem on Windows (Karl Schultz)
- - added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
- - silence some compiler warnings (gcc 2.96)
- - enable the #define GL_VERSION_1_3 in GL/gl.h
- - added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
- - fixed glu.h typedef problem found with MSDev 6.0
- - build libGL.so with -Bsymbolic (fixes bug found with Chromium)
- - added missing 'const' to glXGetContextIDEXT() in glxext.h
- - fixed a few glXGetProcAddress() errors (texture compression, etc)
- - fixed start index bug in compiled vertex arrays (Keith)
- - fixed compilation problems in src/SPARC/glapi_sparc.S
- - fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
- - use glXGetProcAddressARB in GLUT to avoid extension linking problems
- - provoking vertex of flat-shaded, color-index triangles was wrong
- - fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
- - glTexParameter didn't flush the vertex buffer (Ray Tice)
- - feedback attributes for glDraw/CopyPixels and glBitmap were wrong
- - fixed bug in normal length caching (ParaView lighting bug)
-</pre>
-
-<h2>October 22, 2001</h2>
-<p>Mesa 4.0 has been released. This is a stable release.
-</p>
-<pre> New:
- - Mesa 4.0 implements the OpenGL 1.3 specification
- - GL_IBM_rasterpos_clip extension
- - GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp)
- - GL_ARB_texture_mirrored_repeat extension
- - WindML UGL driver (Stephane Raimbault)
- - added OSMESA_MAX_WIDTH/HEIGHT queries
- - attempted compiliation fixes for Solaris 5, 7 and 8
- - updated glext.h and glxext.h files
- - updated Windows driver (Karl Schultz)
- Bug fixes:
- - added some missing GLX 1.3 tokens to include/GL/glx.h
- - GL_COLOR_MATRIX changes weren't recognized by teximage functions
- - glCopyPixels with scale and bias was broken
- - glRasterPos with lighting could segfault
- - glDeleteTextures could leave a dangling pointer
- - Proxy textures for cube maps didn't work
- - fixed a number of 16-bit color channel bugs
- - fixed a few minor memory leaks
- - GLX context sharing was broken in 3.5
- - fixed state-update bugs in glPopClientAttrib()
- - fixed glDrawRangeElements() bug
- - fixed a glPush/PopAttrib() bug related to texture binding
- - flat-shaded, textured lines were broken
- - fixed a dangling pointer problem in the XMesa code (Chris Burghart)
- - lighting didn't always produce the correct alpha value
- - fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
-</pre>
-
-
-<h2>June 21, 2001</h2>
-<p>Mesa 3.5 has been released. This is a new development release.
-</p>
-<pre> New:
- - internals of Mesa divided into modular pieces (Keith Whitwell)
- - 100% OpenGL 1.2 conformance (passes all conformance tests)
- - new AA line algorithm
- - GL_EXT_convolution extension
- - GL_ARB_imaging subset
- - OSMesaCreateContextExt() function
- - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
- - GL_MAX_TEXTURE_UNITS_ARB now defaults to eight
- - GL_EXT_fog_coord extension (Keith Whitwell)
- - GL_EXT_secondary_color extension (Keith Whitwell)
- - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
- - GL_SGIX_depth_texture extension
- - GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions
- - demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow
- - GL_ARB_texture_env_combine extension
- - GL_ARB_texture_env_dot3 extension
- - GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp)
- - OSMesaCreateContextExt() function
- - libOSMesa.so library, contains the OSMesa driver interface
- - GL/glxext.h header file for GLX extensions
- - somewhat faster software texturing, fogging, depth testing
- - all color-index conformance tests now pass (only 8bpp tested)
- - SPARC assembly language TCL optimizations (David Miller)
- - GL_SGIS_generate_mipmap extension
- Bug Fixes:
- - fbiRev and tmuRev were unitialized when using Glide3
- - fixed a few color index mode conformance failures; all pass now
- - now appling antialiasing coverage to alpha after texturing
- - colors weren't getting clamped to [0,1] before color table lookup
- - fixed RISC alignment errors caused by COPY_4UBV macro
- - drawing wide, flat-shaded lines could cause a segfault
- - vertices now snapped to 1/16 pixel to fix rendering of tiny triangles
- Changes:
- - SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU
- - new libOSMesa.so library, contains the OSMesa driver interface
-</pre>
-
-
-<h2>May 17, 2001</h2>
-<p>Mesa 3.4.2 has been released. This is basically just a bug-fix release.
-Here's what's new:</p>
-<pre> Bug fixes:
- - deleting the currently bound texture could cause bad problems
- - using fog could result in random vertex alpha values
- - AA triangle rendering could touch pixels outside right window bound
- - fixed byteswapping problem in clear_32bit_ximage() function
- - fixed bugs in wglUseFontBitmapsA(), by Frank Warmerdam
- - fixed memory leak in glXUseXFont()
- - fragment sampling in AA triangle function was off by 1/2 pixel
- - Windows: reading pixels from framebuffer didn't always work
- - glConvolutionFilter2D could segfault or cause FP exception
- - fixed segfaults in FX and X drivers when using tex unit 1 but not 0
- - GL_NAND logicop didn't work right in RGBA mode
- - fixed a memory corruption bug in vertex buffer reset code
- - clearing the softwara alpha buffer with scissoring was broken
- - fixed a few color index mode fog bugs
- - fixed some bad assertions in color index mode
- - fixed FX line 'stipple' bug #420091
- Changes:
- - optimized writing mono-colored pixel spans to X pixmaps
- - increased max viewport size to 2048 x 2048
-</pre>
-
-
-<h2>April 29, 2001</h2>
-<p>New Mesa website</p>
-<p>Mark Manning produced the new website. Thanks, Mark!</p>
-
-
-<h2>February 14, 2001</h2>
-<p>Mesa 3.4.1 has been released. Here's what's new:</p>
-<pre> New:
- - fixed some Linux build problems
- - fixed some Windows build problems
- - GL_EXT_texture_env_dot3 extension (Gareth Hughes)
- Bug fixes:
- - added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI
- - various state-update code changes needed for DRI bugs
- - disabled pixel transfer ops in glColorTable commands, not needed
- - fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter
- - updated sources and fixed compile problems in widgets-mesa/
- - GLX_PBUFFER enum value was wrong in glx.h
- - fixed a glColorMaterial lighting bug
- - fixed bad args to Read/WriteStencilSpan in h/w stencil clear function
- - glXCopySubBufferMESA() Y position was off by one
- - Error checking of glTexSubImage3D() was broken (bug 128775)
- - glPopAttrib() didn't restore all derived Mesa state correctly
- - Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL
- conformance problems at 16bpp.
- - clearing depth buffer with scissoring was broken, would segfault
- - OSMesaGetDepthBuffer() returned bad bytesPerValue value
- - fixed a line clipping bug (reported by Craig McDaniel)
- - fixed RGB color over/underflow bug for very tiny triangles
- Known problems:
- - NURBS or evaluator surfaces inside display lists don't always work
-</pre>
-
-<h2>November 3, 2000</h2>
-<p>Mesa 3.4 has been released. Here's what's new since the 3.3 release:</p>
-<pre> New:
- - optimized glDrawPixels for glPixelZoom(1,-1)
- Bug Fixes:
- - widgets-mesa/src/*.c files were missing from 3.3 distro
- - include/GL/mesa_wgl.h file was missing from 3.3 distro
- - fixed some Win32 compile problems
- - texture object priorities weren't getting initialized to 1.0
- - glAreTexturesResident return value was wrong when using hardware
- - glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX)
- - glReadPixels with GLushort packed types was broken
- - fixed a few bugs in the GL_EXT_texture_env_combine texture code
- - glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables
- - fixed some typos/bugs in the VB code
- - glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work
- - optimized glDrawPixels paths weren't being used
- - per-fragment fog calculation didn't work without a Z buffer
- - improved blending accuracy, fixes Glean blendFunc test failures
- - glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly
- - glXGetProcAddressARB() didn't always return the right address
- - gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format
- - texture matrix changes weren't always detected (GLUT projtex demo)
- - fixed random color problem in vertex fog code
- - fixed Glide-related bug that let Quake get a 24-bit Z buffer
- Changes:
- - finished internal support for compressed textures for DRI
-</pre>
-
-<h2>April 24, 2000</h2>
-<p>Mesa 3.2 has been released. Here's what's new since the beta release:</p>
-<pre> Bug fixes:
- - fixed memcpy bugs in span.c
- - fixed missing glEnd problem in demos/tessdemo.c
- - fixed bug when clearing 24bpp Ximages
- - fixed clipping problem found in Unreal Tournament
- - fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2
- - fixed Loki's 3dfx RGB vs BGR bug
- - fixed Loki's 3dfx smooth/flat shading bug in SoF
- Changes:
- - updated docs/README file
- - use bcopy() optimizations on FreeBSD
- - re-enabled the optimized persp_textured_triangle() function
-</pre>
-
-<h2>March 23, 2000</h2>
-<p>I've just upload the Mesa 3.2 beta 1 files to SourceForge at <a href="https://sourceforge.net/project/showfiles.php?group_id=3">https://sourceforge.net/project/filelist.php?group_id=3</a></p>
-<p>3.2 (note even number) is a stabilization release of Mesa 3.1 meaning it's mainly
-just bug fixes.</p>
-<p>Here's what's changed:</p>
-<pre>
- Bug fixes:
- - mixed drawing of lines and bitmaps sometimes had wrong colors
- - added missing glHintPGI() function
- - fixed a polygon culling bug
- - fixed bugs in gluPartialDisk()
- - Z values in selection mode were wrong
- - added missing tokens:
- GL_SMOOTH_POINT_SIZE_RANGE
- GL_SMOOTH_POINT_SIZE_GRANULARITY
- GL_SMOOTH_LINE_WIDTH_RANGE
- GL_SMOOTH_LINE_WIDTH_GRANULARITY
- GL_ALIASED_POINT_SIZE_RANGE
- GL_ALIASED_LINE_WIDTH_RANGE
- - fixed glCopyPixels when copying from back to front buffer
- - GL_EXT_compiled_vertex_array tokens had _SGI suffix instead of _EXT
- - glDrawRangeElements(GL_LINES, 0, 1, 2, type, indices) was broken
- - glDeleteTextures() didn't decrement reference count correctly
- - GL_SRCA_ALPHA_SATURATE blend mode didn't work correctly
- - Actual depth of transformation matrix stacks was off by one
- - 24bpp visuals didn't address pixels correctly
- - mipmap level of detail (lambda) calculation simplified, more accurate
- - 101691 - Polygon clipping and GL_LINE
- - 101928 - Polygon clipping and GL_LINE (same fix as above)
- - 101808 - Non-glVertexArrays tristrip bug
- - 101971 - find_last_3f on Dec OSF (worked around)
- - 102369 - segv on dec osf (possibly a duplicate of the above)
- - 102893 - orientations of modelview cause segfault
- New:
- - updated SVGA Linux driver
- - added the MESA_FX_NO_SIGNALS env var, see docs/README.3DFX
- - build libGLw.a (Xt/OpenGL drawing area widget) library by default
- - changed -O2 to -O3 for a number of gcc configs
- Changes:
- - glXCopyContext's mask parameter is now unsigned long, per GLX spec
-</pre>
-
-<p>Please report any problems with this release ASAP. Bugs should be filed on the
-Mesa3D website at sourceforge.
-</p>
-<p>After 3.2 is wrapped up I hope to release 3.3 beta 1 soon afterward.</p>
-<p>-- Brian</p>
-
-<h2>December 17, 1999</h2>
-<p>A Slashdot interview with Brian about Mesa (questions submitted by Slashdot readers)
-can be found at <a href="https://slashdot.org/interviews/99/12/17/0927212.shtml">https://slashdot.org/interviews/99/12/17/0927212.shtml</a>.</p>
-
-<h2>December 14, 1999</h2>
-<p>Mesa 3.1 is released!</p>
-
-<h2>September 21, 1999</h2>
-<p>There appear to be two new files on the ftp site, <code>MesaLib-3.1beta3.tar.gz</code>
-and <code>MesaDemos-3.1beta3.tar.gz</code>,
-that seem to be... yes, I've just received confirmation from the beta center, they
-are indeed the <b>THIRD</b> beta release of Mesa 3.1! Happy Days. Happy Days. Thanks
-Keith Whitwell for preparing these for us during Brian's absence.</p>
-
-<h2>August 30, 1999</h2>
-<p>I'm pleased to announce that I've accepted a position with Precision Insight,
-Inc. effective October, 1999. I'll be leaving Avid Technology in September.</p>
-<p>I've been working on Mesa in my spare time for over five years. With Precision
-Insight I now have the opportunity to devote my full attention to advancing Mesa
-and OpenGL on Linux.</p>
-<p>While I'll be focused on Linux, the X Window System, and hardware acceleration,
-my work will continue to be open sourced and available to any other programmers who
-may want to contribute to it, or use it for other projects or platforms</p>
-<p>PS: I'm going to be traveling until Sep 6 and won't be reading email until then.</p>
-
-<h2>August 23, 1999</h2>
-<p>Anonymous CVS access is back online so suck up all the bandwidth you can afford.
-Note that this is a new archive, so you will need to re-checkout the archive. That
-means don't <i>cvs update</i> from a previous download.</p>
-
-<h2>August 17, 1999</h2>
-<p>A report from the SIGGRAPH '99 Linux/OpenGL
-BOF meeting is now available.</p>
-<p>-Brian</p>
-
-<h2>August 14, 1999</h2>
-<p><a href="https://www.mesa3d.org">www.mesa3d.org</a> is having
-technical problems due to hardware failures at VA Linux systems. The Mac pages,
-ftp, and CVS services aren't fully restored yet. Please be patient.</p>
-<p>-Brian</p>
-
-<h2>June 7, 1999</h2>
-<p>RPMS of the nVidia RIVA server can be found at
-<a href="ftp://ftp.mesa3d.org/mesa/misc/nVidia/">
-ftp://ftp.mesa3d.org/mesa/misc/nVidia/</a>.</p>
-
-<h2>June 2, 1999</h2>
-<p><a href="https://www.nvidia.com/">nVidia</a> has released some Linux binaries for
-xfree86 3.3.3.1, along with the <b>full source</b>, which includes GLX acceleration
-based on Mesa 3.0. They can be downloaded from
-<a href="https://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html">
-https://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html</a>.</p>
-
-<h2>May 24, 1999</h2>
-<p>Beta 2 of Mesa 3.1 has been make available at
-<a href="ftp://ftp.mesa3d.org/mesa/beta/">ftp://ftp.mesa3d.org/mesa/beta/</a>. If you are into the
-quake scene, you may want to try this out, as it contains some optimizations
-specifically in the Q3A rendering path.
-
-</p>
-<h2>May 13, 1999</h2>
-<p>For those interested in the integration of Mesa into XFree86 4.0, Precision Insight
-has posted their lowlevel design documents at
-<a href="http://www.precisioninsight.com">www.precisioninsight.com</a>.</p>
-
-<h2>May 13, 1999</h2>
-<pre>May 1999 - John Carmack of id Software, Inc. has made a donation of
-US$10,000 to the Mesa project to support its continuing development.
-Mesa is a free implementation of the OpenGL 3D graphics library and id's
-newest game, Quake 3 Arena, will use Mesa as the 3D renderer on Linux.
-
-The donation will go to Keith Whitwell, who has been optimizing Mesa to
-improve performance on 3d hardware. Thanks to Keith's work, many
-applications using Mesa 3.1 will see a dramatic performance increase
-over Mesa 3.0. The donation will allow Keith to continue working on
-Mesa full time for some time to come.
-
-For more information about Mesa see www.mesa3d.org. For more
-information about id Software, Inc. see www.idsoftware.com.
-
---------------------------------
-
-This donation from John/id is very generous. Keith and I are very
-grateful.
-
-</pre>
-
-<h2>May 1, 1999</h2>
-<p>John Carmack made an interesting .plan update yesterday:</p>
-<pre>
-I put together a document on optimizing OpenGL drivers for Q3 that should be helpful to the various Linux 3D teams.
-
-http://www.quake3arena.com/news/glopt.html
-</pre>
-
-<h2>April 7, 1999</h2>
-<p>Updated the Mesa contributors section and added links to RPM Mesa packages.</p>
-
-<h2>March 18, 1999</h2>
-<p>The new webpages are now online. Enjoy, and let me know if you find any errors.
-
-</p>
-<h2>February 16, 1999</h2>
-<p><a href="https://www.sgi.com/">SGI</a> releases its
-<a href="http://web.archive.org/web/20040805154836/http://www.sgi.com/software/opensource/glx/download.html">GLX source code</a>.
-</p>
-
-<h2>January 22, 1999</h2>
-<p><a href="https://www.mesa3d.org">www.mesa3d.org</a> established</p>
-
-</div>
-</body>
-</html>
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 00000000000..d7ef36b95ad
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,2824 @@
+News
+====
+
+June 11, 2020
+-------------
+
+`Mesa 20.0.8 <relnotes/20.0.8.html>`__ is released. This is a bug fix
+release.
+
+NOTE: It is anticipated that 20.0.8 will be the final release in the
+20.0 series. Users of 20.0 are encouraged to migrate to the 20.1 series
+in order to obtain future fixes.
+
+June 10, 2020
+-------------
+
+`Mesa 20.1.1 <relnotes/20.1.1.html>`__ is released. This is a bug fix
+release.
+
+May 27, 2020
+------------
+
+`Mesa 20.1.0 <relnotes/20.1.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+this release.
+
+May 14, 2020
+------------
+
+`Mesa 20.0.7 <relnotes/20.0.7.html>`__ is released. This is a bug fix
+release.
+
+April 29, 2020
+--------------
+
+`Mesa 20.0.6 <relnotes/20.0.6.html>`__ is released. This is a bug fix
+release.
+
+April 22, 2020
+--------------
+
+`Mesa 20.0.5 <relnotes/20.0.5.html>`__ is released. This is a bug fix
+release.
+
+April 3, 2020
+-------------
+
+`Mesa 20.0.4 <relnotes/20.0.4.html>`__ is released. This is an emergency
+release which reverts a serious SPIR-V regression in the 20.0.3 release.
+Users of 20.0.3 are recommended to upgrade immediately.
+
+April 1, 2020
+-------------
+
+`Mesa 20.0.3 <relnotes/20.0.3.html>`__ is released. This is a bug fix
+release.
+
+March 18, 2020
+--------------
+
+`Mesa 20.0.2 <relnotes/20.0.2.html>`__ is released. This is a bug fix
+release.
+
+March 9, 2020
+-------------
+
+`Mesa 19.3.5 <relnotes/19.3.5.html>`__ is released. This is a bug fix
+release, and the final 19.3.x release. Users are encouraged to migrate
+to 20.0.x in order to obtain future fixes.
+
+March 5, 2020
+-------------
+
+`Mesa 20.0.1 <relnotes/20.0.1.html>`__ is released. This is a bug fix
+release.
+
+February 19, 2020
+-----------------
+
+`Mesa 20.0.0 <relnotes/20.0.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+this release.
+
+February 13, 2020
+-----------------
+
+`Mesa 19.3.4 <relnotes/19.3.4.html>`__ is released. This is a bug fix
+release.
+
+January 28, 2020
+----------------
+
+`Mesa 19.3.3 <relnotes/19.3.3.html>`__ is released. This is a bug fix
+release.
+
+January 9, 2020
+---------------
+
+`Mesa 19.3.2 <relnotes/19.3.2.html>`__ is released. This is a bug fix
+release.
+
+December 18, 2019
+-----------------
+
+`Mesa 19.2.8 <relnotes/19.2.8.html>`__ is released. This is a bug fix
+release.
+
+.. _december-18-2019-1:
+
+December 18, 2019
+-----------------
+
+`Mesa 19.3.1 <relnotes/19.3.1.html>`__ is released. This is a bug fix
+release.
+
+December 12, 2019
+-----------------
+
+`Mesa 19.3.0 <relnotes/19.3.0.html>`__ is released. This is a new
+development release. See the release notes for mor information about
+this release.
+
+December 4, 2019
+----------------
+
+`Mesa 19.2.7 <relnotes/19.2.7.html>`__ is released. This is a bug fix
+release.
+
+November 21, 2019
+-----------------
+
+`Mesa 19.2.6 <relnotes/19.2.6.html>`__ is released. This is a bug fix
+release.
+
+November 20, 2019
+-----------------
+
+`Mesa 19.2.5 <relnotes/19.2.5.html>`__ is released. This is a bug fix
+release.
+
+November 13, 2019
+-----------------
+
+`Mesa 19.2.4 <relnotes/19.2.4.html>`__ is released. This is an emergency
+bugfix release, all users of 19.2.3 are recomended to upgrade
+immediately.
+
+November 6, 2019
+----------------
+
+`Mesa 19.2.3 <relnotes/19.2.3.html>`__ is released. This is a bug fix
+release.
+
+October 24, 2019
+----------------
+
+`Mesa 19.2.2 <relnotes/19.2.2.html>`__ is released. This is a bug fix
+release.
+
+October 21, 2019
+----------------
+
+`Mesa 19.1.8 <relnotes/19.1.8.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 19.1.8 will be the final release in the
+19.1 series. Users of 19.1 are encouraged to migrate to the 19.2 series
+in order to obtain future fixes.
+
+October 9, 2019
+---------------
+
+`Mesa 19.2.1 <relnotes/19.2.1.html>`__ is released. This is a bug fix
+release.
+
+September 25, 2019
+------------------
+
+`Mesa 19.2.0 <relnotes/19.2.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+this release
+
+September 17, 2019
+------------------
+
+`Mesa 19.1.7 <relnotes/19.1.7.html>`__ is released. This is a bug-fix
+release.
+
+September 3, 2019
+-----------------
+
+`Mesa 19.1.6 <relnotes/19.1.6.html>`__ is released. This is a bug-fix
+release.
+
+August 23, 2019
+---------------
+
+`Mesa 19.1.5 <relnotes/19.1.5.html>`__ is released. This is a bug-fix
+release.
+
+August 7, 2019
+--------------
+
+`Mesa 19.1.4 <relnotes/19.1.4.html>`__ is released. This is a bug-fix
+release.
+
+July 23, 2019
+-------------
+
+`Mesa 19.1.3 <relnotes/19.1.3.html>`__ is released. This is a bug-fix
+release.
+
+July 9, 2019
+------------
+
+`Mesa 19.1.2 <relnotes/19.1.2.html>`__ is released. This is a bug-fix
+release.
+
+June 26, 2019
+-------------
+
+`Mesa 19.0.8 <relnotes/19.0.8.html>`__ is released. This is an emergency
+bug fix release. Users of 19.0.7 should updated to 19.0.8 or 19.1.1
+immediately.
+
+June 25, 2019
+-------------
+
+`Mesa 19.1.1 <relnotes/19.1.1.html>`__ is released. This is a bug-fix
+release.
+
+June 24, 2019
+-------------
+
+`Mesa 19.0.7 <relnotes/19.0.7.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 19.0.7 will be the final release in the
+19.0 series. Users of 19.0 are encouraged to migrate to the 19.1 series
+in order to obtain future fixes.
+
+June 11, 2019
+-------------
+
+`Mesa 19.1.0 <relnotes/19.1.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+this release
+
+June 5, 2019
+------------
+
+`Mesa 19.0.6 <relnotes/19.0.6.html>`__ is released. This is a bug-fix
+release.
+
+May 21, 2019
+------------
+
+`Mesa 19.0.5 <relnotes/19.0.5.html>`__ is released. This is a bug-fix
+release.
+
+May 9, 2019
+-----------
+
+`Mesa 19.0.4 <relnotes/19.0.4.html>`__ is released. This is a bug-fix
+release.
+
+April 24, 2019
+--------------
+
+`Mesa 19.0.3 <relnotes/19.0.3.html>`__ is released. This is a bug-fix
+release.
+
+April 10, 2019
+--------------
+
+`Mesa 19.0.2 <relnotes/19.0.2.html>`__ is released. This is a bug-fix
+release.
+
+April 5, 2019
+-------------
+
+`Mesa 18.3.6 <relnotes/18.3.6.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 18.3.6 will be the final release in the
+18.3 series. Users of 18.3 are encouraged to migrate to the 19.0 series
+in order to obtain future fixes.
+
+March 27, 2019
+--------------
+
+`Mesa 19.0.1 <relnotes/19.0.1.html>`__ is released. This is a bug-fix
+release.
+
+March 18, 2019
+--------------
+
+`Mesa 18.3.5 <relnotes/18.3.5.html>`__ is released. This is a bug-fix
+release.
+
+March 13, 2019
+--------------
+
+`Mesa 19.0.0 <relnotes/19.0.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+this release
+
+February 18, 2019
+-----------------
+
+`Mesa 18.3.4 <relnotes/18.3.4.html>`__ is released. This is a bug-fix
+release.
+
+January 31, 2019
+----------------
+
+`Mesa 18.3.3 <relnotes/18.3.3.html>`__ is released. This is a bug-fix
+release.
+
+January 17, 2019
+----------------
+
+`Mesa 18.3.2 <relnotes/18.3.2.html>`__ is released. This is a bug-fix
+release.
+
+December 27, 2018
+-----------------
+
+`Mesa 18.2.8 <relnotes/18.2.8.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 18.2.8 will be the final release in the
+18.2 series. Users of 18.2 are encouraged to migrate to the 18.3 series
+in order to obtain future fixes.
+
+December 13, 2018
+-----------------
+
+`Mesa 18.2.7 <relnotes/18.2.7.html>`__ is released. This is a bug-fix
+release.
+
+December 11, 2018
+-----------------
+
+`Mesa 18.3.1 <relnotes/18.3.1.html>`__ is released. This is a bug-fix
+release.
+
+December 7, 2018
+----------------
+
+`Mesa 18.3.0 <relnotes/18.3.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+November 28, 2018
+-----------------
+
+`Mesa 18.2.6 <relnotes/18.2.6.html>`__ is released. This is a bug-fix
+release.
+
+November 15, 2018
+-----------------
+
+`Mesa 18.2.5 <relnotes/18.2.5.html>`__ is released. This is a bug-fix
+release.
+
+October 31, 2018
+----------------
+
+`Mesa 18.2.4 <relnotes/18.2.4.html>`__ is released. This is a bug-fix
+release.
+
+October 19, 2018
+----------------
+
+`Mesa 18.2.3 <relnotes/18.2.3.html>`__ is released. This is a bug-fix
+release.
+
+October 5, 2018
+---------------
+
+`Mesa 18.2.2 <relnotes/18.2.2.html>`__ is released. This is a bug-fix
+release.
+
+September 24, 2018
+------------------
+
+`Mesa 18.1.9 <relnotes/18.1.9.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 18.1.9 will be the final release in the
+18.1 series. Users of 18.1 are encouraged to migrate to the 18.2 series
+in order to obtain future fixes.
+
+September 21, 2018
+------------------
+
+`Mesa 18.2.1 <relnotes/18.2.1.html>`__ is released. This is a bug-fix
+release.
+
+September 7, 2018
+-----------------
+
+`Mesa 18.1.8 <relnotes/18.1.8.html>`__ and `Mesa
+18.2.0 <relnotes/18.2.0.html>`__ are released. These are, respectively,
+a bug-fix release from the 18.1 branch and a new development release.
+See the release notes for more information about the releases.
+
+August 24, 2018
+---------------
+
+`Mesa 18.1.7 <relnotes/18.1.7.html>`__ is released. This is a bug-fix
+release.
+
+August 13, 2018
+---------------
+
+`Mesa 18.1.6 <relnotes/18.1.6.html>`__ is released. This is a bug-fix
+release.
+
+July 27, 2018
+-------------
+
+`Mesa 18.1.5 <relnotes/18.1.5.html>`__ is released. This is a bug-fix
+release.
+
+July 13, 2018
+-------------
+
+`Mesa 18.1.4 <relnotes/18.1.4.html>`__ is released. This is a bug-fix
+release.
+
+June 29, 2018
+-------------
+
+`Mesa 18.1.3 <relnotes/18.1.3.html>`__ is released. This is a bug-fix
+release.
+
+June 15, 2018
+-------------
+
+`Mesa 18.1.2 <relnotes/18.1.2.html>`__ is released. This is a bug-fix
+release.
+
+June 3, 2018
+------------
+
+`Mesa 18.0.5 <relnotes/18.0.5.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 18.0.5 will be the final release in the
+18.0 series. Users of 18.0 are encouraged to migrate to the 18.1 series
+in order to obtain future fixes.
+
+June 1, 2018
+------------
+
+`Mesa 18.1.1 <relnotes/18.1.1.html>`__ is released. This is a bug-fix
+release.
+
+May 18, 2018
+------------
+
+`Mesa 18.1.0 <relnotes/18.1.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+May 17, 2018
+------------
+
+`Mesa 18.0.4 <relnotes/18.0.4.html>`__ is released. This is a bug-fix
+release.
+
+May 7, 2018
+-----------
+
+`Mesa 18.0.3 <relnotes/18.0.3.html>`__ is released. This is a bug-fix
+release.
+
+April 28, 2018
+--------------
+
+`Mesa 18.0.2 <relnotes/18.0.2.html>`__ is released. This is a bug-fix
+release.
+
+April 18, 2018
+--------------
+
+`Mesa 18.0.1 <relnotes/18.0.1.html>`__ is released. This is a bug-fix
+release.
+
+.. _april-18-2018-1:
+
+April 18, 2018
+--------------
+
+`Mesa 17.3.9 <relnotes/17.3.9.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 17.3.9 will be the final release in the
+17.3 series. Users of 17.3 are encouraged to migrate to the 18.0 series
+in order to obtain future fixes.
+
+April 03, 2018
+--------------
+
+`Mesa 17.3.8 <relnotes/17.3.8.html>`__ is released. This is a bug-fix
+release.
+
+March 27, 2018
+--------------
+
+`Mesa 18.0.0 <relnotes/18.0.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+March 21, 2018
+--------------
+
+`Mesa 17.3.7 <relnotes/17.3.7.html>`__ is released. This is a bug-fix
+release.
+
+February 26, 2018
+-----------------
+
+`Mesa 17.3.6 <relnotes/17.3.6.html>`__ is released. This is a bug-fix
+release.
+
+February 19, 2018
+-----------------
+
+`Mesa 17.3.5 <relnotes/17.3.5.html>`__ is released. This is a bug-fix
+release.
+
+February 15, 2018
+-----------------
+
+`Mesa 17.3.4 <relnotes/17.3.4.html>`__ is released. This is a bug-fix
+release.
+
+January 18, 2018
+----------------
+
+`Mesa 17.3.3 <relnotes/17.3.3.html>`__ is released. This is a bug-fix
+release.
+
+January 8, 2018
+---------------
+
+`Mesa 17.3.2 <relnotes/17.3.2.html>`__ is released. This is a bug-fix
+release.
+
+December 22, 2017
+-----------------
+
+`Mesa 17.2.8 <relnotes/17.2.8.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 17.2.8 will be the final release in the
+17.2 series. Users of 17.2 are encouraged to migrate to the 17.3 series
+in order to obtain future fixes.
+
+December 21, 2017
+-----------------
+
+`Mesa 17.3.1 <relnotes/17.3.1.html>`__ is released. This is a bug-fix
+release.
+
+December 14, 2017
+-----------------
+
+`Mesa 17.2.7 <relnotes/17.2.7.html>`__ is released. This is a bug-fix
+release.
+
+December 8, 2017
+----------------
+
+`Mesa 17.3.0 <relnotes/17.3.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+November 25, 2017
+-----------------
+
+`Mesa 17.2.6 <relnotes/17.2.6.html>`__ is released. This is a bug-fix
+release.
+
+November 10, 2017
+-----------------
+
+`Mesa 17.2.5 <relnotes/17.2.5.html>`__ is released. This is a bug-fix
+release.
+
+October 30, 2017
+----------------
+
+`Mesa 17.2.4 <relnotes/17.2.4.html>`__ is released. This is a bug-fix
+release.
+
+October 19, 2017
+----------------
+
+`Mesa 17.2.3 <relnotes/17.2.3.html>`__ is released. This is a bug-fix
+release.
+
+October 2, 2017
+---------------
+
+`Mesa 17.2.2 <relnotes/17.2.2.html>`__ is released. This is a bug-fix
+release.
+
+September 25, 2017
+------------------
+
+`Mesa 17.1.10 <relnotes/17.1.10.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 17.1.10 will be the final release in the
+17.1 series. Users of 17.1 are encouraged to migrate to the 17.2 series
+in order to obtain future fixes.
+
+September 17, 2017
+------------------
+
+`Mesa 17.2.1 <relnotes/17.2.1.html>`__ is released. This is a bug-fix
+release.
+
+September 8, 2017
+-----------------
+
+`Mesa 17.1.9 <relnotes/17.1.9.html>`__ is released. This is a bug-fix
+release.
+
+September 4, 2017
+-----------------
+
+`Mesa 17.2.0 <relnotes/17.2.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+August 28, 2017
+---------------
+
+`Mesa 17.1.8 <relnotes/17.1.8.html>`__ is released. This is a bug-fix
+release.
+
+August 21, 2017
+---------------
+
+`Mesa 17.1.7 <relnotes/17.1.7.html>`__ is released. This is a bug-fix
+release.
+
+August 7, 2017
+--------------
+
+`Mesa 17.1.6 <relnotes/17.1.6.html>`__ is released. This is a bug-fix
+release.
+
+July 14, 2017
+-------------
+
+`Mesa 17.1.5 <relnotes/17.1.5.html>`__ is released. This is a bug-fix
+release.
+
+June 30, 2017
+-------------
+
+`Mesa 17.1.4 <relnotes/17.1.4.html>`__ is released. This is a bug-fix
+release.
+
+June 19, 2017
+-------------
+
+`Mesa 17.1.3 <relnotes/17.1.3.html>`__ is released. This is a bug-fix
+release.
+
+June 5, 2017
+------------
+
+`Mesa 17.1.2 <relnotes/17.1.2.html>`__ is released. This is a bug-fix
+release.
+
+June 1, 2017
+------------
+
+`Mesa 17.0.7 <relnotes/17.0.7.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 17.0.7 will be the final release in the
+17.0 series. Users of 17.0 are encouraged to migrate to the 17.1 series
+in order to obtain future fixes.
+
+May 25, 2017
+------------
+
+`Mesa 17.1.1 <relnotes/17.1.1.html>`__ is released. This is a bug-fix
+release.
+
+May 12, 2017
+------------
+
+`Mesa 17.0.6 <relnotes/17.0.6.html>`__ is released. This is a bug-fix
+release.
+
+May 10, 2017
+------------
+
+`Mesa 17.1.0 <relnotes/17.1.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+April 28, 2017
+--------------
+
+`Mesa 17.0.5 <relnotes/17.0.5.html>`__ is released. This is a bug-fix
+release.
+
+April 17, 2017
+--------------
+
+`Mesa 17.0.4 <relnotes/17.0.4.html>`__ is released. This is a bug-fix
+release.
+
+April 1, 2017
+-------------
+
+`Mesa 17.0.3 <relnotes/17.0.3.html>`__ is released. This is a bug-fix
+release.
+
+March 20, 2017
+--------------
+
+`Mesa 13.0.6 <relnotes/13.0.6.html>`__ and `Mesa
+17.0.2 <relnotes/17.0.2.html>`__ are released. These are bug-fix
+releases from the 13.0 and 17.0 branches, respectively.
+
+NOTE: It is anticipated that 13.0.6 will be the final release in the
+13.0 series. Users of 13.0 are encouraged to migrate to the 17.0 series
+in order to obtain future fixes.
+
+March 4, 2017
+-------------
+
+`Mesa 17.0.1 <relnotes/17.0.1.html>`__ is released. This is a bug-fix
+release.
+
+February 20, 2017
+-----------------
+
+`Mesa 13.0.5 <relnotes/13.0.5.html>`__ is released. This is a bug-fix
+release.
+
+February 13, 2017
+-----------------
+
+`Mesa 17.0.0 <relnotes/17.0.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+February 1, 2017
+----------------
+
+`Mesa 13.0.4 <relnotes/13.0.4.html>`__ is released. This is a bug-fix
+release.
+
+January 23, 2017
+----------------
+
+`Mesa 12.0.6 <relnotes/12.0.6.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: This is an extra release for the 12.0 stable branch, as per
+developers' feedback. It is anticipated that 12.0.6 will be the final
+release in the 12.0 series. Users of 12.0 are encouraged to migrate to
+the 13.0 series in order to obtain future fixes.
+
+January 5, 2017
+---------------
+
+`Mesa 13.0.3 <relnotes/13.0.3.html>`__ is released. This is a bug-fix
+release.
+
+December 5, 2016
+----------------
+
+`Mesa 12.0.5 <relnotes/12.0.5.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 12.0.5 will be the final release in the
+12.0 series. Users of 12.0 are encouraged to migrate to the 13.0 series
+in order to obtain future fixes.
+
+November 28, 2016
+-----------------
+
+`Mesa 13.0.2 <relnotes/13.0.2.html>`__ is released. This is a bug-fix
+release.
+
+November 14, 2016
+-----------------
+
+`Mesa 13.0.1 <relnotes/13.0.1.html>`__ is released. This is a bug-fix
+release.
+
+November 10, 2016
+-----------------
+
+`Mesa 12.0.4 <relnotes/12.0.4.html>`__ is released. This is a bug-fix
+release.
+
+November 1, 2016
+----------------
+
+`Mesa 13.0.0 <relnotes/13.0.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+September 15, 2016
+------------------
+
+`Mesa 12.0.3 <relnotes/12.0.3.html>`__ is released. This is a bug-fix
+release.
+
+September 2, 2016
+-----------------
+
+`Mesa 12.0.2 <relnotes/12.0.2.html>`__ is released. This is a bug-fix
+release.
+
+July 8, 2016
+------------
+
+`Mesa 12.0.1 <relnotes/12.0.1.html>`__ is released. This is a bug-fix
+release, resolving build issues in the r600 and radeonsi drivers.
+
+`Mesa 12.0.0 <relnotes/12.0.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+May 9, 2016
+-----------
+
+`Mesa 11.1.4 <relnotes/11.1.4.html>`__ and `Mesa
+11.2.2 <relnotes/11.2.2.html>`__ are released. These are bug-fix
+releases from the 11.1 and 11.2 branches, respectively.
+
+NOTE: It is anticipated that 11.1.4 will be the final release in the
+11.1.4 series. Users of 11.1 are encouraged to migrate to the 11.2
+series in order to obtain future fixes.
+
+April 17, 2016
+--------------
+
+`Mesa 11.1.3 <relnotes/11.1.3.html>`__ and `Mesa
+11.2.1 <relnotes/11.2.1.html>`__ are released. These are bug-fix
+releases from the 11.1 and 11.2 branches, respectively.
+
+April 4, 2016
+-------------
+
+`Mesa 11.2.0 <relnotes/11.2.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+February 10, 2016
+-----------------
+
+`Mesa 11.1.2 <relnotes/11.1.2.html>`__ is released. This is a bug-fix
+release.
+
+January 22, 2016
+----------------
+
+`Mesa 11.0.9 <relnotes/11.0.9.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 11.0.9 will be the final release in the
+11.0 series. Users of 11.0 are encouraged to migrate to the 11.1 series
+in order to obtain future fixes.
+
+January 13, 2016
+----------------
+
+`Mesa 11.1.1 <relnotes/11.1.1.html>`__ is released. This is a bug-fix
+release.
+
+December 21, 2015
+-----------------
+
+`Mesa 11.0.8 <relnotes/11.0.8.html>`__ is released. This is a bug-fix
+release.
+
+December 15, 2015
+-----------------
+
+`Mesa 11.1.0 <relnotes/11.1.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+December 9, 2015
+----------------
+
+`Mesa 11.0.7 <relnotes/11.0.7.html>`__ is released. This is a bug-fix
+release.
+
+Mesa demos 8.3.0 is also released. See the
+`announcement <https://lists.freedesktop.org/archives/mesa-announce/2015-December/000191.html>`__
+for more information about the release. You can download it from
+`ftp.freedesktop.org/pub/mesa/demos/8.3.0/ <ftp://ftp.freedesktop.org/pub/mesa/demos/8.3.0/>`__.
+
+November 21, 2015
+-----------------
+
+`Mesa 11.0.6 <relnotes/11.0.6.html>`__ is released. This is a bug-fix
+release.
+
+November 11, 2015
+-----------------
+
+`Mesa 11.0.5 <relnotes/11.0.5.html>`__ is released. This is a bug-fix
+release.
+
+October 24, 2015
+----------------
+
+`Mesa 11.0.4 <relnotes/11.0.4.html>`__ is released. This is a bug-fix
+release.
+
+October 10, 2015
+----------------
+
+`Mesa 11.0.3 <relnotes/11.0.3.html>`__ is released. This is a bug-fix
+release.
+
+October 3, 2015
+---------------
+
+`Mesa 10.6.9 <relnotes/10.6.9.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 10.6.9 will be the final release in the
+10.6 series. Users of 10.6 are encouraged to migrate to the 11.0 series
+in order to obtain future fixes.
+
+September 28, 2015
+------------------
+
+`Mesa 11.0.2 <relnotes/11.0.2.html>`__ is released. This is a bug-fix
+release.
+
+September 26, 2015
+------------------
+
+`Mesa 11.0.1 <relnotes/11.0.1.html>`__ is released. This is a bug-fix
+release.
+
+September 20, 2015
+------------------
+
+`Mesa 10.6.8 <relnotes/10.6.8.html>`__ is released. This is a bug-fix
+release.
+
+September 12, 2015
+------------------
+
+`Mesa 11.0.0 <relnotes/11.0.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+September 10, 2015
+------------------
+
+`Mesa 10.6.7 <relnotes/10.6.7.html>`__ is released. This is a bug-fix
+release.
+
+September 4, 2015
+-----------------
+
+`Mesa 10.6.6 <relnotes/10.6.6.html>`__ is released. This is a bug-fix
+release.
+
+August 22, 2015
+---------------
+
+`Mesa 10.6.5 <relnotes/10.6.5.html>`__ is released. This is a bug-fix
+release.
+
+August 11, 2015
+---------------
+
+`Mesa 10.6.4 <relnotes/10.6.4.html>`__ is released. This is a bug-fix
+release.
+
+July 26, 2015
+-------------
+
+`Mesa 10.6.3 <relnotes/10.6.3.html>`__ is released. This is a bug-fix
+release.
+
+July 11, 2015
+-------------
+
+`Mesa 10.6.2 <relnotes/10.6.2.html>`__ is released. This is a bug-fix
+release.
+
+July 04, 2015
+-------------
+
+`Mesa 10.5.9 <relnotes/10.5.9.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: It is anticipated that 10.5.9 will be the final release in the
+10.5 series. Users of 10.5 are encouraged to migrate to the 10.6 series
+in order to obtain future fixes.
+
+June 29, 2015
+-------------
+
+`Mesa 10.6.1 <relnotes/10.6.1.html>`__ is released. This is a bug-fix
+release.
+
+June 20, 2015
+-------------
+
+`Mesa 10.5.8 <relnotes/10.5.8.html>`__ is released. This is a bug-fix
+release.
+
+June 14, 2015
+-------------
+
+`Mesa 10.6.0 <relnotes/10.6.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+June 07, 2015
+-------------
+
+`Mesa 10.5.7 <relnotes/10.5.7.html>`__ is released. This is a bug-fix
+release.
+
+May 23, 2015
+------------
+
+`Mesa 10.5.6 <relnotes/10.5.6.html>`__ is released. This is a bug-fix
+release.
+
+May 11, 2015
+------------
+
+`Mesa 10.5.5 <relnotes/10.5.5.html>`__ is released. This is a bug-fix
+release.
+
+April 24, 2015
+--------------
+
+`Mesa 10.5.4 <relnotes/10.5.4.html>`__ is released. This is a bug-fix
+release.
+
+April 12, 2015
+--------------
+
+`Mesa 10.5.3 <relnotes/10.5.3.html>`__ is released. This is a bug-fix
+release.
+
+March 28, 2015
+--------------
+
+`Mesa 10.5.2 <relnotes/10.5.2.html>`__ is released. This is a bug-fix
+release.
+
+March 20, 2015
+--------------
+
+`Mesa 10.4.7 <relnotes/10.4.7.html>`__ is released. This is a bug-fix
+release.
+
+March 13, 2015
+--------------
+
+`Mesa 10.5.1 <relnotes/10.5.1.html>`__ is released. This is a bug-fix
+release.
+
+March 06, 2015
+--------------
+
+`Mesa 10.5.0 <relnotes/10.5.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+.. _march-06-2015-1:
+
+March 06, 2015
+--------------
+
+`Mesa 10.4.6 <relnotes/10.4.6.html>`__ is released. This is a bug-fix
+release.
+
+February 21, 2015
+-----------------
+
+`Mesa 10.4.5 <relnotes/10.4.5.html>`__ is released. This is a bug-fix
+release.
+
+February 06, 2015
+-----------------
+
+`Mesa 10.4.4 <relnotes/10.4.4.html>`__ is released. This is a bug-fix
+release.
+
+January 24, 2015
+----------------
+
+`Mesa 10.4.3 <relnotes/10.4.3.html>`__ is released. This is a bug-fix
+release.
+
+January 12, 2015
+----------------
+
+`Mesa 10.3.7 <relnotes/10.3.7.html>`__ and `Mesa
+10.4.2 <relnotes/10.4.2.html>`__ are released. These are bug-fix
+releases from the 10.3 and 10.4 branches, respectively.
+
+NOTE: It is anticipated that 10.3.7 will be the final release in the
+10.3 series. Users of 10.3 are encouraged to migrate to the 10.4 series
+in order to obtain future fixes.
+
+December 29, 2014
+-----------------
+
+`Mesa 10.3.6 <relnotes/10.3.6.html>`__ and `Mesa
+10.4.1 <relnotes/10.4.1.html>`__ are released. These are bug-fix
+releases from the 10.3 and 10.4 branches, respectively.
+
+December 14, 2014
+-----------------
+
+`Mesa 10.4 <relnotes/10.4.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+December 5, 2014
+----------------
+
+`Mesa 10.3.5 <relnotes/10.3.5.html>`__ is released. This is a bug-fix
+release.
+
+November 21, 2014
+-----------------
+
+`Mesa 10.3.4 <relnotes/10.3.4.html>`__ is released. This is a bug-fix
+release.
+
+November 8, 2014
+----------------
+
+`Mesa 10.3.3 <relnotes/10.3.3.html>`__ is released. This is a bug-fix
+release.
+
+October 24, 2014
+----------------
+
+`Mesa 10.3.2 <relnotes/10.3.2.html>`__ is released. This is a bug-fix
+release.
+
+October 12, 2014
+----------------
+
+`Mesa 10.2.9 <relnotes/10.2.9.html>`__ and `Mesa
+10.3.1 <relnotes/10.3.1.html>`__ are released. These are bug-fix
+releases from the 10.2 and 10.3 branches, respectively.
+
+NOTE: It is anticipated that 10.2.9 will be the final release in the
+10.2 series. Users of 10.2 are encouraged to migrate to the 10.3 series
+in order to obtain future fixes.
+
+September 19, 2014
+------------------
+
+`Mesa 10.3 <relnotes/10.3.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+Also, `Mesa 10.2.8 <relnotes/10.2.8.html>`__ is released. This is a bug
+fix release from the 10.2 branch.
+
+September 6, 2014
+-----------------
+
+`Mesa 10.2.7 <relnotes/10.2.7.html>`__ is released. This is a bug-fix
+release.
+
+August 19, 2014
+---------------
+
+`Mesa 10.2.6 <relnotes/10.2.6.html>`__ is released. This is a bug-fix
+release.
+
+August 2, 2014
+--------------
+
+`Mesa 10.2.5 <relnotes/10.2.5.html>`__ is released. This is a bug-fix
+release.
+
+July 18, 2014
+-------------
+
+`Mesa 10.2.4 <relnotes/10.2.4.html>`__ is released. This is a bug-fix
+release.
+
+July 7, 2014
+------------
+
+`Mesa 10.2.3 <relnotes/10.2.3.html>`__ is released. This is a bug-fix
+release.
+
+July 5, 2014
+------------
+
+Mesa demos 8.2.0 is released. See the
+`announcement <https://lists.freedesktop.org/archives/mesa-announce/2014-July/000100.html>`__
+for more information about the release. You can download it from
+`ftp.freedesktop.org/pub/mesa/demos/8.2.0/ <ftp://ftp.freedesktop.org/pub/mesa/demos/8.2.0/>`__.
+
+June 24, 2014
+-------------
+
+`Mesa 10.1.6 <relnotes/10.1.6.html>`__ and `Mesa
+10.2.2 <relnotes/10.2.2.html>`__ are released. These are bug-fix
+releases from the 10.1 and 10.2 branches, respectively.
+
+June 6, 2014
+------------
+
+`Mesa 10.2.1 <relnotes/10.2.1.html>`__ is released. This release only
+fixes a build error in the radeonsi driver that was introduced between
+10.2-rc5 and the 10.2 final release.
+
+.. _june-6-2014-1:
+
+June 6, 2014
+------------
+
+`Mesa 10.2 <relnotes/10.2.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+Also, `Mesa 10.1.5 <relnotes/10.1.5.html>`__ is released. This is a bug
+fix release from the 10.1 branch.
+
+May 20, 2014
+------------
+
+`Mesa 10.1.4 <relnotes/10.1.4.html>`__ is released. This is a bug-fix
+release.
+
+May 9, 2014
+-----------
+
+`Mesa 10.1.3 <relnotes/10.1.3.html>`__ is released. This is a bug-fix
+release, and is being released sooner than originally scheduled to fix a
+performance regression (vmware swapbuffers falling back to software)
+introduced to the 10.1.2 release.
+
+May 5, 2014
+-----------
+
+`Mesa 10.1.2 <relnotes/10.1.2.html>`__ is released. This is a bug-fix
+release.
+
+April 18, 2014
+--------------
+
+`Mesa 10.1.1 <relnotes/10.1.1.html>`__ is released. This is a bug-fix
+release.
+
+.. _april-18-2014-1:
+
+April 18, 2014
+--------------
+
+`Mesa 10.0.5 <relnotes/10.0.5.html>`__ is released. This is a bug-fix
+release.
+
+NOTE: Since the 10.1.1 release is being released concurrently, it is
+anticipated that 10.0.5 will be the final release in the 10.0 series.
+Users of 10.0 are encouraged to migrate to the 10.1 series in order to
+obtain future fixes.
+
+March 12, 2014
+--------------
+
+`Mesa 10.0.4 <relnotes/10.0.4.html>`__ is released. This is a bug-fix
+release.
+
+March 4, 2014
+-------------
+
+`Mesa 10.1 <relnotes/10.1.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+February 3, 2014
+----------------
+
+`Mesa 10.0.3 <relnotes/10.0.3.html>`__ is released. This is a bug-fix
+release.
+
+January 9, 2014
+---------------
+
+`Mesa 10.0.2 <relnotes/10.0.2.html>`__ is released. This is a bug-fix
+release.
+
+December 12, 2013
+-----------------
+
+`Mesa 10.0.1 <relnotes/10.0.1.html>`__ and `Mesa
+9.2.5 <relnotes/9.2.5.html>`__ are released. These are both bug-fix
+releases.
+
+November 30, 2013
+-----------------
+
+`Mesa 10.0 <relnotes/10.0.html>`__ is released. This is a new
+development release. See the release notes for more information about
+the release.
+
+November 27, 2013
+-----------------
+
+`Mesa 9.2.4 <relnotes/9.2.4.html>`__ is released. This is a bug fix
+release.
+
+November 13, 2013
+-----------------
+
+`Mesa 9.2.3 <relnotes/9.2.3.html>`__ is released. This is a bug fix
+release.
+
+October 18, 2013
+----------------
+
+`Mesa 9.2.2 <relnotes/9.2.2.html>`__ is released. This is a bug fix
+release.
+
+October 4, 2013
+---------------
+
+`Mesa 9.2.1 <relnotes/9.2.1.html>`__ and `Mesa
+9.1.7 <relnotes/9.1.7.html>`__ are released, both bug-fix releases.
+
+August 27, 2013
+---------------
+
+`Mesa 9.2 <relnotes/9.2.html>`__ is released. This is a new development
+release. See the release notes for more information about the release.
+
+August 1, 2013
+--------------
+
+`Mesa 9.1.6 <relnotes/9.1.6.html>`__ is released. This is a bug fix
+release.
+
+July 17, 2013
+-------------
+
+`Mesa 9.1.5 <relnotes/9.1.5.html>`__ is released. This is a bug fix
+release.
+
+July 1, 2013
+------------
+
+`Mesa 9.1.4 <relnotes/9.1.4.html>`__ is released. This is a bug fix
+release.
+
+May 21, 2013
+------------
+
+`Mesa 9.1.3 <relnotes/9.1.3.html>`__ is released. This is a bug fix
+release.
+
+April 30, 2013
+--------------
+
+`Mesa 9.1.2 <relnotes/9.1.2.html>`__ is released. This is a bug fix
+release.
+
+March 19, 2013
+--------------
+
+`Mesa 9.1.1 <relnotes/9.1.1.html>`__ is released. This is a bug fix
+release.
+
+February 24, 2013
+-----------------
+
+Mesa demos 8.1.0 is released. See the
+`announcement <https://lists.freedesktop.org/archives/mesa-dev/2013-February/035180.html>`__
+for more information about the release. You can download it from
+`ftp.freedesktop.org/pub/mesa/demos/8.1.0/ <ftp://ftp.freedesktop.org/pub/mesa/demos/8.1.0/>`__.
+
+February 22, 2013
+-----------------
+
+`Mesa 9.1 <relnotes/9.1.html>`__ is released. This is a new development
+release. See the release notes for more information about the release.
+
+February 21, 2013
+-----------------
+
+`Mesa 9.0.3 <relnotes/9.0.3.html>`__ is released. This is a bug fix
+release.
+
+January 22, 2013
+----------------
+
+`Mesa 9.0.2 <relnotes/9.0.2.html>`__ is released. This is a bug fix
+release.
+
+November 16, 2012
+-----------------
+
+`Mesa 9.0.1 <relnotes/9.0.1.html>`__ is released. This is a bug fix
+release.
+
+October 24, 2012
+----------------
+
+`Mesa 8.0.5 <relnotes/8.0.5.html>`__ is released. This is a bug fix
+release.
+
+October 8, 2012
+---------------
+
+`Mesa 9.0 <relnotes/9.0.html>`__ is released. This is the first version
+of Mesa to support OpenGL 3.1 and GLSL 1.40 (with the i965 driver). See
+the release notes for more information about the release.
+
+July 10, 2012
+-------------
+
+`Mesa 8.0.4 <relnotes/8.0.4.html>`__ is released. This is a bug fix
+release.
+
+May 18, 2012
+------------
+
+`Mesa 8.0.3 <relnotes/8.0.3.html>`__ is released. This is a bug fix
+release.
+
+March 21, 2012
+--------------
+
+`Mesa 8.0.2 <relnotes/8.0.2.html>`__ is released. This is a bug fix
+release.
+
+February 16, 2012
+-----------------
+
+`Mesa 8.0.1 <relnotes/8.0.1.html>`__ is released. This is a bug fix
+release. See the release notes for more information about the release.
+
+February 9, 2012
+----------------
+
+`Mesa 8.0 <relnotes/8.0.html>`__ is released. This is the first version
+of Mesa to support OpenGL 3.0 and GLSL 1.30 (with the i965 driver). See
+the release notes for more information about the release.
+
+November 27, 2011
+-----------------
+
+`Mesa 7.11.2 <relnotes/7.11.2.html>`__ is released. This is a bug fix
+release. This release was made primarily to fix build problems with
+7.11.1 on Mandriva and to fix problems related to glCopyTexImage to
+luminance-alpha textures. The later was believed to have been fixed in
+7.11.1 but was not.
+
+November 17, 2011
+-----------------
+
+`Mesa 7.11.1 <relnotes/7.11.1.html>`__ is released. This is a bug fix
+release.
+
+July 31, 2011
+-------------
+
+`Mesa 7.11 <relnotes/7.11.html>`__ (final) is released. This is a new
+development release.
+
+June 13, 2011
+-------------
+
+`Mesa 7.10.3 <relnotes/7.10.3.html>`__ is released. This is a bug fix
+release.
+
+April 6, 2011
+-------------
+
+`Mesa 7.10.2 <relnotes/7.10.2.html>`__ is released. This is a bug fix
+release.
+
+March 2, 2011
+-------------
+
+`Mesa 7.9.2 <relnotes/7.9.2.html>`__ and `Mesa
+7.10.1 <relnotes/7.10.1.html>`__ are released. These are stable releases
+containing bug fixes since the 7.9.1 and 7.10 releases.
+
+October 4, 2010
+---------------
+
+`Mesa 7.9 <relnotes/7.9.html>`__ (final) is released. This is a new
+development release.
+
+September 27, 2010
+------------------
+
+`Mesa 7.9.0-rc1 <relnotes/7.9.html>`__ is released. This is a release
+candidate for the 7.9 development release.
+
+June 16, 2010
+-------------
+
+`Mesa 7.8.2 <relnotes/7.8.2.html>`__ is released. This is a bug-fix
+release collecting fixes since the 7.8.1 release.
+
+April 5, 2010
+-------------
+
+`Mesa 7.8.1 <relnotes/7.8.1.html>`__ is released. This is a bug-fix
+release for a few critical issues in the 7.8 release.
+
+March 28, 2010
+--------------
+
+`Mesa 7.7.1 <relnotes/7.7.1.html>`__ is released. This is a bug-fix
+release fixing issues found in the 7.7 release.
+
+Also, `Mesa 7.8 <relnotes/7.8.html>`__ is released. This is a new
+development release.
+
+December 21, 2009
+-----------------
+
+`Mesa 7.6.1 <relnotes/7.6.1.html>`__ is released. This is a bug-fix
+release fixing issues found in the 7.6 release.
+
+Also, `Mesa 7.7 <relnotes/7.7.html>`__ is released. This is a new
+development release.
+
+September 28, 2009
+------------------
+
+`Mesa 7.6 <relnotes/7.6.html>`__ is released. This is a new feature
+release. Those especially concerned about stability may want to wait for
+the follow-on 7.6.1 bug-fix release.
+
+`Mesa 7.5.2 <relnotes/7.5.2.html>`__ is also released. This is a stable
+release fixing bugs since the 7.5.1 release.
+
+September 3, 2009
+-----------------
+
+`Mesa 7.5.1 <relnotes/7.5.1.html>`__ is released. This is a bug-fix
+release which fixes bugs found in version 7.5.
+
+July 17, 2009
+-------------
+
+`Mesa 7.5 <relnotes/7.5.html>`__ is released. This is a new features
+release. People especially concerned about stability may want to wait
+for the follow-on 7.5.1 bug-fix release.
+
+June 23, 2009
+-------------
+
+`Mesa 7.4.4 <relnotes/7.4.4.html>`__ is released. This is a stable
+release that fixes a regression in the i915/i965 drivers that slipped
+into the 7.4.3 release.
+
+June 19, 2009
+-------------
+
+`Mesa 7.4.3 <relnotes/7.4.3.html>`__ is released. This is a stable
+release fixing bugs since the 7.4.2 release.
+
+May 15, 2009
+------------
+
+`Mesa 7.4.2 <relnotes/7.4.2.html>`__ is released. This is a stable
+release fixing bugs since the 7.4.1 release.
+
+April 18, 2009
+--------------
+
+`Mesa 7.4.1 <relnotes/7.4.1.html>`__ is released. This is a stable
+release fixing bugs since the 7.4 release.
+
+March 27, 2009
+--------------
+
+`Mesa 7.4 <relnotes/7.4.html>`__ is released. This is a stable release
+fixing bugs since the 7.3 release.
+
+January 22, 2009
+----------------
+
+`Mesa 7.3 <relnotes/7.3.html>`__ is released. This is a new development
+release. Mesa 7.4 will follow and will have bug fixes relative to 7.3.
+
+September 20, 2008
+------------------
+
+`Mesa 7.2 <relnotes/7.2.html>`__ is released. This is a stable, bug-fix
+release.
+
+August 26, 2008
+---------------
+
+`Mesa 7.1 <relnotes/7.1.html>`__ is released. This is a new development
+release. It should be relatively stable, but those especially concerned
+about stability should wait for the 7.2 release or use Mesa 7.0.4 (the
+previous stable release).
+
+August 16, 2008
+---------------
+
+`Mesa 7.0.4 <relnotes/7.0.4.html>`__ is released. This is a bug-fix
+release.
+
+April 4, 2008
+-------------
+
+`Mesa 7.0.3 <relnotes/7.0.3.html>`__ is released. This is a bug-fix
+release.
+
+January 24, 2008
+----------------
+
+Added a new page describing the Mesa Cell driver.
+
+November 13, 2007
+-----------------
+
+Gallium3D is the codename for the new Mesa device driver architecture
+which is currently under development.
+
+Gallium3D development is taking place on the *gallium-0.1* branch of the
+git repository. Currently, there's only a software-only driver and an
+Intel i915/945 driver but other drivers will be coming...
+
+November 10, 2007
+-----------------
+
+`Mesa 7.0.2 <relnotes/7.0.2.html>`__ is released. This is a bug-fix
+release.
+
+August 3, 2007
+--------------
+
+`Mesa 7.0.1 <relnotes/7.0.1.html>`__ is released. This is a bug-fix
+release.
+
+June 22, 2007
+-------------
+
+`Mesa 7.0 <relnotes/7.0.html>`__ is released. This is a stable release
+featuring OpenGL 2.1 support.
+
+April 27, 2007
+--------------
+
+`Mesa 6.5.3 <relnotes/6.5.3.html>`__ is released. This is a development
+release which will lead up to the Mesa 7.0 release (which will advertise
+OpenGL 2.1 API support).
+
+March 26, 2007
+--------------
+
+The new Shading Language compiler branch has been merged into the git
+master branch. This is a step toward hardware support for the OpenGL 2.0
+Shading Language and will be included in the next Mesa release. In
+conjunction, `Glean <http://glean.sf.net>`__ has been updated with a new
+test that does over 130 tests of the shading language and built-in
+functions.
+
+April 4, 2007
+-------------
+
+Thomas Hellström of Tungsten Graphics has written a whitepaper
+describing the new DRI memory management system.
+
+December 5, 2006
+----------------
+
+Mesa is now using git as its source code management system. The previous
+CVS repository should no longer be used. See the `repository
+page <repository.html>`__ for more information.
+
+December 2, 2006
+----------------
+
+`Mesa 6.5.2 <relnotes/6.5.2.html>`__ has been released. This is a new
+development release.
+
+September 15, 2006
+------------------
+
+`Mesa 6.5.1 <relnotes/6.5.1.html>`__ has been released. This is a new
+development release.
+
+March 31, 2006
+--------------
+
+`Mesa 6.5 <relnotes/6.5.html>`__ has been released. This is a new
+development release.
+
+February 2, 2006
+----------------
+
+`Mesa 6.4.2 <relnotes/6.4.2.html>`__ has been released. This is stable,
+bug-fix release.
+
+November 29, 2005
+-----------------
+
+`Mesa 6.4.1 <relnotes/6.4.1.html>`__ has been released. This is stable,
+bug-fix release.
+
+October 24, 2005
+----------------
+
+`Mesa 6.4 <relnotes/6.4.html>`__ has been released. This is stable,
+bug-fix release.
+
+August 19, 2005
+---------------
+
+Mesa 6.3.2 has been released. Note: there was no public release of
+version 6.3.1.
+
+`Changes in version 6.3.1 <versions.html#6.3.2>`__
+
+The MD5 checksums are:
+
+::
+
+ 98192e45ed8d69113688f89f90869346 MesaLib-6.3.2.tar.gz
+ 0df27701df0924d17ddf41185efa8ce1 MesaLib-6.3.2.tar.bz2
+ ccb2423aab77fc7e81ce628734586140 MesaLib-6.3.2.zip
+ 9d0fca0a7d051c34a0b485423fb3e85d MesaDemos-6.3.2.tar.gz
+ 96708868450c188205e42229b5d813c4 MesaDemos-6.3.2.tar.bz2
+ c5102501e609aa8996d832fafacb8ab9 MesaDemos-6.3.2.zip
+
+July 20, 2005
+-------------
+
+Mesa 6.3 has been released. This is a development release with new
+features, changes and bug fixes.
+
+::
+
+ New:
+ - GL_EXT_framebuffer_object extension
+ - GL_ARB_draw_buffers extension
+ - GL_ARB_pixel_buffer_object extension
+ - GL_OES_read_format extension (Ian Romanick)
+ - DirectFB driver (Claudio Ciccani)
+ - x86_64 vertex transformation code (Mikko T.)
+ Changes:
+ - added -stereo option for glxgears demo (Jacek Rosik)
+ - updated the PBuffer demo code in xdemos/ directory
+ - glDeleteTextures/Programs/Buffers() now makes the object ID
+ available for immediate re-use
+ - assorted 64-bit clean-ups fixes (x86_64 and Win64)
+ - lots of internal changes for GL_EXT_framebuffer_object
+ Bug fixes:
+ - some functions didn't support PBO functionality
+ - glGetTexImage didn't convert color index images to RGBA as required
+ - fragment program texcoords were sometimes wrong for points and lines
+ - fixed problem with negative dot product in arbfplight, fplight demos
+ - fixed bug in perspective correction of antialiased, textured lines
+ - querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
+ - fixed a couple per-pixel fog bugs (Soju Matsumoto)
+ - glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
+ - fixed float parsing bug in ARB frag/vert programs (bug 2520)
+ - XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
+ - GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
+ - glXChooseFBConfig() crashed if attribList pointer was NULL
+ - program state.light[n].spot.direction.w was wrong value (bug 3083)
+ - fragment program fog option required glEnable(GL_FOG) - wrong.
+ - glColorTable() could produce a Mesa implementation error (bug 3135)
+ - RasterPos could get corrupted by color index rendering path
+ - Removed bad XTranslateCoordinates call when rendering to Pixmaps
+ - glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
+ - fixed a few Darwin compilation problems
+
+The MD5 checksums are:
+
+::
+
+ 0236f552d37514776945d5a013e5bb7b MesaLib-6.3.tar.gz
+ 60e1a8f78c4a8c7750a1e95753190986 MesaLib-6.3.tar.bz2
+ ca7c950fbace68c70caa822322db7223 MesaLib-6.3.zip
+ 25ea801645b376c014051804fe4974b2 MesaDemos-6.3.tar.gz
+ 9248e74872ea88c57ec25c900c295057 MesaDemos-6.3.tar.bz2
+ 8537dfa734ef258dcc7272097558d434 MesaDemos-6.3.zip
+
+December 9, 2004
+----------------
+
+Mesa 6.2.1 has been released. This is a stable release which just fixes
+bugs since the 6.2 release.
+
+::
+
+ Bug fixes:
+ - don't apply regular fog or color sum when using a fragment program
+ - glProgramEnvParameter4fARB always generated an error on
+ GL_FRAGMENT_PROGRAM_ARB (fdo bug 1645)
+ - glVertexAttrib3svNV and glVertexAttrib3svARB were broken
+ - fixed width/height mix-up in glSeparableFilter2D()
+ - fixed regression in glCopyPixels + convolution
+ - glReadPixels from a clipped front color buffer didn't always work
+ - glTexImage didn't accept GL_RED/GREEN/BLUE as the format
+ - Attempting queries/accesses of VBO 0 weren't detected as errors
+ - paletted textures failed if the palette had fewer than 256 entries
+ Changes:
+ - fixed a bunch of compiler warnings found with gcc 3.4
+ - bug reports should to go bugzilla.freedesktop.org
+
+The MD5 checksums are:
+
+::
+
+ 80008a92f6e055d3bfdde2cf331ec3fa MesaLib-6.2.1.tar.gz
+ f43228cd2bf70f583ef3275c1c545421 MesaLib-6.2.1.tar.bz2
+ dec26cfd40116ad021020fea2d94f652 MesaLib-6.2.1.zip
+ 2c7af3c986a7571c8713c8bfee7e49e3 MesaDemos-6.2.1.tar.gz
+ 3cac74667b50bcbd4f67f594fb4224a2 MesaDemos-6.2.1.tar.bz2
+ 75b3edd12eb2b370caf05f29b99e508a MesaDemos-6.2.1.zip
+
+October 2, 2004
+---------------
+
+Mesa 6.2 has been released. This is a stable release which just fixes
+bugs since the 6.1 release.
+
+::
+
+ New:
+ - enabled GL_ARB_texture_rectangle (same as GL_NV_texture_rectangle)
+ - updated Doxygen support (Jose Fonseca)
+ Changes:
+ - some GGI driver updates (Christoph Egger, bug 1025977)
+ Bug fixes:
+ - Omit GL_ARB_texture_non_power_of_two from list of OpenGL 1.5 features
+ - fixed a few compilation issues on IRIX
+ - fixed a matrix classification bug (reported by Wes Bethel)
+ - we weren't reseting the vertex/fragment program error state
+ before parsing (Dave Reveman)
+ - adjust texcoords for sampling texture rectangles (Dave Reveman)
+ - glGet*(GL_MAX_VERTEX_ATTRIBS_ARB) wasn't implemented
+ - repeated calls to glDeleteTexture(t) could lead to a crash
+ - fixed potential ref count bugs in VBOs and vertex/fragment programs
+ - spriteblast demo didn't handle window size changes correctly
+ - glTexSubImage didn't handle pixels=NULL correctly for PBOs
+ - fixed color index mode glDrawPixels bug (Karl Schultz)
+
+The MD5 checksums are:
+
+::
+
+ 9e8f34b059272dbb8e1f2c968b33bbf0 MesaLib-6.2.tar.gz
+ 3d6a6362390b6a37d3cb2e615f3ac7db MesaLib-6.2.tar.bz2
+ 6cfd7895d28e695c0dbbed9469564091 MesaLib-6.2.zip
+ 3e06e33b0809f09855cb60883b8bdfef MesaDemos-6.2.tar.gz
+ 9d160009c3dfdb35fe7e4088c9ba8f85 MesaDemos-6.2.tar.bz2
+ 856f7ec947122eb3c8985ebc2f654dcd MesaDemos-6.2.zip
+
+August 18, 2004
+---------------
+
+Mesa 6.1 has been released. This is a new development release (version
+6.2 will be a stabilization release).
+
+::
+
+ New:
+ - Revamped Makefile system
+ - glXUseRotatedXFont() utility (see xdemos/xuserotfont.c)
+ - internal driver interface changes related to texture object
+ allocation, vertex/fragment programs, BlendEquationSeparate, etc.
+ - option to walk triangle edges with double-precision floats
+ (Justin Novosad of Discreet) (see config.h file)
+ - support for AUX buffers in software GLX driver
+ - updated glext.h to version 24 and glxext.h to version 6
+ - new MESA_GLX_FORCE_ALPHA and MESA_GLX_DEPTH_BITS env vars
+ - updated BeOS support (Philippe Houdoin)
+ Changes:
+ - fragment fog interpolation is perspective corrected now
+ - new glTexImage code, much cleaner, may be a bit faster
+ Bug fixes:
+ - glArrayElement in display lists didn't handle generic vertex attribs
+ - glFogCoord didn't always work properly
+ - ARB_fragment_program fog options didn't work
+ - frag prog TEX instruction no longer incorrectly divides s,t,r by q
+ - ARB frag prog TEX and TEXP instructions now use LOD=0
+ - glTexEnviv in display lists didn't work
+ - glRasterPos didn't do texgen or apply texture matrix
+ - GL_DOUBLE-valued vertex arrays were broken in some cases
+ - fixed texture rectangle edge/border sampling bugs
+ - sampling an incomplete texture in a fragment program would segfault
+ - glTexImage was missing a few error checks
+ - fixed some minor glGetTexParameter glitches
+ - GL_INTENSITY was mistakenly accepted as a <format> to glTexImage
+ - fragment program writes to RC/HC register were broken
+ - fixed a few glitches in GL_HP_occlusion_test extension
+ - glBeginQueryARB and glEndQueryARB didn't work inside display lists
+ - vertex program state references were broken
+ - fixed triangle color interpolation bug on AIX (Shane Blackett)
+ - fixed a number of minor memory leaks (bug #1002030)
+
+The MD5 checksums are:
+
+::
+
+ c9284d295ebcd2e0486cc3cd54e5863c MesaLib-6.1.tar.gz
+ 5de1f53ec0709f60fc68fdfed57351f3 MesaLib-6.1.tar.bz2
+ 483e77cac4789a5d36c42f3c0136d6d8 MesaLib-6.1.zip
+ 8c46cfa6f9732acc6f6c25724aad0246 MesaDemos-6.1.tar.gz
+ 89bfe0f6c69b39fd0ebd9fff481a4e9b MesaDemos-6.1.tar.bz2
+ 161268531fcc6f0c5a056430ee97e0c1 MesaDemos-6.1.zip
+
+April 2, 2004
+-------------
+
+Mesa 6.0.1 has been released. This release basically just fixes bugs
+since the 6.0. release.
+
+::
+
+ New:
+ - upgraded glext.h to version 22
+ - new build targets (Dan Schikore)
+ - new linux-x86-opteron build target (Heath Feather)
+ Bug fixes:
+ - glBindProgramARB didn't update all necessary state
+ - fixed build problems on OpenBSD
+ - omit CVS directories from tarballs
+ - glGetTexImage(GL_COLOR_INDEX) was broken
+ - fixed an infinite loop in t&l module
+ - silenced some valgrind warnings about using unitialized memory
+ - fixed some compilation/link glitches on IRIX (Mike Stephens)
+ - glBindProgram wasn't getting compiled into display lists
+ - GLX_FBCONFIG_ID wasn't recognized in glXChooseFBConfig() (bug 888079)
+ - two-sided lighting and vertex program didn't work (bug 887330)
+ - stores to program parameter registers in vertex state programs
+ didn't work.
+ - fixed glOrtho bug found with gcc 3.2.2 (RH9)
+ - glXCreateWindow() wasn't fully implemented (bug 890894)
+ - generic vertex attribute arrays didn't work in display lists
+ - vertex buffer objects' default usage and access fields were wrong
+ - glDrawArrays with start!=0 was broken
+ - fragment program PK2H, UP2H, UP4B and UP4UB instructions were broken
+ - linux-osmesa16-static config didn't work
+ - fixed a few color index rendering problems (bug 910687)
+ - glInterleavedArrays didn't respect GL_CLIENT_ACTIVE_TEXTURE
+ - OSMesa RGB and BGR modes were broken
+ - glProgramStringARB mistakenly required a null-terminated string
+ - fragment program XPD instruction was incorrect
+ - glGetMaterial() didn't work reliably
+
+The MD5 checksums are:
+
+::
+
+ 011be0e79666c7a6eb9693fbf9348653 MesaLib-6.0.1.tar.gz
+ b7f14088c5c2f14490d2739a91102112 MesaLib-6.0.1.tar.bz2
+ bf0510cf0a2b87d64cdd317eca3f1db1 MesaLib-6.0.1.zip
+ b7b648599e0aaee1c4ffc554a2a9139e MesaDemos-6.0.1.tar.gz
+ dd6aadfd9ca8e1cfa90c6ee492bc6f43 MesaDemos-6.0.1.tar.bz2
+ eff71d59c211825e949199852f5a2316 MesaDemos-6.0.1.zip
+
+January 16, 2004
+----------------
+
+Mesa 6.0 has been released. This is a stabilization of the 5.1 release
+and primarily just incorporates bug fixes.
+
+::
+
+ New:
+ - full OpenGL 1.5 support
+ - updated GL/glext.h file to version 21
+ Changes:
+ - changed max framebuffer size to 4Kx4K (MAX_WIDTH/HEIGHT in config.h)
+ Bug fixes:
+ - fixed bug in UNCLAMPED_FLOAT_TO_UBYTE macro; solves a color
+ clamping issue
+ - updated suno5-gcc configs
+ - glColor3 functions sometimes resulted in undefined alpha values
+ - fixed FP divide by zero error seen on VMS with xlockmore, others
+ - fixed vertex/fragment program debug problem (bug 873011)
+ - building on AIX with gcc works now
+ - glDeleteProgramsARB failed for ARB fragment programs (bug 876160)
+ - glDrawRangeElements tried to modify potentially read-only storage
+ - updated files for building on Windows
+
+December 28, 2003
+-----------------
+
+The Mesa CVS server has been moved to
+`freedesktop.org <https://www.freedesktop.org>`__ because of problems
+with SourceForge's anonymous CVS service.
+
+December 17, 2003
+-----------------
+
+Mesa 5.1 has been released. This is a new development release. Mesa 6.0
+will be the next stable release and will support all OpenGL 1.5
+features.
+
+::
+
+ New features:
+ - reorganized directory tree
+ - GL_ARB_vertex/fragment_program extensions (Michal Krol & Karl Rasche)
+ - GL_ATI_texture_env_combine3 extension (Ian Romanick)
+ - GL_SGI_texture_color_table extension (Eric Plante)
+ - GL_NV_fragment_program extension
+ - GL_NV_light_max_exponent extension
+ - GL_EXT_texture_rectangle (identical to GL_NV_texture_rectangle)
+ - GL_ARB_occlusion_query extension
+ - GL_ARB_point_sprite extension
+ - GL_ARB_texture_non_power_of_two extension
+ - GL_IBM_multimode_draw_arrays extension
+ - GL_EXT_texture_mirror_clamp extension (Ian Romanick)
+ - GL_ARB_vertex_buffer_object extension
+ - new X86 feature detection code (Petr Sebor)
+ - less memory used for display lists and vertex buffers
+ - demo of per-pixel lighting with a fragment program (demos/fplight.c)
+ - new version (18) of glext.h header
+ - new spriteblast.c demo of GL_ARB_point_sprite
+ - faster glDrawPixels in X11 driver in some cases (see relnotes/5.1)
+ - faster glCopyPixels in X11 driver in some cases (see relnotes/5.1)
+ Bug fixes:
+ - really enable OpenGL 1.4 features in DOS driver.
+ - fixed issues in glDrawPixels and glCopyPixels for very wide images
+ - glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint
+ - fixed some texgen bugs reported by Daniel Borca
+ - fixed wglMakeCurrent(NULL, NULL) bug (#835861)
+ - fixed glTexSubImage3D z-offset bug (Cedric Gautier)
+ - fixed RGBA blend enable bug (Ville Syrjala)
+ - glAccum is supposed to be a no-op in selection/feedback mode
+ - fixed texgen bug #597589 (John Popplewell)
+ Changes:
+ - dropped API trace feature (src/Trace/)
+ - documentation overhaul. merged with website content. more html.
+ - glxgears.c demo updated to use GLX swap rate extensions
+ - glTexImage1/2/3D now allows width/height/depth = 0
+ - disable SPARC asm code on Linux (bug 852204)
+
+The MD5 checksums are:
+
+::
+
+ 78f452f6c55478471a744f07147612b5 MesaLib-5.1.tar.gz
+ 67b3b8d3f7f4c8c44904551b851d01af MesaLib-5.1.tar.bz2
+ 6dd19ffa750ec7f634e370a987505c9d MesaLib-5.1.zip
+ e0214d4ebb22409dfa9262f2b52fd828 MesaDemos-5.1.tar.gz
+ 066c9aff4fd924405de1ae9bad5ec9a7 MesaDemos-5.1.tar.bz2
+ d2b5ba32b53e0ad0576c637a4cc1fb41 MesaDemos-5.1.zip
+
+November 12, 2003
+-----------------
+
+New Mesa 5.0.2 tarballs have been uploaded to SourceForge which fix a
+number of automake/libtool problems.
+
+The new MD5 checksums are:
+
+::
+
+ a9dcf3ff9ad1b7d6ce73a0df7cff8b5b MesaLib-5.0.2.tar.gz
+ 7b4bf9261657c2fca03796d4955e6f50 MesaLib-5.0.2.tar.bz2
+ 79c141bddcbad557647535d02194f346 MesaLib-5.0.2.zip
+ 952d9dc823dd818981d1a648d7b2668a MesaDemos-5.0.2.tar.gz
+ b81fafff90995025d2f25ea02b786642 MesaDemos-5.0.2.tar.bz2
+ a21be975589e8a2d1871b6bb7874fffa MesaDemos-5.0.2.zip
+
+September 5, 2003
+-----------------
+
+Mesa 5.0.2 has been released. This is a stable, bug-fix release.
+
+::
+
+ Bug fixes:
+ - fixed texgen problem causing texcoord's Q to be zero (stex3d)
+ - default GL_TEXTURE_COMPARE_MODE_ARB was wrong
+ - GL_CURRENT_MATRIX_NV query was wrong
+ - GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one
+ - GL_LIST_MODE query wasn't correct
+ - GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported
+ - GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value
+ - blended, wide lines didn't always work correctly (bug 711595)
+ - glVertexAttrib4svNV w component was always 1
+ - fixed bug in GL_IBM_rasterpos_clip (missing return)
+ - GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly
+ - a few Solaris compilation fixes
+ - fixed glClear() problem for DRI drivers (non-existant stencil, etc)
+ - fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux)
+ - fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz)
+ - glFog() didn't clamp fog colors
+ - fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the
+ gl[Get]TexParameteri[v] functions
+ - fixed invalid memory references in glTexGen functions (bug 781602)
+ - integer-valued color arrays weren't handled correctly
+ - glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work
+ - GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1
+ Changes:
+ - build GLUT with -fexceptions so C++ apps propogate exceptions
+
+June 8, 2003
+------------
+
+Mesa's directory tree has been overhauled. Things are better organized
+now with some thought toward future needs.
+
+In CVS, the latest Mesa 5.1 development code is now rooted under the
+**Mesa-newtree/** directory. The old top-level **Mesa/** directory holds
+the Mesa 5.0.x code which will be abandoned at some point.
+
+March 30, 2003
+--------------
+
+Mesa 5.0.1 has been released. This is a stable, bug-fix release.
+
+::
+
+ New:
+ - DOS driver updates from Daniel Borca
+ - updated GL/gl_mangle.h file (Bill Hoffman)
+ Bug fixes:
+ - auto mipmap generation for cube maps was broken (bug 641363)
+ - writing/clearing software alpha channels was unreliable
+ - minor compilation fixes for OS/2 (Evgeny Kotsuba)
+ - fixed some bad assertions found with shadowtex demo
+ - fixed error checking bug in glCopyTexSubImage2D (bug 659020)
+ - glRotate(angle, -x, 0, 0) was incorrect (bug 659677)
+ - fixed potential segfault in texture object validation (bug 659012)
+ - fixed some bogus code in _mesa_test_os_sse_exception_support (Linus)
+ - fix fog stride bug in tnl code for h/w drivers (Michel Danzer)
+ - fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080)
+ - glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3
+ - fixed compilation problem on Solaris7/x86 (bug 536406)
+ - fixed prefetch bug in 3DNow! code (Felix Kuhling)
+ - fixed NeXT build problem (FABSF macro)
+ - glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811)
+ - zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964)
+ - AA line and triangle Z values are now rounded, not truncated
+ - fixed color interpolation bug when GLchan==GLfloat (bug 694461)
+ - glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca)
+ - fixed a minor GL_COLOR_MATERIAL bug
+ - NV vertex program EXP instruction was broken
+ - glColorMask misbehaved with X window / pixmap rendering
+ - fix autoconf/libtool GLU C++ linker problem on Linux (a total hack)
+ - attempt to fix GGI compilation problem when MesaDemos not present
+ - NV vertex program ARL-relative fetches didn't work
+ Changes:
+ - use glPolygonOffset in gloss demo to avoid z-fighting artifacts
+ - updated winpos and pointblast demos to use ARB extensions
+ - disable SPARC normal transformation code (bug 673938)
+ - GLU fixes for OS/2 (Evgeny Kotsuba)
+
+MD5 checksums follow:
+
+::
+
+ b80f8b5d53a3e9f19b9fde5af0c542f0 MesaLib-5.0.1.tar.gz
+ 513b4bbd7d38951f05027179063d876b MesaLib-5.0.1.tar.bz2
+ eebd395678f4520d33b267e5d5c22651 MesaLib-5.0.1.zip
+ 49d7feaec6dc1d2091d7c3cc72a9b320 MesaDemos-5.0.1.tar.gz
+ 37190374a98c3c892f0698be9ca3acf0 MesaDemos-5.0.1.tar.bz2
+ becd8bf17f5791361b4a54ba2a78e5c9 MesaDemos-5.0.1.zip
+
+March 7, 2003
+-------------
+
+Website and documentation overhaul.
+
+The website content and Mesa documentation (from the doc/ directory)
+have been merged together. All the documentation files have been entered
+into the CVS repository. Many of the old plain-text files have been
+converted to html and modernized.
+
+November 13, 2002
+-----------------
+
+Mesa 5.0 has been released. This is a stable release which implements
+the OpenGL 1.4 specification.
+
+::
+
+ New:
+ - OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4")
+ - removed some overlooked debugging code
+ - glxinfo updated to support GLX_ARB_multisample
+ - GLUT now support GLX_ARB_multisample
+ - updated DOS driver (Daniel Borca)
+ Bug fixes:
+ - GL_POINT and GL_LINE-mode polygons didn't obey cull state
+ - fixed potential bug in _mesa_align_malloc/calloc()
+ - fixed missing triangle bug when running vertex programs
+ - fixed a few HPUX compilation problems
+ - FX (Glide) driver didn't compile
+ - setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work
+ - a few EXT functions, like glGenTexturesEXT, were no-ops
+ - a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate,
+ glMultiDrawArrays and glMultiDrawElements were missing
+ - glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken
+ - Pentium 4 Mobile was mistakenly identified as having 3DNow!
+ - fixed one-bit error in point/line fragment Z calculation
+ - fixed potential segfault in fakeglx code
+ - fixed color overflow problem in DOT3 texture env mode
+
+October 29, 2002
+----------------
+
+Mesa 4.1 has been released. This is a new development release. For a
+stable release, get 4.0.4.
+
+::
+
+ New:
+ - GL_NV_vertex_program extension
+ - GL_NV_vertex_program1_1 extension
+ - GL_ARB_window_pos extension
+ - GL_ARB_depth_texture extension
+ - GL_ARB_shadow extension
+ - GL_ARB_shadow_ambient extension
+ - GL_EXT_shadow_funcs extension
+ - GL_ARB_point_parameters extension
+ - GL_ARB_texture_env_crossbar
+ - GL_NV_point_sprite extension
+ - GL_NV_texture_rectangle extension
+ - GL_EXT_multi_draw_arrays extension
+ - GL_EXT_stencil_two_side extension
+ - GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions
+ - GL_ATI_texture_mirror_once extension (Ian Romanick)
+ - massive overhaul/simplification of software rasterizer module,
+ many contributions from Klaus Niederkrueger
+ - faster software texturing in some cases (i.e. trilinear filtering)
+ - new OSMesaGetProcAddress() function
+ - more blend modes implemented with MMX code (Jose Fonseca)
+ - added glutGetProcAddress() to GLUT
+ - added GLUT_FPS env var to compute frames/second in glutSwapBuffers()
+ - pbinfo and pbdemo PBuffer programs
+ - glxinfo -v prints transprent pixel info (Gerd Sussner)
+ Bug fixes:
+ - better mipmap LOD computation (prevents excessive blurriness)
+ - OSMesaMakeCurrent() didn't recognize buffer size changes
+ - assorted conformance fixes for 16-bit/channel rendering
+ - texcombine alpha subtraction mode was broken
+ - fixed some blend problems when GLchan==GLfloat (Gerk Huisma)
+ - clamp colors to [0,1] in OSMesa if GLchan==GLfloat (Gerk Huisma)
+ - fixed divide by zero error in NURBS tessellator (Jon Perry)
+ - fixed GL_LINEAR fog bug by adding clamping
+ - fixed FP exceptions found using Alpha CPU
+ - 3dfx/glide driver render-to-window feature was broken
+ - added missing GLX_TRANSPARENT_RGB token to glx.h
+ - fixed error checking related to paletted textures
+ - fixed reference count error in glDeleteTextures (Randy Fayan)
+ Changes:
+ - New spec file and Python code to generate some GL dispatch files
+ - Glide driver defaults to "no" with autoconf/automake
+ - floating point color channels now clamped to [0,inf)
+ - updated demos/stex3d with new options
+
+October 4, 2002
+---------------
+
+The `Mesa FAQ <faq.html>`__ has been rewritten.
+
+October 3, 2002
+---------------
+
+Mesa 4.0.4 has been released. This is a stable bug-fix release.
+
+::
+
+ New:
+ - GL_NV_texture_rectangle extension
+ - updated glext.h header (version 17)
+ - updated DOS driver (Daniel Borca)
+ - updated BeOS R5 driver (Philippe Houdoin)
+ - added GL_IBM_texture_mirror_repeat
+ - glxinfo now takes -l option to print interesting OpenGL limits info
+ - GL_MESA_ycbcr_texture extension
+ - GL_APPLE_client_storage extension (for some DRI drivers only)
+ - GL_MESA_pack_invert extension
+ Bug fixes:
+ - fixed GL_LINEAR fog bug by adding clamping
+ - fixed FP exceptions found using Alpha CPU
+ - 3dfx MESA_GLX_FX=window (render to window) didn't work
+ - fixed memory leak in wglCreateContest (Karl Schultz)
+ - define GLAPIENTRY and GLAPI if undefined in glu.h
+ - wglGetProcAddress didn't handle all API functions
+ - when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map
+ - removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc()
+ - error checking in compressed tex image functions had some glitches
+ - fixed AIX compile problem in src/config.c
+ - glGetTexImage was using pixel unpacking instead of packing params
+ - auto-mipmap generation for cube maps was incorrect
+ Changes:
+ - max texture units reduced to six to accommodate texture rectangles
+ - removed unfinished GL_MESA_sprite_point extension code
+
+June 25, 2002
+-------------
+
+Mesa 4.0.3 has been released. This is a stable bug-fix release.
+
+::
+
+ New:
+ - updated GL/glext.h file (version 15)
+ - corrected MMX blend code (Jose Fonseca)
+ - support for software-based alpha planes in Windows driver
+ - updated GGI driver (Filip Spacek)
+ Bug fixes:
+ - glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens
+ - OSMesaMakeCurrent() didn't recognize buffer size changes
+ - assorted conformance fixes for 16-bit/channel rendering
+ - texcombine alpha subtraction mode was broken
+ - fixed lighting bug with non-uniform scaling and display lists
+ - fixed bug when deleting shared display lists
+ - disabled SPARC cliptest assembly code (Mesa bug 544665)
+ - fixed a couple Solaris compilation/link problems
+ - blending clipped glDrawPixels didn't always work
+ - glGetTexImage() didn't accept packed pixel types
+ - glPixelMapu[is]v() could explode given too large of pixelmap
+ - glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT
+ - glXCopyContext() could lead to segfaults
+ - glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665)
+ Changes:
+ - lots of C++ (g++) code clean-ups
+ - lots of T&L updates for the Radeon DRI driver
+ Known bugs:
+ - mipmap LOD computation (fixed for Mesa 4.1)
+
+April 2, 2002
+-------------
+
+Mesa 4.0.2 has been released. This is a stable bug-fix release.
+
+::
+
+ New:
+ - New DOS (DJGPP) driver written by Daniel Borca
+ - New driver interface functions for TCL drivers (such as Radeon DRI)
+ - GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32"
+ if using deep color channels
+ - latest GL/glext.h and GL/glxext.h headers from SGI
+ Bug fixes:
+ - GL_BLEND with non-black texture env color wasn't always correct
+ - GL_REPLACE with GL_RGB texture format wasn't always correct (alpha)
+ - glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken
+ - glReadPixels was sometimes mistakenly clipped by the scissor box
+ - glDraw/ReadPixels didn't catch all the errors that they should have
+ - Fixed 24bpp rendering problem in Windows driver (Karl Schultz)
+ - 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c)
+ - Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP)
+ - glColorMask as sometimes effecting glXSwapBuffers()
+ - fixed a potential bug in XMesaGarbageCollect()
+ - N threads rendering into one window didn't work reliably
+ - glCopyPixels didn't work for deep color channels
+ - improved 8 -> 16bit/channel texture image conversion (Gerk Huisma)
+ - glPopAttrib() didn't correctly restore user clip planes
+ - user clip planes failed for some perspective projections (Chromium)
+
+December 17, 2001
+-----------------
+
+Mesa 4.0.1 has been released. This is a stable bug-fix release.
+
+::
+
+ New:
+ - better sub-pixel sample positions for AA triangles (Ray Tice)
+ - slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
+ Bug fixes:
+ - added missing break statements in glGet*() for multisample cases
+ - fixed uninitialized hash table mutex bug (display lists / texobjs)
+ - fixed bad teximage error check conditional (bug 476846)
+ - fixed demos readtex.c compilation problem on Windows (Karl Schultz)
+ - added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
+ - silence some compiler warnings (gcc 2.96)
+ - enable the #define GL_VERSION_1_3 in GL/gl.h
+ - added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
+ - fixed glu.h typedef problem found with MSDev 6.0
+ - build libGL.so with -Bsymbolic (fixes bug found with Chromium)
+ - added missing 'const' to glXGetContextIDEXT() in glxext.h
+ - fixed a few glXGetProcAddress() errors (texture compression, etc)
+ - fixed start index bug in compiled vertex arrays (Keith)
+ - fixed compilation problems in src/SPARC/glapi_sparc.S
+ - fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
+ - use glXGetProcAddressARB in GLUT to avoid extension linking problems
+ - provoking vertex of flat-shaded, color-index triangles was wrong
+ - fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
+ - glTexParameter didn't flush the vertex buffer (Ray Tice)
+ - feedback attributes for glDraw/CopyPixels and glBitmap were wrong
+ - fixed bug in normal length caching (ParaView lighting bug)
+
+October 22, 2001
+----------------
+
+Mesa 4.0 has been released. This is a stable release.
+
+::
+
+ New:
+ - Mesa 4.0 implements the OpenGL 1.3 specification
+ - GL_IBM_rasterpos_clip extension
+ - GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp)
+ - GL_ARB_texture_mirrored_repeat extension
+ - WindML UGL driver (Stephane Raimbault)
+ - added OSMESA_MAX_WIDTH/HEIGHT queries
+ - attempted compiliation fixes for Solaris 5, 7 and 8
+ - updated glext.h and glxext.h files
+ - updated Windows driver (Karl Schultz)
+ Bug fixes:
+ - added some missing GLX 1.3 tokens to include/GL/glx.h
+ - GL_COLOR_MATRIX changes weren't recognized by teximage functions
+ - glCopyPixels with scale and bias was broken
+ - glRasterPos with lighting could segfault
+ - glDeleteTextures could leave a dangling pointer
+ - Proxy textures for cube maps didn't work
+ - fixed a number of 16-bit color channel bugs
+ - fixed a few minor memory leaks
+ - GLX context sharing was broken in 3.5
+ - fixed state-update bugs in glPopClientAttrib()
+ - fixed glDrawRangeElements() bug
+ - fixed a glPush/PopAttrib() bug related to texture binding
+ - flat-shaded, textured lines were broken
+ - fixed a dangling pointer problem in the XMesa code (Chris Burghart)
+ - lighting didn't always produce the correct alpha value
+ - fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
+
+June 21, 2001
+-------------
+
+Mesa 3.5 has been released. This is a new development release.
+
+::
+
+ New:
+ - internals of Mesa divided into modular pieces (Keith Whitwell)
+ - 100% OpenGL 1.2 conformance (passes all conformance tests)
+ - new AA line algorithm
+ - GL_EXT_convolution extension
+ - GL_ARB_imaging subset
+ - OSMesaCreateContextExt() function
+ - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
+ - GL_MAX_TEXTURE_UNITS_ARB now defaults to eight
+ - GL_EXT_fog_coord extension (Keith Whitwell)
+ - GL_EXT_secondary_color extension (Keith Whitwell)
+ - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
+ - GL_SGIX_depth_texture extension
+ - GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions
+ - demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow
+ - GL_ARB_texture_env_combine extension
+ - GL_ARB_texture_env_dot3 extension
+ - GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp)
+ - OSMesaCreateContextExt() function
+ - libOSMesa.so library, contains the OSMesa driver interface
+ - GL/glxext.h header file for GLX extensions
+ - somewhat faster software texturing, fogging, depth testing
+ - all color-index conformance tests now pass (only 8bpp tested)
+ - SPARC assembly language TCL optimizations (David Miller)
+ - GL_SGIS_generate_mipmap extension
+ Bug Fixes:
+ - fbiRev and tmuRev were unitialized when using Glide3
+ - fixed a few color index mode conformance failures; all pass now
+ - now appling antialiasing coverage to alpha after texturing
+ - colors weren't getting clamped to [0,1] before color table lookup
+ - fixed RISC alignment errors caused by COPY_4UBV macro
+ - drawing wide, flat-shaded lines could cause a segfault
+ - vertices now snapped to 1/16 pixel to fix rendering of tiny triangles
+ Changes:
+ - SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU
+ - new libOSMesa.so library, contains the OSMesa driver interface
+
+May 17, 2001
+------------
+
+Mesa 3.4.2 has been released. This is basically just a bug-fix release.
+Here's what's new:
+
+::
+
+ Bug fixes:
+ - deleting the currently bound texture could cause bad problems
+ - using fog could result in random vertex alpha values
+ - AA triangle rendering could touch pixels outside right window bound
+ - fixed byteswapping problem in clear_32bit_ximage() function
+ - fixed bugs in wglUseFontBitmapsA(), by Frank Warmerdam
+ - fixed memory leak in glXUseXFont()
+ - fragment sampling in AA triangle function was off by 1/2 pixel
+ - Windows: reading pixels from framebuffer didn't always work
+ - glConvolutionFilter2D could segfault or cause FP exception
+ - fixed segfaults in FX and X drivers when using tex unit 1 but not 0
+ - GL_NAND logicop didn't work right in RGBA mode
+ - fixed a memory corruption bug in vertex buffer reset code
+ - clearing the softwara alpha buffer with scissoring was broken
+ - fixed a few color index mode fog bugs
+ - fixed some bad assertions in color index mode
+ - fixed FX line 'stipple' bug #420091
+ Changes:
+ - optimized writing mono-colored pixel spans to X pixmaps
+ - increased max viewport size to 2048 x 2048
+
+April 29, 2001
+--------------
+
+New Mesa website
+
+Mark Manning produced the new website. Thanks, Mark!
+
+February 14, 2001
+-----------------
+
+Mesa 3.4.1 has been released. Here's what's new:
+
+::
+
+ New:
+ - fixed some Linux build problems
+ - fixed some Windows build problems
+ - GL_EXT_texture_env_dot3 extension (Gareth Hughes)
+ Bug fixes:
+ - added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI
+ - various state-update code changes needed for DRI bugs
+ - disabled pixel transfer ops in glColorTable commands, not needed
+ - fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter
+ - updated sources and fixed compile problems in widgets-mesa/
+ - GLX_PBUFFER enum value was wrong in glx.h
+ - fixed a glColorMaterial lighting bug
+ - fixed bad args to Read/WriteStencilSpan in h/w stencil clear function
+ - glXCopySubBufferMESA() Y position was off by one
+ - Error checking of glTexSubImage3D() was broken (bug 128775)
+ - glPopAttrib() didn't restore all derived Mesa state correctly
+ - Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL
+ conformance problems at 16bpp.
+ - clearing depth buffer with scissoring was broken, would segfault
+ - OSMesaGetDepthBuffer() returned bad bytesPerValue value
+ - fixed a line clipping bug (reported by Craig McDaniel)
+ - fixed RGB color over/underflow bug for very tiny triangles
+ Known problems:
+ - NURBS or evaluator surfaces inside display lists don't always work
+
+November 3, 2000
+----------------
+
+Mesa 3.4 has been released. Here's what's new since the 3.3 release:
+
+::
+
+ New:
+ - optimized glDrawPixels for glPixelZoom(1,-1)
+ Bug Fixes:
+ - widgets-mesa/src/*.c files were missing from 3.3 distro
+ - include/GL/mesa_wgl.h file was missing from 3.3 distro
+ - fixed some Win32 compile problems
+ - texture object priorities weren't getting initialized to 1.0
+ - glAreTexturesResident return value was wrong when using hardware
+ - glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX)
+ - glReadPixels with GLushort packed types was broken
+ - fixed a few bugs in the GL_EXT_texture_env_combine texture code
+ - glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables
+ - fixed some typos/bugs in the VB code
+ - glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work
+ - optimized glDrawPixels paths weren't being used
+ - per-fragment fog calculation didn't work without a Z buffer
+ - improved blending accuracy, fixes Glean blendFunc test failures
+ - glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly
+ - glXGetProcAddressARB() didn't always return the right address
+ - gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format
+ - texture matrix changes weren't always detected (GLUT projtex demo)
+ - fixed random color problem in vertex fog code
+ - fixed Glide-related bug that let Quake get a 24-bit Z buffer
+ Changes:
+ - finished internal support for compressed textures for DRI
+
+April 24, 2000
+--------------
+
+Mesa 3.2 has been released. Here's what's new since the beta release:
+
+::
+
+ Bug fixes:
+ - fixed memcpy bugs in span.c
+ - fixed missing glEnd problem in demos/tessdemo.c
+ - fixed bug when clearing 24bpp Ximages
+ - fixed clipping problem found in Unreal Tournament
+ - fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2
+ - fixed Loki's 3dfx RGB vs BGR bug
+ - fixed Loki's 3dfx smooth/flat shading bug in SoF
+ Changes:
+ - updated docs/README file
+ - use bcopy() optimizations on FreeBSD
+ - re-enabled the optimized persp_textured_triangle() function
+
+March 23, 2000
+--------------
+
+I've just upload the Mesa 3.2 beta 1 files to SourceForge at
+`https://sourceforge.net/project/filelist.php?group_id=3 <https://sourceforge.net/project/showfiles.php?group_id=3>`__
+
+3.2 (note even number) is a stabilization release of Mesa 3.1 meaning
+it's mainly just bug fixes.
+
+Here's what's changed:
+
+::
+
+ Bug fixes:
+ - mixed drawing of lines and bitmaps sometimes had wrong colors
+ - added missing glHintPGI() function
+ - fixed a polygon culling bug
+ - fixed bugs in gluPartialDisk()
+ - Z values in selection mode were wrong
+ - added missing tokens:
+ GL_SMOOTH_POINT_SIZE_RANGE
+ GL_SMOOTH_POINT_SIZE_GRANULARITY
+ GL_SMOOTH_LINE_WIDTH_RANGE
+ GL_SMOOTH_LINE_WIDTH_GRANULARITY
+ GL_ALIASED_POINT_SIZE_RANGE
+ GL_ALIASED_LINE_WIDTH_RANGE
+ - fixed glCopyPixels when copying from back to front buffer
+ - GL_EXT_compiled_vertex_array tokens had _SGI suffix instead of _EXT
+ - glDrawRangeElements(GL_LINES, 0, 1, 2, type, indices) was broken
+ - glDeleteTextures() didn't decrement reference count correctly
+ - GL_SRCA_ALPHA_SATURATE blend mode didn't work correctly
+ - Actual depth of transformation matrix stacks was off by one
+ - 24bpp visuals didn't address pixels correctly
+ - mipmap level of detail (lambda) calculation simplified, more accurate
+ - 101691 - Polygon clipping and GL_LINE
+ - 101928 - Polygon clipping and GL_LINE (same fix as above)
+ - 101808 - Non-glVertexArrays tristrip bug
+ - 101971 - find_last_3f on Dec OSF (worked around)
+ - 102369 - segv on dec osf (possibly a duplicate of the above)
+ - 102893 - orientations of modelview cause segfault
+ New:
+ - updated SVGA Linux driver
+ - added the MESA_FX_NO_SIGNALS env var, see docs/README.3DFX
+ - build libGLw.a (Xt/OpenGL drawing area widget) library by default
+ - changed -O2 to -O3 for a number of gcc configs
+ Changes:
+ - glXCopyContext's mask parameter is now unsigned long, per GLX spec
+
+Please report any problems with this release ASAP. Bugs should be filed
+on the Mesa3D website at sourceforge.
+
+After 3.2 is wrapped up I hope to release 3.3 beta 1 soon afterward.
+
+-- Brian
+
+December 17, 1999
+-----------------
+
+A Slashdot interview with Brian about Mesa (questions submitted by
+Slashdot readers) can be found at
+https://slashdot.org/interviews/99/12/17/0927212.shtml.
+
+December 14, 1999
+-----------------
+
+Mesa 3.1 is released!
+
+September 21, 1999
+------------------
+
+There appear to be two new files on the ftp site,
+``MesaLib-3.1beta3.tar.gz`` and ``MesaDemos-3.1beta3.tar.gz``, that seem
+to be... yes, I've just received confirmation from the beta center, they
+are indeed the **THIRD** beta release of Mesa 3.1! Happy Days. Happy
+Days. Thanks Keith Whitwell for preparing these for us during Brian's
+absence.
+
+August 30, 1999
+---------------
+
+I'm pleased to announce that I've accepted a position with Precision
+Insight, Inc. effective October, 1999. I'll be leaving Avid Technology
+in September.
+
+I've been working on Mesa in my spare time for over five years. With
+Precision Insight I now have the opportunity to devote my full attention
+to advancing Mesa and OpenGL on Linux.
+
+While I'll be focused on Linux, the X Window System, and hardware
+acceleration, my work will continue to be open sourced and available to
+any other programmers who may want to contribute to it, or use it for
+other projects or platforms
+
+PS: I'm going to be traveling until Sep 6 and won't be reading email
+until then.
+
+August 23, 1999
+---------------
+
+Anonymous CVS access is back online so suck up all the bandwidth you can
+afford. Note that this is a new archive, so you will need to re-checkout
+the archive. That means don't *cvs update* from a previous download.
+
+August 17, 1999
+---------------
+
+A report from the SIGGRAPH '99 Linux/OpenGL BOF meeting is now
+available.
+
+-Brian
+
+August 14, 1999
+---------------
+
+`www.mesa3d.org <https://www.mesa3d.org>`__ is having technical problems
+due to hardware failures at VA Linux systems. The Mac pages, ftp, and
+CVS services aren't fully restored yet. Please be patient.
+
+-Brian
+
+June 7, 1999
+------------
+
+RPMS of the nVidia RIVA server can be found at
+ftp://ftp.mesa3d.org/mesa/misc/nVidia/.
+
+June 2, 1999
+------------
+
+`nVidia <https://www.nvidia.com/>`__ has released some Linux binaries
+for xfree86 3.3.3.1, along with the **full source**, which includes GLX
+acceleration based on Mesa 3.0. They can be downloaded from
+https://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html.
+
+May 24, 1999
+------------
+
+Beta 2 of Mesa 3.1 has been make available at
+ftp://ftp.mesa3d.org/mesa/beta/. If you are into the quake scene, you
+may want to try this out, as it contains some optimizations specifically
+in the Q3A rendering path.
+
+May 13, 1999
+------------
+
+For those interested in the integration of Mesa into XFree86 4.0,
+Precision Insight has posted their lowlevel design documents at
+`www.precisioninsight.com <http://www.precisioninsight.com>`__.
+
+.. _may-13-1999-1:
+
+May 13, 1999
+------------
+
+::
+
+ May 1999 - John Carmack of id Software, Inc. has made a donation of
+ US$10,000 to the Mesa project to support its continuing development.
+ Mesa is a free implementation of the OpenGL 3D graphics library and id's
+ newest game, Quake 3 Arena, will use Mesa as the 3D renderer on Linux.
+
+ The donation will go to Keith Whitwell, who has been optimizing Mesa to
+ improve performance on 3d hardware. Thanks to Keith's work, many
+ applications using Mesa 3.1 will see a dramatic performance increase
+ over Mesa 3.0. The donation will allow Keith to continue working on
+ Mesa full time for some time to come.
+
+ For more information about Mesa see www.mesa3d.org. For more
+ information about id Software, Inc. see www.idsoftware.com.
+
+ --------------------------------
+
+ This donation from John/id is very generous. Keith and I are very
+ grateful.
+
+May 1, 1999
+-----------
+
+John Carmack made an interesting .plan update yesterday:
+
+::
+
+ I put together a document on optimizing OpenGL drivers for Q3 that should be helpful to the various Linux 3D teams.
+
+ http://www.quake3arena.com/news/glopt.html
+
+April 7, 1999
+-------------
+
+Updated the Mesa contributors section and added links to RPM Mesa
+packages.
+
+March 18, 1999
+--------------
+
+The new webpages are now online. Enjoy, and let me know if you find any
+errors.
+
+February 16, 1999
+-----------------
+
+`SGI <https://www.sgi.com/>`__ releases its `GLX source
+code <http://web.archive.org/web/20040805154836/http://www.sgi.com/software/opensource/glx/download.html>`__.
+
+January 22, 1999
+----------------
+
+`www.mesa3d.org <https://www.mesa3d.org>`__ established
diff --git a/docs/install.html b/docs/install.html
deleted file mode 100644
index e31c7728cfb..00000000000
--- a/docs/install.html
+++ /dev/null
@@ -1,254 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Compiling and Installing</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Compiling and Installing</h1>
-
-<ol>
-<li><a href="#prereq-general">Prerequisites for building</a>
- <ul>
- <li><a href="#prereq-general">General prerequisites</a>
- <li><a href="#prereq-dri">For DRI and hardware acceleration</a>
- </ul>
-<li><a href="#meson">Building with meson</a>
-<li><a href="#scons">Building with SCons (Windows/Linux)</a>
-<li><a href="#android">Building with AOSP (Android)</a>
-<li><a href="#libs">Library Information</a>
-<li><a href="#pkg-config">Building OpenGL programs with pkg-config</a>
-</ol>
-
-
-<h2 id="prereq-general">1. Prerequisites for building</h2>
-
-<h3>1.1 General</h3>
-
-<h4>Build system</h4>
-
-<ul>
-<li><a href="https://mesonbuild.com">meson</a> is required when building on *nix platforms and is supported on windows.
-<li><a href="http://www.scons.org/">SCons</a> is an alternative for building on
-Windows and Linux.
-</li>
-<li>Android Build system when building as native Android component. Meson
-is used when when building ARC.
-</li>
-</ul>
-
-<h4>Compiler</h4>
-<p>
-The following compilers are known to work, if you know of others or you're
-willing to maintain support for other compiler get in touch.
-</p>
-
-<ul>
-<li>GCC 4.2.0 or later (some parts of Mesa may require later versions)
-<li>clang - exact minimum requirement is currently unknown.
-<li>Microsoft Visual Studio 2015 or later is required, for building on Windows.
-</ul>
-
-
-<h4>Third party/extra tools.</h4>
-
-<ul>
-<li><a href="https://www.python.org/">Python</a> - Python is required.
-When building with scons 2.7 is required.
-When building with meson 3.5 or newer is required.
-</li>
-<li><a href="http://www.makotemplates.org/">Python Mako module</a> -
-Python Mako module is required. Version 0.8.0 or later should work.
-</li>
-<li>lex / yacc - for building the Mesa IR and GLSL compiler.
-<p>
-On Linux systems, flex and bison versions 2.5.35 and 2.4.1, respectively,
-(or later) should work.
-On Windows with MinGW, install flex and bison with:
-</p>
-<pre>mingw-get install msys-flex msys-bison</pre>
-<p>
-For MSVC on Windows, install
-<a href="http://winflexbison.sourceforge.net/">Win flex-bison</a>.
-</p>
-</ul>
-<p><strong>Note</strong>: Some versions can be buggy (eg. flex 2.6.2) so do try others if things fail.</p>
-
-
-<h3 id="prereq-dri">1.2 Requirements</h3>
-
-<p>
-The requirements depends on the features selected at configure stage.
-Check/install the respective -devel package as prompted by the configure error
-message.
-</p>
-
-<p>
-Here are some common ways to retrieve most/all of the dependencies based on
-the packaging tool used by your distro.
-</p>
-
-<pre>
- zypper source-install --build-deps-only Mesa # openSUSE/SLED/SLES
- yum-builddep mesa # yum Fedora, OpenSuse(?)
- dnf builddep mesa # dnf Fedora
- apt-get build-dep mesa # Debian and derivatives
- ... # others
-</pre>
-
-<h2 id="meson">2. Building with meson</h2>
-
-<p><strong>Meson &gt;= 0.46.0 is required</strong></p>
-
-
-<p>
-Meson is the latest build system in mesa, it is currently able to build for
-*nix systems like Linux and BSD, macOS, Haiku, and Windows.
-</p>
-
-<p>
-The general approach is:
-</p>
-<pre>
- meson builddir/
- ninja -C builddir/
- sudo ninja -C builddir/ install
-</pre>
-
-<p>On windows you can also use the visual studio backend</p>
-<pre>
- meson builddir --backend=vs
- cd builddir
- msbuild mesa.sln /m
-</pre>
-
-<p>
-Please read the <a href="meson.html">detailed meson instructions</a>
-for more information
-</p>
-
-
-
-<h2 id="scons">3. Building with SCons (Windows/Linux)</h2>
-
-<p>
-To build Mesa with SCons on Linux or Windows do
-</p>
-<pre>
- scons
-</pre>
-<p>
-The build output will be placed in
-build/<i>platform</i>-<i>machine</i>-<i>debug</i>/..., where <i>platform</i> is for
-example linux or windows, <i>machine</i> is x86 or x86_64, optionally followed
-by -debug for debug builds.
-</p>
-
-<p>
-To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do
-</p>
-<pre>
- scons platform=windows toolchain=crossmingw machine=x86 libgl-gdi
-</pre>
-<p>
-This will create:
-</p>
-<ul>
-<li>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll &mdash; Mesa + Gallium + softpipe (or llvmpipe), binary compatible with Windows's opengl32.dll
-</ul>
-<p>
-Put them all in the same directory to test them.
-
-Additional information is available in <a href="README.WIN32">README.WIN32</a>.
-
-</p>
-
-
-
-<h2 id="android">4. Building with AOSP (Android)</h2>
-
-<p>
-Currently one can build Mesa for Android as part of the AOSP project, yet
-your experience might vary.
-</p>
-
-<p>
-In order to achieve that one should update their local manifest to point to the
-upstream repo, set the appropriate BOARD_GPU_DRIVERS and build the
-libGLES_mesa library.
-</p>
-
-<p>
-FINISHME: Improve on the instructions add references to Rob H repos/Jenkins,
-Android-x86 and/or other resources.
-</p>
-
-
-<h2 id="libs">5. Library Information</h2>
-
-<p>
-When compilation has finished, look in the top-level <code>lib/</code>
-(or <code>lib64/</code>) directory.
-You'll see a set of library files similar to this:
-</p>
-<pre>
-lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -&gt; libGL.so.1*
-lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -&gt; libGL.so.1.5.060100*
--rwxr-xr-x 1 brian users 3375861 Mar 26 07:53 libGL.so.1.5.060100*
-lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -&gt; libOSMesa.so.6*
-lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -&gt; libOSMesa.so.6.1.060100*
--rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
-</pre>
-
-<p>
-<b>libGL</b> is the main OpenGL library (i.e. Mesa), while <b>libOSMesa</b>
-is the OSMesa (Off-Screen) interface library.
-</p>
-
-<p>
-If you built the DRI hardware drivers, you'll also see the DRI drivers:
-</p>
-<pre>
--rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so
--rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i965_dri.so
--rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so
--rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so
-</pre>
-
-<p>
-If you built with Gallium support, look in lib/gallium/ for Gallium-based
-versions of libGL and device drivers.
-</p>
-
-
-<h2 id="pkg-config">6. Building OpenGL programs with pkg-config</h2>
-
-<p>
-Running <code>ninja install</code> will install package configuration files
-for the pkg-config utility.
-</p>
-
-<p>
-When compiling your OpenGL application you can use pkg-config to determine
-the proper compiler and linker flags.
-</p>
-
-<p>
-For example, compiling and linking a GLUT application can be done with:
-</p>
-<pre>
- gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
-</pre>
-
-</div>
-</body>
-</html>
diff --git a/docs/install.rst b/docs/install.rst
new file mode 100644
index 00000000000..ea8ccc1ad51
--- /dev/null
+++ b/docs/install.rst
@@ -0,0 +1,212 @@
+Compiling and Installing
+========================
+
+#. `Prerequisites for building <#prereq-general>`__
+
+ - `General prerequisites <#prereq-general>`__
+ - `For DRI and hardware acceleration <#prereq-dri>`__
+
+#. `Building with meson <#meson>`__
+#. `Building with SCons (Windows/Linux) <#scons>`__
+#. `Building with AOSP (Android) <#android>`__
+#. `Library Information <#libs>`__
+#. `Building OpenGL programs with pkg-config <#pkg-config>`__
+
+.. _prereq-general:
+
+1. Prerequisites for building
+-----------------------------
+
+1.1 General
+~~~~~~~~~~~
+
+Build system
+^^^^^^^^^^^^
+
+- `meson <https://mesonbuild.com>`__ is required when building on \*nix
+ platforms and is supported on windows.
+- `SCons <http://www.scons.org/>`__ is an alternative for building on
+ Windows and Linux.
+- Android Build system when building as native Android component. Meson
+ is used when when building ARC.
+
+Compiler
+^^^^^^^^
+
+The following compilers are known to work, if you know of others or
+you're willing to maintain support for other compiler get in touch.
+
+- GCC 4.2.0 or later (some parts of Mesa may require later versions)
+- clang - exact minimum requirement is currently unknown.
+- Microsoft Visual Studio 2015 or later is required, for building on
+ Windows.
+
+Third party/extra tools.
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+- `Python <https://www.python.org/>`__ - Python is required. When
+ building with scons 2.7 is required. When building with meson 3.5 or
+ newer is required.
+- `Python Mako module <http://www.makotemplates.org/>`__ - Python Mako
+ module is required. Version 0.8.0 or later should work.
+- lex / yacc - for building the Mesa IR and GLSL compiler.
+
+ On Linux systems, flex and bison versions 2.5.35 and 2.4.1,
+ respectively, (or later) should work. On Windows with MinGW, install
+ flex and bison with:
+
+ ::
+
+ mingw-get install msys-flex msys-bison
+
+ For MSVC on Windows, install `Win
+ flex-bison <http://winflexbison.sourceforge.net/>`__.
+
+**Note**: Some versions can be buggy (eg. flex 2.6.2) so do try others
+if things fail.
+
+.. _prereq-dri:
+
+1.2 Requirements
+~~~~~~~~~~~~~~~~
+
+The requirements depends on the features selected at configure stage.
+Check/install the respective -devel package as prompted by the configure
+error message.
+
+Here are some common ways to retrieve most/all of the dependencies based
+on the packaging tool used by your distro.
+
+::
+
+ zypper source-install --build-deps-only Mesa # openSUSE/SLED/SLES
+ yum-builddep mesa # yum Fedora, OpenSuse(?)
+ dnf builddep mesa # dnf Fedora
+ apt-get build-dep mesa # Debian and derivatives
+ ... # others
+
+.. _meson:
+
+2. Building with meson
+----------------------
+
+**Meson >= 0.46.0 is required**
+
+Meson is the latest build system in mesa, it is currently able to build
+for \*nix systems like Linux and BSD, macOS, Haiku, and Windows.
+
+The general approach is:
+
+::
+
+ meson builddir/
+ ninja -C builddir/
+ sudo ninja -C builddir/ install
+
+On windows you can also use the visual studio backend
+
+::
+
+ meson builddir --backend=vs
+ cd builddir
+ msbuild mesa.sln /m
+
+Please read the `detailed meson instructions <meson.html>`__ for more
+information
+
+.. _scons:
+
+3. Building with SCons (Windows/Linux)
+--------------------------------------
+
+To build Mesa with SCons on Linux or Windows do
+
+::
+
+ scons
+
+The build output will be placed in
+build/\ *platform*-*machine*-*debug*/..., where *platform* is for
+example linux or windows, *machine* is x86 or x86_64, optionally
+followed by -debug for debug builds.
+
+To build Mesa with SCons for Windows on Linux using the MinGW
+crosscompiler toolchain do
+
+::
+
+ scons platform=windows toolchain=crossmingw machine=x86 libgl-gdi
+
+This will create:
+
+- build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll — Mesa
+ + Gallium + softpipe (or llvmpipe), binary compatible with Windows's
+ opengl32.dll
+
+Put them all in the same directory to test them. Additional information
+is available in `README.WIN32 <README.WIN32>`__.
+
+.. _android:
+
+4. Building with AOSP (Android)
+-------------------------------
+
+Currently one can build Mesa for Android as part of the AOSP project,
+yet your experience might vary.
+
+In order to achieve that one should update their local manifest to point
+to the upstream repo, set the appropriate BOARD_GPU_DRIVERS and build
+the libGLES_mesa library.
+
+FINISHME: Improve on the instructions add references to Rob H
+repos/Jenkins, Android-x86 and/or other resources.
+
+.. _libs:
+
+5. Library Information
+----------------------
+
+When compilation has finished, look in the top-level ``lib/`` (or
+``lib64/``) directory. You'll see a set of library files similar to
+this:
+
+::
+
+ lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -> libGL.so.1*
+ lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
+ -rwxr-xr-x 1 brian users 3375861 Mar 26 07:53 libGL.so.1.5.060100*
+ lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
+ lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
+ -rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
+
+**libGL** is the main OpenGL library (i.e. Mesa), while **libOSMesa** is
+the OSMesa (Off-Screen) interface library.
+
+If you built the DRI hardware drivers, you'll also see the DRI drivers:
+
+::
+
+ -rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so
+ -rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i965_dri.so
+ -rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so
+ -rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so
+
+If you built with Gallium support, look in lib/gallium/ for
+Gallium-based versions of libGL and device drivers.
+
+.. _pkg-config:
+
+6. Building OpenGL programs with pkg-config
+-------------------------------------------
+
+Running ``ninja install`` will install package configuration files for
+the pkg-config utility.
+
+When compiling your OpenGL application you can use pkg-config to
+determine the proper compiler and linker flags.
+
+For example, compiling and linking a GLUT application can be done with:
+
+::
+
+ gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
diff --git a/docs/intro.html b/docs/intro.html
deleted file mode 100644
index 0afd55c4314..00000000000
--- a/docs/intro.html
+++ /dev/null
@@ -1,404 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Introduction</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Introduction</h1>
-
-<p>
-The Mesa project began as an open-source implementation of the
-<a href="https://www.opengl.org/">OpenGL</a> specification -
-a system for rendering interactive 3D graphics.
-</p>
-
-<p>
-Over the years the project has grown to implement more graphics APIs,
-including
-<a href="https://www.khronos.org/opengles/">OpenGL ES</a> (versions 1, 2, 3),
-<a href="https://www.khronos.org/opencl/">OpenCL</a>,
-<a href="https://www.khronos.org/openmax/">OpenMAX</a>,
-<a href="https://en.wikipedia.org/wiki/VDPAU">VDPAU</a>,
-<a href="https://en.wikipedia.org/wiki/Video_Acceleration_API">VA API</a>,
-<a href="https://en.wikipedia.org/wiki/X-Video_Motion_Compensation">XvMC</a> and
-<a href="https://www.khronos.org/vulkan/">Vulkan</a>.
-</p>
-
-<p>
-A variety of device drivers allows the Mesa libraries to be used in many
-different environments ranging from software emulation to complete hardware
-acceleration for modern GPUs.
-</p>
-
-<p>
-Mesa ties into several other open-source projects: the
-<a href="https://dri.freedesktop.org/">Direct Rendering
-Infrastructure</a> and <a href="https://x.org">X.org</a> to
-provide OpenGL support on Linux, FreeBSD and other operating
-systems.
-</p>
-
-
-
-<h2>Project History</h2>
-
-<p>
-The Mesa project was originally started by Brian Paul.
-Here's a short history of the project.
-</p>
-
-<p>
-August, 1993: I begin working on Mesa in my spare time. The project
-has no name at that point. I was simply interested in writing a simple
-3D graphics library that used the then-new OpenGL API. I was partially
-inspired by the <em>VOGL</em> library which emulated a subset of IRIS GL.
-I had been programming with IRIS GL since 1991.
-</p>
-
-<p>
-November 1994: I contact SGI to ask permission to distribute my OpenGL-like
-graphics library on the internet. SGI was generally receptive to the
-idea and after negotiations with SGI's legal department, I get permission
-to release it.
-</p>
-
-<p>
-February 1995: Mesa 1.0 is released on the internet. I expected that
-a few people would be interested in it, but not thousands.
-I was soon receiving patches, new features and thank-you notes on a
-daily basis. That encouraged me to continue working on Mesa. The
-name Mesa just popped into my head one day. SGI had asked me not to use
-the terms <em>"Open"</em> or <em>"GL"</em> in the project name and I didn't
-want to make up a new acronym. Later, I heard of the Mesa programming
-language and the Mesa spreadsheet for NeXTStep.
-</p>
-
-<p>
-In the early days, OpenGL wasn't available on too many systems.
-It even took a while for SGI to support it across their product line.
-Mesa filled a big hole during that time.
-For a lot of people, Mesa was their first introduction to OpenGL.
-I think SGI recognized that Mesa actually helped to promote
-the OpenGL API, so they didn't feel threatened by the project.
-</p>
-
-
-<p>
-1995-1996: I continue working on Mesa both during my spare time and during
-my work hours at the Space Science and Engineering Center at the University
-of Wisconsin in Madison. My supervisor, Bill Hibbard, lets me do this because
-Mesa is now being using for the <a href="https://www.ssec.wisc.edu/%7Ebillh/vis.html">Vis5D</a> project.
-</p><p>
-October 1996: Mesa 2.0 is released. It implements the OpenGL 1.1 specification.
-</p>
-
-<p>
-March 1997: Mesa 2.2 is released. It supports the new 3dfx Voodoo graphics
-card via the Glide library. It's the first really popular hardware OpenGL
-implementation for Linux.
-</p>
-
-<p>
-September 1998: Mesa 3.0 is released. It's the first publicly-available
-implementation of the OpenGL 1.2 API.
-</p>
-
-<p>
-March 1999: I attend my first OpenGL ARB meeting. I contribute to the
-development of several official OpenGL extensions over the years.
-</p>
-
-<p>
-September 1999: I'm hired by Precision Insight, Inc. Mesa is a key
-component of 3D hardware acceleration in the new DRI project for XFree86.
-Drivers for 3dfx, 3dLabs, Intel, Matrox and ATI hardware soon follow.
-</p>
-
-<p>
-October 2001: Mesa 4.0 is released.
-It implements the OpenGL 1.3 specification.
-</p>
-
-
-<p>
-November 2001: I cofounded Tungsten Graphics, Inc. with Keith Whitwell,
-Jens Owen, David Dawes and Frank LaMonica.
-Tungsten Graphics was acquired by VMware in December 2008.
-</p>
-
-<p>
-November 2002: Mesa 5.0 is released.
-It implements the OpenGL 1.4 specification.
-</p>
-
-<p>
-January 2003: Mesa 6.0 is released. It implements the OpenGL 1.5
-specification as well as the GL_ARB_vertex_program and
-GL_ARB_fragment_program extensions.
-</p>
-
-<p>
-June 2007: Mesa 7.0 is released, implementing the OpenGL 2.1 specification
-and OpenGL Shading Language.
-</p>
-
-<p>
-2008: Keith Whitwell and other Tungsten Graphics employees develop
-<a href="https://en.wikipedia.org/wiki/Gallium3D">Gallium</a>
-- a new GPU abstraction layer. The latest Mesa drivers are based on
-Gallium and other APIs such as OpenVG are implemented on top of Gallium.
-</p>
-
-<p>
-February 2012: Mesa 8.0 is released, implementing the OpenGL 3.0 specification
-and version 1.30 of the OpenGL Shading Language.
-</p>
-
-<p>
-July 2016: Mesa 12.0 is released, including OpenGL 4.3 support and initial
-support for Vulkan for Intel GPUs. Plus, there's another gallium software
-driver ("swr") based on LLVM and developed by Intel.
-</p>
-
-<p>
-Ongoing: Mesa is the OpenGL implementation for devices designed by
-Intel, AMD, NVIDIA, Qualcomm, Broadcom, Vivante, plus the VMware and
-VirGL virtual GPUs.
-There's also several software-based renderers: swrast (the legacy
-Mesa rasterizer), softpipe (a gallium reference driver), llvmpipe
-(LLVM/JIT-based high-speed rasterizer) and swr (another LLVM-based driver).
-</p>
-<p>
-Work continues on the drivers and core Mesa to implement newer versions
-of the OpenGL, OpenGL ES and Vulkan specifications.
-</p>
-
-
-
-<h2>Major Versions</h2>
-
-<p>
-This is a summary of the major versions of Mesa.
-Mesa's major version number has been incremented whenever a new version
-of the OpenGL specification is implemented.
-</p>
-
-
-<h3>Version 12.x features</h3>
-<p>
-Version 12.x of Mesa implements the OpenGL 4.3 API, but not all drivers
-support OpenGL 4.3.
-</p>
-<p>
-Initial support for Vulkan is also included.
-</p>
-
-
-<h3>Version 11.x features</h3>
-<p>
-Version 11.x of Mesa implements the OpenGL 4.1 API, but not all drivers
-support OpenGL 4.1.
-</p>
-
-
-<h3>Version 10.x features</h3>
-<p>
-Version 10.x of Mesa implements the OpenGL 3.3 API, but not all drivers
-support OpenGL 3.3.
-</p>
-
-
-<h3>Version 9.x features</h3>
-<p>
-Version 9.x of Mesa implements the OpenGL 3.1 API.
-While the driver for Intel Sandy Bridge and Ivy Bridge is the only
-driver to support OpenGL 3.1, many developers across the open-source
-community contributed features required for OpenGL 3.1. The primary
-features added since the Mesa 8.0 release are
-GL_ARB_texture_buffer_object and GL_ARB_uniform_buffer_object.
-</p>
-<p>
-Version 9.0 of Mesa also included the first release of the Clover state
-tracker for OpenCL.
-</p>
-
-
-<h3>Version 8.x features</h3>
-<p>
-Version 8.x of Mesa implements the OpenGL 3.0 API.
-The developers at Intel deserve a lot of credit for implementing most
-of the OpenGL 3.0 features in core Mesa, the GLSL compiler as well as
-the i965 driver.
-</p>
-
-
-<h3>Version 7.x features</h3>
-<p>
-Version 7.x of Mesa implements the OpenGL 2.1 API. The main feature
-of OpenGL 2.x is the OpenGL Shading Language.
-</p>
-
-
-<h3>Version 6.x features</h3>
-<p>
-Version 6.x of Mesa implements the OpenGL 1.5 API with the following
-extensions incorporated as standard features:
-</p>
-<ul>
-<li>GL_ARB_occlusion_query
-<li>GL_ARB_vertex_buffer_object
-<li>GL_EXT_shadow_funcs
-</ul>
-<p>
-Also note that several OpenGL tokens were renamed in OpenGL 1.5
-for the sake of consistency.
-The old tokens are still available.
-</p>
-<pre>
-New Token Old Token
-------------------------------------------------------------
-GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
-GL_FOG_COORD GL_FOG_COORDINATE
-GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE
-GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE
-GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE
-GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER
-GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY
-GL_SRC0_RGB GL_SOURCE0_RGB
-GL_SRC1_RGB GL_SOURCE1_RGB
-GL_SRC2_RGB GL_SOURCE2_RGB
-GL_SRC0_ALPHA GL_SOURCE0_ALPHA
-GL_SRC1_ALPHA GL_SOURCE1_ALPHA
-GL_SRC2_ALPHA GL_SOURCE2_ALPHA
-</pre>
-<p>
-See the
-<a href="https://www.opengl.org/documentation/spec.html">
-OpenGL specification</a> for more details.
-</p>
-
-
-
-<h3>Version 5.x features</h3>
-<p>
-Version 5.x of Mesa implements the OpenGL 1.4 API with the following
-extensions incorporated as standard features:
-</p>
-<ul>
-<li>GL_ARB_depth_texture
-<li>GL_ARB_shadow
-<li>GL_ARB_texture_env_crossbar
-<li>GL_ARB_texture_mirror_repeat
-<li>GL_ARB_window_pos
-<li>GL_EXT_blend_color
-<li>GL_EXT_blend_func_separate
-<li>GL_EXT_blend_logic_op
-<li>GL_EXT_blend_minmax
-<li>GL_EXT_blend_subtract
-<li>GL_EXT_fog_coord
-<li>GL_EXT_multi_draw_arrays
-<li>GL_EXT_point_parameters
-<li>GL_EXT_secondary_color
-<li>GL_EXT_stencil_wrap
-<li>GL_EXT_texture_lod_bias (plus, a per-texture LOD bias parameter)
-<li>GL_SGIS_generate_mipmap
-</ul>
-
-
-<h3>Version 4.x features</h3>
-
-<p>
-Version 4.x of Mesa implements the OpenGL 1.3 API with the following
-extensions incorporated as standard features:
-</p>
-
-<ul>
-<li>GL_ARB_multisample
-<li>GL_ARB_multitexture
-<li>GL_ARB_texture_border_clamp
-<li>GL_ARB_texture_compression
-<li>GL_ARB_texture_cube_map
-<li>GL_ARB_texture_env_add
-<li>GL_ARB_texture_env_combine
-<li>GL_ARB_texture_env_dot3
-<li>GL_ARB_transpose_matrix
-</ul>
-
-<h3>Version 3.x features</h3>
-
-<p>
-Version 3.x of Mesa implements the OpenGL 1.2 API with the following
-features:
-</p>
-<ul>
-<li>BGR, BGRA and packed pixel formats
-<li>New texture border clamp mode
-<li>glDrawRangeElements()
-<li>standard 3-D texturing
-<li>advanced MIPMAP control
-<li>separate specular color interpolation
-</ul>
-
-
-<h3>Version 2.x features</h3>
-<p>
-Version 2.x of Mesa implements the OpenGL 1.1 API with the following
-features.
-</p>
-<ul>
-<li>Texture mapping:
- <ul>
- <li>glAreTexturesResident
- <li>glBindTexture
- <li>glCopyTexImage1D
- <li>glCopyTexImage2D
- <li>glCopyTexSubImage1D
- <li>glCopyTexSubImage2D
- <li>glDeleteTextures
- <li>glGenTextures
- <li>glIsTexture
- <li>glPrioritizeTextures
- <li>glTexSubImage1D
- <li>glTexSubImage2D
- </ul>
-<li>Vertex Arrays:
- <ul>
- <li>glArrayElement
- <li>glColorPointer
- <li>glDrawElements
- <li>glEdgeFlagPointer
- <li>glIndexPointer
- <li>glInterleavedArrays
- <li>glNormalPointer
- <li>glTexCoordPointer
- <li>glVertexPointer
- </ul>
-<li>Client state management:
- <ul>
- <li>glDisableClientState
- <li>glEnableClientState
- <li>glPopClientAttrib
- <li>glPushClientAttrib
- </ul>
-<li>Misc:
- <ul>
- <li>glGetPointer
- <li>glIndexub
- <li>glIndexubv
- <li>glPolygonOffset
- </ul>
-</ul>
-
-</div>
-</body>
-</html>
diff --git a/docs/intro.rst b/docs/intro.rst
new file mode 100644
index 00000000000..9abd2fd0c49
--- /dev/null
+++ b/docs/intro.rst
@@ -0,0 +1,308 @@
+Introduction
+============
+
+The Mesa project began as an open-source implementation of the
+`OpenGL <https://www.opengl.org/>`__ specification - a system for
+rendering interactive 3D graphics.
+
+Over the years the project has grown to implement more graphics APIs,
+including `OpenGL ES <https://www.khronos.org/opengles/>`__ (versions 1,
+2, 3), `OpenCL <https://www.khronos.org/opencl/>`__,
+`OpenMAX <https://www.khronos.org/openmax/>`__,
+`VDPAU <https://en.wikipedia.org/wiki/VDPAU>`__, `VA
+API <https://en.wikipedia.org/wiki/Video_Acceleration_API>`__,
+`XvMC <https://en.wikipedia.org/wiki/X-Video_Motion_Compensation>`__ and
+`Vulkan <https://www.khronos.org/vulkan/>`__.
+
+A variety of device drivers allows the Mesa libraries to be used in many
+different environments ranging from software emulation to complete
+hardware acceleration for modern GPUs.
+
+Mesa ties into several other open-source projects: the `Direct Rendering
+Infrastructure <https://dri.freedesktop.org/>`__ and
+`X.org <https://x.org>`__ to provide OpenGL support on Linux, FreeBSD
+and other operating systems.
+
+Project History
+---------------
+
+The Mesa project was originally started by Brian Paul. Here's a short
+history of the project.
+
+August, 1993: I begin working on Mesa in my spare time. The project has
+no name at that point. I was simply interested in writing a simple 3D
+graphics library that used the then-new OpenGL API. I was partially
+inspired by the *VOGL* library which emulated a subset of IRIS GL. I had
+been programming with IRIS GL since 1991.
+
+November 1994: I contact SGI to ask permission to distribute my
+OpenGL-like graphics library on the internet. SGI was generally
+receptive to the idea and after negotiations with SGI's legal
+department, I get permission to release it.
+
+February 1995: Mesa 1.0 is released on the internet. I expected that a
+few people would be interested in it, but not thousands. I was soon
+receiving patches, new features and thank-you notes on a daily basis.
+That encouraged me to continue working on Mesa. The name Mesa just
+popped into my head one day. SGI had asked me not to use the terms
+*"Open"* or *"GL"* in the project name and I didn't want to make up a
+new acronym. Later, I heard of the Mesa programming language and the
+Mesa spreadsheet for NeXTStep.
+
+In the early days, OpenGL wasn't available on too many systems. It even
+took a while for SGI to support it across their product line. Mesa
+filled a big hole during that time. For a lot of people, Mesa was their
+first introduction to OpenGL. I think SGI recognized that Mesa actually
+helped to promote the OpenGL API, so they didn't feel threatened by the
+project.
+
+1995-1996: I continue working on Mesa both during my spare time and
+during my work hours at the Space Science and Engineering Center at the
+University of Wisconsin in Madison. My supervisor, Bill Hibbard, lets me
+do this because Mesa is now being using for the
+`Vis5D <https://www.ssec.wisc.edu/%7Ebillh/vis.html>`__ project.
+
+October 1996: Mesa 2.0 is released. It implements the OpenGL 1.1
+specification.
+
+March 1997: Mesa 2.2 is released. It supports the new 3dfx Voodoo
+graphics card via the Glide library. It's the first really popular
+hardware OpenGL implementation for Linux.
+
+September 1998: Mesa 3.0 is released. It's the first publicly-available
+implementation of the OpenGL 1.2 API.
+
+March 1999: I attend my first OpenGL ARB meeting. I contribute to the
+development of several official OpenGL extensions over the years.
+
+September 1999: I'm hired by Precision Insight, Inc. Mesa is a key
+component of 3D hardware acceleration in the new DRI project for
+XFree86. Drivers for 3dfx, 3dLabs, Intel, Matrox and ATI hardware soon
+follow.
+
+October 2001: Mesa 4.0 is released. It implements the OpenGL 1.3
+specification.
+
+November 2001: I cofounded Tungsten Graphics, Inc. with Keith Whitwell,
+Jens Owen, David Dawes and Frank LaMonica. Tungsten Graphics was
+acquired by VMware in December 2008.
+
+November 2002: Mesa 5.0 is released. It implements the OpenGL 1.4
+specification.
+
+January 2003: Mesa 6.0 is released. It implements the OpenGL 1.5
+specification as well as the GL_ARB_vertex_program and
+GL_ARB_fragment_program extensions.
+
+June 2007: Mesa 7.0 is released, implementing the OpenGL 2.1
+specification and OpenGL Shading Language.
+
+2008: Keith Whitwell and other Tungsten Graphics employees develop
+`Gallium <https://en.wikipedia.org/wiki/Gallium3D>`__ - a new GPU
+abstraction layer. The latest Mesa drivers are based on Gallium and
+other APIs such as OpenVG are implemented on top of Gallium.
+
+February 2012: Mesa 8.0 is released, implementing the OpenGL 3.0
+specification and version 1.30 of the OpenGL Shading Language.
+
+July 2016: Mesa 12.0 is released, including OpenGL 4.3 support and
+initial support for Vulkan for Intel GPUs. Plus, there's another gallium
+software driver ("swr") based on LLVM and developed by Intel.
+
+Ongoing: Mesa is the OpenGL implementation for devices designed by
+Intel, AMD, NVIDIA, Qualcomm, Broadcom, Vivante, plus the VMware and
+VirGL virtual GPUs. There's also several software-based renderers:
+swrast (the legacy Mesa rasterizer), softpipe (a gallium reference
+driver), llvmpipe (LLVM/JIT-based high-speed rasterizer) and swr
+(another LLVM-based driver).
+
+Work continues on the drivers and core Mesa to implement newer versions
+of the OpenGL, OpenGL ES and Vulkan specifications.
+
+Major Versions
+--------------
+
+This is a summary of the major versions of Mesa. Mesa's major version
+number has been incremented whenever a new version of the OpenGL
+specification is implemented.
+
+Version 12.x features
+~~~~~~~~~~~~~~~~~~~~~
+
+Version 12.x of Mesa implements the OpenGL 4.3 API, but not all drivers
+support OpenGL 4.3.
+
+Initial support for Vulkan is also included.
+
+Version 11.x features
+~~~~~~~~~~~~~~~~~~~~~
+
+Version 11.x of Mesa implements the OpenGL 4.1 API, but not all drivers
+support OpenGL 4.1.
+
+Version 10.x features
+~~~~~~~~~~~~~~~~~~~~~
+
+Version 10.x of Mesa implements the OpenGL 3.3 API, but not all drivers
+support OpenGL 3.3.
+
+Version 9.x features
+~~~~~~~~~~~~~~~~~~~~
+
+Version 9.x of Mesa implements the OpenGL 3.1 API. While the driver for
+Intel Sandy Bridge and Ivy Bridge is the only driver to support OpenGL
+3.1, many developers across the open-source community contributed
+features required for OpenGL 3.1. The primary features added since the
+Mesa 8.0 release are GL_ARB_texture_buffer_object and
+GL_ARB_uniform_buffer_object.
+
+Version 9.0 of Mesa also included the first release of the Clover state
+tracker for OpenCL.
+
+Version 8.x features
+~~~~~~~~~~~~~~~~~~~~
+
+Version 8.x of Mesa implements the OpenGL 3.0 API. The developers at
+Intel deserve a lot of credit for implementing most of the OpenGL 3.0
+features in core Mesa, the GLSL compiler as well as the i965 driver.
+
+Version 7.x features
+~~~~~~~~~~~~~~~~~~~~
+
+Version 7.x of Mesa implements the OpenGL 2.1 API. The main feature of
+OpenGL 2.x is the OpenGL Shading Language.
+
+Version 6.x features
+~~~~~~~~~~~~~~~~~~~~
+
+Version 6.x of Mesa implements the OpenGL 1.5 API with the following
+extensions incorporated as standard features:
+
+- GL_ARB_occlusion_query
+- GL_ARB_vertex_buffer_object
+- GL_EXT_shadow_funcs
+
+Also note that several OpenGL tokens were renamed in OpenGL 1.5 for the
+sake of consistency. The old tokens are still available.
+
+::
+
+ New Token Old Token
+ ------------------------------------------------------------
+ GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
+ GL_FOG_COORD GL_FOG_COORDINATE
+ GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE
+ GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE
+ GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE
+ GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER
+ GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY
+ GL_SRC0_RGB GL_SOURCE0_RGB
+ GL_SRC1_RGB GL_SOURCE1_RGB
+ GL_SRC2_RGB GL_SOURCE2_RGB
+ GL_SRC0_ALPHA GL_SOURCE0_ALPHA
+ GL_SRC1_ALPHA GL_SOURCE1_ALPHA
+ GL_SRC2_ALPHA GL_SOURCE2_ALPHA
+
+See the `OpenGL
+specification <https://www.opengl.org/documentation/spec.html>`__ for
+more details.
+
+Version 5.x features
+~~~~~~~~~~~~~~~~~~~~
+
+Version 5.x of Mesa implements the OpenGL 1.4 API with the following
+extensions incorporated as standard features:
+
+- GL_ARB_depth_texture
+- GL_ARB_shadow
+- GL_ARB_texture_env_crossbar
+- GL_ARB_texture_mirror_repeat
+- GL_ARB_window_pos
+- GL_EXT_blend_color
+- GL_EXT_blend_func_separate
+- GL_EXT_blend_logic_op
+- GL_EXT_blend_minmax
+- GL_EXT_blend_subtract
+- GL_EXT_fog_coord
+- GL_EXT_multi_draw_arrays
+- GL_EXT_point_parameters
+- GL_EXT_secondary_color
+- GL_EXT_stencil_wrap
+- GL_EXT_texture_lod_bias (plus, a per-texture LOD bias parameter)
+- GL_SGIS_generate_mipmap
+
+Version 4.x features
+~~~~~~~~~~~~~~~~~~~~
+
+Version 4.x of Mesa implements the OpenGL 1.3 API with the following
+extensions incorporated as standard features:
+
+- GL_ARB_multisample
+- GL_ARB_multitexture
+- GL_ARB_texture_border_clamp
+- GL_ARB_texture_compression
+- GL_ARB_texture_cube_map
+- GL_ARB_texture_env_add
+- GL_ARB_texture_env_combine
+- GL_ARB_texture_env_dot3
+- GL_ARB_transpose_matrix
+
+Version 3.x features
+~~~~~~~~~~~~~~~~~~~~
+
+Version 3.x of Mesa implements the OpenGL 1.2 API with the following
+features:
+
+- BGR, BGRA and packed pixel formats
+- New texture border clamp mode
+- glDrawRangeElements()
+- standard 3-D texturing
+- advanced MIPMAP control
+- separate specular color interpolation
+
+Version 2.x features
+~~~~~~~~~~~~~~~~~~~~
+
+Version 2.x of Mesa implements the OpenGL 1.1 API with the following
+features.
+
+- Texture mapping:
+
+ - glAreTexturesResident
+ - glBindTexture
+ - glCopyTexImage1D
+ - glCopyTexImage2D
+ - glCopyTexSubImage1D
+ - glCopyTexSubImage2D
+ - glDeleteTextures
+ - glGenTextures
+ - glIsTexture
+ - glPrioritizeTextures
+ - glTexSubImage1D
+ - glTexSubImage2D
+
+- Vertex Arrays:
+
+ - glArrayElement
+ - glColorPointer
+ - glDrawElements
+ - glEdgeFlagPointer
+ - glIndexPointer
+ - glInterleavedArrays
+ - glNormalPointer
+ - glTexCoordPointer
+ - glVertexPointer
+
+- Client state management:
+
+ - glDisableClientState
+ - glEnableClientState
+ - glPopClientAttrib
+ - glPushClientAttrib
+
+- Misc:
+
+ - glGetPointer
+ - glIndexub
+ - glIndexubv
+ - glPolygonOffset
diff --git a/docs/license.html b/docs/license.html
deleted file mode 100644
index a4ae66c71c8..00000000000
--- a/docs/license.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>License and Copyright</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>License and Copyright</h1>
-
-<h2>Disclaimer</h2>
-
-<p>
-Mesa is a 3-D graphics library with an API which is very similar to
-that of <a href="https://www.opengl.org/">OpenGL</a><sup>[<a href="#trademark">1</a>]</sup>.
-To the extent that Mesa utilizes the OpenGL command syntax or state
-machine, it is being used with authorization from <a
-href="https://www.sgi.com/">Silicon Graphics,
-Inc.</a>(SGI). However, the author does not possess an OpenGL license
-from SGI, and makes no claim that Mesa is in any way a compatible
-replacement for OpenGL or associated with SGI. Those who want a
-licensed implementation of OpenGL should contact a licensed
-vendor.
-</p>
-
-<p>
-Please do not refer to the library as <em>MesaGL</em> (for legal
-reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics
-library</em>.
-</p>
-
-<p>
-<a id="trademark">[1]</a>: OpenGL is a trademark of <a
-href="https://www.sgi.com/">Silicon Graphics Incorporated</a>.
-</p>
-
-
-
-<h2>License / Copyright Information</h2>
-
-<p>
-The Mesa distribution consists of several components. Different copyrights
-and licenses apply to different components.
-For example, the GLX client code uses the SGI Free Software License B, and
-some of the Mesa device drivers are copyrighted by their authors.
-See below for a list of Mesa's main components and the license for each.
-</p>
-<p>
-The core Mesa library is licensed according to the terms of the MIT license.
-This allows integration with the XFree86, Xorg and DRI projects.
-</p>
-<p>
-The default Mesa license is as follows:
-</p>
-
-<pre>
-Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-</pre>
-
-
-<h2>Attention, Contributors</h2>
-
-<p>
-When contributing to the Mesa project you must agree to the licensing terms
-of the component to which you're contributing.
-The following section lists the primary components of the Mesa distribution
-and their respective licenses.
-</p>
-
-
-<h2>Mesa Component Licenses</h2>
-
-<pre>
-Component Location License
-------------------------------------------------------------------
-Main Mesa code src/mesa/ MIT
-
-Device drivers src/mesa/drivers/* MIT, generally
-
-Gallium code src/gallium/ MIT
-
-Ext headers include/GL/glext.h Khronos
- include/GL/glxext.h
-
-GLX client code src/glx/ SGI Free Software License B
-
-C11 thread include/c11/threads*.h Boost (permissive)
-emulation
-</pre>
-
-<p>
-In general, consult the source files for license terms.
-</p>
-
-</div>
-</body>
-</html>
diff --git a/docs/license.rst b/docs/license.rst
new file mode 100644
index 00000000000..4fdbf2db675
--- /dev/null
+++ b/docs/license.rst
@@ -0,0 +1,90 @@
+License and Copyright
+=====================
+
+Disclaimer
+----------
+
+Mesa is a 3-D graphics library with an API which is very similar to that
+of
+`OpenGL <https://www.opengl.org/>`__\ :sup:`[`\ `1 <#trademark>`__\ :sup:`]`.
+To the extent that Mesa utilizes the OpenGL command syntax or state
+machine, it is being used with authorization from `Silicon Graphics,
+Inc. <https://www.sgi.com/>`__\ (SGI). However, the author does not
+possess an OpenGL license from SGI, and makes no claim that Mesa is in
+any way a compatible replacement for OpenGL or associated with SGI.
+Those who want a licensed implementation of OpenGL should contact a
+licensed vendor.
+
+Please do not refer to the library as *MesaGL* (for legal reasons). It's
+just *Mesa* or *The Mesa 3-D graphics library*.
+
+[1]: OpenGL is a trademark of `Silicon Graphics
+Incorporated <https://www.sgi.com/>`__.
+
+License / Copyright Information
+-------------------------------
+
+The Mesa distribution consists of several components. Different
+copyrights and licenses apply to different components. For example, the
+GLX client code uses the SGI Free Software License B, and some of the
+Mesa device drivers are copyrighted by their authors. See below for a
+list of Mesa's main components and the license for each.
+
+The core Mesa library is licensed according to the terms of the MIT
+license. This allows integration with the XFree86, Xorg and DRI
+projects.
+
+The default Mesa license is as follows:
+
+::
+
+ Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+
+Attention, Contributors
+-----------------------
+
+When contributing to the Mesa project you must agree to the licensing
+terms of the component to which you're contributing. The following
+section lists the primary components of the Mesa distribution and their
+respective licenses.
+
+Mesa Component Licenses
+-----------------------
+
+::
+
+ Component Location License
+ ------------------------------------------------------------------
+ Main Mesa code src/mesa/ MIT
+
+ Device drivers src/mesa/drivers/* MIT, generally
+
+ Gallium code src/gallium/ MIT
+
+ Ext headers include/GL/glext.h Khronos
+ include/GL/glxext.h
+
+ GLX client code src/glx/ SGI Free Software License B
+
+ C11 thread include/c11/threads*.h Boost (permissive)
+ emulation
+
+In general, consult the source files for license terms.
diff --git a/docs/lists.html b/docs/lists.html
deleted file mode 100644
index 0dd3d54768d..00000000000
--- a/docs/lists.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Mailing Lists</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Mailing Lists</h1>
-
-
-<p>There are four Mesa 3D / DRI mailing lists:
-</p>
-
-<ul>
-<li><p><a href="https://lists.freedesktop.org/mailman/listinfo/mesa-users">mesa-users</a>
-- intended for end-users of Mesa and DRI drivers. Newbie questions are OK,
-but please try the general OpenGL resources and Mesa/DRI documentation first.</p>
-</li>
-<li><p><a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev</a>
-- for Mesa, Gallium and DRI development
-discussion. Not for beginners.</p>
-</li>
-<li><p><a href="https://lists.freedesktop.org/mailman/listinfo/mesa-commit">mesa-commit</a>
-- relays git check-in messages (for developers).
-In general, people should not post to this list.</p>
-</li>
-<li><p><a href="https://lists.freedesktop.org/mailman/listinfo/mesa-announce">mesa-announce</a>
-- announcements of new Mesa
-versions are sent to this list. Very low traffic.</p>
-</li>
-<li><p><a href="https://lists.freedesktop.org/mailman/listinfo/piglit">piglit</a>
-- for Piglit (OpenGL driver testing framework) discussion.</p>
-</li>
-</ul>
-
-<p>
-<b>NOTE</b>: You <b>must</b> subscribe to these lists in order to post to them.
-If you try to post to a list and you're not a subscriber (or if you try to post
-from a different email address than you subscribed with) your posting will be
-held for an indefinite period or may be discarded entirely.
-</p>
-
-<p>
-Follow the links above for list archives.
-</p>
-
-<p>
-The old Mesa lists hosted at SourceForge are no longer in use.
-The archives are still available, however:
-<a href="https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-announce">mesa3d-announce</a>,
-<a href="https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-users">mesa3d-users</a>,
-<a href="https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-dev">mesa3d-dev</a>.
-</p>
-
-
-<p>For mailing lists about Direct Rendering Modules (drm) in Linux/BSD
-kernels, see the
-<a href="https://dri.freedesktop.org/wiki/MailingLists">DRI wiki</a>.
-</p>
-
-
-<h2>IRC</h2>
-
-<p>join <a href="irc://chat.freenode.net#dri-devel">#dri-devel channel</a>
-on <a href="https://webchat.freenode.net/">irc.freenode.net</a>
-</p>
-
-
-<h2>OpenGL Forums</h2>
-
-<p>
-Here are some other OpenGL-related forums you might find useful:
-</p>
-
-<ul>
-<li><a href="https://www.opengl.org/discussion_boards/">OpenGL discussion forums</a>
-at www.opengl.org</li>
-<li>Usenet newsgroups:
-<ul>
-<li>comp.graphics.algorithms</li>
-<li>comp.graphics.api.opengl</li>
-<li>comp.os.linux.x</li>
-</ul>
-</ul>
-
-</div>
-</body>
-</html>
diff --git a/docs/lists.rst b/docs/lists.rst
new file mode 100644
index 00000000000..dd0180393f4
--- /dev/null
+++ b/docs/lists.rst
@@ -0,0 +1,62 @@
+Mailing Lists
+=============
+
+There are four Mesa 3D / DRI mailing lists:
+
+- `mesa-users <https://lists.freedesktop.org/mailman/listinfo/mesa-users>`__
+ - intended for end-users of Mesa and DRI drivers. Newbie questions
+ are OK, but please try the general OpenGL resources and Mesa/DRI
+ documentation first.
+
+- `mesa-dev <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`__
+ - for Mesa, Gallium and DRI development discussion. Not for
+ beginners.
+
+- `mesa-commit <https://lists.freedesktop.org/mailman/listinfo/mesa-commit>`__
+ - relays git check-in messages (for developers). In general, people
+ should not post to this list.
+
+- `mesa-announce <https://lists.freedesktop.org/mailman/listinfo/mesa-announce>`__
+ - announcements of new Mesa versions are sent to this list. Very low
+ traffic.
+
+- `piglit <https://lists.freedesktop.org/mailman/listinfo/piglit>`__ -
+ for Piglit (OpenGL driver testing framework) discussion.
+
+**NOTE**: You **must** subscribe to these lists in order to post to
+them. If you try to post to a list and you're not a subscriber (or if
+you try to post from a different email address than you subscribed with)
+your posting will be held for an indefinite period or may be discarded
+entirely.
+
+Follow the links above for list archives.
+
+The old Mesa lists hosted at SourceForge are no longer in use. The
+archives are still available, however:
+`mesa3d-announce <https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-announce>`__,
+`mesa3d-users <https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-users>`__,
+`mesa3d-dev <https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-dev>`__.
+
+For mailing lists about Direct Rendering Modules (drm) in Linux/BSD
+kernels, see the `DRI
+wiki <https://dri.freedesktop.org/wiki/MailingLists>`__.
+
+IRC
+---
+
+join `#dri-devel channel <irc://chat.freenode.net#dri-devel>`__ on
+`irc.freenode.net <https://webchat.freenode.net/>`__
+
+OpenGL Forums
+-------------
+
+Here are some other OpenGL-related forums you might find useful:
+
+- `OpenGL discussion
+ forums <https://www.opengl.org/discussion_boards/>`__ at
+ www.opengl.org
+- Usenet newsgroups:
+
+ - comp.graphics.algorithms
+ - comp.graphics.api.opengl
+ - comp.os.linux.x
diff --git a/docs/llvmpipe.html b/docs/llvmpipe.html
deleted file mode 100644
index 9f5bd0be445..00000000000
--- a/docs/llvmpipe.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Gallium LLVMpipe Driver</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- The Mesa 3D Graphics Library
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Gallium LLVMpipe Driver</h1>
-
-<h2>Introduction</h2>
-
-<p>
-The Gallium llvmpipe driver is a software rasterizer that uses LLVM to
-do runtime code generation.
-Shaders, point/line/triangle rasterization and vertex processing are
-implemented with LLVM IR which is translated to x86, x86-64, or ppc64le machine
-code.
-Also, the driver is multithreaded to take advantage of multiple CPU cores
-(up to 8 at this time).
-It's the fastest software rasterizer for Mesa.
-</p>
-
-
-<h2>Requirements</h2>
-
-<ul>
-<li>
- <p>
- For x86 or amd64 processors, 64-bit mode is recommended.
- Support for SSE2 is strongly encouraged. Support for SSE3 and SSE4.1 will
- yield the most efficient code. The fewer features the CPU has the more
- likely it is that you will run into underperforming, buggy, or incomplete code.
- </p>
- <p>
- For ppc64le processors, use of the Altivec feature (the Vector
- Facility) is recommended if supported; use of the VSX feature (the
- Vector-Scalar Facility) is recommended if supported AND Mesa is
- built with LLVM version 4.0 or later.
- </p>
- <p>
- See <code>/proc/cpuinfo</code> to know what your CPU supports.
- </p>
-</li>
-<li>
- <p>Unless otherwise stated, LLVM version 3.4 is recommended; 3.3 or later is required.</p>
- <p>
- For Linux, on a recent Debian based distribution do:
- </p>
-<pre>
-aptitude install llvm-dev
-</pre>
- <p>
- If you want development snapshot builds of LLVM for Debian and derived
- distributions like Ubuntu, you can use the APT repository at <a
- href="https://apt.llvm.org/" title="Debian Development packages for LLVM"
- >apt.llvm.org</a>, which are maintained by Debian's LLVM maintainer.
- </p>
- <p>
- For a RPM-based distribution do:
- </p>
-<pre>
-yum install llvm-devel
-</pre>
-
- <p>
- For Windows you will need to build LLVM from source with MSVC or MINGW
- (either natively or through cross compilers) and CMake, and set the
- <code>LLVM</code> environment variable to the directory you installed
- it to.
-
- LLVM will be statically linked, so when building on MSVC it needs to be
- built with a matching CRT as Mesa, and you'll need to pass
- <code>-DLLVM_USE_CRT_xxx=yyy</code> as described below.
- </p>
-
- <table border="1">
- <tr>
- <th rowspan="2">LLVM build-type</th>
- <th colspan="2" align="center">Mesa build-type</th>
- </tr>
- <tr>
- <th>debug,checked</th>
- <th>release,profile</th>
- </tr>
- <tr>
- <th>Debug</th>
- <td><code>-DLLVM_USE_CRT_DEBUG=MTd</code></td>
- <td><code>-DLLVM_USE_CRT_DEBUG=MT</code></td>
- </tr>
- <tr>
- <th>Release</th>
- <td><code>-DLLVM_USE_CRT_RELEASE=MTd</code></td>
- <td><code>-DLLVM_USE_CRT_RELEASE=MT</code></td>
- </tr>
- </table>
-
- <p>
- You can build only the x86 target by passing
- <code>-DLLVM_TARGETS_TO_BUILD=X86</code> to cmake.
- </p>
-</li>
-
-<li>
- <p>scons (optional)</p>
-</li>
-</ul>
-
-
-<h2>Building</h2>
-
-To build everything on Linux invoke scons as:
-
-<pre>
-scons build=debug libgl-xlib
-</pre>
-
-Alternatively, you can build it with meson with:
-<pre>
-mkdir build
-cd build
-meson -D glx=gallium-xlib -D gallium-drivers=swrast
-ninja
-</pre>
-
-but the rest of these instructions assume that scons is used.
-
-For Windows the procedure is similar except the target:
-
-<pre>
-scons platform=windows build=debug libgl-gdi
-</pre>
-
-
-<h2>Using</h2>
-
-<h3>Linux</h3>
-
-<p>On Linux, building will create a drop-in alternative for
-<code>libGL.so</code> into</p>
-
-<pre>
-build/foo/gallium/targets/libgl-xlib/libGL.so
-</pre>
-or
-<pre>
-lib/gallium/libGL.so
-</pre>
-
-<p>To use it set the <code>LD_LIBRARY_PATH</code> environment variable
-accordingly.</p>
-
-<p>For performance evaluation pass <code>build=release</code> to scons,
-and use the corresponding lib directory without the <code>-debug</code>
-suffix.</p>
-
-
-<h3>Windows</h3>
-
-<p>
-On Windows, building will create
-<code>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll</code>
-which is a drop-in alternative for system's <code>opengl32.dll</code>. To use
-it put it in the same directory as your application. It can also be used by
-replacing the native ICD driver, but it's quite an advanced usage, so if you
-need to ask, don't even try it.
-</p>
-
-<p>
-There is however an easy way to replace the OpenGL software renderer that comes
-with Microsoft Windows 7 (or later) with llvmpipe (that is, on systems without
-any OpenGL drivers):
-</p>
-
-<ul>
- <li><p>copy <code>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll</code>
- to <code>C:\Windows\SysWOW64\mesadrv.dll</code>
- </p></li>
- <li><p>load this registry settings:</p>
- <pre>REGEDIT4
-
-; https://technet.microsoft.com/en-us/library/cc749368.aspx
-; https://www.msfn.org/board/topic/143241-portable-windows-7-build-from-winpe-30/page-5#entry942596
-[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL]
-"DLL"="mesadrv.dll"