Compare commits
1802 Commits
18.3
...
mesa-19.0.
Author | SHA1 | Date | |
---|---|---|---|
|
5925a57258 | ||
|
f4bc129c09 | ||
|
3147af410d | ||
|
ffeb946c8a | ||
|
ef8a38e0e6 | ||
|
8d43691b26 | ||
|
47db151b9b | ||
|
1cf66fa64e | ||
|
7f86fbc2a9 | ||
|
0fe48675e5 | ||
|
f763433180 | ||
|
ab43e60540 | ||
|
4119f81c9d | ||
|
750e7f89ce | ||
|
5432448878 | ||
|
7c171da284 | ||
|
8ab2fc8c96 | ||
|
4621c21d54 | ||
|
1cae37f6d3 | ||
|
0bc0319823 | ||
|
f852e93815 | ||
|
7c22742731 | ||
|
d7bea557d3 | ||
|
503746b131 | ||
|
b6324bdfa5 | ||
|
8af5448418 | ||
|
014588440b | ||
|
3342431606 | ||
|
eb159aab8a | ||
|
682491f447 | ||
|
949d6c3544 | ||
|
9bdd64a12d | ||
|
688ce72518 | ||
|
8bda94e85a | ||
|
6b067b8dd0 | ||
|
578716cbf7 | ||
|
77ae9a3a42 | ||
|
4b8df622c4 | ||
|
548893d5f5 | ||
|
84effbe02c | ||
|
00fd6cf1e2 | ||
|
04fd26cd29 | ||
|
17361a3be9 | ||
|
f3454823d1 | ||
|
62d457eee1 | ||
|
3e72463ce0 | ||
|
efe69eb1ea | ||
|
0cf3c5f2f3 | ||
|
df01e77d64 | ||
|
e32fb87fd0 | ||
|
b2b148eb32 | ||
|
2cb6cdc2aa | ||
|
dd067d57e1 | ||
|
a4ea63e884 | ||
|
bdc946c23a | ||
|
bb3fdedadf | ||
|
c0509143ab | ||
|
49dad5e8fe | ||
|
7114cfc1d2 | ||
|
447ef1d9b3 | ||
|
721011c6f7 | ||
|
fdc25b9b1b | ||
|
5fcd81c5ed | ||
|
67162ad12f | ||
|
a03101c717 | ||
|
e7351739ff | ||
|
697c6c5a19 | ||
|
edeb13b550 | ||
|
06889aaa63 | ||
|
1d4fbff786 | ||
|
9f5622fe14 | ||
|
be1200d6a5 | ||
|
641884c884 | ||
|
32e2f645e4 | ||
|
d45d35768b | ||
|
4cfdd5a1f2 | ||
|
6abb6bd87a | ||
|
c4799332b8 | ||
|
73fa079b1d | ||
|
2ea2b2273b | ||
|
dd03e1d5de | ||
|
c837cd6546 | ||
|
a5f16a42a5 | ||
|
2e7833ad91 | ||
|
0a2e4b02ca | ||
|
c7fc61d15b | ||
|
1b093b567f | ||
|
d73e48b63f | ||
|
ba24ca67f6 | ||
|
110500cc8a | ||
|
0b9f6ebfbb | ||
|
69ebf4569a | ||
|
385b736238 | ||
|
4cf1a40f9a | ||
|
81e053b757 | ||
|
f30fb27665 | ||
|
1039285288 | ||
|
59812ac38d | ||
|
c19ce6e5e2 | ||
|
eba57c29b0 | ||
|
e304007d87 | ||
|
b4419fdba5 | ||
|
7ac15d9e42 | ||
|
6b48451110 | ||
|
838baab472 | ||
|
d8534f931c | ||
|
1f33f3cf3a | ||
|
fbcd1ad42c | ||
|
9a5c8d2aab | ||
|
c55008e5a0 | ||
|
ab585817e6 | ||
|
75bec50c2a | ||
|
62b3bd8cd1 | ||
|
fb3485bc92 | ||
|
2a97a3a8e7 | ||
|
ab70eccc75 | ||
|
24bb2771b6 | ||
|
7b5e0f8316 | ||
|
77102d0151 | ||
|
c96d433105 | ||
|
81810fa5db | ||
|
c5b9774eb4 | ||
|
a08aba86da | ||
|
d278b3c187 | ||
|
5a9b7bce9c | ||
|
b9e5e15f87 | ||
|
f305135e0b | ||
|
eb766a259e | ||
|
a1ae60e9a3 | ||
|
37ade3a566 | ||
|
92fa6d6959 | ||
|
5e85df1cfd | ||
|
e9dc4e252f | ||
|
56a47e3421 | ||
|
ca36eb12fd | ||
|
9dd433dfa7 | ||
|
f59c77ef8c | ||
|
61c22ba94b | ||
|
ad2b712a56 | ||
|
07e299a0a0 | ||
|
36d99d9ad0 | ||
|
94f0908216 | ||
|
f880c74717 | ||
|
6f36d3bbc0 | ||
|
b4e8a3294c | ||
|
ef6809ba88 | ||
|
7254d2f4a3 | ||
|
dbc43e3897 | ||
|
262fd16b99 | ||
|
452f9b9984 | ||
|
131f12d49f | ||
|
f8f68c41a1 | ||
|
15e2fc16e9 | ||
|
3f5099180d | ||
|
9667d89fe6 | ||
|
c6649ca94d | ||
|
89f84f98e0 | ||
|
c824f8031c | ||
|
7fdb08375f | ||
|
535cc4f1d5 | ||
|
7f91ae20b9 | ||
|
0a72505a9e | ||
|
31d0079a20 | ||
|
4d1dd3b0cd | ||
|
45d1aa2f6c | ||
|
2fddad9e3f | ||
|
2b603ee4f1 | ||
|
e7f6a5d17f | ||
|
1f5f12687f | ||
|
90a7a9c973 | ||
|
82365595e9 | ||
|
7d7b30835c | ||
|
9de90caca8 | ||
|
3e249b853e | ||
|
f7769b5121 | ||
|
31a1348a66 | ||
|
c93d77431f | ||
|
bcefa0f1cb | ||
|
786f9639d6 | ||
|
0c42b5f3cb | ||
|
e685566612 | ||
|
820dfcea43 | ||
|
a34b0d68bb | ||
|
a920979d4f | ||
|
014edff0d2 | ||
|
eab1c55590 | ||
|
cca199fd85 | ||
|
8babaa84e8 | ||
|
d6a6e10390 | ||
|
d96969120d | ||
|
e46fb33143 | ||
|
13a6fabc62 | ||
|
c3aa436bfe | ||
|
fee6bd8d8e | ||
|
b284d222db | ||
|
8514eba693 | ||
|
f547cebbe0 | ||
|
d2d3e04501 | ||
|
7f1cf046cd | ||
|
ba3c5300f9 | ||
|
5b17379631 | ||
|
2ce93b88c0 | ||
|
cf42b0f9e2 | ||
|
009c0bd840 | ||
|
077b9557a4 | ||
|
446a14bc0a | ||
|
c3baa077bf | ||
|
1a6ddfe5ee | ||
|
9106a0fe33 | ||
|
69edc972fc | ||
|
50fd253bd6 | ||
|
ead54d4a42 | ||
|
3a8d6c0880 | ||
|
932ed9c00b | ||
|
300d3ae8b1 | ||
|
522f688471 | ||
|
f6292c32cc | ||
|
7d458c0c69 | ||
|
cccec0b457 | ||
|
912a9c8d8c | ||
|
cb2322c7c0 | ||
|
501c6e70d4 | ||
|
fb78a6cb72 | ||
|
be5b271ea7 | ||
|
7c930d99ad | ||
|
32b1d2d716 | ||
|
41a0acd6a1 | ||
|
827e0d6654 | ||
|
272b6cf58f | ||
|
511e7b6f61 | ||
|
ed65aeec78 | ||
|
afeef3cacf | ||
|
320b058d32 | ||
|
d1994ed229 | ||
|
212c0c630a | ||
|
1013dfece1 | ||
|
76c3f6fb3f | ||
|
8f9dfb7d88 | ||
|
385081cd17 | ||
|
7577c82fed | ||
|
2845939d6a | ||
|
8021f1875e | ||
|
75b3719c4f | ||
|
5c797f7354 | ||
|
dfc3a7cb3c | ||
|
34458c1cf6 | ||
|
42ca4dda2d | ||
|
5b4a155d2b | ||
|
d1d2bb8c07 | ||
|
0907ae35ad | ||
|
c496b60ed8 | ||
|
5fe4250a2c | ||
|
09472006ff | ||
|
c51d125d18 | ||
|
8a0b0a8f37 | ||
|
fcdbd441a2 | ||
|
edb1fcd963 | ||
|
ac333ffa59 | ||
|
060575bea8 | ||
|
3e743d8cd8 | ||
|
fe6a21c867 | ||
|
533b3f0541 | ||
|
b4870a15ae | ||
|
804cc44d09 | ||
|
d12dc39396 | ||
|
d9bd3b1cb8 | ||
|
86e5f76d3d | ||
|
fb282a68bc | ||
|
837ed2ba51 | ||
|
4602e705e4 | ||
|
9e34781aef | ||
|
9839ce8bf9 | ||
|
5f5503d498 | ||
|
314d2c90c3 | ||
|
e461926ef2 | ||
|
6380fedb60 | ||
|
d7433c22e6 | ||
|
a7d629a590 | ||
|
18b467c066 | ||
|
41ddf1d150 | ||
|
cd79b5e0c2 | ||
|
8e9ad592c3 | ||
|
5d66f7103f | ||
|
08f4a904b3 | ||
|
104c7883e7 | ||
|
54abd2e084 | ||
|
3b6aaab7e9 | ||
|
4aa64940c6 | ||
|
378e2d2414 | ||
|
65b8d723fd | ||
|
540939ecee | ||
|
4759bb2fcf | ||
|
db39a44f10 | ||
|
69e9440367 | ||
|
9af77fcf98 | ||
|
f2ece26601 | ||
|
c1efa240c9 | ||
|
7cb7f35bc7 | ||
|
3ba7ab8d2c | ||
|
70a7ece035 | ||
|
385ee7c3d0 | ||
|
1f6b92b476 | ||
|
00af91ca46 | ||
|
db83a2b40f | ||
|
281421e1bc | ||
|
8a0012692a | ||
|
a41214ca3e | ||
|
05f8558b27 | ||
|
5661ce6c64 | ||
|
9f86f1da7c | ||
|
3bf08292d2 | ||
|
0842bc879b | ||
|
656845301d | ||
|
389bc2bc6e | ||
|
5fa6c34949 | ||
|
babec55f7e | ||
|
5b1bdce156 | ||
|
313f977224 | ||
|
451805f810 | ||
|
bba375c016 | ||
|
06eb3fe371 | ||
|
cd0f11bac5 | ||
|
a08a793180 | ||
|
cf317bf093 | ||
|
fe9f5c0e21 | ||
|
5a81e8d40e | ||
|
6148cce388 | ||
|
ca152234e1 | ||
|
9cc8e12505 | ||
|
8ed966b506 | ||
|
d2ca270511 | ||
|
85edfc04b8 | ||
|
98984b7cdd | ||
|
6afce78128 | ||
|
7d9274388b | ||
|
381d0e753a | ||
|
e166003cb7 | ||
|
74c9c906f9 | ||
|
022800a058 | ||
|
9e9fa13c81 | ||
|
2720f78ef2 | ||
|
ff621a5055 | ||
|
499869908b | ||
|
cfca5cd958 | ||
|
42aea4f1a7 | ||
|
c89e8470e5 | ||
|
5c17c01815 | ||
|
5a4af871e3 | ||
|
963c044c55 | ||
|
5f0b17d581 | ||
|
e7ac792400 | ||
|
bd098884f1 | ||
|
698afa177e | ||
|
e0485a1dd7 | ||
|
8e26d534be | ||
|
678ef2a4a5 | ||
|
559e5b0408 | ||
|
f0ed59076f | ||
|
1ce5d757d0 | ||
|
c56fe4118a | ||
|
7c4b9510d1 | ||
|
ddbe6171e6 | ||
|
956c219c8f | ||
|
d85917deaf | ||
|
260ff57647 | ||
|
63b91f25bc | ||
|
4666f36c04 | ||
|
501ff90a95 | ||
|
a75b12ce66 | ||
|
1cfbed7587 | ||
|
e0a6399eb4 | ||
|
2792ec2cdd | ||
|
96610f625d | ||
|
86e25ed5a3 | ||
|
1b25d340b7 | ||
|
8daf5bb209 | ||
|
b443465fb9 | ||
|
3ee240890c | ||
|
4d5f8f39f3 | ||
|
c252273f98 | ||
|
a545415eb9 | ||
|
e402961e1d | ||
|
c605738113 | ||
|
f139589069 | ||
|
e3d283eaca | ||
|
4c4c8bb1f0 | ||
|
caa2dcd730 | ||
|
c02f761bdf | ||
|
ac0f8a6ea0 | ||
|
7f4d9bb7b8 | ||
|
673f33c77d | ||
|
2be89cbd82 | ||
|
36ee2fd61c | ||
|
39925d60ec | ||
|
e3bd49eaa7 | ||
|
6b50b0a4a8 | ||
|
ac704e777c | ||
|
5649a0a6e8 | ||
|
4f99ac9144 | ||
|
96fa23bca5 | ||
|
b2bbd978d0 | ||
|
9f4e0aa7c1 | ||
|
9c14440e81 | ||
|
da29594636 | ||
|
662cfb121b | ||
|
b4eae8444e | ||
|
610f956fde | ||
|
fc4f6b2f12 | ||
|
9f614c74b7 | ||
|
c7dbf0b280 | ||
|
67610a0323 | ||
|
da3ca69afa | ||
|
41a0c00392 | ||
|
27af1cc2a6 | ||
|
ca8c6c9781 | ||
|
5ee0adfb6e | ||
|
fa737042ad | ||
|
ce08e5f39c | ||
|
8bb46de08b | ||
|
2aa78e46e9 | ||
|
344171b9ee | ||
|
c7f4a2867c | ||
|
f0ba826054 | ||
|
e4c6423c5e | ||
|
5564a797f2 | ||
|
5d1a29071a | ||
|
5886c5d092 | ||
|
bec6e4b054 | ||
|
02ab85afd8 | ||
|
0286a11b7e | ||
|
64b12520a2 | ||
|
6ef7700ac6 | ||
|
0a793c78a3 | ||
|
4125211e9c | ||
|
27bd07e230 | ||
|
b9fec2b38c | ||
|
987744be98 | ||
|
8002eaab6c | ||
|
acdad24585 | ||
|
36a76b7192 | ||
|
6fefd69724 | ||
|
3afc1e068f | ||
|
9b24028426 | ||
|
e5daef9587 | ||
|
ad99c1670a | ||
|
79514cc5fb | ||
|
3c4c18341a | ||
|
6ca652faf3 | ||
|
c84ec70b3a | ||
|
9e669ed22b | ||
|
860a9e4849 | ||
|
5486c9d526 | ||
|
60c6778dda | ||
|
64b8c86d37 | ||
|
c9d7b0f184 | ||
|
cd56d79b59 | ||
|
1952fd8d2c | ||
|
ed6e2bf263 | ||
|
9e989b860a | ||
|
b54df1b6df | ||
|
eb32dad07c | ||
|
0a7ac6d543 | ||
|
f682ed11c3 | ||
|
72d9745a40 | ||
|
8c164ea8f5 | ||
|
83cc87ead4 | ||
|
80dae7022e | ||
|
30b5c9eda2 | ||
|
8424cd8fbd | ||
|
927ba12b53 | ||
|
731c4adcf9 | ||
|
643248b66a | ||
|
5d61c74f3d | ||
|
dfc9ab2ccd | ||
|
7ed0898a8d | ||
|
6a1f4c96cc | ||
|
f39dad7e4e | ||
|
11a5d4620b | ||
|
f874604f45 | ||
|
e3dc56d731 | ||
|
fc3f588320 | ||
|
54e21e145e | ||
|
234c9d8a40 | ||
|
e2179aceaf | ||
|
d18267fb48 | ||
|
6a1dcfe73d | ||
|
e8b6e0a5ba | ||
|
6a2d5ae305 | ||
|
27478ce00e | ||
|
4149d41f2e | ||
|
c4c5c90255 | ||
|
406623f5b1 | ||
|
9d58641bf2 | ||
|
2dad014496 | ||
|
f92c5bc8f3 | ||
|
a311aa631d | ||
|
99ef66c325 | ||
|
0605726776 | ||
|
59527a36e9 | ||
|
d70eb2302b | ||
|
cb527d2c4c | ||
|
b12316cc92 | ||
|
e106e0f2dd | ||
|
292887ac0d | ||
|
8a52e4cc4f | ||
|
187a6506a3 | ||
|
bb98be61f4 | ||
|
b135db5d58 | ||
|
c722ad7379 | ||
|
9459863dfa | ||
|
9cacf9d877 | ||
|
c9fa2ee343 | ||
|
e68777c87c | ||
|
431e9abaab | ||
|
ed7673afd2 | ||
|
d5d7b5e950 | ||
|
5b51d754d0 | ||
|
11735d6c9c | ||
|
0b736f7fd4 | ||
|
d644698b44 | ||
|
f967273fb4 | ||
|
e760be08b4 | ||
|
4a131a1330 | ||
|
7bef192018 | ||
|
9784400a6b | ||
|
a6e5ce5130 | ||
|
568e7a2998 | ||
|
5183e794af | ||
|
bd09bb1629 | ||
|
f72820c851 | ||
|
9b45b06d7c | ||
|
01d913cf90 | ||
|
6281f26f06 | ||
|
5932c2f0b9 | ||
|
6c8edcb89c | ||
|
1a63227ea0 | ||
|
49b7e26fac | ||
|
3790ee07e6 | ||
|
619a28b845 | ||
|
051a41d3d5 | ||
|
b417a9f7b2 | ||
|
ad6ceb2872 | ||
|
76b12fa564 | ||
|
76df5e8f52 | ||
|
2d2737dcfe | ||
|
09c3ff01df | ||
|
9fdded0cc3 | ||
|
ee23e8b17c | ||
|
929df7afaf | ||
|
af2a85df74 | ||
|
5e4f9ea363 | ||
|
9f44088468 | ||
|
930b17161f | ||
|
c92c449361 | ||
|
4bd976e3b8 | ||
|
3ec9ab80b8 | ||
|
716ed41a36 | ||
|
1a20b56798 | ||
|
7fbd48fdc0 | ||
|
e4803ab7d2 | ||
|
1c1ae6376c | ||
|
0862929bf6 | ||
|
04c2f12ab2 | ||
|
bdf6a5c1d2 | ||
|
b938d5fbef | ||
|
821b6861ec | ||
|
24c8108ea6 | ||
|
e57e26121a | ||
|
b57c1ec421 | ||
|
2b876bc922 | ||
|
3d182601bb | ||
|
b27ad17115 | ||
|
d3b47e073e | ||
|
1ede463b6e | ||
|
ae683ed3bc | ||
|
e12b0b5c6d | ||
|
c8ae891035 | ||
|
d75fbff667 | ||
|
4b1e436bc9 | ||
|
ad9832d17b | ||
|
084a1cdbb7 | ||
|
2165636e9c | ||
|
a2db6b4254 | ||
|
eb4b1477dc | ||
|
f6aa9f7185 | ||
|
8dfda5ebbe | ||
|
b90e55a5d5 | ||
|
73ddfbeb85 | ||
|
32e266a9a5 | ||
|
8ea8727a87 | ||
|
031e94dc72 | ||
|
c92c18c70c | ||
|
eb625d30b7 | ||
|
04aff7e42b | ||
|
286de96af8 | ||
|
53fbde4df3 | ||
|
0210243923 | ||
|
6c3164cd08 | ||
|
428164d87f | ||
|
e2e03f84f9 | ||
|
864cc419eb | ||
|
406f603b34 | ||
|
613ac3aaa2 | ||
|
18b4e87370 | ||
|
622d429128 | ||
|
7e4e9da90d | ||
|
2b801b6668 | ||
|
3b967e1724 | ||
|
8534742404 | ||
|
e76772af6c | ||
|
2623653126 | ||
|
e633fae5cb | ||
|
fe2cbcf3ee | ||
|
ecb115eb3f | ||
|
41f3e9e5f5 | ||
|
62d55f1281 | ||
|
adab27e741 | ||
|
dde73e646f | ||
|
393b59e077 | ||
|
f998ce4111 | ||
|
2632c12477 | ||
|
876a4b85fe | ||
|
21e9bb2b3f | ||
|
5a674fd789 | ||
|
5a87441807 | ||
|
c9d333a6b7 | ||
|
d5cf6e92b4 | ||
|
b830efb191 | ||
|
7c5b982b89 | ||
|
15757bc80b | ||
|
e213f3871f | ||
|
5c9a659f50 | ||
|
83762afa66 | ||
|
92ac2169fb | ||
|
3db81b5d9f | ||
|
48891ab441 | ||
|
2119094b1d | ||
|
cad58fc5e7 | ||
|
407bd1bbf9 | ||
|
f499942b31 | ||
|
773190f281 | ||
|
cbf090b809 | ||
|
a3551ee61f | ||
|
4a93401546 | ||
|
f111d72596 | ||
|
c036fc97a2 | ||
|
3e4d5ea7b8 | ||
|
ec6e823a99 | ||
|
c802cdde9d | ||
|
eac66f0248 | ||
|
0428951b9d | ||
|
b63a1f8e40 | ||
|
412472da5c | ||
|
76c27e47b9 | ||
|
63f6d7afd6 | ||
|
230a8a541d | ||
|
cbea91eb57 | ||
|
2c99c7a56c | ||
|
efa4e4bc5f | ||
|
b94519971a | ||
|
c301f447ea | ||
|
464e79144f | ||
|
bc781a0323 | ||
|
812ede088f | ||
|
c5f9c0009d | ||
|
0206ffc28d | ||
|
d2c170eb35 | ||
|
0c226d40ef | ||
|
e986c1ca1d | ||
|
fd82a1d1d6 | ||
|
5da442338b | ||
|
5e30e54e05 | ||
|
ee8488ea3b | ||
|
b8c4f523b4 | ||
|
a2b5cc3c39 | ||
|
d58b11e709 | ||
|
a2ddb710fd | ||
|
f6a6da8131 | ||
|
700aeaf9c8 | ||
|
211b826790 | ||
|
9f29d90327 | ||
|
db3b6b6bca | ||
|
6051c11d17 | ||
|
3fcec4a550 | ||
|
baabfb1959 | ||
|
3cb65cf8aa | ||
|
6eeb1fe491 | ||
|
b38a48a569 | ||
|
4f5a526789 | ||
|
d0c6ef2793 | ||
|
401dca1c73 | ||
|
ba55cb2bcd | ||
|
add5a2ec92 | ||
|
366eb656ac | ||
|
c292414765 | ||
|
4298a85ae8 | ||
|
754eff07d2 | ||
|
05d72d6d48 | ||
|
34af63fa22 | ||
|
63b9aa2e25 | ||
|
3a7c5667c8 | ||
|
adc155a815 | ||
|
be039cb467 | ||
|
5c3cb9c3ce | ||
|
e90b738f20 | ||
|
f393b10b3f | ||
|
52dd43c7ef | ||
|
013ee5732b | ||
|
7755171e4c | ||
|
d0fe52a456 | ||
|
7e85480a67 | ||
|
78d80f7db2 | ||
|
d8e3edb784 | ||
|
a1c688517d | ||
|
427558a717 | ||
|
e94a027af8 | ||
|
fc9c4f89b8 | ||
|
bf1a1eed88 | ||
|
6cebeb4f71 | ||
|
7f70b3e555 | ||
|
d8a11bfc08 | ||
|
d34f19feba | ||
|
a700a82bda | ||
|
c9a4135e14 | ||
|
cd93b0a670 | ||
|
abfe674c54 | ||
|
bfe31c5e46 | ||
|
639c236e74 | ||
|
c59f07684c | ||
|
f8992eb5ba | ||
|
42b2f3e91f | ||
|
a392ddb781 | ||
|
70ed049cc6 | ||
|
3cc940277a | ||
|
f003859f97 | ||
|
c69f9297cf | ||
|
be6cee51c0 | ||
|
64c83efaee | ||
|
656c1c488c | ||
|
492ad9a402 | ||
|
0cc01f45e7 | ||
|
027835b1da | ||
|
6decc6b1d9 | ||
|
110564fdec | ||
|
9a45a190ad | ||
|
00ad77b9f6 | ||
|
5334dafee2 | ||
|
d015888efb | ||
|
b56d903b5a | ||
|
6dade5d534 | ||
|
17fac39398 | ||
|
8847370424 | ||
|
f217a94542 | ||
|
a74f2aeb4f | ||
|
19c608fe43 | ||
|
81b9361b68 | ||
|
f8a8de8b9a | ||
|
b0e0086257 | ||
|
f8e6b364b0 | ||
|
e1385e879d | ||
|
bbf9ee9b18 | ||
|
31e4c9ce40 | ||
|
92b7407090 | ||
|
da634a4acb | ||
|
e5ed217545 | ||
|
f0312cfa93 | ||
|
6b7aea9d85 | ||
|
ca66457b05 | ||
|
393a756e6a | ||
|
8b363bc42e | ||
|
6a9be6fc0c | ||
|
e869481ef3 | ||
|
67a7f6f244 | ||
|
2fc17e16a3 | ||
|
53b8eb78d5 | ||
|
228eddd7ee | ||
|
f1c88336e6 | ||
|
4d3f6cb973 | ||
|
19cafe8084 | ||
|
5122fbc4ba | ||
|
8d05ee2005 | ||
|
0016166d19 | ||
|
d2b899c0ec | ||
|
0805060573 | ||
|
5e9ee6e841 | ||
|
078dc176bc | ||
|
2e0433b687 | ||
|
c3ae0aa264 | ||
|
49d8e2aff1 | ||
|
3a81c753a3 | ||
|
3ae57957be | ||
|
edfca1f8dc | ||
|
cba475b3e7 | ||
|
54bc87469a | ||
|
9d2c3a1fe0 | ||
|
d28e208213 | ||
|
7d6babf995 | ||
|
a2596450ac | ||
|
1b97a72328 | ||
|
ec79069856 | ||
|
fda3f6d424 | ||
|
7d3c34197a | ||
|
88663ba67c | ||
|
f18554e2ce | ||
|
1c8de08ec9 | ||
|
df118535ca | ||
|
dbbbe24d76 | ||
|
95b7c29c2c | ||
|
aeee683780 | ||
|
5fc9ad1cb0 | ||
|
70be9afccb | ||
|
d828694b80 | ||
|
c0aba8b0dc | ||
|
50de3f80a8 | ||
|
0a4378ce56 | ||
|
2ef0f944f5 | ||
|
2832bc972b | ||
|
2817a4ec0b | ||
|
4dda445750 | ||
|
dd061eb044 | ||
|
8f98ff362c | ||
|
8c93ef5de9 | ||
|
86089a7316 | ||
|
89679e18a9 | ||
|
207fb558e4 | ||
|
ad251330e8 | ||
|
b04c1907c8 | ||
|
b34cfd4749 | ||
|
ef3eac9545 | ||
|
ad1e59cf8d | ||
|
20021e3473 | ||
|
f695d62fe5 | ||
|
906fca1b4b | ||
|
47caefc7b4 | ||
|
f9bdce9966 | ||
|
b36757448d | ||
|
20e3526298 | ||
|
ebde5afb93 | ||
|
39b1112189 | ||
|
a7c9fd7573 | ||
|
696f63f1b4 | ||
|
87b251a940 | ||
|
9ec6a3d621 | ||
|
133a5b8383 | ||
|
f7bccf6ab4 | ||
|
6ba61ea391 | ||
|
7ab8c80625 | ||
|
f3ed4a058d | ||
|
0382e11989 | ||
|
8e2fda411a | ||
|
e260493f2a | ||
|
2e12fe425f | ||
|
a9c36dbf9c | ||
|
7407670036 | ||
|
759b940389 | ||
|
bf1dfcc3e8 | ||
|
d1ce7eba8b | ||
|
6adbd9ac74 | ||
|
4c32964f49 | ||
|
a57dbe6971 | ||
|
40ec5fec0a | ||
|
fe7919acad | ||
|
0d53451890 | ||
|
008478e340 | ||
|
2269ab8588 | ||
|
1d10bb2025 | ||
|
0dd55db10f | ||
|
9867f2a1f7 | ||
|
4d5a6a1649 | ||
|
d139231b32 | ||
|
5574414edc | ||
|
bac8534267 | ||
|
7d7ecfbcbc | ||
|
e2ae5f2f0a | ||
|
c6b37e5412 | ||
|
104681c5d5 | ||
|
42d672fa6a | ||
|
f91f748fab | ||
|
1cc8192ad0 | ||
|
c442dd7890 | ||
|
51a44c3aac | ||
|
8f60f1381d | ||
|
be9ec158d7 | ||
|
2b497fc507 | ||
|
d71a50f831 | ||
|
6667dde098 | ||
|
3453814622 | ||
|
626f2477ab | ||
|
3a78b46e59 | ||
|
bcb6f19947 | ||
|
80dd9dfe33 | ||
|
ed1a356c5e | ||
|
42d31e0516 | ||
|
bba5749484 | ||
|
1e872d1486 | ||
|
516160d717 | ||
|
171983dc89 | ||
|
f3b1acff48 | ||
|
a8d020c3dc | ||
|
39634f2f35 | ||
|
51318c32fe | ||
|
e890aaabed | ||
|
266ae2225e | ||
|
31c162ad22 | ||
|
116f0fb216 | ||
|
ecf96413bb | ||
|
81173fd69f | ||
|
de72c1fe6c | ||
|
7c38d7b7c8 | ||
|
12187550f9 | ||
|
f331419f26 | ||
|
e139d7a8a3 | ||
|
b44875e2dc | ||
|
9527f9ea26 | ||
|
2eedb79e1a | ||
|
9d10581897 | ||
|
e0dbfc9953 | ||
|
6b296f64af | ||
|
17218a0406 | ||
|
acc481ad79 | ||
|
ba36312fbd | ||
|
d3991d2472 | ||
|
d80761b8f3 | ||
|
0e2758daad | ||
|
0ff7eed289 | ||
|
9606310081 | ||
|
6b976024a8 | ||
|
fa16da53d8 | ||
|
65d82c84d2 | ||
|
f45e43e156 | ||
|
5b1ec10e4c | ||
|
9f0bfbed11 | ||
|
5c7935f8fc | ||
|
0a7e767e58 | ||
|
576040f2e5 | ||
|
d6110d4d54 | ||
|
1250383e36 | ||
|
6f4083143b | ||
|
ec1d5841fa | ||
|
6896c91c10 | ||
|
c2ebc38052 | ||
|
90818558f0 | ||
|
463df0ffe2 | ||
|
fcfb7f573c | ||
|
7c56b7a6ea | ||
|
f6a0f4f41e | ||
|
8ee752194c | ||
|
e09d8aecb4 | ||
|
fcf881adda | ||
|
b5adc744ba | ||
|
365728dc5d | ||
|
947f7b452a | ||
|
9d8395bf0e | ||
|
0ddc911f4d | ||
|
0e4c7c3d5b | ||
|
b0319d0768 | ||
|
b45aa6290b | ||
|
1d3d311133 | ||
|
db77573d7b | ||
|
11939f6fa2 | ||
|
4e2c77cd51 | ||
|
174f530008 | ||
|
13626b46f1 | ||
|
2a44acc83b | ||
|
f749229a8e | ||
|
a63da9c062 | ||
|
6e7d396ad3 | ||
|
6d13d1aadb | ||
|
d73a25f2c0 | ||
|
c85b0dea0a | ||
|
e0f0d3675d | ||
|
0fc6e573dd | ||
|
e2b9329f17 | ||
|
7dd289d9e4 | ||
|
829d417914 | ||
|
ce785f5ffd | ||
|
556c4c42b7 | ||
|
1e49d72317 | ||
|
6e67e79de4 | ||
|
5c841a1b1e | ||
|
0d58dcc3cf | ||
|
23af72af25 | ||
|
f18b2ac0db | ||
|
555cb668cc | ||
|
ec22dd34c8 | ||
|
0ef263d62f | ||
|
8efaffa893 | ||
|
300876a9a7 | ||
|
3963402fd3 | ||
|
3c77f26ccc | ||
|
76c5ad1995 | ||
|
6f0322b16a | ||
|
7230cb8f2b | ||
|
539fdc49f1 | ||
|
3627c9efff | ||
|
3dc424a4f4 | ||
|
a7b7772cfb | ||
|
bb0721aea4 | ||
|
c070b0e25f | ||
|
f1654fa7e3 | ||
|
517103abf1 | ||
|
c79a528d2b | ||
|
5c65c60d6c | ||
|
884fc90fde | ||
|
1e6a44400a | ||
|
aa94e01bfe | ||
|
c1f15a0a1a | ||
|
8a469fd335 | ||
|
2a98e5bbb9 | ||
|
96c4b135e3 | ||
|
0f7ba5758b | ||
|
84f39e5971 | ||
|
933c44bcc4 | ||
|
7ea8e54dd6 | ||
|
e36d136102 | ||
|
9e8332ebc2 | ||
|
c63c391756 | ||
|
5820e63418 | ||
|
5dad1abfdc | ||
|
fa40a58fd9 | ||
|
cf7fb39805 | ||
|
867fe35a16 | ||
|
3fe0363dda | ||
|
8cc0f92492 | ||
|
8410cf66d7 | ||
|
29e4b949b4 | ||
|
433ca3127a | ||
|
67174d40f1 | ||
|
a3e592e839 | ||
|
7a90886921 | ||
|
8c77f4c76d | ||
|
6cf5f25bc5 | ||
|
e430a034b9 | ||
|
3feda3cf35 | ||
|
3c71ba3baa | ||
|
af07141b33 | ||
|
378f996771 | ||
|
8fb8ebfbb0 | ||
|
09b7e1d8e4 | ||
|
4cd1a0be76 | ||
|
9a83c3d3b3 | ||
|
440c051340 | ||
|
111bcc8d02 | ||
|
f67dea5e19 | ||
|
9add63a3a5 | ||
|
708d8f4d0a | ||
|
00e2cbc049 | ||
|
376054fff3 | ||
|
445867c80d | ||
|
cae373117c | ||
|
e5b59fe6f5 | ||
|
ef198e8c6a | ||
|
bba94a3d85 | ||
|
9dc135efa1 | ||
|
7adafd6e1c | ||
|
8161a87b24 | ||
|
e3043e1276 | ||
|
db197fdb6c | ||
|
47e1e0692c | ||
|
6bcd2af086 | ||
|
3b30814791 | ||
|
44227453ec | ||
|
11dc130779 | ||
|
191a1dce92 | ||
|
615cc26b97 | ||
|
487514ae61 | ||
|
3191a82372 | ||
|
2fe8708ffd | ||
|
80e8dfe9de | ||
|
b569093566 | ||
|
517099809a | ||
|
4bb1a34727 | ||
|
3595a0abf4 | ||
|
9f7bd843af | ||
|
e17426058c | ||
|
2977c77758 | ||
|
91a0251dbc | ||
|
bde9f482de | ||
|
12dc7cb202 | ||
|
ed4020fabe | ||
|
e4f9a37ace | ||
|
d512b35b62 | ||
|
29927e7524 | ||
|
248a7fb392 | ||
|
a370ed76ab | ||
|
532b6c5671 | ||
|
78ef05bde4 | ||
|
a7e15a5086 | ||
|
5b2cc03852 | ||
|
ff80e58b38 | ||
|
3f9bcf9136 | ||
|
332a5cf6a5 | ||
|
6ad9e8690d | ||
|
976ea90bdc | ||
|
e5b4d1f55f | ||
|
485df2574e | ||
|
e731d53716 | ||
|
153d3fc5f9 | ||
|
4aeaf89aa7 | ||
|
5f9085638a | ||
|
4db4b3447d | ||
|
56cf25a114 | ||
|
5c454661c6 | ||
|
d8b50e152a | ||
|
019a92ffa4 | ||
|
a6b7d1151c | ||
|
ba5402ec9a | ||
|
489ffaf0c1 | ||
|
0b44644ca6 | ||
|
a2ec78883f | ||
|
0ac5acaeaa | ||
|
4ec2f6129b | ||
|
57b76ee2a8 | ||
|
d15fc787bc | ||
|
532f8c0043 | ||
|
85cd4df47f | ||
|
cca1e9606c | ||
|
c19c4bf488 | ||
|
3e8e033f4c | ||
|
4cd016b5d6 | ||
|
7ef722861b | ||
|
4407e688cd | ||
|
3a417a044e | ||
|
c2c44dba7a | ||
|
19ffcba161 | ||
|
b3f2b03ece | ||
|
9ebc00f32e | ||
|
455ec7327d | ||
|
e639d39faf | ||
|
74492ebad9 | ||
|
090e282407 | ||
|
39198a1238 | ||
|
9525971e2b | ||
|
a95ec13879 | ||
|
c7bdcd67aa | ||
|
e888f28d1f | ||
|
8447b64238 | ||
|
b702ff5378 | ||
|
00143a6241 | ||
|
0991085f66 | ||
|
e0b0995dcf | ||
|
c8a17b45ea | ||
|
5088ba2aeb | ||
|
eb0034fe28 | ||
|
d8325f1f07 | ||
|
74cf3b627c | ||
|
3a5adc2879 | ||
|
c506eae53d | ||
|
1b85c605a6 | ||
|
06fbcd2cd5 | ||
|
d3e046e76c | ||
|
19c7cba2ab | ||
|
9e6b39e1d5 | ||
|
c03d6e61cc | ||
|
48b40380e3 | ||
|
5921a19d4b | ||
|
721566bddb | ||
|
48135f175c | ||
|
7fe4e0ad5d | ||
|
ff6f1dd0d3 | ||
|
ca98902d09 | ||
|
5749c0ebc4 | ||
|
e4fdc650f1 | ||
|
2ac6d55f38 | ||
|
f856f50194 | ||
|
3918943211 | ||
|
a10a450db2 | ||
|
cb98e0755f | ||
|
4ef8f46fd1 | ||
|
4a691cfa7e | ||
|
5a968ae473 | ||
|
caeffe7549 | ||
|
e1ef6c3c29 | ||
|
86c45fe960 | ||
|
721c296bdc | ||
|
5391b65ed1 | ||
|
512bd8d3dd | ||
|
8600aa35bd | ||
|
cfe8220904 | ||
|
9e3fc0c1e0 | ||
|
8f401b0ce6 | ||
|
fb88dcf5ca | ||
|
c0de7c21a3 | ||
|
9578dde1c8 | ||
|
f447a13032 | ||
|
694eb342a2 | ||
|
e7598c5a62 | ||
|
6d3cbbbe15 | ||
|
27c4fdfdf8 | ||
|
b028ce29f0 | ||
|
b30e37ec64 | ||
|
05c7e726f7 | ||
|
a539316485 | ||
|
032f247921 | ||
|
6b961eb534 | ||
|
03d7c65ad8 | ||
|
de0aee7638 | ||
|
41a4a6ba6f | ||
|
34c9dc2537 | ||
|
77944fb2b7 | ||
|
d63a133082 | ||
|
a28ff22295 | ||
|
cc6a5e937b | ||
|
09ad0d870c | ||
|
f1d98204c3 | ||
|
7f8d8b7d27 | ||
|
3bd73d31a8 | ||
|
bad95bb13c | ||
|
1fc78ff3f1 | ||
|
5932575299 | ||
|
62a3192112 | ||
|
8cb1f3bab7 | ||
|
ee9b758053 | ||
|
acecee4c2d | ||
|
6870111051 | ||
|
ca0e4ae4bc | ||
|
503b55c622 | ||
|
504d06e4c1 | ||
|
d1965344ac | ||
|
e94d034a38 | ||
|
b38e4d313f | ||
|
1911888760 | ||
|
2ebca177dc | ||
|
ee0549ff9a | ||
|
42652ea51e | ||
|
fb9bcf5602 | ||
|
90e98295a4 | ||
|
f0d51e81c9 | ||
|
d014af98b7 | ||
|
5c2c1f0a2d | ||
|
9517037bdc | ||
|
e37351fa57 | ||
|
0d240c2214 | ||
|
b971afd19e | ||
|
237ae7daf2 | ||
|
e779725f0b | ||
|
9f7c6c78bc | ||
|
c500e7b747 | ||
|
f6ad286c80 | ||
|
4275cae95c | ||
|
2845c49218 | ||
|
e8a383ce67 | ||
|
96d4ecbb11 | ||
|
0144bbdb98 | ||
|
b1e0336497 | ||
|
3e55df4f83 | ||
|
913eb7fa58 | ||
|
14ea811c67 | ||
|
2710c40e3c | ||
|
1b331ae505 | ||
|
b4fd59075b | ||
|
3fbdcd942f | ||
|
3b2ad8b290 | ||
|
dca6cd9ce6 | ||
|
be98b1db38 | ||
|
2715080d65 | ||
|
ff8e3d3b7b | ||
|
05af952a11 | ||
|
4925290ab1 | ||
|
d6aac618fb | ||
|
85f0ea9d8f | ||
|
03571a7a6c | ||
|
a0ae12ca91 | ||
|
29a1450e28 | ||
|
49ef890733 | ||
|
c6465fec0c | ||
|
63c0916ada | ||
|
c0ac038c97 | ||
|
c7ada4901a | ||
|
e899728769 | ||
|
9a7b319903 | ||
|
c1b6cb068c | ||
|
824cfc1ee5 | ||
|
2669dbf881 | ||
|
5907412d04 | ||
|
1660f3aa05 | ||
|
908f817918 | ||
|
34f07ddebb | ||
|
91af56e383 | ||
|
5bf38bfb64 | ||
|
4b218984d8 | ||
|
d9b2234042 | ||
|
95d62baac5 | ||
|
eade6ffeee | ||
|
919bec1c47 | ||
|
a0b14c1b02 | ||
|
6ae873b97d | ||
|
d7b99ab947 | ||
|
bacf8471dc | ||
|
08c64fe7a1 | ||
|
de49e06507 | ||
|
1363a47c9c | ||
|
12e35a64c0 | ||
|
3bf48741e1 | ||
|
51091b3e1f | ||
|
dd53bb7e1f | ||
|
017199d2d2 | ||
|
e3f075439c | ||
|
71271e167b | ||
|
9401a2f2e6 | ||
|
fcf9fcee3c | ||
|
43015b2a89 | ||
|
212d270b4e | ||
|
487010a099 | ||
|
74eab1c62f | ||
|
c4136ed5cc | ||
|
d972939986 | ||
|
3629ee025c | ||
|
52dc8b4f7b | ||
|
167dcd59ae | ||
|
b112e62ba4 | ||
|
1b2e9aca77 | ||
|
510b642460 | ||
|
59690bf0a3 | ||
|
83db9d3e3a | ||
|
3bbd543b6e | ||
|
b5a370dc25 | ||
|
76b038bee7 | ||
|
19eb0bf28f | ||
|
2dfcaf7554 | ||
|
1aa134038c | ||
|
27ca87ccca | ||
|
d70cfb322a | ||
|
70bfd31287 | ||
|
5109742e7b | ||
|
2e753b77dd | ||
|
1373d117c2 | ||
|
e8b331ae13 | ||
|
ca8e2a5277 | ||
|
3ef0ca65c9 | ||
|
fc0139d283 | ||
|
b6f095f7ce | ||
|
37a2072e97 | ||
|
4f74580d30 | ||
|
eed3f1121c | ||
|
89b4798c06 | ||
|
d18492c64f | ||
|
c0773315af | ||
|
37f9788e9a | ||
|
39b20b7d4f | ||
|
fbf95ce074 | ||
|
94bfb8bf38 | ||
|
776b911365 | ||
|
621c107760 | ||
|
729ebdf07e | ||
|
058f85d41c | ||
|
7fce3ca375 | ||
|
cc7deb749c | ||
|
6d4f65deea | ||
|
4b9df824f7 | ||
|
7484bc894b | ||
|
f78ee19702 | ||
|
eca931a726 | ||
|
93f5ce8fa7 | ||
|
aeaf8dbd09 | ||
|
3e718db1ff | ||
|
d0c7b079d0 | ||
|
075fd5d8f2 | ||
|
c1d3c08699 | ||
|
d7a4fa91f0 | ||
|
72b2b61d8c | ||
|
27f9935075 | ||
|
6b554d863f | ||
|
f737fe00a0 | ||
|
8c00f778fc | ||
|
a2a6b06d48 | ||
|
98f2312b4f | ||
|
5f9ccf827e | ||
|
cf6835485c | ||
|
9576266a37 | ||
|
015061beb3 | ||
|
8c25ab1a23 | ||
|
2a936f8afa | ||
|
fba91b5173 | ||
|
709905cbb6 | ||
|
648dc52367 | ||
|
442dae2693 | ||
|
8eb8be3f54 | ||
|
2ddd44d941 | ||
|
f11780779f | ||
|
199a0353d6 | ||
|
eb44c36cf1 | ||
|
2d48d5116b | ||
|
e2ad94d928 | ||
|
a53a280479 | ||
|
f6ab6e2867 | ||
|
c02390f8fc | ||
|
eb94b6bd5c | ||
|
35eb81987c | ||
|
e0f1f74eda | ||
|
ce74a7bb8d | ||
|
c59d3aa4b9 | ||
|
9575cd2893 | ||
|
f08d107054 | ||
|
d8bb88d0b4 | ||
|
091295d7cb | ||
|
073fdd7382 | ||
|
e55cbf26ea | ||
|
6f737b9207 | ||
|
1a210268b8 | ||
|
e113b21cb7 | ||
|
55edafa73e | ||
|
6569644bb6 | ||
|
76945e4140 | ||
|
5973a4d0b7 | ||
|
e68cd91251 | ||
|
3ed4aad524 | ||
|
3a273a4abc | ||
|
4887aba638 | ||
|
e7114575f7 | ||
|
a50b8a0152 | ||
|
4e6ee033ff | ||
|
78fede86d9 | ||
|
3e7186d472 | ||
|
11593f9041 | ||
|
d47d77d49d | ||
|
2773919f06 | ||
|
9595be67a9 | ||
|
b5a9bb28c6 | ||
|
5f068cf3b0 | ||
|
09300bbe03 | ||
|
65cee01430 | ||
|
aa0fed10d3 | ||
|
556eec249d | ||
|
312eae45a3 | ||
|
ea4cbf601d | ||
|
030e98630d | ||
|
2482153d52 | ||
|
a321f939f6 | ||
|
bfd8d26372 | ||
|
424d75656f | ||
|
8a654f092e | ||
|
c635703c50 | ||
|
388aac32ed | ||
|
b4476138d5 | ||
|
6cb74eb4f1 | ||
|
88c4680b5a | ||
|
bade179153 | ||
|
08ea6b9d9b | ||
|
453570cd8c | ||
|
16e4911972 | ||
|
3f55fd3814 | ||
|
3ce04da5b4 | ||
|
3282c7be89 | ||
|
c0c533767e | ||
|
bd12e02530 | ||
|
56d126f8fd | ||
|
d6d35d87f1 | ||
|
c120dbfe4d | ||
|
38af69adfa | ||
|
42820c5727 | ||
|
5e0a84f31c | ||
|
38bbb61252 | ||
|
f1998e15ff | ||
|
f5d053702f | ||
|
3c96a1e3a9 | ||
|
ff466c2d48 | ||
|
2a3eae82a1 | ||
|
a00a8fb8d1 | ||
|
6705188cc5 | ||
|
774d585d49 | ||
|
65332aff29 | ||
|
927ce66b39 | ||
|
d4e7d8b7f0 | ||
|
82aa07f81f | ||
|
9fc1ce258c | ||
|
2951a766bd | ||
|
a652842982 | ||
|
d52be6dd29 | ||
|
7a4d74c35a | ||
|
75e39b59dc | ||
|
f09d94fbd1 | ||
|
b551fe5fa7 | ||
|
059928e114 | ||
|
8ea819dd60 | ||
|
fff1738d57 | ||
|
9c13ad0ea4 | ||
|
dd4241b34f | ||
|
ba4e8d3754 | ||
|
35555b08d7 | ||
|
09adaa4b89 | ||
|
896c59d690 | ||
|
a24654b49d | ||
|
617e402b3d | ||
|
a845c2bc10 | ||
|
2ca9a4417d | ||
|
4ff4af3d91 | ||
|
33b2f74e77 | ||
|
1f1d4d571a | ||
|
d304f0aa31 | ||
|
19af208c7d | ||
|
61b535437e | ||
|
4b9bc4791b | ||
|
457ac6ce1e | ||
|
8e73b57634 | ||
|
387888e3b7 | ||
|
2d3c466add | ||
|
0a7020b4e6 | ||
|
2da7b0a2fb | ||
|
a4c01839c2 | ||
|
182ed6de8c | ||
|
1b743e2966 | ||
|
3c46fa5988 | ||
|
093aeb3565 | ||
|
1217a8448c | ||
|
73d2d313e9 | ||
|
ea9f95e2a6 | ||
|
6c1a34d2e7 | ||
|
bc5adc27b5 | ||
|
48f2160936 | ||
|
ce7f84eb77 | ||
|
7f1cac7ba6 | ||
|
247d5a8e94 | ||
|
25d95ed535 | ||
|
562448b75a | ||
|
6a10dd08f4 | ||
|
0d17b685b1 | ||
|
3486fe655a | ||
|
baa4bdd3a6 | ||
|
ec9fe8abc7 | ||
|
a999798daa | ||
|
b787dcf57b | ||
|
982e012b3a | ||
|
5bc509363b | ||
|
84445a86d1 | ||
|
f4563d8f5b | ||
|
dd0172e865 | ||
|
0990168642 | ||
|
5b682143da | ||
|
d0f746b645 | ||
|
63c8696874 | ||
|
bfa789aceb | ||
|
c8a35285f0 | ||
|
760859cac2 | ||
|
2f4f5a5055 | ||
|
dca35c598d | ||
|
060817b2fa | ||
|
486091bc00 | ||
|
724107553c | ||
|
7dcddbe54d | ||
|
9133bbf186 | ||
|
193ad4748b | ||
|
c7e142ed78 | ||
|
6f3fbcc041 | ||
|
36006e3cec | ||
|
4d30f2c6f4 | ||
|
8ca8a6a7b1 | ||
|
8706204074 | ||
|
55c75d2b49 | ||
|
483a28bfd4 | ||
|
46a59ce026 | ||
|
d174cbccfa | ||
|
18a8e11aea | ||
|
40eca7d3e1 | ||
|
78fdc507a3 | ||
|
c5363869d4 | ||
|
ebcde34545 | ||
|
24a02157dd | ||
|
70692adf48 | ||
|
c2e3d0f163 | ||
|
beb66d3747 | ||
|
799e021894 | ||
|
955d943c33 | ||
|
7e9fc11ff8 | ||
|
d971a4230d | ||
|
cc19815738 | ||
|
2bc1f5c2e7 | ||
|
c2b515379b | ||
|
7076e9f116 | ||
|
d031d5c999 | ||
|
afd834b62e | ||
|
d1a1c21e76 | ||
|
0db898cef2 | ||
|
ac324a6809 | ||
|
59c1059528 | ||
|
25443cbb72 | ||
|
1c56d21156 | ||
|
5e1fe240c4 | ||
|
ba94a00c7c | ||
|
cc71bf529c | ||
|
cc0bc76a38 | ||
|
f9fd0cf479 | ||
|
6339aba775 | ||
|
d34fd81e76 | ||
|
fb127f7729 | ||
|
b5c48271d4 | ||
|
44b7005581 | ||
|
f16bd8a9fe | ||
|
b77d68b78e | ||
|
1f29f4db1e | ||
|
4266932c0b | ||
|
425c133ab9 | ||
|
61e003ce7e | ||
|
9b9f3218db | ||
|
538bca78e2 | ||
|
03928dd682 | ||
|
2b2f790e59 | ||
|
6e60ff1ea9 | ||
|
c973364967 | ||
|
2640854399 | ||
|
adbdfc6666 | ||
|
c0012a0708 | ||
|
77ff0bfb5f | ||
|
209525aafb | ||
|
b7418d1f3f | ||
|
533fead423 | ||
|
181203f3c5 | ||
|
e6b3a3b201 | ||
|
fac10169bb | ||
|
559c32d241 | ||
|
7d9556681d | ||
|
4ae749acf1 | ||
|
19a081473f | ||
|
ab5653680e | ||
|
52368ef83a | ||
|
aa7a419b8b | ||
|
e53ec08931 | ||
|
9367514524 | ||
|
e13dd70581 | ||
|
7aca650122 | ||
|
69ee49ac46 | ||
|
25b48e3df9 | ||
|
c9085f6d3b | ||
|
0477d17f51 | ||
|
56aa23b146 | ||
|
e1298def9f | ||
|
258d20152a | ||
|
d86ad38205 | ||
|
4bba280937 | ||
|
b4380cb070 | ||
|
099728b115 | ||
|
80db331c2d | ||
|
95b513c937 | ||
|
ea53f76d7b | ||
|
8b00d3d6eb | ||
|
465de47bad | ||
|
fe3b7fe982 | ||
|
ee8d65c25a | ||
|
352e297091 | ||
|
4fa2fb3524 | ||
|
7df80de6e6 | ||
|
3832db275e | ||
|
4f1ae271e1 | ||
|
1e918e5bef | ||
|
59b3335496 | ||
|
923aca84b2 | ||
|
2af4e3345f | ||
|
1921982d3e | ||
|
030fe0f981 | ||
|
12e34fc7ba | ||
|
a883fd2277 | ||
|
27cf6252d3 | ||
|
ecf62a967e | ||
|
571d6447d8 | ||
|
6463ceca69 | ||
|
a4ca710c96 | ||
|
102dadec81 | ||
|
a6aab7e436 | ||
|
b00bccd012 | ||
|
8d4bb6e5cd | ||
|
caa964b422 | ||
|
90d68858ed | ||
|
f70c5d31cd | ||
|
b5f213bb1d | ||
|
c5f3013cba | ||
|
efb1ccadca | ||
|
7e3748c268 | ||
|
34dffcf913 | ||
|
3561108de0 | ||
|
621b0fa892 | ||
|
6328536ff2 | ||
|
ee7f848c00 | ||
|
4eab98b66e | ||
|
32a334777c | ||
|
e0c7114eb3 | ||
|
c6aaafa3a1 | ||
|
41c8f99137 | ||
|
9c2a95b298 | ||
|
4a0c2cfdd6 | ||
|
89785e2d56 | ||
|
252ca7b43f | ||
|
8a15f06d19 | ||
|
0a30c33e83 | ||
|
97fb1a02fd | ||
|
d9d14346c2 | ||
|
cc4569b733 | ||
|
8dc2085baf | ||
|
a068958692 | ||
|
9dd737bb02 | ||
|
552642066f | ||
|
590fcb50e7 | ||
|
d40dd05553 | ||
|
414470854d | ||
|
123bf9cbe7 | ||
|
10598c9667 | ||
|
d2b2364313 | ||
|
4bec5025ac | ||
|
9dc776f3f2 | ||
|
832ab883e2 | ||
|
d059eae269 | ||
|
959e2a5aeb | ||
|
b55af392d9 | ||
|
cf8b271cbe | ||
|
cccd7a253f | ||
|
8c97abc066 | ||
|
5213be9fab | ||
|
35baee5dce | ||
|
6c418dfa42 | ||
|
a3c898dc97 | ||
|
a5c39ed974 | ||
|
c5a4c26450 | ||
|
011abfc963 | ||
|
d28bc35ece | ||
|
bcc6aab065 | ||
|
52145070c0 | ||
|
1413512b4c | ||
|
61e15348c4 | ||
|
344cfe6980 | ||
|
6b2918709a | ||
|
c472ad82e4 | ||
|
f425d9ee74 | ||
|
0dcd99c687 | ||
|
16f1023037 | ||
|
f7fae7f64e | ||
|
32b0eb51a3 | ||
|
792dde66f2 | ||
|
e262cc0353 | ||
|
0a0aa2ba6c | ||
|
1e7c3379e1 | ||
|
9aa3c1915e | ||
|
f821e80213 | ||
|
edd6c41751 | ||
|
8d825f78fc | ||
|
a4550de434 | ||
|
610061838a | ||
|
c171d76b94 | ||
|
421fa01d64 | ||
|
b43f955037 | ||
|
f6131d4ec7 | ||
|
3bbad81c80 | ||
|
2d9c3a5db2 | ||
|
55af17ffed | ||
|
b47a69ed4c | ||
|
b3ade65387 | ||
|
2a8fefdeb0 | ||
|
7e169cf2a0 | ||
|
04298a2f24 | ||
|
5aeee1ab15 | ||
|
4fd0ff75f3 | ||
|
e400ac52e4 | ||
|
c5fca35af1 | ||
|
9ab5089150 | ||
|
d515ded4d9 | ||
|
dcee22afed | ||
|
ce837a5372 | ||
|
f7fd0d86a9 | ||
|
c571ca7a08 | ||
|
b1b2dd06a7 | ||
|
dc3419195c | ||
|
64a9ed8848 | ||
|
5d517a599b | ||
|
b6410a2d22 | ||
|
5294d65011 | ||
|
424a6052df | ||
|
5c0cff868a | ||
|
0d78c6af0d | ||
|
c80e267a0a | ||
|
645ca269d2 | ||
|
f32ba7abd7 | ||
|
df9f574c13 | ||
|
7652931d33 | ||
|
1c140470ef | ||
|
9a41a10f8a | ||
|
9cab8ccd6c | ||
|
769ae9fb7f | ||
|
b9dec214f5 | ||
|
b710680093 | ||
|
acd2968005 | ||
|
29f0ab2c30 | ||
|
b8e9c6522d | ||
|
742dace825 | ||
|
6df922f438 | ||
|
ecab2d6f14 | ||
|
e975c5b785 | ||
|
12f001f013 | ||
|
9f009c1a8f | ||
|
c7bdda8aa5 | ||
|
677b496b6b | ||
|
7f37a52a21 | ||
|
5f312e95f8 | ||
|
43a397c580 | ||
|
4e1b163eed | ||
|
4018eb04e8 | ||
|
3923cf626d | ||
|
47586ab569 | ||
|
5313fb8abd | ||
|
d3f66c385b | ||
|
b93fc160f4 | ||
|
13c955182f | ||
|
b3d6937fb0 | ||
|
ac95a0e024 | ||
|
97c73c9174 |
@@ -11,6 +11,7 @@ tab_width = 8
|
||||
[*.{c,h,cpp,hpp,cc,hh}]
|
||||
indent_style = space
|
||||
indent_size = 3
|
||||
max_line_length = 78
|
||||
|
||||
[{Makefile*,*.mk}]
|
||||
indent_style = tab
|
||||
|
389
.travis.yml
389
.travis.yml
@@ -1,7 +1,6 @@
|
||||
language: c
|
||||
|
||||
sudo: false
|
||||
dist: trusty
|
||||
dist: xenial
|
||||
|
||||
cache:
|
||||
apt: true
|
||||
@@ -16,7 +15,7 @@ env:
|
||||
- GLPROTO_VERSION=glproto-1.4.17
|
||||
- DRI2PROTO_VERSION=dri2proto-2.8
|
||||
- LIBPCIACCESS_VERSION=libpciaccess-0.13.4
|
||||
- LIBDRM_VERSION=libdrm-2.4.74
|
||||
- LIBDRM_VERSION=libdrm-2.4.97
|
||||
- XCBPROTO_VERSION=xcb-proto-1.13
|
||||
- RANDRPROTO_VERSION=randrproto-1.3.0
|
||||
- LIBXRANDR_VERSION=libXrandr-1.3.0
|
||||
@@ -35,43 +34,47 @@ matrix:
|
||||
- env:
|
||||
- LABEL="meson Vulkan"
|
||||
- BUILD=meson
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_DRIVERS=""
|
||||
- UNWIND="false"
|
||||
- DRI_LOADERS="-Dglx=disabled -Dgbm=false -Degl=false -Dplatforms=x11,wayland,drm -Dosmesa=none"
|
||||
- GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
- VULKAN_DRIVERS="intel,amd"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
- llvm-7-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson loaders/classic DRI"
|
||||
- BUILD=meson
|
||||
- UNWIND="false"
|
||||
- DRI_LOADERS="-Dglx=dri -Dgbm=true -Degl=true -Dplatforms=x11,wayland,drm,surfaceless -Dosmesa=classic"
|
||||
- DRI_DRIVERS="i915,i965,r100,r200,swrast,nouveau"
|
||||
- GALLIUM_DRIVERS=""
|
||||
- VULKAN_DRIVERS=""
|
||||
- GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libxxf86vm-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libxdamage-dev
|
||||
- libxfixes-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make loaders/classic DRI"
|
||||
- BUILD=make
|
||||
@@ -88,11 +91,200 @@ matrix:
|
||||
packages:
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libxxf86vm-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libxdamage-dev
|
||||
- libxfixes-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
# NOTE: Building SWR is 2x (yes two) times slower than all the other
|
||||
# gallium drivers combined.
|
||||
# Start this early so that it doesn't hunder the run time.
|
||||
- LABEL="meson Gallium Drivers SWR"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
- GALLIUM_DRIVERS="swr"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- llvm-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium Drivers RadeonSI"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
- GALLIUM_DRIVERS="radeonsi"
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-7-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium Drivers Other"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
- GALLIUM_DRIVERS="i915,nouveau,kmsro,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv"
|
||||
- LLVM_VERSION=5.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- llvm-5.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium ST Clover LLVM-5.0"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
|
||||
- GALLIUM_DRIVERS="r600"
|
||||
- LLVM_VERSION=5.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libclc-dev
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- llvm-5.0-dev
|
||||
- clang-5.0
|
||||
- libclang-5.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium ST Clover LLVM-6.0"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
|
||||
- GALLIUM_DRIVERS="r600"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libclc-dev
|
||||
- llvm-6.0-dev
|
||||
- clang-6.0
|
||||
- libclang-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium ST Clover LLVM-7"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
|
||||
- GALLIUM_DRIVERS="r600,radeonsi"
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
packages:
|
||||
- libclc-dev
|
||||
# From sources above
|
||||
- llvm-7-dev
|
||||
- clang-7
|
||||
- libclang-7-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium ST Other"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=true -Dgallium-xvmc=true -Dgallium-omx=bellagio -Dgallium-va=true -Dgallium-xa=true -Dgallium-nine=true -Dgallium-opencl=disabled -Dosmesa=gallium"
|
||||
# We need swrast for osmesa and nine.
|
||||
# Nouveau supports, or builds at least against all ST.
|
||||
- GALLIUM_DRIVERS="nouveau,swrast"
|
||||
- LLVM_VERSION=5.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- llvm-5.0-dev
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# Nine requires gcc 4.6... which is the one we have right ?
|
||||
- libxvmc-dev
|
||||
# Build locally, for now.
|
||||
#- libvdpau-dev
|
||||
#- libva-dev
|
||||
- libomxil-bellagio-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
# NOTE: Building SWR is 2x (yes two) times slower than all the other
|
||||
# gallium drivers combined.
|
||||
@@ -111,27 +303,22 @@ matrix:
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium Drivers RadeonSI"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
@@ -142,20 +329,19 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
- llvm-7-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium Drivers Other"
|
||||
- BUILD=make
|
||||
@@ -163,32 +349,26 @@ matrix:
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=3.9
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
# New binutils linker is required for llvm-3.9
|
||||
- OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
- GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,imx"
|
||||
- GALLIUM_DRIVERS="i915,nouveau,kmsro,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv"
|
||||
- VULKAN_DRIVERS=""
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-3.9
|
||||
packages:
|
||||
- binutils-2.26
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# From sources above
|
||||
- llvm-3.9-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-3.9"
|
||||
- BUILD=make
|
||||
@@ -196,10 +376,6 @@ matrix:
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=3.9
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- OVERRIDE_CC=gcc-4.7
|
||||
- OVERRIDE_CXX=g++-4.7
|
||||
# New binutils linker is required for llvm-3.9
|
||||
- OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
@@ -208,26 +384,21 @@ matrix:
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-3.9
|
||||
packages:
|
||||
- binutils-2.26
|
||||
- libclc-dev
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- g++-4.7
|
||||
# From sources above
|
||||
- llvm-3.9-dev
|
||||
- clang-3.9
|
||||
- libclang-3.9-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-4.0"
|
||||
- BUILD=make
|
||||
@@ -235,8 +406,6 @@ matrix:
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=4.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- OVERRIDE_CC=gcc-4.8
|
||||
- OVERRIDE_CXX=g++-4.8
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
@@ -245,25 +414,21 @@ matrix:
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-4.0
|
||||
packages:
|
||||
- libclc-dev
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- g++-4.8
|
||||
# From sources above
|
||||
- llvm-4.0-dev
|
||||
- clang-4.0
|
||||
- libclang-4.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-5.0"
|
||||
- BUILD=make
|
||||
@@ -271,8 +436,6 @@ matrix:
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=5.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- OVERRIDE_CC=gcc-4.8
|
||||
- OVERRIDE_CXX=g++-4.8
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
@@ -281,25 +444,21 @@ matrix:
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-5.0
|
||||
packages:
|
||||
- libclc-dev
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- g++-4.8
|
||||
# From sources above
|
||||
- llvm-5.0-dev
|
||||
- clang-5.0
|
||||
- libclang-5.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-6.0"
|
||||
- BUILD=make
|
||||
@@ -310,29 +469,24 @@ matrix:
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
- GALLIUM_DRIVERS="r600,radeonsi"
|
||||
- GALLIUM_DRIVERS="r600"
|
||||
- VULKAN_DRIVERS=""
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libclc-dev
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
- clang-6.0
|
||||
- libclang-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-7"
|
||||
- BUILD=make
|
||||
@@ -349,10 +503,8 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
# llvm-7 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libclc-dev
|
||||
# From sources above
|
||||
@@ -361,7 +513,6 @@ matrix:
|
||||
- libclang-7-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
@@ -371,7 +522,7 @@ matrix:
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=3.3
|
||||
- LLVM_VERSION=3.5
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
@@ -385,8 +536,8 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
# We actually want to test against llvm-3.3
|
||||
- llvm-3.3-dev
|
||||
# We actually want to test against llvm-3.3, yet 3.5 is available
|
||||
- llvm-3.5-dev
|
||||
# Nine requires gcc 4.6... which is the one we have right ?
|
||||
- libxvmc-dev
|
||||
# Build locally, for now.
|
||||
@@ -397,18 +548,18 @@ matrix:
|
||||
- libedit-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Vulkan"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
|
||||
- DRI_DRIVERS=""
|
||||
@@ -419,19 +570,18 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
- llvm-7-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="scons"
|
||||
- BUILD=scons
|
||||
@@ -456,14 +606,15 @@ matrix:
|
||||
- SCONS_TARGET="llvm=1"
|
||||
# Keep it symmetrical to the make build.
|
||||
- SCONS_CHECK_COMMAND="scons llvm=1 check"
|
||||
- LLVM_VERSION=3.3
|
||||
- LLVM_VERSION=3.5
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- llvm-3.3-dev
|
||||
# We actually want to test against llvm-3.3, yet 3.5 is available
|
||||
- llvm-3.5-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
@@ -481,12 +632,7 @@ matrix:
|
||||
- SCONS_CHECK_COMMAND="true"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
@@ -504,6 +650,9 @@ matrix:
|
||||
- env:
|
||||
- LABEL="macOS meson"
|
||||
- BUILD=meson
|
||||
- UNWIND="false"
|
||||
- DRI_LOADERS="-Dglx=dri -Dgbm=false -Degl=false -Dplatforms=x11 -Dosmesa=none"
|
||||
- GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
os: osx
|
||||
|
||||
before_install:
|
||||
@@ -531,10 +680,8 @@ before_install:
|
||||
|
||||
install:
|
||||
# Install a more modern meson from pip, since the version in the
|
||||
# ubuntu repos is often quite old. This requires python>=3.5, so
|
||||
# let's make it default
|
||||
# ubuntu repos is often quite old.
|
||||
- if test "x$BUILD" = xmeson; then
|
||||
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 10;
|
||||
pip3 install --user meson;
|
||||
pip3 install --user mako;
|
||||
fi
|
||||
@@ -550,16 +697,6 @@ install:
|
||||
pip2 install --user mako;
|
||||
fi
|
||||
|
||||
# Since libdrm gets updated in configure.ac regularly, try to pick up the
|
||||
# latest version from there.
|
||||
- for line in `grep "^LIBDRM.*_REQUIRED=" configure.ac`; do
|
||||
old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
|
||||
new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
|
||||
if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
|
||||
export LIBDRM_VERSION="libdrm-$new_ver";
|
||||
fi;
|
||||
done
|
||||
|
||||
# Install dependencies where we require specific versions (or where
|
||||
# disallowed by Travis CI's package whitelisting).
|
||||
|
||||
@@ -621,7 +758,7 @@ install:
|
||||
tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz
|
||||
(cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
# Meson requires ninja >= 1.6, but trusty has 1.3.x
|
||||
# Meson requires ninja >= 1.6, but xenial has 1.3.x
|
||||
wget https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-linux.zip
|
||||
unzip ninja-linux.zip
|
||||
mv ninja $HOME/prefix/bin/
|
||||
@@ -664,15 +801,13 @@ install:
|
||||
|
||||
script:
|
||||
- if test "x$BUILD" = xmake; then
|
||||
test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
|
||||
test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
|
||||
test -n "$OVERRIDE_PATH" && export PATH="$OVERRIDE_PATH:$PATH";
|
||||
|
||||
export CFLAGS="$CFLAGS -isystem`pwd`";
|
||||
|
||||
mkdir build &&
|
||||
cd build &&
|
||||
../autogen.sh --enable-debug
|
||||
../autogen.sh
|
||||
--enable-autotools
|
||||
--enable-debug
|
||||
$LIBUNWIND_FLAGS
|
||||
$DRI_LOADERS
|
||||
--with-dri-drivers=$DRI_DRIVERS
|
||||
@@ -685,41 +820,33 @@ script:
|
||||
fi
|
||||
|
||||
- if test "x$BUILD" = xscons; then
|
||||
test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
|
||||
test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
|
||||
scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
|
||||
fi
|
||||
|
||||
- |
|
||||
if test "x$BUILD" = xmeson; then
|
||||
if test -n "$LLVM_CONFIG"; then
|
||||
# We need to control the version of llvm-config we're using, so we'll
|
||||
# generate a native file to do so. This requires meson >=0.49
|
||||
#
|
||||
echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file
|
||||
|
||||
if test "x$TRAVIS_OS_NAME" == xosx; then
|
||||
MESON_OPTIONS="-Degl=false"
|
||||
$LLVM_CONFIG --version
|
||||
else
|
||||
: > native.file
|
||||
fi
|
||||
|
||||
if test "x$TRAVIS_OS_NAME" == xlinux; then
|
||||
MESON_OPTIONS="-Ddri-drivers=${DRI_DRIVERS:-[]} -Dgallium-drivers=${GALLIUM_DRIVERS:-[]} -Dvulkan-drivers=${VULKAN_DRIVERS:-[]}"
|
||||
fi
|
||||
|
||||
# Travis CI has moved to LLVM 5.0, and meson is detecting
|
||||
# automatically the available version in /usr/local/bin based on
|
||||
# the PATH env variable order preference.
|
||||
#
|
||||
# As for 0.44.x, Meson cannot receive the path to the
|
||||
# llvm-config binary as a configuration parameter. See
|
||||
# https://github.com/mesonbuild/meson/issues/2887 and
|
||||
# https://github.com/dcbaker/meson/commit/7c8b6ee3fa42f43c9ac7dcacc61a77eca3f1bcef
|
||||
#
|
||||
# We want to use the custom (APT) installed version. Therefore,
|
||||
# let's make Meson find our wanted version sooner than the one
|
||||
# at /usr/local/bin
|
||||
#
|
||||
# Once this is corrected, we would still need a patch similar
|
||||
# to:
|
||||
# https://lists.freedesktop.org/archives/mesa-dev/2017-December/180217.html
|
||||
test -f /usr/bin/$LLVM_CONFIG && ln -s /usr/bin/$LLVM_CONFIG $HOME/prefix/bin/llvm-config
|
||||
|
||||
export CFLAGS="$CFLAGS -isystem`pwd`"
|
||||
meson _build $MESON_OPTIONS
|
||||
meson _build \
|
||||
--native-file=native.file \
|
||||
-Dbuild-tests=true \
|
||||
-Dlibunwind=${UNWIND} \
|
||||
${DRI_LOADERS} \
|
||||
-Ddri-drivers=${DRI_DRIVERS:-[]} \
|
||||
${GALLIUM_ST} \
|
||||
-Dgallium-drivers=${GALLIUM_DRIVERS:-[]} \
|
||||
-Dvulkan-drivers=${VULKAN_DRIVERS:-[]}
|
||||
meson configure _build
|
||||
ninja -C _build
|
||||
ninja -C _build test
|
||||
fi
|
||||
|
@@ -37,7 +37,6 @@ LOCAL_CFLAGS += \
|
||||
-Wno-missing-field-initializers \
|
||||
-Wno-initializer-overrides \
|
||||
-Wno-mismatched-tags \
|
||||
-DVERSION=\"$(MESA_VERSION)\" \
|
||||
-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
|
||||
-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"
|
||||
|
||||
|
@@ -24,7 +24,7 @@
|
||||
# BOARD_GPU_DRIVERS should be defined. The valid values are
|
||||
#
|
||||
# classic drivers: i915 i965
|
||||
# gallium drivers: swrast freedreno i915g nouveau pl111 r300g r600g radeonsi vc4 virgl vmwgfx etnaviv imx
|
||||
# gallium drivers: swrast freedreno i915g nouveau kmsro r300g r600g radeonsi vc4 virgl vmwgfx etnaviv
|
||||
#
|
||||
# The main target is libGLES_mesa. For each classic driver enabled, a DRI
|
||||
# module will also be built. DRI modules will be loaded by libGLES_mesa.
|
||||
@@ -52,15 +52,14 @@ gallium_drivers := \
|
||||
freedreno.HAVE_GALLIUM_FREEDRENO \
|
||||
i915g.HAVE_GALLIUM_I915 \
|
||||
nouveau.HAVE_GALLIUM_NOUVEAU \
|
||||
pl111.HAVE_GALLIUM_PL111 \
|
||||
kmsro.HAVE_GALLIUM_KMSRO \
|
||||
r300g.HAVE_GALLIUM_R300 \
|
||||
r600g.HAVE_GALLIUM_R600 \
|
||||
radeonsi.HAVE_GALLIUM_RADEONSI \
|
||||
vmwgfx.HAVE_GALLIUM_VMWGFX \
|
||||
vc4.HAVE_GALLIUM_VC4 \
|
||||
virgl.HAVE_GALLIUM_VIRGL \
|
||||
etnaviv.HAVE_GALLIUM_ETNAVIV \
|
||||
imx.HAVE_GALLIUM_IMX
|
||||
etnaviv.HAVE_GALLIUM_ETNAVIV
|
||||
|
||||
ifeq ($(BOARD_GPU_DRIVERS),all)
|
||||
MESA_BUILD_CLASSIC := $(filter HAVE_%, $(subst ., , $(classic_drivers)))
|
||||
|
@@ -22,6 +22,7 @@
|
||||
SUBDIRS = src
|
||||
|
||||
AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--enable-autotools \
|
||||
--enable-dri \
|
||||
--enable-dri3 \
|
||||
--enable-egl \
|
||||
@@ -45,7 +46,7 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--enable-libunwind \
|
||||
--with-platforms=x11,wayland,drm,surfaceless \
|
||||
--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \
|
||||
--with-gallium-drivers=i915,nouveau,r300,pl111,r600,radeonsi,freedreno,svga,swrast,vc4,tegra,virgl,swr,etnaviv,imx \
|
||||
--with-gallium-drivers=i915,nouveau,r300,kmsro,r600,radeonsi,freedreno,svga,swrast,vc4,tegra,virgl,swr,etnaviv \
|
||||
--with-vulkan-drivers=intel,radeon
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
@@ -72,7 +72,9 @@ F: src/loader/
|
||||
|
||||
EGL
|
||||
R: Eric Engestrom <eric@engestrom.ch>
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: src/egl/
|
||||
F: include/EGL/
|
||||
|
||||
HAIKU
|
||||
R: Alexander von Gluck IV <kallisti5@unixzen.com>
|
||||
@@ -136,3 +138,8 @@ F: src/gallium/drivers/freedreno/
|
||||
GLX
|
||||
R: Adam Jackson <ajax@redhat.com>
|
||||
F: src/glx/
|
||||
|
||||
VULKAN
|
||||
R: Eric Engestrom <eric@engestrom.ch>
|
||||
F: src/vulkan/
|
||||
F: include/vulkan/
|
||||
|
14
bin/.cherry-ignore
Normal file
14
bin/.cherry-ignore
Normal file
@@ -0,0 +1,14 @@
|
||||
# Both of these were already merged with different shas
|
||||
da48cba61ef6fefb799bf96e6364b70dbf4ec712
|
||||
c812c740e60c14060eb89db66039111881a0f42f
|
||||
|
||||
# The commit these fix was reverted from 19.0, but fixed for 19.1 due
|
||||
# to the number of fixes required to make that commit work
|
||||
8d8f80af3a17354508f2ec9d6559c915d5be351d
|
||||
0c0c69729b6d72a5297122856c8fe48510e90764
|
||||
0881e90c09965818b02e359474a6f7446b41d647
|
||||
b031c643491a92a5574c7a4bd659df33f2d89bb6
|
||||
|
||||
# These were manually rebased by Jason, thanks!
|
||||
8ab95b849e66f3221d80a67eef2ec6e3730901a8
|
||||
5c30fffeec1732c21d600c036f95f8cdb1bb5487
|
@@ -1,81 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Script for generating a list of candidates [referenced by a Fixes tag] for
|
||||
# cherry-picking to a stable branch
|
||||
#
|
||||
# Usage examples:
|
||||
#
|
||||
# $ bin/get-fixes-pick-list.sh
|
||||
# $ bin/get-fixes-pick-list.sh > picklist
|
||||
# $ bin/get-fixes-pick-list.sh | tee picklist
|
||||
|
||||
# Use the last branchpoint as our limit for the search
|
||||
latest_branchpoint=`git merge-base origin/master HEAD`
|
||||
|
||||
# List all the commits between day 1 and the branch point...
|
||||
git log --reverse --pretty=%H $latest_branchpoint > already_landed
|
||||
|
||||
# ... and the ones cherry-picked.
|
||||
git log --reverse --pretty=medium --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
|
||||
grep "cherry picked from commit" |\
|
||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
||||
|
||||
# Grep for commits with Fixes tag
|
||||
git log --reverse --pretty=%H -i --grep="fixes:" $latest_branchpoint..origin/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list ...
|
||||
if [ -f bin/.cherry-ignore ] ; then
|
||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
# Skip if it has been already cherry-picked.
|
||||
if grep -q ^$sha already_picked ; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Place every "fixes:" tag on its own line and join with the next word
|
||||
# on its line or a later one.
|
||||
fixes=`git show --pretty=medium -s $sha | tr -d "\n" | sed -e 's/fixes:[[:space:]]*/\nfixes:/Ig' | grep "fixes:" | sed -e 's/\(fixes:[a-zA-Z0-9]*\).*$/\1/'`
|
||||
|
||||
# For each one try to extract the tag
|
||||
fixes_count=`echo "$fixes" | wc -l`
|
||||
warn=`(test $fixes_count -gt 1 && echo $fixes_count) || echo 0`
|
||||
while [ $fixes_count -gt 0 ] ; do
|
||||
# Treat only the current line
|
||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
||||
fixes_count=$(($fixes_count-1))
|
||||
|
||||
# Bail out if we cannot find suitable id.
|
||||
# Any specific validation the $id is valid and not some junk, is
|
||||
# implied with the follow up code
|
||||
if [ "x$id" = x ] ; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Check if the offending commit is in branch.
|
||||
|
||||
# Be that cherry-picked ...
|
||||
# ... or landed before the branchpoint.
|
||||
if grep -q ^$id already_picked ||
|
||||
grep -q ^$id already_landed ; then
|
||||
|
||||
printf "Commit \"%s\" fixes %s\n" \
|
||||
"`git log -n1 --pretty=oneline $sha`" \
|
||||
"$id"
|
||||
warn=$(($warn-1))
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
if [ $warn -gt 0 ] ; then
|
||||
printf "WARNING: Commit \"%s\" has more than one Fixes tag\n" \
|
||||
"`git log -n1 --pretty=oneline $sha`"
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
rm -f already_picked
|
||||
rm -f already_landed
|
@@ -7,21 +7,107 @@
|
||||
# $ bin/get-pick-list.sh
|
||||
# $ bin/get-pick-list.sh > picklist
|
||||
# $ bin/get-pick-list.sh | tee picklist
|
||||
#
|
||||
# The output is as follows:
|
||||
# [nomination_type] commit_sha commit summary
|
||||
|
||||
is_stable_nomination()
|
||||
{
|
||||
git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-stable"
|
||||
}
|
||||
|
||||
is_typod_nomination()
|
||||
{
|
||||
git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-dev"
|
||||
}
|
||||
|
||||
fixes=
|
||||
|
||||
# Helper to handle various mistypos of the fixes tag.
|
||||
# The tag string itself is passed as argument and normalised within.
|
||||
#
|
||||
# Resulting string in the global variable "fixes" and contains entries
|
||||
# in the form "fixes:$sha"
|
||||
is_sha_nomination()
|
||||
{
|
||||
fixes=`git show --pretty=medium -s $1 | tr -d "\n" | \
|
||||
sed -e 's/'"$2"'/\nfixes:/Ig' | \
|
||||
grep -Eo 'fixes:[a-f0-9]{8,40}'`
|
||||
|
||||
fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
|
||||
if test $fixes_count -eq 0; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Throw a warning for each invalid sha
|
||||
while test $fixes_count -gt 0; do
|
||||
# Treat only the current line
|
||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
||||
fixes_count=$(($fixes_count-1))
|
||||
if ! git show $id >/dev/null 2>&1; then
|
||||
echo WARNING: Commit $1 lists invalid sha $id
|
||||
fi
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Checks if at least one of offending commits, listed in the global
|
||||
# "fixes", is in branch.
|
||||
sha_in_range()
|
||||
{
|
||||
fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
|
||||
while test $fixes_count -gt 0; do
|
||||
# Treat only the current line
|
||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
||||
fixes_count=$(($fixes_count-1))
|
||||
|
||||
# Be that cherry-picked ...
|
||||
# ... or landed before the branchpoint.
|
||||
if grep -q ^$id already_picked ||
|
||||
grep -q ^$id already_landed ; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
is_fixes_nomination()
|
||||
{
|
||||
is_sha_nomination "$1" "fixes:[[:space:]]*"
|
||||
if test $? -eq 0; then
|
||||
return 0
|
||||
fi
|
||||
is_sha_nomination "$1" "fixes[[:space:]]\+"
|
||||
}
|
||||
|
||||
is_brokenby_nomination()
|
||||
{
|
||||
is_sha_nomination "$1" "broken by"
|
||||
}
|
||||
|
||||
is_revert_nomination()
|
||||
{
|
||||
is_sha_nomination "$1" "This reverts commit "
|
||||
}
|
||||
|
||||
# Use the last branchpoint as our limit for the search
|
||||
latest_branchpoint=`git merge-base origin/master HEAD`
|
||||
|
||||
# Grep for commits with "cherry picked from commit" in the commit message.
|
||||
# List all the commits between day 1 and the branch point...
|
||||
git log --reverse --pretty=%H $latest_branchpoint > already_landed
|
||||
|
||||
# ... and the ones cherry-picked.
|
||||
git log --reverse --pretty=medium --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
|
||||
grep "cherry picked from commit" |\
|
||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
||||
|
||||
# Grep for commits that were marked as a candidate for the stable tree.
|
||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable' $latest_branchpoint..origin/master |\
|
||||
# Grep for potential candidates
|
||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable\|^CC:.*mesa-dev\|\<fixes\>\|\<broken by\>\|This reverts commit' $latest_branchpoint..origin/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list.
|
||||
if [ -f bin/.cherry-ignore ] ; then
|
||||
if test -f bin/.cherry-ignore; then
|
||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
||||
continue
|
||||
fi
|
||||
@@ -32,7 +118,33 @@ do
|
||||
continue
|
||||
fi
|
||||
|
||||
git log -n1 --pretty=oneline $sha | cat
|
||||
if is_fixes_nomination "$sha"; then
|
||||
tag=fixes
|
||||
elif is_brokenby_nomination "$sha"; then
|
||||
tag=brokenby
|
||||
elif is_revert_nomination "$sha"; then
|
||||
tag=revert
|
||||
elif is_stable_nomination "$sha"; then
|
||||
tag=stable
|
||||
elif is_typod_nomination "$sha"; then
|
||||
tag=typod
|
||||
else
|
||||
continue
|
||||
fi
|
||||
|
||||
case "$tag" in
|
||||
fixes | brokenby | revert )
|
||||
if ! sha_in_range; then
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
* )
|
||||
;;
|
||||
esac
|
||||
|
||||
printf "[ %8s ] " "$tag"
|
||||
git --no-pager show --no-patch --oneline $sha
|
||||
done
|
||||
|
||||
rm -f already_picked
|
||||
rm -f already_landed
|
||||
|
@@ -1,42 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Script for generating a list of candidates which have typos in the nomination line
|
||||
#
|
||||
# Usage examples:
|
||||
#
|
||||
# $ bin/get-typod-pick-list.sh
|
||||
# $ bin/get-typod-pick-list.sh > picklist
|
||||
# $ bin/get-typod-pick-list.sh | tee picklist
|
||||
|
||||
# NB:
|
||||
# This script intentionally _never_ checks for specific version tag
|
||||
# Should we consider folding it with the original get-pick-list.sh
|
||||
|
||||
# Use the last branchpoint as our limit for the search
|
||||
latest_branchpoint=`git merge-base origin/master HEAD`
|
||||
|
||||
# Grep for commits with "cherry picked from commit" in the commit message.
|
||||
git log --reverse --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
|
||||
grep "cherry picked from commit" |\
|
||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
||||
|
||||
# Grep for commits that were marked as a candidate for the stable tree.
|
||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-dev' $latest_branchpoint..origin/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list.
|
||||
if [ -f bin/.cherry-ignore ] ; then
|
||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check to see if it has already been picked over.
|
||||
if grep -q ^$sha already_picked ; then
|
||||
continue
|
||||
fi
|
||||
|
||||
git log -n1 --pretty=oneline $sha | cat
|
||||
done
|
||||
|
||||
rm -f already_picked
|
88
bin/meson-cmd-extract.py
Executable file
88
bin/meson-cmd-extract.py
Executable file
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright © 2019 Intel Corporation
|
||||
|
||||
# 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.
|
||||
|
||||
"""This script reads a meson build directory and gives back the command line it
|
||||
was configured with.
|
||||
|
||||
This only works for meson 0.49.0 and newer.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import ast
|
||||
import configparser
|
||||
import pathlib
|
||||
import sys
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
"""Parse arguments."""
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
'build_dir',
|
||||
help='Path the meson build directory')
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
|
||||
def load_config(path: pathlib.Path) -> configparser.ConfigParser:
|
||||
"""Load config file."""
|
||||
conf = configparser.ConfigParser()
|
||||
with path.open() as f:
|
||||
conf.read_file(f)
|
||||
return conf
|
||||
|
||||
|
||||
def build_cmd(conf: configparser.ConfigParser) -> str:
|
||||
"""Rebuild the command line."""
|
||||
args = []
|
||||
for k, v in conf['options'].items():
|
||||
if ' ' in v:
|
||||
args.append(f'-D{k}="{v}"')
|
||||
else:
|
||||
args.append(f'-D{k}={v}')
|
||||
|
||||
cf = conf['properties'].get('cross_file')
|
||||
if cf:
|
||||
args.append('--cross-file={}'.format(cf))
|
||||
nf = conf['properties'].get('native_file')
|
||||
if nf:
|
||||
# this will be in the form "['str', 'str']", so use ast.literal_eval to
|
||||
# convert it to a list of strings.
|
||||
nf = ast.literal_eval(nf)
|
||||
args.extend(['--native-file={}'.format(f) for f in nf])
|
||||
return ' '.join(args)
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
path = pathlib.Path(args.build_dir, 'meson-private', 'cmd_line.txt')
|
||||
if not path.exists():
|
||||
print('Cannot find the necessary file to rebuild command line. '
|
||||
'Is your meson version >= 0.49.0?', file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
conf = load_config(path)
|
||||
cmd = build_cmd(conf)
|
||||
print(cmd)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
77
configure.ac
77
configure.ac
@@ -52,6 +52,19 @@ mingw*)
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_ARG_ENABLE(autotools,
|
||||
[AS_HELP_STRING([--enable-autotools],
|
||||
[Enable the use of this autotools based build configuration])],
|
||||
[enable_autotools=$enableval], [enable_autotools=no])
|
||||
|
||||
if test "x$enable_autotools" != "xyes" ; then
|
||||
AC_MSG_ERROR([the autotools build system has been deprecated in favour of
|
||||
meson and will be removed eventually. For instructions on how to use meson
|
||||
see https://www.mesa3d.org/meson.html.
|
||||
If you still want to use the autotools build, then add --enable-autotools
|
||||
to the configure command line.])
|
||||
fi
|
||||
|
||||
# Support silent build rules, requires at least automake-1.11. Disable
|
||||
# by either passing --disable-silent-rules to configure or passing V=1
|
||||
# to make
|
||||
@@ -74,7 +87,7 @@ AC_SUBST([OPENCL_VERSION])
|
||||
# in the first entry.
|
||||
LIBDRM_REQUIRED=2.4.75
|
||||
LIBDRM_RADEON_REQUIRED=2.4.71
|
||||
LIBDRM_AMDGPU_REQUIRED=2.4.95
|
||||
LIBDRM_AMDGPU_REQUIRED=2.4.97
|
||||
LIBDRM_INTEL_REQUIRED=2.4.75
|
||||
LIBDRM_NVVIEUX_REQUIRED=2.4.66
|
||||
LIBDRM_NOUVEAU_REQUIRED=2.4.66
|
||||
@@ -107,9 +120,9 @@ dnl LLVM versions
|
||||
LLVM_REQUIRED_GALLIUM=3.3.0
|
||||
LLVM_REQUIRED_OPENCL=3.9.0
|
||||
LLVM_REQUIRED_R600=3.9.0
|
||||
LLVM_REQUIRED_RADEONSI=6.0.0
|
||||
LLVM_REQUIRED_RADV=6.0.0
|
||||
LLVM_REQUIRED_SWR=6.0.0
|
||||
LLVM_REQUIRED_RADEONSI=7.0.0
|
||||
LLVM_REQUIRED_RADV=7.0.0
|
||||
LLVM_REQUIRED_SWR=7.0.0
|
||||
|
||||
dnl Check for progs
|
||||
AC_PROG_CPP
|
||||
@@ -1395,7 +1408,7 @@ GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
|
||||
AC_ARG_WITH([gallium-drivers],
|
||||
[AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
|
||||
[comma delimited Gallium drivers list, e.g.
|
||||
"i915,nouveau,r300,r600,radeonsi,freedreno,pl111,svga,swrast,swr,tegra,v3d,vc4,virgl,etnaviv,imx"
|
||||
"i915,nouveau,r300,r600,radeonsi,freedreno,kmsro,svga,swrast,swr,tegra,v3d,vc4,virgl,etnaviv"
|
||||
@<:@default=r300,r600,svga,swrast@:>@])],
|
||||
[with_gallium_drivers="$withval"],
|
||||
[with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
|
||||
@@ -1716,6 +1729,8 @@ xdri)
|
||||
if test x"$enable_dri" = xyes; then
|
||||
dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
|
||||
fi
|
||||
|
||||
dri_modules="$dri_modules xxf86vm"
|
||||
fi
|
||||
if test x"$dri_platform" = xapple ; then
|
||||
DEFINES="$DEFINES -DGLX_USE_APPLEGL"
|
||||
@@ -1725,12 +1740,6 @@ xdri)
|
||||
fi
|
||||
fi
|
||||
|
||||
# add xf86vidmode if available
|
||||
PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
|
||||
if test "$HAVE_XF86VIDMODE" = yes ; then
|
||||
dri_modules="$dri_modules xxf86vm"
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES([DRIGL], [$dri_modules])
|
||||
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
|
||||
X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
|
||||
@@ -1742,10 +1751,6 @@ xdri)
|
||||
;;
|
||||
esac
|
||||
|
||||
# This is outside the case (above) so that it is invoked even for non-GLX
|
||||
# builds.
|
||||
AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
|
||||
|
||||
GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||
GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||
GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||
@@ -1762,8 +1767,6 @@ AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
|
||||
AC_SUBST([GLESv2_LIB_DEPS])
|
||||
AC_SUBST([GLESv2_PC_LIB_PRIV])
|
||||
|
||||
AC_SUBST([HAVE_XF86VIDMODE])
|
||||
|
||||
dnl
|
||||
dnl More GLX setup
|
||||
dnl
|
||||
@@ -1874,6 +1877,7 @@ for plat in $platforms; do
|
||||
;;
|
||||
|
||||
drm)
|
||||
test "x$enable_egl" = "xyes" &&
|
||||
test "x$enable_gbm" = "xno" &&
|
||||
AC_MSG_ERROR([EGL platform drm needs gbm])
|
||||
DEFINES="$DEFINES -DHAVE_DRM_PLATFORM"
|
||||
@@ -1918,7 +1922,7 @@ if test x"$enable_dri3" = xyes; then
|
||||
dri3_modifier_modules="xcb-dri3 >= $XCBDRI3_MODIFIERS_REQUIRED xcb-present >= $XCBPRESENT_MODIFIERS_REQUIRED"
|
||||
PKG_CHECK_MODULES([XCB_DRI3_MODIFIERS], [$dri3_modifier_modules], [have_dri3_modifiers=yes], [have_dri3_modifiers=no])
|
||||
|
||||
if test "x$have_dri3_modifiers" == xyes; then
|
||||
if test "x$have_dri3_modifiers" = xyes; then
|
||||
DEFINES="$DEFINES -DHAVE_DRI3_MODIFIERS"
|
||||
fi
|
||||
fi
|
||||
@@ -2737,9 +2741,6 @@ if test -n "$with_gallium_drivers"; then
|
||||
PKG_CHECK_MODULES([ETNAVIV], [libdrm >= $LIBDRM_ETNAVIV_REQUIRED libdrm_etnaviv >= $LIBDRM_ETNAVIV_REQUIRED])
|
||||
require_libdrm "etnaviv"
|
||||
;;
|
||||
ximx)
|
||||
HAVE_GALLIUM_IMX=yes
|
||||
;;
|
||||
xtegra)
|
||||
HAVE_GALLIUM_TEGRA=yes
|
||||
require_libdrm "tegra"
|
||||
@@ -2826,8 +2827,8 @@ if test -n "$with_gallium_drivers"; then
|
||||
DEFINES="$DEFINES -DUSE_V3D_SIMULATOR"],
|
||||
[USE_V3D_SIMULATOR=no])
|
||||
;;
|
||||
xpl111)
|
||||
HAVE_GALLIUM_PL111=yes
|
||||
xkmsro)
|
||||
HAVE_GALLIUM_KMSRO=yes
|
||||
;;
|
||||
xvirgl)
|
||||
HAVE_GALLIUM_VIRGL=yes
|
||||
@@ -2844,8 +2845,8 @@ if test -n "$with_gallium_drivers"; then
|
||||
fi
|
||||
|
||||
# XXX: Keep in sync with LLVM_REQUIRED_SWR
|
||||
AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x6.0.0 -a \
|
||||
"x$LLVM_VERSION" != x6.0.1)
|
||||
AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x7.0.0 -a \
|
||||
"x$LLVM_VERSION" != x7.0.1)
|
||||
|
||||
if test "x$enable_llvm" = "xyes" -a "$with_gallium_drivers"; then
|
||||
llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium"
|
||||
@@ -2860,12 +2861,8 @@ AM_CONDITIONAL(HAVE_SWR_BUILTIN, test "x$HAVE_SWR_BUILTIN" = xyes)
|
||||
|
||||
dnl We need to validate some needed dependencies for renderonly drivers.
|
||||
|
||||
if test "x$HAVE_GALLIUM_ETNAVIV" != xyes -a "x$HAVE_GALLIUM_IMX" = xyes ; then
|
||||
AC_MSG_ERROR([Building with imx requires etnaviv])
|
||||
fi
|
||||
|
||||
if test "x$HAVE_GALLIUM_VC4" != xyes -a "x$HAVE_GALLIUM_PL111" = xyes ; then
|
||||
AC_MSG_ERROR([Building with pl111 requires vc4])
|
||||
if test "x$HAVE_GALLIUM_VC4" != xyes -a "x$HAVE_GALLIUM_KMSRO" = xyes ; then
|
||||
AC_MSG_ERROR([Building with kmsro requires vc4])
|
||||
fi
|
||||
|
||||
if test "x$HAVE_GALLIUM_NOUVEAU" != xyes -a "x$HAVE_GALLIUM_TEGRA" = xyes; then
|
||||
@@ -2913,6 +2910,7 @@ if test "x$enable_llvm" = xyes; then
|
||||
LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
|
||||
LLVM_CFLAGS=$LLVM_CPPFLAGS # CPPFLAGS seem to be sufficient
|
||||
LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"`
|
||||
LLVM_CXXFLAGS="$CXX11_CXXFLAGS $LLVM_CXXFLAGS"
|
||||
|
||||
dnl Set LLVM_LIBS - This is done after the driver configuration so
|
||||
dnl that drivers can add additional components to LLVM_COMPONENTS.
|
||||
@@ -2947,11 +2945,11 @@ if test "x$enable_llvm" = xyes; then
|
||||
fi
|
||||
|
||||
dnl The gallium-xlib GLX and gallium OSMesa targets directly embed the
|
||||
dnl swr/llvmpipe driver into the final binary. Adding LLVM_LIBS results in
|
||||
dnl swr/llvmpipe driver into the final binary. Adding LLVM_LIBS results in
|
||||
dnl the LLVM library propagated in the Libs.private of the respective .pc
|
||||
dnl file which ensures complete dependency information when statically
|
||||
dnl linking.
|
||||
if test "x$enable_glx" == xgallium-xlib; then
|
||||
if test "x$enable_glx" = xgallium-xlib; then
|
||||
GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $LLVM_LIBS"
|
||||
fi
|
||||
if test "x$enable_gallium_osmesa" = xyes; then
|
||||
@@ -2961,14 +2959,13 @@ fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_PL111, test "x$HAVE_GALLIUM_PL111" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_KMSRO, test "x$HAVE_GALLIUM_KMSRO" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_ETNAVIV, test "x$HAVE_GALLIUM_ETNAVIV" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_IMX, test "x$HAVE_GALLIUM_IMX" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_TEGRA, test "x$HAVE_GALLIUM_TEGRA" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
|
||||
@@ -3007,6 +3004,7 @@ AM_CONDITIONAL(HAVE_AMD_DRIVERS, test "x$HAVE_GALLIUM_RADEONSI" = xyes -o \
|
||||
AM_CONDITIONAL(HAVE_BROADCOM_DRIVERS, test "x$HAVE_GALLIUM_VC4" = xyes -o \
|
||||
"x$HAVE_GALLIUM_V3D" = xyes)
|
||||
|
||||
AM_CONDITIONAL(HAVE_FREEDRENO_DRIVERS, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
|
||||
AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes -o \
|
||||
"x$HAVE_I965_DRI" = xyes)
|
||||
|
||||
@@ -3053,7 +3051,7 @@ AC_SUBST([XVMC_MAJOR], 1)
|
||||
AC_SUBST([XVMC_MINOR], 0)
|
||||
|
||||
AC_SUBST([XA_MAJOR], 2)
|
||||
AC_SUBST([XA_MINOR], 4)
|
||||
AC_SUBST([XA_MINOR], 5)
|
||||
AC_SUBST([XA_PATCH], 0)
|
||||
AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_PATCH")
|
||||
|
||||
@@ -3099,6 +3097,7 @@ AC_CONFIG_FILES([Makefile
|
||||
src/amd/vulkan/Makefile
|
||||
src/broadcom/Makefile
|
||||
src/compiler/Makefile
|
||||
src/freedreno/Makefile
|
||||
src/egl/Makefile
|
||||
src/egl/main/egl.pc
|
||||
src/egl/wayland/wayland-drm/Makefile
|
||||
@@ -3109,7 +3108,7 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/drivers/i915/Makefile
|
||||
src/gallium/drivers/llvmpipe/Makefile
|
||||
src/gallium/drivers/nouveau/Makefile
|
||||
src/gallium/drivers/pl111/Makefile
|
||||
src/gallium/drivers/kmsro/Makefile
|
||||
src/gallium/drivers/r300/Makefile
|
||||
src/gallium/drivers/r600/Makefile
|
||||
src/gallium/drivers/radeonsi/Makefile
|
||||
@@ -3118,7 +3117,6 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/drivers/swr/Makefile
|
||||
src/gallium/drivers/tegra/Makefile
|
||||
src/gallium/drivers/etnaviv/Makefile
|
||||
src/gallium/drivers/imx/Makefile
|
||||
src/gallium/drivers/v3d/Makefile
|
||||
src/gallium/drivers/vc4/Makefile
|
||||
src/gallium/drivers/virgl/Makefile
|
||||
@@ -3153,11 +3151,10 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/tests/trivial/Makefile
|
||||
src/gallium/tests/unit/Makefile
|
||||
src/gallium/winsys/etnaviv/drm/Makefile
|
||||
src/gallium/winsys/imx/drm/Makefile
|
||||
src/gallium/winsys/freedreno/drm/Makefile
|
||||
src/gallium/winsys/i915/drm/Makefile
|
||||
src/gallium/winsys/nouveau/drm/Makefile
|
||||
src/gallium/winsys/pl111/drm/Makefile
|
||||
src/gallium/winsys/kmsro/drm/Makefile
|
||||
src/gallium/winsys/radeon/drm/Makefile
|
||||
src/gallium/winsys/amdgpu/drm/Makefile
|
||||
src/gallium/winsys/svga/drm/Makefile
|
||||
|
@@ -26,6 +26,12 @@
|
||||
</ul>
|
||||
</ol>
|
||||
|
||||
<h2>ATTENTION:</h2>
|
||||
<p>
|
||||
The autotools build is being replaced by the <a href="meson.html">meson</a>
|
||||
build system. If you haven't yet now is a good time to try using meson and
|
||||
report any issues you run into.
|
||||
</p>
|
||||
|
||||
<h2 id="basic">1. Basic Usage</h2>
|
||||
|
||||
|
@@ -319,7 +319,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_EXT_memory_object DONE (radeonsi)
|
||||
GL_EXT_memory_object_fd DONE (radeonsi)
|
||||
GL_EXT_memory_object_win32 not started
|
||||
GL_EXT_render_snorm DONE (i965)
|
||||
GL_EXT_render_snorm DONE (i965, radeonsi)
|
||||
GL_EXT_semaphore DONE (radeonsi)
|
||||
GL_EXT_semaphore_fd DONE (radeonsi)
|
||||
GL_EXT_semaphore_win32 not started
|
||||
@@ -338,7 +338,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_OES_texture_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_half_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_half_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_view DONE (i965/gen8+)
|
||||
GL_OES_texture_view DONE (freedreno, i965/gen8+, r600, radeonsi, nv50, nvc0, softpipe, llvmpipe, swr)
|
||||
GL_OES_viewport_array DONE (i965, nvc0, radeonsi)
|
||||
GLX_ARB_context_flush_control not started
|
||||
GLX_ARB_robustness_application_isolation not started
|
||||
|
@@ -15,6 +15,53 @@
|
||||
<div class="content">
|
||||
|
||||
<h1>News</h1>
|
||||
<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.
|
||||
<br>
|
||||
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.
|
||||
|
@@ -22,6 +22,7 @@
|
||||
<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="#autoconf">Building with autoconf (Linux/Unix/X11)</a>
|
||||
<li><a href="#scons">Building with SCons (Windows/Linux)</a>
|
||||
<li><a href="#android">Building with AOSP (Android)</a>
|
||||
@@ -39,9 +40,10 @@ Build system.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>Autoconf is required when building on *nix platforms.
|
||||
<li><a href="https://mesonbuild.com">meson</a> is recommended when building on *nix platforms.
|
||||
<li>Autoconf is another option when building on *nix platforms.
|
||||
<li><a href="http://www.scons.org/">SCons</a> is required for building on
|
||||
Windows and optional for Linux (it's an alternative to autoconf/automake.)
|
||||
Windows and optional for Linux (it's an alternative to autoconf/automake or meson.)
|
||||
</li>
|
||||
<li>Android Build system when building as native Android component. Autoconf
|
||||
is used when when building ARC.
|
||||
@@ -72,7 +74,9 @@ you think you've spotted a bug let developers know by filing a
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.python.org/">Python</a> - Python is required.
|
||||
Version 2.7 or later should work.
|
||||
When building with scons 2.7 is required.
|
||||
When building with meson 3.5 or newer is required.
|
||||
When building with autotools 2.7, or 3.5 or later are 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.
|
||||
@@ -111,11 +115,31 @@ the packaging tool used by your distro.
|
||||
... # others
|
||||
</pre>
|
||||
|
||||
|
||||
<h1 id="autoconf">2. Building with autoconf (Linux/Unix/X11)</h1>
|
||||
<h1 id="meson">2. Building with meson</h1>
|
||||
|
||||
<p>
|
||||
The primary method to build Mesa on Unix systems is with autoconf.
|
||||
Meson is the latest build system in mesa, it is currently able to build for
|
||||
*nix systems like Linux and BSD, and will be able to build for windows as well.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The general approach is:
|
||||
</p>
|
||||
<pre>
|
||||
meson builddir/
|
||||
ninja -C builddir/
|
||||
sudo ninja -C builddir/ install
|
||||
</pre>
|
||||
<p>
|
||||
Please read the <a href="meson.html">detailed meson instructions</a>
|
||||
for more information
|
||||
</p>
|
||||
|
||||
<h1 id="autoconf">3. Building with autoconf (Linux/Unix/X11)</h1>
|
||||
|
||||
<p>
|
||||
Although meson is recommended, another supported way to build on *nix systems
|
||||
is with autoconf.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -133,7 +157,7 @@ for more details.
|
||||
|
||||
|
||||
|
||||
<h1 id="scons">3. Building with SCons (Windows/Linux)</h1>
|
||||
<h1 id="scons">4. Building with SCons (Windows/Linux)</h1>
|
||||
|
||||
<p>
|
||||
To build Mesa with SCons on Linux or Windows do
|
||||
@@ -169,7 +193,7 @@ Additional information is available in <a href="README.WIN32">README.WIN32</a>.
|
||||
|
||||
|
||||
|
||||
<h1 id="android">4. Building with AOSP (Android)</h1>
|
||||
<h1 id="android">5. Building with AOSP (Android)</h1>
|
||||
|
||||
<p>
|
||||
Currently one can build Mesa for Android as part of the AOSP project, yet
|
||||
@@ -188,7 +212,7 @@ Android-x86 and/or other resources.
|
||||
</p>
|
||||
|
||||
|
||||
<h1 id="libs">5. Library Information</h1>
|
||||
<h1 id="libs">6. Library Information</h1>
|
||||
|
||||
<p>
|
||||
When compilation has finished, look in the top-level <code>lib/</code>
|
||||
@@ -226,7 +250,7 @@ versions of libGL and device drivers.
|
||||
</p>
|
||||
|
||||
|
||||
<h1 id="pkg-config">6. Building OpenGL programs with pkg-config</h1>
|
||||
<h1 id="pkg-config">7. Building OpenGL programs with pkg-config</h1>
|
||||
|
||||
<p>
|
||||
Running <code>make install</code> will install package configuration files
|
||||
|
@@ -29,6 +29,9 @@ pre {
|
||||
/*font-family: monospace;*/
|
||||
font-size: 10pt;
|
||||
/*color: black;*/
|
||||
background-color: #eee;
|
||||
margin-left: 2em;
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
iframe {
|
||||
|
163
docs/meson.html
163
docs/meson.html
@@ -16,6 +16,11 @@
|
||||
|
||||
<h1>Compilation and Installation using Meson</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="#basic">Basic Usage</a></li>
|
||||
<li><a href="#cross-compilation">Cross-compilation and 32-bit builds</a></li>
|
||||
</ul>
|
||||
|
||||
<h2 id="basic">1. Basic Usage</h2>
|
||||
|
||||
<p><strong>The Meson build system is generally considered stable and ready
|
||||
@@ -48,9 +53,13 @@ To see a description of your options you can run <code>meson configure</code>
|
||||
along with a build directory to view the selected options for. This will show
|
||||
your meson global arguments and project arguments, along with their defaults
|
||||
and your local settings.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Meson does not currently support listing options before configure a build
|
||||
directory, but this feature is being discussed upstream.
|
||||
For now, the only way to see what options exist is to look at the
|
||||
<code>meson_options.txt</code> file at the root of the project.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
@@ -105,14 +114,14 @@ to invoke non-default targets for ninja to update them:
|
||||
<dl>
|
||||
<dt><code>Environment Variables</code></dt>
|
||||
<dd><p>Meson supports the standard CC and CXX environment variables for
|
||||
changing the default compiler, and CFLAGS, CXXFLAGS, and LDFLAGS for setting
|
||||
options to the compiler and linker during the initial configuration.
|
||||
changing the default compiler. Meson does support CFLAGS, CXXFLAGS, etc. But
|
||||
their use is discouraged because of the many caveats in using them. Instead it
|
||||
is recomended to use <code>-D${lang}_args</code> and
|
||||
<code>-D${lang}_link_args</code> instead. Among the benefits of these options
|
||||
is that they are guaranteed to persist across rebuilds and reconfigurations.
|
||||
|
||||
These arguments are consumed and stored by meson when it is initialized. To
|
||||
change these flags after the build is initialized (or when doing a first
|
||||
initialization), consider using <code>-D${lang}_args</code> and
|
||||
<code>-D${lang}_link_args</code> instead. Meson will never change compiler in a
|
||||
configured build directory.
|
||||
Meson does not allow changing compiler in a configured builddir, you will need
|
||||
to create a new build dir for a different compiler.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
@@ -135,11 +144,56 @@ the popular compilers, a complete list is available
|
||||
|
||||
<dt><code>LLVM</code></dt>
|
||||
<dd><p>Meson includes upstream logic to wrap llvm-config using its standard
|
||||
dependency interface. It will search <code>$PATH</code> (or <code>%PATH%</code> on windows) for
|
||||
llvm-config (and llvm-config$version and llvm-config-$version), so using an
|
||||
LLVM from a non-standard path is as easy as
|
||||
<code>PATH=/path/with/llvm-config:$PATH meson build</code>.
|
||||
dependency interface.
|
||||
</p></dd>
|
||||
|
||||
<dd><p>
|
||||
As of meson 0.49.0 meson also has the concept of a
|
||||
<a href="https://mesonbuild.com/Native-environments.html">"native file"</a>,
|
||||
these files provide information about the native build environment (as opposed
|
||||
to a cross build environment). They are ini formatted and can override where to
|
||||
find llvm-config:
|
||||
|
||||
custom-llvm.ini
|
||||
<pre>
|
||||
[binaries]
|
||||
llvm-config = '/usr/local/bin/llvm/llvm-config'
|
||||
</pre>
|
||||
|
||||
Then configure meson:
|
||||
|
||||
<pre>
|
||||
meson builddir/ --native-file custom-llvm.ini
|
||||
</pre>
|
||||
</p></dd>
|
||||
|
||||
<dd><p>
|
||||
For selecting llvm-config for cross compiling a
|
||||
<a href="https://mesonbuild.com/Cross-compilation.html#defining-the-environment">"cross file"</a>
|
||||
should be used. It uses the same format as the native file above:
|
||||
|
||||
cross-llvm.ini
|
||||
<pre>
|
||||
[binaries]
|
||||
...
|
||||
llvm-config = '/usr/lib/llvm-config-32'
|
||||
</pre>
|
||||
|
||||
Then configure meson:
|
||||
|
||||
<pre>
|
||||
meson builddir/ --cross-file cross-llvm.ini
|
||||
</pre>
|
||||
|
||||
See the <a href="#cross-compilation">Cross Compilation</a> section for more information.
|
||||
</dd></p>
|
||||
|
||||
<dd><p>
|
||||
For older versions of meson <code>$PATH</code> (or <code>%PATH%</code> on
|
||||
windows) will be searched for llvm-config (and llvm-config$version and
|
||||
llvm-config-$version), you can override this environment variable to control
|
||||
the search: <code>PATH=/path/with/llvm-config:$PATH meson build</code>.
|
||||
</dd></p>
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
@@ -190,6 +244,93 @@ is unrelated to the <code>buildtype</code>; setting the latter to
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h2 id="cross-compilation">2. Cross-compilation and 32-bit builds</h2>
|
||||
|
||||
<p><a href="https://mesonbuild.com/Cross-compilation.html">Meson supports
|
||||
cross-compilation</a> by specifying a number of binary paths and
|
||||
settings in a file and passing this file to <code>meson</code> or
|
||||
<code>meson configure</code> with the <code>--cross-file</code>
|
||||
parameter.</p>
|
||||
|
||||
<p>This file can live at any location, but you can use the bare filename
|
||||
(without the folder path) if you put it in $XDG_DATA_HOME/meson/cross or
|
||||
~/.local/share/meson/cross</p>
|
||||
|
||||
<p>Below are a few example of cross files, but keep in mind that you
|
||||
will likely have to alter them for your system.</p>
|
||||
|
||||
<p>
|
||||
Those running on ArchLinux can use the AUR-maintained packages for some
|
||||
of those, as they'll have the right values for your system:
|
||||
<ul>
|
||||
<li><a href="https://aur.archlinux.org/packages/meson-cross-x86-linux-gnu">meson-cross-x86-linux-gnu</a></li>
|
||||
<li><a href="https://aur.archlinux.org/packages/meson-cross-aarch64-linux-gnu">meson-cross-aarch64-linux-gnu</a></li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
32-bit build on x86 linux:
|
||||
<pre>
|
||||
[binaries]
|
||||
c = '/usr/bin/gcc'
|
||||
cpp = '/usr/bin/g++'
|
||||
ar = '/usr/bin/gcc-ar'
|
||||
strip = '/usr/bin/strip'
|
||||
pkgconfig = '/usr/bin/pkg-config-32'
|
||||
llvm-config = '/usr/bin/llvm-config32'
|
||||
|
||||
[properties]
|
||||
c_args = ['-m32']
|
||||
c_link_args = ['-m32']
|
||||
cpp_args = ['-m32']
|
||||
cpp_link_args = ['-m32']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'x86'
|
||||
cpu = 'i686'
|
||||
endian = 'little'
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
64-bit build on ARM linux:
|
||||
<pre>
|
||||
[binaries]
|
||||
c = '/usr/bin/aarch64-linux-gnu-gcc'
|
||||
cpp = '/usr/bin/aarch64-linux-gnu-g++'
|
||||
ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'
|
||||
strip = '/usr/bin/aarch64-linux-gnu-strip'
|
||||
pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'
|
||||
exe_wrapper = '/usr/bin/qemu-aarch64-static'
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'aarch64'
|
||||
endian = 'little'
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
64-bit build on x86 windows:
|
||||
<pre>
|
||||
[binaries]
|
||||
c = '/usr/bin/x86_64-w64-mingw32-gcc'
|
||||
cpp = '/usr/bin/x86_64-w64-mingw32-g++'
|
||||
ar = '/usr/bin/x86_64-w64-mingw32-ar'
|
||||
strip = '/usr/bin/x86_64-w64-mingw32-strip'
|
||||
pkgconfig = '/usr/bin/x86_64-w64-mingw32-pkg-config'
|
||||
exe_wrapper = 'wine'
|
||||
|
||||
[host_machine]
|
||||
system = 'windows'
|
||||
cpu_family = 'x86_64'
|
||||
cpu = 'i686'
|
||||
endian = 'little'
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -23,6 +23,16 @@ Mesa provides feature/development and stable releases.
|
||||
The table below lists the date and release manager that is expected to do the
|
||||
specific release.
|
||||
<br>
|
||||
Regular updates will ensure that the schedule for the current and the
|
||||
next two feature releases are shown in the table.
|
||||
<br>
|
||||
In order to keep the whole releasing team up to date with the tools
|
||||
used, best practices and other details, the member in charge of the
|
||||
next feature release will be in constant rotation.
|
||||
<br>
|
||||
The way the release schedule works is
|
||||
explained <a href="releasing.html#schedule" target="_parent">here</a>.
|
||||
<br>
|
||||
Take a look <a href="submittingpatches.html#criteria" target="_parent">here</a>
|
||||
if you'd like to nominate a patch in the next stable release.
|
||||
</p>
|
||||
@@ -39,47 +49,129 @@ if you'd like to nominate a patch in the next stable release.
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="3">18.2</td>
|
||||
<td>2018-11-14</td>
|
||||
<td>18.2.5</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-11-28</td>
|
||||
<td>18.2.6</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-12-12</td>
|
||||
<td>18.2.7</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>Last planned 18.2.x release</td>
|
||||
</tr>
|
||||
<td rowspan="4">18.3</td>
|
||||
<td>2018-10-31</td>
|
||||
<td>18.3.0-rc1</td>
|
||||
<td>2019-01-30</td>
|
||||
<td>18.3.3</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td></td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-11-07</td>
|
||||
<td>18.3.0-rc2</td>
|
||||
<td>2019-02-13</td>
|
||||
<td>18.3.4</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td/>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-11-14</td>
|
||||
<td>18.3.0-rc3</td>
|
||||
<td>2019-02-27</td>
|
||||
<td>18.3.5</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td/>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-11-21</td>
|
||||
<td>18.3.0-rc4</td>
|
||||
<td>2019-03-13</td>
|
||||
<td>18.3.6</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>Last planned RC/final release</td>
|
||||
<td>Last planned 18.3.x release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">19.0</td>
|
||||
<td>2019-01-29</td>
|
||||
<td>19.0.0-rc1</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-02-05</td>
|
||||
<td>19.0.0-rc2</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-02-12</td>
|
||||
<td>19.0.0-rc3</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-02-19</td>
|
||||
<td>19.0.0-rc4</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">19.1</td>
|
||||
<td>2019-04-30</td>
|
||||
<td>19.1.0-rc1</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-05-07</td>
|
||||
<td>19.1.0-rc2</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-05-14</td>
|
||||
<td>19.1.0-rc3</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-05-21</td>
|
||||
<td>19.1.0-rc4</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">19.2</td>
|
||||
<td>2019-08-06</td>
|
||||
<td>19.2.0-rc1</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-08-13</td>
|
||||
<td>19.2.0-rc2</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-08-20</td>
|
||||
<td>19.2.0-rc3</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-08-27</td>
|
||||
<td>19.2.0-rc4</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">19.3</td>
|
||||
<td>2019-10-15</td>
|
||||
<td>19.3.0-rc1</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-10-22</td>
|
||||
<td>19.3.0-rc2</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-10-29</td>
|
||||
<td>19.3.0-rc3</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-11-05</td>
|
||||
<td>19.3.0-rc4</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
@@ -21,6 +21,7 @@
|
||||
<li><a href="#overview">Overview</a>
|
||||
<li><a href="#schedule">Release schedule</a>
|
||||
<li><a href="#pickntest">Cherry-pick and test</a>
|
||||
<li><a href="#stagingbranch">Staging branch</a>
|
||||
<li><a href="#branch">Making a branchpoint</a>
|
||||
<li><a href="#prerelease">Pre-release announcement</a>
|
||||
<li><a href="#release">Making a new release</a>
|
||||
@@ -55,9 +56,10 @@ For example:
|
||||
|
||||
<p>
|
||||
Releases should happen on Wednesdays. Delays can occur although those
|
||||
should be keep to a minimum.
|
||||
should be kept to a minimum.
|
||||
<br>
|
||||
See our <a href="release-calendar.html" target="_parent">calendar</a> for the
|
||||
See our <a href="release-calendar.html" target="_parent">calendar</a>
|
||||
for information about how the release schedule is planned, and the
|
||||
date and other details for individual releases.
|
||||
</p>
|
||||
|
||||
@@ -66,6 +68,9 @@ date and other details for individual releases.
|
||||
<li>Available approximately every three months.
|
||||
<li>Initial timeplan available 2-4 weeks before the planned branchpoint (rc1)
|
||||
on the mesa-announce@ mailing list.
|
||||
<li>Typically, the final release will happen after 4
|
||||
candidates. Additional ones may be needed in order to resolve blocking
|
||||
regressions, though.
|
||||
<li>A <a href="#prerelease">pre-release</a> announcement should be available
|
||||
approximately 24 hours before the final (non-rc) release.
|
||||
</ul>
|
||||
@@ -83,6 +88,12 @@ Note: There is one or two releases overlap when changing branches. For example:
|
||||
<br>
|
||||
The final release from the 12.0 series Mesa 12.0.5 will be out around the same
|
||||
time (or shortly after) 13.0.1 is out.
|
||||
<br>
|
||||
This also involves that, as a final release may be delayed due to the
|
||||
need of additional candidates to solve some blocking regression(s),
|
||||
the release manager might have to update
|
||||
the <a href="release-calendar.html" target="_parent">calendar</a> with
|
||||
additional bug fix releases of the current stable branch.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -111,18 +122,21 @@ the autoconf and scons build.
|
||||
<p>Done continuously up-to the <a href="#prerelease">pre-release</a> announcement.</p>
|
||||
|
||||
<p>
|
||||
As an exception, patches can be applied up-to the last ~1h before the actual
|
||||
release. This is made <strong>only</strong> with explicit permission/request,
|
||||
and the patch <strong>must</strong> be very well contained. Thus it cannot
|
||||
affect more than one driver/subsystem.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Currently Ilia Mirkin and AMD devs have requested "permanent" exception.
|
||||
Developers can request, <em>as an exception</em>, patches to be applied up-to
|
||||
the last one hour before the actual release. This is made <strong>only</strong>
|
||||
with explicit permission/request, and the patch <strong>must</strong> be very
|
||||
well contained. Thus it cannot affect more than one driver/subsystem.
|
||||
</p>
|
||||
|
||||
<p>Following developers have requested permanent exception</p>
|
||||
<ul>
|
||||
<li>make distcheck, scons and scons check must pass
|
||||
<li><em>Ilia Mirkin</em>
|
||||
<li><em>AMD team</em>
|
||||
</ul>
|
||||
|
||||
<p>The following must pass:</p>
|
||||
<ul>
|
||||
<li>make distcheck, scons and scons check
|
||||
<li>Testing with different version of system components - LLVM and others is also
|
||||
performed where possible.
|
||||
<li>As a general rule, testing with various combinations of configure
|
||||
@@ -130,9 +144,9 @@ switches, depending on the specific patchset.
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Achieved by combination of local ad-hoc scripts, mingw-w64 cross
|
||||
compilation and AppVeyor plus Travis-CI, the latter as part of their
|
||||
Github integration.
|
||||
These are achieved by combination of <a href="basictesting">local testing</a>,
|
||||
which includes mingw-w64 cross compilation and AppVeyor plus Travis-CI, the
|
||||
latter two as part of their Github integration.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -209,6 +223,25 @@ system and making some every day's use until the release may be a good
|
||||
idea too.
|
||||
</p>
|
||||
|
||||
<h1 id="stagingbranch">Staging branch</h1>
|
||||
|
||||
<p>
|
||||
A live branch, which contains the currently merge/rejected patches is available
|
||||
in the main repository under <code>staging/X.Y</code>. For example:
|
||||
</p>
|
||||
<pre>
|
||||
staging/18.1 - WIP branch for the 18.1 series
|
||||
staging/18.2 - WIP branch for the 18.2 series
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Notes:
|
||||
</p>
|
||||
<ul>
|
||||
<li>People are encouraged to test the staging branch and report regressions.</li>
|
||||
<li>The branch history is not stable and it <strong>will</strong> be rebased,</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h1 id="branch">Making a branchpoint</h1>
|
||||
|
||||
@@ -425,7 +458,7 @@ Ensure the latest code is available - both in your local master and the
|
||||
relevant branch.
|
||||
</p>
|
||||
|
||||
<h3>Perform basic testing</h3>
|
||||
<h3 id="basictesting">Perform basic testing</h3>
|
||||
|
||||
<p>
|
||||
Most of the testing should already be done during the
|
||||
|
@@ -21,6 +21,13 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="relnotes/18.3.2.html">18.3.2 release notes</a>
|
||||
<li><a href="relnotes/18.2.8.html">18.2.8 release notes</a>
|
||||
<li><a href="relnotes/18.2.7.html">18.2.7 release notes</a>
|
||||
<li><a href="relnotes/18.3.1.html">18.3.1 release notes</a>
|
||||
<li><a href="relnotes/18.3.0.html">18.3.0 release notes</a>
|
||||
<li><a href="relnotes/18.2.6.html">18.2.6 release notes</a>
|
||||
<li><a href="relnotes/18.2.5.html">18.2.5 release notes</a>
|
||||
<li><a href="relnotes/18.2.4.html">18.2.4 release notes</a>
|
||||
<li><a href="relnotes/18.2.3.html">18.2.3 release notes</a>
|
||||
<li><a href="relnotes/18.2.2.html">18.2.2 release notes</a>
|
||||
|
172
docs/relnotes/18.2.5.html
Normal file
172
docs/relnotes/18.2.5.html
Normal file
@@ -0,0 +1,172 @@
|
||||
<!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 Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.5 Release Notes / November 15, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.5 is a bug fix release which fixes bugs found since the 18.2.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.5 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
dddc28928b6f4083a0d5120b58c1c8e2dc189ab5c14299c08a386607fdbbdce7 mesa-18.2.5.tar.gz
|
||||
b12c32872832e5353155e1e8026e1f1ab75bba9dc5b178d712045684d26c2b73 mesa-18.2.5.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105731">Bug 105731</a> - linker error "fragment shader input ... has no matching output in the previous stage" when previous stage's output declaration in a separate shader object</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107511">Bug 107511</a> - KHR/khrplatform.h not always installed when needed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107626">Bug 107626</a> - [SNB] The graphical corruption and GPU hang occur sometimes on the piglit test "arb_texture_multisample-large-float-texture" with parameter --fp16</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108082">Bug 108082</a> - warning: unknown warning option '-Wno-format-truncation' [-Wunknown-warning-option]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108560">Bug 108560</a> - Mesa 32 is built without sse</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andre Heider (1):</p>
|
||||
<ul>
|
||||
<li>st/nine: fix stack corruption due to ABI mismatch</li>
|
||||
</ul>
|
||||
|
||||
<p>Andrii Simiklit (1):</p>
|
||||
<ul>
|
||||
<li>i965/batch: don't ignore the 'brw_new_batch' call for a 'new batch'</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (2):</p>
|
||||
<ul>
|
||||
<li>meson: link gallium nine with pthreads</li>
|
||||
<li>meson: fix libatomic tests</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>egl/glvnd: correctly report errors when vendor cannot be found</li>
|
||||
<li>m4: add Werror when checking for compiler flags</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (6):</p>
|
||||
<ul>
|
||||
<li>svga: add missing meson build dependency</li>
|
||||
<li>clover: add missing meson build dependency</li>
|
||||
<li>wsi/wayland: use proper VkResult type</li>
|
||||
<li>wsi/wayland: only finish() a successfully init()ed display</li>
|
||||
<li>configure: install KHR/khrplatform.h when needed</li>
|
||||
<li>meson: install KHR/khrplatform.h when needed</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (1):</p>
|
||||
<ul>
|
||||
<li>virgl/vtest-winsys: Use virgl version of bind flags</li>
|
||||
</ul>
|
||||
|
||||
<p>Jonathan Gray (1):</p>
|
||||
<ul>
|
||||
<li>intel/tools: include stdarg.h in error2aub</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (4):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.2.4</li>
|
||||
<li>cherry-ignore: add explicit 18.3 only nominations</li>
|
||||
<li>cherry-ignore: i965/batch: avoid reverting batch buffer if saved state is an empty</li>
|
||||
<li>Update version to 18.2.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>anv/android: mark gralloc allocated BOs as external</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (3):</p>
|
||||
<ul>
|
||||
<li>ac: fix ac_build_fdiv for f64</li>
|
||||
<li>st/va: fix incorrect use of resource_destroy</li>
|
||||
<li>include: update GL & GLES headers (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (2):</p>
|
||||
<ul>
|
||||
<li>util/ralloc: Switch from DEBUG to NDEBUG</li>
|
||||
<li>util/ralloc: Make sizeof(linear_header) a multiple of 8</li>
|
||||
</ul>
|
||||
|
||||
<p>Olivier Fourdan (1):</p>
|
||||
<ul>
|
||||
<li>wayland/egl: Resize EGL surface on update buffer for swrast</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (1):</p>
|
||||
<ul>
|
||||
<li>glsl_to_tgsi: don't create 64-bit integer MAD/FMA</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (2):</p>
|
||||
<ul>
|
||||
<li>radv: disable conditional rendering for vkCmdCopyQueryPoolResults()</li>
|
||||
<li>radv: only expose VK_SUBGROUP_FEATURE_ARITHMETIC_BIT for VI+</li>
|
||||
</ul>
|
||||
|
||||
<p>Sergii Romantsov (1):</p>
|
||||
<ul>
|
||||
<li>autotools: library-dependency when no sse and 32-bit</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (4):</p>
|
||||
<ul>
|
||||
<li>st/mesa: calculate buffer size correctly for packed uniforms</li>
|
||||
<li>st/glsl_to_nir: fix next_stage gathering</li>
|
||||
<li>nir: add glsl_type_is_integer() helper</li>
|
||||
<li>nir: don't pack varyings ints with floats unless flat</li>
|
||||
</ul>
|
||||
|
||||
<p>Vadym Shovkoplias (1):</p>
|
||||
<ul>
|
||||
<li>glsl/linker: Fix out variables linking during single stage</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (1):</p>
|
||||
<ul>
|
||||
<li>r600/sb: Fix constant logical operand in assert.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
179
docs/relnotes/18.2.6.html
Normal file
179
docs/relnotes/18.2.6.html
Normal file
@@ -0,0 +1,179 @@
|
||||
<!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 Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.6 Release Notes / November 28, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.6 is a bug fix release which fixes bugs found since the 18.2.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.6 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
e0ea1236dbc6c412b02e1b5d7f838072525971a6630246fa82ae4466a6d8a587 mesa-18.2.6.tar.gz
|
||||
9ebafa4f8249df0c718e93b9ca155e3593a1239af303aa2a8b0f2056a7efdc12 mesa-18.2.6.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107626">Bug 107626</a> - [SNB] The graphical corruption and GPU hang occur sometimes on the piglit test "arb_texture_multisample-large-float-texture" with parameter --fp16</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107856">Bug 107856</a> - i965 incorrectly calculates the number of layers for texture views (assert)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108630">Bug 108630</a> - [G965] piglit.spec.!opengl 1_2.tex3d-maxsize spins forever</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108713">Bug 108713</a> - Gallium: use after free with transform feedback</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108829">Bug 108829</a> - [meson] libglapi exports internal API</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andrii Simiklit (1):</p>
|
||||
<ul>
|
||||
<li>i965/batch: avoid reverting batch buffer if saved state is an empty</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (1):</p>
|
||||
<ul>
|
||||
<li>radv: Fix opaque metadata descriptor last layer.</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>scons/svga: remove opt from the list of valid build types</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix calculation of layers array length for isl_view</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (2):</p>
|
||||
<ul>
|
||||
<li>meson: Don't set -Wall</li>
|
||||
<li>meson: Don't force libva to required from auto</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (13):</p>
|
||||
<ul>
|
||||
<li>bin/get-pick-list.sh: simplify git oneline printing</li>
|
||||
<li>bin/get-pick-list.sh: prefix output with "[stable] "</li>
|
||||
<li>bin/get-pick-list.sh: handle "typod" usecase.</li>
|
||||
<li>bin/get-pick-list.sh: handle the fixes tag</li>
|
||||
<li>bin/get-pick-list.sh: tweak the commit sha matching pattern</li>
|
||||
<li>bin/get-pick-list.sh: flesh out is_sha_nomination</li>
|
||||
<li>bin/get-pick-list.sh: handle fixes tag with missing colon</li>
|
||||
<li>bin/get-pick-list.sh: handle unofficial "broken by" tag</li>
|
||||
<li>bin/get-pick-list.sh: use test instead of [ ]</li>
|
||||
<li>bin/get-pick-list.sh: handle reverts prior to the branchpoint</li>
|
||||
<li>travis: drop unneeded x11proto-xf86vidmode-dev</li>
|
||||
<li>glx: make xf86vidmode mandatory for direct rendering</li>
|
||||
<li>travis: adding missing x11-xcb for meson+vulkan</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>vc4: Make sure we make ro scanout resources for create_with_modifiers.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (5):</p>
|
||||
<ul>
|
||||
<li>meson: only run vulkan's meson.build when building vulkan</li>
|
||||
<li>gbm: remove unnecessary meson include</li>
|
||||
<li>meson: fix wayland-less builds</li>
|
||||
<li>egl: add missing glvnd entrypoint for EGL_ANDROID_blob_cache</li>
|
||||
<li>glapi: add missing visibility args</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (1):</p>
|
||||
<ul>
|
||||
<li>mesa/main: remove bogus error for zero-sized images</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (3):</p>
|
||||
<ul>
|
||||
<li>mesa: Reference count shaders that are used by transform feedback objects</li>
|
||||
<li>r600: clean up the GS ring buffers when the context is destroyed</li>
|
||||
<li>glsl: free or reuse memory allocated for TF varying</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>nir/lower_alu_to_scalar: Don't try to lower unpack_32_2x16</li>
|
||||
<li>anv: Put robust buffer access in the pipeline hash</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (6):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: add explicit 18.3 only nominations</li>
|
||||
<li>cherry-ignore: intel/aub_viewer: fix dynamic state printing</li>
|
||||
<li>cherry-ignore: intel/aub_viewer: Print blend states properly</li>
|
||||
<li>cherry-ignore: mesa/main: fix incorrect depth-error</li>
|
||||
<li>docs: add sha256 checksums for 18.2.5</li>
|
||||
<li>Update version to 18.2.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nir/spirv: cast shift operand to u32</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>i965: Add PCI IDs for new Amberlake parts that are Coffeelake based</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>egl/dri: fix error value with unknown drm format</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>winsys/amdgpu: fix a buffer leak in amdgpu_bo_from_handle</li>
|
||||
<li>winsys/amdgpu: fix a device handle leak in amdgpu_winsys_create</li>
|
||||
</ul>
|
||||
|
||||
<p>Rodrigo Vivi (4):</p>
|
||||
<ul>
|
||||
<li>i965: Add a new CFL PCI ID.</li>
|
||||
<li>intel: aubinator: Adding missed platforms to the error message.</li>
|
||||
<li>intel: Introducing Amber Lake platform</li>
|
||||
<li>intel: Introducing Whiskey Lake platform</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
167
docs/relnotes/18.2.7.html
Normal file
167
docs/relnotes/18.2.7.html
Normal file
@@ -0,0 +1,167 @@
|
||||
<!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 Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.7 Release Notes / December 13, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.7 is a bug fix release which fixes bugs found since the 18.2.6 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.7 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
092351cfbcd430ec595fbd3a3d8d253fd62c29074e1740d7198b00289ab400f8 mesa-18.2.7.tar.gz
|
||||
9c7b02560d89d77ca279cd21f36ea9a49e9ffc5611f6fe35099357d744d07ae6 mesa-18.2.7.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106577">Bug 106577</a> - broken rendering with nine and nouveau (GM107)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108245">Bug 108245</a> - RADV/Vega: Low mip levels of large BCn textures get corrupted by vkCmdCopyBufferToImage</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108311">Bug 108311</a> - Query buffer object support is broken on r600.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108894">Bug 108894</a> - [anv] vkCmdCopyBuffer() and vkCmdCopyQueryPoolResults() write-after-write hazard</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108909">Bug 108909</a> - Vkd3d test failure test_resolve_non_issued_query_data()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108914">Bug 108914</a> - blocky shadow artifacts in The Forest with DXVK, RADV_DEBUG=nohiz fixes this</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108925">Bug 108925</a> - vkCmdCopyQueryPoolResults(VK_QUERY_RESULT_WAIT_BIT) for timestamps with large query count hangs</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Smith (1):</p>
|
||||
<ul>
|
||||
<li>radv: Flush before vkCmdWriteTimestamp() if needed</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (4):</p>
|
||||
<ul>
|
||||
<li>radv: Align large buffers to the fragment size.</li>
|
||||
<li>radv: Clamp gfx9 image view extents to the allocated image extents.</li>
|
||||
<li>radv/android: Mark android WSI image as shareable.</li>
|
||||
<li>radv/android: Use buffer metadata to determine scanout compat.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (2):</p>
|
||||
<ul>
|
||||
<li>r600: make suballocator 256-bytes align</li>
|
||||
<li>radv: use 3d shader for gfx9 copies if dst is 3d</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: bail out when drmGetMagic fails</li>
|
||||
<li>egl/wayland: plug memory leak in drm_handle_device()</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (3):</p>
|
||||
<ul>
|
||||
<li>v3d: Fix a leak of the transfer helper on screen destroy.</li>
|
||||
<li>vc4: Fix a leak of the transfer helper on screen destroy.</li>
|
||||
<li>v3d: Fix a leak of the disassembled instruction string during debug dumps.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (3):</p>
|
||||
<ul>
|
||||
<li>anv: correctly use vulkan 1.0 by default</li>
|
||||
<li>wsi/display: fix mem leak when freeing swapchains</li>
|
||||
<li>vulkan/wsi: fix s/,/;/ typo</li>
|
||||
</ul>
|
||||
|
||||
<p>Gurchetan Singh (3):</p>
|
||||
<ul>
|
||||
<li>virgl: quadruple command buffer size</li>
|
||||
<li>virgl: avoid large inline transfers</li>
|
||||
<li>virgl: don't mark buffers as unclean after a write</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (4):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.2.6</li>
|
||||
<li>cherry-ignore: freedreno: Fix autotools build.</li>
|
||||
<li>cherry-ignore: mesa: Revert INTEL_fragment_shader_ordering support</li>
|
||||
<li>Update version to 18.2.7</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nv50,nvc0: Fix gallium nine regression regarding sampler bindings</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (2):</p>
|
||||
<ul>
|
||||
<li>anv: flush pipeline before query result copies</li>
|
||||
<li>anv/query: flush render target before copying results</li>
|
||||
</ul>
|
||||
|
||||
<p>Michal Srb (2):</p>
|
||||
<ul>
|
||||
<li>gallium: Constify drisw_loader_funcs struct</li>
|
||||
<li>drisw: Use separate drisw_loader_funcs for shm</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (2):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: rather obvious build fix</li>
|
||||
<li>meson: link LLVM 'native' component when LLVM is available</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: rework the TC-compat HTILE hardware bug with COND_EXEC</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (2):</p>
|
||||
<ul>
|
||||
<li>st/xa: Fix a memory leak</li>
|
||||
<li>winsys/svga: Fix a memory leak</li>
|
||||
</ul>
|
||||
|
||||
<p>Tobias Klausmann (1):</p>
|
||||
<ul>
|
||||
<li>amd/vulkan: meson build - use radv_deps for libvulkan_radeon</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (1):</p>
|
||||
<ul>
|
||||
<li>st/xvmc: Add X11 include path.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
183
docs/relnotes/18.2.8.html
Normal file
183
docs/relnotes/18.2.8.html
Normal file
@@ -0,0 +1,183 @@
|
||||
<!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 Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.8 Release Notes / December 27, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.8 is a bug fix release which fixes bugs found since the 18.2.7 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.8 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
77512edc0a84e19c7131a0e2e5ebf1beaf1494dc4b71508fcc92d06d65f9f4f5 mesa-18.2.8.tar.gz
|
||||
1d2ed9fd435d86d95b7215b287258d3e6b1180293a36f688e5a2efc18298d863 mesa-18.2.8.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108114">Bug 108114</a> - [vulkancts] new VK_KHR_16bit_storage tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108116">Bug 108116</a> - [vulkancts] stencil partial clear tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108910">Bug 108910</a> - Vkd3d test failure test_multisample_array_texture()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108911">Bug 108911</a> - Vkd3d test failure test_clear_render_target_view()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109081">Bug 109081</a> - [bisected] [HSW] Regression in clipping.user_defined.clip_* vulkancts tests</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Deucher (3):</p>
|
||||
<ul>
|
||||
<li>pci_ids: add new vega10 pci ids</li>
|
||||
<li>pci_ids: add new vega20 pci id</li>
|
||||
<li>pci_ids: add new VegaM pci id</li>
|
||||
</ul>
|
||||
|
||||
<p>Axel Davy (3):</p>
|
||||
<ul>
|
||||
<li>st/nine: Fix volumetexture dtor on ctor failure</li>
|
||||
<li>st/nine: Bind src not dst in nine_context_box_upload</li>
|
||||
<li>st/nine: Add src reference to nine_context_range_upload</li>
|
||||
</ul>
|
||||
|
||||
<p>Caio Marcelo de Oliveira Filho (1):</p>
|
||||
<ul>
|
||||
<li>nir: properly clear the entry sources in copy_prop_vars</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (1):</p>
|
||||
<ul>
|
||||
<li>meson: Fix ppc64 little endian detection</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (9):</p>
|
||||
<ul>
|
||||
<li>glx: mandate xf86vidmode only for "drm" dri platforms</li>
|
||||
<li>bin/get-pick-list.sh: rework handing of sha nominations</li>
|
||||
<li>bin/get-pick-list.sh: warn when commit lists invalid sha</li>
|
||||
<li>meson: don't require glx/egl/gbm with gallium drivers</li>
|
||||
<li>pipe-loader: meson: reference correct library</li>
|
||||
<li>TODO: glx: meson: build dri based glx tests, only with -Dglx=dri</li>
|
||||
<li>glx: meson: drop includes from a link-only library</li>
|
||||
<li>glx: meson: wire up the dispatch-index-check test</li>
|
||||
<li>glx/test: meson: assorted include fixes</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (2):</p>
|
||||
<ul>
|
||||
<li>v3d: Make sure that a thrsw doesn't split a multop from its umul24.</li>
|
||||
<li>v3d: Add missing flagging of SYNCB as a TSY op.</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (2):</p>
|
||||
<ul>
|
||||
<li>virgl: wrap vertex element state in a struct</li>
|
||||
<li>virgl: work around bad assumptions in virglrenderer</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>intel/compiler: do not copy-propagate strided regions to ddx/ddy arguments</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>i965/vec4/dce: Don't narrow the write mask if the flags are used</li>
|
||||
<li>Revert "nir/lower_indirect: Bail early if modes == 0"</li>
|
||||
</ul>
|
||||
|
||||
<p>Jan Vesely (1):</p>
|
||||
<ul>
|
||||
<li>clover: Fix build after clang r348827</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>nir/constant_folding: Fix source bit size logic</li>
|
||||
</ul>
|
||||
|
||||
<p>Jon Turney (1):</p>
|
||||
<ul>
|
||||
<li>glx: Fix compilation with GLX_USE_WINDOWSGL</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (7):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.2.7</li>
|
||||
<li>cherry-ignore: add explicit 18.3 only nominations</li>
|
||||
<li>cherry-ignore: meson: libfreedreno depends upon libdrm (for fence support)</li>
|
||||
<li>cherry-ignore: radv: Fix multiview depth clears</li>
|
||||
<li>cherry-ignore: nir: properly find the entry to keep in copy_prop_vars</li>
|
||||
<li>cherry-ignore: intel/compiler: move nir_lower_bool_to_int32 before nir_lower_locals_to_regs</li>
|
||||
<li>Update version to 18.2.8</li>
|
||||
</ul>
|
||||
|
||||
<p>Kirill Burtsev (1):</p>
|
||||
<ul>
|
||||
<li>loader: free error state, when checking the drawable type</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>anv: don't do partial resolve on layer > 0</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (2):</p>
|
||||
<ul>
|
||||
<li>radv: don't set surf_index for stencil-only images</li>
|
||||
<li>ac: split 16-bit ssbo loads that may not be dword aligned</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (1):</p>
|
||||
<ul>
|
||||
<li>mesa/st/nir: fix missing nir_compact_varyings</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: switch on EOP when primitive restart is enabled with triangle strips</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (2):</p>
|
||||
<ul>
|
||||
<li>meson: Fix typo.</li>
|
||||
<li>meson: Fix libsensors detection.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -14,7 +14,7 @@
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.3.0 Release Notes / TBD</h1>
|
||||
<h1>Mesa 18.3.0 Release Notes / December 7, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.0 is a new development release. People who are concerned
|
||||
@@ -40,7 +40,8 @@ an up-to-date version of Wayland to keep the functionality.
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
TBD.
|
||||
17a124d4dbc712505d22a7815c9b0cee22214c96c8abb91539a2b1351e38a000 mesa-18.3.0.tar.gz
|
||||
b63f947e735d6ef3dfaa30c789a9adfbae18aea671191eaacde95a18c17fc38a mesa-18.3.0.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
@@ -61,7 +62,6 @@ Note: some of the new features are only available with certain drivers.
|
||||
<li>GL_EXT_vertex_attrib_64bit on i965, nvc0, radeonsi.</li>
|
||||
<li>GL_EXT_window_rectangles on radeonsi.</li>
|
||||
<li>GL_KHR_texture_compression_astc_sliced_3d on radeonsi.</li>
|
||||
<li>GL_INTEL_fragment_shader_ordering on i965.</li>
|
||||
<li>GL_NV_fragment_shader_interlock on i965.</li>
|
||||
<li>EGL_EXT_device_base for all drivers.</li>
|
||||
<li>EGL_EXT_device_drm for all drivers.</li>
|
||||
@@ -71,8 +71,206 @@ Note: some of the new features are only available with certain drivers.
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
<li>TBD</li>
|
||||
</ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=13728">Bug 13728</a> - [G965] Some objects in Neverwinter Nights Linux version not displayed correctly</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=91433">Bug 91433</a> - piglit.spec.arb_depth_buffer_float.fbo-depth-gl_depth_component32f-copypixels fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93355">Bug 93355</a> - [BXT,SKLGT4e] intermittent ext_framebuffer_multisample.accuracy fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94957">Bug 94957</a> - dEQP failures on llvmpipe</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98699">Bug 98699</a> - "float[a+++4 ? 1:1] f;" crashes glsl_compiler</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99507">Bug 99507</a> - Corrupted frame contents with Vulkan version of DOTA2, Talos Principle and Sascha Willems' demos when they're run Vsynched in fullscreen</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99730">Bug 99730</a> - Metro Redux game(s) needs override for midshader extension declaration</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=100200">Bug 100200</a> - Default Unreal Engine 4 frag shader fails to compile</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101247">Bug 101247</a> - Mesa fails to link GLSL programs with unused output blocks</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102597">Bug 102597</a> - [Regression] mpv, high rendering times (two to three times higher)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103241">Bug 103241</a> - Anv crashes when using 64-bit vertex inputs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104602">Bug 104602</a> - [apitrace] Graphical artifacts in Civilization VI on RX Vega</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104809">Bug 104809</a> - anv: DOOM 2016 and Wolfenstein II:The New Colossus crash due to not having depthBoundsTest</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104926">Bug 104926</a> - swrast: Mesa 17.3.3 produces: HW cursor for format 875713089 not supported</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105333">Bug 105333</a> - [gallium-nine] missing geometry after commit ac: replace ac_build_kill with ac_build_kill_if_false</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105371">Bug 105371</a> - r600_shader_from_tgsi - GPR limit exceeded - shader requires 360 registers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105731">Bug 105731</a> - linker error "fragment shader input ... has no matching output in the previous stage" when previous stage's output declaration in a separate shader object</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105904">Bug 105904</a> - Needed to delete mesa shader cache after driver upgrade for 32 bit wine vulkan programs to work.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105975">Bug 105975</a> - i965 always reports 0 viewport subpixel bits</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106231">Bug 106231</a> - llvmpipe blends produce bad code after llvm patch https://reviews.llvm.org/D44785</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106283">Bug 106283</a> - Shader replacements works only for limited use cases</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106577">Bug 106577</a> - broken rendering with nine and nouveau (GM107)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106833">Bug 106833</a> - glLinkProgram is expected to fail when vertex attribute aliasing happens on ES3.0 context or later</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106865">Bug 106865</a> - [GLK] piglit.spec.ext_framebuffer_multisample.accuracy stencil tests fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106980">Bug 106980</a> - Basemark GPU vulkan benchmark hangs on GFX9</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106997">Bug 106997</a> - [Regression]. Dying light game is crashing on latest mesa</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107088">Bug 107088</a> - [GEN8+] Hang when discarding a fragment if dual source blending is enabled but shader doesn't support it</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107098">Bug 107098</a> - Segfault after munmap(kms_sw_dt->ro_mapped)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107212">Bug 107212</a> - Dual-Core CPU E5500 / G45: RetroArch with reicast core results in corrupted graphics</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107223">Bug 107223</a> - [GEN9+] 50% perf drop in SynMark Fill* tests (E2E RBC gets disabled?)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107276">Bug 107276</a> - radv: OpBitfieldUExtract returns incorrect result when count is zero</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107280">Bug 107280</a> - [DXVK] Batman: Arkham City with tessellation enabled hangs on SKL GT4</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107313">Bug 107313</a> - Meson instructions on web site are non-optimal</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107359">Bug 107359</a> - [Regression] [bisected] [OpenGL CTS] [SKL,BDW] KHR-GL46.texture_barrier*-texels, GTF-GL46.gtf21.GL2FixedTests.buffer_corners.buffer_corners, and GTF-GL46.gtf21.GL2FixedTests.stencil_plane_corners.stencil_plane_corners fail with some configuration</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107460">Bug 107460</a> - radv: OpControlBarrier does not always work correctly (bisected)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107477">Bug 107477</a> - [DXVK] Setting high shader quality in GTA V results in LLVM error</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107483">Bug 107483</a> - DispatchSanity_test.GL31_CORE regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107487">Bug 107487</a> - [intel] [tools] intel gpu tools don't honor -D tools=[]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107488">Bug 107488</a> - gl.h:2090: error: redefinition of typedef ‘GLeglImageOES’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107510">Bug 107510</a> - [GEN8+] up to 10% perf drop on several 3D benchmarks</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107511">Bug 107511</a> - KHR/khrplatform.h not always installed when needed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107524">Bug 107524</a> - Broken packDouble2x32 at llvmpipe</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107544">Bug 107544</a> - intel/decoder: out of bounds group_iter</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107547">Bug 107547</a> - shader crashing glsl_compiler (uniform block assigned to vec2, then component substraced by 1)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107550">Bug 107550</a> - "0[2]" as function parameter hits assert</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107563">Bug 107563</a> - [RADV] Broken rendering in Unity demos</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107565">Bug 107565</a> - TypeError: __init__() got an unexpected keyword argument 'future_imports'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107579">Bug 107579</a> - [SNB] The graphic corruption when we reuse the GS compiled and used for TFB when statebuffer contain magic trash in the unused space</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107601">Bug 107601</a> - Rise of the Tomb Raider Segmentation Fault when the game starts</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107610">Bug 107610</a> - Dolphin emulator mis-renders shadow overlay in Super Mario Sunshine</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107626">Bug 107626</a> - [SNB] The graphical corruption and GPU hang occur sometimes on the piglit test "arb_texture_multisample-large-float-texture" with parameter --fp16</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107658">Bug 107658</a> - [Regression] [bisected] [OpenGLES CTS] KHR-GLES3.packed_pixels.*rectangle.r*8_snorm</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107734">Bug 107734</a> - [GLSL] glsl-fface-invariant, glsl-fcoord-invariant and glsl-pcoord-invariant should fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107745">Bug 107745</a> - [bisected] [bdw bsw] piglit.spec.arb_fragment_shader_interlock.arb_fragment_shader_interlock-image-load-store failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107760">Bug 107760</a> - GPU Hang when Playing DiRT 3 Complete Edition using Steam Play with DXVK</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107765">Bug 107765</a> - [regression] Batman Arkham City crashes with DXVK under wine</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107772">Bug 107772</a> - Mesa preprocessor matches if(def)s & endifs incorrectly</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107779">Bug 107779</a> - Access violation with some games</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107786">Bug 107786</a> - [DXVK] MSAA reflections are broken in GTA V</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107806">Bug 107806</a> - glsl_get_natural_size_align_bytes() ABORT with GfxBench Vulkan AztecRuins</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107810">Bug 107810</a> - The 'va_end' call is missed after 'va_copy' in 'util_vsnprintf' function under windows</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107832">Bug 107832</a> - Gallium picking A16L16 formats when emulating INTENSITY16 conflicts with mesa</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107843">Bug 107843</a> - 32bit Mesa build failes with meson.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107856">Bug 107856</a> - i965 incorrectly calculates the number of layers for texture views (assert)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107857">Bug 107857</a> - GPU hang - GS_EMIT without shader outputs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107865">Bug 107865</a> - swr fail to build with llvm-libs 6.0.1</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107869">Bug 107869</a> - u_thread.h:87:4: error: use of undeclared identifier 'cpu_set_t'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107870">Bug 107870</a> - Undefined symbols for architecture x86_64: "_util_cpu_caps"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107879">Bug 107879</a> - crash happens when link program</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107891">Bug 107891</a> - [wine, regression, bisected] RAGE, Wolfenstein The New Order hangs in menu</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107923">Bug 107923</a> - build_id.c:126: multiple definition of `build_id_length'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107926">Bug 107926</a> - [anv] Rise of the Tomb Raider always misrendering, segfault and gpu hang.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107941">Bug 107941</a> - GPU hang and system crash with Dota 2 using Vulkan</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107971">Bug 107971</a> - SPV_GOOGLE_hlsl_functionality1 / SPV_GOOGLE_decorate_string</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108012">Bug 108012</a> - Compiler crashes on access of non-existent member incremental operations</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108024">Bug 108024</a> - [Debian Stretch]Fail to build because "xcb_randr_lease_t"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108082">Bug 108082</a> - warning: unknown warning option '-Wno-format-truncation' [-Wunknown-warning-option]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108109">Bug 108109</a> - [GLSL] no-overloads.vert fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108112">Bug 108112</a> - [vulkancts] some of the coherent memory tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108113">Bug 108113</a> - [vulkancts] r32g32b32 transfer operations not implemented</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108115">Bug 108115</a> - [vulkancts] dEQP-VK.subgroups.vote.graphics.subgroupallequal.* fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108164">Bug 108164</a> - [radv] VM faults since 5d6a560a2986c9ab421b3c7904d29bb7bc35e36f</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108245">Bug 108245</a> - RADV/Vega: Low mip levels of large BCn textures get corrupted by vkCmdCopyBufferToImage</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108272">Bug 108272</a> - [polaris10] opencl-mesa: Anything using OpenCL segfaults, XFX Radeon RX 580</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108311">Bug 108311</a> - Query buffer object support is broken on r600.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108319">Bug 108319</a> - [GLK BXT BSW] Assertion in piglit.spec.arb_gpu_shader_fp64.execution.built-in-functions.vs-sign-sat-neg-abs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108491">Bug 108491</a> - Commit baa38c14 causes output issues on my VEGA with RADV</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108524">Bug 108524</a> - [RADV] GPU lockup on event synchronization</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108530">Bug 108530</a> - (mesa-18.3) [Tracker] Mesa 18.3 Release Tracker</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108532">Bug 108532</a> - make check nir_copy_prop_vars_test.store_store_load_different_components regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108560">Bug 108560</a> - Mesa 32 is built without sse</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108595">Bug 108595</a> - ir3_compiler valgrind build error</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108617">Bug 108617</a> - [deqp] Mesa fails conformance for egl_ext_device</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108630">Bug 108630</a> - [G965] piglit.spec.!opengl 1_2.tex3d-maxsize spins forever</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108635">Bug 108635</a> - Mesa master commit 68dc591af16ebb36814e4c187e4998948103c99c causes XWayland to segfault</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108713">Bug 108713</a> - Gallium: use after free with transform feedback</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108829">Bug 108829</a> - [meson] libglapi exports internal API</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108894">Bug 108894</a> - [anv] vkCmdCopyBuffer() and vkCmdCopyQueryPoolResults() write-after-write hazard</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108909">Bug 108909</a> - Vkd3d test failure test_resolve_non_issued_query_data()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108914">Bug 108914</a> - blocky shadow artifacts in The Forest with DXVK, RADV_DEBUG=nohiz fixes this</li>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
|
63
docs/relnotes/18.3.1.html
Normal file
63
docs/relnotes/18.3.1.html
Normal file
@@ -0,0 +1,63 @@
|
||||
<!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 Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.3.1 Release Notes / December 11, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.1 is a bug fix release which fixes bugs found since the 18.3.0 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.3.0 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
256d0c3d88e380c1b8e3fc5c6ac34001e3b7c30458b8b852407ec68b8ccd9fda mesa-18.3.1.tar.gz
|
||||
5b1f827d28684a25f6657289f8b7d47ac56395988c7ac23e0ec9a62b644bdc63 mesa-18.3.1.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.3.0</li>
|
||||
<li>Update version to 18.3.1</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>anv,radv: Disable VK_EXT_pci_bus_info</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
265
docs/relnotes/18.3.2.html
Normal file
265
docs/relnotes/18.3.2.html
Normal file
@@ -0,0 +1,265 @@
|
||||
<!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 Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.3.2 Release Notes / January 17, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.2 is a bug fix release which fixes bugs found since the 18.3.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.3.2 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
1cde4fafd40cd1ad4ee3a13b364b7a0175a08b7afdd127fb46f918c1e1dfd4b0 mesa-18.3.2.tar.gz
|
||||
f7ce7181c07b6d8e0132da879af1729523a6c8aa87f79a9d59dfd064024cfb35 mesa-18.3.2.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106595">Bug 106595</a> - [RADV] Rendering distortions only when MSAA is enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107728">Bug 107728</a> - Wrong background in Sascha Willem's Multisampling Demo</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108114">Bug 108114</a> - [vulkancts] new VK_KHR_16bit_storage tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108116">Bug 108116</a> - [vulkancts] stencil partial clear tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108624">Bug 108624</a> - [regression][bisected] "nir: Copy propagation between blocks" regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108910">Bug 108910</a> - Vkd3d test failure test_multisample_array_texture()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108911">Bug 108911</a> - Vkd3d test failure test_clear_render_target_view()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108943">Bug 108943</a> - Build fails on ppc64le with meson</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109072">Bug 109072</a> - GPU hang in blender 2.80</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109081">Bug 109081</a> - [bisected] [HSW] Regression in clipping.user_defined.clip_* vulkancts tests</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109151">Bug 109151</a> - [KBL-G][vulkan] dEQP-VK.texture.explicit_lod.2d.sizes.31x55_nearest_linear_mipmap_nearest_repeat failed verification.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109202">Bug 109202</a> - nv50_ir.cpp:749:19: error: cannot use typeid with -fno-rtti</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109204">Bug 109204</a> - [regression, bisected] retroarch's crt-royale shader crash radv</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Deucher (3):</p>
|
||||
<ul>
|
||||
<li>pci_ids: add new vega10 pci ids</li>
|
||||
<li>pci_ids: add new vega20 pci id</li>
|
||||
<li>pci_ids: add new VegaM pci id</li>
|
||||
</ul>
|
||||
|
||||
<p>Alexander von Gluck IV (1):</p>
|
||||
<ul>
|
||||
<li>egl/haiku: Fix reference to disp vs dpy</li>
|
||||
</ul>
|
||||
|
||||
<p>Andres Gomez (2):</p>
|
||||
<ul>
|
||||
<li>glsl: correct typo in GLSL compilation error message</li>
|
||||
<li>glsl/linker: specify proper direction in location aliasing error</li>
|
||||
</ul>
|
||||
|
||||
<p>Axel Davy (3):</p>
|
||||
<ul>
|
||||
<li>st/nine: Fix volumetexture dtor on ctor failure</li>
|
||||
<li>st/nine: Bind src not dst in nine_context_box_upload</li>
|
||||
<li>st/nine: Add src reference to nine_context_range_upload</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (5):</p>
|
||||
<ul>
|
||||
<li>radv: Do a cache flush if needed before reading predicates.</li>
|
||||
<li>radv: Implement buffer stores with less than 4 components.</li>
|
||||
<li>anv/android: Do not reject storage images.</li>
|
||||
<li>radv: Fix rasterization precision bits.</li>
|
||||
<li>spirv: Fix matrix parameters in function calls.</li>
|
||||
</ul>
|
||||
|
||||
<p>Caio Marcelo de Oliveira Filho (3):</p>
|
||||
<ul>
|
||||
<li>nir: properly clear the entry sources in copy_prop_vars</li>
|
||||
<li>nir: properly find the entry to keep in copy_prop_vars</li>
|
||||
<li>nir: remove dead code from copy_prop_vars</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (2):</p>
|
||||
<ul>
|
||||
<li>radv/xfb: fix counter buffer bounds checks.</li>
|
||||
<li>virgl/vtest: fix front buffer flush with protocol version 0.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (6):</p>
|
||||
<ul>
|
||||
<li>meson: Fix ppc64 little endian detection</li>
|
||||
<li>meson: Add support for gnu hurd</li>
|
||||
<li>meson: Add toggle for glx-direct</li>
|
||||
<li>meson: Override C++ standard to gnu++11 when building with altivec on ppc64</li>
|
||||
<li>meson: Error out if building nouveau and using LLVM without rtti</li>
|
||||
<li>autotools: Remove tegra vdpau driver</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (12):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.3.1</li>
|
||||
<li>bin/get-pick-list.sh: rework handing of sha nominations</li>
|
||||
<li>bin/get-pick-list.sh: warn when commit lists invalid sha</li>
|
||||
<li>cherry-ignore: meson: libfreedreno depends upon libdrm (for fence support)</li>
|
||||
<li>glx: mandate xf86vidmode only for "drm" dri platforms</li>
|
||||
<li>meson: don't require glx/egl/gbm with gallium drivers</li>
|
||||
<li>pipe-loader: meson: reference correct library</li>
|
||||
<li>TODO: glx: meson: build dri based glx tests, only with -Dglx=dri</li>
|
||||
<li>glx: meson: drop includes from a link-only library</li>
|
||||
<li>glx: meson: wire up the dispatch-index-check test</li>
|
||||
<li>glx/test: meson: assorted include fixes</li>
|
||||
<li>Update version to 18.3.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (6):</p>
|
||||
<ul>
|
||||
<li>v3d: Fix a leak of the transfer helper on screen destroy.</li>
|
||||
<li>vc4: Fix a leak of the transfer helper on screen destroy.</li>
|
||||
<li>v3d: Fix a leak of the disassembled instruction string during debug dumps.</li>
|
||||
<li>v3d: Make sure that a thrsw doesn't split a multop from its umul24.</li>
|
||||
<li>v3d: Add missing flagging of SYNCB as a TSY op.</li>
|
||||
<li>gallium/ttn: Fix setup of outputs_written.</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (2):</p>
|
||||
<ul>
|
||||
<li>virgl: wrap vertex element state in a struct</li>
|
||||
<li>virgl: work around bad assumptions in virglrenderer</li>
|
||||
</ul>
|
||||
|
||||
<p>Francisco Jerez (5):</p>
|
||||
<ul>
|
||||
<li>intel/fs: Handle source modifiers in lower_integer_multiplication().</li>
|
||||
<li>intel/fs: Implement quad swizzles on ICL+.</li>
|
||||
<li>intel/fs: Fix bug in lower_simd_width while splitting an instruction which was already split.</li>
|
||||
<li>intel/eu/gen7: Fix brw_MOV() with DF destination and strided source.</li>
|
||||
<li>intel/fs: Respect CHV/BXT regioning restrictions in copy propagation pass.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>i965/vec4/dce: Don't narrow the write mask if the flags are used</li>
|
||||
<li>Revert "nir/lower_indirect: Bail early if modes == 0"</li>
|
||||
</ul>
|
||||
|
||||
<p>Jan Vesely (1):</p>
|
||||
<ul>
|
||||
<li>clover: Fix build after clang r348827</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (6):</p>
|
||||
<ul>
|
||||
<li>nir/constant_folding: Fix source bit size logic</li>
|
||||
<li>intel/blorp: Be more conservative about copying clear colors</li>
|
||||
<li>spirv: Handle any bit size in vector_insert/extract</li>
|
||||
<li>anv/apply_pipeline_layout: Set the cursor in lower_res_reindex_intrinsic</li>
|
||||
<li>spirv: Sign-extend array indices</li>
|
||||
<li>intel/peephole_ffma: Fix swizzle propagation</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: fix use-after-free in ConstantFolding::visit</li>
|
||||
</ul>
|
||||
|
||||
<p>Kirill Burtsev (1):</p>
|
||||
<ul>
|
||||
<li>loader: free error state, when checking the drawable type</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (5):</p>
|
||||
<ul>
|
||||
<li>anv: don't do partial resolve on layer > 0</li>
|
||||
<li>i965: include draw_params/derived_draw_params for VF cache workaround</li>
|
||||
<li>i965: add CS stall on VF invalidation workaround</li>
|
||||
<li>anv: explictly specify format for blorp ccs/mcs op</li>
|
||||
<li>anv: flush fast clear colors into compressed surfaces</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: don't leak pipe_surface if pipe_context is not current</li>
|
||||
</ul>
|
||||
|
||||
<p>Mario Kleiner (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Fix use of 1- or 2- component GL_DOUBLE vbo's.</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (1):</p>
|
||||
<ul>
|
||||
<li>meson: link LLVM 'native' component when LLVM is available</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (3):</p>
|
||||
<ul>
|
||||
<li>radv: don't set surf_index for stencil-only images</li>
|
||||
<li>ac/nir,radv,radeonsi/nir: use correct indices for interpolation intrinsics</li>
|
||||
<li>ac: split 16-bit ssbo loads that may not be dword aligned</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (2):</p>
|
||||
<ul>
|
||||
<li>freedreno/drm: fix memory leak</li>
|
||||
<li>mesa/st/nir: fix missing nir_compact_varyings</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: switch on EOP when primitive restart is enabled with triangle strips</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (2):</p>
|
||||
<ul>
|
||||
<li>tgsi/scan: fix loop exit point in tgsi_scan_tess_ctrl()</li>
|
||||
<li>tgsi/scan: correctly walk instructions in tgsi_scan_tess_ctrl()</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (2):</p>
|
||||
<ul>
|
||||
<li>meson: Fix typo.</li>
|
||||
<li>meson: Fix libsensors detection.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
2474
docs/relnotes/19.0.0.html
Normal file
2474
docs/relnotes/19.0.0.html
Normal file
File diff suppressed because it is too large
Load Diff
95
docs/specs/EGL_MESA_query_driver.txt
Normal file
95
docs/specs/EGL_MESA_query_driver.txt
Normal file
@@ -0,0 +1,95 @@
|
||||
Name
|
||||
|
||||
MESA_query_driver
|
||||
|
||||
Name Strings
|
||||
|
||||
EGL_MESA_query_driver
|
||||
|
||||
Contact
|
||||
|
||||
Rob Clark <robdclark 'at' gmail.com>
|
||||
Nicolai Hähnle <Nicolai.Haehnle 'at' amd.com>
|
||||
|
||||
Contibutors
|
||||
|
||||
Veluri Mithun <velurimithun38 'at' gmail.com>
|
||||
|
||||
Status
|
||||
|
||||
Complete
|
||||
|
||||
Version
|
||||
|
||||
Version 3, 2019-01-24
|
||||
|
||||
Number
|
||||
|
||||
EGL Extension 131
|
||||
|
||||
Dependencies
|
||||
|
||||
EGL 1.0 is required.
|
||||
|
||||
Overview
|
||||
|
||||
When an application has to query the name of a driver and for
|
||||
obtaining driver's option list (UTF-8 encoded XML) of a driver
|
||||
the below functions are useful.
|
||||
|
||||
XML file formally describes all available options and also
|
||||
includes verbal descriptions in multiple languages. Its main purpose
|
||||
is to be automatically processed by configuration GUIs.
|
||||
The XML shall respect the following DTD:
|
||||
|
||||
<!ELEMENT driinfo (section*)>
|
||||
<!ELEMENT section (description+, option+)>
|
||||
<!ELEMENT description (enum*)>
|
||||
<!ATTLIST description lang CDATA #REQUIRED
|
||||
text CDATA #REQUIRED>
|
||||
<!ELEMENT option (description+)>
|
||||
<!ATTLIST option name CDATA #REQUIRED
|
||||
type (bool|enum|int|float) #REQUIRED
|
||||
default CDATA #REQUIRED
|
||||
valid CDATA #IMPLIED>
|
||||
<!ELEMENT enum EMPTY>
|
||||
<!ATTLIST enum value CDATA #REQUIRED
|
||||
text CDATA #REQUIRED>
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
char* eglGetDisplayDriverConfig(EGLDisplay dpy);
|
||||
const char* eglGetDisplayDriverName(EGLDisplay dpy);
|
||||
|
||||
Description
|
||||
|
||||
By passing EGLDisplay as parameter to `eglGetDisplayDriverName` one can retrieve
|
||||
driverName. Similarly passing EGLDisplay to `eglGetDisplayDriverConfig` we can retrieve
|
||||
driverConfig options of the driver in XML format.
|
||||
|
||||
The string returned by `eglGetDisplayDriverConfig` is heap-allocated and caller
|
||||
is responsible for freeing it.
|
||||
|
||||
EGL_BAD_DISPLAY is generated if `disp` is not an EGL display connection.
|
||||
|
||||
EGL_NOT_INITIALIZED is generated if `disp` has not been initialized.
|
||||
|
||||
If the implementation does not have enough resources to allocate the XML then an
|
||||
EGL_BAD_ALLOC error is generated.
|
||||
|
||||
New Tokens
|
||||
|
||||
No new tokens
|
||||
|
||||
Issues
|
||||
|
||||
None
|
||||
|
||||
|
||||
Revision History
|
||||
|
||||
Version 1, 2018-11-05 - First draft (Veluri Mithun)
|
||||
Version 2, 2019-01-23 - Final version (Veluri Mithun)
|
||||
Version 3, 2019-01-24 - Mark as complete, add Khronos extension
|
||||
number, fix parameter name in prototypes,
|
||||
write revision history (Eric Engestrom)
|
@@ -20,11 +20,11 @@ Status
|
||||
|
||||
Version
|
||||
|
||||
Version 8, 14-February-2014
|
||||
Version 9, 09 November 2018
|
||||
|
||||
Number
|
||||
|
||||
TBD.
|
||||
OpenGL Extension #446
|
||||
|
||||
Dependencies
|
||||
|
||||
@@ -32,9 +32,6 @@ Dependencies
|
||||
|
||||
GLX_ARB_create_context and GLX_ARB_create_context_profile are required.
|
||||
|
||||
This extension interacts with GLX_EXT_create_context_es2_profile and
|
||||
GLX_EXT_create_context_es_profile.
|
||||
|
||||
Overview
|
||||
|
||||
In many situations, applications want to detect characteristics of a
|
||||
@@ -95,18 +92,13 @@ New Tokens
|
||||
GLX_RENDERER_VENDOR_ID_MESA
|
||||
GLX_RENDERER_DEVICE_ID_MESA
|
||||
|
||||
Accepted as an attribute name in <*attrib_list> in
|
||||
glXCreateContextAttribsARB:
|
||||
|
||||
GLX_RENDERER_ID_MESA 0x818E
|
||||
|
||||
Additions to the OpenGL / WGL Specifications
|
||||
|
||||
None. This specification is written for GLX.
|
||||
|
||||
Additions to the GLX 1.4 Specification
|
||||
|
||||
[Add the following to Section X.Y.Z of the GLX Specification]
|
||||
[Add to Section 3.3.2 "GLX Versioning" of the GLX Specification]
|
||||
|
||||
To obtain information about the available renderers for a particular
|
||||
display and screen,
|
||||
@@ -206,29 +198,6 @@ Additions to the GLX 1.4 Specification
|
||||
format as the string that would be returned by glGetString of GL_RENDERER.
|
||||
It may, however, have a different value.
|
||||
|
||||
|
||||
[Add to section section 3.3.7 "Rendering Contexts"]
|
||||
|
||||
The attribute name GLX_RENDERER_ID_MESA specified the index of the render
|
||||
against which the context should be created. The default value of
|
||||
GLX_RENDERER_ID_MESA is 0.
|
||||
|
||||
|
||||
[Add to list of errors for glXCreateContextAttribsARB in section section
|
||||
3.3.7 "Rendering Contexts"]
|
||||
|
||||
* If the value of GLX_RENDERER_ID_MESA specifies a non-existent
|
||||
renderer, BadMatch is generated.
|
||||
|
||||
Dependencies on GLX_EXT_create_context_es_profile and
|
||||
GLX_EXT_create_context_es2_profile
|
||||
|
||||
If neither extension is supported, remove all mention of
|
||||
GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA from the spec.
|
||||
|
||||
If GLX_EXT_create_context_es_profile is not supported, remove all mention of
|
||||
GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA from the spec.
|
||||
|
||||
Issues
|
||||
|
||||
1) How should the difference between on-card and GART memory be exposed?
|
||||
@@ -408,3 +377,9 @@ Revision History
|
||||
read GLX_RENDERER_ID_MESA. The VENDOR/DEVICE_ID
|
||||
example given in issue #17 should be 0x5143 and
|
||||
0xFFFFFFFF respectively.
|
||||
|
||||
Version 9, 2018/11/09 - Remove GLX_RENDERER_ID_MESA, which has never been
|
||||
implemented. Remove the unnecessary interactions
|
||||
with the GLX GLES profile extensions. Note the
|
||||
official GL extension number. Specify the section
|
||||
of the GLX spec to modify.
|
||||
|
@@ -21,7 +21,7 @@
|
||||
<li><a href="#guidelines">Basic guidelines</a>
|
||||
<li><a href="#formatting">Patch formatting</a>
|
||||
<li><a href="#testing">Testing Patches</a>
|
||||
<li><a href="#mailing">Mailing Patches</a>
|
||||
<li><a href="#submit">Submitting Patches</a>
|
||||
<li><a href="#reviewing">Reviewing Patches</a>
|
||||
<li><a href="#nominations">Nominating a commit for a stable branch</a>
|
||||
<li><a href="#criteria">Criteria for accepting patches to the stable branch</a>
|
||||
@@ -42,8 +42,10 @@ components.
|
||||
<code>git bisect</code>.)
|
||||
<li>Patches should be properly <a href="#formatting">formatted</a>.
|
||||
<li>Patches should be sufficiently <a href="#testing">tested</a> before submitting.
|
||||
<li>Patches should be submitted to <a href="#mailing">mesa-dev</a>
|
||||
for <a href="#reviewing">review</a> using <code>git send-email</code>.
|
||||
<li>Patches should be <a href="#submit">submitted</a>
|
||||
to <a href="#mailing">mesa-dev</a> or with
|
||||
a <a href="#merge-request">merge request</a>
|
||||
for <a href="#reviewing">review</a>.
|
||||
|
||||
</ul>
|
||||
|
||||
@@ -156,18 +158,29 @@ As mentioned at the begining, patches should be bisectable.
|
||||
A good way to test this is to make use of the `git rebase` command,
|
||||
to run your tests on each commit. Assuming your branch is based off
|
||||
<code>origin/master</code>, you can run:
|
||||
</p>
|
||||
<pre>
|
||||
$ git rebase --interactive --exec "make check" origin/master
|
||||
</pre>
|
||||
<p>
|
||||
replacing <code>"make check"</code> with whatever other test you want to
|
||||
run.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="mailing">Mailing Patches</h2>
|
||||
<h2 id="submit">Submitting Patches</h2>
|
||||
|
||||
<p>
|
||||
Patches should be sent to the mesa-dev mailing list for review:
|
||||
Patches may be submitted to the Mesa project by
|
||||
<a href="#mailing">email</a> or with a
|
||||
GitLab <a href="#merge-request">merge request</a>. To prevent
|
||||
duplicate code review, only use one method to submit your changes.
|
||||
</p>
|
||||
|
||||
<h3 id="mailing">Mailing Patches</h3>
|
||||
|
||||
<p>
|
||||
Patches may be sent to the mesa-dev mailing list for review:
|
||||
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">
|
||||
mesa-dev@lists.freedesktop.org</a>.
|
||||
When submitting a patch make sure to use
|
||||
@@ -201,8 +214,65 @@ disabled before sending your patches. (Note that you may need to contact
|
||||
your email administrator for this.)
|
||||
</p>
|
||||
|
||||
<h3 id="merge-request">GitLab Merge Requests</h3>
|
||||
|
||||
<p>
|
||||
<a href="https://gitlab.freedesktop.org/mesa/mesa">GitLab</a> Merge
|
||||
Requests (MR) can also be used to submit patches for Mesa.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If the MR may have interest for most of the Mesa community, you can
|
||||
send an email to the mesa-dev email list including a link to the MR.
|
||||
Don't send the patch to mesa-dev, just the MR link.
|
||||
</p>
|
||||
<p>
|
||||
Add labels to your MR to help reviewers find it. For example:
|
||||
<ul>
|
||||
<li>Mesa changes affecting all drivers: mesa
|
||||
<li>Hardware vendor specific code: amd, intel, nvidia, ...
|
||||
<li>Driver specific code: anvil, freedreno, i965, iris, radeonsi,
|
||||
radv, vc4, ...
|
||||
<li>Other tag examples: gallium, util
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
If you revise your patches based on code review and push an update
|
||||
to your branch, you should maintain a <strong>clean</strong> history
|
||||
in your patches. There should not be "fixup" patches in the history.
|
||||
The series should be buildable and functional after every commit
|
||||
whenever you push the branch.
|
||||
</p>
|
||||
<p>
|
||||
It is your responsibility to keep the MR alive and making progress,
|
||||
as there are no guarantees that a Mesa dev will independently take
|
||||
interest in it.
|
||||
</p>
|
||||
<p>
|
||||
Some other notes:
|
||||
<ul>
|
||||
<li>Make changes and update your branch based on feedback
|
||||
<li>Old, stale MR may be closed, but you can reopen it if you
|
||||
still want to pursue the changes
|
||||
<li>You should periodically check to see if your MR needs to be
|
||||
rebased
|
||||
<li>Make sure your MR is closed if your patches get pushed outside
|
||||
of GitLab
|
||||
<li>Please send MRs from a personal fork rather than from the main
|
||||
Mesa repository, as it clutters it unnecessarily.
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<h2 id="reviewing">Reviewing Patches</h2>
|
||||
|
||||
<p>
|
||||
To participate in code review, you should monitor the
|
||||
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">
|
||||
mesa-dev</a> email list and the GitLab
|
||||
Mesa <a href="https://gitlab.freedesktop.org/mesa/mesa/merge_requests">Merge
|
||||
Requests</a> page.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When you've reviewed a patch on the mailing list, please be unambiguous
|
||||
about your review. That is, state either
|
||||
@@ -229,6 +299,29 @@ which tells the patch author that the patch can be committed, as long
|
||||
as the issues are resolved first.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
These Reviewed-by, Acked-by, and Tested-by tags should also be amended
|
||||
into commits in a MR before it is merged.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When providing a Reviewed-by, Acked-by, or Tested-by tag in a gitlab MR,
|
||||
enclose the tag in backticks:
|
||||
</p>
|
||||
<pre>
|
||||
`Reviewed-by: Joe Hacker <jhacker@example.com>`</pre>
|
||||
<p>
|
||||
This is the markdown format for literal, and will prevent gitlab from hiding
|
||||
the < and > symbols.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Review by non-experts is encouraged. Understanding how someone else
|
||||
goes about solving a problem is a great way to learn your way around
|
||||
the project. The submitter is expected to evaluate whether they have
|
||||
an appropriate amount of review feedback from people who also
|
||||
understand the code before merging their patches.
|
||||
</p>
|
||||
|
||||
<h2 id="nominations">Nominating a commit for a stable branch</h2>
|
||||
|
||||
@@ -251,6 +344,9 @@ If you are not the author of the original patch, please Cc: them in your
|
||||
nomination request.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The current patch status can be observed in the <a href="releasing.html#stagingbranch">staging branch</a>.
|
||||
</p>
|
||||
|
||||
<h3 id="thetag">The stable tag</h3>
|
||||
|
||||
|
@@ -28,17 +28,17 @@ extern "C" {
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
/*
|
||||
** This header is generated from the Khronos OpenGL / OpenGL ES XML
|
||||
** API Registry. The current version of the Registry, generator scripts
|
||||
** This header is generated from the Khronos EGL XML API Registry.
|
||||
** The current version of the Registry, generator scripts
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.khronos.org/registry/egl
|
||||
**
|
||||
** Khronos $Git commit SHA1: a732b061e7 $ on $Git commit date: 2017-06-17 23:27:53 +0100 $
|
||||
** Khronos $Git commit SHA1: 9ed2ec4c67 $ on $Git commit date: 2019-01-09 17:54:35 -0800 $
|
||||
*/
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
/* Generated on date 20170627 */
|
||||
/* Generated on date 20190124 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: egl
|
||||
|
@@ -28,17 +28,17 @@ extern "C" {
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
/*
|
||||
** This header is generated from the Khronos OpenGL / OpenGL ES XML
|
||||
** API Registry. The current version of the Registry, generator scripts
|
||||
** This header is generated from the Khronos EGL XML API Registry.
|
||||
** The current version of the Registry, generator scripts
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.khronos.org/registry/egl
|
||||
**
|
||||
** Khronos $Git commit SHA1: bae3518c48 $ on $Git commit date: 2018-05-17 10:56:57 -0700 $
|
||||
** Khronos $Git commit SHA1: 9ed2ec4c67 $ on $Git commit date: 2019-01-09 17:54:35 -0800 $
|
||||
*/
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
#define EGL_EGLEXT_VERSION 20180517
|
||||
#define EGL_EGLEXT_VERSION 20190124
|
||||
|
||||
/* Generated C header for:
|
||||
* API: egl
|
||||
@@ -681,6 +681,7 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
|
||||
#ifndef EGL_EXT_device_drm
|
||||
#define EGL_EXT_device_drm 1
|
||||
#define EGL_DRM_DEVICE_FILE_EXT 0x3233
|
||||
#define EGL_DRM_MASTER_FD_EXT 0x333C
|
||||
#endif /* EGL_EXT_device_drm */
|
||||
|
||||
#ifndef EGL_EXT_device_enumeration
|
||||
@@ -716,6 +717,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
|
||||
#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
|
||||
#endif /* EGL_EXT_gl_colorspace_display_p3_linear */
|
||||
|
||||
#ifndef EGL_EXT_gl_colorspace_display_p3_passthrough
|
||||
#define EGL_EXT_gl_colorspace_display_p3_passthrough 1
|
||||
#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490
|
||||
#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */
|
||||
|
||||
#ifndef EGL_EXT_gl_colorspace_scrgb
|
||||
#define EGL_EXT_gl_colorspace_scrgb 1
|
||||
#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351
|
||||
@@ -1025,6 +1031,16 @@ EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImage
|
||||
#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD
|
||||
#endif /* EGL_MESA_platform_surfaceless */
|
||||
|
||||
#ifndef EGL_MESA_query_driver
|
||||
#define EGL_MESA_query_driver 1
|
||||
typedef char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy);
|
||||
typedef const char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI char *EGLAPIENTRY eglGetDisplayDriverConfig (EGLDisplay dpy);
|
||||
EGLAPI const char *EGLAPIENTRY eglGetDisplayDriverName (EGLDisplay dpy);
|
||||
#endif
|
||||
#endif /* EGL_MESA_query_driver */
|
||||
|
||||
#ifndef EGL_NOK_swap_region
|
||||
#define EGL_NOK_swap_region 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
|
||||
|
@@ -589,7 +589,7 @@ struct __DRIdamageExtensionRec {
|
||||
* SWRast Loader extension.
|
||||
*/
|
||||
#define __DRI_SWRAST_LOADER "DRI_SWRastLoader"
|
||||
#define __DRI_SWRAST_LOADER_VERSION 4
|
||||
#define __DRI_SWRAST_LOADER_VERSION 5
|
||||
struct __DRIswrastLoaderExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
@@ -649,6 +649,23 @@ struct __DRIswrastLoaderExtensionRec {
|
||||
void (*getImageShm)(__DRIdrawable *readable,
|
||||
int x, int y, int width, int height,
|
||||
int shmid, void *loaderPrivate);
|
||||
|
||||
/**
|
||||
* Put shm image to drawable (v2)
|
||||
*
|
||||
* The original version fixes srcx/y to 0, and expected
|
||||
* the offset to be adjusted. This version allows src x,y
|
||||
* to not be included in the offset. This is needed to
|
||||
* avoid certain overflow checks in the X server, that
|
||||
* result in lost rendering.
|
||||
*
|
||||
* \since 5
|
||||
*/
|
||||
void (*putImageShm2)(__DRIdrawable *drawable, int op,
|
||||
int x, int y,
|
||||
int width, int height, int stride,
|
||||
int shmid, char *shmaddr, unsigned offset,
|
||||
void *loaderPrivate);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1327,6 +1344,7 @@ struct __DRIdri2ExtensionRec {
|
||||
#define __DRI_IMAGE_FOURCC_NV16 0x3631564e
|
||||
#define __DRI_IMAGE_FOURCC_YUYV 0x56595559
|
||||
#define __DRI_IMAGE_FOURCC_UYVY 0x59565955
|
||||
#define __DRI_IMAGE_FOURCC_AYUV 0x56555941
|
||||
|
||||
#define __DRI_IMAGE_FOURCC_YVU410 0x39555659
|
||||
#define __DRI_IMAGE_FOURCC_YVU411 0x31315659
|
||||
@@ -1353,6 +1371,7 @@ struct __DRIdri2ExtensionRec {
|
||||
#define __DRI_IMAGE_COMPONENTS_Y_UV 0x3004
|
||||
#define __DRI_IMAGE_COMPONENTS_Y_XUXV 0x3005
|
||||
#define __DRI_IMAGE_COMPONENTS_Y_UXVX 0x3008
|
||||
#define __DRI_IMAGE_COMPONENTS_AYUV 0x3009
|
||||
#define __DRI_IMAGE_COMPONENTS_R 0x3006
|
||||
#define __DRI_IMAGE_COMPONENTS_RG 0x3007
|
||||
|
||||
|
@@ -298,6 +298,19 @@ extern "C" {
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1)
|
||||
|
||||
/*
|
||||
* Qualcomm Compressed Format
|
||||
*
|
||||
* Refers to a compressed variant of the base format that is compressed.
|
||||
* Implementation may be platform and base-format specific.
|
||||
*
|
||||
* Each macrotile consists of m x n (mostly 4 x 4) tiles.
|
||||
* Pixel data pitch/stride is aligned with macrotile width.
|
||||
* Pixel data height is aligned with macrotile height.
|
||||
* Entire pixel data buffer is aligned with 4k(bytes).
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1)
|
||||
|
||||
/* Vivante framebuffer modifiers */
|
||||
|
||||
/*
|
||||
|
@@ -36,6 +36,7 @@ extern "C" {
|
||||
#define DRM_V3D_MMAP_BO 0x03
|
||||
#define DRM_V3D_GET_PARAM 0x04
|
||||
#define DRM_V3D_GET_BO_OFFSET 0x05
|
||||
#define DRM_V3D_SUBMIT_TFU 0x06
|
||||
|
||||
#define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
|
||||
#define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo)
|
||||
@@ -43,6 +44,7 @@ extern "C" {
|
||||
#define DRM_IOCTL_V3D_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_MMAP_BO, struct drm_v3d_mmap_bo)
|
||||
#define DRM_IOCTL_V3D_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_PARAM, struct drm_v3d_get_param)
|
||||
#define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset)
|
||||
#define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu)
|
||||
|
||||
/**
|
||||
* struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D
|
||||
@@ -58,10 +60,15 @@ struct drm_v3d_submit_cl {
|
||||
* coordinate shader to determine where primitives land on the screen,
|
||||
* then writes out the state updates and draw calls necessary per tile
|
||||
* to the tile allocation BO.
|
||||
*
|
||||
* This BCL will block on any previous BCL submitted on the
|
||||
* same FD, but not on any RCL or BCLs submitted by other
|
||||
* clients -- that is left up to the submitter to control
|
||||
* using in_sync_bcl if necessary.
|
||||
*/
|
||||
__u32 bcl_start;
|
||||
|
||||
/** End address of the BCL (first byte after the BCL) */
|
||||
/** End address of the BCL (first byte after the BCL) */
|
||||
__u32 bcl_end;
|
||||
|
||||
/* Offset of the render command list.
|
||||
@@ -69,10 +76,15 @@ struct drm_v3d_submit_cl {
|
||||
* This is the second set of commands executed, which will either
|
||||
* execute the tiles that have been set up by the BCL, or a fixed set
|
||||
* of tiles (in the case of RCL-only blits).
|
||||
*
|
||||
* This RCL will block on this submit's BCL, and any previous
|
||||
* RCL submitted on the same FD, but not on any RCL or BCLs
|
||||
* submitted by other clients -- that is left up to the
|
||||
* submitter to control using in_sync_rcl if necessary.
|
||||
*/
|
||||
__u32 rcl_start;
|
||||
|
||||
/** End address of the RCL (first byte after the RCL) */
|
||||
/** End address of the RCL (first byte after the RCL) */
|
||||
__u32 rcl_end;
|
||||
|
||||
/** An optional sync object to wait on before starting the BCL. */
|
||||
@@ -169,6 +181,7 @@ enum drm_v3d_param {
|
||||
DRM_V3D_PARAM_V3D_CORE0_IDENT0,
|
||||
DRM_V3D_PARAM_V3D_CORE0_IDENT1,
|
||||
DRM_V3D_PARAM_V3D_CORE0_IDENT2,
|
||||
DRM_V3D_PARAM_SUPPORTS_TFU,
|
||||
};
|
||||
|
||||
struct drm_v3d_get_param {
|
||||
@@ -187,6 +200,28 @@ struct drm_v3d_get_bo_offset {
|
||||
__u32 offset;
|
||||
};
|
||||
|
||||
struct drm_v3d_submit_tfu {
|
||||
__u32 icfg;
|
||||
__u32 iia;
|
||||
__u32 iis;
|
||||
__u32 ica;
|
||||
__u32 iua;
|
||||
__u32 ioa;
|
||||
__u32 ios;
|
||||
__u32 coef[4];
|
||||
/* First handle is the output BO, following are other inputs.
|
||||
* 0 for unused.
|
||||
*/
|
||||
__u32 bo_handles[4];
|
||||
/* sync object to block on before running the TFU job. Each TFU
|
||||
* job will execute in the order submitted to its FD. Synchronization
|
||||
* against rendering jobs requires using sync objects.
|
||||
*/
|
||||
__u32 in_sync;
|
||||
/* Sync object to signal when the TFU job is done. */
|
||||
__u32 out_sync;
|
||||
};
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
@@ -171,6 +171,7 @@ CHIPSET(0x3185, glk_2x6, "Intel(R) UHD Graphics 600 (Geminilake 2x6)")
|
||||
CHIPSET(0x3E90, cfl_gt1, "Intel(R) UHD Graphics 610 (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E93, cfl_gt1, "Intel(R) UHD Graphics 610 (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E99, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E9C, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E91, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3E92, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3E96, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
@@ -203,6 +204,10 @@ CHIPSET(0x5A54, cnl_5x8, "Intel(R) HD Graphics (Cannonlake 5x8 GT2)")
|
||||
CHIPSET(0x8A50, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
CHIPSET(0x8A51, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
CHIPSET(0x8A52, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
CHIPSET(0x8A56, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
CHIPSET(0x8A57, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
CHIPSET(0x8A58, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
CHIPSET(0x8A59, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
CHIPSET(0x8A5A, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
CHIPSET(0x8A5B, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
CHIPSET(0x8A5C, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
|
@@ -219,6 +219,7 @@ CHIPSET(0x699F, POLARIS12)
|
||||
|
||||
CHIPSET(0x694C, VEGAM)
|
||||
CHIPSET(0x694E, VEGAM)
|
||||
CHIPSET(0x694F, VEGAM)
|
||||
|
||||
CHIPSET(0x6860, VEGA10)
|
||||
CHIPSET(0x6861, VEGA10)
|
||||
@@ -227,8 +228,14 @@ CHIPSET(0x6863, VEGA10)
|
||||
CHIPSET(0x6864, VEGA10)
|
||||
CHIPSET(0x6867, VEGA10)
|
||||
CHIPSET(0x6868, VEGA10)
|
||||
CHIPSET(0x687F, VEGA10)
|
||||
CHIPSET(0x6869, VEGA10)
|
||||
CHIPSET(0x686A, VEGA10)
|
||||
CHIPSET(0x686B, VEGA10)
|
||||
CHIPSET(0x686C, VEGA10)
|
||||
CHIPSET(0x686D, VEGA10)
|
||||
CHIPSET(0x686E, VEGA10)
|
||||
CHIPSET(0x686F, VEGA10)
|
||||
CHIPSET(0x687F, VEGA10)
|
||||
|
||||
CHIPSET(0x69A0, VEGA12)
|
||||
CHIPSET(0x69A1, VEGA12)
|
||||
@@ -240,6 +247,7 @@ CHIPSET(0x66A0, VEGA20)
|
||||
CHIPSET(0x66A1, VEGA20)
|
||||
CHIPSET(0x66A2, VEGA20)
|
||||
CHIPSET(0x66A3, VEGA20)
|
||||
CHIPSET(0x66A4, VEGA20)
|
||||
CHIPSET(0x66A7, VEGA20)
|
||||
CHIPSET(0x66AF, VEGA20)
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
@@ -39,12 +39,6 @@
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_MIR_KHR
|
||||
#include <mir_toolkit/client_types.h>
|
||||
#include "vulkan_mir.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_VI_NN
|
||||
#include "vulkan_vi.h"
|
||||
#endif
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -1,65 +0,0 @@
|
||||
#ifndef VULKAN_MIR_H_
|
||||
#define VULKAN_MIR_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_KHR_mir_surface 1
|
||||
#define VK_KHR_MIR_SURFACE_SPEC_VERSION 4
|
||||
#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
|
||||
|
||||
typedef VkFlags VkMirSurfaceCreateFlagsKHR;
|
||||
|
||||
typedef struct VkMirSurfaceCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkMirSurfaceCreateFlagsKHR flags;
|
||||
MirConnection* connection;
|
||||
MirSurface* mirSurface;
|
||||
} VkMirSurfaceCreateInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
|
||||
VkInstance instance,
|
||||
const VkMirSurfaceCreateInfoKHR* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
|
||||
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t queueFamilyIndex,
|
||||
MirConnection* connection);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
108
meson.build
108
meson.build
@@ -1,4 +1,4 @@
|
||||
# Copyright © 2017-2018 Intel Corporation
|
||||
# Copyright © 2017-2019 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -34,8 +34,6 @@ cpp = meson.get_compiler('cpp')
|
||||
|
||||
null_dep = dependency('', required : false)
|
||||
|
||||
system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly', 'linux'].contains(host_machine.system())
|
||||
|
||||
# Arguments for the preprocessor, put these in a separate array from the C and
|
||||
# C++ (cpp in meson terminology) arguments since they need to be added to the
|
||||
# default arguments for both C and C++.
|
||||
@@ -43,8 +41,7 @@ pre_args = [
|
||||
'-D__STDC_CONSTANT_MACROS',
|
||||
'-D__STDC_FORMAT_MACROS',
|
||||
'-D__STDC_LIMIT_MACROS',
|
||||
'-DVERSION="@0@"'.format(meson.project_version()),
|
||||
'-DPACKAGE_VERSION=VERSION',
|
||||
'-DPACKAGE_VERSION="@0@"'.format(meson.project_version()),
|
||||
'-DPACKAGE_BUGREPORT="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa"',
|
||||
]
|
||||
|
||||
@@ -54,20 +51,21 @@ with_valgrind = get_option('valgrind')
|
||||
with_libunwind = get_option('libunwind')
|
||||
with_asm = get_option('asm')
|
||||
with_glx_read_only_text = get_option('glx-read-only-text')
|
||||
with_glx_direct = get_option('glx-direct')
|
||||
with_osmesa = get_option('osmesa')
|
||||
with_swr_arches = get_option('swr-arches')
|
||||
with_tools = get_option('tools')
|
||||
if with_tools.contains('all')
|
||||
with_tools = ['freedreno', 'glsl', 'intel', 'nir', 'nouveau', 'xvmc']
|
||||
with_tools = ['etnaviv', 'freedreno', 'glsl', 'intel', 'nir', 'nouveau', 'xvmc']
|
||||
endif
|
||||
|
||||
dri_drivers_path = get_option('dri-drivers-path')
|
||||
if dri_drivers_path == ''
|
||||
dri_drivers_path = join_paths(get_option('libdir'), 'dri')
|
||||
dri_drivers_path = join_paths(get_option('prefix'), get_option('libdir'), 'dri')
|
||||
endif
|
||||
dri_search_path = get_option('dri-search-path')
|
||||
if dri_search_path == ''
|
||||
dri_search_path = join_paths(get_option('prefix'), dri_drivers_path)
|
||||
dri_search_path = dri_drivers_path
|
||||
endif
|
||||
|
||||
with_gles1 = get_option('gles1')
|
||||
@@ -133,7 +131,7 @@ if _drivers.contains('auto')
|
||||
]
|
||||
elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
|
||||
_drivers = [
|
||||
'pl111', 'v3d', 'vc4', 'freedreno', 'etnaviv', 'imx', 'nouveau',
|
||||
'kmsro', 'v3d', 'vc4', 'freedreno', 'etnaviv', 'nouveau',
|
||||
'tegra', 'virgl', 'swrast',
|
||||
]
|
||||
else
|
||||
@@ -147,7 +145,7 @@ if _drivers.contains('auto')
|
||||
host_machine.system()))
|
||||
endif
|
||||
endif
|
||||
with_gallium_pl111 = _drivers.contains('pl111')
|
||||
with_gallium_kmsro = _drivers.contains('kmsro')
|
||||
with_gallium_radeonsi = _drivers.contains('radeonsi')
|
||||
with_gallium_r300 = _drivers.contains('r300')
|
||||
with_gallium_r600 = _drivers.contains('r600')
|
||||
@@ -157,13 +155,20 @@ with_gallium_softpipe = _drivers.contains('swrast')
|
||||
with_gallium_vc4 = _drivers.contains('vc4')
|
||||
with_gallium_v3d = _drivers.contains('v3d')
|
||||
with_gallium_etnaviv = _drivers.contains('etnaviv')
|
||||
with_gallium_imx = _drivers.contains('imx')
|
||||
with_gallium_tegra = _drivers.contains('tegra')
|
||||
with_gallium_i915 = _drivers.contains('i915')
|
||||
with_gallium_svga = _drivers.contains('svga')
|
||||
with_gallium_virgl = _drivers.contains('virgl')
|
||||
with_gallium_swr = _drivers.contains('swr')
|
||||
|
||||
if cc.get_id() == 'intel'
|
||||
if meson.version().version_compare('< 0.49.0')
|
||||
error('Meson does not have sufficient support of ICC before 0.49.0 to compile mesa')
|
||||
elif with_gallium_swr and meson.version().version_compare('== 0.49.0')
|
||||
warning('Meson as of 0.49.0 is sufficient for compiling mesa with ICC, but there are some caveats with SWR. 0.49.1 should resolve all of these')
|
||||
endif
|
||||
endif
|
||||
|
||||
with_gallium = _drivers.length() != 0 and _drivers != ['']
|
||||
|
||||
if with_gallium and system_has_kms_drm
|
||||
@@ -204,11 +209,8 @@ endif
|
||||
if with_dri_i915 and with_gallium_i915
|
||||
error('Only one i915 provider can be built')
|
||||
endif
|
||||
if with_gallium_imx and not with_gallium_etnaviv
|
||||
error('IMX driver requires etnaviv driver')
|
||||
endif
|
||||
if with_gallium_pl111 and not with_gallium_vc4
|
||||
error('pl111 driver requires vc4 driver')
|
||||
if with_gallium_kmsro and not (with_gallium_vc4 or with_gallium_etnaviv or with_gallium_freedreno)
|
||||
error('kmsro driver requires one or more renderonly drivers (vc4, etnaviv, freedreno)')
|
||||
endif
|
||||
if with_gallium_tegra and not with_gallium_nouveau
|
||||
error('tegra driver requires nouveau driver')
|
||||
@@ -223,8 +225,6 @@ elif system_has_kms_drm
|
||||
else
|
||||
# FIXME: haiku doesn't use dri, and xlib doesn't use dri, probably should
|
||||
# assert here that one of those cases has been met.
|
||||
# FIXME: GNU (hurd) ends up here as well, but meson doesn't officially
|
||||
# support Hurd at time of writing (2017/11)
|
||||
# FIXME: illumos ends up here as well
|
||||
with_dri_platform = 'none'
|
||||
endif
|
||||
@@ -370,9 +370,6 @@ if with_glvnd
|
||||
endif
|
||||
endif
|
||||
|
||||
# TODO: toggle for this
|
||||
with_glx_direct = true
|
||||
|
||||
if with_vulkan_icd_dir == ''
|
||||
with_vulkan_icd_dir = join_paths(get_option('datadir'), 'vulkan/icd.d')
|
||||
endif
|
||||
@@ -388,9 +385,9 @@ endif
|
||||
if with_any_vk and (with_platform_x11 and not with_dri3)
|
||||
error('Vulkan drivers require dri3 for X11 support')
|
||||
endif
|
||||
if with_dri or with_gallium
|
||||
if with_glx == 'disabled' and not with_egl and not with_platform_haiku
|
||||
error('building dri or gallium drivers require at least one window system')
|
||||
if with_dri
|
||||
if with_glx == 'disabled' and not with_egl and not with_gbm and with_osmesa != 'classic'
|
||||
error('building dri drivers require at least one windowing system or classic osmesa')
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -620,7 +617,7 @@ if with_gallium_st_nine
|
||||
error('The nine state tracker requires gallium softpipe/llvmpipe.')
|
||||
elif not (with_gallium_radeonsi or with_gallium_nouveau or with_gallium_r600
|
||||
or with_gallium_r300 or with_gallium_svga or with_gallium_i915)
|
||||
error('The nine state tracker requires at least on non-swrast gallium driver.')
|
||||
error('The nine state tracker requires at least one non-swrast gallium driver.')
|
||||
endif
|
||||
if not with_dri3
|
||||
error('Using nine with wine requires dri3')
|
||||
@@ -628,7 +625,12 @@ if with_gallium_st_nine
|
||||
endif
|
||||
|
||||
if get_option('power8') != 'false'
|
||||
if host_machine.cpu_family() == 'ppc64le'
|
||||
# on old versions of meson the cpu family would return as ppc64le on little
|
||||
# endian power8, this was changed in 0.48 such that the family would always
|
||||
# be ppc64 regardless of endianness, and the the machine.endian() value
|
||||
# should be checked. Since we support versions < 0.48 we need to use
|
||||
# startswith.
|
||||
if host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
|
||||
if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.8')
|
||||
error('Altivec is not supported with gcc version < 4.8.')
|
||||
endif
|
||||
@@ -650,6 +652,7 @@ if get_option('power8') != 'false'
|
||||
endif
|
||||
|
||||
_opencl = get_option('gallium-opencl')
|
||||
clover_cpp_std = []
|
||||
if _opencl != 'disabled'
|
||||
if not with_gallium
|
||||
error('OpenCL Clover implementation requires at least one gallium driver.')
|
||||
@@ -658,10 +661,18 @@ if _opencl != 'disabled'
|
||||
dep_clc = dependency('libclc')
|
||||
with_gallium_opencl = true
|
||||
with_opencl_icd = _opencl == 'icd'
|
||||
|
||||
if host_machine.cpu_family().startswith('ppc') and cpp.compiles('''
|
||||
#if !defined(__VEC__) || !defined(__ALTIVEC__)
|
||||
#error "AltiVec not enabled"
|
||||
#endif''',
|
||||
name : 'Altivec')
|
||||
clover_cpp_std += ['cpp_std=gnu++11']
|
||||
endif
|
||||
else
|
||||
dep_clc = null_dep
|
||||
with_gallium_opencl = false
|
||||
with_gallium_icd = false
|
||||
with_opencl_icd = false
|
||||
endif
|
||||
|
||||
gl_pkgconfig_c_flags = []
|
||||
@@ -781,13 +792,13 @@ if cc.compiles('int foo(void) __attribute__((__noreturn__));',
|
||||
endif
|
||||
|
||||
# TODO: this is very incomplete
|
||||
if ['linux', 'cygwin'].contains(host_machine.system())
|
||||
if ['linux', 'cygwin', 'gnu'].contains(host_machine.system())
|
||||
pre_args += '-D_GNU_SOURCE'
|
||||
endif
|
||||
|
||||
# Check for generic C arguments
|
||||
c_args = []
|
||||
foreach a : ['-Wall', '-Werror=implicit-function-declaration',
|
||||
foreach a : ['-Werror=implicit-function-declaration',
|
||||
'-Werror=missing-prototypes', '-Werror=return-type',
|
||||
'-fno-math-errno',
|
||||
'-fno-trapping-math', '-Qunused-arguments']
|
||||
@@ -809,7 +820,7 @@ endif
|
||||
|
||||
# Check for generic C++ arguments
|
||||
cpp_args = []
|
||||
foreach a : ['-Wall', '-Werror=return-type',
|
||||
foreach a : ['-Werror=return-type',
|
||||
'-fno-math-errno', '-fno-trapping-math',
|
||||
'-Qunused-arguments']
|
||||
if cpp.has_argument(a)
|
||||
@@ -905,8 +916,9 @@ if not cc.links('''#include <stdint.h>
|
||||
int main() {
|
||||
return __sync_add_and_fetch(&v, (uint64_t)1);
|
||||
}''',
|
||||
dependencies : dep_atomic,
|
||||
name : 'GCC 64bit atomics')
|
||||
pre_args += '-DMISSING_64_BIT_ATOMICS'
|
||||
pre_args += '-DMISSING_64BIT_ATOMICS'
|
||||
endif
|
||||
|
||||
# TODO: shared/static? Is this even worth doing?
|
||||
@@ -917,7 +929,7 @@ endif
|
||||
# case of cross compiling where we can use asm, and that's x86_64 -> x86 when
|
||||
# host OS == build OS, since in that case the build machine can run the host's
|
||||
# binaries.
|
||||
if meson.is_cross_build()
|
||||
if with_asm and meson.is_cross_build()
|
||||
if build_machine.system() != host_machine.system()
|
||||
# TODO: It may be possible to do this with an exe_wrapper (like wine).
|
||||
message('Cross compiling from one OS to another, disabling assembly.')
|
||||
@@ -939,7 +951,7 @@ endif
|
||||
with_asm_arch = ''
|
||||
if with_asm
|
||||
if host_machine.cpu_family() == 'x86'
|
||||
if system_has_kms_drm
|
||||
if system_has_kms_drm or host_machine.system() == 'gnu'
|
||||
with_asm_arch = 'x86'
|
||||
pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
|
||||
'-DUSE_SSE_ASM']
|
||||
@@ -968,7 +980,7 @@ if with_asm
|
||||
with_asm_arch = 'sparc'
|
||||
pre_args += ['-DUSE_SPARC_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'ppc64le'
|
||||
elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'ppc64le'
|
||||
pre_args += ['-DUSE_PPC64LE_ASM']
|
||||
@@ -1101,7 +1113,7 @@ dep_libdrm_nouveau = null_dep
|
||||
dep_libdrm_etnaviv = null_dep
|
||||
dep_libdrm_intel = null_dep
|
||||
|
||||
_drm_amdgpu_ver = '2.4.95'
|
||||
_drm_amdgpu_ver = '2.4.97'
|
||||
_drm_radeon_ver = '2.4.71'
|
||||
_drm_nouveau_ver = '2.4.66'
|
||||
_drm_etnaviv_ver = '2.4.89'
|
||||
@@ -1162,7 +1174,7 @@ endif
|
||||
llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit']
|
||||
llvm_optional_modules = []
|
||||
if with_amd_vk or with_gallium_radeonsi or with_gallium_r600
|
||||
llvm_modules += ['amdgpu', 'bitreader', 'ipo']
|
||||
llvm_modules += ['amdgpu', 'native', 'bitreader', 'ipo']
|
||||
if with_gallium_r600
|
||||
llvm_modules += 'asmparser'
|
||||
endif
|
||||
@@ -1176,7 +1188,7 @@ if with_gallium_opencl
|
||||
endif
|
||||
|
||||
if with_amd_vk or with_gallium_radeonsi
|
||||
_llvm_version = '>= 6.0.0'
|
||||
_llvm_version = '>= 7.0.0'
|
||||
elif with_gallium_swr
|
||||
_llvm_version = '>= 6.0.0'
|
||||
elif with_gallium_opencl or with_gallium_r600
|
||||
@@ -1223,6 +1235,9 @@ if with_llvm
|
||||
# programs, so we need to build all C++ code in mesa without rtti as well to
|
||||
# ensure that linking works.
|
||||
if dep_llvm.get_configtool_variable('has-rtti') == 'NO'
|
||||
if with_gallium_nouveau
|
||||
error('The Nouveau driver requires rtti. You either need to turn off nouveau or use an LLVM built with LLVM_ENABLE_RTTI.')
|
||||
endif
|
||||
cpp_args += '-fno-rtti'
|
||||
endif
|
||||
elif with_amd_vk or with_gallium_radeonsi or with_gallium_swr
|
||||
@@ -1317,13 +1332,6 @@ if with_platform_wayland
|
||||
'linux-dmabuf', 'linux-dmabuf-unstable-v1.xml'
|
||||
)
|
||||
pre_args += ['-DHAVE_WAYLAND_PLATFORM', '-DWL_HIDE_DEPRECATED']
|
||||
else
|
||||
prog_wl_scanner = []
|
||||
wl_scanner_arg = ''
|
||||
dep_wl_protocols = null_dep
|
||||
dep_wayland_client = null_dep
|
||||
dep_wayland_server = null_dep
|
||||
wayland_dmabuf_xml = ''
|
||||
endif
|
||||
|
||||
dep_x11 = null_dep
|
||||
@@ -1356,9 +1364,8 @@ if with_platform_x11
|
||||
dep_xdamage = dependency('xdamage', version : '>= 1.1')
|
||||
dep_xfixes = dependency('xfixes')
|
||||
dep_xcb_glx = dependency('xcb-glx', version : '>= 1.8.1')
|
||||
dep_xxf86vm = dependency('xxf86vm', required : false)
|
||||
endif
|
||||
if (with_any_vk or with_glx == 'dri' or
|
||||
if (with_any_vk or with_glx == 'dri' or with_egl or
|
||||
(with_gallium_vdpau or with_gallium_xvmc or with_gallium_va or
|
||||
with_gallium_omx != 'disabled'))
|
||||
dep_xcb = dependency('xcb')
|
||||
@@ -1383,6 +1390,7 @@ if with_platform_x11
|
||||
if with_glx == 'dri'
|
||||
if with_dri_platform == 'drm'
|
||||
dep_dri2proto = dependency('dri2proto', version : '>= 2.8')
|
||||
dep_xxf86vm = dependency('xxf86vm')
|
||||
endif
|
||||
dep_glproto = dependency('glproto', version : '>= 1.4.14')
|
||||
endif
|
||||
@@ -1392,7 +1400,7 @@ if with_platform_x11
|
||||
dep_xcb_xfixes = dependency('xcb-xfixes')
|
||||
endif
|
||||
if with_xlib_lease
|
||||
dep_xcb_xrandr = dependency('xcb-randr', version : '>= 1.12')
|
||||
dep_xcb_xrandr = dependency('xcb-randr')
|
||||
dep_xlib_xrandr = dependency('xrandr', version : '>= 1.3')
|
||||
endif
|
||||
endif
|
||||
@@ -1403,7 +1411,7 @@ endif
|
||||
|
||||
_sensors = get_option('lmsensors')
|
||||
if _sensors != 'false'
|
||||
dep_lmsensors = cc.find_library('libsensors', required : _sensors == 'true')
|
||||
dep_lmsensors = cc.find_library('sensors', required : _sensors == 'true')
|
||||
if dep_lmsensors.found()
|
||||
pre_args += '-DHAVE_LIBSENSORS=1'
|
||||
endif
|
||||
@@ -1433,14 +1441,12 @@ elif with_glx == 'dri'
|
||||
'xcb-glx >= 1.8.1']
|
||||
if with_dri_platform == 'drm'
|
||||
gl_priv_reqs += 'xcb-dri2 >= 1.8'
|
||||
gl_priv_reqs += 'xxf86vm'
|
||||
endif
|
||||
endif
|
||||
if dep_libdrm.found()
|
||||
gl_priv_reqs += 'libdrm >= 2.4.75'
|
||||
endif
|
||||
if dep_xxf86vm.found()
|
||||
gl_priv_reqs += 'xxf86vm'
|
||||
endif
|
||||
|
||||
gl_priv_libs = []
|
||||
if dep_thread.found()
|
||||
|
@@ -58,8 +58,8 @@ option(
|
||||
type : 'array',
|
||||
value : ['auto'],
|
||||
choices : [
|
||||
'', 'auto', 'pl111', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
|
||||
'swrast', 'v3d', 'vc4', 'etnaviv', 'imx', 'tegra', 'i915', 'svga', 'virgl',
|
||||
'', 'auto', 'kmsro', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
|
||||
'swrast', 'v3d', 'vc4', 'etnaviv', 'tegra', 'i915', 'svga', 'virgl',
|
||||
'swr',
|
||||
],
|
||||
description : 'List of gallium drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
|
||||
@@ -301,7 +301,7 @@ option(
|
||||
'tools',
|
||||
type : 'array',
|
||||
value : [],
|
||||
choices : ['freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'xvmc', 'all'],
|
||||
choices : ['etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'xvmc', 'all'],
|
||||
description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
|
||||
)
|
||||
option(
|
||||
@@ -318,3 +318,9 @@ option(
|
||||
choices : ['auto', 'true', 'false'],
|
||||
description : 'Enable VK_EXT_acquire_xlib_display.'
|
||||
)
|
||||
option(
|
||||
'glx-direct',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Enable direct rendering in GLX and EGL for DRI',
|
||||
)
|
||||
|
@@ -48,7 +48,12 @@ import source_list
|
||||
# a path directly. We want to support both, so we need to detect the SCons version,
|
||||
# for which no API is provided by SCons 8-P
|
||||
|
||||
scons_version = tuple(map(int, SCons.__version__.split('.')))
|
||||
# Scons version string has consistently been in this format:
|
||||
# MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd]
|
||||
# so this formula should cover all versions regardless of type
|
||||
# stable, alpha or beta.
|
||||
# For simplicity alpha and beta flags are removed.
|
||||
scons_version = tuple(map(int, SCons.__version__.split('.')[:3]))
|
||||
|
||||
def quietCommandLines(env):
|
||||
# Quiet command lines
|
||||
|
@@ -308,7 +308,20 @@ def generate(env):
|
||||
if env.GetOption('num_jobs') <= 1:
|
||||
env.SetOption('num_jobs', num_jobs())
|
||||
|
||||
env.Decider('MD5-timestamp')
|
||||
# Speed up dependency checking. See
|
||||
# - https://github.com/SCons/scons/wiki/GoFastButton
|
||||
# - https://bugs.freedesktop.org/show_bug.cgi?id=109443
|
||||
|
||||
# Scons version string has consistently been in this format:
|
||||
# MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd]
|
||||
# so this formula should cover all versions regardless of type
|
||||
# stable, alpha or beta.
|
||||
# For simplicity alpha and beta flags are removed.
|
||||
|
||||
scons_version = distutils.version.StrictVersion('.'.join(SCons.__version__.split('.')[:3]))
|
||||
if scons_version < distutils.version.StrictVersion('3.0.2') or \
|
||||
scons_version > distutils.version.StrictVersion('3.0.4'):
|
||||
env.Decider('MD5-timestamp')
|
||||
env.SetOption('max_drift', 60)
|
||||
|
||||
# C preprocessor options
|
||||
|
@@ -81,6 +81,10 @@ if HAVE_BROADCOM_DRIVERS
|
||||
SUBDIRS += broadcom
|
||||
endif
|
||||
|
||||
if HAVE_FREEDRENO_DRIVERS
|
||||
SUBDIRS += freedreno
|
||||
endif
|
||||
|
||||
if NEED_OPENGL_COMMON
|
||||
SUBDIRS += mesa
|
||||
endif
|
||||
|
@@ -33,12 +33,11 @@ LOCAL_SRC_FILES := $(ADDRLIB_FILES)
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/src \
|
||||
$(MESA_TOP)/src/amd/common \
|
||||
$(MESA_TOP)/src/amd/addrlib \
|
||||
$(MESA_TOP)/src/amd/addrlib/core \
|
||||
$(MESA_TOP)/src/amd/addrlib/inc/chip/gfx9 \
|
||||
$(MESA_TOP)/src/amd/addrlib/inc/chip/r800 \
|
||||
$(MESA_TOP)/src/amd/addrlib/gfx9/chip \
|
||||
$(MESA_TOP)/src/amd/addrlib/r800/chip
|
||||
$(MESA_TOP)/src/amd/addrlib/inc \
|
||||
$(MESA_TOP)/src/amd/addrlib/src \
|
||||
$(MESA_TOP)/src/amd/addrlib/src/core \
|
||||
$(MESA_TOP)/src/amd/addrlib/src/chip/gfx9 \
|
||||
$(MESA_TOP)/src/amd/addrlib/src/chip/r800
|
||||
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := \
|
||||
$(LOCAL_PATH) \
|
||||
|
@@ -26,12 +26,11 @@ addrlib_libamdgpu_addrlib_la_CPPFLAGS = \
|
||||
-I$(top_srcdir)/src/ \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(srcdir)/common \
|
||||
-I$(srcdir)/addrlib \
|
||||
-I$(srcdir)/addrlib/core \
|
||||
-I$(srcdir)/addrlib/inc/chip/gfx9 \
|
||||
-I$(srcdir)/addrlib/inc/chip/r800 \
|
||||
-I$(srcdir)/addrlib/gfx9/chip \
|
||||
-I$(srcdir)/addrlib/r800/chip
|
||||
-I$(srcdir)/addrlib/inc \
|
||||
-I$(srcdir)/addrlib/src \
|
||||
-I$(srcdir)/addrlib/src/core \
|
||||
-I$(srcdir)/addrlib/src/chip/gfx9 \
|
||||
-I$(srcdir)/addrlib/src/chip/r800
|
||||
|
||||
addrlib_libamdgpu_addrlib_la_CXXFLAGS = \
|
||||
$(VISIBILITY_CXXFLAGS) $(CXX11_CXXFLAGS)
|
||||
|
@@ -5,35 +5,33 @@ COMMON_HEADER_FILES = \
|
||||
common/amd_kernel_code_t.h
|
||||
|
||||
ADDRLIB_FILES = \
|
||||
addrlib/addrinterface.cpp \
|
||||
addrlib/addrinterface.h \
|
||||
addrlib/addrtypes.h \
|
||||
addrlib/amdgpu_asic_addr.h \
|
||||
addrlib/core/addrcommon.h \
|
||||
addrlib/core/addrelemlib.cpp \
|
||||
addrlib/core/addrelemlib.h \
|
||||
addrlib/core/addrlib.cpp \
|
||||
addrlib/core/addrlib.h \
|
||||
addrlib/core/addrlib1.cpp \
|
||||
addrlib/core/addrlib1.h \
|
||||
addrlib/core/addrlib2.cpp \
|
||||
addrlib/core/addrlib2.h \
|
||||
addrlib/core/addrobject.cpp \
|
||||
addrlib/core/addrobject.h \
|
||||
addrlib/gfx9/chip/gfx9_enum.h \
|
||||
addrlib/gfx9/coord.cpp \
|
||||
addrlib/gfx9/coord.h \
|
||||
addrlib/gfx9/gfx9addrlib.cpp \
|
||||
addrlib/gfx9/gfx9addrlib.h \
|
||||
addrlib/inc/chip/gfx9/gfx9_gb_reg.h \
|
||||
addrlib/inc/chip/r800/si_gb_reg.h \
|
||||
addrlib/r800/chip/si_ci_vi_merged_enum.h \
|
||||
addrlib/r800/ciaddrlib.cpp \
|
||||
addrlib/r800/ciaddrlib.h \
|
||||
addrlib/r800/egbaddrlib.cpp \
|
||||
addrlib/r800/egbaddrlib.h \
|
||||
addrlib/r800/siaddrlib.cpp \
|
||||
addrlib/r800/siaddrlib.h
|
||||
addrlib/inc/addrinterface.h \
|
||||
addrlib/inc/addrtypes.h \
|
||||
addrlib/src/addrinterface.cpp \
|
||||
addrlib/src/amdgpu_asic_addr.h \
|
||||
addrlib/src/core/addrcommon.h \
|
||||
addrlib/src/core/addrelemlib.cpp \
|
||||
addrlib/src/core/addrelemlib.h \
|
||||
addrlib/src/core/addrlib.cpp \
|
||||
addrlib/src/core/addrlib.h \
|
||||
addrlib/src/core/addrlib1.cpp \
|
||||
addrlib/src/core/addrlib1.h \
|
||||
addrlib/src/core/addrlib2.cpp \
|
||||
addrlib/src/core/addrlib2.h \
|
||||
addrlib/src/core/addrobject.cpp \
|
||||
addrlib/src/core/addrobject.h \
|
||||
addrlib/src/core/coord.cpp \
|
||||
addrlib/src/core/coord.h \
|
||||
addrlib/src/gfx9/gfx9addrlib.cpp \
|
||||
addrlib/src/gfx9/gfx9addrlib.h \
|
||||
addrlib/src/chip/gfx9/gfx9_gb_reg.h \
|
||||
addrlib/src/chip/r800/si_gb_reg.h \
|
||||
addrlib/src/r800/ciaddrlib.cpp \
|
||||
addrlib/src/r800/ciaddrlib.h \
|
||||
addrlib/src/r800/egbaddrlib.cpp \
|
||||
addrlib/src/r800/egbaddrlib.h \
|
||||
addrlib/src/r800/siaddrlib.cpp \
|
||||
addrlib/src/r800/siaddrlib.h
|
||||
|
||||
AMD_COMPILER_FILES = \
|
||||
common/ac_binary.c \
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -177,7 +177,6 @@ typedef struct _ADDR_EQUATION
|
||||
///< stacked vertically prior to swizzling
|
||||
} ADDR_EQUATION;
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* @brief Alloc system memory flags.
|
||||
@@ -409,8 +408,6 @@ ADDR_E_RETURNCODE ADDR_API AddrCreate(
|
||||
const ADDR_CREATE_INPUT* pAddrCreateIn,
|
||||
ADDR_CREATE_OUTPUT* pAddrCreateOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrDestroy
|
||||
@@ -425,8 +422,6 @@ ADDR_E_RETURNCODE ADDR_API AddrCreate(
|
||||
ADDR_E_RETURNCODE ADDR_API AddrDestroy(
|
||||
ADDR_HANDLE hLib);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -658,8 +653,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeSurfaceInfo(
|
||||
const ADDR_COMPUTE_SURFACE_INFO_INPUT* pIn,
|
||||
ADDR_COMPUTE_SURFACE_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT
|
||||
@@ -748,8 +741,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeSurfaceAddrFromCoord(
|
||||
const ADDR_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR_COMPUTE_SURFACE_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_SURFACE_COORDFROMADDR_INPUT
|
||||
@@ -931,8 +922,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeHtileInfo(
|
||||
const ADDR_COMPUTE_HTILE_INFO_INPUT* pIn,
|
||||
ADDR_COMPUTE_HTILE_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_HTILE_ADDRFROMCOORD_INPUT
|
||||
@@ -995,8 +984,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeHtileAddrFromCoord(
|
||||
const ADDR_COMPUTE_HTILE_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR_COMPUTE_HTILE_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_HTILE_COORDFROMADDR_INPUT
|
||||
@@ -1057,8 +1044,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeHtileCoordFromAddr(
|
||||
const ADDR_COMPUTE_HTILE_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR_COMPUTE_HTILE_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// C-mask functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1146,8 +1131,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeCmaskInfo(
|
||||
const ADDR_COMPUTE_CMASK_INFO_INPUT* pIn,
|
||||
ADDR_COMPUTE_CMASK_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_CMASK_ADDRFROMCOORD_INPUT
|
||||
@@ -1208,8 +1191,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeCmaskAddrFromCoord(
|
||||
const ADDR_COMPUTE_CMASK_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR_COMPUTE_CMASK_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_CMASK_COORDFROMADDR_INPUT
|
||||
@@ -1268,8 +1249,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeCmaskCoordFromAddr(
|
||||
const ADDR_COMPUTE_CMASK_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR_COMPUTE_CMASK_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// F-mask functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1350,8 +1329,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeFmaskInfo(
|
||||
const ADDR_COMPUTE_FMASK_INFO_INPUT* pIn,
|
||||
ADDR_COMPUTE_FMASK_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_FMASK_ADDRFROMCOORD_INPUT
|
||||
@@ -1428,8 +1405,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeFmaskAddrFromCoord(
|
||||
const ADDR_COMPUTE_FMASK_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR_COMPUTE_FMASK_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_FMASK_COORDFROMADDR_INPUT
|
||||
@@ -1503,8 +1478,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeFmaskCoordFromAddr(
|
||||
const ADDR_COMPUTE_FMASK_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR_COMPUTE_FMASK_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Element/utility functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1593,7 +1566,6 @@ ADDR_E_RETURNCODE ADDR_API AddrExtractBankPipeSwizzle(
|
||||
const ADDR_EXTRACT_BANKPIPE_SWIZZLE_INPUT* pIn,
|
||||
ADDR_EXTRACT_BANKPIPE_SWIZZLE_OUTPUT* pOut);
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMBINE_BANKPIPE_SWIZZLE_INPUT
|
||||
@@ -1651,8 +1623,6 @@ ADDR_E_RETURNCODE ADDR_API AddrCombineBankPipeSwizzle(
|
||||
const ADDR_COMBINE_BANKPIPE_SWIZZLE_INPUT* pIn,
|
||||
ADDR_COMBINE_BANKPIPE_SWIZZLE_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_SLICESWIZZLE_INPUT
|
||||
@@ -1679,8 +1649,6 @@ typedef struct _ADDR_COMPUTE_SLICESWIZZLE_INPUT
|
||||
///< README: When tileIndex is not -1, this must be valid
|
||||
} ADDR_COMPUTE_SLICESWIZZLE_INPUT;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_SLICESWIZZLE_OUTPUT
|
||||
@@ -1711,7 +1679,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeSliceSwizzle(
|
||||
const ADDR_COMPUTE_SLICESWIZZLE_INPUT* pIn,
|
||||
ADDR_COMPUTE_SLICESWIZZLE_OUTPUT* pOut);
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrSwizzleGenOption
|
||||
@@ -1802,8 +1769,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeBaseSwizzle(
|
||||
const ADDR_COMPUTE_BASE_SWIZZLE_INPUT* pIn,
|
||||
ADDR_COMPUTE_BASE_SWIZZLE_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ELEM_GETEXPORTNORM_INPUT
|
||||
@@ -1844,8 +1809,6 @@ BOOL_32 ADDR_API ElemGetExportNorm(
|
||||
ADDR_HANDLE hLib,
|
||||
const ELEM_GETEXPORTNORM_INPUT* pIn);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ELEM_FLT32TODEPTHPIXEL_INPUT
|
||||
@@ -1901,8 +1864,6 @@ ADDR_E_RETURNCODE ADDR_API ElemFlt32ToDepthPixel(
|
||||
const ELEM_FLT32TODEPTHPIXEL_INPUT* pIn,
|
||||
ELEM_FLT32TODEPTHPIXEL_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ELEM_FLT32TOCOLORPIXEL_INPUT
|
||||
@@ -1956,6 +1917,21 @@ ADDR_E_RETURNCODE ADDR_API ElemFlt32ToColorPixel(
|
||||
const ELEM_FLT32TOCOLORPIXEL_INPUT* pIn,
|
||||
ELEM_FLT32TOCOLORPIXEL_OUTPUT* pOut);
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ElemSize
|
||||
*
|
||||
* @brief
|
||||
* Get bits-per-element for specified format
|
||||
*
|
||||
* @return
|
||||
* Bits-per-element of specified format
|
||||
*
|
||||
****************************************************************************************************
|
||||
*/
|
||||
UINT_32 ADDR_API ElemSize(
|
||||
ADDR_HANDLE hLib,
|
||||
AddrFormat format);
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
@@ -2014,8 +1990,6 @@ ADDR_E_RETURNCODE ADDR_API AddrConvertTileInfoToHW(
|
||||
const ADDR_CONVERT_TILEINFOTOHW_INPUT* pIn,
|
||||
ADDR_CONVERT_TILEINFOTOHW_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_CONVERT_TILEINDEX_INPUT
|
||||
@@ -2140,8 +2114,6 @@ ADDR_E_RETURNCODE ADDR_API AddrConvertTileIndex1(
|
||||
const ADDR_CONVERT_TILEINDEX1_INPUT* pIn,
|
||||
ADDR_CONVERT_TILEINDEX_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_GET_TILEINDEX_INPUT
|
||||
@@ -2187,8 +2159,6 @@ ADDR_E_RETURNCODE ADDR_API AddrGetTileIndex(
|
||||
const ADDR_GET_TILEINDEX_INPUT* pIn,
|
||||
ADDR_GET_TILEINDEX_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_PRT_INFO_INPUT
|
||||
@@ -2233,8 +2203,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputePrtInfo(
|
||||
const ADDR_PRT_INFO_INPUT* pIn,
|
||||
ADDR_PRT_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DCC key functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -2295,8 +2263,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeDccInfo(
|
||||
const ADDR_COMPUTE_DCCINFO_INPUT* pIn,
|
||||
ADDR_COMPUTE_DCCINFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_GET_MAX_ALINGMENTS_OUTPUT
|
||||
@@ -2360,7 +2326,6 @@ ADDR_E_RETURNCODE ADDR_API AddrGetMaxMetaAlignments(
|
||||
*
|
||||
**/
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface functions for Gfx9
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -2395,7 +2360,8 @@ typedef union _ADDR2_SURFACE_FLAGS
|
||||
UINT_32 noMetadata : 1; ///< This resource has no metadata
|
||||
UINT_32 metaRbUnaligned : 1; ///< This resource has rb unaligned metadata
|
||||
UINT_32 metaPipeUnaligned : 1; ///< This resource has pipe unaligned metadata
|
||||
UINT_32 reserved : 14; ///< Reserved bits
|
||||
UINT_32 view3dAs2dArray : 1; ///< This resource is a 3D resource viewed as 2D array
|
||||
UINT_32 reserved : 13; ///< Reserved bits
|
||||
};
|
||||
|
||||
UINT_32 value;
|
||||
@@ -2523,8 +2489,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceInfo(
|
||||
const ADDR2_COMPUTE_SURFACE_INFO_INPUT* pIn,
|
||||
ADDR2_COMPUTE_SURFACE_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT
|
||||
@@ -2591,8 +2555,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceAddrFromCoord(
|
||||
const ADDR2_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR2_COMPUTE_SURFACE_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_SURFACE_COORDFROMADDR_INPUT
|
||||
@@ -2658,8 +2620,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceCoordFromAddr(
|
||||
const ADDR2_COMPUTE_SURFACE_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR2_COMPUTE_SURFACE_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// HTile functions for Gfx9
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -2710,8 +2670,10 @@ typedef struct _ADDR2_META_MIP_INFO
|
||||
|
||||
struct
|
||||
{
|
||||
UINT_32 offset;
|
||||
UINT_32 sliceSize;
|
||||
UINT_32 offset; ///< Metadata offset within one slice,
|
||||
/// the thickness of a slice is meta block depth.
|
||||
UINT_32 sliceSize; ///< Metadata size within one slice,
|
||||
/// the thickness of a slice is meta block depth.
|
||||
};
|
||||
};
|
||||
} ADDR2_META_MIP_INFO;
|
||||
@@ -2735,7 +2697,9 @@ typedef struct _ADDR2_COMPUTE_HTILE_INFO_INPUT
|
||||
UINT_32 unalignedHeight; ///< Depth surface original height (of mip0)
|
||||
UINT_32 numSlices; ///< Number of slices of depth surface (of mip0)
|
||||
UINT_32 numMipLevels; ///< Total mipmap levels of color surface
|
||||
UINT_32 firstMipIdInTail;
|
||||
UINT_32 firstMipIdInTail; /// Id of the first mip in tail,
|
||||
/// if no mip is in tail, it should be set to
|
||||
/// number of mip levels
|
||||
} ADDR2_COMPUTE_HTILE_INFO_INPUT;
|
||||
|
||||
/**
|
||||
@@ -2777,8 +2741,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileInfo(
|
||||
const ADDR2_COMPUTE_HTILE_INFO_INPUT* pIn,
|
||||
ADDR2_COMPUTE_HTILE_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_HTILE_ADDRFROMCOORD_INPUT
|
||||
@@ -2836,8 +2798,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileAddrFromCoord(
|
||||
const ADDR2_COMPUTE_HTILE_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR2_COMPUTE_HTILE_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_HTILE_COORDFROMADDR_INPUT
|
||||
@@ -2896,8 +2856,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileCoordFromAddr(
|
||||
const ADDR2_COMPUTE_HTILE_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR2_COMPUTE_HTILE_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// C-mask functions for Gfx9
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -2963,8 +2921,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskInfo(
|
||||
const ADDR2_COMPUTE_CMASK_INFO_INPUT* pIn,
|
||||
ADDR2_COMPUTE_CMASK_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_CMASK_ADDRFROMCOORD_INPUT
|
||||
@@ -3026,8 +2982,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskAddrFromCoord(
|
||||
const ADDR2_COMPUTE_CMASK_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR2_COMPUTE_CMASK_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_CMASK_COORDFROMADDR_INPUT
|
||||
@@ -3086,8 +3040,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskCoordFromAddr(
|
||||
const ADDR2_COMPUTE_CMASK_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR2_COMPUTE_CMASK_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// F-mask functions for Gfx9
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -3170,8 +3122,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskInfo(
|
||||
const ADDR2_COMPUTE_FMASK_INFO_INPUT* pIn,
|
||||
ADDR2_COMPUTE_FMASK_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_FMASK_ADDRFROMCOORD_INPUT
|
||||
@@ -3231,8 +3181,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskAddrFromCoord(
|
||||
const ADDR2_COMPUTE_FMASK_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR2_COMPUTE_FMASK_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_FMASK_COORDFROMADDR_INPUT
|
||||
@@ -3291,8 +3239,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskCoordFromAddr(
|
||||
const ADDR2_COMPUTE_FMASK_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR2_COMPUTE_FMASK_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DCC key functions for Gfx9
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -3321,7 +3267,8 @@ typedef struct _ADDR2_COMPUTE_DCCINFO_INPUT
|
||||
UINT_32 numMipLevels; ///< Total mipmap levels of color surface
|
||||
UINT_32 dataSurfaceSize; ///< The padded size of all slices and mip levels
|
||||
///< useful in meta linear case
|
||||
UINT_32 firstMipIdInTail;
|
||||
UINT_32 firstMipIdInTail; ///< The id of first mip in tail, if no mip is in tail,
|
||||
/// it should be number of mip levels
|
||||
} ADDR2_COMPUTE_DCCINFO_INPUT;
|
||||
|
||||
/**
|
||||
@@ -3356,7 +3303,9 @@ typedef struct _ADDR2_COMPUTE_DCCINFO_OUTPUT
|
||||
union
|
||||
{
|
||||
UINT_32 fastClearSizePerSlice; ///< Size of DCC within a slice should be fast cleared
|
||||
UINT_32 dccRamSliceSize;
|
||||
UINT_32 dccRamSliceSize; ///< DCC ram size per slice. For mipmap, it's
|
||||
/// the slize size of a mip chain, the thickness of a
|
||||
/// a slice is meta block depth
|
||||
};
|
||||
|
||||
ADDR2_META_MIP_INFO* pMipInfo; ///< DCC mip information
|
||||
@@ -3376,7 +3325,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeDccInfo(
|
||||
const ADDR2_COMPUTE_DCCINFO_INPUT* pIn,
|
||||
ADDR2_COMPUTE_DCCINFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_DCC_ADDRFROMCOORD_INPUT
|
||||
@@ -3628,6 +3576,55 @@ typedef union _ADDR2_SWTYPE_SET
|
||||
UINT_32 value;
|
||||
} ADDR2_SWTYPE_SET;
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_SWMODE_SET
|
||||
*
|
||||
* @brief
|
||||
* Bit field that defines swizzle type
|
||||
****************************************************************************************************
|
||||
*/
|
||||
typedef union _ADDR2_SWMODE_SET
|
||||
{
|
||||
struct
|
||||
{
|
||||
UINT_32 swLinear : 1;
|
||||
UINT_32 sw256B_S : 1;
|
||||
UINT_32 sw256B_D : 1;
|
||||
UINT_32 sw256B_R : 1;
|
||||
UINT_32 sw4KB_Z : 1;
|
||||
UINT_32 sw4KB_S : 1;
|
||||
UINT_32 sw4KB_D : 1;
|
||||
UINT_32 sw4KB_R : 1;
|
||||
UINT_32 sw64KB_Z : 1;
|
||||
UINT_32 sw64KB_S : 1;
|
||||
UINT_32 sw64KB_D : 1;
|
||||
UINT_32 sw64KB_R : 1;
|
||||
UINT_32 swVar_Z : 1;
|
||||
UINT_32 swVar_S : 1;
|
||||
UINT_32 swVar_D : 1;
|
||||
UINT_32 swVar_R : 1;
|
||||
UINT_32 sw64KB_Z_T : 1;
|
||||
UINT_32 sw64KB_S_T : 1;
|
||||
UINT_32 sw64KB_D_T : 1;
|
||||
UINT_32 sw64KB_R_T : 1;
|
||||
UINT_32 sw4KB_Z_X : 1;
|
||||
UINT_32 sw4KB_S_X : 1;
|
||||
UINT_32 sw4KB_D_X : 1;
|
||||
UINT_32 sw4KB_R_X : 1;
|
||||
UINT_32 sw64KB_Z_X : 1;
|
||||
UINT_32 sw64KB_S_X : 1;
|
||||
UINT_32 sw64KB_D_X : 1;
|
||||
UINT_32 sw64KB_R_X : 1;
|
||||
UINT_32 swVar_Z_X : 1;
|
||||
UINT_32 swVar_S_X : 1;
|
||||
UINT_32 swVar_D_X : 1;
|
||||
UINT_32 swVar_R_X : 1;
|
||||
};
|
||||
|
||||
UINT_32 value;
|
||||
} ADDR2_SWMODE_SET;
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_GET_PREFERRED_SURF_SETTING_INPUT
|
||||
@@ -3681,6 +3678,7 @@ typedef struct _ADDR2_GET_PREFERRED_SURF_SETTING_OUTPUT
|
||||
/// type
|
||||
ADDR2_SWTYPE_SET validSwTypeSet; ///< Valid swizzle type bit combination
|
||||
ADDR2_SWTYPE_SET clientPreferredSwSet; ///< Client-preferred swizzle type bit combination
|
||||
ADDR2_SWMODE_SET validSwModeSet; ///< Valid swizzle mode bit combination
|
||||
} ADDR2_GET_PREFERRED_SURF_SETTING_OUTPUT;
|
||||
|
||||
/**
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -112,7 +112,6 @@ typedef int INT;
|
||||
#define GC_FASTCALL ADDR_FASTCALL
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__GNUC__)
|
||||
#define ADDR_INLINE static inline // inline needs to be static to link
|
||||
#else
|
||||
@@ -353,7 +352,7 @@ typedef enum _AddrFormat {
|
||||
ADDR_FMT_3_3_2 = 0x00000003,
|
||||
ADDR_FMT_RESERVED_4 = 0x00000004,
|
||||
ADDR_FMT_16 = 0x00000005,
|
||||
ADDR_FMT_16_FLOAT = 0x00000006,
|
||||
ADDR_FMT_16_FLOAT = ADDR_FMT_16,
|
||||
ADDR_FMT_8_8 = 0x00000007,
|
||||
ADDR_FMT_5_6_5 = 0x00000008,
|
||||
ADDR_FMT_6_5_5 = 0x00000009,
|
||||
@@ -361,28 +360,28 @@ typedef enum _AddrFormat {
|
||||
ADDR_FMT_4_4_4_4 = 0x0000000b,
|
||||
ADDR_FMT_5_5_5_1 = 0x0000000c,
|
||||
ADDR_FMT_32 = 0x0000000d,
|
||||
ADDR_FMT_32_FLOAT = 0x0000000e,
|
||||
ADDR_FMT_32_FLOAT = ADDR_FMT_32,
|
||||
ADDR_FMT_16_16 = 0x0000000f,
|
||||
ADDR_FMT_16_16_FLOAT = 0x00000010,
|
||||
ADDR_FMT_16_16_FLOAT = ADDR_FMT_16_16,
|
||||
ADDR_FMT_8_24 = 0x00000011,
|
||||
ADDR_FMT_8_24_FLOAT = 0x00000012,
|
||||
ADDR_FMT_8_24_FLOAT = ADDR_FMT_8_24,
|
||||
ADDR_FMT_24_8 = 0x00000013,
|
||||
ADDR_FMT_24_8_FLOAT = 0x00000014,
|
||||
ADDR_FMT_24_8_FLOAT = ADDR_FMT_24_8,
|
||||
ADDR_FMT_10_11_11 = 0x00000015,
|
||||
ADDR_FMT_10_11_11_FLOAT = 0x00000016,
|
||||
ADDR_FMT_10_11_11_FLOAT = ADDR_FMT_10_11_11,
|
||||
ADDR_FMT_11_11_10 = 0x00000017,
|
||||
ADDR_FMT_11_11_10_FLOAT = 0x00000018,
|
||||
ADDR_FMT_11_11_10_FLOAT = ADDR_FMT_11_11_10,
|
||||
ADDR_FMT_2_10_10_10 = 0x00000019,
|
||||
ADDR_FMT_8_8_8_8 = 0x0000001a,
|
||||
ADDR_FMT_10_10_10_2 = 0x0000001b,
|
||||
ADDR_FMT_X24_8_32_FLOAT = 0x0000001c,
|
||||
ADDR_FMT_32_32 = 0x0000001d,
|
||||
ADDR_FMT_32_32_FLOAT = 0x0000001e,
|
||||
ADDR_FMT_32_32_FLOAT = ADDR_FMT_32_32,
|
||||
ADDR_FMT_16_16_16_16 = 0x0000001f,
|
||||
ADDR_FMT_16_16_16_16_FLOAT = 0x00000020,
|
||||
ADDR_FMT_16_16_16_16_FLOAT = ADDR_FMT_16_16_16_16,
|
||||
ADDR_FMT_RESERVED_33 = 0x00000021,
|
||||
ADDR_FMT_32_32_32_32 = 0x00000022,
|
||||
ADDR_FMT_32_32_32_32_FLOAT = 0x00000023,
|
||||
ADDR_FMT_32_32_32_32_FLOAT = ADDR_FMT_32_32_32_32,
|
||||
ADDR_FMT_RESERVED_36 = 0x00000024,
|
||||
ADDR_FMT_1 = 0x00000025,
|
||||
ADDR_FMT_1_REVERSED = 0x00000026,
|
||||
@@ -393,9 +392,9 @@ typedef enum _AddrFormat {
|
||||
ADDR_FMT_5_9_9_9_SHAREDEXP = 0x0000002b,
|
||||
ADDR_FMT_8_8_8 = 0x0000002c,
|
||||
ADDR_FMT_16_16_16 = 0x0000002d,
|
||||
ADDR_FMT_16_16_16_FLOAT = 0x0000002e,
|
||||
ADDR_FMT_16_16_16_FLOAT = ADDR_FMT_16_16_16,
|
||||
ADDR_FMT_32_32_32 = 0x0000002f,
|
||||
ADDR_FMT_32_32_32_FLOAT = 0x00000030,
|
||||
ADDR_FMT_32_32_32_FLOAT = ADDR_FMT_32_32_32,
|
||||
ADDR_FMT_BC1 = 0x00000031,
|
||||
ADDR_FMT_BC2 = 0x00000032,
|
||||
ADDR_FMT_BC3 = 0x00000033,
|
||||
@@ -550,7 +549,6 @@ typedef enum _AddrHtileBlockSize
|
||||
ADDR_HTILE_BLOCKSIZE_8 = 8,
|
||||
} AddrHtileBlockSize;
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrPipeCfg
|
||||
@@ -584,7 +582,8 @@ typedef enum _AddrPipeCfg
|
||||
ADDR_PIPECFG_P8_32x64_32x32 = 15,
|
||||
ADDR_PIPECFG_P16_32x32_8x16 = 17, /// 16 pipes
|
||||
ADDR_PIPECFG_P16_32x32_16x16 = 18,
|
||||
ADDR_PIPECFG_MAX = 19,
|
||||
ADDR_PIPECFG_RESERVED = 19, /// reserved for internal use
|
||||
ADDR_PIPECFG_MAX = 20,
|
||||
} AddrPipeCfg;
|
||||
|
||||
/**
|
||||
@@ -712,7 +711,6 @@ typedef enum _AddrTileType
|
||||
#define ADDR64D "lld" OR "I64d"
|
||||
#endif
|
||||
|
||||
|
||||
/// @brief Union for storing a 32-bit float or 32-bit integer
|
||||
/// @ingroup type
|
||||
///
|
||||
@@ -728,7 +726,6 @@ typedef union {
|
||||
float f;
|
||||
} ADDR_FLT_32;
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Macros for controlling linking and building on multiple systems
|
@@ -19,35 +19,33 @@
|
||||
# SOFTWARE.
|
||||
|
||||
files_addrlib = files(
|
||||
'addrinterface.cpp',
|
||||
'addrinterface.h',
|
||||
'addrtypes.h',
|
||||
'core/addrcommon.h',
|
||||
'core/addrelemlib.cpp',
|
||||
'core/addrelemlib.h',
|
||||
'core/addrlib.cpp',
|
||||
'core/addrlib.h',
|
||||
'core/addrlib1.cpp',
|
||||
'core/addrlib1.h',
|
||||
'core/addrlib2.cpp',
|
||||
'core/addrlib2.h',
|
||||
'core/addrobject.cpp',
|
||||
'core/addrobject.h',
|
||||
'gfx9/chip/gfx9_enum.h',
|
||||
'gfx9/coord.cpp',
|
||||
'gfx9/coord.h',
|
||||
'gfx9/gfx9addrlib.cpp',
|
||||
'gfx9/gfx9addrlib.h',
|
||||
'amdgpu_asic_addr.h',
|
||||
'inc/chip/gfx9/gfx9_gb_reg.h',
|
||||
'inc/chip/r800/si_gb_reg.h',
|
||||
'r800/chip/si_ci_vi_merged_enum.h',
|
||||
'r800/ciaddrlib.cpp',
|
||||
'r800/ciaddrlib.h',
|
||||
'r800/egbaddrlib.cpp',
|
||||
'r800/egbaddrlib.h',
|
||||
'r800/siaddrlib.cpp',
|
||||
'r800/siaddrlib.h',
|
||||
'inc/addrinterface.h',
|
||||
'inc/addrtypes.h',
|
||||
'src/addrinterface.cpp',
|
||||
'src/core/addrcommon.h',
|
||||
'src/core/addrelemlib.cpp',
|
||||
'src/core/addrelemlib.h',
|
||||
'src/core/addrlib.cpp',
|
||||
'src/core/addrlib.h',
|
||||
'src/core/addrlib1.cpp',
|
||||
'src/core/addrlib1.h',
|
||||
'src/core/addrlib2.cpp',
|
||||
'src/core/addrlib2.h',
|
||||
'src/core/addrobject.cpp',
|
||||
'src/core/addrobject.h',
|
||||
'src/core/coord.cpp',
|
||||
'src/core/coord.h',
|
||||
'src/gfx9/gfx9addrlib.cpp',
|
||||
'src/gfx9/gfx9addrlib.h',
|
||||
'src/amdgpu_asic_addr.h',
|
||||
'src/chip/gfx9/gfx9_gb_reg.h',
|
||||
'src/chip/r800/si_gb_reg.h',
|
||||
'src/r800/ciaddrlib.cpp',
|
||||
'src/r800/ciaddrlib.h',
|
||||
'src/r800/egbaddrlib.cpp',
|
||||
'src/r800/egbaddrlib.h',
|
||||
'src/r800/siaddrlib.cpp',
|
||||
'src/r800/siaddrlib.h',
|
||||
)
|
||||
|
||||
libamdgpu_addrlib = static_library(
|
||||
@@ -55,7 +53,7 @@ libamdgpu_addrlib = static_library(
|
||||
files_addrlib,
|
||||
include_directories : [
|
||||
include_directories(
|
||||
'core', 'inc/chip/gfx9', 'inc/chip/r800', 'gfx9/chip', 'r800/chip',
|
||||
'inc', 'src', 'src/core', 'src/chip/gfx9', 'src/chip/r800',
|
||||
),
|
||||
inc_amd_common, inc_common, inc_src,
|
||||
],
|
||||
|
@@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* 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, sub license, 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 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
|
||||
* NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS
|
||||
* AND/OR ITS SUPPLIERS 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.
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial portions
|
||||
* of the Software.
|
||||
*/
|
||||
#if !defined (SI_CI_VI_MERGED_ENUM_HEADER)
|
||||
#define SI_CI_VI_MERGED_ENUM_HEADER
|
||||
|
||||
typedef enum PipeInterleaveSize {
|
||||
ADDR_CONFIG_PIPE_INTERLEAVE_256B = 0x00000000,
|
||||
ADDR_CONFIG_PIPE_INTERLEAVE_512B = 0x00000001,
|
||||
} PipeInterleaveSize;
|
||||
|
||||
typedef enum RowSize {
|
||||
ADDR_CONFIG_1KB_ROW = 0x00000000,
|
||||
ADDR_CONFIG_2KB_ROW = 0x00000001,
|
||||
ADDR_CONFIG_4KB_ROW = 0x00000002,
|
||||
} RowSize;
|
||||
|
||||
#endif
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -61,13 +61,13 @@ ADDR_E_RETURNCODE ADDR_API AddrCreate(
|
||||
{
|
||||
ADDR_E_RETURNCODE returnCode = ADDR_OK;
|
||||
|
||||
returnCode = Lib::Create(pAddrCreateIn, pAddrCreateOut);
|
||||
{
|
||||
returnCode = Lib::Create(pAddrCreateIn, pAddrCreateOut);
|
||||
}
|
||||
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrDestroy
|
||||
@@ -97,8 +97,6 @@ ADDR_E_RETURNCODE ADDR_API AddrDestroy(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -135,8 +133,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeSurfaceInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrComputeSurfaceAddrFromCoord
|
||||
@@ -201,8 +197,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeSurfaceCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// HTile functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -304,8 +298,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeHtileCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// C-mask functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -408,8 +400,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeCmaskCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// F-mask functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -510,8 +500,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeFmaskCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DCC key functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -546,8 +534,6 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeDccInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Below functions are element related or helper functions
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@@ -850,6 +836,34 @@ BOOL_32 ADDR_API ElemGetExportNorm(
|
||||
return enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ElemSize
|
||||
*
|
||||
* @brief
|
||||
* Get bits-per-element for specified format
|
||||
*
|
||||
* @return
|
||||
* Bits-per-element of specified format
|
||||
*
|
||||
****************************************************************************************************
|
||||
*/
|
||||
UINT_32 ADDR_API ElemSize(
|
||||
ADDR_HANDLE hLib,
|
||||
AddrFormat format)
|
||||
{
|
||||
UINT_32 bpe = 0;
|
||||
|
||||
Addr::Lib* pLib = Lib::GetLib(hLib);
|
||||
|
||||
if (pLib != NULL)
|
||||
{
|
||||
bpe = pLib->GetBpe(format);
|
||||
}
|
||||
|
||||
return bpe;
|
||||
}
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrConvertTileInfoToHW
|
||||
@@ -1105,7 +1119,6 @@ ADDR_E_RETURNCODE ADDR_API AddrGetMaxMetaAlignments(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface functions for Addr2
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1142,7 +1155,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeSurfaceAddrFromCoord
|
||||
@@ -1175,7 +1187,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceAddrFromCoord(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeSurfaceCoordFromAddr
|
||||
@@ -1208,8 +1219,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// HTile functions for Addr2
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1246,7 +1255,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeHtileAddrFromCoord
|
||||
@@ -1279,7 +1287,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileAddrFromCoord(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeHtileCoordFromAddr
|
||||
@@ -1313,8 +1320,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// C-mask functions for Addr2
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1352,7 +1357,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeCmaskAddrFromCoord
|
||||
@@ -1385,7 +1389,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskAddrFromCoord(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeCmaskCoordFromAddr
|
||||
@@ -1419,8 +1422,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// F-mask functions for Addr2
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1457,7 +1458,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeFmaskAddrFromCoord
|
||||
@@ -1490,7 +1490,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskAddrFromCoord(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeFmaskCoordFromAddr
|
||||
@@ -1523,8 +1522,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DCC key functions for Addr2
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2017-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -96,7 +96,6 @@
|
||||
#define AMDGPU_RANGE_HELPER(val, min, max) ((val >= min) && (val < max))
|
||||
#define AMDGPU_IN_RANGE(val, ...) AMDGPU_EXPAND_FIX(AMDGPU_RANGE_HELPER(val, __VA_ARGS__))
|
||||
|
||||
|
||||
// ASICREV_IS(eRevisionId, revisionName)
|
||||
#define ASICREV_IS(r, rn) AMDGPU_IN_RANGE(r, AMDGPU_##rn##_RANGE)
|
||||
#define ASICREV_IS_TAHITI_P(r) ASICREV_IS(r, TAHITI)
|
@@ -2,7 +2,7 @@
|
||||
#define __GFX9_GB_REG_H__
|
||||
|
||||
/*
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -2,7 +2,7 @@
|
||||
#define __SI_GB_REG_H__
|
||||
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -99,7 +99,6 @@
|
||||
#define ADDR_INFO(cond, a) \
|
||||
{ if (!(cond)) { ADDR_PRNT(a); } }
|
||||
|
||||
|
||||
/// @brief Macro for reporting error warning messages
|
||||
/// @ingroup util
|
||||
///
|
||||
@@ -118,7 +117,6 @@
|
||||
ADDR_PRNT((" WARNING in file %s, line %d\n", __FILE__, __LINE__)); \
|
||||
} }
|
||||
|
||||
|
||||
/// @brief Macro for reporting fatal error conditions
|
||||
/// @ingroup util
|
||||
///
|
||||
@@ -261,7 +259,8 @@ union ConfigFlags
|
||||
UINT_32 useHtileSliceAlign : 1; ///< Do htile single slice alignment
|
||||
UINT_32 allowLargeThickTile : 1; ///< Allow 64*thickness*bytesPerPixel > rowSize
|
||||
UINT_32 disableLinearOpt : 1; ///< Disallow tile modes to be optimized to linear
|
||||
UINT_32 reserved : 22; ///< Reserved bits for future use
|
||||
UINT_32 use32bppFor422Fmt : 1; ///< View 422 formats as 32 bits per pixel element
|
||||
UINT_32 reserved : 21; ///< Reserved bits for future use
|
||||
};
|
||||
|
||||
UINT_32 value;
|
||||
@@ -845,7 +844,6 @@ static inline VOID InitChannel(
|
||||
pChanSet->index = index;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* InitChannel
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -72,6 +72,7 @@ ElemLib::ElemLib(
|
||||
default:
|
||||
m_fp16ExportNorm = 1;
|
||||
m_depthPlanarType = ADDR_DEPTH_PLANAR_R800;
|
||||
break;
|
||||
}
|
||||
|
||||
m_configFlags.value = 0;
|
||||
@@ -346,7 +347,6 @@ VOID ElemLib::Int32sToPixel(
|
||||
UINT_32 elemMask=0;
|
||||
UINT_32 elementXor = 0; // address xor when reading bytes from elements
|
||||
|
||||
|
||||
// @@ NOTE: assert if called on a compressed format!
|
||||
|
||||
if (properties.byteAligned) // Components are all byte-sized
|
||||
@@ -1387,38 +1387,33 @@ UINT_32 ElemLib::GetBitsPerPixel(
|
||||
case ADDR_FMT_8_8:
|
||||
case ADDR_FMT_4_4_4_4:
|
||||
case ADDR_FMT_16:
|
||||
case ADDR_FMT_16_FLOAT:
|
||||
bpp = 16;
|
||||
break;
|
||||
case ADDR_FMT_GB_GR: // treat as FMT_8_8
|
||||
case ADDR_FMT_GB_GR:
|
||||
elemMode = ADDR_PACKED_GBGR;
|
||||
bpp = 16;
|
||||
bpp = m_configFlags.use32bppFor422Fmt ? 32 : 16;
|
||||
expandX = m_configFlags.use32bppFor422Fmt ? 2 : 1;
|
||||
break;
|
||||
case ADDR_FMT_BG_RG: // treat as FMT_8_8
|
||||
case ADDR_FMT_BG_RG:
|
||||
elemMode = ADDR_PACKED_BGRG;
|
||||
bpp = 16;
|
||||
bpp = m_configFlags.use32bppFor422Fmt ? 32 : 16;
|
||||
expandX = m_configFlags.use32bppFor422Fmt ? 2 : 1;
|
||||
break;
|
||||
case ADDR_FMT_8_8_8_8:
|
||||
case ADDR_FMT_2_10_10_10:
|
||||
case ADDR_FMT_10_11_11:
|
||||
case ADDR_FMT_11_11_10:
|
||||
case ADDR_FMT_16_16:
|
||||
case ADDR_FMT_16_16_FLOAT:
|
||||
case ADDR_FMT_32:
|
||||
case ADDR_FMT_32_FLOAT:
|
||||
case ADDR_FMT_24_8:
|
||||
case ADDR_FMT_24_8_FLOAT:
|
||||
bpp = 32;
|
||||
break;
|
||||
case ADDR_FMT_16_16_16_16:
|
||||
case ADDR_FMT_16_16_16_16_FLOAT:
|
||||
case ADDR_FMT_32_32:
|
||||
case ADDR_FMT_32_32_FLOAT:
|
||||
case ADDR_FMT_CTX1:
|
||||
bpp = 64;
|
||||
break;
|
||||
case ADDR_FMT_32_32_32_32:
|
||||
case ADDR_FMT_32_32_32_32_FLOAT:
|
||||
bpp = 128;
|
||||
break;
|
||||
case ADDR_FMT_INVALID:
|
||||
@@ -1444,10 +1439,7 @@ UINT_32 ElemLib::GetBitsPerPixel(
|
||||
case ADDR_FMT_32_AS_8:
|
||||
case ADDR_FMT_32_AS_8_8:
|
||||
case ADDR_FMT_8_24:
|
||||
case ADDR_FMT_8_24_FLOAT:
|
||||
case ADDR_FMT_10_10_10_2:
|
||||
case ADDR_FMT_10_11_11_FLOAT:
|
||||
case ADDR_FMT_11_11_10_FLOAT:
|
||||
case ADDR_FMT_5_9_9_9_SHAREDEXP:
|
||||
bpp = 32;
|
||||
break;
|
||||
@@ -1461,12 +1453,10 @@ UINT_32 ElemLib::GetBitsPerPixel(
|
||||
expandX = 3;
|
||||
break;
|
||||
case ADDR_FMT_16_16_16:
|
||||
case ADDR_FMT_16_16_16_FLOAT:
|
||||
elemMode = ADDR_EXPANDED;
|
||||
bpp = 48;//@@ 16; // read 3 elements per pixel
|
||||
expandX = 3;
|
||||
break;
|
||||
case ADDR_FMT_32_32_32_FLOAT:
|
||||
case ADDR_FMT_32_32_32:
|
||||
elemMode = ADDR_EXPANDED;
|
||||
expandX = 3;
|
||||
@@ -1755,7 +1745,6 @@ BOOL_32 ElemLib::IsBlockCompressed(
|
||||
((format >= ADDR_FMT_ASTC_4x4) && (format <= ADDR_FMT_ETC2_128BPP)));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ElemLib::IsCompressed
|
||||
@@ -1797,9 +1786,7 @@ BOOL_32 ElemLib::IsExpand3x(
|
||||
{
|
||||
case ADDR_FMT_8_8_8:
|
||||
case ADDR_FMT_16_16_16:
|
||||
case ADDR_FMT_16_16_16_FLOAT:
|
||||
case ADDR_FMT_32_32_32:
|
||||
case ADDR_FMT_32_32_32_FLOAT:
|
||||
is3x = TRUE;
|
||||
break;
|
||||
default:
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -157,7 +157,6 @@ Lib::~Lib()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Initialization/Helper
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -207,7 +206,7 @@ ADDR_E_RETURNCODE Lib::Create(
|
||||
pLib = SiHwlInit(&client);
|
||||
break;
|
||||
case FAMILY_VI:
|
||||
case FAMILY_CZ: // VI based fusion(carrizo)
|
||||
case FAMILY_CZ:
|
||||
case FAMILY_CI:
|
||||
case FAMILY_KV: // CI based fusion
|
||||
pLib = CiHwlInit(&client);
|
||||
@@ -486,12 +485,10 @@ UINT_32 Lib::Bits2Number(
|
||||
return number;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Element lib
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::Flt32ToColorPixel
|
||||
@@ -607,7 +604,6 @@ ADDR_E_RETURNCODE Lib::Flt32ToColorPixel(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::GetExportNorm
|
||||
@@ -641,4 +637,19 @@ BOOL_32 Lib::GetExportNorm(
|
||||
return enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::GetBpe
|
||||
*
|
||||
* @brief
|
||||
* Get bits-per-element for specified format
|
||||
* @return
|
||||
* bits-per-element of specified format
|
||||
****************************************************************************************************
|
||||
*/
|
||||
UINT_32 Lib::GetBpe(AddrFormat format) const
|
||||
{
|
||||
return GetElemLib()->GetBitsPerPixel(format);
|
||||
}
|
||||
|
||||
} // Addr
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -286,6 +286,8 @@ public:
|
||||
|
||||
ADDR_E_RETURNCODE GetMaxMetaAlignments(ADDR_GET_MAX_ALINGMENTS_OUTPUT* pOut) const;
|
||||
|
||||
UINT_32 GetBpe(AddrFormat format) const;
|
||||
|
||||
protected:
|
||||
Lib(); // Constructor is protected
|
||||
Lib(const Client* pClient);
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2016 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -140,19 +140,17 @@ Lib* Lib::GetLib(
|
||||
((pAddrLib->GetChipFamily() == ADDR_CHIP_FAMILY_IVLD) ||
|
||||
(pAddrLib->GetChipFamily() > ADDR_CHIP_FAMILY_VI)))
|
||||
{
|
||||
// only valid and pre-VI AISC can use AddrLib1 function.
|
||||
// only valid and pre-VI ASIC can use AddrLib1 function.
|
||||
ADDR_ASSERT_ALWAYS();
|
||||
hLib = NULL;
|
||||
}
|
||||
return static_cast<Lib*>(hLib);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface Methods
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::ComputeSurfaceInfo
|
||||
@@ -1230,8 +1228,6 @@ UINT_32 Lib::Thickness(
|
||||
return ModeFlags[tileMode].thickness;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// CMASK/HTILE
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -2012,7 +2008,6 @@ ADDR_E_RETURNCODE Lib::ComputeCmaskInfo(
|
||||
*pPitchOut = (pitchIn + macroWidth - 1) & ~(macroWidth - 1);
|
||||
*pHeightOut = (heightIn + macroHeight - 1) & ~(macroHeight - 1);
|
||||
|
||||
|
||||
sliceBytes = ComputeCmaskBytes(*pPitchOut,
|
||||
*pHeightOut,
|
||||
1);
|
||||
@@ -2240,7 +2235,6 @@ VOID Lib::HwlComputeXmaskCoordFromAddr(
|
||||
UINT_32 groupBits = 8 * m_pipeInterleaveBytes;
|
||||
UINT_32 pipes = numPipes;
|
||||
|
||||
|
||||
//
|
||||
// Compute the micro tile size, in bits. And macro tile pitch and height.
|
||||
//
|
||||
@@ -2293,20 +2287,17 @@ VOID Lib::HwlComputeXmaskCoordFromAddr(
|
||||
pitch = pitchAligned;
|
||||
height = heightAligned;
|
||||
|
||||
|
||||
//
|
||||
// Convert byte address to bit address.
|
||||
//
|
||||
bitAddr = BYTES_TO_BITS(addr) + bitPosition;
|
||||
|
||||
|
||||
//
|
||||
// Remove pipe bits from address.
|
||||
//
|
||||
|
||||
bitAddr = (bitAddr % groupBits) + ((bitAddr/groupBits/pipes)*groupBits);
|
||||
|
||||
|
||||
elemOffset = bitAddr / elemBits;
|
||||
|
||||
tilesPerMacro = (macroTilePitch/factor) * macroTileHeight / MicroTilePixels >> numPipeBits;
|
||||
@@ -2324,7 +2315,6 @@ VOID Lib::HwlComputeXmaskCoordFromAddr(
|
||||
macroY = static_cast<UINT_32>((macroNumber % macrosPerSlice) / macrosPerPitch);
|
||||
macroZ = static_cast<UINT_32>((macroNumber / macrosPerSlice));
|
||||
|
||||
|
||||
microX = microNumber % (macroTilePitch / factor / MicroTileWidth);
|
||||
microY = (microNumber / (macroTilePitch / factor / MicroTileHeight));
|
||||
|
||||
@@ -2335,7 +2325,6 @@ VOID Lib::HwlComputeXmaskCoordFromAddr(
|
||||
microTileCoordY = ComputeXmaskCoordYFromPipe(pipe,
|
||||
*pX/MicroTileWidth);
|
||||
|
||||
|
||||
//
|
||||
// Assemble final coordinates.
|
||||
//
|
||||
@@ -2395,7 +2384,6 @@ UINT_64 Lib::HwlComputeXmaskAddrFromCoord(
|
||||
UINT_64 offsetHi;
|
||||
UINT_64 groupMask;
|
||||
|
||||
|
||||
UINT_32 elemBits = 0;
|
||||
|
||||
UINT_32 numPipes = m_pipes; // This function is accessed prior to si only
|
||||
@@ -3358,7 +3346,6 @@ VOID Lib::PadDimensions(
|
||||
heightAlign);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::HwlPreHandleBaseLvl3xPitch
|
||||
@@ -3420,7 +3407,6 @@ UINT_32 Lib::HwlPostHandleBaseLvl3xPitch(
|
||||
return expPitch;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::IsMacroTiled
|
||||
@@ -3941,7 +3927,6 @@ VOID Lib::ComputeQbStereoInfo(
|
||||
// 1D surface on SI may break this rule, but we can force it to meet by checking .qbStereo.
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::ComputePrtInfo
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2016 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -354,7 +354,6 @@ protected:
|
||||
const ADDR_COMPUTE_SURFACE_INFO_INPUT* pIn,
|
||||
UINT_32* pPitchAlign, UINT_32* pHeightAlign, UINT_32* pSizeAlign) const = 0;
|
||||
|
||||
|
||||
virtual VOID HwlOverrideTileMode(ADDR_COMPUTE_SURFACE_INFO_INPUT* pInOut) const
|
||||
{
|
||||
// not supported in hwl layer
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -113,19 +113,17 @@ Lib* Lib::GetLib(
|
||||
if ((pAddrLib != NULL) &&
|
||||
(pAddrLib->GetChipFamily() <= ADDR_CHIP_FAMILY_VI))
|
||||
{
|
||||
// only valid and GFX9+ AISC can use AddrLib2 function.
|
||||
// only valid and GFX9+ ASIC can use AddrLib2 function.
|
||||
ADDR_ASSERT_ALWAYS();
|
||||
hLib = NULL;
|
||||
}
|
||||
return static_cast<Lib*>(hLib);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface Methods
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
************************************************************************************************************************
|
||||
* Lib::ComputeSurfaceInfo
|
||||
@@ -417,7 +415,6 @@ ADDR_E_RETURNCODE Lib::ComputeSurfaceCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// CMASK/HTILE
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -833,10 +830,6 @@ ADDR_E_RETURNCODE Lib::ComputePipeBankXor(
|
||||
{
|
||||
returnCode = ADDR_INVALIDPARAMS;
|
||||
}
|
||||
else if (IsXor(pIn->swizzleMode) == FALSE)
|
||||
{
|
||||
returnCode = ADDR_NOTSUPPORTED;
|
||||
}
|
||||
else
|
||||
{
|
||||
returnCode = HwlComputePipeBankXor(pIn, pOut);
|
||||
@@ -1885,7 +1878,6 @@ VOID Lib::ComputeQbStereoInfo(
|
||||
pOut->surfSize <<= 1;
|
||||
}
|
||||
|
||||
|
||||
} // V2
|
||||
} // Addr
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -83,6 +83,39 @@ struct Dim3d
|
||||
UINT_32 d;
|
||||
};
|
||||
|
||||
// Macro define resource block type
|
||||
enum AddrBlockType
|
||||
{
|
||||
AddrBlockMicro = 0, // Resource uses 256B block
|
||||
AddrBlock4KB = 1, // Resource uses 4KB block
|
||||
AddrBlock64KB = 2, // Resource uses 64KB block
|
||||
AddrBlockVar = 3, // Resource uses var block, only valid for GFX9
|
||||
AddrBlockLinear = 4, // Resource uses linear swizzle mode
|
||||
|
||||
AddrBlockMaxTiledType = AddrBlock64KB + 1,
|
||||
};
|
||||
|
||||
enum AddrBlockSet
|
||||
{
|
||||
AddrBlockSetMicro = 1 << AddrBlockMicro,
|
||||
AddrBlockSetMacro4KB = 1 << AddrBlock4KB,
|
||||
AddrBlockSetMacro64KB = 1 << AddrBlock64KB,
|
||||
AddrBlockSetVar = 1 << AddrBlockVar,
|
||||
AddrBlockSetLinear = 1 << AddrBlockLinear,
|
||||
|
||||
AddrBlockSetMacro = AddrBlockSetMacro4KB | AddrBlockSetMacro64KB,
|
||||
};
|
||||
|
||||
enum AddrSwSet
|
||||
{
|
||||
AddrSwSetZ = 1 << ADDR_SW_Z,
|
||||
AddrSwSetS = 1 << ADDR_SW_S,
|
||||
AddrSwSetD = 1 << ADDR_SW_D,
|
||||
AddrSwSetR = 1 << ADDR_SW_R,
|
||||
|
||||
AddrSwSetAll = AddrSwSetZ | AddrSwSetS | AddrSwSetD | AddrSwSetR,
|
||||
};
|
||||
|
||||
/**
|
||||
************************************************************************************************************************
|
||||
* @brief This class contains asic independent address lib functionalities
|
||||
@@ -190,6 +223,7 @@ protected:
|
||||
Lib(const Client* pClient);
|
||||
|
||||
static const UINT_32 MaxNumOfBpp = 5;
|
||||
static const UINT_32 MaxNumOfAA = 4;
|
||||
|
||||
static const Dim2d Block256_2d[MaxNumOfBpp];
|
||||
static const Dim3d Block1K_3d[MaxNumOfBpp];
|
||||
@@ -236,6 +270,21 @@ protected:
|
||||
return m_swizzleModeTable[swizzleMode].isZ;
|
||||
}
|
||||
|
||||
BOOL_32 IsStandardSwizzle(AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return m_swizzleModeTable[swizzleMode].isStd;
|
||||
}
|
||||
|
||||
BOOL_32 IsDisplaySwizzle(AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return m_swizzleModeTable[swizzleMode].isDisp;
|
||||
}
|
||||
|
||||
BOOL_32 IsRotateSwizzle(AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return m_swizzleModeTable[swizzleMode].isRot;
|
||||
}
|
||||
|
||||
BOOL_32 IsStandardSwizzle(AddrResourceType resourceType, AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return HwlIsStandardSwizzle(resourceType, swizzleMode);
|
||||
@@ -246,11 +295,6 @@ protected:
|
||||
return HwlIsDisplaySwizzle(resourceType, swizzleMode);
|
||||
}
|
||||
|
||||
BOOL_32 IsRotateSwizzle(AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return m_swizzleModeTable[swizzleMode].isRot;
|
||||
}
|
||||
|
||||
BOOL_32 IsXor(AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return m_swizzleModeTable[swizzleMode].isXor;
|
||||
@@ -496,7 +540,6 @@ protected:
|
||||
return ADDR_NOTSUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
virtual ADDR_E_RETURNCODE HwlComputeSubResourceOffsetForSwizzlePattern(
|
||||
const ADDR2_COMPUTE_SUBRESOURCE_OFFSET_FORSWIZZLEPATTERN_INPUT* pIn,
|
||||
ADDR2_COMPUTE_SUBRESOURCE_OFFSET_FORSWIZZLEPATTERN_OUTPUT* pOut) const
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -28,6 +28,11 @@
|
||||
#include "addrcommon.h"
|
||||
#include "coord.h"
|
||||
|
||||
namespace Addr
|
||||
{
|
||||
namespace V2
|
||||
{
|
||||
|
||||
Coordinate::Coordinate()
|
||||
{
|
||||
dim = 'x';
|
||||
@@ -705,3 +710,5 @@ BOOL_32 CoordEq::operator!=(const CoordEq& b)
|
||||
return !(*this == b);
|
||||
}
|
||||
|
||||
} // V2
|
||||
} // Addr
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -29,6 +29,11 @@
|
||||
#ifndef __COORD_H
|
||||
#define __COORD_H
|
||||
|
||||
namespace Addr
|
||||
{
|
||||
namespace V2
|
||||
{
|
||||
|
||||
class Coordinate
|
||||
{
|
||||
public:
|
||||
@@ -110,5 +115,8 @@ private:
|
||||
CoordTerm m_eq[MaxEqBits];
|
||||
};
|
||||
|
||||
} // V2
|
||||
} // Addr
|
||||
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -57,6 +57,7 @@ struct Gfx9ChipSettings
|
||||
UINT_32 isRaven : 1;
|
||||
UINT_32 isVega12 : 1;
|
||||
UINT_32 isVega20 : 1;
|
||||
UINT_32 reserved0 : 27;
|
||||
|
||||
// Display engine IP version name
|
||||
UINT_32 isDce12 : 1;
|
||||
@@ -84,6 +85,155 @@ enum Gfx9DataType
|
||||
Gfx9DataFmask
|
||||
};
|
||||
|
||||
const UINT_32 Gfx9LinearSwModeMask = (1u << ADDR_SW_LINEAR);
|
||||
|
||||
const UINT_32 Gfx9Blk256BSwModeMask = (1u << ADDR_SW_256B_S) |
|
||||
(1u << ADDR_SW_256B_D) |
|
||||
(1u << ADDR_SW_256B_R);
|
||||
|
||||
const UINT_32 Gfx9Blk4KBSwModeMask = (1u << ADDR_SW_4KB_Z) |
|
||||
(1u << ADDR_SW_4KB_S) |
|
||||
(1u << ADDR_SW_4KB_D) |
|
||||
(1u << ADDR_SW_4KB_R) |
|
||||
(1u << ADDR_SW_4KB_Z_X) |
|
||||
(1u << ADDR_SW_4KB_S_X) |
|
||||
(1u << ADDR_SW_4KB_D_X) |
|
||||
(1u << ADDR_SW_4KB_R_X);
|
||||
|
||||
const UINT_32 Gfx9Blk64KBSwModeMask = (1u << ADDR_SW_64KB_Z) |
|
||||
(1u << ADDR_SW_64KB_S) |
|
||||
(1u << ADDR_SW_64KB_D) |
|
||||
(1u << ADDR_SW_64KB_R) |
|
||||
(1u << ADDR_SW_64KB_Z_T) |
|
||||
(1u << ADDR_SW_64KB_S_T) |
|
||||
(1u << ADDR_SW_64KB_D_T) |
|
||||
(1u << ADDR_SW_64KB_R_T) |
|
||||
(1u << ADDR_SW_64KB_Z_X) |
|
||||
(1u << ADDR_SW_64KB_S_X) |
|
||||
(1u << ADDR_SW_64KB_D_X) |
|
||||
(1u << ADDR_SW_64KB_R_X);
|
||||
|
||||
const UINT_32 Gfx9BlkVarSwModeMask = (1u << ADDR_SW_VAR_Z) |
|
||||
(1u << ADDR_SW_VAR_S) |
|
||||
(1u << ADDR_SW_VAR_D) |
|
||||
(1u << ADDR_SW_VAR_R) |
|
||||
(1u << ADDR_SW_VAR_Z_X) |
|
||||
(1u << ADDR_SW_VAR_S_X) |
|
||||
(1u << ADDR_SW_VAR_D_X) |
|
||||
(1u << ADDR_SW_VAR_R_X);
|
||||
|
||||
const UINT_32 Gfx9ZSwModeMask = (1u << ADDR_SW_4KB_Z) |
|
||||
(1u << ADDR_SW_64KB_Z) |
|
||||
(1u << ADDR_SW_VAR_Z) |
|
||||
(1u << ADDR_SW_64KB_Z_T) |
|
||||
(1u << ADDR_SW_4KB_Z_X) |
|
||||
(1u << ADDR_SW_64KB_Z_X) |
|
||||
(1u << ADDR_SW_VAR_Z_X);
|
||||
|
||||
const UINT_32 Gfx9StandardSwModeMask = (1u << ADDR_SW_256B_S) |
|
||||
(1u << ADDR_SW_4KB_S) |
|
||||
(1u << ADDR_SW_64KB_S) |
|
||||
(1u << ADDR_SW_VAR_S) |
|
||||
(1u << ADDR_SW_64KB_S_T) |
|
||||
(1u << ADDR_SW_4KB_S_X) |
|
||||
(1u << ADDR_SW_64KB_S_X) |
|
||||
(1u << ADDR_SW_VAR_S_X);
|
||||
|
||||
const UINT_32 Gfx9DisplaySwModeMask = (1u << ADDR_SW_256B_D) |
|
||||
(1u << ADDR_SW_4KB_D) |
|
||||
(1u << ADDR_SW_64KB_D) |
|
||||
(1u << ADDR_SW_VAR_D) |
|
||||
(1u << ADDR_SW_64KB_D_T) |
|
||||
(1u << ADDR_SW_4KB_D_X) |
|
||||
(1u << ADDR_SW_64KB_D_X) |
|
||||
(1u << ADDR_SW_VAR_D_X);
|
||||
|
||||
const UINT_32 Gfx9RotateSwModeMask = (1u << ADDR_SW_256B_R) |
|
||||
(1u << ADDR_SW_4KB_R) |
|
||||
(1u << ADDR_SW_64KB_R) |
|
||||
(1u << ADDR_SW_VAR_R) |
|
||||
(1u << ADDR_SW_64KB_R_T) |
|
||||
(1u << ADDR_SW_4KB_R_X) |
|
||||
(1u << ADDR_SW_64KB_R_X) |
|
||||
(1u << ADDR_SW_VAR_R_X);
|
||||
|
||||
const UINT_32 Gfx9XSwModeMask = (1u << ADDR_SW_4KB_Z_X) |
|
||||
(1u << ADDR_SW_4KB_S_X) |
|
||||
(1u << ADDR_SW_4KB_D_X) |
|
||||
(1u << ADDR_SW_4KB_R_X) |
|
||||
(1u << ADDR_SW_64KB_Z_X) |
|
||||
(1u << ADDR_SW_64KB_S_X) |
|
||||
(1u << ADDR_SW_64KB_D_X) |
|
||||
(1u << ADDR_SW_64KB_R_X) |
|
||||
(1u << ADDR_SW_VAR_Z_X) |
|
||||
(1u << ADDR_SW_VAR_S_X) |
|
||||
(1u << ADDR_SW_VAR_D_X) |
|
||||
(1u << ADDR_SW_VAR_R_X);
|
||||
|
||||
const UINT_32 Gfx9TSwModeMask = (1u << ADDR_SW_64KB_Z_T) |
|
||||
(1u << ADDR_SW_64KB_S_T) |
|
||||
(1u << ADDR_SW_64KB_D_T) |
|
||||
(1u << ADDR_SW_64KB_R_T);
|
||||
|
||||
const UINT_32 Gfx9XorSwModeMask = Gfx9XSwModeMask |
|
||||
Gfx9TSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9AllSwModeMask = Gfx9LinearSwModeMask |
|
||||
Gfx9ZSwModeMask |
|
||||
Gfx9StandardSwModeMask |
|
||||
Gfx9DisplaySwModeMask |
|
||||
Gfx9RotateSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc1dSwModeMask = Gfx9LinearSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc2dSwModeMask = Gfx9AllSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc3dSwModeMask = Gfx9AllSwModeMask & ~Gfx9Blk256BSwModeMask & ~Gfx9RotateSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc2dPrtSwModeMask = (Gfx9Blk4KBSwModeMask | Gfx9Blk64KBSwModeMask) & ~Gfx9XSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc3dPrtSwModeMask = Gfx9Rsrc2dPrtSwModeMask & ~Gfx9RotateSwModeMask & ~Gfx9DisplaySwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc3dThinSwModeMask = Gfx9DisplaySwModeMask & ~Gfx9Blk256BSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9MsaaSwModeMask = Gfx9AllSwModeMask & ~Gfx9Blk256BSwModeMask & ~Gfx9LinearSwModeMask;
|
||||
|
||||
const UINT_32 Dce12NonBpp32SwModeMask = (1u << ADDR_SW_LINEAR) |
|
||||
(1u << ADDR_SW_4KB_D) |
|
||||
(1u << ADDR_SW_4KB_R) |
|
||||
(1u << ADDR_SW_64KB_D) |
|
||||
(1u << ADDR_SW_64KB_R) |
|
||||
(1u << ADDR_SW_VAR_D) |
|
||||
(1u << ADDR_SW_VAR_R) |
|
||||
(1u << ADDR_SW_4KB_D_X) |
|
||||
(1u << ADDR_SW_4KB_R_X) |
|
||||
(1u << ADDR_SW_64KB_D_X) |
|
||||
(1u << ADDR_SW_64KB_R_X) |
|
||||
(1u << ADDR_SW_VAR_D_X) |
|
||||
(1u << ADDR_SW_VAR_R_X);
|
||||
|
||||
const UINT_32 Dce12Bpp32SwModeMask = (1u << ADDR_SW_256B_D) |
|
||||
(1u << ADDR_SW_256B_R) |
|
||||
Dce12NonBpp32SwModeMask;
|
||||
|
||||
const UINT_32 Dcn1NonBpp64SwModeMask = (1u << ADDR_SW_LINEAR) |
|
||||
(1u << ADDR_SW_4KB_S) |
|
||||
(1u << ADDR_SW_64KB_S) |
|
||||
(1u << ADDR_SW_VAR_S) |
|
||||
(1u << ADDR_SW_64KB_S_T) |
|
||||
(1u << ADDR_SW_4KB_S_X) |
|
||||
(1u << ADDR_SW_64KB_S_X) |
|
||||
(1u << ADDR_SW_VAR_S_X);
|
||||
|
||||
const UINT_32 Dcn1Bpp64SwModeMask = (1u << ADDR_SW_4KB_D) |
|
||||
(1u << ADDR_SW_64KB_D) |
|
||||
(1u << ADDR_SW_VAR_D) |
|
||||
(1u << ADDR_SW_64KB_D_T) |
|
||||
(1u << ADDR_SW_4KB_D_X) |
|
||||
(1u << ADDR_SW_64KB_D_X) |
|
||||
(1u << ADDR_SW_VAR_D_X) |
|
||||
Dcn1NonBpp64SwModeMask;
|
||||
|
||||
/**
|
||||
************************************************************************************************************************
|
||||
* @brief GFX9 meta equation parameters
|
||||
@@ -122,6 +272,9 @@ public:
|
||||
return (pMem != NULL) ? new (pMem) Gfx9Lib(pClient) : NULL;
|
||||
}
|
||||
|
||||
virtual BOOL_32 IsValidDisplaySwizzleMode(
|
||||
const ADDR2_COMPUTE_SURFACE_INFO_INPUT* pIn) const;
|
||||
|
||||
protected:
|
||||
Gfx9Lib(const Client* pClient);
|
||||
virtual ~Gfx9Lib();
|
||||
@@ -368,7 +521,6 @@ protected:
|
||||
return compressBlkDim;
|
||||
}
|
||||
|
||||
|
||||
static const UINT_32 MaxSeLog2 = 3;
|
||||
static const UINT_32 MaxRbPerSeLog2 = 2;
|
||||
|
||||
@@ -432,14 +584,37 @@ private:
|
||||
UINT_32 mip0Width, UINT_32 mip0Height, UINT_32 mip0Depth,
|
||||
UINT_32* pNumMetaBlkX, UINT_32* pNumMetaBlkY, UINT_32* pNumMetaBlkZ) const;
|
||||
|
||||
BOOL_32 IsValidDisplaySwizzleMode(const ADDR2_COMPUTE_SURFACE_INFO_INPUT* pIn) const;
|
||||
|
||||
ADDR_E_RETURNCODE ComputeSurfaceLinearPadding(
|
||||
const ADDR2_COMPUTE_SURFACE_INFO_INPUT* pIn,
|
||||
UINT_32* pMipmap0PaddedWidth,
|
||||
UINT_32* pSlice0PaddedHeight,
|
||||
ADDR2_MIP_INFO* pMipInfo = NULL) const;
|
||||
|
||||
static ADDR2_BLOCK_SET GetAllowedBlockSet(ADDR2_SWMODE_SET allowedSwModeSet)
|
||||
{
|
||||
ADDR2_BLOCK_SET allowedBlockSet = {};
|
||||
|
||||
allowedBlockSet.micro = (allowedSwModeSet.value & Gfx9Blk256BSwModeMask) ? TRUE : FALSE;
|
||||
allowedBlockSet.macro4KB = (allowedSwModeSet.value & Gfx9Blk4KBSwModeMask) ? TRUE : FALSE;
|
||||
allowedBlockSet.macro64KB = (allowedSwModeSet.value & Gfx9Blk64KBSwModeMask) ? TRUE : FALSE;
|
||||
allowedBlockSet.var = (allowedSwModeSet.value & Gfx9BlkVarSwModeMask) ? TRUE : FALSE;
|
||||
allowedBlockSet.linear = (allowedSwModeSet.value & Gfx9LinearSwModeMask) ? TRUE : FALSE;
|
||||
|
||||
return allowedBlockSet;
|
||||
}
|
||||
|
||||
static ADDR2_SWTYPE_SET GetAllowedSwSet(ADDR2_SWMODE_SET allowedSwModeSet)
|
||||
{
|
||||
ADDR2_SWTYPE_SET allowedSwSet = {};
|
||||
|
||||
allowedSwSet.sw_Z = (allowedSwModeSet.value & Gfx9ZSwModeMask) ? TRUE : FALSE;
|
||||
allowedSwSet.sw_S = (allowedSwModeSet.value & Gfx9StandardSwModeMask) ? TRUE : FALSE;
|
||||
allowedSwSet.sw_D = (allowedSwModeSet.value & Gfx9DisplaySwModeMask) ? TRUE : FALSE;
|
||||
allowedSwSet.sw_R = (allowedSwModeSet.value & Gfx9RotateSwModeMask) ? TRUE : FALSE;
|
||||
|
||||
return allowedSwSet;
|
||||
}
|
||||
|
||||
Gfx9ChipSettings m_settings;
|
||||
|
||||
CoordEq m_cachedMetaEq[MaxCachedMetaEq];
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -1038,7 +1038,6 @@ VOID CiLib::HwlOverrideTileMode(
|
||||
{
|
||||
switch (pInOut->format)
|
||||
{
|
||||
// see //gfxip/gcB/devel/cds/src/verif/tc/models/csim/tcp.cpp
|
||||
// tcpError("Thick micro tiling is not supported for format...
|
||||
case ADDR_FMT_X24_8_32_FLOAT:
|
||||
case ADDR_FMT_32_AS_8:
|
||||
@@ -2033,7 +2032,6 @@ UINT_64 CiLib::HwlComputeMetadataNibbleAddress(
|
||||
/// NOTE *2 because we are converting to Nibble address in this step
|
||||
UINT_64 metaAddressInPipe = blockInBankpipeWithBankBits * 2 * metadataBitSize / 8;
|
||||
|
||||
|
||||
///--------------------------------------------------------------------------------------------
|
||||
/// Reinsert pipe bits back into the final address
|
||||
///--------------------------------------------------------------------------------------------
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -151,12 +151,14 @@ protected:
|
||||
UINT_32 mipLevel, UINT_32 numSamples, ADDR_COMPUTE_SURFACE_INFO_OUTPUT* pOut) const;
|
||||
|
||||
private:
|
||||
|
||||
VOID ReadGbTileMode(
|
||||
UINT_32 regValue, TileConfig* pCfg) const;
|
||||
|
||||
VOID ReadGbMacroTileCfg(
|
||||
UINT_32 regValue, ADDR_TILEINFO* pCfg) const;
|
||||
|
||||
private:
|
||||
BOOL_32 InitTileSettingTable(
|
||||
const UINT_32 *pSetting, UINT_32 noOfEntries);
|
||||
|
||||
@@ -197,5 +199,3 @@ private:
|
||||
} // Addr
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -436,7 +436,6 @@ BOOL_32 EgBasedLib::ComputeSurfaceInfoMicroTiled(
|
||||
&expPitch,
|
||||
&expHeight);
|
||||
|
||||
|
||||
pOut->pitch = expPitch;
|
||||
pOut->height = expHeight;
|
||||
pOut->depth = expNumSlices;
|
||||
@@ -448,7 +447,6 @@ BOOL_32 EgBasedLib::ComputeSurfaceInfoMicroTiled(
|
||||
return valid;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::ComputeSurfaceInfoMacroTiled
|
||||
@@ -755,7 +753,6 @@ BOOL_32 EgBasedLib::ComputeSurfaceAlignmentsMicroTiled(
|
||||
return valid;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::HwlReduceBankWidthHeight
|
||||
@@ -1817,7 +1814,6 @@ UINT_64 EgBasedLib::ComputeSurfaceAddrFromCoordMacroTiled(
|
||||
tileSplitSlice,
|
||||
pTileInfo);
|
||||
|
||||
|
||||
//
|
||||
// Split the offset to put some bits below the pipe+bank bits and some above.
|
||||
//
|
||||
@@ -2161,7 +2157,6 @@ VOID EgBasedLib::HwlComputePixelCoordFromOffset(
|
||||
*pSlice += z;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::DispatchComputeSurfaceCoordFromAddrDispatch
|
||||
@@ -2306,7 +2301,6 @@ VOID EgBasedLib::DispatchComputeSurfaceCoordFromAddr(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::ComputeSurfaceCoordFromAddrMacroTiled
|
||||
@@ -2351,7 +2345,6 @@ VOID EgBasedLib::ComputeSurfaceCoordFromAddrMacroTiled(
|
||||
UINT_32 tileIndex;
|
||||
UINT_64 totalOffset;
|
||||
|
||||
|
||||
UINT_32 bank;
|
||||
UINT_32 pipe;
|
||||
UINT_32 groupBits = m_pipeInterleaveBytes << 3;
|
||||
@@ -2673,7 +2666,6 @@ ADDR_E_RETURNCODE EgBasedLib::HwlExtractBankPipeSwizzle(
|
||||
return ADDR_OK;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::HwlCombineBankPipeSwizzle
|
||||
@@ -3043,7 +3035,6 @@ UINT_32 EgBasedLib::ComputeBankFromCoord(
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Compute bank rotation for the tile split slice.
|
||||
//
|
||||
@@ -3141,8 +3132,6 @@ UINT_32 EgBasedLib::ComputePipeRotation(
|
||||
return rotation;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::ComputeBankRotation
|
||||
@@ -3185,7 +3174,6 @@ UINT_32 EgBasedLib::ComputeBankRotation(
|
||||
return rotation;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::ComputeHtileBytes
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -88,7 +88,6 @@ struct SiChipSettings
|
||||
UINT_32 isPolaris11 : 1;
|
||||
UINT_32 isPolaris12 : 1;
|
||||
UINT_32 isVegaM : 1;
|
||||
// VI fusion
|
||||
UINT_32 isCarrizo : 1;
|
||||
};
|
||||
|
@@ -233,6 +233,7 @@ static void ac_parse_packet3(FILE *f, uint32_t header, struct ac_ib_parser *ib,
|
||||
if (op == PKT3_SET_CONTEXT_REG ||
|
||||
op == PKT3_SET_CONFIG_REG ||
|
||||
op == PKT3_SET_UCONFIG_REG ||
|
||||
op == PKT3_SET_UCONFIG_REG_INDEX ||
|
||||
op == PKT3_SET_SH_REG)
|
||||
fprintf(f, COLOR_CYAN "%s%s" COLOR_CYAN ":\n",
|
||||
name, predicate);
|
||||
@@ -252,6 +253,7 @@ static void ac_parse_packet3(FILE *f, uint32_t header, struct ac_ib_parser *ib,
|
||||
ac_parse_set_reg_packet(f, count, SI_CONFIG_REG_OFFSET, ib);
|
||||
break;
|
||||
case PKT3_SET_UCONFIG_REG:
|
||||
case PKT3_SET_UCONFIG_REG_INDEX:
|
||||
ac_parse_set_reg_packet(f, count, CIK_UCONFIG_REG_OFFSET, ib);
|
||||
break;
|
||||
case PKT3_SET_SH_REG:
|
||||
|
@@ -455,7 +455,7 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
ib_align = MAX2(ib_align, vcn_dec.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, vcn_enc.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, vcn_jpeg.ib_start_alignment);
|
||||
assert(ib_align);
|
||||
assert(ib_align);
|
||||
info->ib_start_alignment = ib_align;
|
||||
|
||||
return true;
|
||||
|
@@ -75,7 +75,7 @@ ac_llvm_context_init(struct ac_llvm_context *ctx,
|
||||
ctx->i16 = LLVMIntTypeInContext(ctx->context, 16);
|
||||
ctx->i32 = LLVMIntTypeInContext(ctx->context, 32);
|
||||
ctx->i64 = LLVMIntTypeInContext(ctx->context, 64);
|
||||
ctx->intptr = HAVE_32BIT_POINTERS ? ctx->i32 : ctx->i64;
|
||||
ctx->intptr = ctx->i32;
|
||||
ctx->f16 = LLVMHalfTypeInContext(ctx->context);
|
||||
ctx->f32 = LLVMFloatTypeInContext(ctx->context);
|
||||
ctx->f64 = LLVMDoubleTypeInContext(ctx->context);
|
||||
@@ -229,6 +229,15 @@ ac_to_integer(struct ac_llvm_context *ctx, LLVMValueRef v)
|
||||
return LLVMBuildBitCast(ctx->builder, v, ac_to_integer_type(ctx, type), "");
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_to_integer_or_pointer(struct ac_llvm_context *ctx, LLVMValueRef v)
|
||||
{
|
||||
LLVMTypeRef type = LLVMTypeOf(v);
|
||||
if (LLVMGetTypeKind(type) == LLVMPointerTypeKind)
|
||||
return v;
|
||||
return ac_to_integer(ctx, v);
|
||||
}
|
||||
|
||||
static LLVMTypeRef to_float_type_scalar(struct ac_llvm_context *ctx, LLVMTypeRef t)
|
||||
{
|
||||
if (t == ctx->i16 || t == ctx->f16)
|
||||
@@ -896,6 +905,37 @@ ac_build_fs_interp(struct ac_llvm_context *ctx,
|
||||
ctx->f32, args, 5, AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_f16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef llvm_chan,
|
||||
LLVMValueRef attr_number,
|
||||
LLVMValueRef params,
|
||||
LLVMValueRef i,
|
||||
LLVMValueRef j)
|
||||
{
|
||||
LLVMValueRef args[6];
|
||||
LLVMValueRef p1;
|
||||
|
||||
args[0] = i;
|
||||
args[1] = llvm_chan;
|
||||
args[2] = attr_number;
|
||||
args[3] = ctx->i1false;
|
||||
args[4] = params;
|
||||
|
||||
p1 = ac_build_intrinsic(ctx, "llvm.amdgcn.interp.p1.f16",
|
||||
ctx->f32, args, 5, AC_FUNC_ATTR_READNONE);
|
||||
|
||||
args[0] = p1;
|
||||
args[1] = j;
|
||||
args[2] = llvm_chan;
|
||||
args[3] = attr_number;
|
||||
args[4] = ctx->i1false;
|
||||
args[5] = params;
|
||||
|
||||
return ac_build_intrinsic(ctx, "llvm.amdgcn.interp.p2.f16",
|
||||
ctx->f16, args, 6, AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef parameter,
|
||||
@@ -914,6 +954,14 @@ ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
|
||||
ctx->f32, args, 4, AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gep_ptr(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr,
|
||||
LLVMValueRef index)
|
||||
{
|
||||
return LLVMBuildGEP(ctx->builder, base_ptr, &index, 1, "");
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gep0(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr,
|
||||
@@ -1161,6 +1209,47 @@ ac_build_buffer_load_common(struct ac_llvm_context *ctx,
|
||||
ac_get_load_intr_attribs(can_speculate));
|
||||
}
|
||||
|
||||
static LLVMValueRef
|
||||
ac_build_llvm8_buffer_load_common(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef rsrc,
|
||||
LLVMValueRef vindex,
|
||||
LLVMValueRef voffset,
|
||||
LLVMValueRef soffset,
|
||||
unsigned num_channels,
|
||||
bool glc,
|
||||
bool slc,
|
||||
bool can_speculate,
|
||||
bool use_format,
|
||||
bool structurized)
|
||||
{
|
||||
LLVMValueRef args[5];
|
||||
int idx = 0;
|
||||
args[idx++] = LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, "");
|
||||
if (structurized)
|
||||
args[idx++] = vindex ? vindex : ctx->i32_0;
|
||||
args[idx++] = voffset ? voffset : ctx->i32_0;
|
||||
args[idx++] = soffset ? soffset : ctx->i32_0;
|
||||
args[idx++] = LLVMConstInt(ctx->i32, (glc ? 1 : 0) + (slc ? 2 : 0), 0);
|
||||
unsigned func = CLAMP(num_channels, 1, 3) - 1;
|
||||
|
||||
LLVMTypeRef types[] = {ctx->f32, ctx->v2f32, ctx->v4f32};
|
||||
const char *type_names[] = {"f32", "v2f32", "v4f32"};
|
||||
const char *indexing_kind = structurized ? "struct" : "raw";
|
||||
char name[256];
|
||||
|
||||
if (use_format) {
|
||||
snprintf(name, sizeof(name), "llvm.amdgcn.%s.buffer.load.format.%s",
|
||||
indexing_kind, type_names[func]);
|
||||
} else {
|
||||
snprintf(name, sizeof(name), "llvm.amdgcn.%s.buffer.load.%s",
|
||||
indexing_kind, type_names[func]);
|
||||
}
|
||||
|
||||
return ac_build_intrinsic(ctx, name, types[func], args,
|
||||
idx,
|
||||
ac_get_load_intr_attribs(can_speculate));
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_buffer_load(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef rsrc,
|
||||
@@ -1180,8 +1269,8 @@ ac_build_buffer_load(struct ac_llvm_context *ctx,
|
||||
if (soffset)
|
||||
offset = LLVMBuildAdd(ctx->builder, offset, soffset, "");
|
||||
|
||||
/* TODO: VI and later generations can use SMEM with GLC=1.*/
|
||||
if (allow_smem && !glc && !slc) {
|
||||
if (allow_smem && !slc &&
|
||||
(!glc || (HAVE_LLVM >= 0x0800 && ctx->chip_class >= VI))) {
|
||||
assert(vindex == NULL);
|
||||
|
||||
LLVMValueRef result[8];
|
||||
@@ -1191,11 +1280,19 @@ ac_build_buffer_load(struct ac_llvm_context *ctx,
|
||||
offset = LLVMBuildAdd(ctx->builder, offset,
|
||||
LLVMConstInt(ctx->i32, 4, 0), "");
|
||||
}
|
||||
LLVMValueRef args[2] = {rsrc, offset};
|
||||
result[i] = ac_build_intrinsic(ctx, "llvm.SI.load.const.v4i32",
|
||||
ctx->f32, args, 2,
|
||||
const char *intrname =
|
||||
HAVE_LLVM >= 0x0800 ? "llvm.amdgcn.s.buffer.load.f32"
|
||||
: "llvm.SI.load.const.v4i32";
|
||||
unsigned num_args = HAVE_LLVM >= 0x0800 ? 3 : 2;
|
||||
LLVMValueRef args[3] = {
|
||||
rsrc,
|
||||
offset,
|
||||
glc ? ctx->i32_1 : ctx->i32_0,
|
||||
};
|
||||
result[i] = ac_build_intrinsic(ctx, intrname,
|
||||
ctx->f32, args, num_args,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_LEGACY);
|
||||
(HAVE_LLVM < 0x0800 ? AC_FUNC_ATTR_LEGACY : 0));
|
||||
}
|
||||
if (num_channels == 1)
|
||||
return result[0];
|
||||
@@ -1218,6 +1315,11 @@ LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx,
|
||||
bool glc,
|
||||
bool can_speculate)
|
||||
{
|
||||
if (HAVE_LLVM >= 0x800) {
|
||||
return ac_build_llvm8_buffer_load_common(ctx, rsrc, vindex, voffset, ctx->i32_0,
|
||||
num_channels, glc, false,
|
||||
can_speculate, true, true);
|
||||
}
|
||||
return ac_build_buffer_load_common(ctx, rsrc, vindex, voffset,
|
||||
num_channels, glc, false,
|
||||
can_speculate, true);
|
||||
@@ -1231,6 +1333,12 @@ LLVMValueRef ac_build_buffer_load_format_gfx9_safe(struct ac_llvm_context *ctx,
|
||||
bool glc,
|
||||
bool can_speculate)
|
||||
{
|
||||
if (HAVE_LLVM >= 0x800) {
|
||||
return ac_build_llvm8_buffer_load_common(ctx, rsrc, vindex, voffset, ctx->i32_0,
|
||||
num_channels, glc, false,
|
||||
can_speculate, true, true);
|
||||
}
|
||||
|
||||
LLVMValueRef elem_count = LLVMBuildExtractElement(ctx->builder, rsrc, LLVMConstInt(ctx->i32, 2, 0), "");
|
||||
LLVMValueRef stride = LLVMBuildExtractElement(ctx->builder, rsrc, ctx->i32_1, "");
|
||||
stride = LLVMBuildLShr(ctx->builder, stride, LLVMConstInt(ctx->i32, 16, 0), "");
|
||||
@@ -1342,99 +1450,28 @@ ac_build_ddxy(struct ac_llvm_context *ctx,
|
||||
int idx,
|
||||
LLVMValueRef val)
|
||||
{
|
||||
LLVMValueRef tl, trbl, args[2];
|
||||
unsigned tl_lanes[4], trbl_lanes[4];
|
||||
LLVMValueRef tl, trbl;
|
||||
LLVMValueRef result;
|
||||
|
||||
if (HAVE_LLVM >= 0x0700) {
|
||||
unsigned tl_lanes[4], trbl_lanes[4];
|
||||
|
||||
for (unsigned i = 0; i < 4; ++i) {
|
||||
tl_lanes[i] = i & mask;
|
||||
trbl_lanes[i] = (i & mask) + idx;
|
||||
}
|
||||
|
||||
tl = ac_build_quad_swizzle(ctx, val,
|
||||
tl_lanes[0], tl_lanes[1],
|
||||
tl_lanes[2], tl_lanes[3]);
|
||||
trbl = ac_build_quad_swizzle(ctx, val,
|
||||
trbl_lanes[0], trbl_lanes[1],
|
||||
trbl_lanes[2], trbl_lanes[3]);
|
||||
} else if (ctx->chip_class >= VI) {
|
||||
LLVMValueRef thread_id, tl_tid, trbl_tid;
|
||||
thread_id = ac_get_thread_id(ctx);
|
||||
|
||||
tl_tid = LLVMBuildAnd(ctx->builder, thread_id,
|
||||
LLVMConstInt(ctx->i32, mask, false), "");
|
||||
|
||||
trbl_tid = LLVMBuildAdd(ctx->builder, tl_tid,
|
||||
LLVMConstInt(ctx->i32, idx, false), "");
|
||||
|
||||
args[0] = LLVMBuildMul(ctx->builder, tl_tid,
|
||||
LLVMConstInt(ctx->i32, 4, false), "");
|
||||
args[1] = val;
|
||||
tl = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.ds.bpermute", ctx->i32,
|
||||
args, 2,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_CONVERGENT);
|
||||
|
||||
args[0] = LLVMBuildMul(ctx->builder, trbl_tid,
|
||||
LLVMConstInt(ctx->i32, 4, false), "");
|
||||
trbl = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.ds.bpermute", ctx->i32,
|
||||
args, 2,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_CONVERGENT);
|
||||
} else {
|
||||
uint32_t masks[2] = {};
|
||||
|
||||
switch (mask) {
|
||||
case AC_TID_MASK_TOP_LEFT:
|
||||
masks[0] = 0x8000;
|
||||
if (idx == 1)
|
||||
masks[1] = 0x8055;
|
||||
else
|
||||
masks[1] = 0x80aa;
|
||||
|
||||
break;
|
||||
case AC_TID_MASK_TOP:
|
||||
masks[0] = 0x8044;
|
||||
masks[1] = 0x80ee;
|
||||
break;
|
||||
case AC_TID_MASK_LEFT:
|
||||
masks[0] = 0x80a0;
|
||||
masks[1] = 0x80f5;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
|
||||
args[0] = val;
|
||||
args[1] = LLVMConstInt(ctx->i32, masks[0], false);
|
||||
|
||||
tl = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.ds.swizzle", ctx->i32,
|
||||
args, 2,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_CONVERGENT);
|
||||
|
||||
args[1] = LLVMConstInt(ctx->i32, masks[1], false);
|
||||
trbl = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.ds.swizzle", ctx->i32,
|
||||
args, 2,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_CONVERGENT);
|
||||
for (unsigned i = 0; i < 4; ++i) {
|
||||
tl_lanes[i] = i & mask;
|
||||
trbl_lanes[i] = (i & mask) + idx;
|
||||
}
|
||||
|
||||
tl = ac_build_quad_swizzle(ctx, val,
|
||||
tl_lanes[0], tl_lanes[1],
|
||||
tl_lanes[2], tl_lanes[3]);
|
||||
trbl = ac_build_quad_swizzle(ctx, val,
|
||||
trbl_lanes[0], trbl_lanes[1],
|
||||
trbl_lanes[2], trbl_lanes[3]);
|
||||
|
||||
tl = LLVMBuildBitCast(ctx->builder, tl, ctx->f32, "");
|
||||
trbl = LLVMBuildBitCast(ctx->builder, trbl, ctx->f32, "");
|
||||
result = LLVMBuildFSub(ctx->builder, trbl, tl, "");
|
||||
|
||||
if (HAVE_LLVM >= 0x0700) {
|
||||
result = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.wqm.f32", ctx->f32,
|
||||
&result, 1, 0);
|
||||
}
|
||||
result = ac_build_intrinsic(ctx, "llvm.amdgcn.wqm.f32", ctx->f32,
|
||||
&result, 1, 0);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -1679,171 +1716,6 @@ static const char *get_atomic_name(enum ac_atomic_op op)
|
||||
unreachable("bad atomic op");
|
||||
}
|
||||
|
||||
/* LLVM 6 and older */
|
||||
static LLVMValueRef ac_build_image_opcode_llvm6(struct ac_llvm_context *ctx,
|
||||
struct ac_image_args *a)
|
||||
{
|
||||
LLVMValueRef args[16];
|
||||
LLVMTypeRef retty = ctx->v4f32;
|
||||
const char *name = NULL;
|
||||
const char *atomic_subop = "";
|
||||
char intr_name[128], coords_type[64];
|
||||
|
||||
bool sample = a->opcode == ac_image_sample ||
|
||||
a->opcode == ac_image_gather4 ||
|
||||
a->opcode == ac_image_get_lod;
|
||||
bool atomic = a->opcode == ac_image_atomic ||
|
||||
a->opcode == ac_image_atomic_cmpswap;
|
||||
bool da = a->dim == ac_image_cube ||
|
||||
a->dim == ac_image_1darray ||
|
||||
a->dim == ac_image_2darray ||
|
||||
a->dim == ac_image_2darraymsaa;
|
||||
if (a->opcode == ac_image_get_lod)
|
||||
da = false;
|
||||
|
||||
unsigned num_coords =
|
||||
a->opcode != ac_image_get_resinfo ? ac_num_coords(a->dim) : 0;
|
||||
LLVMValueRef addr;
|
||||
unsigned num_addr = 0;
|
||||
|
||||
if (a->opcode == ac_image_get_lod) {
|
||||
switch (a->dim) {
|
||||
case ac_image_1darray:
|
||||
num_coords = 1;
|
||||
break;
|
||||
case ac_image_2darray:
|
||||
case ac_image_cube:
|
||||
num_coords = 2;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (a->offset)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->offset);
|
||||
if (a->bias)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->bias);
|
||||
if (a->compare)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->compare);
|
||||
if (a->derivs[0]) {
|
||||
unsigned num_derivs = ac_num_derivs(a->dim);
|
||||
for (unsigned i = 0; i < num_derivs; ++i)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->derivs[i]);
|
||||
}
|
||||
for (unsigned i = 0; i < num_coords; ++i)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->coords[i]);
|
||||
if (a->lod)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->lod);
|
||||
|
||||
unsigned pad_goal = util_next_power_of_two(num_addr);
|
||||
while (num_addr < pad_goal)
|
||||
args[num_addr++] = LLVMGetUndef(ctx->i32);
|
||||
|
||||
addr = ac_build_gather_values(ctx, args, num_addr);
|
||||
|
||||
unsigned num_args = 0;
|
||||
if (atomic || a->opcode == ac_image_store || a->opcode == ac_image_store_mip) {
|
||||
args[num_args++] = a->data[0];
|
||||
if (a->opcode == ac_image_atomic_cmpswap)
|
||||
args[num_args++] = a->data[1];
|
||||
}
|
||||
|
||||
unsigned coords_arg = num_args;
|
||||
if (sample)
|
||||
args[num_args++] = ac_to_float(ctx, addr);
|
||||
else
|
||||
args[num_args++] = ac_to_integer(ctx, addr);
|
||||
|
||||
args[num_args++] = a->resource;
|
||||
if (sample)
|
||||
args[num_args++] = a->sampler;
|
||||
if (!atomic) {
|
||||
args[num_args++] = LLVMConstInt(ctx->i32, a->dmask, 0);
|
||||
if (sample)
|
||||
args[num_args++] = LLVMConstInt(ctx->i1, a->unorm, 0);
|
||||
args[num_args++] = a->cache_policy & ac_glc ? ctx->i1true : ctx->i1false;
|
||||
args[num_args++] = a->cache_policy & ac_slc ? ctx->i1true : ctx->i1false;
|
||||
args[num_args++] = ctx->i1false; /* lwe */
|
||||
args[num_args++] = LLVMConstInt(ctx->i1, da, 0);
|
||||
} else {
|
||||
args[num_args++] = ctx->i1false; /* r128 */
|
||||
args[num_args++] = LLVMConstInt(ctx->i1, da, 0);
|
||||
args[num_args++] = a->cache_policy & ac_slc ? ctx->i1true : ctx->i1false;
|
||||
}
|
||||
|
||||
switch (a->opcode) {
|
||||
case ac_image_sample:
|
||||
name = "llvm.amdgcn.image.sample";
|
||||
break;
|
||||
case ac_image_gather4:
|
||||
name = "llvm.amdgcn.image.gather4";
|
||||
break;
|
||||
case ac_image_load:
|
||||
name = "llvm.amdgcn.image.load";
|
||||
break;
|
||||
case ac_image_load_mip:
|
||||
name = "llvm.amdgcn.image.load.mip";
|
||||
break;
|
||||
case ac_image_store:
|
||||
name = "llvm.amdgcn.image.store";
|
||||
retty = ctx->voidt;
|
||||
break;
|
||||
case ac_image_store_mip:
|
||||
name = "llvm.amdgcn.image.store.mip";
|
||||
retty = ctx->voidt;
|
||||
break;
|
||||
case ac_image_atomic:
|
||||
case ac_image_atomic_cmpswap:
|
||||
name = "llvm.amdgcn.image.atomic.";
|
||||
retty = ctx->i32;
|
||||
if (a->opcode == ac_image_atomic_cmpswap) {
|
||||
atomic_subop = "cmpswap";
|
||||
} else {
|
||||
atomic_subop = get_atomic_name(a->atomic);
|
||||
}
|
||||
break;
|
||||
case ac_image_get_lod:
|
||||
name = "llvm.amdgcn.image.getlod";
|
||||
break;
|
||||
case ac_image_get_resinfo:
|
||||
name = "llvm.amdgcn.image.getresinfo";
|
||||
break;
|
||||
default:
|
||||
unreachable("invalid image opcode");
|
||||
}
|
||||
|
||||
ac_build_type_name_for_intr(LLVMTypeOf(args[coords_arg]), coords_type,
|
||||
sizeof(coords_type));
|
||||
|
||||
if (atomic) {
|
||||
snprintf(intr_name, sizeof(intr_name), "llvm.amdgcn.image.atomic.%s.%s",
|
||||
atomic_subop, coords_type);
|
||||
} else {
|
||||
bool lod_suffix =
|
||||
a->lod && (a->opcode == ac_image_sample || a->opcode == ac_image_gather4);
|
||||
|
||||
snprintf(intr_name, sizeof(intr_name), "%s%s%s%s.v4f32.%s.v8i32",
|
||||
name,
|
||||
a->compare ? ".c" : "",
|
||||
a->bias ? ".b" :
|
||||
lod_suffix ? ".l" :
|
||||
a->derivs[0] ? ".d" :
|
||||
a->level_zero ? ".lz" : "",
|
||||
a->offset ? ".o" : "",
|
||||
coords_type);
|
||||
}
|
||||
|
||||
LLVMValueRef result =
|
||||
ac_build_intrinsic(ctx, intr_name, retty, args, num_args,
|
||||
a->attributes);
|
||||
if (!sample && retty == ctx->v4f32) {
|
||||
result = LLVMBuildBitCast(ctx->builder, result,
|
||||
ctx->v4i32, "");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_image_opcode(struct ac_llvm_context *ctx,
|
||||
struct ac_image_args *a)
|
||||
{
|
||||
@@ -1868,9 +1740,6 @@ LLVMValueRef ac_build_image_opcode(struct ac_llvm_context *ctx,
|
||||
(a->level_zero ? 1 : 0) +
|
||||
(a->derivs[0] ? 1 : 0) <= 1);
|
||||
|
||||
if (HAVE_LLVM < 0x0700)
|
||||
return ac_build_image_opcode_llvm6(ctx, a);
|
||||
|
||||
if (a->opcode == ac_image_get_lod) {
|
||||
switch (dim) {
|
||||
case ac_image_1darray:
|
||||
@@ -2659,9 +2528,6 @@ LLVMTypeRef ac_array_in_const_addr_space(LLVMTypeRef elem_type)
|
||||
|
||||
LLVMTypeRef ac_array_in_const32_addr_space(LLVMTypeRef elem_type)
|
||||
{
|
||||
if (!HAVE_32BIT_POINTERS)
|
||||
return ac_array_in_const_addr_space(elem_type);
|
||||
|
||||
return LLVMPointerType(LLVMArrayType(elem_type, 0),
|
||||
AC_ADDR_SPACE_CONST_32BIT);
|
||||
}
|
||||
@@ -2807,8 +2673,7 @@ void ac_build_endloop(struct ac_llvm_context *ctx, int label_id)
|
||||
ctx->flow_depth--;
|
||||
}
|
||||
|
||||
static void if_cond_emit(struct ac_llvm_context *ctx, LLVMValueRef cond,
|
||||
int label_id)
|
||||
void ac_build_ifcc(struct ac_llvm_context *ctx, LLVMValueRef cond, int label_id)
|
||||
{
|
||||
struct ac_llvm_flow *flow = push_flow(ctx);
|
||||
LLVMBasicBlockRef if_block;
|
||||
@@ -2825,7 +2690,7 @@ void ac_build_if(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
{
|
||||
LLVMValueRef cond = LLVMBuildFCmp(ctx->builder, LLVMRealUNE,
|
||||
value, ctx->f32_0, "");
|
||||
if_cond_emit(ctx, cond, label_id);
|
||||
ac_build_ifcc(ctx, cond, label_id);
|
||||
}
|
||||
|
||||
void ac_build_uif(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
@@ -2834,7 +2699,7 @@ void ac_build_uif(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
LLVMValueRef cond = LLVMBuildICmp(ctx->builder, LLVMIntNE,
|
||||
ac_to_integer(ctx, value),
|
||||
ctx->i32_0, "");
|
||||
if_cond_emit(ctx, cond, label_id);
|
||||
ac_build_ifcc(ctx, cond, label_id);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac, LLVMTypeRef type,
|
||||
@@ -2882,9 +2747,11 @@ LLVMValueRef ac_trim_vector(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
if (count == num_components)
|
||||
return value;
|
||||
|
||||
LLVMValueRef masks[] = {
|
||||
ctx->i32_0, ctx->i32_1,
|
||||
LLVMConstInt(ctx->i32, 2, false), LLVMConstInt(ctx->i32, 3, false)};
|
||||
LLVMValueRef masks[MAX2(count, 2)];
|
||||
masks[0] = ctx->i32_0;
|
||||
masks[1] = ctx->i32_1;
|
||||
for (unsigned i = 2; i < count; i++)
|
||||
masks[i] = LLVMConstInt(ctx->i32, i, false);
|
||||
|
||||
if (count == 1)
|
||||
return LLVMBuildExtractElement(ctx->builder, value, masks[0],
|
||||
@@ -3292,24 +3159,44 @@ ac_build_alu_op(struct ac_llvm_context *ctx, LLVMValueRef lhs, LLVMValueRef rhs,
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO: add inclusive and excluse scan functions for SI chip class. */
|
||||
/**
|
||||
* \param maxprefix specifies that the result only needs to be correct for a
|
||||
* prefix of this many threads
|
||||
*
|
||||
* TODO: add inclusive and excluse scan functions for SI chip class.
|
||||
*/
|
||||
static LLVMValueRef
|
||||
ac_build_scan(struct ac_llvm_context *ctx, nir_op op, LLVMValueRef src, LLVMValueRef identity)
|
||||
ac_build_scan(struct ac_llvm_context *ctx, nir_op op, LLVMValueRef src, LLVMValueRef identity,
|
||||
unsigned maxprefix)
|
||||
{
|
||||
LLVMValueRef result, tmp;
|
||||
result = src;
|
||||
if (maxprefix <= 1)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, src, dpp_row_sr(1), 0xf, 0xf, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 2)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, src, dpp_row_sr(2), 0xf, 0xf, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 3)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, src, dpp_row_sr(3), 0xf, 0xf, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 4)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, result, dpp_row_sr(4), 0xf, 0xe, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 8)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, result, dpp_row_sr(8), 0xf, 0xc, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 16)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, result, dpp_row_bcast15, 0xa, 0xf, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 32)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, result, dpp_row_bcast31, 0xc, 0xf, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
return result;
|
||||
@@ -3318,14 +3205,24 @@ ac_build_scan(struct ac_llvm_context *ctx, nir_op op, LLVMValueRef src, LLVMValu
|
||||
LLVMValueRef
|
||||
ac_build_inclusive_scan(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op)
|
||||
{
|
||||
ac_build_optimization_barrier(ctx, &src);
|
||||
LLVMValueRef result;
|
||||
LLVMValueRef identity = get_reduction_identity(ctx, op,
|
||||
ac_get_type_size(LLVMTypeOf(src)));
|
||||
result = LLVMBuildBitCast(ctx->builder,
|
||||
ac_build_set_inactive(ctx, src, identity),
|
||||
LLVMTypeOf(identity), "");
|
||||
result = ac_build_scan(ctx, op, result, identity);
|
||||
|
||||
if (LLVMTypeOf(src) == ctx->i1 && op == nir_op_iadd) {
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
src = LLVMBuildZExt(builder, src, ctx->i32, "");
|
||||
result = ac_build_ballot(ctx, src);
|
||||
result = ac_build_mbcnt(ctx, result);
|
||||
result = LLVMBuildAdd(builder, result, src, "");
|
||||
return result;
|
||||
}
|
||||
|
||||
ac_build_optimization_barrier(ctx, &src);
|
||||
|
||||
LLVMValueRef identity =
|
||||
get_reduction_identity(ctx, op, ac_get_type_size(LLVMTypeOf(src)));
|
||||
result = LLVMBuildBitCast(ctx->builder, ac_build_set_inactive(ctx, src, identity),
|
||||
LLVMTypeOf(identity), "");
|
||||
result = ac_build_scan(ctx, op, result, identity, 64);
|
||||
|
||||
return ac_build_wwm(ctx, result);
|
||||
}
|
||||
@@ -3333,15 +3230,24 @@ ac_build_inclusive_scan(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op
|
||||
LLVMValueRef
|
||||
ac_build_exclusive_scan(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op)
|
||||
{
|
||||
ac_build_optimization_barrier(ctx, &src);
|
||||
LLVMValueRef result;
|
||||
LLVMValueRef identity = get_reduction_identity(ctx, op,
|
||||
ac_get_type_size(LLVMTypeOf(src)));
|
||||
result = LLVMBuildBitCast(ctx->builder,
|
||||
ac_build_set_inactive(ctx, src, identity),
|
||||
LLVMTypeOf(identity), "");
|
||||
|
||||
if (LLVMTypeOf(src) == ctx->i1 && op == nir_op_iadd) {
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
src = LLVMBuildZExt(builder, src, ctx->i32, "");
|
||||
result = ac_build_ballot(ctx, src);
|
||||
result = ac_build_mbcnt(ctx, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
ac_build_optimization_barrier(ctx, &src);
|
||||
|
||||
LLVMValueRef identity =
|
||||
get_reduction_identity(ctx, op, ac_get_type_size(LLVMTypeOf(src)));
|
||||
result = LLVMBuildBitCast(ctx->builder, ac_build_set_inactive(ctx, src, identity),
|
||||
LLVMTypeOf(identity), "");
|
||||
result = ac_build_dpp(ctx, identity, result, dpp_wf_sr1, 0xf, 0xf, false);
|
||||
result = ac_build_scan(ctx, op, result, identity);
|
||||
result = ac_build_scan(ctx, op, result, identity, 64);
|
||||
|
||||
return ac_build_wwm(ctx, result);
|
||||
}
|
||||
@@ -3399,6 +3305,175 @@ ac_build_reduce(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op, unsign
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* "Top half" of a scan that reduces per-wave values across an entire
|
||||
* workgroup.
|
||||
*
|
||||
* The source value must be present in the highest lane of the wave, and the
|
||||
* highest lane must be live.
|
||||
*/
|
||||
void
|
||||
ac_build_wg_wavescan_top(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
if (ws->maxwaves <= 1)
|
||||
return;
|
||||
|
||||
const LLVMValueRef i32_63 = LLVMConstInt(ctx->i32, 63, false);
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
LLVMValueRef tid = ac_get_thread_id(ctx);
|
||||
LLVMValueRef tmp;
|
||||
|
||||
tmp = LLVMBuildICmp(builder, LLVMIntEQ, tid, i32_63, "");
|
||||
ac_build_ifcc(ctx, tmp, 1000);
|
||||
LLVMBuildStore(builder, ws->src, LLVMBuildGEP(builder, ws->scratch, &ws->waveidx, 1, ""));
|
||||
ac_build_endif(ctx, 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
* "Bottom half" of a scan that reduces per-wave values across an entire
|
||||
* workgroup.
|
||||
*
|
||||
* The caller must place a barrier between the top and bottom halves.
|
||||
*/
|
||||
void
|
||||
ac_build_wg_wavescan_bottom(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
const LLVMTypeRef type = LLVMTypeOf(ws->src);
|
||||
const LLVMValueRef identity =
|
||||
get_reduction_identity(ctx, ws->op, ac_get_type_size(type));
|
||||
|
||||
if (ws->maxwaves <= 1) {
|
||||
ws->result_reduce = ws->src;
|
||||
ws->result_inclusive = ws->src;
|
||||
ws->result_exclusive = identity;
|
||||
return;
|
||||
}
|
||||
assert(ws->maxwaves <= 32);
|
||||
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
LLVMValueRef tid = ac_get_thread_id(ctx);
|
||||
LLVMBasicBlockRef bbs[2];
|
||||
LLVMValueRef phivalues_scan[2];
|
||||
LLVMValueRef tmp, tmp2;
|
||||
|
||||
bbs[0] = LLVMGetInsertBlock(builder);
|
||||
phivalues_scan[0] = LLVMGetUndef(type);
|
||||
|
||||
if (ws->enable_reduce)
|
||||
tmp = LLVMBuildICmp(builder, LLVMIntULT, tid, ws->numwaves, "");
|
||||
else if (ws->enable_inclusive)
|
||||
tmp = LLVMBuildICmp(builder, LLVMIntULE, tid, ws->waveidx, "");
|
||||
else
|
||||
tmp = LLVMBuildICmp(builder, LLVMIntULT, tid, ws->waveidx, "");
|
||||
ac_build_ifcc(ctx, tmp, 1001);
|
||||
{
|
||||
tmp = LLVMBuildLoad(builder, LLVMBuildGEP(builder, ws->scratch, &tid, 1, ""), "");
|
||||
|
||||
ac_build_optimization_barrier(ctx, &tmp);
|
||||
|
||||
bbs[1] = LLVMGetInsertBlock(builder);
|
||||
phivalues_scan[1] = ac_build_scan(ctx, ws->op, tmp, identity, ws->maxwaves);
|
||||
}
|
||||
ac_build_endif(ctx, 1001);
|
||||
|
||||
const LLVMValueRef scan = ac_build_phi(ctx, type, 2, phivalues_scan, bbs);
|
||||
|
||||
if (ws->enable_reduce) {
|
||||
tmp = LLVMBuildSub(builder, ws->numwaves, ctx->i32_1, "");
|
||||
ws->result_reduce = ac_build_readlane(ctx, scan, tmp);
|
||||
}
|
||||
if (ws->enable_inclusive)
|
||||
ws->result_inclusive = ac_build_readlane(ctx, scan, ws->waveidx);
|
||||
if (ws->enable_exclusive) {
|
||||
tmp = LLVMBuildSub(builder, ws->waveidx, ctx->i32_1, "");
|
||||
tmp = ac_build_readlane(ctx, scan, tmp);
|
||||
tmp2 = LLVMBuildICmp(builder, LLVMIntEQ, ws->waveidx, ctx->i32_0, "");
|
||||
ws->result_exclusive = LLVMBuildSelect(builder, tmp2, identity, tmp, "");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Inclusive scan of a per-wave value across an entire workgroup.
|
||||
*
|
||||
* This implies an s_barrier instruction.
|
||||
*
|
||||
* Unlike ac_build_inclusive_scan, the caller \em must ensure that all threads
|
||||
* of the workgroup are live. (This requirement cannot easily be relaxed in a
|
||||
* useful manner because of the barrier in the algorithm.)
|
||||
*/
|
||||
void
|
||||
ac_build_wg_wavescan(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
ac_build_wg_wavescan_top(ctx, ws);
|
||||
ac_build_s_barrier(ctx);
|
||||
ac_build_wg_wavescan_bottom(ctx, ws);
|
||||
}
|
||||
|
||||
/**
|
||||
* "Top half" of a scan that reduces per-thread values across an entire
|
||||
* workgroup.
|
||||
*
|
||||
* All lanes must be active when this code runs.
|
||||
*/
|
||||
void
|
||||
ac_build_wg_scan_top(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
if (ws->enable_exclusive) {
|
||||
ws->extra = ac_build_exclusive_scan(ctx, ws->src, ws->op);
|
||||
if (LLVMTypeOf(ws->src) == ctx->i1 && ws->op == nir_op_iadd)
|
||||
ws->src = LLVMBuildZExt(ctx->builder, ws->src, ctx->i32, "");
|
||||
ws->src = ac_build_alu_op(ctx, ws->extra, ws->src, ws->op);
|
||||
} else {
|
||||
ws->src = ac_build_inclusive_scan(ctx, ws->src, ws->op);
|
||||
}
|
||||
|
||||
bool enable_inclusive = ws->enable_inclusive;
|
||||
bool enable_exclusive = ws->enable_exclusive;
|
||||
ws->enable_inclusive = false;
|
||||
ws->enable_exclusive = ws->enable_exclusive || enable_inclusive;
|
||||
ac_build_wg_wavescan_top(ctx, ws);
|
||||
ws->enable_inclusive = enable_inclusive;
|
||||
ws->enable_exclusive = enable_exclusive;
|
||||
}
|
||||
|
||||
/**
|
||||
* "Bottom half" of a scan that reduces per-thread values across an entire
|
||||
* workgroup.
|
||||
*
|
||||
* The caller must place a barrier between the top and bottom halves.
|
||||
*/
|
||||
void
|
||||
ac_build_wg_scan_bottom(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
bool enable_inclusive = ws->enable_inclusive;
|
||||
bool enable_exclusive = ws->enable_exclusive;
|
||||
ws->enable_inclusive = false;
|
||||
ws->enable_exclusive = ws->enable_exclusive || enable_inclusive;
|
||||
ac_build_wg_wavescan_bottom(ctx, ws);
|
||||
ws->enable_inclusive = enable_inclusive;
|
||||
ws->enable_exclusive = enable_exclusive;
|
||||
|
||||
/* ws->result_reduce is already the correct value */
|
||||
if (ws->enable_inclusive)
|
||||
ws->result_inclusive = ac_build_alu_op(ctx, ws->result_exclusive, ws->src, ws->op);
|
||||
if (ws->enable_exclusive)
|
||||
ws->result_exclusive = ac_build_alu_op(ctx, ws->result_exclusive, ws->extra, ws->op);
|
||||
}
|
||||
|
||||
/**
|
||||
* A scan that reduces per-thread values across an entire workgroup.
|
||||
*
|
||||
* The caller must ensure that all lanes are active when this code runs
|
||||
* (WWM is insufficient!), because there is an implied barrier.
|
||||
*/
|
||||
void
|
||||
ac_build_wg_scan(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
ac_build_wg_scan_top(ctx, ws);
|
||||
ac_build_s_barrier(ctx);
|
||||
ac_build_wg_scan_bottom(ctx, ws);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_quad_swizzle(struct ac_llvm_context *ctx, LLVMValueRef src,
|
||||
unsigned lane0, unsigned lane1, unsigned lane2, unsigned lane3)
|
||||
|
@@ -34,14 +34,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define HAVE_32BIT_POINTERS (HAVE_LLVM >= 0x0700)
|
||||
|
||||
enum {
|
||||
AC_ADDR_SPACE_FLAT = HAVE_LLVM >= 0x0700 ? 0 : 4, /* Slower than global. */
|
||||
AC_ADDR_SPACE_FLAT = 0, /* Slower than global. */
|
||||
AC_ADDR_SPACE_GLOBAL = 1,
|
||||
AC_ADDR_SPACE_GDS = HAVE_LLVM >= 0x0700 ? 2 : 5,
|
||||
AC_ADDR_SPACE_GDS = 2,
|
||||
AC_ADDR_SPACE_LDS = 3,
|
||||
AC_ADDR_SPACE_CONST = HAVE_LLVM >= 0x0700 ? 4 : 2, /* Global allowing SMEM. */
|
||||
AC_ADDR_SPACE_CONST = 4, /* Global allowing SMEM. */
|
||||
AC_ADDR_SPACE_CONST_32BIT = 6, /* same as CONST, but the pointer type has 32 bits */
|
||||
};
|
||||
|
||||
@@ -128,6 +126,7 @@ unsigned ac_get_type_size(LLVMTypeRef type);
|
||||
|
||||
LLVMTypeRef ac_to_integer_type(struct ac_llvm_context *ctx, LLVMTypeRef t);
|
||||
LLVMValueRef ac_to_integer(struct ac_llvm_context *ctx, LLVMValueRef v);
|
||||
LLVMValueRef ac_to_integer_or_pointer(struct ac_llvm_context *ctx, LLVMValueRef v);
|
||||
LLVMTypeRef ac_to_float_type(struct ac_llvm_context *ctx, LLVMTypeRef t);
|
||||
LLVMValueRef ac_to_float(struct ac_llvm_context *ctx, LLVMValueRef v);
|
||||
|
||||
@@ -217,6 +216,14 @@ ac_build_fs_interp(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef i,
|
||||
LLVMValueRef j);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_f16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef llvm_chan,
|
||||
LLVMValueRef attr_number,
|
||||
LLVMValueRef params,
|
||||
LLVMValueRef i,
|
||||
LLVMValueRef j);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef parameter,
|
||||
@@ -224,6 +231,11 @@ ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef attr_number,
|
||||
LLVMValueRef params);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gep_ptr(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr,
|
||||
LLVMValueRef index);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gep0(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr,
|
||||
@@ -481,6 +493,7 @@ void ac_build_continue(struct ac_llvm_context *ctx);
|
||||
void ac_build_else(struct ac_llvm_context *ctx, int lable_id);
|
||||
void ac_build_endif(struct ac_llvm_context *ctx, int lable_id);
|
||||
void ac_build_endloop(struct ac_llvm_context *ctx, int lable_id);
|
||||
void ac_build_ifcc(struct ac_llvm_context *ctx, LLVMValueRef cond, int label_id);
|
||||
void ac_build_if(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
int lable_id);
|
||||
void ac_build_uif(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
@@ -524,6 +537,42 @@ ac_build_exclusive_scan(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op
|
||||
LLVMValueRef
|
||||
ac_build_reduce(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op, unsigned cluster_size);
|
||||
|
||||
/**
|
||||
* Common arguments for a scan/reduce operation that accumulates per-wave
|
||||
* values across an entire workgroup, while respecting the order of waves.
|
||||
*/
|
||||
struct ac_wg_scan {
|
||||
bool enable_reduce;
|
||||
bool enable_exclusive;
|
||||
bool enable_inclusive;
|
||||
nir_op op;
|
||||
LLVMValueRef src; /* clobbered! */
|
||||
LLVMValueRef result_reduce;
|
||||
LLVMValueRef result_exclusive;
|
||||
LLVMValueRef result_inclusive;
|
||||
LLVMValueRef extra;
|
||||
LLVMValueRef waveidx;
|
||||
LLVMValueRef numwaves; /* only needed for "reduce" operations */
|
||||
|
||||
/* T addrspace(LDS) pointer to the same type as value, at least maxwaves entries */
|
||||
LLVMValueRef scratch;
|
||||
unsigned maxwaves;
|
||||
};
|
||||
|
||||
void
|
||||
ac_build_wg_wavescan_top(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
void
|
||||
ac_build_wg_wavescan_bottom(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
void
|
||||
ac_build_wg_wavescan(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
|
||||
void
|
||||
ac_build_wg_scan_top(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
void
|
||||
ac_build_wg_scan_bottom(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
void
|
||||
ac_build_wg_scan(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_quad_swizzle(struct ac_llvm_context *ctx, LLVMValueRef src,
|
||||
unsigned lane0, unsigned lane1, unsigned lane2, unsigned lane3);
|
||||
|
@@ -39,9 +39,6 @@
|
||||
#include <llvm/Transforms/IPO.h>
|
||||
|
||||
#include <llvm/IR/LegacyPassManager.h>
|
||||
#if HAVE_LLVM < 0x0700
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#endif
|
||||
|
||||
void ac_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes)
|
||||
{
|
||||
@@ -132,9 +129,7 @@ struct ac_compiler_passes *ac_create_llvm_passes(LLVMTargetMachineRef tm)
|
||||
llvm::TargetMachine *TM = reinterpret_cast<llvm::TargetMachine*>(tm);
|
||||
|
||||
if (TM->addPassesToEmitFile(p->passmgr, p->ostream,
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
nullptr,
|
||||
#endif
|
||||
llvm::TargetMachine::CGFT_ObjectFile)) {
|
||||
fprintf(stderr, "amd: TargetMachine can't emit a file of this type!\n");
|
||||
delete p;
|
||||
@@ -170,7 +165,5 @@ void ac_llvm_add_barrier_noop_pass(LLVMPassManagerRef passmgr)
|
||||
|
||||
void ac_enable_global_isel(LLVMTargetMachineRef tm)
|
||||
{
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
reinterpret_cast<llvm::TargetMachine*>(tm)->setGlobalISel(true);
|
||||
#endif
|
||||
}
|
||||
|
@@ -30,9 +30,7 @@
|
||||
#include <llvm-c/Support.h>
|
||||
#include <llvm-c/Transforms/IPO.h>
|
||||
#include <llvm-c/Transforms/Scalar.h>
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
#include <llvm-c/Transforms/Utils.h>
|
||||
#endif
|
||||
#include "c11/threads.h"
|
||||
#include "gallivm/lp_bld_misc.h"
|
||||
#include "util/u_math.h"
|
||||
@@ -132,11 +130,11 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
|
||||
case CHIP_RAVEN:
|
||||
return "gfx902";
|
||||
case CHIP_VEGA12:
|
||||
return HAVE_LLVM >= 0x0700 ? "gfx904" : "gfx902";
|
||||
return "gfx904";
|
||||
case CHIP_VEGA20:
|
||||
return HAVE_LLVM >= 0x0700 ? "gfx906" : "gfx902";
|
||||
return "gfx906";
|
||||
case CHIP_RAVEN2:
|
||||
return "gfx902"; /* TODO: use gfx909 when it's available */
|
||||
return HAVE_LLVM >= 0x0800 ? "gfx909" : "gfx902";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
@@ -153,7 +151,8 @@ static LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family,
|
||||
LLVMTargetRef target = ac_get_llvm_target(triple);
|
||||
|
||||
snprintf(features, sizeof(features),
|
||||
"+DumpCode,+vgpr-spilling,-fp32-denormals,+fp64-denormals%s%s%s%s",
|
||||
"+DumpCode,-fp32-denormals,+fp64-denormals%s%s%s%s%s",
|
||||
HAVE_LLVM >= 0x0800 ? "" : ",+vgpr-spilling",
|
||||
tm_options & AC_TM_SISCHED ? ",+si-scheduler" : "",
|
||||
tm_options & AC_TM_FORCE_ENABLE_XNACK ? ",+xnack" : "",
|
||||
tm_options & AC_TM_FORCE_DISABLE_XNACK ? ",-xnack" : "",
|
||||
@@ -302,7 +301,6 @@ ac_count_scratch_private_memory(LLVMValueRef function)
|
||||
|
||||
bool
|
||||
ac_init_llvm_compiler(struct ac_llvm_compiler *compiler,
|
||||
bool okay_to_leak_target_library_info,
|
||||
enum radeon_family family,
|
||||
enum ac_target_machine_options tm_options)
|
||||
{
|
||||
@@ -323,12 +321,10 @@ ac_init_llvm_compiler(struct ac_llvm_compiler *compiler,
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (okay_to_leak_target_library_info || (HAVE_LLVM >= 0x0700)) {
|
||||
compiler->target_library_info =
|
||||
ac_create_target_library_info(triple);
|
||||
if (!compiler->target_library_info)
|
||||
goto fail;
|
||||
}
|
||||
compiler->target_library_info =
|
||||
ac_create_target_library_info(triple);
|
||||
if (!compiler->target_library_info)
|
||||
goto fail;
|
||||
|
||||
compiler->passmgr = ac_create_passmgr(compiler->target_library_info,
|
||||
tm_options & AC_TM_CHECK_IR);
|
||||
@@ -346,11 +342,8 @@ ac_destroy_llvm_compiler(struct ac_llvm_compiler *compiler)
|
||||
{
|
||||
if (compiler->passmgr)
|
||||
LLVMDisposePassManager(compiler->passmgr);
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
/* This crashes on LLVM 5.0 and 6.0 and Ubuntu 18.04, so leak it there. */
|
||||
if (compiler->target_library_info)
|
||||
ac_dispose_target_library_info(compiler->target_library_info);
|
||||
#endif
|
||||
if (compiler->low_opt_tm)
|
||||
LLVMDisposeTargetMachine(compiler->low_opt_tm);
|
||||
if (compiler->tm)
|
||||
|
@@ -134,7 +134,6 @@ void ac_init_llvm_once(void);
|
||||
|
||||
|
||||
bool ac_init_llvm_compiler(struct ac_llvm_compiler *compiler,
|
||||
bool okay_to_leak_target_library_info,
|
||||
enum radeon_family family,
|
||||
enum ac_target_machine_options tm_options);
|
||||
void ac_destroy_llvm_compiler(struct ac_llvm_compiler *compiler);
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -47,6 +47,8 @@ static inline unsigned ac_llvm_reg_index_soa(unsigned index, unsigned chan)
|
||||
|
||||
void ac_lower_indirect_derefs(struct nir_shader *nir, enum chip_class);
|
||||
|
||||
bool ac_are_tessfactors_def_in_all_invocs(const struct nir_shader *nir);
|
||||
|
||||
void ac_nir_translate(struct ac_llvm_context *ac, struct ac_shader_abi *abi,
|
||||
struct nir_shader *nir);
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user