Compare commits
1479 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
1bdf31e8da | ||
|
ecf0bef4cd | ||
|
60fa18b90f | ||
|
62058968e7 | ||
|
1fa6c87c88 | ||
|
00d310a130 | ||
|
906f670f1a | ||
|
9ae2499be2 | ||
|
9b3ac17991 | ||
|
d7d47d6c0b | ||
|
29f07f6461 | ||
|
1f18137d28 | ||
|
7722a54e60 | ||
|
bc507471db | ||
|
42d1a7b3de | ||
|
237d6fa97a | ||
|
0e9b79c22a | ||
|
7a18f005ed | ||
|
95a3724c69 | ||
|
98e8fb84de | ||
|
5b5c436c65 | ||
|
970df845ef | ||
|
32f4a83fe8 | ||
|
2c1998b3b9 | ||
|
a3337a66ef | ||
|
25ba654229 | ||
|
733478975d | ||
|
ea72e3cda8 | ||
|
835205e295 | ||
|
2a45566587 | ||
|
68060d6bfd | ||
|
fd35fab340 | ||
|
658d994473 | ||
|
8a8ccc00b5 | ||
|
21364bd09d | ||
|
6b2c771ddd | ||
|
22ff4ec969 | ||
|
228da884c9 | ||
|
c0009739bf | ||
|
bb7d993953 | ||
|
172de77b12 | ||
|
6b151886fd | ||
|
436db5df9c | ||
|
5459781715 | ||
|
b95767a57a | ||
|
f60e81ecb2 | ||
|
d15ce8dd29 | ||
|
449b301eec | ||
|
4464ee1a9a | ||
|
439628318b | ||
|
00c44de1a6 | ||
|
e4f88bcad3 | ||
|
0092375714 | ||
|
c4d37ed43a | ||
|
242a18dc46 | ||
|
0abee468f8 | ||
|
72ea656dad | ||
|
30b199f867 | ||
|
9b242a03d5 | ||
|
8317a43a75 | ||
|
625fdf58c6 | ||
|
5f776f2a7d | ||
|
d2e633a8bd | ||
|
135501c201 | ||
|
681f4820ab | ||
|
4b7ad91990 | ||
|
cd114ba503 | ||
|
b8cc97ed26 | ||
|
53a3e743ae | ||
|
a31eec0d10 | ||
|
6c85918159 | ||
|
eaad245418 | ||
|
0a77734c62 | ||
|
8d0d4381da | ||
|
a0eefc9bd0 | ||
|
2af0708c85 | ||
|
8fb8b8528d | ||
|
0ebdfa31bc | ||
|
ab68b00453 | ||
|
a895cce693 | ||
|
23a3753a28 | ||
|
b53035e10d | ||
|
b2fbf8225b | ||
|
bf7b347c10 | ||
|
7e90db0ddc | ||
|
521819f29c | ||
|
8b4315cb47 | ||
|
986319cd20 | ||
|
c3fd76ce09 | ||
|
08fa61dab6 | ||
|
8d1f1eae93 | ||
|
b9cc9166cf | ||
|
07210d5c77 | ||
|
57a6e6092f | ||
|
5b09cf5c57 | ||
|
eb0fd67f6a | ||
|
c6dfde2136 | ||
|
71bd5d424c | ||
|
33e1019d95 | ||
|
ab94d6f902 | ||
|
5becf89a17 | ||
|
13a2d4a985 | ||
|
f2d166583d | ||
|
49d2c552a5 | ||
|
a864b15b83 | ||
|
e458c3ddbb | ||
|
b8a46f910d | ||
|
eca2a91a9b | ||
|
1f083e1839 | ||
|
9bbf2a343f | ||
|
38dfedccb2 | ||
|
1e0e116d6d | ||
|
aaadd4c111 | ||
|
0d31b130bb | ||
|
e4b1dce9ec | ||
|
0f87fe948a | ||
|
f484fc7476 | ||
|
b9c7773e0d | ||
|
7d2ff4ae77 | ||
|
1bbf124ff8 | ||
|
ca7560765c | ||
|
878d701da4 | ||
|
c19b963ad6 | ||
|
95185c7fe2 | ||
|
e1221a8811 | ||
|
f732b5a999 | ||
|
0129d5297b | ||
|
27f00df2b7 | ||
|
8dcfe15a9a | ||
|
2c0e00de23 | ||
|
1895de7a32 | ||
|
7dc636dd77 | ||
|
e42b822fec | ||
|
0501cee136 | ||
|
38ae26b709 | ||
|
de798938d4 | ||
|
acd2a03ffb | ||
|
d1786cea1c | ||
|
934c7a0661 | ||
|
2ba0d0a5e8 | ||
|
1cf8f9599c | ||
|
2781baaa64 | ||
|
a74400ca30 | ||
|
a5e2074fdd | ||
|
fad6e2ea5a | ||
|
a73c667069 | ||
|
e87f79c8a4 | ||
|
fa8cfbfb64 | ||
|
446a67b74e | ||
|
d5c84929a7 | ||
|
dd9b78e212 | ||
|
2cadae90c0 | ||
|
ffb0f94136 | ||
|
badd2900ea | ||
|
6c032dd837 | ||
|
70c5be6c91 | ||
|
3b92831fab | ||
|
e6d07585f8 | ||
|
4bd0f04531 | ||
|
45716cffbe | ||
|
ae633fa0ef | ||
|
25861dc7f3 | ||
|
3fc660e896 | ||
|
0fbf3562d1 | ||
|
13476840a6 | ||
|
5336f7f5a5 | ||
|
a470104763 | ||
|
338cf7128c | ||
|
36dab12726 | ||
|
dc253d3100 | ||
|
9f362a587e | ||
|
8b5257a96f | ||
|
94e12df164 | ||
|
ac6a24001b | ||
|
b7e69912fa | ||
|
268a2c1a8a | ||
|
28b95b2b01 | ||
|
0a6ef34741 | ||
|
545ecf6542 | ||
|
a88f4914a3 | ||
|
ad2b567f51 | ||
|
37c2c9688c | ||
|
012b2057e8 | ||
|
eb2a04b467 | ||
|
060e22c212 | ||
|
2330b7267c | ||
|
7a7377a090 | ||
|
d79d69c933 | ||
|
d072260921 | ||
|
942c1b8de1 | ||
|
0502da1ade | ||
|
bb38f931a8 | ||
|
726ce042f8 | ||
|
4ebd2c7c09 | ||
|
e7794048ca | ||
|
e20346bfc8 | ||
|
2217a70aaf | ||
|
6c1a9a327d | ||
|
e33f306d67 | ||
|
f69357d77a | ||
|
d8a0c1b4bc | ||
|
f396e43b7d | ||
|
aedfd07fb2 | ||
|
9e669d9f28 | ||
|
4258e9b3a5 | ||
|
de8f22af28 | ||
|
6ee71bab94 | ||
|
6c72801c2b | ||
|
0d2c369535 | ||
|
fffd20cdc1 | ||
|
fad610fec9 | ||
|
9ca791d380 | ||
|
69720cb0c4 | ||
|
8589ca000a | ||
|
dcbd00e73c | ||
|
bba1600531 | ||
|
f4c55ea016 | ||
|
aa05fbe14d | ||
|
0a7574f62c | ||
|
1098f9228d | ||
|
5238303790 | ||
|
a03974ffb9 | ||
|
2d64d34cb9 | ||
|
66b41af391 | ||
|
67aa20d9d5 | ||
|
7d6c37b0c2 | ||
|
32c7224edb | ||
|
788acd552e | ||
|
a2b8802ed5 | ||
|
8b41ae0b2a | ||
|
b00b5fe267 | ||
|
3a5a7cfd2a | ||
|
aad12d15bb | ||
|
977db7cc65 | ||
|
d31c1c33ed | ||
|
3481a5a1e6 | ||
|
a26b6cc001 | ||
|
7d992b8471 | ||
|
0bfa310049 | ||
|
7555eb7478 | ||
|
fd461c5888 | ||
|
208bae4251 | ||
|
13d12b35e9 | ||
|
337102684b | ||
|
b305c956be | ||
|
7c98381ed4 | ||
|
0ce6506d6e | ||
|
7fc66f0bed | ||
|
e24c3575e4 | ||
|
2e50a93cf3 | ||
|
2c29c24543 | ||
|
4cbaa2283c | ||
|
e29d44eacd | ||
|
f29208aa9b | ||
|
7af4e18dcd | ||
|
344db29ede | ||
|
680c468f61 | ||
|
7ee4cb453b | ||
|
a152ab6df1 | ||
|
a99914509e | ||
|
891073fea3 | ||
|
dcaec739ea | ||
|
ea241750f7 | ||
|
9efd6dc677 | ||
|
c6ddeeed7a | ||
|
108e807b7b | ||
|
421bca32fb | ||
|
0f0ab15a46 | ||
|
b3c2438d4e | ||
|
25287008b6 | ||
|
62b282e749 | ||
|
9aa8c02ae2 | ||
|
b0ecde7f39 | ||
|
fe70a40e47 | ||
|
73b68316f4 | ||
|
7ba7531929 | ||
|
2826e3a000 | ||
|
f80ae99cbd | ||
|
ae11fb02dd | ||
|
a90b88f354 | ||
|
0e699cc0e8 | ||
|
e6e7c456de | ||
|
31f4ab790f | ||
|
9f978104d8 | ||
|
9d78935100 | ||
|
d469ebaa0a | ||
|
f5fa4606ea | ||
|
89ed95ad3d | ||
|
3b605cb0d6 | ||
|
9bfb79923f | ||
|
7d8a04643f | ||
|
3065bae508 | ||
|
443ff6024d | ||
|
a20a950829 | ||
|
9279c1e556 | ||
|
b8f722a82e | ||
|
9304645a07 | ||
|
c3b3719096 | ||
|
55a75856fb | ||
|
e3e99be131 | ||
|
5a7d1c9710 | ||
|
6ac5554298 | ||
|
9eace71048 | ||
|
8d9202c162 | ||
|
ef9f16f632 | ||
|
d739434af8 | ||
|
72f2bd2a41 | ||
|
b0549fab5c | ||
|
ac88916978 | ||
|
336b2c7fbd | ||
|
a8907c6005 | ||
|
89af428aea | ||
|
8a77029f4c | ||
|
928bf189ff | ||
|
a9e34ada26 | ||
|
804995807d | ||
|
b033f050fd | ||
|
c66982f7dc | ||
|
530c68d616 | ||
|
576f489dad | ||
|
270de51f1d | ||
|
57fe695a17 | ||
|
189303fb30 | ||
|
c4da12e74f | ||
|
8428b48673 | ||
|
b0a4f34ea8 | ||
|
efd0ffd1b0 | ||
|
dc062db95d | ||
|
b292ef8f88 | ||
|
d3bfa9bb4a | ||
|
98af042079 | ||
|
127bd9d5b6 | ||
|
b8972db223 | ||
|
f28cf18609 | ||
|
42cd6192a2 | ||
|
1ae00c5960 | ||
|
65d0d69c91 | ||
|
433afb7352 | ||
|
f70c2f8521 | ||
|
e4cef07b87 | ||
|
2196feb47f | ||
|
b90c710c6c | ||
|
bd1ceb5c5b | ||
|
567778e49a | ||
|
0fafcc6919 | ||
|
29574af377 | ||
|
0eb780262c | ||
|
e43a096f0c | ||
|
52aa06a2cd | ||
|
5d1561b4ab | ||
|
a8d7f36d65 | ||
|
82ebfa6387 | ||
|
ee416c6ffe | ||
|
ebc884d3dd | ||
|
9383cfb4ba | ||
|
ac8f59b23e | ||
|
773556e0f5 | ||
|
7b44830ef4 | ||
|
3a7953910a | ||
|
1a69b50b3b | ||
|
6b28b44d45 | ||
|
95c2e0b601 | ||
|
3acae45915 | ||
|
feec48114b | ||
|
6062692cc6 | ||
|
97f263c229 | ||
|
e357ae9494 | ||
|
bffae4c9cd | ||
|
d09704b4e9 | ||
|
5cd4d85517 | ||
|
8869a26237 | ||
|
951b75808e | ||
|
01e493980c | ||
|
1a062dfc6f | ||
|
407832b0d2 | ||
|
100a37587f | ||
|
12c105b5de | ||
|
e41a91cea7 | ||
|
2b41399bb4 | ||
|
09e71cf722 | ||
|
629c15aaac | ||
|
eafd331cf3 | ||
|
d81126b714 | ||
|
8567e02dca | ||
|
0c27dcb75c | ||
|
3541cc0d40 | ||
|
6cf3d1cace | ||
|
18d4a44bdc | ||
|
d91dc4a356 | ||
|
c0c0bb6cb1 | ||
|
08183357c0 | ||
|
b663292ae9 | ||
|
c9760c5c89 | ||
|
febf5e4147 | ||
|
875a1f8960 | ||
|
b8f097f7a0 | ||
|
7451bffad4 | ||
|
a000745f80 | ||
|
f36d210c93 | ||
|
15e64242f9 | ||
|
d3d3fea720 | ||
|
5f691ba36f | ||
|
ad7387fe12 | ||
|
45aecf0114 | ||
|
cb29ee91a2 | ||
|
ca7510bbf9 | ||
|
9c5d15e929 | ||
|
1f544cc587 | ||
|
d631c19db4 | ||
|
8f28c05d07 | ||
|
babe1fc004 | ||
|
935e7e4126 | ||
|
e9d49d282d | ||
|
737bd7367e | ||
|
e5fc4c81ce | ||
|
48d4a001b3 | ||
|
2ff797060d | ||
|
eddcecbf74 | ||
|
15d7f1c1c7 | ||
|
3af3c58dfd | ||
|
5fbbd4c19f | ||
|
fa5478c5fe | ||
|
1e5cef96d1 | ||
|
8a5a28b731 | ||
|
87c3bb65bb | ||
|
7587c140cd | ||
|
1a339b6c71 | ||
|
98ce1373e4 | ||
|
468c2c0841 | ||
|
465183c6ae | ||
|
5ff22ab229 | ||
|
c4930cb417 | ||
|
eb2c9b5814 | ||
|
76bd1c1818 | ||
|
9786688672 | ||
|
3c95ff209f | ||
|
79dddedfd1 | ||
|
f3f080e526 | ||
|
50d7d03a79 | ||
|
63e8cda9f1 | ||
|
21972c85ea | ||
|
3db27d4a4a | ||
|
36e05c6870 | ||
|
39d0e3632a | ||
|
23ed3b90c7 | ||
|
0cb356dd5c | ||
|
8c91d751c8 | ||
|
0c74091591 | ||
|
e251b3903a | ||
|
59a402cecd | ||
|
abe74a9820 | ||
|
4112ca54e3 | ||
|
75be6b76ee | ||
|
649d03d54d | ||
|
bc60a7515a | ||
|
4fbdde889c | ||
|
517614141b | ||
|
559e4f8ebc | ||
|
fbd7448977 | ||
|
de77324d8f | ||
|
4e5c51a05e | ||
|
f6e5230b26 | ||
|
0ab7d6f437 | ||
|
dfada714f8 | ||
|
8f9e8d79c8 | ||
|
911768700e | ||
|
c860f48f11 | ||
|
7d4d608240 | ||
|
b46dc45cee | ||
|
416a698b3c | ||
|
16a04e019d | ||
|
80636ff2da | ||
|
8eea050f5a | ||
|
66c71d150a | ||
|
c772d4e6f3 | ||
|
a97b40a886 | ||
|
21c0556b61 | ||
|
2f6a9687cf | ||
|
fe20edf959 | ||
|
54d1b718b8 | ||
|
badf0335ef | ||
|
9bcce02f47 | ||
|
1251e1df0f | ||
|
9ba2907f2e | ||
|
0c7c5b6876 | ||
|
58b6a19ea4 | ||
|
440d71db78 | ||
|
ad50abbac9 | ||
|
d1f66a9424 | ||
|
8623c68aec | ||
|
0d58723cde | ||
|
dd3b812962 | ||
|
6430df3773 | ||
|
01fa9addf4 | ||
|
f1622cfe9c | ||
|
6c947cfd19 | ||
|
2f4a4b943f | ||
|
3fa910fff9 | ||
|
ad9481e128 | ||
|
c173541d97 | ||
|
962dab9486 | ||
|
6f998b58bc | ||
|
001e071443 | ||
|
a5a36d9b15 | ||
|
5c2c60175d | ||
|
a4f4e24f07 | ||
|
7df7eaf845 | ||
|
2fe39b46e7 | ||
|
8ab1c5328b | ||
|
a916d4279a | ||
|
753660780a | ||
|
da5c852d63 | ||
|
15750d89b9 | ||
|
3ea6fdfdf1 | ||
|
befaab8fa1 | ||
|
cb5a5f055b | ||
|
10562fbc5c | ||
|
ef4bf40db0 | ||
|
c9be435c79 | ||
|
d6a0fe19e8 | ||
|
c7bd0fa485 | ||
|
bf69ce37f0 | ||
|
8173471fc2 | ||
|
4175010749 | ||
|
fc8c4a3a7b | ||
|
37e6ab7b2d | ||
|
2960526816 | ||
|
016621ee14 | ||
|
8875dd5871 | ||
|
d105f6684d | ||
|
6f243ec25d | ||
|
40aec11b75 | ||
|
6415f25663 | ||
|
ef8f6a8c59 | ||
|
de91ea1c06 | ||
|
13c9a8552b | ||
|
34a774797c | ||
|
d9ca94836e | ||
|
677a4406d2 | ||
|
7c7a8a38e5 | ||
|
1e16c34c5c | ||
|
3751aa4592 | ||
|
99feecc7d1 | ||
|
c1477f6ffe | ||
|
cbad86841b | ||
|
ee231b30a8 | ||
|
24a760e9cb | ||
|
7d488ade23 | ||
|
df6355512a | ||
|
10e418f381 | ||
|
b0c4db68b2 | ||
|
2bfd81df0a | ||
|
ba55ccd312 | ||
|
b9fbb9df22 | ||
|
56965aa007 | ||
|
f94fef83db | ||
|
6dcc398ac0 | ||
|
9c5fdbb721 | ||
|
9a523a48af | ||
|
0fac09a87c | ||
|
afbe605eff | ||
|
4a60b0c8d2 | ||
|
d5809115b5 | ||
|
51ce86b781 | ||
|
13dcf3f20d | ||
|
130e7ead87 | ||
|
a8b9a75b92 | ||
|
a128355ecb | ||
|
c17fb8539f | ||
|
e823ab1b00 | ||
|
f318a15f45 | ||
|
b5b7d2acc6 | ||
|
be2b9bdcee | ||
|
63e38bd0f6 | ||
|
9346d895e7 | ||
|
2743851c1a | ||
|
296e6b9038 | ||
|
df46eb8ec0 | ||
|
ef0d548838 | ||
|
fb60e2061b | ||
|
d29117752f | ||
|
b17aab5753 | ||
|
4fa01d705f | ||
|
816b8acfe8 | ||
|
c6cf82fb55 | ||
|
e903cc17bb | ||
|
b44d13e67b | ||
|
df8d26ec09 | ||
|
755f2e2ae5 | ||
|
8852e35e29 | ||
|
e6e1864f1c | ||
|
2f0b44f981 | ||
|
b0f1767d77 | ||
|
e1f88016ec | ||
|
e2529442e6 | ||
|
92563476e4 | ||
|
317247390a | ||
|
b19d86701e | ||
|
77b7e1b58f | ||
|
3e1caf5d26 | ||
|
982cb36584 | ||
|
77e031a1c4 | ||
|
cf69eeacc6 | ||
|
16e30276e8 | ||
|
a23bf646bd | ||
|
b8325fd255 | ||
|
9a00dd9746 | ||
|
df1dacf093 | ||
|
02b6e97c75 | ||
|
f35913b96e | ||
|
85937f4c0d | ||
|
837dc61011 | ||
|
219150433a | ||
|
4176025d46 | ||
|
20f087863d | ||
|
23ef4a6063 | ||
|
97d230b0bc | ||
|
eca3e910ed | ||
|
8681ebcf7f | ||
|
6861a70177 | ||
|
f304bb8a5d | ||
|
e7280b16d6 | ||
|
da8b4c0798 | ||
|
466ce95ddf | ||
|
04554c7d3a | ||
|
d56fe67c62 | ||
|
578d4539ba | ||
|
f48412c39f | ||
|
d302804deb | ||
|
c1090f3019 | ||
|
da009212fe | ||
|
b537f54b3a | ||
|
b3d5822e93 | ||
|
894db40f12 | ||
|
9f865646f1 | ||
|
4ef8464068 | ||
|
acf82657f4 | ||
|
2a63807616 | ||
|
626440add5 | ||
|
53b53a141e | ||
|
a00ca90815 | ||
|
bd265201da | ||
|
e37e196151 | ||
|
2d22186ca8 | ||
|
3b23cf43a4 | ||
|
1b90d7d36b | ||
|
2835c5112d | ||
|
aea2236af6 | ||
|
f4efb7ff4f | ||
|
89d34cfd3e | ||
|
84294fe26c | ||
|
beb8b7da20 | ||
|
6b2bf272ee | ||
|
df9f533c67 | ||
|
4501a5d6e8 | ||
|
ff99103c0a | ||
|
2abc8cae87 | ||
|
6b492d0976 | ||
|
4bb748b609 | ||
|
0dc45374f2 | ||
|
fed482f5e3 | ||
|
fe3a343441 | ||
|
7c2847a972 | ||
|
9404835ccd | ||
|
f1733d16de | ||
|
62811057f4 | ||
|
f1cdce95f6 | ||
|
a25271fcb8 | ||
|
d329b68f35 | ||
|
713fb50759 | ||
|
3d75c42bbf | ||
|
f9c2feb96b | ||
|
5f2deba9f3 | ||
|
f6572017b9 | ||
|
0e8d045bf8 | ||
|
3a71f880d2 | ||
|
3871e74733 | ||
|
e157f381f2 | ||
|
7d215e7c4d | ||
|
88cec59170 | ||
|
19b9e523c5 | ||
|
9fb404b47e | ||
|
190bfea2de | ||
|
e84981dede | ||
|
c1f9884bbf | ||
|
f659cc46bc | ||
|
a5329d4f78 | ||
|
745abb53cf | ||
|
e66053d01c | ||
|
ba78a5a679 | ||
|
ff8717527d | ||
|
138f660b58 | ||
|
4707ae20ad | ||
|
ff298a66d7 | ||
|
e21601e46e | ||
|
bb4758669c | ||
|
7f9c17aaa8 | ||
|
1d71bbed3b | ||
|
ac3c2c8ece | ||
|
3b11d67ef6 | ||
|
ec2b08de77 | ||
|
bdf2e11285 | ||
|
5d4c479822 | ||
|
7c1d478192 | ||
|
d7111353bd | ||
|
4123131f3c | ||
|
eaae63b715 | ||
|
6d894f68af | ||
|
23b6f9606d | ||
|
6ea70600b9 | ||
|
cebdffaa2a | ||
|
ed0e4bb4c1 | ||
|
42ba8d141f | ||
|
2bb253120e | ||
|
6b82193677 | ||
|
a433755ec5 | ||
|
7f881c43df | ||
|
88fd16d548 | ||
|
09f83ce4da | ||
|
681ed756c0 | ||
|
b3e75a61ee | ||
|
47f3d5d42d | ||
|
57f2f84f0e | ||
|
ef59049c52 | ||
|
7d2cb9a53c | ||
|
abb4365269 | ||
|
22c320aa2c | ||
|
ca01fe007d | ||
|
63184bc8b2 | ||
|
f356bb74de | ||
|
be7af43f5a | ||
|
cf0f02e501 | ||
|
eb4bb48ef4 | ||
|
6cd3534676 | ||
|
2292025c49 | ||
|
0f091333d1 | ||
|
0ce977a66e | ||
|
893b92adff | ||
|
3d3ecb8520 | ||
|
cec2082ae5 | ||
|
3103c08ae9 | ||
|
1af8b7250f | ||
|
c2e659037f | ||
|
4ba9cfe4b8 | ||
|
f9a3200adb | ||
|
e5d241ddb2 | ||
|
d563009cd1 | ||
|
2ee5272e16 | ||
|
7c5f37c032 | ||
|
f4537f99cc | ||
|
b438005d96 | ||
|
155cf15ce2 | ||
|
fb40f1f532 | ||
|
5d35343d12 | ||
|
1885cf27c9 | ||
|
3843bbcb4c | ||
|
8593bb32ea | ||
|
7cdf969527 | ||
|
1d24e6ec1d | ||
|
279e471750 | ||
|
b7f0ed8444 | ||
|
488d6c739f | ||
|
22613d1670 | ||
|
bb621cb61e | ||
|
4c9bab78a1 | ||
|
8e89d0bea7 | ||
|
e8ea8793e3 | ||
|
a513bee2f2 | ||
|
164108e3db | ||
|
836a595594 | ||
|
e9868979c5 | ||
|
d313346db6 | ||
|
d8b733643d | ||
|
3f05374574 | ||
|
6491e9593d | ||
|
26b566e19c | ||
|
4077336fc7 | ||
|
1dbcb83881 | ||
|
970726dd6f | ||
|
de0adb691f | ||
|
aaeb9a8216 | ||
|
52f6e79b7c | ||
|
9653acc52a | ||
|
bbce18c647 | ||
|
230c71d9ee | ||
|
b03296c1e9 | ||
|
09201cc7a0 | ||
|
0dae94610e | ||
|
898f4c5133 | ||
|
873379a881 | ||
|
a9c5efb111 | ||
|
51d0892ee2 | ||
|
e09e5cb7d8 | ||
|
776a2a5447 | ||
|
bddf275db4 | ||
|
f62e1f41b4 | ||
|
bab3b4a758 | ||
|
029ea39fb9 | ||
|
d1fd740bb7 | ||
|
a531513b06 | ||
|
f61d1deac7 | ||
|
b0dc2d0c3b | ||
|
573758fd09 | ||
|
4423c79ddf | ||
|
42502b6f03 | ||
|
7f6672f6a7 | ||
|
991dbd71fd | ||
|
c1159eea54 | ||
|
8782fdc1db | ||
|
9eb86f89a9 | ||
|
8fcafeb475 | ||
|
57242715cb | ||
|
f3652f0983 | ||
|
b9e9df78a0 | ||
|
d69dc2e203 | ||
|
37a85b1830 | ||
|
c5903ed454 | ||
|
414cd5df50 | ||
|
c331b3123e | ||
|
089aa313b4 | ||
|
fc5aec9342 | ||
|
a7cd65fb38 | ||
|
aa87a938fb | ||
|
5bf6cc95c1 | ||
|
f04765922c | ||
|
ee643b23ff | ||
|
e764f10ea5 | ||
|
9bdc44a528 | ||
|
ac11c01dde | ||
|
ae5c1fceba | ||
|
7d437b1f7f | ||
|
3412069e23 | ||
|
bcbb1a536f | ||
|
d1946f5348 | ||
|
f29bc77572 | ||
|
b1246cf13b | ||
|
b5518834e3 | ||
|
c4175c811e | ||
|
d2ede5e648 | ||
|
0cdd82df53 | ||
|
65ee7cd1df | ||
|
29ceeeba20 | ||
|
1b37a41661 | ||
|
8d45bbc422 | ||
|
91e56c8897 | ||
|
ccfeb90b75 | ||
|
c0277d9539 | ||
|
1c95c3ef9c | ||
|
24ed0b384b | ||
|
6c638b7ca1 | ||
|
26d718ff71 | ||
|
49d4e803d3 | ||
|
ff038170ff | ||
|
f133ff51a2 | ||
|
b9e8cb0a59 | ||
|
76056510bc | ||
|
aae56150f5 | ||
|
f76787b3ea | ||
|
d18792f93d | ||
|
70b86fb273 | ||
|
2397f20b6b | ||
|
9a3f861faf | ||
|
fc48de4fab | ||
|
4eeabd5a3d | ||
|
0653c450cc | ||
|
9bd7e9c6b2 | ||
|
8752764076 | ||
|
d1f70a8a6c | ||
|
11dd9e9c0f | ||
|
b7b700aeb0 | ||
|
14b86f3c91 | ||
|
53c89c67f3 | ||
|
1791857d7d | ||
|
615117ce4e | ||
|
40540cc517 | ||
|
828b26b7eb | ||
|
4609e80288 | ||
|
e401c1f57f | ||
|
6126d50e75 | ||
|
e00481586c | ||
|
3b0f431820 | ||
|
919e260bff | ||
|
848bcd2e8c | ||
|
f7b3f40b70 | ||
|
9a729ab4b2 | ||
|
f147599ef4 | ||
|
c095335fa5 | ||
|
6d4b974e89 | ||
|
d3451f7f9c | ||
|
f73ff463a2 | ||
|
179a88d52c | ||
|
f84be846ca | ||
|
95fa22c864 | ||
|
001aa6c979 | ||
|
4535c98cdb | ||
|
8f7c815568 | ||
|
3e06803c2c | ||
|
bf14ab417c | ||
|
1697dac642 | ||
|
b5846865de | ||
|
fa42de5ad7 | ||
|
5ed7a7b720 | ||
|
e7bcfadc22 | ||
|
ce8fdf666f | ||
|
c270f1a628 | ||
|
6ed829fe50 | ||
|
7c0e6d9bbc | ||
|
a9e6509785 | ||
|
1a1411e09b | ||
|
b5c847c7ca | ||
|
4e0654ec29 | ||
|
76f77cb07e | ||
|
a95ec18549 | ||
|
c44dad559a | ||
|
017cd5dcc3 | ||
|
868c04205c | ||
|
7779f6d1df | ||
|
d1b8f8e8b3 | ||
|
ece871c038 | ||
|
3869be74af | ||
|
a3aecd190b | ||
|
5a6897ff0b | ||
|
b24f291e42 | ||
|
d3b6e8a2b8 | ||
|
cd5417aac7 | ||
|
d57e95f22a | ||
|
c3c1976f52 | ||
|
5af46e8360 | ||
|
e8b1c6d6f5 | ||
|
d0c6d24a9e | ||
|
b522eb0717 | ||
|
fd6f2d6e57 | ||
|
3c5e741862 | ||
|
9be8524af7 | ||
|
24de02acac | ||
|
5e48560926 | ||
|
733fa000ce | ||
|
ea90eca44b | ||
|
ca79036fe8 | ||
|
8e7d4d4e0c | ||
|
075d2bfb72 | ||
|
a436b3b2d4 | ||
|
4f59b32178 | ||
|
38f89c7008 | ||
|
1929d52fd9 | ||
|
d1cd1cc871 | ||
|
81183b1e3e | ||
|
7be3e50731 | ||
|
43bdabd47d | ||
|
be0a2f62f3 | ||
|
339544f4bb | ||
|
ec4dfc2aad | ||
|
f4a9868811 | ||
|
116133af34 | ||
|
bfaa458445 | ||
|
3e43adef95 | ||
|
a98dd64af7 | ||
|
64f8ddaf9b | ||
|
90e922267a | ||
|
4bbc7915f1 | ||
|
b126a0c0cb | ||
|
7592f00560 | ||
|
136eb2bde7 | ||
|
27b0392661 | ||
|
367020d87c | ||
|
51761a1aef | ||
|
5dd5be69f0 | ||
|
61c67eca7d | ||
|
8a98aabe0b | ||
|
707eadcb7f | ||
|
496bf04905 | ||
|
de1df26b5c | ||
|
3e0bb02358 | ||
|
2758e65f28 | ||
|
bb31ecf4fb | ||
|
6bd8647b54 | ||
|
ecc051d65b | ||
|
4e98318fc1 | ||
|
461e193971 | ||
|
ead7d73a51 | ||
|
b2c1f8ff1d | ||
|
1b3d354743 | ||
|
7f5e0d2a90 | ||
|
344283de5d | ||
|
199a2f90ab | ||
|
2a95568f64 | ||
|
6e918163df | ||
|
77397ef96e | ||
|
64ce592679 | ||
|
ff6e3c73f6 | ||
|
36f8de02e7 | ||
|
3f44043da3 | ||
|
3984372104 | ||
|
b2b6cc6622 | ||
|
c12a93d5c4 | ||
|
70c6cd39bd | ||
|
62b79b4bb9 | ||
|
09d881bf74 | ||
|
97d4d6f77e | ||
|
ce526a7452 | ||
|
482e8a6cd5 | ||
|
550ad737f7 | ||
|
fa4b23581b | ||
|
d58400eb4a | ||
|
8c8985bdd7 | ||
|
bc08d4ebb8 | ||
|
a94fe79464 | ||
|
706dbf85f1 | ||
|
e0e2c04596 | ||
|
bac10b58de | ||
|
6b2010df7d | ||
|
18402fbf79 | ||
|
81fd03fe56 | ||
|
24d0ed72c1 | ||
|
a924d69b57 | ||
|
7d608d0c33 | ||
|
3dc4bc1f78 | ||
|
8832920c29 | ||
|
477e2fe031 | ||
|
235fa21a09 | ||
|
89a82d72ca | ||
|
d55471768e | ||
|
d0f0d06482 | ||
|
c638180fc7 | ||
|
5936d96d33 | ||
|
774fb90db3 | ||
|
ebeea98573 | ||
|
c6175d7870 | ||
|
3559440873 | ||
|
217cd216ea | ||
|
390196ecc7 | ||
|
a3ac28a736 | ||
|
947190ab4b | ||
|
1309d2ea72 | ||
|
2b8e7215eb | ||
|
b8033a5651 | ||
|
c9aa3bbda4 | ||
|
bc16c73407 | ||
|
bd5b7a6f71 | ||
|
6d539579ad | ||
|
8a4136f624 | ||
|
19f59dd413 | ||
|
fdd37af3f7 | ||
|
904f43f190 | ||
|
51095f74cf | ||
|
ad2999d211 | ||
|
2bba244329 | ||
|
c77855d64e | ||
|
17eaff77b0 | ||
|
5f5d486717 | ||
|
dd445ae120 | ||
|
e28e3a774c | ||
|
fae77579ad | ||
|
c5ac8a8aa2 | ||
|
48a0a096f8 | ||
|
184bb09ff5 | ||
|
83c68758be | ||
|
93aea63a33 | ||
|
64e3cd0c42 | ||
|
f247b2d633 | ||
|
ceaec24149 | ||
|
ac85ab066b | ||
|
c7b1497f4e | ||
|
8a50637453 | ||
|
1ca3efe548 | ||
|
240049adfa | ||
|
d79a4a612b | ||
|
d015d2f391 | ||
|
5e15497452 | ||
|
5de2c67ba7 | ||
|
4a47d6d46b | ||
|
6c26072bd1 | ||
|
6a661895e9 | ||
|
6699cd4e8d | ||
|
32a95cb70c | ||
|
95c93651b4 | ||
|
4612554dce | ||
|
d1e8195c07 | ||
|
b9f2750900 | ||
|
7a271151a5 | ||
|
2812b60a84 | ||
|
a67ecfeebc | ||
|
d6b248652a | ||
|
68074387a4 | ||
|
5a3a242a8f | ||
|
1d4eb8d5d8 | ||
|
4e1b1cbd0d | ||
|
86852236a3 | ||
|
7297f2ac3c | ||
|
56b39fcd8b | ||
|
801fbdf286 | ||
|
39be542f73 | ||
|
b9e8ea6a27 | ||
|
ad904cdf98 | ||
|
9d792d013c | ||
|
991c1f0249 | ||
|
5e945863ca | ||
|
bd3ce30ee7 | ||
|
6e0263fdd4 | ||
|
7c5eaf5a2d | ||
|
7074801ed7 | ||
|
de3d9fa956 | ||
|
ebc0b2dca0 | ||
|
03615c02d8 | ||
|
d8e222d887 | ||
|
6bb230970c | ||
|
531b12af35 | ||
|
27d3e0b25c | ||
|
483d2ea5e3 | ||
|
d931b0d8b3 | ||
|
a5f0a11477 | ||
|
bf65c9ea41 | ||
|
a19c42ffc6 | ||
|
3b20a89941 | ||
|
3b2bc4ac5b | ||
|
8c3226be90 | ||
|
2c3232da7a | ||
|
e5169e9615 | ||
|
834b84149d | ||
|
a3e2c8f31f | ||
|
31d27259b6 | ||
|
5939bc03bc | ||
|
bf7a3ddca6 | ||
|
5066f7cd0e | ||
|
d116fe51c1 | ||
|
a041525ed9 | ||
|
02a6c9428d | ||
|
f60235e73a | ||
|
dc4a3edcf9 | ||
|
ae7abf080b | ||
|
70227e21bb | ||
|
6ae9e8cbab | ||
|
37058c3497 | ||
|
da87370032 | ||
|
9fbd708932 | ||
|
c636daa145 | ||
|
fc30910c65 | ||
|
f85cd39fc4 | ||
|
0f0179b8c2 | ||
|
27477248d3 | ||
|
c120d9d1cc | ||
|
a8bbce8d6d | ||
|
5829332a9b | ||
|
5ba2e7adf0 | ||
|
93754d8499 | ||
|
320adb93a1 | ||
|
a677952e68 | ||
|
3be1c7f260 | ||
|
9ecb46f59e | ||
|
62aa51b78a | ||
|
aafbaa9e6a | ||
|
220abb7adf | ||
|
f986a6560f | ||
|
9cb800a97c | ||
|
02b352e2ac | ||
|
ca6896ba14 | ||
|
929b3d8233 | ||
|
5815d06ac5 | ||
|
951244c4cd | ||
|
484b51d484 | ||
|
eb0a9e9a5a | ||
|
1654988562 | ||
|
0d5ceb5891 | ||
|
72c6a748b9 | ||
|
fb8786bda3 | ||
|
08520bdea2 | ||
|
cacdc42e36 | ||
|
425cfa139b | ||
|
847d397b34 | ||
|
2032daced1 | ||
|
2d2b546189 | ||
|
f507530d25 | ||
|
97398d1d56 | ||
|
56e83b4aa2 | ||
|
e9d2ef79de | ||
|
dc9e5ed5e1 | ||
|
7679a4ddf4 | ||
|
d7cf9833d7 | ||
|
7edf7d1169 | ||
|
899b786b19 | ||
|
d379e938f0 | ||
|
1b75d48e84 | ||
|
ac952a11df | ||
|
fe622bac0c | ||
|
e4a765ae2d | ||
|
dbac75fa2f | ||
|
4f4d1d06da | ||
|
bbcee3268a | ||
|
6a6068e5e1 | ||
|
bd661a933b | ||
|
fdff7e635b | ||
|
0f1e59deac | ||
|
076bd11112 | ||
|
be293c14c6 | ||
|
04bdb2f314 | ||
|
6a02679f01 | ||
|
3032582d03 | ||
|
acb4d5cd96 | ||
|
8ba0c025a4 | ||
|
d6ba7b1603 | ||
|
bb7ff01deb | ||
|
588cebce2d | ||
|
04e3f1d3c2 | ||
|
a82a43e8d9 | ||
|
855f56ca13 | ||
|
5c742ea1ee | ||
|
1a447749ed | ||
|
c108a3f863 | ||
|
35e8fe5c99 | ||
|
2ee1fd2e8f | ||
|
d67c08319f | ||
|
8d2047ca7e | ||
|
3628e123f1 | ||
|
32cc0c9d8d | ||
|
90c70123b8 | ||
|
530de3a2f5 | ||
|
03b2e0fcdf | ||
|
8c1637a4c2 | ||
|
2be2e1d3ad | ||
|
dc520d4fef | ||
|
8a58eccc62 | ||
|
f8279fb9d8 | ||
|
f974bdebee | ||
|
aed76e5af3 | ||
|
aeac658e25 | ||
|
8b558451ad | ||
|
e62530a6c0 | ||
|
631d23daa9 | ||
|
b48359184e | ||
|
1271424615 | ||
|
de9f55437a | ||
|
349184be36 | ||
|
1da44f5923 | ||
|
9d7698c468 | ||
|
1d5f16ff8f | ||
|
608a4a17fe | ||
|
19efd1442c | ||
|
8cce283038 | ||
|
284191560b | ||
|
fa7a051c25 | ||
|
f9cc6acbfa | ||
|
f3c92c2323 | ||
|
0be6ae74e9 | ||
|
33afdf8356 | ||
|
aa3e1c25d3 | ||
|
66d95919d5 | ||
|
48aa772589 | ||
|
b8de75d537 | ||
|
069a9766a9 | ||
|
7e5953fca2 | ||
|
31200d0688 | ||
|
e031bed122 | ||
|
1e5dc6a778 | ||
|
39cd791f34 | ||
|
2d422a6c48 | ||
|
83eda35f16 | ||
|
6b329b9274 | ||
|
37642518b8 | ||
|
445289b509 | ||
|
0834607a89 | ||
|
91d1a14158 | ||
|
3b20f999bb | ||
|
b061b5ffb0 | ||
|
b943b9b1a6 | ||
|
9c57780dc0 | ||
|
42ad2f0b9b | ||
|
662f1b48bd | ||
|
76b7a0c1af | ||
|
148a32e622 | ||
|
54990673a6 | ||
|
af20328271 | ||
|
8575d18362 | ||
|
141b0bb277 | ||
|
2ac1cb8b83 | ||
|
7c647a2fe9 | ||
|
5dfba09d49 | ||
|
7363088f9f | ||
|
63325a0586 | ||
|
cd354b4eb8 | ||
|
f274dfaca4 | ||
|
b6ed837ffe | ||
|
4dfbb81891 | ||
|
6a35ed1f66 | ||
|
d72e7f0dd9 | ||
|
34fd282b27 | ||
|
aaa3c0d6de | ||
|
b2a98c3531 | ||
|
d7577ae3a6 | ||
|
32001c2244 | ||
|
0fecb928f5 | ||
|
a86fc719d6 | ||
|
9e59ed59c1 | ||
|
628544421d | ||
|
077b1a6144 | ||
|
774c165d76 | ||
|
71667533d1 | ||
|
512c814849 | ||
|
def6a91a62 | ||
|
d737857ed2 | ||
|
de48199693 | ||
|
863eecd0d8 | ||
|
0a9cec3475 | ||
|
0b3122cfcb | ||
|
0c71da18ee | ||
|
f18a086326 | ||
|
6372660d12 | ||
|
77dc4c154c | ||
|
22d5a71e4d | ||
|
e4da46e007 | ||
|
d7f4c4e1b1 | ||
|
79bde19ef9 | ||
|
bad8da8b00 | ||
|
e1e6545c88 | ||
|
1f32c665c8 | ||
|
1df72402d9 | ||
|
332822bd3d | ||
|
fb60040b69 | ||
|
4093fdce6d | ||
|
7d1a2056a8 | ||
|
bc880b8d40 | ||
|
da49de811d | ||
|
5bd545f5aa | ||
|
336487450e | ||
|
fed8a07ddb | ||
|
97efac09b2 | ||
|
c2c44f2641 | ||
|
d34ddad9a5 | ||
|
15eaf8297e | ||
|
4c92f3fa6e | ||
|
8e8a56eaa0 | ||
|
c89cca648d | ||
|
abda64efce | ||
|
de29ee0e6d | ||
|
931432fea6 | ||
|
72239d16cd | ||
|
9d07ff63fc | ||
|
01b036adea | ||
|
b1a9172277 | ||
|
5b2ff543ab | ||
|
673cec467a | ||
|
400a99a679 | ||
|
f09c66b3cc | ||
|
1617b268ef | ||
|
2225397d1c | ||
|
1faf079a69 | ||
|
7142a67473 | ||
|
d439491a77 | ||
|
499f7c0114 | ||
|
c41cb17037 | ||
|
8fc5ed18bc | ||
|
4d203a01e2 | ||
|
df7555e763 | ||
|
8780c38983 | ||
|
f0188d4b08 | ||
|
3aa21f93dc | ||
|
a22aba4eae | ||
|
4ad63659c0 | ||
|
f9dafcb8f2 | ||
|
883d8a0b44 | ||
|
64f55216e4 | ||
|
08ba9778db | ||
|
dfaaf7c5e8 | ||
|
c0f8c9911c | ||
|
42d377224a | ||
|
2ea0aa4cd9 | ||
|
6e13cbcb74 | ||
|
d22e2ebe35 | ||
|
99fa449bb9 | ||
|
b249197259 | ||
|
87478cd6e3 | ||
|
0bbbeba2db | ||
|
b31a99367c | ||
|
bad08969b5 | ||
|
f7c26109c2 | ||
|
ba99c2fbd9 | ||
|
a45b757f78 | ||
|
abee17057f | ||
|
6067a2a67f | ||
|
8b7f760f83 | ||
|
08d1c91e6c | ||
|
843dfe3206 | ||
|
b545b2987a | ||
|
3c3a259603 | ||
|
7a6061d7a6 | ||
|
494b333b03 | ||
|
66866d642f | ||
|
5722286be2 | ||
|
ab13ebf7c1 | ||
|
c98fa6be4b | ||
|
723e35d4a6 | ||
|
ffc1d166d2 | ||
|
f41e1db327 | ||
|
f05adb83f5 | ||
|
5b5a16e320 | ||
|
a6e32da8bd | ||
|
02522b76a1 | ||
|
e3b9cf15bb | ||
|
162bc40eed | ||
|
c058067e57 | ||
|
edf2e4f79d | ||
|
ff5dd55e26 | ||
|
42a8057000 | ||
|
3d5cfcfed1 | ||
|
7ca38f5d97 | ||
|
9418d05914 | ||
|
1249e54f8b | ||
|
dad95c112f | ||
|
bc57df0356 | ||
|
73f0700481 | ||
|
2b624634dd | ||
|
f0471d904c | ||
|
a52803e108 | ||
|
6ab9889a27 | ||
|
0778fdb002 | ||
|
9f164823c7 | ||
|
155200c154 | ||
|
348ea34d03 | ||
|
91226ce648 | ||
|
641dd899bd | ||
|
cd3568c329 | ||
|
699ecec58c | ||
|
d35aeff4bb | ||
|
f79717d27a | ||
|
fc8e30edbc | ||
|
3f32efa2b8 | ||
|
4673f9433f | ||
|
59c6b775a6 | ||
|
14eedf3028 | ||
|
9dacbe2226 | ||
|
93d42571a6 | ||
|
70de2705b4 | ||
|
b5dfc38eea | ||
|
25a7f66214 | ||
|
f4ad25fefb | ||
|
b4c7cd3fd6 | ||
|
a582b859f7 | ||
|
97535699ee | ||
|
257cc48de2 | ||
|
0fa81d6d05 | ||
|
d5a5893adc | ||
|
af0e2ef8cc | ||
|
77db34b50d | ||
|
bb78f6ad78 | ||
|
4ee40c37a0 | ||
|
41b38bd21c | ||
|
0630593c5f | ||
|
1b800c10e4 | ||
|
2c57caa893 | ||
|
6e9c7c4c11 | ||
|
d2afae33f8 | ||
|
9305922563 | ||
|
397e478683 | ||
|
75fa5c99a8 | ||
|
848f7d368d | ||
|
2d12dbb28d | ||
|
faba01d171 | ||
|
8e28d842d1 | ||
|
33128310b0 | ||
|
15f99d1362 | ||
|
0ecbb0ab74 | ||
|
19648fcf01 | ||
|
3d78f83cde | ||
|
02d293c08e | ||
|
0b80f2d4c9 | ||
|
6affa4806a | ||
|
d3c6ed382d | ||
|
ea3b2560b1 | ||
|
6881cfc7f7 | ||
|
78e90bf247 | ||
|
a9a02c8a39 | ||
|
fb6e39737a | ||
|
28cec9e832 | ||
|
4847f802c2 | ||
|
811c147220 | ||
|
756c262756 | ||
|
175829f1a8 | ||
|
9e04b190b5 | ||
|
7ec0c97896 | ||
|
01822706ec |
71
Makefile
71
Makefile
@@ -183,7 +183,7 @@ ultrix-gcc:
|
||||
|
||||
# Rules for making release tarballs
|
||||
|
||||
VERSION=7.11-devel
|
||||
VERSION=7.11.2
|
||||
DIRECTORY = Mesa-$(VERSION)
|
||||
LIB_NAME = MesaLib-$(VERSION)
|
||||
GLUT_NAME = MesaGLUT-$(VERSION)
|
||||
@@ -200,6 +200,9 @@ MAIN_FILES = \
|
||||
$(DIRECTORY)/configure.ac \
|
||||
$(DIRECTORY)/acinclude.m4 \
|
||||
$(DIRECTORY)/aclocal.m4 \
|
||||
$(DIRECTORY)/SConstruct \
|
||||
$(DIRECTORY)/common.py \
|
||||
$(DIRECTORY)/scons/*py \
|
||||
$(DIRECTORY)/bin/config.guess \
|
||||
$(DIRECTORY)/bin/config.sub \
|
||||
$(DIRECTORY)/bin/extract_git_sha1 \
|
||||
@@ -227,30 +230,37 @@ MAIN_FILES = \
|
||||
$(DIRECTORY)/include/GL/vms_x_fix.h \
|
||||
$(DIRECTORY)/include/GL/wglext.h \
|
||||
$(DIRECTORY)/include/GL/wmesa.h \
|
||||
$(DIRECTORY)/include/pci_ids/*.h \
|
||||
$(DIRECTORY)/include/c99/*.h \
|
||||
$(DIRECTORY)/src/getopt/SConscript \
|
||||
$(DIRECTORY)/src/getopt/getopt*.[ch] \
|
||||
$(DIRECTORY)/src/glsl/Makefile \
|
||||
$(DIRECTORY)/src/glsl/Makefile.template \
|
||||
$(DIRECTORY)/src/glsl/SConscript \
|
||||
$(DIRECTORY)/src/glsl/*.[ch] \
|
||||
$(DIRECTORY)/src/glsl/*.ll \
|
||||
$(DIRECTORY)/src/glsl/*.yy \
|
||||
$(DIRECTORY)/src/glsl/*.[cly]pp \
|
||||
$(DIRECTORY)/src/glsl/README \
|
||||
$(DIRECTORY)/src/glsl/glcpp/*.[chly] \
|
||||
$(DIRECTORY)/src/glsl/glcpp/README \
|
||||
$(DIRECTORY)/src/glsl/builtins \
|
||||
$(DIRECTORY)/src/Makefile \
|
||||
$(DIRECTORY)/src/SConscript \
|
||||
$(DIRECTORY)/src/mesa/Makefile* \
|
||||
$(DIRECTORY)/src/mesa/SConscript \
|
||||
$(DIRECTORY)/src/mesa/sources.mak \
|
||||
$(DIRECTORY)/src/mesa/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/gl.pc.in \
|
||||
$(DIRECTORY)/src/mesa/osmesa.pc.in \
|
||||
$(DIRECTORY)/src/mesa/depend \
|
||||
$(MAIN_ES_FILES) \
|
||||
$(DIRECTORY)/src/mesa/main/*.[chS] \
|
||||
$(DIRECTORY)/src/mesa/main/*.cpp \
|
||||
$(DIRECTORY)/src/mesa/main/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/math/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/math/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/program/*.[chly] \
|
||||
$(DIRECTORY)/src/mesa/program/*.cpp \
|
||||
$(DIRECTORY)/src/mesa/program/Makefile \
|
||||
$(DIRECTORY)/src/mesa/program/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/swrast/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/swrast/descrip.mms \
|
||||
@@ -309,7 +319,10 @@ MAPI_FILES = \
|
||||
$(DIRECTORY)/src/mapi/mapi/mapi_abi.py \
|
||||
$(DIRECTORY)/src/mapi/mapi/sources.mak \
|
||||
$(DIRECTORY)/src/mapi/mapi/*.[ch] \
|
||||
$(DIRECTORY)/src/mapi/shared-glapi/SConscript \
|
||||
$(DIRECTORY)/src/mapi/shared-glapi/Makefile \
|
||||
$(DIRECTORY)/src/mapi/vgapi/Makefile \
|
||||
$(DIRECTORY)/src/mapi/vgapi/SConscript \
|
||||
$(DIRECTORY)/src/mapi/vgapi/vgapi.csv \
|
||||
$(DIRECTORY)/src/mapi/vgapi/vg.pc.in
|
||||
|
||||
@@ -322,9 +335,22 @@ EGL_FILES = \
|
||||
$(DIRECTORY)/src/egl/*/*.[ch] \
|
||||
$(DIRECTORY)/src/egl/*/*/Makefile \
|
||||
$(DIRECTORY)/src/egl/*/*/*.[ch] \
|
||||
$(DIRECTORY)/src/egl/wayland/wayland-drm/protocol/*.xml \
|
||||
$(DIRECTORY)/src/egl/wayland/wayland-egl/*.pc.in \
|
||||
$(DIRECTORY)/src/egl/main/SConscript \
|
||||
$(DIRECTORY)/src/egl/main/*.pc.in \
|
||||
$(DIRECTORY)/src/egl/main/*.def
|
||||
|
||||
GBM_FILES = \
|
||||
$(DIRECTORY)/src/gbm/Makefile \
|
||||
$(DIRECTORY)/src/gbm/main/*.pc.in \
|
||||
$(DIRECTORY)/src/gbm/main/*.[ch] \
|
||||
$(DIRECTORY)/src/gbm/main/Makefile \
|
||||
$(DIRECTORY)/src/gbm/backends/Makefile \
|
||||
$(DIRECTORY)/src/gbm/backends/Makefile.template \
|
||||
$(DIRECTORY)/src/gbm/backends/*/*.[ch] \
|
||||
$(DIRECTORY)/src/gbm/backends/*/Makefile \
|
||||
|
||||
GALLIUM_FILES = \
|
||||
$(DIRECTORY)/src/mesa/state_tracker/*[ch] \
|
||||
$(DIRECTORY)/src/gallium/Makefile \
|
||||
@@ -346,14 +372,17 @@ GALLIUM_FILES = \
|
||||
$(DIRECTORY)/src/gallium/*/*/*/*.[ch] \
|
||||
$(DIRECTORY)/src/gallium/*/*/*/*.py
|
||||
|
||||
APPLE_DRI_FILES = \
|
||||
$(DIRECTORY)/src/glx/apple/Makefile \
|
||||
$(DIRECTORY)/src/glx/apple/*.[ch]
|
||||
|
||||
DRI_FILES = \
|
||||
$(DIRECTORY)/include/GL/internal/dri_interface.h \
|
||||
$(DIRECTORY)/include/GL/internal/sarea.h \
|
||||
$(DIRECTORY)/src/glx/Makefile \
|
||||
$(DIRECTORY)/src/glx/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template \
|
||||
$(APPLE_DRI_FILES) \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile* \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/dri.pc.in \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.po \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/*.[chS] \
|
||||
@@ -361,6 +390,7 @@ DRI_FILES = \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/*/*.[chS] \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/*/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/*/SConscript \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile
|
||||
|
||||
SGI_GLU_FILES = \
|
||||
@@ -390,14 +420,13 @@ GLW_FILES = \
|
||||
$(DIRECTORY)/src/glw/*.[ch] \
|
||||
$(DIRECTORY)/src/glw/Makefile* \
|
||||
$(DIRECTORY)/src/glw/README \
|
||||
$(DIRECTORY)/src/glw/glw.pc.in \
|
||||
$(DIRECTORY)/src/glw/depend
|
||||
$(DIRECTORY)/src/glw/glw.pc.in
|
||||
|
||||
GLUT_FILES = \
|
||||
$(DIRECTORY)/include/GL/glut.h \
|
||||
$(DIRECTORY)/include/GL/glutf90.h \
|
||||
$(DIRECTORY)/src/glut/glx/Makefile* \
|
||||
$(DIRECTORY)/src/glut/glx/depend \
|
||||
$(DIRECTORY)/src/glut/glx/SConscript \
|
||||
$(DIRECTORY)/src/glut/glx/glut.pc.in \
|
||||
$(DIRECTORY)/src/glut/glx/*def \
|
||||
$(DIRECTORY)/src/glut/glx/*.[ch] \
|
||||
@@ -405,19 +434,13 @@ GLUT_FILES = \
|
||||
$(DIRECTORY)/src/glut/beos/*.cpp \
|
||||
$(DIRECTORY)/src/glut/beos/Makefile
|
||||
|
||||
DEPEND_FILES = \
|
||||
$(TOP)/src/mesa/depend \
|
||||
$(TOP)/src/glx/depend \
|
||||
$(TOP)/src/glw/depend \
|
||||
$(TOP)/src/glut/glx/depend \
|
||||
$(TOP)/src/glu/sgi/depend
|
||||
|
||||
|
||||
LIB_FILES = \
|
||||
$(MAIN_FILES) \
|
||||
$(MAPI_FILES) \
|
||||
$(ES_FILES) \
|
||||
$(EGL_FILES) \
|
||||
$(GBM_FILES) \
|
||||
$(GALLIUM_FILES) \
|
||||
$(DRI_FILES) \
|
||||
$(SGI_GLU_FILES) \
|
||||
@@ -428,7 +451,7 @@ parsers: configure
|
||||
-@touch $(TOP)/configs/current
|
||||
$(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp
|
||||
$(MAKE) -C src/glsl/glcpp glcpp-lex.c glcpp-parse.c glcpp-parse.h
|
||||
$(MAKE) -C src/mesa/program lex.yy.c program_parse.tab.c program_parse.tab.h
|
||||
$(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
|
||||
|
||||
# Everything for new a Mesa release:
|
||||
ARCHIVES = $(LIB_NAME).tar.gz \
|
||||
@@ -448,27 +471,21 @@ AUTOCONF = autoconf
|
||||
AC_FLAGS =
|
||||
aclocal.m4: configure.ac acinclude.m4
|
||||
$(ACLOCAL) $(ACLOCAL_FLAGS)
|
||||
configure: rm_depend configure.ac aclocal.m4 acinclude.m4
|
||||
configure: configure.ac aclocal.m4 acinclude.m4
|
||||
$(AUTOCONF) $(AC_FLAGS)
|
||||
|
||||
rm_depend:
|
||||
@for dep in $(DEPEND_FILES) ; do \
|
||||
rm -f $$dep ; \
|
||||
touch $$dep ; \
|
||||
done
|
||||
|
||||
rm_config: parsers
|
||||
rm -f configs/current
|
||||
rm -f configs/autoconf
|
||||
|
||||
$(LIB_NAME).tar: rm_config
|
||||
cd .. ; tar -cf $(DIRECTORY)/$(LIB_NAME).tar $(LIB_FILES)
|
||||
cd .. ; tar --dereference -cf $(DIRECTORY)/$(LIB_NAME).tar $(LIB_FILES)
|
||||
|
||||
$(LIB_NAME).tar.gz: $(LIB_NAME).tar
|
||||
gzip --stdout --best $(LIB_NAME).tar > $(LIB_NAME).tar.gz
|
||||
|
||||
$(GLUT_NAME).tar: rm_depend
|
||||
cd .. ; tar -cf $(DIRECTORY)/$(GLUT_NAME).tar $(GLUT_FILES)
|
||||
$(GLUT_NAME).tar:
|
||||
cd .. ; tar --dereference -cf $(DIRECTORY)/$(GLUT_NAME).tar $(GLUT_FILES)
|
||||
|
||||
$(GLUT_NAME).tar.gz: $(GLUT_NAME).tar
|
||||
gzip --stdout --best $(GLUT_NAME).tar > $(GLUT_NAME).tar.gz
|
||||
@@ -499,4 +516,4 @@ md5: $(ARCHIVES)
|
||||
@-md5sum $(GLUT_NAME).tar.bz2
|
||||
@-md5sum $(GLUT_NAME).zip
|
||||
|
||||
.PHONY: tarballs rm_depend rm_config md5
|
||||
.PHONY: tarballs rm_config md5
|
||||
|
57
SConstruct
57
SConstruct
@@ -40,6 +40,8 @@ env = Environment(
|
||||
ENV = os.environ,
|
||||
)
|
||||
|
||||
opts.Save('config.py', env)
|
||||
|
||||
# Backwards compatability with old target configuration variable
|
||||
try:
|
||||
targets = ARGUMENTS['targets']
|
||||
@@ -80,44 +82,6 @@ env.Append(CPPPATH = [
|
||||
if env['msvc']:
|
||||
env.Append(CPPPATH = ['#include/c99'])
|
||||
|
||||
# Embedded
|
||||
if env['platform'] == 'embedded':
|
||||
env.Append(CPPDEFINES = [
|
||||
'_POSIX_SOURCE',
|
||||
('_POSIX_C_SOURCE', '199309L'),
|
||||
'_SVID_SOURCE',
|
||||
'_BSD_SOURCE',
|
||||
'_GNU_SOURCE',
|
||||
|
||||
'PTHREADS',
|
||||
])
|
||||
env.Append(LIBS = [
|
||||
'm',
|
||||
'pthread',
|
||||
'dl',
|
||||
])
|
||||
|
||||
# Posix
|
||||
if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
|
||||
env.Append(CPPDEFINES = [
|
||||
'_POSIX_SOURCE',
|
||||
('_POSIX_C_SOURCE', '199309L'),
|
||||
'_SVID_SOURCE',
|
||||
'_BSD_SOURCE',
|
||||
'_GNU_SOURCE',
|
||||
'PTHREADS',
|
||||
'HAVE_POSIX_MEMALIGN',
|
||||
])
|
||||
if env['gcc']:
|
||||
env.Append(CFLAGS = ['-fvisibility=hidden'])
|
||||
if env['platform'] == 'darwin':
|
||||
env.Append(CPPDEFINES = ['_DARWIN_C_SOURCE'])
|
||||
env.Append(LIBS = [
|
||||
'm',
|
||||
'pthread',
|
||||
'dl',
|
||||
])
|
||||
|
||||
# for debugging
|
||||
#print env.Dump()
|
||||
|
||||
@@ -130,7 +94,7 @@ if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
|
||||
#
|
||||
|
||||
# Create host environent
|
||||
if env['crosscompile'] and env['platform'] != 'embedded':
|
||||
if env['crosscompile'] and not env['embedded']:
|
||||
host_env = Environment(
|
||||
options = opts,
|
||||
# no tool used
|
||||
@@ -179,3 +143,18 @@ SConscript(
|
||||
duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
|
||||
)
|
||||
|
||||
|
||||
########################################################################
|
||||
# List all aliases
|
||||
|
||||
try:
|
||||
from SCons.Node.Alias import default_ans
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
aliases = default_ans.keys()
|
||||
aliases.sort()
|
||||
env.Help('\n')
|
||||
env.Help('Recognized targets:\n')
|
||||
for alias in aliases:
|
||||
env.Help(' %s\n' % alias)
|
||||
|
@@ -1,10 +1,20 @@
|
||||
#!/bin/sh
|
||||
touch src/mesa/main/git_sha1.h
|
||||
if [ ! -f src/mesa/main/git_sha1.h ]; then
|
||||
touch src/mesa/main/git_sha1.h
|
||||
fi
|
||||
|
||||
if [ ! -d .git ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
if which git > /dev/null; then
|
||||
# Extract the 7-digit "short" SHA1 for the current HEAD, convert
|
||||
# it to a string, and wrap it in a #define. This is used in
|
||||
# src/mesa/main/version.c to put the GIT SHA1 in the GL_VERSION string.
|
||||
git log -n 1 --oneline |\
|
||||
sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
|
||||
> src/mesa/main/git_sha1.h
|
||||
> src/mesa/main/git_sha1.h.tmp
|
||||
if ! cmp -s src/mesa/main/git_sha1.h.tmp src/mesa/main/git_sha1.h; then
|
||||
mv src/mesa/main/git_sha1.h.tmp src/mesa/main/git_sha1.h
|
||||
fi
|
||||
fi
|
||||
|
11
bin/mklib
11
bin/mklib
@@ -767,9 +767,8 @@ case $ARCH in
|
||||
OPTS="${OPTS} -exported_symbols_list ${EXPORTS}"
|
||||
fi
|
||||
|
||||
LINKNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
|
||||
LINKNAME2="lib${LIBNAME}.${LIBSUFFIX}"
|
||||
LIBNAME="lib${LIBNAME}.${MAJOR}.${MINOR}.${LIBSUFFIX}"
|
||||
LINKNAME="lib${LIBNAME}.${LIBSUFFIX}"
|
||||
LIBNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
|
||||
|
||||
# examine first object to determine ABI
|
||||
set ${OBJECTS}
|
||||
@@ -782,9 +781,6 @@ case $ARCH in
|
||||
OPTS=${ALTOPTS}
|
||||
fi
|
||||
|
||||
# XXX can we always add -isysroot /Developer/SDKs/MacOSX10.4u.sdk
|
||||
# to OPTS here?
|
||||
|
||||
# determine linker
|
||||
if [ $CPLUSPLUS = 1 ] ; then
|
||||
LINK="g++"
|
||||
@@ -796,8 +792,7 @@ case $ARCH in
|
||||
|
||||
${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||
ln -s ${LIBNAME} ${LINKNAME}
|
||||
ln -s ${LIBNAME} ${LINKNAME2}
|
||||
FINAL_LIBS="${LIBNAME} ${LINKNAME} ${LINKNAME2}"
|
||||
FINAL_LIBS="${LIBNAME} ${LINKNAME}"
|
||||
fi
|
||||
;;
|
||||
|
||||
|
@@ -79,14 +79,17 @@ def AddOptions(opts):
|
||||
from SCons.Options.EnumOption import EnumOption
|
||||
opts.Add(EnumOption('build', 'build type', 'debug',
|
||||
allowed_values=('debug', 'checked', 'profile', 'release')))
|
||||
opts.Add(BoolOption('quiet', 'quiet command lines', 'yes'))
|
||||
opts.Add(BoolOption('verbose', 'verbose output', 'no'))
|
||||
opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine,
|
||||
allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
|
||||
opts.Add(EnumOption('platform', 'target platform', host_platform,
|
||||
allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince', 'darwin', 'embedded', 'cygwin', 'sunos', 'freebsd8')))
|
||||
allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince', 'darwin', 'cygwin', 'sunos', 'freebsd8')))
|
||||
opts.Add(BoolOption('embedded', 'embedded build', 'no'))
|
||||
opts.Add('toolchain', 'compiler toolchain', default_toolchain)
|
||||
opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 'no'))
|
||||
opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
|
||||
opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
|
||||
opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
|
||||
opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0')))
|
||||
opts.Add(BoolOption('quiet', 'DEPRECATED: quiet command lines', 'yes'))
|
||||
if host_platform == 'windows':
|
||||
opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0')))
|
||||
|
@@ -26,6 +26,8 @@ LDFLAGS = @LDFLAGS@
|
||||
EXTRA_LIB_PATH = @EXTRA_LIB_PATH@
|
||||
RADEON_CFLAGS = @RADEON_CFLAGS@
|
||||
RADEON_LDFLAGS = @RADEON_LDFLAGS@
|
||||
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@
|
||||
NOUVEAU_LIBS = @NOUVEAU_LIBS@
|
||||
INTEL_LIBS = @INTEL_LIBS@
|
||||
INTEL_CFLAGS = @INTEL_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
@@ -58,6 +60,10 @@ INSTALL = @INSTALL@
|
||||
PYTHON2 = @PYTHON2@
|
||||
PYTHON_FLAGS = -t -O -O
|
||||
|
||||
# Flex and Bison for GLSL compiler
|
||||
FLEX = @FLEX@
|
||||
BISON = @BISON@
|
||||
|
||||
# Library names (base name)
|
||||
GL_LIB = GL
|
||||
GLU_LIB = GLU
|
||||
@@ -69,6 +75,7 @@ GLESv2_LIB = GLESv2
|
||||
VG_LIB = OpenVG
|
||||
GLAPI_LIB = glapi
|
||||
WAYLAND_EGL_LIB = wayland-egl
|
||||
GBM_LIB = gbm
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = @GL_LIB_NAME@
|
||||
@@ -82,6 +89,7 @@ GLESv2_LIB_NAME = @GLESv2_LIB_NAME@
|
||||
VG_LIB_NAME = @VG_LIB_NAME@
|
||||
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@
|
||||
WAYLAND_EGL_LIB_NAME = @WAYLAND_EGL_LIB_NAME@
|
||||
GBM_LIB_NAME = @GBM_LIB_NAME@
|
||||
|
||||
# Globs used to install the lib and all symlinks
|
||||
GL_LIB_GLOB = @GL_LIB_GLOB@
|
||||
@@ -95,6 +103,7 @@ GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@
|
||||
VG_LIB_GLOB = @VG_LIB_GLOB@
|
||||
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@
|
||||
WAYLAND_EGL_LIB_GLOB = @WAYLAND_EGL_LIB_GLOB@
|
||||
GBM_LIB_GLOB = @GBM_LIB_GLOB@
|
||||
|
||||
# Directories to build
|
||||
LIB_DIR = @LIB_DIR@
|
||||
@@ -102,6 +111,7 @@ SRC_DIRS = @SRC_DIRS@
|
||||
GLU_DIRS = @GLU_DIRS@
|
||||
DRIVER_DIRS = @DRIVER_DIRS@
|
||||
EGL_DRIVERS_DIRS = @EGL_DRIVERS_DIRS@
|
||||
GBM_BACKEND_DIRS = @GBM_BACKEND_DIRS@
|
||||
GALLIUM_DIRS = @GALLIUM_DIRS@
|
||||
GALLIUM_DRIVERS_DIRS = @GALLIUM_DRIVERS_DIRS@
|
||||
GALLIUM_WINSYS_DIRS = @GALLIUM_WINSYS_DIRS@
|
||||
@@ -141,7 +151,8 @@ GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv1_CM_LIB_DEPS@
|
||||
GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv2_LIB_DEPS@
|
||||
VG_LIB_DEPS = $(EXTRA_LIB_PATH) @VG_LIB_DEPS@
|
||||
GLAPI_LIB_DEPS = $(EXTRA_LIB_PATH) @GLAPI_LIB_DEPS@
|
||||
WAYLAND_EGL_LIB_DEPS = $(EXTRA_LIBPATH) @WAYLAND_EGL_LIB_DEPS@
|
||||
WAYLAND_EGL_LIB_DEPS = $(EXTRA_LIB_PATH) @WAYLAND_EGL_LIB_DEPS@
|
||||
GBM_LIB_DEPS = $(EXTRA_LIB_PATH) @GBM_LIB_DEPS@
|
||||
|
||||
# DRI dependencies
|
||||
MESA_MODULES = @MESA_MODULES@
|
||||
@@ -200,6 +211,9 @@ EGL_PC_CFLAGS = @GL_PC_CFLAGS@
|
||||
WAYLAND_EGL_PC_REQ_PRIV = @WAYLAND_EGL_PC_REQ_PRIV@
|
||||
WAYLAND_EGL_PC_LIB_PRIV = @WAYLAND_EGL_PC_LIB_PRIV@
|
||||
WAYLAND_EGL_PC_CFLAGS = @WAYLAND_EGL_PC_CFLAGS@
|
||||
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@
|
||||
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@
|
||||
GBM_PC_CFLAGS = @GBM_PC_CFLAGS@
|
||||
|
||||
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@
|
||||
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@
|
||||
|
@@ -25,27 +25,29 @@ DEFINES = -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE \
|
||||
|
||||
ARCH_FLAGS += $(RC_CFLAGS)
|
||||
|
||||
CFLAGS = -ggdb3 -Os -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing \
|
||||
CFLAGS = -ggdb3 -Os -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing -fvisibility=hidden \
|
||||
-I$(INSTALL_DIR)/include -I$(X11_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
|
||||
CXXFLAGS = -ggdb3 -Os -Wall -fno-strict-aliasing \
|
||||
CXXFLAGS = -ggdb3 -Os -Wall -fno-strict-aliasing -fvisibility=hidden \
|
||||
-I$(INSTALL_DIR)/include -I$(X11_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.dylib
|
||||
GLU_LIB_NAME = libGLU.dylib
|
||||
GLUT_LIB_NAME = libglut.dylib
|
||||
GLW_LIB_NAME = libGLw.dylib
|
||||
OSMESA_LIB_NAME = libOSMesa.dylib
|
||||
GL_LIB_NAME = lib$(GL_LIB).dylib
|
||||
GLU_LIB_NAME = lib$(GLU_LIB).dylib
|
||||
GLUT_LIB_NAME = lib$(GLUT_LIB).dylib
|
||||
GLW_LIB_NAME = lib$(GLW_LIB).dylib
|
||||
OSMESA_LIB_NAME = lib$(OSMESA_LIB).dylib
|
||||
VG_LIB_NAME = lib$(VG_LIB).dylib
|
||||
|
||||
# globs used to install the lib and all symlinks
|
||||
GL_LIB_GLOB = libGL.*dylib
|
||||
GLU_LIB_GLOB = libGLU.*dylib
|
||||
GLUT_LIB_GLOB = libglut.*dylib
|
||||
GLW_LIB_GLOB = libGLw.*dylib
|
||||
OSMESA_LIB_GLOB = libOSMesa.*dylib
|
||||
GL_LIB_GLOB = lib$(GL_LIB).*dylib
|
||||
GLU_LIB_GLOB = lib$(GLU_LIB).*dylib
|
||||
GLUT_LIB_GLOB = lib$(GLUT_LIB).*dylib
|
||||
GLW_LIB_GLOB = lib$(GLW_LIB).*dylib
|
||||
OSMESA_LIB_GLOB = lib$(OSMESA_LIB).*dylib
|
||||
VG_LIB_GLOB = lib$(VG_LIB).*dylib
|
||||
|
||||
GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXext -lm -lpthread
|
||||
OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
OSMESA_LIB_DEPS =
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXi -lXext
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXt
|
||||
@@ -57,3 +59,5 @@ GLU_DIRS = sgi
|
||||
DRIVER_DIRS = osmesa
|
||||
#DRIVER_DIRS = dri
|
||||
DRI_DIRS = swrast
|
||||
GALLIUM_DRIVERS_DIRS = softpipe trace rbug noop identity galahad failover
|
||||
#GALLIUM_DRIVERS_DIRS += llvmpipe
|
||||
|
@@ -38,6 +38,8 @@ MKLIB_OPTIONS =
|
||||
MKDEP = makedepend
|
||||
MKDEP_OPTIONS = -fdepend
|
||||
MAKE = make
|
||||
FLEX = flex
|
||||
BISON = bison
|
||||
|
||||
# Use MINSTALL for installing libraries, INSTALL for everything else
|
||||
MINSTALL = $(SHELL) $(TOP)/bin/minstall
|
||||
@@ -61,7 +63,7 @@ GLESv2_LIB = GLESv2
|
||||
VG_LIB = OpenVG
|
||||
GLAPI_LIB = glapi
|
||||
WAYLAND_EGL_LIB = wayland-egl
|
||||
|
||||
GBM_LIB = gbm
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = lib$(GL_LIB).so
|
||||
@@ -75,6 +77,7 @@ GLESv2_LIB_NAME = lib$(GLESv2_LIB).so
|
||||
VG_LIB_NAME = lib$(VG_LIB).so
|
||||
GLAPI_LIB_NAME = lib$(GLAPI_LIB).so
|
||||
WAYLAND_EGL_LIB_NAME = lib$(WAYLAND_EGL_LIB).so
|
||||
GBM_LIB_NAME = lib$(GBM_LIB).so
|
||||
|
||||
# globs used to install the lib and all symlinks
|
||||
GL_LIB_GLOB = $(GL_LIB_NAME)*
|
||||
@@ -88,6 +91,7 @@ GLESv2_LIB_GLOB = $(GLESv2_LIB_NAME)*
|
||||
VG_LIB_GLOB = $(VG_LIB_NAME)*
|
||||
GLAPI_LIB_GLOB = $(GLAPI_LIB_NAME)*
|
||||
WAYLAND_EGL_LIB_GLOB = $(WAYLAND_EGL_LIB_NAME)*
|
||||
GBM_LIB_GLOB = $(GBM_LIB_NAME)*
|
||||
|
||||
DRI_CFLAGS = $(CFLAGS)
|
||||
DRI_CXXFLAGS = $(CXXFLAGS)
|
||||
@@ -111,6 +115,9 @@ DRIVER_DIRS = x11 osmesa
|
||||
# EGL drivers to build
|
||||
EGL_DRIVERS_DIRS = glx
|
||||
|
||||
# gbm backends to build
|
||||
GBM_BACKEND_DIRS = dri
|
||||
|
||||
# Gallium directories and
|
||||
GALLIUM_DIRS = auxiliary drivers state_trackers
|
||||
GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a
|
||||
@@ -138,6 +145,7 @@ GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
|
||||
VG_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
|
||||
GLAPI_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
|
||||
WAYLAND_EGL_LIB_DEPS = $(EXTRA_LIB_PATH) -lwayland-client -ldrm
|
||||
GBM_LIB_DEPS = $(EXTRA_LIB_PATH) -ludev -ldl
|
||||
|
||||
# Program dependencies - specific GL/glut libraries added in Makefiles
|
||||
APP_LIB_DEPS = -lm
|
||||
@@ -157,6 +165,9 @@ DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
|
||||
# EGL driver install directory
|
||||
EGL_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/egl
|
||||
|
||||
# gbm backend install directory
|
||||
GBM_BACKEND_INSTALL_DIR = $(INSTALL_LIB_DIR)/gbm
|
||||
|
||||
# Xorg driver install directory (for xorg state-tracker)
|
||||
XORG_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/xorg/modules/drivers
|
||||
|
||||
@@ -189,3 +200,6 @@ VG_PC_CFLAGS =
|
||||
WAYLAND_EGL_PC_REQ_PRIV =
|
||||
WAYLAND_EGL_PC_LIB_PRIV =
|
||||
WAYLAND_EGL_PC_CFLAGS =
|
||||
GBM_PC_REQ_PRIV =
|
||||
GBM_PC_LIB_PRIV =
|
||||
GBM_PC_CFLAGS =
|
||||
|
@@ -63,11 +63,16 @@ GALLIUM_WINSYS_DIRS = sw sw/xlib drm/vmware drm/intel drm/i965
|
||||
GALLIUM_TARGET_DIRS =
|
||||
GALLIUM_STATE_TRACKERS_DIRS = egl
|
||||
|
||||
DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
|
||||
DRI_DIRS = i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
|
||||
savage sis tdfx unichrome swrast
|
||||
|
||||
INTEL_LIBS = `pkg-config --libs libdrm_intel`
|
||||
INTEL_CFLAGS = `pkg-config --cflags libdrm_intel`
|
||||
INTEL_LIBS = $(shell pkg-config --libs libdrm_intel)
|
||||
INTEL_CFLAGS = $(shell pkg-config --cflags libdrm_intel)
|
||||
|
||||
RADEON_LIBS = `pkg-config --libs libdrm_radeon`
|
||||
RADEON_CFLAGS = `pkg-config --cflags libdrm_radeon`
|
||||
NOUVEAU_LIBS = $(shell pkg-config --libs libdrm_nouveau)
|
||||
NOUVEAU_CFLAGS = $(shell pkg-config --cflags libdrm_nouveau)
|
||||
|
||||
LIBDRM_RADEON_LIBS = $(shell pkg-config --libs libdrm_radeon)
|
||||
LIBDRM_RADEON_CFLAGS = $(shell pkg-config --cflags libdrm_radeon)
|
||||
RADEON_CFLAGS = "-DHAVE_LIBDRM_RADEON=1 $(LIBDRM_RADEON_CFLAGS)"
|
||||
RADEON_LDFLAGS = $(LIBDRM_RADEON_LIBS)
|
||||
|
628
configure.ac
628
configure.ac
@@ -17,10 +17,15 @@ AC_INIT([Mesa],[mesa_version],
|
||||
AC_CONFIG_AUX_DIR([bin])
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
|
||||
USER_CFLAGS="$CFLAGS"
|
||||
USER_CXXFLAGS="$CXXFLAGS"
|
||||
|
||||
dnl Versions for external dependencies
|
||||
LIBDRM_REQUIRED=2.4.24
|
||||
LIBDRM_RADEON_REQUIRED=2.4.24
|
||||
LIBDRM_INTEL_REQUIRED=2.4.24
|
||||
LIBDRM_NOUVEAU_REQUIRED=0.6
|
||||
DRI2PROTO_REQUIRED=2.1
|
||||
GLPROTO_REQUIRED=1.4.11
|
||||
LIBDRM_XORG_REQUIRED=2.4.24
|
||||
@@ -39,6 +44,12 @@ if test "x$MKDEP" = "x"; then
|
||||
AC_MSG_ERROR([makedepend is required to build Mesa])
|
||||
fi
|
||||
|
||||
AC_PATH_PROG([FLEX], [flex])
|
||||
test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
|
||||
|
||||
AC_PATH_PROG([BISON], [bison])
|
||||
test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
|
||||
|
||||
dnl Our fallback install-sh is a symlink to minstall. Use the existing
|
||||
dnl configuration in that case.
|
||||
AC_PROG_INSTALL
|
||||
@@ -64,13 +75,13 @@ AC_COMPILE_IFELSE(
|
||||
not clang
|
||||
#endif
|
||||
]])],
|
||||
[CLANG=yes], [CLANG=no])
|
||||
[acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
|
||||
|
||||
AC_MSG_RESULT([$CLANG])
|
||||
AC_MSG_RESULT([$acv_mesa_CLANG])
|
||||
|
||||
dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
|
||||
dnl versions are explictly not supported.
|
||||
if test "x$GCC" = xyes -a "x$CLANG" = xno; then
|
||||
if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
|
||||
AC_MSG_CHECKING([whether gcc version is sufficient])
|
||||
major=0
|
||||
minor=0
|
||||
@@ -78,7 +89,7 @@ if test "x$GCC" = xyes -a "x$CLANG" = xno; then
|
||||
GCC_VERSION=`$CC -dumpversion`
|
||||
if test $? -eq 0; then
|
||||
major=`echo $GCC_VERSION | cut -d. -f1`
|
||||
minor=`echo $GCC_VERSION | cut -d. -f1`
|
||||
minor=`echo $GCC_VERSION | cut -d. -f2`
|
||||
fi
|
||||
|
||||
if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
|
||||
@@ -319,6 +330,21 @@ else
|
||||
esac
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl potentially-infringing-but-nobody-knows-for-sure stuff
|
||||
dnl
|
||||
AC_ARG_ENABLE([texture-float],
|
||||
[AS_HELP_STRING([--enable-texture-float],
|
||||
[enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
|
||||
[enable_texture_float="$enableval"],
|
||||
[enable_texture_float=no]
|
||||
)
|
||||
if test "x$enable_texture_float" = xyes; then
|
||||
AC_MSG_WARN([Floating-point textures enabled.])
|
||||
AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
|
||||
DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
|
||||
fi
|
||||
|
||||
GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
|
||||
GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
|
||||
GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
|
||||
@@ -330,6 +356,7 @@ GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
|
||||
VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
|
||||
GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
|
||||
WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
|
||||
GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
|
||||
|
||||
GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
|
||||
GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
|
||||
@@ -343,6 +370,7 @@ GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LI
|
||||
VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
|
||||
GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
|
||||
WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
|
||||
GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
|
||||
|
||||
AC_SUBST([GL_LIB_NAME])
|
||||
AC_SUBST([GLU_LIB_NAME])
|
||||
@@ -355,6 +383,7 @@ AC_SUBST([GLESv2_LIB_NAME])
|
||||
AC_SUBST([VG_LIB_NAME])
|
||||
AC_SUBST([GLAPI_LIB_NAME])
|
||||
AC_SUBST([WAYLAND_EGL_LIB_NAME])
|
||||
AC_SUBST([GBM_LIB_NAME])
|
||||
|
||||
AC_SUBST([GL_LIB_GLOB])
|
||||
AC_SUBST([GLU_LIB_GLOB])
|
||||
@@ -367,6 +396,7 @@ AC_SUBST([GLESv2_LIB_GLOB])
|
||||
AC_SUBST([VG_LIB_GLOB])
|
||||
AC_SUBST([GLAPI_LIB_GLOB])
|
||||
AC_SUBST([WAYLAND_EGL_LIB_GLOB])
|
||||
AC_SUBST([GBM_LIB_GLOB])
|
||||
|
||||
dnl
|
||||
dnl Arch/platform-specific settings
|
||||
@@ -485,7 +515,7 @@ if test "x$enable_selinux" = "xyes"; then
|
||||
DEFINES="$DEFINES -DMESA_SELINUX"
|
||||
fi
|
||||
|
||||
dnl Determine which APIs to support
|
||||
dnl Options for APIs
|
||||
AC_ARG_ENABLE([opengl],
|
||||
[AS_HELP_STRING([--disable-opengl],
|
||||
[disable support for standard OpenGL API @<:@default=no@:>@])],
|
||||
@@ -501,32 +531,70 @@ AC_ARG_ENABLE([gles2],
|
||||
[enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
|
||||
[enable_gles2="$enableval"],
|
||||
[enable_gles2=no])
|
||||
AC_ARG_ENABLE([gles-overlay],
|
||||
[AS_HELP_STRING([--enable-gles-overlay],
|
||||
[DEPRECATED. Same as --enable-gles1 and --enable-gles2])],
|
||||
[enable_gles1="$enableval"; enable_gles2="$enableval"],
|
||||
[])
|
||||
|
||||
AC_ARG_ENABLE([openvg],
|
||||
[AS_HELP_STRING([--enable-openvg],
|
||||
[enable support for OpenVG API @<:@default=no@:>@])],
|
||||
[enable_openvg="$enableval"],
|
||||
[enable_openvg=no])
|
||||
AC_ARG_ENABLE([xorg],
|
||||
[AS_HELP_STRING([--enable-xorg],
|
||||
[enable support for X.Org DDX API @<:@default=no@:>@])],
|
||||
[enable_xorg="$enableval"],
|
||||
[enable_xorg=no])
|
||||
AC_ARG_ENABLE([d3d1x],
|
||||
[AS_HELP_STRING([--enable-d3d1x],
|
||||
[enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
|
||||
[enable_d3d1x="$enableval"],
|
||||
[enable_d3d1x=no])
|
||||
AC_ARG_ENABLE([egl],
|
||||
[AS_HELP_STRING([--disable-egl],
|
||||
[disable EGL library @<:@default=enabled@:>@])],
|
||||
[enable_egl="$enableval"],
|
||||
[enable_egl=yes])
|
||||
AC_ARG_ENABLE([gbm],
|
||||
[AS_HELP_STRING([--enable-gbm],
|
||||
[enable gbm library @<:@default=auto@:>@])],
|
||||
[enable_gbm="$enableval"],
|
||||
[enable_gbm=auto])
|
||||
AC_ARG_ENABLE([gallium_egl],
|
||||
[AS_HELP_STRING([--enable-gallium-egl],
|
||||
[enable optional EGL state tracker (not required
|
||||
for EGL support in Gallium with OpenGL and OpenGL ES)
|
||||
@<:@default=disable@:>@])],
|
||||
[enable_gallium_egl="$enableval"],
|
||||
[enable_gallium_egl=no])
|
||||
AC_ARG_ENABLE([gallium_gbm],
|
||||
[AS_HELP_STRING([--enable-gallium-gbm],
|
||||
[enable optional gbm state tracker (not required for
|
||||
gbm support in Gallium)
|
||||
@<:@default=auto@:>@])],
|
||||
[enable_gallium_gbm="$enableval"],
|
||||
[enable_gallium_gbm=auto])
|
||||
|
||||
dnl smooth the transition; should be removed eventually
|
||||
if test "x$enable_openvg" = xno; then
|
||||
case "x$with_state_trackers" in
|
||||
x*vega*)
|
||||
AC_MSG_WARN([vega state tracker is enabled without --enable-openvg])
|
||||
enable_openvg=yes
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# Option for Gallium drivers
|
||||
GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
|
||||
|
||||
AC_ARG_WITH([gallium-drivers],
|
||||
[AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
|
||||
[comma delimited Gallium drivers list, e.g.
|
||||
"i915,i965,nouveau,r300,r600,svga,swrast"
|
||||
@<:@default=r300,r600,swrast@:>@])],
|
||||
[with_gallium_drivers="$withval"],
|
||||
[with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
|
||||
|
||||
# Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
|
||||
# here so that the script doesn't choke on an unknown driver name later.
|
||||
case "$with_gallium_drivers" in
|
||||
yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
|
||||
no) with_gallium_drivers='' ;;
|
||||
esac
|
||||
|
||||
if test "x$enable_opengl" = xno -a \
|
||||
"x$enable_gles1" = xno -a \
|
||||
"x$enable_gles2" = xno -a \
|
||||
"x$enable_openvg" = xno; then
|
||||
"x$enable_openvg" = xno -a \
|
||||
"x$enable_xorg" = xno -a \
|
||||
"x$enable_d3d1x" = xno; then
|
||||
AC_MSG_ERROR([at least one API should be enabled])
|
||||
fi
|
||||
|
||||
@@ -635,11 +703,6 @@ if test "x$enable_gles2" = xyes; then
|
||||
CORE_DIRS="$CORE_DIRS mapi/es2api"
|
||||
fi
|
||||
|
||||
# build vgapi if OpenVG is enabled
|
||||
if test "x$enable_openvg" = xyes; then
|
||||
CORE_DIRS="$CORE_DIRS mapi/vgapi"
|
||||
fi
|
||||
|
||||
# build glsl and mesa if OpenGL or OpenGL ES is enabled
|
||||
case "x$enable_opengl$enable_gles1$enable_gles2" in
|
||||
x*yes*)
|
||||
@@ -652,11 +715,14 @@ xlib)
|
||||
DRIVER_DIRS="x11"
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
|
||||
GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
;;
|
||||
dri)
|
||||
SRC_DIRS="$SRC_DIRS glx"
|
||||
DRIVER_DIRS="dri"
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
|
||||
GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
HAVE_ST_DRI="yes"
|
||||
;;
|
||||
osmesa)
|
||||
DRIVER_DIRS="osmesa"
|
||||
@@ -767,7 +833,7 @@ xlib)
|
||||
GL_PC_LIB_PRIV="$GL_LIB_DEPS"
|
||||
GL_PC_CFLAGS="$X11_INCLUDES"
|
||||
fi
|
||||
GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
|
||||
GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
|
||||
GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
|
||||
|
||||
# if static, move the external libraries to the programs
|
||||
@@ -893,11 +959,6 @@ AC_SUBST([MESA_MODULES])
|
||||
|
||||
AC_SUBST([HAVE_XF86VIDMODE])
|
||||
|
||||
PKG_CHECK_MODULES([LIBDRM_RADEON],
|
||||
[libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
|
||||
HAVE_LIBDRM_RADEON=yes,
|
||||
HAVE_LIBDRM_RADEON=no)
|
||||
|
||||
dnl
|
||||
dnl More X11 setup
|
||||
dnl
|
||||
@@ -983,8 +1044,8 @@ if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
|
||||
# the new interface. i810 are missing because there is no
|
||||
# x86-64 system where they could *ever* be used.
|
||||
if test "x$DRI_DIRS" = "xyes"; then
|
||||
DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
|
||||
savage tdfx unichrome swrast"
|
||||
DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
|
||||
radeon savage tdfx unichrome swrast"
|
||||
fi
|
||||
;;
|
||||
powerpc*)
|
||||
@@ -1011,8 +1072,8 @@ if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
|
||||
fi
|
||||
|
||||
if test "x$DRI_DIRS" = "xyes"; then
|
||||
DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
|
||||
unichrome savage sis swrast"
|
||||
DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
|
||||
radeon tdfx unichrome savage sis swrast"
|
||||
fi
|
||||
;;
|
||||
gnu*)
|
||||
@@ -1040,7 +1101,7 @@ if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
|
||||
|
||||
# default drivers
|
||||
if test "x$DRI_DIRS" = "xyes"; then
|
||||
DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
|
||||
DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
|
||||
savage sis tdfx unichrome swrast"
|
||||
fi
|
||||
|
||||
@@ -1076,8 +1137,19 @@ case $DRI_DIRS in
|
||||
;;
|
||||
esac
|
||||
|
||||
case $DRI_DIRS in
|
||||
*nouveau*)
|
||||
PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
|
||||
;;
|
||||
esac
|
||||
|
||||
case $DRI_DIRS in
|
||||
*radeon*|*r200*|*r300*|*r600*)
|
||||
PKG_CHECK_MODULES([LIBDRM_RADEON],
|
||||
[libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
|
||||
HAVE_LIBDRM_RADEON=yes,
|
||||
HAVE_LIBDRM_RADEON=no)
|
||||
|
||||
if test "x$HAVE_LIBDRM_RADEON" = xyes; then
|
||||
RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
|
||||
RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
|
||||
@@ -1153,45 +1225,75 @@ AC_SUBST([OSMESA_MESA_DEPS])
|
||||
AC_SUBST([OSMESA_PC_REQ])
|
||||
AC_SUBST([OSMESA_PC_LIB_PRIV])
|
||||
|
||||
dnl
|
||||
dnl gbm configuration
|
||||
dnl
|
||||
if test "x$enable_gbm" = xauto; then
|
||||
case "$with_egl_platforms" in
|
||||
*drm*)
|
||||
enable_gbm=yes ;;
|
||||
*)
|
||||
enable_gbm=no ;;
|
||||
esac
|
||||
fi
|
||||
if test "x$enable_gbm" = xyes; then
|
||||
SRC_DIRS="$SRC_DIRS gbm"
|
||||
GBM_BACKEND_DIRS=""
|
||||
|
||||
PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
|
||||
AC_MSG_ERROR([gbm needs udev]))
|
||||
GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
|
||||
|
||||
if test "$mesa_driver" = dri; then
|
||||
GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
|
||||
if test "$SHARED_GLAPI" -eq 0; then
|
||||
AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([GBM_LIB_DEPS])
|
||||
AC_SUBST([GBM_BACKEND_DIRS])
|
||||
GBM_PC_REQ_PRIV="libudev"
|
||||
GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
|
||||
GBM_PC_CFLAGS=
|
||||
AC_SUBST([GBM_PC_REQ_PRIV])
|
||||
AC_SUBST([GBM_PC_LIB_PRIV])
|
||||
AC_SUBST([GBM_PC_CFLAGS])
|
||||
|
||||
dnl
|
||||
dnl EGL configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([egl],
|
||||
[AS_HELP_STRING([--disable-egl],
|
||||
[disable EGL library @<:@default=enabled@:>@])],
|
||||
[enable_egl="$enableval"],
|
||||
[enable_egl=yes])
|
||||
EGL_CLIENT_APIS=""
|
||||
|
||||
if test "x$enable_egl" = xno; then
|
||||
if test "x$mesa_driver" = xno; then
|
||||
AC_MSG_ERROR([cannot disable EGL when there is no mesa driver])
|
||||
fi
|
||||
if test "x$enable_openvg" = xyes; then
|
||||
AC_MSG_ERROR([cannot enable OpenVG without EGL])
|
||||
fi
|
||||
fi
|
||||
if test "x$enable_egl" = xyes; then
|
||||
SRC_DIRS="$SRC_DIRS egl"
|
||||
EGL_LIB_DEPS="$DLOPEN_LIBS -lpthread"
|
||||
EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
|
||||
EGL_DRIVERS_DIRS=""
|
||||
|
||||
if test "$enable_static" != yes; then
|
||||
# build egl_glx when libGL is built
|
||||
if test "$mesa_driver" = xlib -o "$mesa_driver" = dri; then
|
||||
EGL_DRIVERS_DIRS="glx"
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
|
||||
[have_libudev=yes],[have_libudev=no])
|
||||
if test "$have_libudev" = yes; then
|
||||
DEFINES="$DEFINES -DHAVE_LIBUDEV"
|
||||
fi
|
||||
if test "$mesa_driver" = dri; then
|
||||
# build egl_dri2 when xcb-dri2 is available
|
||||
PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
|
||||
[have_xcb_dri2=yes],[have_xcb_dri2=no])
|
||||
PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
|
||||
[have_libudev=yes],[have_libudev=no])
|
||||
|
||||
if test "$have_xcb_dri2" = yes; then
|
||||
EGL_DRIVER_DRI2=dri2
|
||||
DEFINES="$DEFINES -DHAVE_XCB_DRI2"
|
||||
if test "$have_libudev" = yes; then
|
||||
DEFINES="$DEFINES -DHAVE_LIBUDEV"
|
||||
fi
|
||||
# workaround a bug in xcb-dri2 generated by xcb-proto 1.6
|
||||
AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
|
||||
[DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
|
||||
@@ -1204,6 +1306,96 @@ fi
|
||||
AC_SUBST([EGL_LIB_DEPS])
|
||||
AC_SUBST([EGL_DRIVERS_DIRS])
|
||||
|
||||
dnl
|
||||
dnl EGL Gallium configuration
|
||||
dnl
|
||||
if test "x$enable_gallium_egl" = xyes; then
|
||||
if test "x$with_gallium_drivers" = x; then
|
||||
AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
|
||||
fi
|
||||
if test "x$enable_egl" = xno; then
|
||||
AC_MSG_ERROR([cannot enable egl_gallium without EGL])
|
||||
fi
|
||||
|
||||
GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
|
||||
HAVE_ST_EGL="yes"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl gbm Gallium configuration
|
||||
dnl
|
||||
if test "x$enable_gallium_gbm" = xauto; then
|
||||
case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
|
||||
yesyes*drm*)
|
||||
enable_gallium_gbm=yes ;;
|
||||
*)
|
||||
enable_gallium_gbm=no ;;
|
||||
esac
|
||||
fi
|
||||
if test "x$enable_gallium_gbm" = xyes; then
|
||||
if test "x$with_gallium_drivers" = x; then
|
||||
AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
|
||||
fi
|
||||
if test "x$enable_gbm" = xno; then
|
||||
AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
|
||||
fi
|
||||
|
||||
GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
|
||||
HAVE_ST_GBM="yes"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl X.Org DDX configuration
|
||||
dnl
|
||||
if test "x$enable_xorg" = xyes; then
|
||||
PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
|
||||
PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
|
||||
PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
|
||||
PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
|
||||
HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
|
||||
HAVE_XEXTPROTO_71="no")
|
||||
GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
HAVE_ST_XORG=yes
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl OpenVG configuration
|
||||
dnl
|
||||
VG_LIB_DEPS=""
|
||||
|
||||
if test "x$enable_openvg" = xyes; then
|
||||
if test "x$enable_egl" = xno; then
|
||||
AC_MSG_ERROR([cannot enable OpenVG without EGL])
|
||||
fi
|
||||
if test "x$with_gallium_drivers" = x; then
|
||||
AC_MSG_ERROR([cannot enable OpenVG without Gallium])
|
||||
fi
|
||||
if test "x$enable_gallium_egl" = xno; then
|
||||
AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
|
||||
fi
|
||||
|
||||
EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
|
||||
VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
|
||||
CORE_DIRS="$CORE_DIRS mapi/vgapi"
|
||||
GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
HAVE_ST_VEGA=yes
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl D3D1X configuration
|
||||
dnl
|
||||
|
||||
if test "x$enable_d3d1x" = xyes; then
|
||||
if test "x$with_gallium_drivers" = x; then
|
||||
AC_MSG_ERROR([cannot enable D3D1X without Gallium])
|
||||
fi
|
||||
|
||||
GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
HAVE_ST_D3D1X=yes
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl GLU configuration
|
||||
dnl
|
||||
@@ -1420,17 +1612,8 @@ AC_SUBST([PROGRAM_DIRS])
|
||||
dnl
|
||||
dnl Gallium configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([gallium],
|
||||
[AS_HELP_STRING([--disable-gallium],
|
||||
[build gallium @<:@default=enabled@:>@])],
|
||||
[enable_gallium="$enableval"],
|
||||
[enable_gallium=yes])
|
||||
if test "x$enable_gallium" = xno -a "x$enable_openvg" = xyes; then
|
||||
AC_MSG_ERROR([cannot enable OpenVG without Gallium])
|
||||
fi
|
||||
if test "x$enable_gallium" = xyes; then
|
||||
if test "x$with_gallium_drivers" != x; then
|
||||
SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
|
||||
AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
|
||||
fi
|
||||
|
||||
AC_SUBST([LLVM_CFLAGS])
|
||||
@@ -1438,160 +1621,23 @@ AC_SUBST([LLVM_LIBS])
|
||||
AC_SUBST([LLVM_LDFLAGS])
|
||||
AC_SUBST([LLVM_VERSION])
|
||||
|
||||
dnl
|
||||
dnl Gallium state trackers configuration
|
||||
dnl
|
||||
|
||||
AC_ARG_ENABLE([gallium-egl],
|
||||
[AS_HELP_STRING([--enable-gallium-egl],
|
||||
[enable gallium EGL state tracker @<:@default=auto@:>@])],
|
||||
[enable_gallium_egl="$enableval"],
|
||||
[enable_gallium_egl=auto])
|
||||
if test "x$enable_gallium_egl" = xauto; then
|
||||
case "$mesa_driver" in
|
||||
dri|no)
|
||||
enable_gallium_egl=$enable_egl
|
||||
;;
|
||||
*)
|
||||
enable_gallium_egl=$enable_openvg
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
case "x$enable_egl$enable_gallium_egl" in
|
||||
xnoyes)
|
||||
AC_MSG_ERROR([cannot build Gallium EGL state tracker without EGL])
|
||||
esac
|
||||
|
||||
AC_ARG_WITH([state-trackers],
|
||||
[AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
|
||||
[comma delimited state_trackers list, e.g.
|
||||
"egl,glx" @<:@default=auto@:>@])],
|
||||
[with_state_trackers="$withval"],
|
||||
[with_state_trackers=yes])
|
||||
|
||||
case "$with_state_trackers" in
|
||||
no)
|
||||
GALLIUM_STATE_TRACKERS_DIRS=""
|
||||
;;
|
||||
yes)
|
||||
# look at what else is built
|
||||
case "$mesa_driver" in
|
||||
xlib)
|
||||
GALLIUM_STATE_TRACKERS_DIRS=glx
|
||||
;;
|
||||
dri)
|
||||
GALLIUM_STATE_TRACKERS_DIRS="dri"
|
||||
HAVE_ST_DRI="yes"
|
||||
# Have only tested st/xorg on 1.6.0 servers
|
||||
PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED],
|
||||
HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
|
||||
HAVE_ST_XORG="no")
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "x$enable_egl" = xyes; then
|
||||
if test "$enable_openvg" = yes; then
|
||||
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vega"
|
||||
st_egl="yes"
|
||||
fi
|
||||
|
||||
if test "$enable_gallium_egl" = yes; then
|
||||
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
|
||||
HAVE_ST_EGL="yes"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# verify the requested state tracker exist
|
||||
state_trackers=""
|
||||
_state_trackers=`IFS=', '; echo $with_state_trackers`
|
||||
for tracker in $_state_trackers; do
|
||||
case "$tracker" in
|
||||
dri)
|
||||
if test "x$mesa_driver" != xdri; then
|
||||
AC_MSG_ERROR([cannot build dri state tracker without mesa driver set to dri])
|
||||
fi
|
||||
HAVE_ST_DRI="yes"
|
||||
;;
|
||||
egl)
|
||||
if test "x$enable_egl" != xyes; then
|
||||
AC_MSG_ERROR([cannot build egl state tracker without EGL library])
|
||||
fi
|
||||
HAVE_ST_EGL="yes"
|
||||
;;
|
||||
xorg)
|
||||
PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
|
||||
PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
|
||||
PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
|
||||
HAVE_ST_XORG="yes"
|
||||
;;
|
||||
vega)
|
||||
if test "x$enable_openvg" != xyes; then
|
||||
AC_MSG_ERROR([cannot build vega state tracker without --enable-openvg])
|
||||
fi
|
||||
have_st_vega="yes"
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -n "$tracker"; then
|
||||
test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
|
||||
AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
|
||||
if test -n "$state_trackers"; then
|
||||
state_trackers="$state_trackers $tracker"
|
||||
else
|
||||
state_trackers="$tracker"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
|
||||
|
||||
# append --enable-openvg/--enable-gallium-egl to --with-state-trackers
|
||||
if test "x$have_st_vega" != xyes -a "x$enable_openvg" = xyes; then
|
||||
AC_MSG_ERROR([--with-state-trackers specified but vega is missing])
|
||||
fi
|
||||
if test "x$HAVE_ST_EGL" != xyes -a "x$enable_gallium_egl" = xyes; then
|
||||
AC_MSG_ERROR([--with-state-trackers specified but egl is missing])
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
EGL_CLIENT_APIS=""
|
||||
VG_LIB_DEPS=""
|
||||
|
||||
case "x$enable_opengl$enable_gles1$enable_gles2" in
|
||||
x*yes*)
|
||||
EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
|
||||
;;
|
||||
esac
|
||||
if test "x$enable_openvg" = xyes; then
|
||||
EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
|
||||
VG_LIB_DEPS="$VG_LIB_DEPS -lpthread"
|
||||
fi
|
||||
|
||||
AC_SUBST([VG_LIB_DEPS])
|
||||
AC_SUBST([EGL_CLIENT_APIS])
|
||||
|
||||
if test "x$HAVE_ST_EGL" = xyes; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
|
||||
fi
|
||||
|
||||
if test "x$HAVE_ST_XORG" = xyes; then
|
||||
PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
|
||||
HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
|
||||
HAVE_XEXTPROTO_71="no")
|
||||
fi
|
||||
|
||||
AC_ARG_WITH([egl-platforms],
|
||||
[AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
|
||||
[comma delimited native platforms libEGL supports, e.g.
|
||||
"x11,drm" @<:@default=auto@:>@])],
|
||||
[with_egl_platforms="$withval"],
|
||||
[with_egl_platforms=yes])
|
||||
AC_ARG_WITH([egl-displays],
|
||||
[AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
|
||||
[DEPRECATED. Use --with-egl-platforms instead])],
|
||||
[with_egl_platforms="$withval"])
|
||||
|
||||
EGL_PLATFORMS=""
|
||||
WAYLAND_EGL_LIB_DEPS=""
|
||||
@@ -1600,9 +1646,6 @@ case "$with_egl_platforms" in
|
||||
yes)
|
||||
if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
|
||||
EGL_PLATFORMS="x11"
|
||||
if test "$mesa_driver" = dri; then
|
||||
EGL_PLATFORMS="$EGL_PLATFORMS drm"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
@@ -1621,7 +1664,15 @@ yes)
|
||||
PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
|
||||
[AC_MSG_ERROR([cannot find libwayland-client])])
|
||||
WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
|
||||
fi
|
||||
if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
|
||||
AC_MSG_ERROR([EGL platform drm needs gbm])
|
||||
fi
|
||||
case "$plat$have_libudev" in
|
||||
waylandno|drmno)
|
||||
AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
|
||||
esac
|
||||
done
|
||||
EGL_PLATFORMS="$egl_platforms"
|
||||
;;
|
||||
@@ -1672,10 +1723,20 @@ dnl Gallium LLVM
|
||||
dnl
|
||||
AC_ARG_ENABLE([gallium-llvm],
|
||||
[AS_HELP_STRING([--enable-gallium-llvm],
|
||||
[build gallium LLVM support @<:@default=disabled@:>@])],
|
||||
[build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
|
||||
[enable_gallium_llvm="$enableval"],
|
||||
[enable_gallium_llvm=auto])
|
||||
if test "x$with_gallium_drivers" = x; then
|
||||
enable_gallium_llvm=no
|
||||
fi
|
||||
if test "x$enable_gallium_llvm" = xauto; then
|
||||
case "$host_cpu" in
|
||||
i*86|x86_64) enable_gallium_llvm=yes;;
|
||||
esac
|
||||
fi
|
||||
if test "x$enable_gallium_llvm" = xyes; then
|
||||
AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
|
||||
|
||||
if test "x$LLVM_CONFIG" != xno; then
|
||||
LLVM_VERSION=`$LLVM_CONFIG --version`
|
||||
LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
|
||||
@@ -1707,109 +1768,62 @@ gallium_check_st() {
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
dnl
|
||||
dnl Gallium SVGA configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([gallium-svga],
|
||||
[AS_HELP_STRING([--enable-gallium-svga],
|
||||
[build gallium SVGA @<:@default=disabled@:>@])],
|
||||
[enable_gallium_svga="$enableval"],
|
||||
[enable_gallium_svga=auto])
|
||||
if test "x$enable_gallium_svga" = xyes; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
|
||||
gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
|
||||
elif test "x$enable_gallium_svga" = xauto; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Gallium i915 configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([gallium-i915],
|
||||
[AS_HELP_STRING([--enable-gallium-i915],
|
||||
[build gallium i915 @<:@default=disabled@:>@])],
|
||||
[enable_gallium_i915="$enableval"],
|
||||
[enable_gallium_i915=auto])
|
||||
if test "x$enable_gallium_i915" = xyes; then
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
|
||||
gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
|
||||
elif test "x$enable_gallium_i915" = xauto; then
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Gallium i965 configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([gallium-i965],
|
||||
[AS_HELP_STRING([--enable-gallium-i965],
|
||||
[build gallium i965 @<:@default=disabled@:>@])],
|
||||
[enable_gallium_i965="$enableval"],
|
||||
[enable_gallium_i965=auto])
|
||||
if test "x$enable_gallium_i965" = xyes; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
|
||||
gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
|
||||
elif test "x$enable_gallium_i965" = xauto; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Gallium Radeon r300g configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([gallium-radeon],
|
||||
[AS_HELP_STRING([--enable-gallium-radeon],
|
||||
[build gallium radeon @<:@default=disabled@:>@])],
|
||||
[enable_gallium_radeon="$enableval"],
|
||||
[enable_gallium_radeon=auto])
|
||||
if test "x$enable_gallium_radeon" = xauto; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
|
||||
gallium_check_st "radeon/drm" "dri-r300"
|
||||
fi
|
||||
if test "x$enable_gallium_radeon" = xyes; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
|
||||
gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Gallium Radeon r600g configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([gallium-r600],
|
||||
[AS_HELP_STRING([--enable-gallium-r600],
|
||||
[build gallium radeon @<:@default=disabled@:>@])],
|
||||
[enable_gallium_r600="$enableval"],
|
||||
[enable_gallium_r600=auto])
|
||||
if test "x$enable_gallium_r600" = xyes; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
|
||||
gallium_check_st "r600/drm" "dri-r600"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Gallium Nouveau configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([gallium-nouveau],
|
||||
[AS_HELP_STRING([--enable-gallium-nouveau],
|
||||
[build gallium nouveau @<:@default=disabled@:>@])],
|
||||
[enable_gallium_nouveau="$enableval"],
|
||||
[enable_gallium_nouveau=no])
|
||||
if test "x$enable_gallium_nouveau" = xyes; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
|
||||
gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Gallium swrast configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([gallium-swrast],
|
||||
[AS_HELP_STRING([--enable-gallium-swrast],
|
||||
[build gallium swrast @<:@default=auto@:>@])],
|
||||
[enable_gallium_swrast="$enableval"],
|
||||
[enable_gallium_swrast=auto])
|
||||
if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xauto; then
|
||||
if test "x$HAVE_ST_DRI" = xyes; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
|
||||
gallium_require_llvm() {
|
||||
if test "x$MESA_LLVM" = x0; then
|
||||
case "$host_cpu" in
|
||||
i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
dnl Gallium drivers
|
||||
if test "x$with_gallium_drivers" != x; then
|
||||
# This is for compile-testing
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965 r300 svga"
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
|
||||
|
||||
gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
|
||||
for driver in $gallium_drivers; do
|
||||
case "x$driver" in
|
||||
xsvga)
|
||||
gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
|
||||
;;
|
||||
xi915)
|
||||
PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
|
||||
gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
|
||||
;;
|
||||
xi965)
|
||||
PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
|
||||
gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
|
||||
;;
|
||||
xr300)
|
||||
gallium_require_llvm "Gallium R300"
|
||||
gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
|
||||
;;
|
||||
xr600)
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
|
||||
gallium_check_st "r600/drm" "dri-r600"
|
||||
;;
|
||||
xnouveau)
|
||||
PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
|
||||
gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
|
||||
;;
|
||||
xswrast)
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
|
||||
if test "x$MESA_LLVM" = x1; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
|
||||
fi
|
||||
|
||||
if test "x$HAVE_ST_DRI" = xyes; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Unknown Gallium driver: $driver])
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
dnl prepend CORE_DIRS to SRC_DIRS
|
||||
@@ -1819,6 +1833,10 @@ dnl Restore LDFLAGS and CPPFLAGS
|
||||
LDFLAGS="$_SAVE_LDFLAGS"
|
||||
CPPFLAGS="$_SAVE_CPPFLAGS"
|
||||
|
||||
dnl Add user CFLAGS and CXXFLAGS
|
||||
CFLAGS="$CFLAGS $USER_CFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
|
||||
|
||||
dnl Substitute the config
|
||||
AC_CONFIG_FILES([configs/autoconf])
|
||||
|
||||
@@ -1884,7 +1902,7 @@ if test "$enable_egl" = yes; then
|
||||
egl_drivers="$egl_drivers builtin:egl_$d"
|
||||
done
|
||||
|
||||
if test "$enable_gallium" = yes -a "$HAVE_ST_EGL" = yes; then
|
||||
if test "x$HAVE_ST_EGL" = xyes; then
|
||||
echo " EGL drivers: ${egl_drivers} egl_gallium"
|
||||
echo " EGL Gallium STs:$EGL_CLIENT_APIS"
|
||||
else
|
||||
|
18
docs/GL3.txt
18
docs/GL3.txt
@@ -12,13 +12,13 @@ Feature Status
|
||||
|
||||
GL 3.0:
|
||||
|
||||
GLSL changes (GL_EXT_gpu_shader4, etc) not started
|
||||
Conditional rendering (GL_NV_conditional_render) DONE (swrast & softpipe)
|
||||
GLSL 1.30 (GL_EXT_gpu_shader4, etc.) started
|
||||
Conditional rendering (GL_NV_conditional_render) DONE (swrast, softpipe, i965)
|
||||
Map buffer subranges (GL_ARB_map_buffer_range) DONE
|
||||
Clamping controls (GL_ARB_color_buffer_float) DONE
|
||||
Float textures, renderbuffers (GL_ARB_texture_float) BRANCH ~mareko/mesa floating2
|
||||
GL_EXT_packed_float not started
|
||||
GL_EXT_texture_shared_exponent not started
|
||||
Float textures, renderbuffers (GL_ARB_texture_float) DONE (gallium r300)
|
||||
GL_EXT_packed_float DONE (gallium r600)
|
||||
GL_EXT_texture_shared_exponent DONE (gallium, swrast)
|
||||
Float depth buffers (GL_ARB_depth_buffer_float) not started
|
||||
Framebuffer objects (GL_EXT_framebuffer_object) DONE
|
||||
Half-float DONE
|
||||
@@ -45,7 +45,7 @@ Depth format cube textures 0% done
|
||||
|
||||
GL 3.1:
|
||||
|
||||
GLSL 1.30 and 1.40 not started
|
||||
GLSL 1.40 not started
|
||||
Instanced drawing (GL_ARB_draw_instanced) DONE (gallium, swrast)
|
||||
Buffer copying (GL_ARB_copy_buffer) DONE
|
||||
Primitive restart (GL_NV_primitive_restart) DONE (gallium)
|
||||
@@ -65,7 +65,7 @@ BGRA vertex order (GL_ARB_vertex_array_bgra) DONE
|
||||
Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE
|
||||
Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (swrast, gallium)
|
||||
Provoking vertex (GL_ARB_provoking_vertex) DONE
|
||||
Seamless cubemaps (GL_ARB_seamless_cube_map) DONE, mostly?
|
||||
Seamless cubemaps (GL_ARB_seamless_cube_map) DONE
|
||||
Multisample textures (GL_ARB_texture_multisample) not started
|
||||
Frag depth clamp (GL_ARB_depth_clamp) DONE
|
||||
Fence objects (GL_ARB_sync) DONE
|
||||
@@ -80,7 +80,7 @@ GL_ARB_occlusion_query2 DONE (swrast, gallium)
|
||||
GL_ARB_sampler_objects DONE (gallium)
|
||||
GL_ARB_texture_rgb10_a2ui not started
|
||||
GL_ARB_texture_swizzle DONE (same as EXT version)
|
||||
GL_ARB_timer_query DONE (only Xlib sw driver)
|
||||
GL_ARB_timer_query ~60% done (the EXT variant)
|
||||
GL_ARB_instanced_arrays DONE (gallium)
|
||||
GL_ARB_vertex_type_2_10_10_10_rev not started
|
||||
|
||||
@@ -105,7 +105,7 @@ GL_ARB_transform_feedback3 not started
|
||||
GL 4.1:
|
||||
|
||||
GLSL 4.1 not started
|
||||
GL_ARB_ES2_compatibility not started
|
||||
GL_ARB_ES2_compatibility DONE (i965)
|
||||
GL_ARB_get_program_binary not started
|
||||
GL_ARB_separate_shader_objects some infrastructure done
|
||||
GL_ARB_shader_precision not started
|
||||
|
@@ -66,6 +66,7 @@ New Tokens
|
||||
|
||||
EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x0001
|
||||
EGL_DRM_BUFFER_USE_SHARE_MESA 0x0002
|
||||
EGL_DRM_BUFFER_USE_CURSOR_MESA 0x0004
|
||||
|
||||
Accepted in the <target> parameter of eglCreateImageKHR:
|
||||
|
||||
@@ -89,13 +90,16 @@ Additions to the EGL 1.4 Specification:
|
||||
extension is EGL_DRM_BUFFER_FORMAT_ARGB32_MESA, where each pixel
|
||||
is a CPU-endian, 32-bit quantity, with alpha in the upper 8 bits,
|
||||
then red, then green, then blue. The bit values accepted by
|
||||
EGL_DRM_BUFFER_USE_MESA are EGL_DRM_BUFFER_USE_SCANOUT_MESA and
|
||||
EGL_DRM_BUFFER_USE_SHARE_MESA. EGL_DRM_BUFFER_USE_SCANOUT_MESA
|
||||
requests that the created EGLImage should be usable as a scanout
|
||||
buffer with the DRM kernel modesetting API. The
|
||||
EGL_DRM_BUFFER_USE_SHARE_MESA bit requests that the EGLImage can
|
||||
be shared with other processes by passing the underlying DRM
|
||||
buffer name.
|
||||
EGL_DRM_BUFFER_USE_MESA are EGL_DRM_BUFFER_USE_SCANOUT_MESA,
|
||||
EGL_DRM_BUFFER_USE_SHARE_MESA and EGL_DRM_BUFFER_USE_CURSOR_MESA.
|
||||
EGL_DRM_BUFFER_USE_SCANOUT_MESA requests that the created EGLImage
|
||||
should be usable as a scanout buffer with the DRM kernel
|
||||
modesetting API. EGL_DRM_BUFFER_USE_SHARE_MESA requests that the
|
||||
EGLImage can be shared with other processes by passing the
|
||||
underlying DRM buffer name. EGL_DRM_BUFFER_USE_CURSOR_MESA
|
||||
requests that the image must be usable as a cursor with KMS. When
|
||||
EGL_DRM_BUFFER_USE_CURSOR_MESA is set, width and height must both
|
||||
be 64.
|
||||
|
||||
To create a process local handle or a global DRM name for a
|
||||
buffer, call
|
||||
|
@@ -1,114 +1,33 @@
|
||||
File: docs/README.WIN32
|
||||
|
||||
Last updated: Apr 25, 2007
|
||||
|
||||
NOTE: This information only applies to Mesa 7.8 and older. Nowadays
|
||||
it's probably better to use Scons to build for Windows.
|
||||
Last updated: 23 April 2011
|
||||
|
||||
|
||||
Quick Start
|
||||
----- -----
|
||||
|
||||
Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same
|
||||
directory. The libs and demos build separately, so if you do not care
|
||||
about the demos or GLUT, you only need to unzip MesaLib. If you unzip
|
||||
more than one ZIP file, they all need to be unzipped into the same
|
||||
directory. Don't worry, you will not overwrite anything.
|
||||
Windows drivers are build with SCons. Makefiles or Visual Studio projects are
|
||||
no longer shipped or supported.
|
||||
|
||||
The Windows build system uses Microsoft Visual Studio. Project files
|
||||
for a specific version of Visual Studio are in their own directory in
|
||||
the top-level "windows" directory. For example, Visual Studio 8 files
|
||||
are in windows/VC8.
|
||||
Run
|
||||
|
||||
Support has been dropped for versions of Visual Studio prior to 8. The
|
||||
main reason is because Microsoft now provides a free compiler and
|
||||
developer environment. Visual Studio Express can be found at
|
||||
scons osmesa mesagdi
|
||||
|
||||
http://msdn.microsoft.com/vstudio/express/visualc/default.aspx
|
||||
to build classic mesa Windows GDI drivers; or
|
||||
|
||||
You'll also need the Platform SDK. Instructions for obtaining and
|
||||
using the SDK with Visual Studio Express can be found at
|
||||
scons libgl-gdi
|
||||
|
||||
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
|
||||
|
||||
The project files to build the core Mesa library, Windows Mesa
|
||||
drivers, OSMesa, and GLU are in the mesa directory. The project files
|
||||
to build GLUT and some demo programs are in the progs directory.
|
||||
|
||||
Makefiles are no longer shipped or supported, but can be generated
|
||||
from the projects using Visual Studio.
|
||||
to build gallium based GDI driver.
|
||||
|
||||
|
||||
Windows Drivers
|
||||
------- -------
|
||||
|
||||
At this time, only the GDI driver is known to work. Most of the demos
|
||||
in progs/demos should work with this driver.
|
||||
At this time, only the gallium GDI driver is known to work.
|
||||
|
||||
Source code also exists in the tree for other drivers in
|
||||
src/mesa/drivers/windows, but the status of this code is unknown.
|
||||
|
||||
The GDI driver operates basically by writing pixel spans into a DIB
|
||||
section and then blitting the DIB to the window. The driver was
|
||||
recently cleaned up and rewitten and so may have bugs or may be
|
||||
missing some functionality. The older versions of the CVS source may
|
||||
be useful in figuring out any problems, or report them to me.
|
||||
|
||||
To build Mesa with the GDI driver, build the mesa, gdi, and glu
|
||||
projects in the Visual Studio workspace found at
|
||||
|
||||
windows/VC8/mesa/mesa.sln
|
||||
|
||||
The osmesa DLL can also be built with the osmesa project.
|
||||
|
||||
The build system creates a lib top-level directory and copies
|
||||
resulting LIB and DLL files to this lib directory. The files are:
|
||||
|
||||
OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
|
||||
OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
|
||||
|
||||
If the MesaDemos ZIP file was extracted, the DLL files are also copied
|
||||
to the demos directory. This facilitates running the demos as described
|
||||
below.
|
||||
|
||||
|
||||
GLUT and Demos
|
||||
---- --- -----
|
||||
|
||||
A Visual Studio workspace can be found at
|
||||
|
||||
windows/VC8/progs/progs.sln
|
||||
|
||||
It can be used to build GLUT and a few demos. The GLUT lib and DLL
|
||||
are copied to the top-level lib directory, along with the Mesa libs.
|
||||
|
||||
The demo build system expects to find the LIB files in the top level
|
||||
lib directory, so you must build the Mesa libs first. The demo
|
||||
executables are placed in the demos directory, because some of them
|
||||
rely on data files found there. Also, the Mesa lib DLL's were copied
|
||||
there by the Mesa lib build process. Therefore, you should be able to
|
||||
simply run the demo executables from the demo directory.
|
||||
|
||||
If you want to run the demos from the Visual Studio, you may have to
|
||||
change the startup directory and explicitly state where the executables are.
|
||||
|
||||
You may also build all the demo programs by using a makefile. Go to
|
||||
the progs/demos directory and make sure you have executed VCVARS32.BAT
|
||||
or whatever setup script is appropriate for your compiler. Then,
|
||||
|
||||
nmake -f Makefile.win
|
||||
|
||||
should build all the demos.
|
||||
|
||||
|
||||
Build System Notes
|
||||
----- ------ -----
|
||||
|
||||
VC8
|
||||
---
|
||||
|
||||
No notes.
|
||||
|
||||
|
||||
General
|
||||
-------
|
||||
@@ -128,11 +47,5 @@ the linker import files associated with the DLL files.
|
||||
The si-glu sources are used to build the GLU libs. This was done
|
||||
mainly to get the better tessellator code.
|
||||
|
||||
To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
|
||||
to the project settings. You will also need to edit src/mesa.def to
|
||||
change all the gl* symbols to mgl*. Because this is easy to do with a
|
||||
global replace operation in a text editor, no additional mangled
|
||||
version of mesa.def is maintained or shipped.
|
||||
|
||||
If you have a Windows-related build problem or question, please post
|
||||
to the mesa-dev or mesa-users list.
|
||||
|
@@ -82,7 +82,7 @@ Additions to the EGL 1.4 Specification:
|
||||
|
||||
Import a wl_buffer by calling eglCreateImageKHR with
|
||||
wl_buffer as EGLClientBuffer, EGL_WAYLAND_BUFFER_WL as the target,
|
||||
and an empty attribute_list.
|
||||
NULL context and an empty attribute_list.
|
||||
|
||||
Issues
|
||||
|
||||
|
@@ -29,12 +29,14 @@ directly dispatched to the drivers.</p>
|
||||
the driver for your hardware. For example</p>
|
||||
|
||||
<pre>
|
||||
$ ./configure --enable-gles2 --enable-openvg --enable-gallium-nouveau
|
||||
$ ./configure --enable-gles1 --enable-gles2 \
|
||||
--with-dri-drivers=... \
|
||||
--with-gallium-drivers=...
|
||||
</pre>
|
||||
|
||||
<p>The main library and OpenGL is enabled by default. The first option above
|
||||
enables <a href="opengles.html">OpenGL ES 2.x</a>. The second option enables
|
||||
<a href="openvg.html">OpenVG</a>.</p>
|
||||
<p>The main library and OpenGL is enabled by default. The first two options
|
||||
above enables <a href="opengles.html">OpenGL ES 1.x and 2.x</a>. The last two
|
||||
options enables the listed classic and and Gallium drivers respectively.</p>
|
||||
|
||||
</li>
|
||||
|
||||
@@ -42,8 +44,8 @@ enables <a href="opengles.html">OpenGL ES 2.x</a>. The second option enables
|
||||
</ol>
|
||||
|
||||
<p>In the given example, it will build and install <code>libEGL</code>,
|
||||
<code>libGL</code>, <code>libGLESv1_CM</code>, <code>libGLESv2</code>,
|
||||
<code>libOpenVG</code>, and one or more EGL drivers.</p>
|
||||
<code>libGL</code>, <code>libGLESv1_CM</code>, <code>libGLESv2</code>, and one
|
||||
or more EGL drivers.</p>
|
||||
|
||||
<h3>Configure Options</h3>
|
||||
|
||||
@@ -65,6 +67,12 @@ drivers will be installed to <code>${libdir}/egl</code>.</p>
|
||||
|
||||
</li>
|
||||
|
||||
<li><code>--enable-gallium-egl</code>
|
||||
|
||||
<p>Enable the optional <code>egl_gallium</code> driver.</p>
|
||||
|
||||
</li>
|
||||
|
||||
<li><code>--with-egl-platforms</code>
|
||||
|
||||
<p>List the platforms (window systems) to support. Its argument is a comma
|
||||
@@ -88,15 +96,17 @@ internal library that supports multiple APIs.</p>
|
||||
|
||||
</li>
|
||||
|
||||
<li><code>--enable-openvg</code>
|
||||
<li><code>--enable-shared-glapi</code>
|
||||
|
||||
<p>OpenVG must be explicitly enabled by this option.</p>
|
||||
<p>By default, <code>libGL</code> has its own copy of <code>libglapi</code>.
|
||||
This options makes <code>libGL</code> use the shared <code>libglapi</code>. This
|
||||
is required if applications mix OpenGL and OpenGL ES.</p>
|
||||
|
||||
</li>
|
||||
|
||||
<li><code>--enable-gallium-egl</code>
|
||||
<li><code>--enable-openvg</code>
|
||||
|
||||
<p>Explicitly enable or disable <code>egl_gallium</code>.</p>
|
||||
<p>OpenVG must be explicitly enabled by this option.</p>
|
||||
|
||||
</li>
|
||||
|
||||
@@ -220,8 +230,7 @@ distribution.</p>
|
||||
<p>Generally, <code>egl_dri2</code> is preferred over <code>egl_gallium</code>
|
||||
when the system already has DRI drivers. As <code>egl_gallium</code> is loaded
|
||||
before <code>egl_dri2</code> when both are available, <code>egl_gallium</code>
|
||||
may either be disabled with <code>--disable-gallium-egl</code> or packaged
|
||||
separately.</p>
|
||||
is disabled by default.</p>
|
||||
|
||||
<h2>Developers</h2>
|
||||
|
||||
@@ -307,17 +316,5 @@ not be called with the sample display at the same time. If a driver has access
|
||||
to an <code>EGLDisplay</code> without going through the EGL APIs, the driver
|
||||
should as well lock the display before using it.
|
||||
|
||||
<h3>TODOs</h3>
|
||||
|
||||
<ul>
|
||||
<li>Pass the conformance tests</li>
|
||||
<li>Mixed use of OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is supported. But
|
||||
which one of <code>libGL.so</code>, <code>libGLESv1_CM.so</code>, and
|
||||
<code>libGLESv2.so</code> should an application link to? Bad things may happen
|
||||
when, say, an application is linked to <code>libGLESv2.so</code> and
|
||||
<code>libcairo</code>, which is linked to <code>libGL.so</code> instead.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -274,7 +274,6 @@ For example, compiling and linking a GLUT application can be done with:
|
||||
|
||||
<p>
|
||||
Please see the <a href="#scons">instructions on building with SCons</a>.
|
||||
Alternatively see <a href="README.WIN32">README.WIN32</a> file.
|
||||
</p>
|
||||
|
||||
|
||||
|
@@ -22,21 +22,20 @@ It's the fastest software rasterizer for Mesa.
|
||||
|
||||
<h1>Requirements</h1>
|
||||
|
||||
<dl>
|
||||
<dt>An x86 or amd64 processor. 64-bit mode is preferred.</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>
|
||||
<p>An x86 or amd64 processor; 64-bit mode recommended.</p
|
||||
<p>
|
||||
Support for sse2 is strongly encouraged. Support for ssse3, and sse4.1 will
|
||||
Support for SSE2 is strongly encouraged. Support for SSSE3, and SSE4.1 will
|
||||
yield the most efficient code. The less features the CPU has the more
|
||||
likely is that you ran into underperforming, buggy, or incomplete code.
|
||||
</p>
|
||||
<p>
|
||||
See /proc/cpuinfo to know what your CPU supports.
|
||||
</p>
|
||||
</dd>
|
||||
<dt>LLVM. Version 2.8 recommended. 2.6 or later required.</dt>
|
||||
<dd>
|
||||
<p>
|
||||
</li>
|
||||
<li>
|
||||
<p>LLVM: version 2.9 recommended; 2.6 or later required.</p>
|
||||
<b>NOTE</b>: LLVM 2.8 and earlier will not work on systems that support the
|
||||
Intel AVX extensions (e.g. Sandybridge). LLVM's code generator will
|
||||
fail when trying to emit AVX instructions. This was fixed in LLVM 2.9.
|
||||
@@ -54,26 +53,25 @@ It's the fastest software rasterizer for Mesa.
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
For Windows download pre-built MSVC 9.0 or MinGW binaries from
|
||||
http://people.freedesktop.org/~jrfonseca/llvm/ and set the LLVM environment
|
||||
variable to the extracted path.
|
||||
</p>
|
||||
For Windows you will need to build LLVM from source with MSVC or MINGW
|
||||
(either natively or through cross compilers) and CMake, and set the LLVM
|
||||
environment variable to the directory you installed it to.
|
||||
|
||||
<p>
|
||||
For MSVC there are two set of binaries: llvm-x.x-msvc32mt.7z and
|
||||
llvm-x.x-msvc32mtd.7z .
|
||||
</p>
|
||||
LLVM will be statically linked, so when building on MSVC it needs to be
|
||||
built with a matching CRT as Mesa, and you'll need to pass
|
||||
-DLLVM_USE_CRT_RELEASE=MTd for debug and checked builds,
|
||||
-DLLVM_USE_CRT_RELEASE=MTd for profile and release builds.
|
||||
|
||||
<p>
|
||||
You have to set the LLVM=/path/to/llvm-x.x-msvc32mtd env var when passing
|
||||
debug=yes to scons, and LLVM=/path/to/llvm-x.x-msvc32mt when building with
|
||||
debug=no. This is necessary as LLVM builds as static library so the chosen
|
||||
MS CRT must match.
|
||||
You can build only the x86 target by passing -DLLVM_TARGETS_TO_BUILD=X86
|
||||
to cmake.
|
||||
</p>
|
||||
</dd>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>scons (optional)</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<dt>scons (optional)</dt>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
@@ -93,7 +91,7 @@ Alternatively, you can build it with GNU make, if you prefer, by invoking it as
|
||||
|
||||
but the rest of these instructions assume that scons is used.
|
||||
|
||||
For windows is everything the except except the winsys:
|
||||
For Windows the procedure is similar except the target:
|
||||
|
||||
<pre>
|
||||
scons build=debug libgl-gdi
|
||||
|
@@ -11,11 +11,42 @@
|
||||
<H1>News</H1>
|
||||
|
||||
|
||||
<h2>November 27, 2011</h2>
|
||||
|
||||
<p>
|
||||
<a href="relnotes-7.11.2.html">Mesa 7.11.2</a> is released.
|
||||
This release was made primarily to fix build problems with 7.11.1 on
|
||||
Mandriva and to fix problems related to glCopyTexImage to
|
||||
luminance-alpha textures. That later was believed to have been fixed
|
||||
in 7.11.1 but was not.
|
||||
</p>
|
||||
|
||||
<h2>November 17, 2011</h2>
|
||||
|
||||
<p>
|
||||
<a href="relnotes-7.11.1.html">Mesa 7.11.1</a> is released. This is a bug fix
|
||||
release.
|
||||
</p>
|
||||
|
||||
<h2>July 31, 2011</h2>
|
||||
|
||||
<p>
|
||||
<a href="relnotes-7.11.html">Mesa 7.11</a> is released. This is a new
|
||||
release with many new features.
|
||||
</p>
|
||||
|
||||
<h2>June 13, 2011</h2>
|
||||
|
||||
<p>
|
||||
<a href="relnotes-7.10.3.html">Mesa 7.10.3</a> is released. This is a bug
|
||||
fix release.
|
||||
</p>
|
||||
|
||||
<h2>April 6, 2011</h2>
|
||||
|
||||
<p>
|
||||
<a href="relnotes-7.10.2.html">Mesa 7.10.2</a> is released. This is a bug
|
||||
fix release release.
|
||||
fix release.
|
||||
</p>
|
||||
|
||||
<h2>March 2, 2011</h2>
|
||||
|
@@ -34,27 +34,10 @@ EGL drivers for your hardware.</p>
|
||||
|
||||
<h2>Run the Demos</h2>
|
||||
|
||||
<p>There are some demos in <code>progs/egl/</code>. You can use them to test
|
||||
your build. For example,</p>
|
||||
|
||||
<pre>
|
||||
$ cd progs/egl/eglut
|
||||
$ make
|
||||
$ cd ../opengles1
|
||||
$ make
|
||||
$ ./torus_x11
|
||||
</pre>
|
||||
<p>There are some demos in <code>mesa/demos</code> repository.</p>
|
||||
|
||||
<h2>Developers</h2>
|
||||
|
||||
<h3>Internal Libraries</h3>
|
||||
|
||||
<table border="1" style="text-align: center;">
|
||||
<tr><td>Library Name</td><td>Used By</td><td>Enabled</td><td>OpenGL</td><td>OpenGL ES 1.x</td><td>OpenGL ES 2.x</td></tr>
|
||||
<tr><td><code>libmesa.a</td><td>Classic DRI drivers</td><td>y</td><td>y</td><td>--enable-gles1</td><td>--enable-gles2</td></tr>
|
||||
<tr><td><code>libmesagallium.a</td><td>Gallium EGL and DRI drivers</td><td>y</td><td>y</td><td>--enable-gles1</td><td>--enable-gles2</td></tr>
|
||||
</table>
|
||||
|
||||
<h3>Dispatch Table</h3>
|
||||
|
||||
<p>OpenGL ES has an additional indirection when dispatching fucntions</p>
|
||||
|
@@ -11,7 +11,7 @@
|
||||
<H1>OpenVG State Tracker</H1>
|
||||
|
||||
<p>
|
||||
The current version of the OpenVG state tracker implements OpenVG 1.0.
|
||||
The current version of the OpenVG state tracker implements OpenVG 1.1.
|
||||
</p>
|
||||
<p>
|
||||
More informations about OpenVG can be found at
|
||||
@@ -26,9 +26,9 @@ Please refer to <a href="egl.html">Mesa EGL</a> for more information about EGL.
|
||||
|
||||
<h2>Building the library</h2>
|
||||
<ol>
|
||||
<li>Run <code>configure</code> with <code>--enable-openvg</code>. If you do
|
||||
not need OpenGL, you can add <code>--disable-opengl</code> to save the
|
||||
compilation time.</li>
|
||||
<li>Run <code>configure</code> with <code>--enable-openvg</code> and
|
||||
<code>--enable-gallium-egl</code>. If you do not need OpenGL, you can add
|
||||
<code>--disable-opengl</code> to save the compilation time.</li>
|
||||
|
||||
<li>Build and install Mesa as usual.</li>
|
||||
</ol>
|
||||
@@ -36,7 +36,7 @@ compilation time.</li>
|
||||
<h3>Sample build</h3>
|
||||
A sample build looks as follows:
|
||||
<pre>
|
||||
$ ./configure --disable-opengl --enable-openvg
|
||||
$ ./configure --disable-opengl --enable-openvg --enable-gallium-egl
|
||||
$ make
|
||||
$ make install
|
||||
</pre>
|
||||
|
31
docs/patents.txt
Normal file
31
docs/patents.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
ARB_texture_float:
|
||||
|
||||
Silicon Graphics, Inc. owns US Patent #6,650,327, issued November 18,
|
||||
2003 [1].
|
||||
|
||||
SGI believes this patent contains necessary IP for graphics systems
|
||||
implementing floating point rasterization and floating point
|
||||
framebuffer capabilities described in ARB_texture_float extension, and
|
||||
will discuss licensing on RAND terms, on an individual basis with
|
||||
companies wishing to use this IP in the context of conformant OpenGL
|
||||
implementations [2].
|
||||
|
||||
The source code to implement ARB_texture_float extension is included
|
||||
and can be toggled on at compile time, for those who purchased a
|
||||
license from SGI, or are in a country where the patent does not apply,
|
||||
etc.
|
||||
|
||||
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.
|
||||
|
||||
You should contact a lawyer or SGI's legal department if you want to
|
||||
enable this extension.
|
||||
|
||||
|
||||
[1] http://www.google.com/patents/about?id=mIIOAAAAEBAJ&dq=6650327
|
||||
[2] http://www.opengl.org/registry/specs/ARB/texture_float.txt
|
303
docs/relnotes-7.10.3.html
Normal file
303
docs/relnotes-7.10.3.html
Normal file
@@ -0,0 +1,303 @@
|
||||
<HTML>
|
||||
|
||||
<head>
|
||||
<TITLE>Mesa Release Notes</TITLE>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
</head>
|
||||
|
||||
<BODY>
|
||||
|
||||
<body bgcolor="#eeeeee">
|
||||
|
||||
<H1>Mesa 7.10.3 Release Notes / June 13, 2011</H1>
|
||||
|
||||
<p>
|
||||
Mesa 7.10.3 is a bug fix release which fixes bugs found since the 7.10.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 7.10.3 implements the OpenGL 2.1 API, but the version reported by
|
||||
glGetString(GL_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 2.1.
|
||||
</p>
|
||||
<p>
|
||||
See the <a href="install.html">Compiling/Installing page</a> for prerequisites
|
||||
for DRI hardware acceleration.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
d77b02034c11d6c2a55c07f82367d780 MesaLib-7.10.3.tar.gz
|
||||
8c38fe8266be8e1ed1d84076ba5a703b MesaLib-7.10.3.tar.bz2
|
||||
614d063ecd170940d9ae7b355d365d59 MesaLib-7.10.3.zip
|
||||
8768fd562ede7ed763d92b2d22232d7a MesaGLUT-7.10.3.tar.gz
|
||||
1496415b89da9549f0f3b34d9622e2e2 MesaGLUT-7.10.3.tar.bz2
|
||||
1f29d0e7398fd3bf9f36f5db02941198 MesaGLUT-7.10.3.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None.</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<p>This list is likely incomplete.</p>
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=29162">Bug 29162</a> - mesa/darwin is severly broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31590">Bug 31590</a> - Black space between colors on mole hill example</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32395">Bug 32395</a> - [glsl] Incorrect code generation for shadow2DProj() with bias</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32564">Bug 32564</a> - [llvmpipe] prog: Unknown command line argument '-disable-mmx'. Try: 'prog -help' with llvm-2.9svn</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32835">Bug 32835</a> - [glsl] recursive #define results in infinite stack recursion</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33303">Bug 33303</a> - [glsl] ir_constant_expression.cpp:72: virtual ir_constant* ir_expression::constant_expression_value(): Assertion `op[0]->type->base_type == op[1]->type->base_type' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33314">Bug 33314</a> - [glsl] ir_constant_expression.cpp:122: virtual ir_constant* ir_expression::constant_expression_value(): Assertion `op[0]->type->base_type == GLSL_TYPE_BOOL' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33512">Bug 33512</a> - [SNB] case ogles2conform/GL/gl_FragCoord/gl_FragCoord_xy_frag.test and gl_FragCoord_w_frag.test fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34280">Bug 34280</a> - r200 mesa-7.10 font distortion</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34321">Bug 34321</a> - The ARB_fragment_program subset of ARB_draw_buffers not implemented</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35603">Bug 35603</a> - GLSL compiler freezes compiling shaders</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36173">Bug 36173</a> - struct renderbuffer's 'format' field never set when using FBO</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36238">Bug 36238</a> - Mesa release files don't contain scons control files</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36410">Bug 36410</a> - [SNB] Rendering errors in 3DMMES subtest taiji</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36527">Bug 36527</a> - [wine] Wolfenstein: Failed to translate rgb instruction.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36651">Bug 36651</a> - mesa requires bison and flex to build but configure does not check for them</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36738">Bug 36738</a> - Openarena crash with r300g, swrastg + llvm > 2.8</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37648">Bug 37648</a> - Logic error in mesa/main/teximage.c:texsubimage</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37739">Bug 37739</a> - Color clear of FBO without color buffer crashes</li>
|
||||
|
||||
<!-- <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=">Bug </a> - </li> -->
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>The full set of changes can be viewed by using the following GIT command:</p>
|
||||
|
||||
<pre>
|
||||
git log mesa-7.10.2..mesa-7.10.3
|
||||
</pre>
|
||||
|
||||
<p>Alan Hourihane (1):
|
||||
<ul>
|
||||
<li>Check for out of memory when creating fence</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Alex Buell (1):
|
||||
<ul>
|
||||
<li>configure: bump LIBDRM_REQUIRED to 2.4.24</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Alex Deucher (2):
|
||||
<ul>
|
||||
<li>r600c: add new pci ids</li>
|
||||
<li>r600g: add new pci ids</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Brian Paul (19):
|
||||
<ul>
|
||||
<li>docs: add link to 7.10.2 release notes</li>
|
||||
<li>scons: remove dangling reference to state_trackers/python/SConscript</li>
|
||||
<li>Makefile: add missing Scons files</li>
|
||||
<li>llvmpipe: document issue with LLVM 2.8 and earlier with AVX</li>
|
||||
<li>docs: replace llvmpipe/README with docs/llvmpipe.html</li>
|
||||
<li>glsl: add static qualifier to silence warning</li>
|
||||
<li>glsl: add cast to silence signed/unsigned comparison warning</li>
|
||||
<li>mesa: s/height/depth/ in texsubimage()</li>
|
||||
<li>mesa: fix void pointer arithmetic warnings</li>
|
||||
<li>mesa: add some missing GLAPIENTRY keywords</li>
|
||||
<li>mesa: check that flex/bison are installed</li>
|
||||
<li>st/mesa: fix incorrect texture level/face/slice accesses</li>
|
||||
<li>draw: fix edge flag handling in clipper (for unfilled tris/quads/polygons)</li>
|
||||
<li>vbo: check array indexes to prevent negative indexing</li>
|
||||
<li>vbo: remove node->count > 0 test in vbo_save_playback_vertex_list()</li>
|
||||
<li>st/mesa: fix software accum buffer format bug</li>
|
||||
<li>mesa: add include/c99/inttypes.h include/c99/stdbool.h include/c99/stdint.h files to tarballs</li>
|
||||
<li>docs: 7.10.3 release notes skeleton file, links</li>
|
||||
<li>mesa: bump version to 7.10.3</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Carl Worth (2):
|
||||
<ul>
|
||||
<li>glcpp: Simplify calling convention of parser's active_list functions</li>
|
||||
<li>glcpp: Fix attempts to expand recursive macros infinitely (bug #32835).</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Dave Airlie (1):
|
||||
<ul>
|
||||
<li>st/mesa: fix compressed mipmap generation.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Eric Anholt (19):
|
||||
<ul>
|
||||
<li>i965: Fix the VS thread limits for GT1, and clarify the WM limits on both.</li>
|
||||
<li>glsl: Avoid cascading errors when looking for a scalar boolean and failing.</li>
|
||||
<li>glsl: Semantically check the RHS of `&&' even when short-circuiting.</li>
|
||||
<li>glsl: Semantically check the RHS of `||' even when short-circuiting.</li>
|
||||
<li>glsl: When we've emitted a semantic error for ==, return a bool constant.</li>
|
||||
<li>glsl: Perform type checking on "^^" operands.</li>
|
||||
<li>intel: Use _mesa_base_tex_format for FBO texture attachments.</li>
|
||||
<li>swrast: Don't assert against glReadPixels of GL_RED and GL_RG.</li>
|
||||
<li>mesa: Add a gl_renderbuffer.RowStride field like textures have.</li>
|
||||
<li>mesa: Add a function to set up the default renderbuffer accessors.</li>
|
||||
<li>intel: Use Mesa core's renderbuffer accessors for depth.</li>
|
||||
<li>mesa: Use _mesa_get_format_bytes to refactor out the RB get_pointer_*</li>
|
||||
<li>mesa: Use _mesa_get_format_bytes to refactor out the RB get_row_*</li>
|
||||
<li>mesa: Add renderbuffer accessors for R8/RG88/R16/RG1616.</li>
|
||||
<li>swrast: Don't try to adjust_colors for <8bpc when handling R16, RG1616.</li>
|
||||
<li>intel: Use mesa core's R8, RG88, R16, RG1616 RB accessors.</li>
|
||||
<li>Revert "intel: Add spans code for the ARB_texture_rg support."</li>
|
||||
<li>mesa: Add support for the ARB_fragment_program part of ARB_draw_buffers.</li>
|
||||
<li>mesa: Add support for OPTION ATI_draw_buffers to ARB_fp.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Hans de Goede (1):
|
||||
<ul>
|
||||
<li>texstore: fix regression stricter check for memcpy path for unorm88 and unorm1616</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Henri Verbeet (3):
|
||||
<ul>
|
||||
<li>mesa: Also update the color draw buffer if it's explicitly set to GL_NONE.</li>
|
||||
<li>glx: Destroy dri2Hash on DRI2 display destruction.</li>
|
||||
<li>glx: Only remove the glx_display from the list after it's destroyed.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Ian Romanick (9):
|
||||
<ul>
|
||||
<li>docs: Add 7.10.2 md5sums</li>
|
||||
<li>glsl: Fix off-by-one error setting max_array_access for non-constant indexing</li>
|
||||
<li>ir_to_mesa: Handle shadow compare w/projection and LOD bias correctly</li>
|
||||
<li>intel: Fix ROUND_DOWN_TO macro</li>
|
||||
<li>glsl: Regenerate compiler and glcpp files from cherry picks</li>
|
||||
<li>i965: Remove hint_gs_always and resulting dead code</li>
|
||||
<li>mesa: Don't try to clear a NULL renderbuffer</li>
|
||||
<li>mesa: Ignore blits to/from missing buffers</li>
|
||||
<li>docs: Add list of bugs fixed in 7.10.3 release</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Jeremy Huddleston (18):
|
||||
<ul>
|
||||
<li>apple: Update GL specs</li>
|
||||
<li>apple: Rename glcontextmodes.[ch] to glxconfig.[ch]</li>
|
||||
<li>apple: Rename __GLcontextModes to struct glx_config</li>
|
||||
<li>apple: Rename GLXcontext</li>
|
||||
<li>apple: Re-add driContext and do_destroy</li>
|
||||
<li>apple: Rename _gl_context_modes_find_visual to glx_config_find_visual</li>
|
||||
<li>apple: Rename GLXcontext</li>
|
||||
<li>apple: Change from XExtDisplayInfo to struct glx_display</li>
|
||||
<li>apple: ifdef out come glapi-foo on darwin</li>
|
||||
<li>glx: Dead code removal</li>
|
||||
<li>apple: Build darwin using applegl rather than indirect</li>
|
||||
<li>apple: Fix build failures in applegl_glx.c</li>
|
||||
<li>darwin: Define GALLIUM_DRIVERS_DIRS in darwin config</li>
|
||||
<li>apple: Package applegl source into MesaLib tarball</li>
|
||||
<li>darwin: Set VG_LIB_{NAME,GLOB} to fix make install</li>
|
||||
<li>darwin: Don't link against libGL when building libOSMesa</li>
|
||||
<li>darwin: Fix VG_LIB_GLOB to also match the unversioned symlink</li>
|
||||
<li>osmesa: Fix missing symbols when GLX_INDIRECT_RENDERING is defined.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>José Fonseca (13):
|
||||
<ul>
|
||||
<li>llvmpipe: Update readme.</li>
|
||||
<li>mesa: GL_PROVOKING_VERTEX_EXT is a GLenum, not GLboolean.</li>
|
||||
<li>mesa: Fix GetVertexAttrib* inside display lists.</li>
|
||||
<li>draw: Fix draw_variant_output::format's type.</li>
|
||||
<li>gallivm: Tell LLVM to not assume a 16-byte aligned stack on x86.</li>
|
||||
<li>gallivm: Fix for dynamically linked LLVM 2.8 library.</li>
|
||||
<li>st/wgl: Adjust the pbuffer invisible window size.</li>
|
||||
<li>st/wgl: Fix debug output format specifiers of stw_framebuffer_get_size().</li>
|
||||
<li>st/wgl: Prevent spurious framebuffer sizes when the window is minimized.</li>
|
||||
<li>st/wgl: Cope with zero width/height windows.</li>
|
||||
<li>st/wgl: Allow to create pbuffers bigger than the desktop.</li>
|
||||
<li>st/wgl: Remove buggy assertion.</li>
|
||||
<li>wgl: Don't hold on to user supplied HDC.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Kenneth Graunke (10):
|
||||
<ul>
|
||||
<li>i965/fs: Switch W and 1/W in Sandybridge interpolation setup.</li>
|
||||
<li>i965: Refactor Sandybridge implied move handling.</li>
|
||||
<li>i965: Resolve implied moves in brw_dp_READ_4_vs_relative.</li>
|
||||
<li>intel: Add IS_GT2 macro for recognizing Sandybridge GT2 systems.</li>
|
||||
<li>i965: Allocate the whole URB to the VS and fix calculations for Gen6.</li>
|
||||
<li>intel: Support glCopyTexImage() from ARGB8888 to XRGB8888.</li>
|
||||
<li>glsl: Fix memory error when creating the supported version string.</li>
|
||||
<li>glsl: Regenerate autogenerated file builtin_function.cpp.</li>
|
||||
<li>i965: Rename various gen6 #defines to match the documentation.</li>
|
||||
<li>i965: Never enable the GS on Gen6.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Kostas Georgiou (1):
|
||||
<ul>
|
||||
<li>r600c/g: Add pci id for FirePro 2270</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Marek Olšák (18):
|
||||
<ul>
|
||||
<li>tgsi/ureg: bump the limit of immediates</li>
|
||||
<li>st/mesa: fix changing internal format via RenderbufferStorage</li>
|
||||
<li>st/mesa: GenerateMipmap should not be killed by conditional rendering</li>
|
||||
<li>swrast: BlitFramebuffer should not be killed by conditional rendering</li>
|
||||
<li>st/mesa: BlitFramebuffer should not be killed by conditional rendering</li>
|
||||
<li>st/mesa: CopyTex(Sub)Image should not be killed by conditional rendering</li>
|
||||
<li>st/mesa: conditional rendering should not kill texture decompression via blit</li>
|
||||
<li>mesa: forbid UseProgram to be called inside Begin/End</li>
|
||||
<li>mesa: UseShaderProgramEXT and Uniform* shouldn't be allowed inside Begin/End</li>
|
||||
<li>mesa: queries of non-existent FBO attachments should return INVALID_OPERATION</li>
|
||||
<li>r300g: fix draw_vbo splitting on r3xx-r4xx</li>
|
||||
<li>r300g: fix texturing with non-3D textures and wrap R mode set to sample border</li>
|
||||
<li>r300g: fix occlusion queries when depth test is disabled or zbuffer is missing</li>
|
||||
<li>r300g: clear can be killed by render condition</li>
|
||||
<li>st/mesa: remove asserts in st_texture_image_copy</li>
|
||||
<li>mesa: fix up assertion in _mesa_source_buffer_exists</li>
|
||||
<li>mesa: invalidate framebuffer if internal format of renderbuffer is changed</li>
|
||||
<li>mesa: return after invalidating renderbuffer</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Matt Turner (1):
|
||||
<ul>
|
||||
<li>r300/compiler: align memory allocations to 8-bytes</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Tom Stellard (3):
|
||||
<ul>
|
||||
<li>r300/compiler: Fix incorrect presubtract conversion</li>
|
||||
<li>r300/compiler: Fix dataflow analysis bug with ELSE blocks</li>
|
||||
<li>r300/compiler: Limit instructions to 3 source selects</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Vinson Lee (1):
|
||||
<ul>
|
||||
<li>gallivm: Disable MMX-disabling code on llvm-2.9.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Zou Nan hai (1):
|
||||
<ul>
|
||||
<li>i965: Align interleaved URB write length to 2</li>
|
||||
</ul></p>
|
||||
|
||||
<p>pepp (1):
|
||||
<ul>
|
||||
<li>st/mesa: assign renderbuffer's format field when allocating storage</li>
|
||||
</ul></p>
|
||||
|
||||
</body>
|
||||
</html>
|
391
docs/relnotes-7.11.1.html
Normal file
391
docs/relnotes-7.11.1.html
Normal file
@@ -0,0 +1,391 @@
|
||||
<HTML>
|
||||
|
||||
<head>
|
||||
<TITLE>Mesa Release Notes</TITLE>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
</head>
|
||||
|
||||
<BODY>
|
||||
|
||||
<body bgcolor="#eeeeee">
|
||||
|
||||
<H1>Mesa 7.11.1 Release Notes / November 17, 2011</H1>
|
||||
|
||||
<p>
|
||||
Mesa 7.11.1 is a bug fix release which fixes bugs found since the 7.11 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 7.11 implements the OpenGL 2.1 API, but the version reported by
|
||||
glGetString(GL_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 2.1.
|
||||
</p>
|
||||
<p>
|
||||
See the <a href="install.html">Compiling/Installing page</a> for prerequisites
|
||||
for DRI hardware acceleration.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
ac0181a4076770fb657c1169af43aa09 MesaLib-7.11.1.tar.gz
|
||||
a77307102cee844ff6544ffa8fafeac1 MesaLib-7.11.1.tar.bz2
|
||||
dfcb11516c1730f3981b55a65a835623 MesaLib-7.11.1.zip
|
||||
2cb2b9ecb4fb7d1a6be69346ee886952 MesaGLUT-7.11.1.tar.gz
|
||||
3f54e314290d4dacbab089839197080b MesaGLUT-7.11.1.tar.bz2
|
||||
5d66c7ee8c5cc2f27e1ffb037ad4172c MesaGLUT-7.11.1.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None.</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=3165">Bug 3165</a> - texImage.IsCompressed and texImage.CompressedSize issues</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=23525">Bug 23525</a> - Software rendering on QEMU guests badly broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=28125">Bug 28125</a> - DRI2 prevents indirect glx</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34628">Bug 34628</a> - [ilk] skybox errors in quake4</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36371">Bug 36371</a> - r200: piglit readPixSanity failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36669">Bug 36669</a> - EmitNoMainReturn set to 1 doesn't make the GLSL compiler lower all the RET opcodes</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36939">Bug 36939</a> - multitexturing is messed up in quake wars (regression)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37907">Bug 37907</a> - [swrast] SIGSEGV swrast/s_depth.c:569</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38163">Bug 38163</a> - Gnome Shell Display Bug</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38625">Bug 38625</a> - ast_to_hir.cpp:1761: const glsl_type* process_array_type(YYLTYPE*, const glsl_type*, ast_node*, _mesa_glsl_parse_state*): Assertion `dummy_instructions.is_empty()' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38729">Bug 38729</a> - [softpipe] sp_quad_depth_test.c:215:convert_quad_stencil: Assertion `0' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38863">Bug 38863</a> - [IVB]GPU hang when running 3D games like openarena</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39193">Bug 39193</a> - [llvmpipe and r600g] glCheckFramebufferStatusEXT segfaults in Gallium when checking status on a framebuffer bound to a texture that's bound to a pixmap</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39651">Bug 39651</a> - [glsl] Assertion failure when implicitly converting out parameters</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39991">Bug 39991</a> - [regression]GL_PALETTE8_RGBA8_OES format of glCompressedTexImage2D will cause err GL_INVALID_ENUM with GLES1.x</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=40022">Bug 40022</a> - [i915] out-of-bounds write src/mesa/drivers/dri/i915/i915_fragprog.c:321</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=40062">Bug 40062</a> - in etqw the strogg radar is black (regression)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=40324">Bug 40324</a> - [SNB] gpu hang in mesa 7.11</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=40533">Bug 40533</a> - i915: piglit glean/readPixSanity: DRI2SwapBuffers: BadDrawable (invalid Pixmap or Window parameter)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=41096">Bug 41096</a> - [sandybridge-m-gt2+] GPU lockup render.IPEHR: 0x7a000002</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=41969">Bug 41969</a> - The Mesa meta save/restore code doesn't always save the active program</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=42175">Bug 42175</a> - RV730: Display errors in glxgears & WebGL</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=42268">Bug 42268</a> - [bisected] oglc pbo(negative.invalidOffsetValue) aborts on 7.11 branch</li>
|
||||
|
||||
<!-- <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=">Bug </a> - </li> -->
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>The full set of changes can be viewed by using the following GIT command:</p>
|
||||
|
||||
<pre>
|
||||
git log mesa-7.11..mesa-7.11.1
|
||||
</pre>
|
||||
|
||||
<p>Adam Jackson (2):
|
||||
<ul>
|
||||
<li>drisw: Remove cargo culting that breaks GLX 1.3 ctors</li>
|
||||
<li>glx: Don't enable INTEL_swap_event unconditionally</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Alex Deucher (1):
|
||||
<ul>
|
||||
<li>r600g: fix up vs export handling</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Ben Widawsky (1):
|
||||
<ul>
|
||||
<li>intel: GetBuffer fix</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Brian Paul (15):
|
||||
<ul>
|
||||
<li>docs: add 7.11 md5 sums</li>
|
||||
<li>docs: news item for 7.11 release</li>
|
||||
<li>st/mesa: Convert size assertions to conditionals in st_texture_image_copy.</li>
|
||||
<li>softpipe: add missing stencil format case in convert_quad_stencil()</li>
|
||||
<li>mesa: fix texstore addressing bugs for depth/stencil formats</li>
|
||||
<li>mesa: add missing breaks for GL_TEXTURE_CUBE_MAP_SEAMLESS queries</li>
|
||||
<li>swrast: don't try to do depth testing if there's no depth buffer</li>
|
||||
<li>meta: fix/add checks for GL_EXT_framebuffer_sRGB</li>
|
||||
<li>mesa: fix PACK_COLOR_5551(), PACK_COLOR_1555() macros</li>
|
||||
<li>meta: fix broken sRGB mipmap generation</li>
|
||||
<li>mesa: add _NEW_CURRENT_ATTRIB in _mesa_program_state_flags()</li>
|
||||
<li>mesa: fix error handling for dlist image unpacking</li>
|
||||
<li>mesa: generate GL_INVALID_OPERATION in glIsEnabledIndex() between Begin/End</li>
|
||||
<li>mesa: fix incorrect error code in _mesa_FramebufferTexture1D/3DEXT()</li>
|
||||
<li>mesa: fix format/type check in unpack_image() for bitmaps</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Carl Simonson (1):
|
||||
<ul>
|
||||
<li>i830: Add missing vtable entry for i830 from the hiz work.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Carl Worth (5):
|
||||
<ul>
|
||||
<li>glcpp: Fix two (or more) successive applications of token pasting</li>
|
||||
<li>glcpp: Test a non-function-like macro using the token paste operator</li>
|
||||
<li>glcpp: Implement token pasting for non-function-like macros</li>
|
||||
<li>glcpp: Raise error if defining any macro containing two consecutive underscores</li>
|
||||
<li>glcpp: Add a test for #elif with an undefined macro.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Chad Versace (5):
|
||||
<ul>
|
||||
<li>glsl: Add method glsl_type::can_implicitly_convert_to()</li>
|
||||
<li>glsl: Fix implicit conversions in non-constructor function calls</li>
|
||||
<li>glsl: Remove ir_function.cpp:type_compare()</li>
|
||||
<li>glsl: Fix conversions in array constructors</li>
|
||||
<li>x86-64: Fix compile error with clang</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Chia-I Wu (3):
|
||||
<ul>
|
||||
<li>glsl: empty declarations should be valid</li>
|
||||
<li>intel: rename intel_extensions_es2.c to intel_extensions_es.c</li>
|
||||
<li>intel: fix GLESv1 support</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Chris Wilson (1):
|
||||
<ul>
|
||||
<li>i915: out-of-bounds write in calc_live_regs()</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Christopher James Halse Rogers (1):
|
||||
<ul>
|
||||
<li>glx/dri2: Paper over errors in DRI2Connect when indirect</li>
|
||||
</ul></p>
|
||||
|
||||
<p>David Reveman (1):
|
||||
<ul>
|
||||
<li>i915g: Fix off-by-one in scissors.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Eric Anholt (16):
|
||||
<ul>
|
||||
<li>mesa: Don't skip glGetProgramEnvParam4dvARB if there was already an error.</li>
|
||||
<li>mesa: Fix glGetUniform() type conversions.</li>
|
||||
<li>mesa: Add support for Begin/EndConditionalRender in display lists.</li>
|
||||
<li>mesa: Throw an error instead of asserting for condrender with query == 0.</li>
|
||||
<li>mesa: Throw an error when starting conditional render on an active query.</li>
|
||||
<li>mesa: Don't skip glGetProgramLocalParam4dvARB if there was already an error.</li>
|
||||
<li>glsl: Allow ir_assignment() constructor to not specify condition.</li>
|
||||
<li>glsl: Clarify error message about whole-array assignment in GLSL 1.10.</li>
|
||||
<li>glsl: When assigning to a whole array, mark the array as accessed.</li>
|
||||
<li>glsl: When assiging from a whole array, mark it as used.</li>
|
||||
<li>i965/fs: Respect ARB_color_buffer_float clamping.</li>
|
||||
<li>i965: Add missing _NEW_POLYGON flag to polygon stipple upload.</li>
|
||||
<li>i965: Fix polygon stipple offset state flagging.</li>
|
||||
<li>intel: Mark MESA_FORMAT_X8_Z24 as always supported.</li>
|
||||
<li>mesa: Don't error on glFeedbackBuffer(size = 0, buffer = NULL)</li>
|
||||
<li>glsl: Fix gl_NormalMatrix swizzle setup to match i965's invariants.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Henri Verbeet (6):
|
||||
<ul>
|
||||
<li>mesa: Also set the remaining draw buffers to GL_NONE when updating just the first buffer in _mesa_drawbuffers().</li>
|
||||
<li>r600g: Support the PIPE_FORMAT_R16_FLOAT colorformat.</li>
|
||||
<li>mesa: Check the texture against all units in unbind_texobj_from_texunits().</li>
|
||||
<li>mesa: Allow sampling from units >= MAX_TEXTURE_UNITS in shaders.</li>
|
||||
<li>mesa: Use the Elements macro for the sampler index assert in validate_samplers().</li>
|
||||
<li>mesa: Fix a couple of TexEnv unit limits.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Ian Romanick (17):
|
||||
<ul>
|
||||
<li>mesa: Add utility function to get base format from a GL compressed format</li>
|
||||
<li>mesa: Return the correct internal fmt when a generic compressed fmt was used</li>
|
||||
<li>mesa: Make _mesa_get_compressed_formats match the texture compression specs</li>
|
||||
<li>linker: Make linker_error set LinkStatus to false</li>
|
||||
<li>linker: Make linker_{error,warning} generally available</li>
|
||||
<li>mesa: Ensure that gl_shader_program::InfoLog is never NULL</li>
|
||||
<li>ir_to_mesa: Use Add linker_error instead of fail_link</li>
|
||||
<li>ir_to_mesa: Emit warnings instead of errors for IR that can't be lowered</li>
|
||||
<li>i915: Fail without crashing if a Mesa IR program uses too many registers</li>
|
||||
<li>i915: Only emit program errors when INTEL_DEBUG=wm or INTEL_DEBUG=fallbacks</li>
|
||||
<li>mesa: Add GL_OES_compressed_paletted_texture formats to _mesa_is_compressed_format</li>
|
||||
<li>mesa: Add GL_OES_compressed_paletted_texture formats to _mesa_base_tex_format</li>
|
||||
<li>mesa: Refactor expected texture size check in cpal_get_info</li>
|
||||
<li>mesa: Add _mesa_cpal_compressed_format_type</li>
|
||||
<li>mesa: Refactor compressed texture error checks to work with paletted textures</li>
|
||||
<li>mesa: Remove redundant compressed paletted texture error checks</li>
|
||||
<li>mesa: Advertise GL_OES_compressed_paletted_texture in OpenGL ES1.x</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Jeremy Huddleston (3):
|
||||
<ul>
|
||||
<li>apple: Silence some debug spew</li>
|
||||
<li>apple: Use the correct (OpenGL.framework) glViewport and glScissor during init</li>
|
||||
<li>apple: Implement applegl_unbind_context</li>
|
||||
</ul></p>
|
||||
|
||||
<p>José Fonseca (1):
|
||||
<ul>
|
||||
<li>docs: Update llvmpipe docs.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Kenneth Graunke (12):
|
||||
<ul>
|
||||
<li>glsl: Avoid massive ralloc_strndup overhead in S-Expression parsing.</li>
|
||||
<li>mesa: In validate_program(), initialize errMsg for safety.</li>
|
||||
<li>i965/gen5+: Fix incorrect miptree layout for non-power-of-two cubemaps.</li>
|
||||
<li>i965: Use proper texture alignment units for cubemaps on Gen5+.</li>
|
||||
<li>i965: Fix incorrect maximum PS thread count shift on Ivybridge.</li>
|
||||
<li>i965: Emit depth stalls and flushes before changing depth state on Gen6+.</li>
|
||||
<li>i965/fs: Allow SIMD16 with control flow on Ivybridge.</li>
|
||||
<li>i965: Allow SIMD16 color writes on Ivybridge.</li>
|
||||
<li>i965: Fix inconsistent indentation in brw_eu_emit.c.</li>
|
||||
<li>intel: Depth format fixes</li>
|
||||
<li>i965: Apply post-sync non-zero workaround to homebrew workaround.</li>
|
||||
<li>mesa/get: Move MAX_LIGHTS from GL/ES2 to GL/ES1.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Kristian Høgsberg (1):
|
||||
<ul>
|
||||
<li>glx: Don't flush twice if we fallback to dri2CopySubBuffer</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Marc Pignat (1):
|
||||
<ul>
|
||||
<li>drisw: Fix 24bpp software rendering, take 2</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Marcin Baczyński (2):
|
||||
<ul>
|
||||
<li>configure: fix gcc version check</li>
|
||||
<li>configure: allow C{,XX}FLAGS override</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Marcin Slusarz (3):
|
||||
<ul>
|
||||
<li>nouveau: fix nouveau_fence leak</li>
|
||||
<li>nouveau: fix crash during fence emission</li>
|
||||
<li>nouveau: fix fence hang</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Marek Olšák (19):
|
||||
<ul>
|
||||
<li>vbo: do not call _mesa_max_buffer_index in debug builds</li>
|
||||
<li>winsys/radeon: fix space checking</li>
|
||||
<li>r300/compiler: fix a warning that a variable may be uninitialized</li>
|
||||
<li>r300/compiler: remove an unused-but-set variable and simplify the code</li>
|
||||
<li>u_vbuf_mgr: cleanup original vs real vertex buffer arrays</li>
|
||||
<li>u_vbuf_mgr: don't take per-instance attribs into acc. when computing max index</li>
|
||||
<li>u_vbuf_mgr: fix max_index computation for large src_offset</li>
|
||||
<li>u_vbuf_mgr: s/u_vbuf_mgr_/u_vbuf_</li>
|
||||
<li>u_vbuf_mgr: remove unused flag U_VBUF_UPLOAD_FLUSHED</li>
|
||||
<li>u_vbuf_mgr: rework user buffer uploads</li>
|
||||
<li>u_vbuf_mgr: fix uploading with a non-zero index bias</li>
|
||||
<li>configure.ac: fix xlib-based softpipe build</li>
|
||||
<li>r600g: add index_bias to index buffer bounds</li>
|
||||
<li>r300g: fix rendering with a non-zero index bias in draw_elements_immediate</li>
|
||||
<li>Revert "r300g: fix rendering with a non-zero index bias in draw_elements_immediate"</li>
|
||||
<li>pb_bufmgr_cache: flush cache when create_buffer fails and try again</li>
|
||||
<li>r300g: don't return NULL in resource_from_handle if the resource is too small</li>
|
||||
<li>r600g: set correct tiling flags in depth info</li>
|
||||
<li>r300g: don't call u_trim_pipe_prim in r300_swtcl_draw_vbo</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Michel Dänzer (4):
|
||||
<ul>
|
||||
<li>st/mesa: Finalize texture on render-to-texture.</li>
|
||||
<li>glx/dri2: Don't call X server for SwapBuffers when there's no back buffer.</li>
|
||||
<li>gallium/util: Add macros for converting from little endian to CPU byte order.</li>
|
||||
<li>r300g: Fix queries on big endian hosts.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Neil Roberts (1):
|
||||
<ul>
|
||||
<li>meta: Fix saving the active program</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Paul Berry (18):
|
||||
<ul>
|
||||
<li>glsl: Lower unconditional return statements.</li>
|
||||
<li>glsl: Refactor logic for determining whether to lower return statements.</li>
|
||||
<li>glsl: lower unconditional returns and continues in loops.</li>
|
||||
<li>glsl: Use foreach_list in lower_jumps.cpp</li>
|
||||
<li>glsl: In lower_jumps.cpp, lower both branches of a conditional.</li>
|
||||
<li>glsl: Lower break instructions when necessary at the end of a loop.</li>
|
||||
<li>glsl: improve the accuracy of the radians() builtin function</li>
|
||||
<li>glsl: improve the accuracy of the atan(x,y) builtin function.</li>
|
||||
<li>Revert "glsl: Skip processing the first function's body in do_dead_functions()."</li>
|
||||
<li>glsl: Emit function signatures at toplevel, even for built-ins.</li>
|
||||
<li>glsl: Constant-fold built-in functions before outputting IR</li>
|
||||
<li>glsl: Check array size is const before asserting that no IR was generated.</li>
|
||||
<li>glsl: Perform implicit type conversions on function call out parameters.</li>
|
||||
<li>glsl: Fix type error when lowering integer divisions</li>
|
||||
<li>glsl: Rework oversize array check for gl_TexCoord.</li>
|
||||
<li>glsl: Remove field array_lvalue from ir_variable.</li>
|
||||
<li>glsl hierarchical visitor: Do not overwrite base_ir for parameter lists.</li>
|
||||
<li>glsl: improve the accuracy of the asin() builtin function.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Tobias Droste (1):
|
||||
<ul>
|
||||
<li>r300/compiler: simplify code in peephole_add_presub_add</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Tom Fogal (1):
|
||||
<ul>
|
||||
<li>Only use gcc visibility support with gcc4+.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Tom Stellard (1):
|
||||
<ul>
|
||||
<li>r300/compiler: Fix regalloc for values with multiple writers</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Vadim Girlin (5):
|
||||
<ul>
|
||||
<li>st/mesa: flush bitmap cache on query and conditional render boundaries</li>
|
||||
<li>r600g: use backend mask for occlusion queries</li>
|
||||
<li>r600g: take into account force_add_cf in pops</li>
|
||||
<li>r600g: fix check_and_set_bank_swizzle</li>
|
||||
<li>r600g: fix replace_gpr_with_pv_ps</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Yuanhan Liu (17):
|
||||
<ul>
|
||||
<li>i965: fix the constant interp bitmask for flat mode</li>
|
||||
<li>mesa: fix error handling for glEvalMesh1/2D</li>
|
||||
<li>mesa: fix error handling for some glGet* functions</li>
|
||||
<li>mesa: fix error handling for glTexEnv</li>
|
||||
<li>mesa: fix error handling for glIsEnabled</li>
|
||||
<li>mesa: fix error handling for glPixelZoom</li>
|
||||
<li>mesa: fix error handling for glSelectBuffer</li>
|
||||
<li>mesa: fix error handling for glMapBufferRange</li>
|
||||
<li>mesa: fix error handling for glMaterial*</li>
|
||||
<li>intel: fix the wrong code to detect null texture.</li>
|
||||
<li>mesa: add a function to do the image data copy stuff for save_CompressedTex(Sub)Image</li>
|
||||
<li>i965: setup address rounding enable bits</li>
|
||||
<li>mesa: generate error if pbo offset is not aligned with the size of specified type</li>
|
||||
<li>mesa: fix inverted pbo test error at _mesa_GetnCompressedTexImageARB</li>
|
||||
<li>mesa: handle the pbo case for save_Bitmap</li>
|
||||
<li>mesa: handle PBO access error in display list mode</li>
|
||||
<li>intel: don't call unmap pbo if pbo is not mapped</li>
|
||||
</ul></p>
|
||||
|
||||
</body>
|
||||
</html>
|
85
docs/relnotes-7.11.2.html
Normal file
85
docs/relnotes-7.11.2.html
Normal file
@@ -0,0 +1,85 @@
|
||||
<HTML>
|
||||
|
||||
<head>
|
||||
<TITLE>Mesa Release Notes</TITLE>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
</head>
|
||||
|
||||
<BODY>
|
||||
|
||||
<body bgcolor="#eeeeee">
|
||||
|
||||
<H1>Mesa 7.11.2 Release Notes / November 27, 2011</H1>
|
||||
|
||||
<p>
|
||||
Mesa 7.11.2 is a bug fix release which fixes bugs found since the 7.11 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 7.11 implements the OpenGL 2.1 API, but the version reported by
|
||||
glGetString(GL_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 2.1.
|
||||
</p>
|
||||
<p>
|
||||
See the <a href="install.html">Compiling/Installing page</a> for prerequisites
|
||||
for DRI hardware acceleration.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
b9e84efee3931c0acbccd1bb5a860554 MesaLib-7.11.2.tar.gz
|
||||
0837c52698fe3252369c3fdb5195afcc MesaLib-7.11.2.tar.bz2
|
||||
141273c274d12e0d2bafb497fe937da3 MesaLib-7.11.2.zip
|
||||
39ae9926794794503815ffdc069521eb MesaGLUT-7.11.2.tar.gz
|
||||
35ca3a0b54cb6f9d2e0e4eae8f6bb95e MesaGLUT-7.11.2.tar.bz2
|
||||
f8705fcff2510b6c39cd27b575c05dba MesaGLUT-7.11.2.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None.</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=43143">Bug 43143</a> - Mesa 7.11.1 fails to build at main/dlist.c:4532 with error message: "format not a string literal and no format arguments"</li>
|
||||
|
||||
<li>Incorrect handling of CopyTexImage from RGBA window to LA texture.</li>
|
||||
|
||||
<!-- <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=">Bug </a> - </li> -->
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>The full set of changes can be viewed by using the following GIT command:</p>
|
||||
|
||||
<pre>
|
||||
git log mesa-7.11.1..mesa-7.11.2
|
||||
</pre>
|
||||
|
||||
<p>Brian Paul (4):
|
||||
<ul>
|
||||
<li>mesa: stop using ctx->Driver.CopyTexImage1D/2D() hooks</li>
|
||||
<li>mesa: fix format selection for meta CopyTexSubImage()</li>
|
||||
<li>docs: update news.html and relnotes.html for 7.11.1 release</li>
|
||||
<li>mesa: use format string in _mesa_error() call to silence warning</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Chad Versace (3):
|
||||
<ul>
|
||||
<li>intel: Simplify stencil detiling arithmetic</li>
|
||||
<li>intel: Fix region dimensions for stencil buffers received from DDX</li>
|
||||
<li>intel: Fix separate stencil in builtin DRI2 backend</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Ian Romanick (3):
|
||||
<ul>
|
||||
<li>docs: Add 7.11.1 release md5sums</li>
|
||||
<li>mesa: set version string to 7.11.2-devel</li>
|
||||
<li>mesa: Bump version to 7.11.2 (final)</li>
|
||||
</ul></p>
|
||||
|
||||
</body>
|
||||
</html>
|
@@ -10,7 +10,7 @@
|
||||
|
||||
<body bgcolor="#eeeeee">
|
||||
|
||||
<H1>Mesa 7.11 Release Notes / (release date TBD)</H1>
|
||||
<H1>Mesa 7.11 Release Notes / July 31, 2011</H1>
|
||||
|
||||
<p>
|
||||
Mesa 7.11 is a new development release.
|
||||
@@ -30,34 +30,319 @@ for DRI hardware acceleration.
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
tbd
|
||||
fa2c7068503133fb2453244cda11cb2a MesaLib-7.11.tar.gz
|
||||
ff03aca82d0560009a076a87c888cf13 MesaLib-7.11.tar.bz2
|
||||
ede1ac0976f6f05df586093fc17d63ed MesaLib-7.11.zip
|
||||
b4fb81a47c5caedaefad49af7702c23d MesaGLUT-7.11.tar.gz
|
||||
77a9a0bbd7f8bca882aa5709b88cb071 MesaGLUT-7.11.tar.bz2
|
||||
c19ef0c6eb61188c96ed4ccedd70717c MesaGLUT-7.11.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<ul>
|
||||
<li>GL_ARB_ES2_compatibility (gallium drivers)
|
||||
<li>GL_ARB_color_buffer_float (gallium drivers, i965)
|
||||
<li>GL_ARB_draw_buffers_blend (gallium)
|
||||
<li>GL_ARB_draw_instanced extension (gallium drivers, swrast)
|
||||
<li>GL_ARB_instanced_arrays extension (gallium drivers)
|
||||
<li>GL_ARB_texture_compression_rgtc (gallium r600, swrast)
|
||||
<li>GL_ARB_draw_buffers_blend (gallium)
|
||||
<li>GL_EXT_texture_sRGB_decode (gallium drivers, swrast, i965)
|
||||
<li>GL_ARB_occlusion_query2 (gallium drivers, swrast)
|
||||
<li>GL_ARB_robustness (all drivers)
|
||||
<li>GL_ARB_sampler_objects (gallium drivers)
|
||||
<li>GL_ARB_seamless_cube_map (gallium r600)
|
||||
<li>GL_ARB_shader_texture_lod (gallium drivers, i965)
|
||||
<li>GL_ARB_sync (gallium drivers only, intel support was in 7.6)
|
||||
<li>GL_ARB_texture_compression_rgtc (gallium drivers, swrast, i965)
|
||||
<li>GL_ARB_texture_float (gallium, i965)
|
||||
<li>GL_EXT_packed_float (gallium r600)
|
||||
<li>GL_EXT_texture_compression_latc (gallium drivers, swrast)
|
||||
<li>GL_EXT_texture_compression_rgtc (gallium drivers, swrast, i965)
|
||||
<li>GL_EXT_texture_filter_anisotropic (swrast)
|
||||
<li>GL_EXT_texture_shared_exponent (gallium drivers, swrast)
|
||||
<li>GL_EXT_texture_sRGB_decode (gallium drivers, swrast, i965)
|
||||
<li>GL_EXT_texture_snorm (gallium drivers)
|
||||
<li>GL_AMD_draw_buffers_blend (alias of the ARB variant)
|
||||
<li>GL_AMD_seamless_cubemap_per_texture (gallium r600)
|
||||
<li>GL_AMD_shader_stencil_export (alias of the ARB variant)
|
||||
<li>GL_ATI_draw_buffers (all drivers)
|
||||
<li>GL_ATI_texture_compression_3dc (gallium drivers, swrast)
|
||||
<li>GL_ATI_texture_float (gallium, i965)
|
||||
<li>GL_NV_conditional_render (i965)
|
||||
<li>GL_NV_texture_barrier (gallium drivers)
|
||||
<li>Enable 16-wide fragment shader execution in i965 driver. This should improve performance in many applications.
|
||||
<li>Initial alpha-level support for Intel "Ivybridge" chipsets in the i965 driver.
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete. This list only includes bug fixes not
|
||||
included in the previous release (7.10.3). Many of these are regressions that
|
||||
did not exist in the 7.10 release series at all.</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=25871">Bug 25871</a> - nearest neighbour samples wrong texel (precision/rounding problem)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=29162">Bug 29162</a> - mesa/darwin is severly broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=30080">Bug 30080</a> - [i915] piglit nodepth-test fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=30217">Bug 30217</a> - Possible sources of memory leaks reported by valgrind</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=30266">Bug 30266</a> - Regression, segfault in libdrm_intel when calling glBitmap</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31561">Bug 31561</a> - [i915] intel_regions.c:289: intel_region_release: Assertion `region->map_refcount == 0' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31744">Bug 31744</a> - [GLSL] overriding built-in function impacts another shader</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32308">Bug 32308</a> - [llvmpipe] src/gallium/auxiliary/gallivm/lp_bld_init.c:319:gallivm_register_garbage_collector_callback: Assertion `NumCallbacks < 32' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32309">Bug 32309</a> - [softpipe] SIGSEGV sp_state_derived.c:204</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32459">Bug 32459</a> - [softpipe] glean depthStencil regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32460">Bug 32460</a> - [softpipe] piglit texwrap 1D regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32534">Bug 32534</a> - [arrandale/sandybridge] Mesa swallowing GEM ioctl failures</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32560">Bug 32560</a> - To fix: 64-bit-portabilty-issue state_tracker/st_program.c:427</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32634">Bug 32634</a> - [r300g, bisected] Massive corruption in Unigine Sanctuary</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32768">Bug 32768</a> - VBO rendering using glDrawArrays causes program termination and "cs IB too big" message</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32804">Bug 32804</a> - [swrast] glean pixelFormats regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32814">Bug 32814</a> - Build error in osmesa.c due to change in _mesa_update_framebuffer_visual() signature</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32859">Bug 32859</a> - Mesa doesn't compile under NetBSD</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32912">Bug 32912</a> - [bisected, r300g] Unigine Sanctuary: r300_emit.c:902:r300_emit_vertex_arrays: Assertion `&buf->b.b' failed with RADEON_HYPERZ=1</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32945">Bug 32945</a> - [RADEON:KMS:R300G] HiZ: Weird behavior with 3 pipes</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33046">Bug 33046</a> - [bisected]glean/pixelFormats and 3 oglc cases segfault</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33185">Bug 33185</a> - [RADEON:KMS:R300G] X crashes when kwin effects are turned on</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33215">Bug 33215</a> - [llvmpipe] piglit fbo-drawbuffers2-blend regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33247">Bug 33247</a> - [swrast] tnl/t_draw.c:471: _tnl_draw_prims: Assertion `prim[i].num_instances > 0' failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33284">Bug 33284</a> - [llvmpipe] piglit fbo-drawbuffers-fragcolor fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33306">Bug 33306</a> - [glsl] GLSL integer division by zero crashes GLSL compiler</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33353">Bug 33353</a> - [softpipe] piglit fbo-srgb looks incorrect</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33360">Bug 33360</a> - inclusion of $(TALLOC_LIBS) in src/mesa/drivers/osmesa/Makefile causes a build failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33374">Bug 33374</a> - [bisect] FTBFS on commit 9767d3b5 (glapi: Fix OpenGL ES 1.1 and 2.0 interop)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33508">Bug 33508</a> - [glsl] GLSL compiler modulus by zero crash</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33555">Bug 33555</a> - [softpipe] tgsi/tgsi_sse2.c:1527:emit_tex: Assertion `0' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33885">Bug 33885</a> - [glsl] GLSL compiler allows recursion</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33823">Bug 33823</a> - [glsl] ralloc.c:78: get_header: Assertion `info->canary == 0x5A1106' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33934">Bug 33934</a> - 3D blitting is orders of magnitude slower than equivalent 2D blitting.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33946">Bug 33946</a> - Crash: Mesa checks for invalid pointer, then uses it anyway.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34008">Bug 34008</a> - r600g: piglit failure (regression)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34009">Bug 34009</a> - Automatic Mipmap Generation produces very blurry image.</li>
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34042">Bug 34042</a> - Surfaceless eglMakeCurrent() fails if the supplied EGLContext is not a dummy context</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34049">Bug 34049</a> - r600g: assertion failure (regression)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34119">Bug 34119</a> - [glsl] piglit glsl-texcoord-array regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34323">Bug 34323</a> - [i915 GLSL gles2] gl_FragCoord.w not correct</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34346">Bug 34346</a> - src/glsl relies on $PWD which can be unset</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34378">Bug 34378</a> - st/mesa: 2a904fd6a0cb80eec6dec2bae07fd8778b04caf3 breaks sauerbraten</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34419">Bug 34419</a> - Kwin crashes screensaver exits</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34463">Bug 34463</a> - state_tracker/st_texture.c:370:st_texture_image_copy: Assertion `u_minify(src->width0, srcLevel) == width' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34468">Bug 34468</a> - src/glsl/Makefile fix</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34541">Bug 34541</a> - [ilk, wine] massive render corruption after recent patchset</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34589">Bug 34589</a> - [pineview bisected]many cases regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34595">Bug 34595</a> - [bisected piketon]oglc half_float_vertex(misc.fillmode.wireframe) regressed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34597">Bug 34597</a> - [bisected piketon]oglc blend-constcolor and 7 draw-buffers2 subcases regressed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34603">Bug 34603</a> - [bisected piketon]oglc vbo subcase basic.bufferdata regressed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34604">Bug 34604</a> - [bisected piketon]piglit fbo/fbo-depth-sample-compare regressed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34646">Bug 34646</a> - [bisected piketon]ogles2conform GL2Tests/GL/gl_FragCoord/gl_FragCoord_w_frag.test</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34656">Bug 34656</a> - i965: Crash when running WebGL Conformance Test in firefox-4 nightly build</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34691">Bug 34691</a> - [GLSL] matrix array member assignment with a complex subscript fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34906">Bug 34906</a> - [Pineview] Some WebGL conformance tests will crash firefox</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34968">Bug 34968</a> - Bad fps in Lightsmark benchmark</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35025">Bug 35025</a> - [Patch] Serious compiler warnings</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35312">Bug 35312</a> - r600g: Automatic mipmap generation doesn't work properly</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35373">Bug 35373</a> - [[GM45] OpenGL] GL_EXT_texture_sRGB_decode broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35434">Bug 35434</a> - [RADEON:KMS:R600G] etqw: broken ground textures</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35441">Bug 35441</a> - [PATCH] Mesa does not find nouveau include files with --enable-shared-dricore</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35614">Bug 35614</a> - [SNB] random hang on piglit case shaders/glsl-max-varyings</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35820">Bug 35820</a> - [bisected SNB] System hangs when Gnome with compiz start up</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35822">Bug 35822</a> - [bisected pineview] many cases related to depth and stencil failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35849">Bug 35849</a> - when sampling textures from both fragment and vertex shaders the vertex texture has the incorrect texture bound</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35852">Bug 35852</a> - [bisected pineview] oglc case pxconv-read failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35961">Bug 35961</a> - src/gallium/auxiliary/util/u_draw.c:77:util_draw_max_index: Assertion `buffer_size - format_size <= buffer_size' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36032">Bug 36032</a> - piglit fdo9833 regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36033">Bug 36033</a> - main/shaderapi.c:1044: validate_samplers: Assertion `(sizeof(targetName)/sizeof(*(targetName))) == NUM_TEXTURE_TARGETS' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36086">Bug 36086</a> - [wine] Segfault r300_resource_copy_region with some wine apps and RADEON_HYPERZ</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36182">Bug 36182</a> - Game Trine from http://www.humblebundle.com/ needs ATI_draw_buffers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36268">Bug 36268</a> - [r300g, bisected] minor flickering in Unigine Sanctuary</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36282">Bug 36282</a> - 34a5d3b9f4740601708c82093e2114356d749e65: glxgears segfaults when compiled with shared glapi</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36333">Bug 36333</a> - can't build demos if mesa build with --enable-selinux</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36473">Bug 36473</a> - [bisected] piglit bugs/fdo23670-depth_test failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36572">Bug 36572</a> - [bisected]oglc case texenv segfaults</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36609">Bug 36609</a> - 45920d2ecb38b14fdda5253fecce996570c22863 breaks sauerbraten on r300g</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36648">Bug 36648</a> - [bisected SNB]piglit fbo/fbo-alphatest-nocolor failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36649">Bug 36649</a> - [bisected SNB]oglc draw-buffers2 failed with 16-wide</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36753">Bug 36753</a> - Some textures now rendered as completely black after register allocator rewrite.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36821">Bug 36821</a> - [bisected SNB]oglc api-texcoord causes GPU hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36914">Bug 36914</a> - r600g: add rv670 flushing workaround. Causes games and some mesa demos to segfault.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36917">Bug 36917</a> - Rendering glitches in ETQW</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36939">Bug 36939</a> - multitexturing is messed up in quake wars (regression)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36987">Bug 36987</a> - Intel GMA 4500 ARB_shader_texture_lod support</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37028">Bug 37028</a> - Amnesia/HPL2 Demo: Strange graphical bugs on r600g</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37150">Bug 37150</a> - sRGB textures are too bright in Starcraft 2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37154">Bug 37154</a> - main/texstore.c:4187: _mesa_texstore_rgb9_e5: Assertion `baseInternalFormat == 0x1907' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37157">Bug 37157</a> - [bisected] KDE KWin crashes on start with delayed BO mapping</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37168">Bug 37168</a> - Regression: Severe memory leak when running Second Life</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37366">Bug 37366</a> - [i965 bisected ILK] Fragment shader discard tests occasionally fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37383">Bug 37383</a> - incorrect GLSL optimization</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37476">Bug 37476</a> - [wine] Devil May Cry 4: TXD tgsi opcode unsupported / translation from TGSI failed / missing vertex shader</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37743">Bug 37743</a> - [bisected i965]oglc GLSLlinker subcase negative.varying.beyondMaxVaryingFloats aborted</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37766">Bug 37766</a> - Crash in dri2InvalidateBuffers when resizing Java window with OpenGL pipeline enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37839">Bug 37839</a> - main/teximage.c:2393: _mesa_choose_texture_format: Assertion `f != MESA_FORMAT_NONE' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37934">Bug 37934</a> - Corruption with topogun trace</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38015">Bug 38015</a> - Some extensions enabled even when not supported by the underlying driver</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38134">Bug 38134</a> - [bisected i965]piglit fbo/fbo-blit-d24s8 crashed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38145">Bug 38145</a> - r600g/evergreen: Incorrect rendering of some effects in doom3</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38440">Bug 38440</a> - ETQW: Model in team select rendering too bright</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38566">Bug 38566</a> - [regression] ETQW crashes with 21972c85ea734dbfcf69629c6b0b940efb42d4ba</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38584">Bug 38584</a> - MESA_GLSL=dump causes SEGV in ir_print_visitor::unique_name</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38599">Bug 38599</a> - THe value of WGL_PBUFFER_HEIGHT_ARB is returned as width in wglQueryPbufferARB</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38602">Bug 38602</a> - [bisected] Wrong display after "prefer native texture formats when possible" commit</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38624">Bug 38624</a> - program/ir_to_mesa.cpp:1440: virtual void ir_to_mesa_visitor::visit(ir_dereference_variable*): Assertion `var->location != -1' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38626">Bug 38626</a> - vbo: Don't discount stride breaks piglit on softpipe/r600g</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38649">Bug 38649</a> - piglit fbo-copyteximage regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38762">Bug 38762</a> - [IVB bisected]3D demos like glxgears abort</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38771">Bug 38771</a> - [[GM45] DRI] GPU hangs with current Mesa GIT when running certain OpenGL applications</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38842">Bug 38842</a> - Various valid GLX attributes are rejected by MESA glxChooseFBConfig</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38971">Bug 38971</a> - [bisected]oglc glsl-autointconv subcase negative.function.ambiguousMatch failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38987">Bug 38987</a> - sampler allowed as non-uniform / non-function parameters</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39024">Bug 39024</a> - [Pineview webgl] many webgl conformance cases crash the browser</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39083">Bug 39083</a> - [regression, bisected, r600g] Wrong rendering of Bubbles3D screensaver</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39119">Bug 39119</a> - setting SQ_LDS_RESOURCE_MGMT register to zero in other applications muddles up font rendering permanently</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39209">Bug 39209</a> - [bisected] Wrong display after "prefer native texture formats when possible" commit - part2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39219">Bug 39219</a> - libgl conflict with xbmc causes lock up on xbmc exit</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39257">Bug 39257</a> - [bisected SNB]Mesa demos engine causes GPU hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39487">Bug 39487</a> - [i965] brw_wm_surface_state.c:495: brw_update_renderbuffer_surface: Assertion `brw->>has_surface_tile_offset || (tile_x == 0 && tile_y == 0)' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39515">Bug 39515</a> - FTBFS: libEGL depends on libgbm, but libEGL builds first</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=39572">Bug 39572</a> - Cogs: GPU hang</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
<ul>
|
||||
<li>The Windows MSVC project files have been removed. They haven't been maintained
|
||||
in quite a while. Building with SCons is an alterantive.
|
||||
<li>The Windows MSVC project files have been removed.
|
||||
They haven't been maintained in quite a while.
|
||||
Building with SCons is an alternative.
|
||||
<li>Removed GL_SGI_texture_color_table support from swrast driver - the only
|
||||
driver that implemented it.
|
||||
</ul>
|
||||
|
||||
<p>The full set of changes can be viewed by using the following GIT command:</p>
|
||||
|
||||
<pre>
|
||||
git log mesa-7.10..mesa-7.11
|
||||
</pre>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -13,7 +13,10 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<UL>
|
||||
<LI><A HREF="relnotes-7.11.2.html">7.11.2 release notes</A>
|
||||
<LI><A HREF="relnotes-7.11.1.html">7.11.1 release notes</A>
|
||||
<LI><A HREF="relnotes-7.11.html">7.11 release notes</A>
|
||||
<LI><A HREF="relnotes-7.10.3.html">7.10.3 release notes</A>
|
||||
<LI><A HREF="relnotes-7.10.2.html">7.10.2 release notes</A>
|
||||
<LI><A HREF="relnotes-7.10.1.html">7.10.1 release notes</A>
|
||||
<LI><A HREF="relnotes-7.10.html">7.10 release notes</A>
|
||||
|
@@ -131,6 +131,7 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGL
|
||||
/* EGL_DRM_BUFFER_USE_MESA bits */
|
||||
#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x0001
|
||||
#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x0002
|
||||
#define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x0004
|
||||
|
||||
#define EGL_DRM_BUFFER_MESA 0x31D3 /* eglCreateImageKHR target */
|
||||
#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 /* eglCreateImageKHR attribute */
|
||||
@@ -151,10 +152,9 @@ struct wl_display;
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display);
|
||||
#else
|
||||
typedef EGLBoolean (EGLAPIENTRY PFNEGLBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
|
||||
typedef EGLBoolean (EGLAPIENTRY PFNEGLUNBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
|
||||
#endif
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
|
||||
#endif
|
||||
|
||||
#if KHRONOS_SUPPORT_INT64 /* EGLTimeKHR requires 64-bit uint support */
|
||||
|
@@ -80,10 +80,16 @@ typedef void *EGLNativePixmapType;
|
||||
|
||||
#elif defined(WL_EGL_PLATFORM)
|
||||
|
||||
typedef struct wl_egl_display *EGLNativeDisplayType;
|
||||
typedef struct wl_display *EGLNativeDisplayType;
|
||||
typedef struct wl_egl_pixmap *EGLNativePixmapType;
|
||||
typedef struct wl_egl_window *EGLNativeWindowType;
|
||||
|
||||
#elif defined(__GBM__)
|
||||
|
||||
typedef struct gbm_device *EGLNativeDisplayType;
|
||||
typedef struct gbm_bo *EGLNativePixmapType;
|
||||
typedef void *EGLNativeWindowType;
|
||||
|
||||
#elif defined(__unix__) || defined(__unix)
|
||||
|
||||
#ifdef MESA_EGL_NO_X11_HEADERS
|
||||
|
@@ -67,7 +67,7 @@
|
||||
#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */
|
||||
# define GLAPI extern
|
||||
# define GLAPIENTRY __stdcall
|
||||
#elif defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
|
||||
#elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
|
||||
# define GLAPI __attribute__((visibility("default")))
|
||||
# define GLAPIENTRY
|
||||
#endif /* WIN32 && !CYGWIN */
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2007-2010 The Khronos Group Inc.
|
||||
** Copyright (c) 2007-2011 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -29,9 +29,9 @@ extern "C" {
|
||||
*/
|
||||
|
||||
/* Header file version number, required by OpenGL ABI for Linux */
|
||||
/* glext.h last updated $Date: 2010-12-09 02:15:08 -0800 (Thu, 09 Dec 2010) $ */
|
||||
/* glext.h last updated $Date: 2011-07-06 02:49:14 -0700 (Wed, 06 Jul 2011) $ */
|
||||
/* Current version at http://www.opengl.org/registry/ */
|
||||
#define GL_GLEXT_VERSION 67
|
||||
#define GL_GLEXT_VERSION 71
|
||||
/* Function declaration macros - to move into glplatform.h */
|
||||
|
||||
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
||||
@@ -5032,6 +5032,32 @@ extern "C" {
|
||||
#define GL_SKIP_DECODE_EXT 0x8A4A
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_texture_multisample
|
||||
#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045
|
||||
#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046
|
||||
#endif
|
||||
|
||||
#ifndef GL_AMD_blend_minmax_factor
|
||||
#define GL_FACTOR_MIN_AMD 0x901C
|
||||
#define GL_FACTOR_MAX_AMD 0x901D
|
||||
#endif
|
||||
|
||||
#ifndef GL_AMD_sample_positions
|
||||
#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_x11_sync_object
|
||||
#define GL_SYNC_X11_FENCE_EXT 0x90E1
|
||||
#endif
|
||||
|
||||
#ifndef GL_AMD_multi_draw_indirect
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_framebuffer_multisample_blit_scaled
|
||||
#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA
|
||||
#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB
|
||||
#endif
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
@@ -11041,6 +11067,58 @@ typedef void (APIENTRYP PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, cons
|
||||
#define GL_EXT_texture_sRGB_decode 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_texture_multisample
|
||||
#define GL_NV_texture_multisample 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
|
||||
GLAPI void APIENTRY glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
|
||||
GLAPI void APIENTRY glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
|
||||
GLAPI void APIENTRY glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
|
||||
GLAPI void APIENTRY glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
|
||||
GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
|
||||
typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
|
||||
#endif
|
||||
|
||||
#ifndef GL_AMD_blend_minmax_factor
|
||||
#define GL_AMD_blend_minmax_factor 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_AMD_sample_positions
|
||||
#define GL_AMD_sample_positions 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat *val);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_x11_sync_object
|
||||
#define GL_EXT_x11_sync_object 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI GLsync APIENTRY glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef GLsync (APIENTRYP PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
|
||||
#endif
|
||||
|
||||
#ifndef GL_AMD_multi_draw_indirect
|
||||
#define GL_AMD_multi_draw_indirect 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glMultiDrawArraysIndirectAMD (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_framebuffer_multisample_blit_scaled
|
||||
#define GL_EXT_framebuffer_multisample_blit_scaled 1
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -284,7 +284,7 @@ typedef GLUtesselator GLUtriangulatorObj;
|
||||
#define GLU_TESS_MAX_COORD 1.0e150
|
||||
|
||||
/* Internal convenience typedefs */
|
||||
typedef void (GLAPIENTRYP _GLUfuncptr)();
|
||||
typedef void (GLAPIENTRYP _GLUfuncptr)(void);
|
||||
|
||||
GLAPI void GLAPIENTRY gluBeginCurve (GLUnurbs* nurb);
|
||||
GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator* tess);
|
||||
|
@@ -692,6 +692,7 @@ struct __DRIswrastExtensionRec {
|
||||
#define __DRI_BUFFER_FAKE_FRONT_LEFT 7
|
||||
#define __DRI_BUFFER_FAKE_FRONT_RIGHT 8
|
||||
#define __DRI_BUFFER_DEPTH_STENCIL 9 /**< Only available with DRI2 1.1 */
|
||||
#define __DRI_BUFFER_HIZ 10
|
||||
|
||||
struct __DRIbufferRec {
|
||||
unsigned int attachment;
|
||||
@@ -816,6 +817,7 @@ struct __DRIdri2ExtensionRec {
|
||||
|
||||
#define __DRI_IMAGE_USE_SHARE 0x0001
|
||||
#define __DRI_IMAGE_USE_SCANOUT 0x0002
|
||||
#define __DRI_IMAGE_USE_CURSOR 0x0004
|
||||
|
||||
/**
|
||||
* queryImage attributes
|
||||
@@ -847,6 +849,11 @@ struct __DRIimageExtensionRec {
|
||||
void *loaderPrivate);
|
||||
|
||||
GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value);
|
||||
|
||||
/**
|
||||
* The new __DRIimage will share the content with the old one, see dup(2).
|
||||
*/
|
||||
__DRIimage *(*dupImage)(__DRIimage *image, void *loaderPrivate);
|
||||
};
|
||||
|
||||
|
||||
|
4
include/pci_ids/i810_pci_ids.h
Normal file
4
include/pci_ids/i810_pci_ids.h
Normal file
@@ -0,0 +1,4 @@
|
||||
CHIPSET(0x7121, I810, i8xx)
|
||||
CHIPSET(0x7123, I810_DC100, i8xx)
|
||||
CHIPSET(0x7125, I810_E, i8xx)
|
||||
CHIPSET(0x1132, I815, i8xx)
|
15
include/pci_ids/i915_pci_ids.h
Normal file
15
include/pci_ids/i915_pci_ids.h
Normal file
@@ -0,0 +1,15 @@
|
||||
CHIPSET(0x3577, I830_M, i8xx)
|
||||
CHIPSET(0x2562, 845_G, i8xx)
|
||||
CHIPSET(0x3582, I855_GM, i8xx)
|
||||
CHIPSET(0x2572, I865_G, i8xx)
|
||||
CHIPSET(0x2582, I915_G, i915)
|
||||
CHIPSET(0x258A, E7221_G, i915)
|
||||
CHIPSET(0x2592, I915_GM, i915)
|
||||
CHIPSET(0x2772, I945_G, i945)
|
||||
CHIPSET(0x27A2, I945_GM, i945)
|
||||
CHIPSET(0x27AE, I945_GME, i945)
|
||||
CHIPSET(0x29B2, Q35_G, i945)
|
||||
CHIPSET(0x29C2, G33_G, i945)
|
||||
CHIPSET(0x29D2, Q33_G, i945)
|
||||
CHIPSET(0xA011, IGD_GM, i945)
|
||||
CHIPSET(0xA001, IGD_G, i945)
|
27
include/pci_ids/i965_pci_ids.h
Normal file
27
include/pci_ids/i965_pci_ids.h
Normal file
@@ -0,0 +1,27 @@
|
||||
CHIPSET(0x29A2, I965_G, i965)
|
||||
CHIPSET(0x2992, I965_Q, i965)
|
||||
CHIPSET(0x2982, I965_G_1, i965)
|
||||
CHIPSET(0x2972, I946_GZ, i965)
|
||||
CHIPSET(0x2A02, I965_GM, i965)
|
||||
CHIPSET(0x2A12, I965_GME, i965)
|
||||
CHIPSET(0x2A42, GM45_GM, g4x)
|
||||
CHIPSET(0x2E02, IGD_E_G, g4x)
|
||||
CHIPSET(0x2E12, Q45_G, g4x)
|
||||
CHIPSET(0x2E22, G45_G, g4x)
|
||||
CHIPSET(0x2E32, G41_G, g4x)
|
||||
CHIPSET(0x2E42, B43_G, g4x)
|
||||
CHIPSET(0x2E92, B43_G1, g4x)
|
||||
CHIPSET(0x0042, ILD_G, ilk)
|
||||
CHIPSET(0x0046, ILM_G, ilk)
|
||||
CHIPSET(0x0102, SANDYBRIDGE_GT1, snb_gt1)
|
||||
CHIPSET(0x0112, SANDYBRIDGE_GT2, snb_gt2)
|
||||
CHIPSET(0x0122, SANDYBRIDGE_GT2_PLUS, snb_gt2)
|
||||
CHIPSET(0x0106, SANDYBRIDGE_M_GT1, snb_gt1)
|
||||
CHIPSET(0x0116, SANDYBRIDGE_M_GT2, snb_gt2)
|
||||
CHIPSET(0x0126, SANDYBRIDGE_M_GT2_PLUS, snb_gt2)
|
||||
CHIPSET(0x010A, SANDYBRIDGE_S, snb_gt1)
|
||||
CHIPSET(0x0152, IVYBRIDGE_GT1, ivb_gt1)
|
||||
CHIPSET(0x0162, IVYBRIDGE_GT2, ivb_gt2)
|
||||
CHIPSET(0x0156, IVYBRIDGE_M_GT1, ivb_gt1)
|
||||
CHIPSET(0x0166, IVYBRIDGE_M_GT2, ivb_gt2)
|
||||
CHIPSET(0x015a, IVYBRIDGE_S_GT1, ivb_gt1)
|
77
include/pci_ids/pci_id_driver_map.h
Normal file
77
include/pci_ids/pci_id_driver_map.h
Normal file
@@ -0,0 +1,77 @@
|
||||
#ifndef _PCI_ID_DRIVER_MAP_H_
|
||||
#define _PCI_ID_DRIVER_MAP_H_
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#ifndef ARRAY_SIZE
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||
#endif
|
||||
|
||||
#if !defined(DRIVER_MAP_DRI2_ONLY) && !defined(DRIVER_MAP_GALLIUM_ONLY)
|
||||
static const int i810_chip_ids[] = {
|
||||
#define CHIPSET(chip, desc, misc) chip,
|
||||
#include "pci_ids/i810_pci_ids.h"
|
||||
#undef CHIPSET
|
||||
};
|
||||
#endif
|
||||
|
||||
static const int i915_chip_ids[] = {
|
||||
#define CHIPSET(chip, desc, misc) chip,
|
||||
#include "pci_ids/i915_pci_ids.h"
|
||||
#undef CHIPSET
|
||||
};
|
||||
|
||||
static const int i965_chip_ids[] = {
|
||||
#define CHIPSET(chip, desc, misc) chip,
|
||||
#include "pci_ids/i965_pci_ids.h"
|
||||
#undef CHIPSET
|
||||
};
|
||||
|
||||
#ifndef DRIVER_MAP_GALLIUM_ONLY
|
||||
static const int r100_chip_ids[] = {
|
||||
#define CHIPSET(chip, name, family) chip,
|
||||
#include "pci_ids/radeon_pci_ids.h"
|
||||
#undef CHIPSET
|
||||
};
|
||||
|
||||
static const int r200_chip_ids[] = {
|
||||
#define CHIPSET(chip, name, family) chip,
|
||||
#include "pci_ids/r200_pci_ids.h"
|
||||
#undef CHIPSET
|
||||
};
|
||||
#endif
|
||||
|
||||
static const int r300_chip_ids[] = {
|
||||
#define CHIPSET(chip, name, family) chip,
|
||||
#include "pci_ids/r300_pci_ids.h"
|
||||
#undef CHIPSET
|
||||
};
|
||||
|
||||
static const int r600_chip_ids[] = {
|
||||
#define CHIPSET(chip, name, family) chip,
|
||||
#include "pci_ids/r600_pci_ids.h"
|
||||
#undef CHIPSET
|
||||
};
|
||||
|
||||
static const struct {
|
||||
int vendor_id;
|
||||
const char *driver;
|
||||
const int *chip_ids;
|
||||
int num_chips_ids;
|
||||
} driver_map[] = {
|
||||
#if !defined(DRIVER_MAP_DRI2_ONLY) && !defined(DRIVER_MAP_GALLIUM_ONLY)
|
||||
{ 0x8086, "i810", i810_chip_ids, ARRAY_SIZE(i810_chip_ids) },
|
||||
#endif
|
||||
{ 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids) },
|
||||
{ 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids) },
|
||||
#ifndef DRIVER_MAP_GALLIUM_ONLY
|
||||
{ 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids) },
|
||||
{ 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids) },
|
||||
#endif
|
||||
{ 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids) },
|
||||
{ 0x1002, "r600", r600_chip_ids, ARRAY_SIZE(r600_chip_ids) },
|
||||
{ 0x10de, "nouveau", NULL, -1 },
|
||||
{ 0x0000, NULL, NULL, 0 },
|
||||
};
|
||||
|
||||
#endif /* _PCI_ID_DRIVER_MAP_H_ */
|
22
include/pci_ids/r200_pci_ids.h
Normal file
22
include/pci_ids/r200_pci_ids.h
Normal file
@@ -0,0 +1,22 @@
|
||||
CHIPSET(0x5148, R200_QH, R200)
|
||||
CHIPSET(0x514C, R200_QL, R200)
|
||||
CHIPSET(0x514D, R200_QM, R200)
|
||||
CHIPSET(0x4242, R200_BB, R200)
|
||||
|
||||
CHIPSET(0x4966, RV250_If, RV250)
|
||||
CHIPSET(0x4967, RV250_Ig, RV250)
|
||||
CHIPSET(0x4C64, RV250_Ld, RV250)
|
||||
CHIPSET(0x4C66, RV250_Lf, RV250)
|
||||
CHIPSET(0x4C67, RV250_Lg, RV250)
|
||||
|
||||
CHIPSET(0x5960, RV280_5960, RV280)
|
||||
CHIPSET(0x5961, RV280_5961, RV280)
|
||||
CHIPSET(0x5962, RV280_5962, RV280)
|
||||
CHIPSET(0x5964, RV280_5964, RV280)
|
||||
CHIPSET(0x5965, RV280_5965, RV280)
|
||||
CHIPSET(0x5C61, RV280_5C61, RV280)
|
||||
CHIPSET(0x5C63, RV280_5C63, RV280)
|
||||
CHIPSET(0x5834, RS300_5834, RS300)
|
||||
CHIPSET(0x5835, RS300_5835, RS300)
|
||||
CHIPSET(0x7834, RS350_7834, RS300)
|
||||
CHIPSET(0x7835, RS350_7835, RS300)
|
226
include/pci_ids/r300_pci_ids.h
Normal file
226
include/pci_ids/r300_pci_ids.h
Normal file
@@ -0,0 +1,226 @@
|
||||
CHIPSET(0x4144, R300_AD, R300)
|
||||
CHIPSET(0x4145, R300_AE, R300)
|
||||
CHIPSET(0x4146, R300_AF, R300)
|
||||
CHIPSET(0x4147, R300_AG, R300)
|
||||
CHIPSET(0x4E44, R300_ND, R300)
|
||||
CHIPSET(0x4E45, R300_NE, R300)
|
||||
CHIPSET(0x4E46, R300_NF, R300)
|
||||
CHIPSET(0x4E47, R300_NG, R300)
|
||||
|
||||
CHIPSET(0x4E48, R350_NH, R350)
|
||||
CHIPSET(0x4E49, R350_NI, R350)
|
||||
CHIPSET(0x4E4B, R350_NK, R350)
|
||||
CHIPSET(0x4148, R350_AH, R350)
|
||||
CHIPSET(0x4149, R350_AI, R350)
|
||||
CHIPSET(0x414A, R350_AJ, R350)
|
||||
CHIPSET(0x414B, R350_AK, R350)
|
||||
CHIPSET(0x4E4A, R360_NJ, R350)
|
||||
|
||||
CHIPSET(0x4150, RV350_AP, RV350)
|
||||
CHIPSET(0x4151, RV350_AQ, RV350)
|
||||
CHIPSET(0x4152, RV350_AR, RV350)
|
||||
CHIPSET(0x4153, RV350_AS, RV350)
|
||||
CHIPSET(0x4154, RV350_AT, RV350)
|
||||
CHIPSET(0x4155, RV350_AU, RV350)
|
||||
CHIPSET(0x4156, RV350_AV, RV350)
|
||||
CHIPSET(0x4E50, RV350_NP, RV350)
|
||||
CHIPSET(0x4E51, RV350_NQ, RV350)
|
||||
CHIPSET(0x4E52, RV350_NR, RV350)
|
||||
CHIPSET(0x4E53, RV350_NS, RV350)
|
||||
CHIPSET(0x4E54, RV350_NT, RV350)
|
||||
CHIPSET(0x4E56, RV350_NV, RV350)
|
||||
|
||||
CHIPSET(0x5460, RV370_5460, RV370)
|
||||
CHIPSET(0x5462, RV370_5462, RV370)
|
||||
CHIPSET(0x5464, RV370_5464, RV370)
|
||||
CHIPSET(0x5B60, RV370_5B60, RV370)
|
||||
CHIPSET(0x5B62, RV370_5B62, RV370)
|
||||
CHIPSET(0x5B63, RV370_5B63, RV370)
|
||||
CHIPSET(0x5B64, RV370_5B64, RV370)
|
||||
CHIPSET(0x5B65, RV370_5B65, RV370)
|
||||
|
||||
CHIPSET(0x3150, RV380_3150, RV380)
|
||||
CHIPSET(0x3152, RV380_3152, RV380)
|
||||
CHIPSET(0x3154, RV380_3154, RV380)
|
||||
CHIPSET(0x3155, RV380_3155, RV380)
|
||||
CHIPSET(0x3E50, RV380_3E50, RV380)
|
||||
CHIPSET(0x3E54, RV380_3E54, RV380)
|
||||
|
||||
CHIPSET(0x4A48, R420_JH, R420)
|
||||
CHIPSET(0x4A49, R420_JI, R420)
|
||||
CHIPSET(0x4A4A, R420_JJ, R420)
|
||||
CHIPSET(0x4A4B, R420_JK, R420)
|
||||
CHIPSET(0x4A4C, R420_JL, R420)
|
||||
CHIPSET(0x4A4D, R420_JM, R420)
|
||||
CHIPSET(0x4A4E, R420_JN, R420)
|
||||
CHIPSET(0x4A4F, R420_JO, R420)
|
||||
CHIPSET(0x4A50, R420_JP, R420)
|
||||
CHIPSET(0x4A54, R420_JT, R420)
|
||||
|
||||
CHIPSET(0x5548, R423_UH, R423)
|
||||
CHIPSET(0x5549, R423_UI, R423)
|
||||
CHIPSET(0x554A, R423_UJ, R423)
|
||||
CHIPSET(0x554B, R423_UK, R423)
|
||||
CHIPSET(0x5550, R423_5550, R423)
|
||||
CHIPSET(0x5551, R423_UQ, R423)
|
||||
CHIPSET(0x5552, R423_UR, R423)
|
||||
CHIPSET(0x5554, R423_UT, R423)
|
||||
CHIPSET(0x5D57, R423_5D57, R423)
|
||||
|
||||
CHIPSET(0x554C, R430_554C, R430)
|
||||
CHIPSET(0x554D, R430_554D, R430)
|
||||
CHIPSET(0x554E, R430_554E, R430)
|
||||
CHIPSET(0x554F, R430_554F, R430)
|
||||
CHIPSET(0x5D48, R430_5D48, R430)
|
||||
CHIPSET(0x5D49, R430_5D49, R430)
|
||||
CHIPSET(0x5D4A, R430_5D4A, R430)
|
||||
|
||||
CHIPSET(0x5D4C, R480_5D4C, R480)
|
||||
CHIPSET(0x5D4D, R480_5D4D, R480)
|
||||
CHIPSET(0x5D4E, R480_5D4E, R480)
|
||||
CHIPSET(0x5D4F, R480_5D4F, R480)
|
||||
CHIPSET(0x5D50, R480_5D50, R480)
|
||||
CHIPSET(0x5D52, R480_5D52, R480)
|
||||
|
||||
CHIPSET(0x4B48, R481_4B48, R481)
|
||||
CHIPSET(0x4B49, R481_4B49, R481)
|
||||
CHIPSET(0x4B4A, R481_4B4A, R481)
|
||||
CHIPSET(0x4B4B, R481_4B4B, R481)
|
||||
CHIPSET(0x4B4C, R481_4B4C, R481)
|
||||
|
||||
CHIPSET(0x564A, RV410_564A, RV410)
|
||||
CHIPSET(0x564B, RV410_564B, RV410)
|
||||
CHIPSET(0x564F, RV410_564F, RV410)
|
||||
CHIPSET(0x5652, RV410_5652, RV410)
|
||||
CHIPSET(0x5653, RV410_5653, RV410)
|
||||
CHIPSET(0x5657, RV410_5657, RV410)
|
||||
CHIPSET(0x5E48, RV410_5E48, RV410)
|
||||
CHIPSET(0x5E4A, RV410_5E4A, RV410)
|
||||
CHIPSET(0x5E4B, RV410_5E4B, RV410)
|
||||
CHIPSET(0x5E4C, RV410_5E4C, RV410)
|
||||
CHIPSET(0x5E4D, RV410_5E4D, RV410)
|
||||
CHIPSET(0x5E4F, RV410_5E4F, RV410)
|
||||
|
||||
CHIPSET(0x5A41, RS400_5A41, RS400)
|
||||
CHIPSET(0x5A42, RS400_5A42, RS400)
|
||||
|
||||
CHIPSET(0x5A61, RC410_5A61, RC410)
|
||||
CHIPSET(0x5A62, RC410_5A62, RC410)
|
||||
|
||||
CHIPSET(0x5954, RS480_5954, RS480)
|
||||
CHIPSET(0x5955, RS480_5955, RS480)
|
||||
CHIPSET(0x5974, RS482_5974, RS480)
|
||||
CHIPSET(0x5975, RS482_5975, RS480)
|
||||
|
||||
CHIPSET(0x7100, R520_7100, R520)
|
||||
CHIPSET(0x7101, R520_7101, R520)
|
||||
CHIPSET(0x7102, R520_7102, R520)
|
||||
CHIPSET(0x7103, R520_7103, R520)
|
||||
CHIPSET(0x7104, R520_7104, R520)
|
||||
CHIPSET(0x7105, R520_7105, R520)
|
||||
CHIPSET(0x7106, R520_7106, R520)
|
||||
CHIPSET(0x7108, R520_7108, R520)
|
||||
CHIPSET(0x7109, R520_7109, R520)
|
||||
CHIPSET(0x710A, R520_710A, R520)
|
||||
CHIPSET(0x710B, R520_710B, R520)
|
||||
CHIPSET(0x710C, R520_710C, R520)
|
||||
CHIPSET(0x710E, R520_710E, R520)
|
||||
CHIPSET(0x710F, R520_710F, R520)
|
||||
|
||||
CHIPSET(0x7140, RV515_7140, RV515)
|
||||
CHIPSET(0x7141, RV515_7141, RV515)
|
||||
CHIPSET(0x7142, RV515_7142, RV515)
|
||||
CHIPSET(0x7143, RV515_7143, RV515)
|
||||
CHIPSET(0x7144, RV515_7144, RV515)
|
||||
CHIPSET(0x7145, RV515_7145, RV515)
|
||||
CHIPSET(0x7146, RV515_7146, RV515)
|
||||
CHIPSET(0x7147, RV515_7147, RV515)
|
||||
CHIPSET(0x7149, RV515_7149, RV515)
|
||||
CHIPSET(0x714A, RV515_714A, RV515)
|
||||
CHIPSET(0x714B, RV515_714B, RV515)
|
||||
CHIPSET(0x714C, RV515_714C, RV515)
|
||||
CHIPSET(0x714D, RV515_714D, RV515)
|
||||
CHIPSET(0x714E, RV515_714E, RV515)
|
||||
CHIPSET(0x714F, RV515_714F, RV515)
|
||||
CHIPSET(0x7151, RV515_7151, RV515)
|
||||
CHIPSET(0x7152, RV515_7152, RV515)
|
||||
CHIPSET(0x7153, RV515_7153, RV515)
|
||||
CHIPSET(0x715E, RV515_715E, RV515)
|
||||
CHIPSET(0x715F, RV515_715F, RV515)
|
||||
CHIPSET(0x7180, RV515_7180, RV515)
|
||||
CHIPSET(0x7181, RV515_7181, RV515)
|
||||
CHIPSET(0x7183, RV515_7183, RV515)
|
||||
CHIPSET(0x7186, RV515_7186, RV515)
|
||||
CHIPSET(0x7187, RV515_7187, RV515)
|
||||
CHIPSET(0x7188, RV515_7188, RV515)
|
||||
CHIPSET(0x718A, RV515_718A, RV515)
|
||||
CHIPSET(0x718B, RV515_718B, RV515)
|
||||
CHIPSET(0x718C, RV515_718C, RV515)
|
||||
CHIPSET(0x718D, RV515_718D, RV515)
|
||||
CHIPSET(0x718F, RV515_718F, RV515)
|
||||
CHIPSET(0x7193, RV515_7193, RV515)
|
||||
CHIPSET(0x7196, RV515_7196, RV515)
|
||||
CHIPSET(0x719B, RV515_719B, RV515)
|
||||
CHIPSET(0x719F, RV515_719F, RV515)
|
||||
CHIPSET(0x7200, RV515_7200, RV515)
|
||||
CHIPSET(0x7210, RV515_7210, RV515)
|
||||
CHIPSET(0x7211, RV515_7211, RV515)
|
||||
|
||||
CHIPSET(0x71C0, RV530_71C0, RV530)
|
||||
CHIPSET(0x71C1, RV530_71C1, RV530)
|
||||
CHIPSET(0x71C2, RV530_71C2, RV530)
|
||||
CHIPSET(0x71C3, RV530_71C3, RV530)
|
||||
CHIPSET(0x71C4, RV530_71C4, RV530)
|
||||
CHIPSET(0x71C5, RV530_71C5, RV530)
|
||||
CHIPSET(0x71C6, RV530_71C6, RV530)
|
||||
CHIPSET(0x71C7, RV530_71C7, RV530)
|
||||
CHIPSET(0x71CD, RV530_71CD, RV530)
|
||||
CHIPSET(0x71CE, RV530_71CE, RV530)
|
||||
CHIPSET(0x71D2, RV530_71D2, RV530)
|
||||
CHIPSET(0x71D4, RV530_71D4, RV530)
|
||||
CHIPSET(0x71D5, RV530_71D5, RV530)
|
||||
CHIPSET(0x71D6, RV530_71D6, RV530)
|
||||
CHIPSET(0x71DA, RV530_71DA, RV530)
|
||||
CHIPSET(0x71DE, RV530_71DE, RV530)
|
||||
|
||||
CHIPSET(0x7281, RV560_7281, RV560)
|
||||
CHIPSET(0x7283, RV560_7283, RV560)
|
||||
CHIPSET(0x7287, RV560_7287, RV560)
|
||||
CHIPSET(0x7290, RV560_7290, RV560)
|
||||
CHIPSET(0x7291, RV560_7291, RV560)
|
||||
CHIPSET(0x7293, RV560_7293, RV560)
|
||||
CHIPSET(0x7297, RV560_7297, RV560)
|
||||
|
||||
CHIPSET(0x7280, RV570_7280, RV570)
|
||||
CHIPSET(0x7288, RV570_7288, RV570)
|
||||
CHIPSET(0x7289, RV570_7289, RV570)
|
||||
CHIPSET(0x728B, RV570_728B, RV570)
|
||||
CHIPSET(0x728C, RV570_728C, RV570)
|
||||
|
||||
CHIPSET(0x7240, R580_7240, R580)
|
||||
CHIPSET(0x7243, R580_7243, R580)
|
||||
CHIPSET(0x7244, R580_7244, R580)
|
||||
CHIPSET(0x7245, R580_7245, R580)
|
||||
CHIPSET(0x7246, R580_7246, R580)
|
||||
CHIPSET(0x7247, R580_7247, R580)
|
||||
CHIPSET(0x7248, R580_7248, R580)
|
||||
CHIPSET(0x7249, R580_7249, R580)
|
||||
CHIPSET(0x724A, R580_724A, R580)
|
||||
CHIPSET(0x724B, R580_724B, R580)
|
||||
CHIPSET(0x724C, R580_724C, R580)
|
||||
CHIPSET(0x724D, R580_724D, R580)
|
||||
CHIPSET(0x724E, R580_724E, R580)
|
||||
CHIPSET(0x724F, R580_724F, R580)
|
||||
CHIPSET(0x7284, R580_7284, R580)
|
||||
|
||||
CHIPSET(0x793F, RS600_793F, RS600)
|
||||
CHIPSET(0x7941, RS600_7941, RS600)
|
||||
CHIPSET(0x7942, RS600_7942, RS600)
|
||||
|
||||
CHIPSET(0x791E, RS690_791E, RS690)
|
||||
CHIPSET(0x791F, RS690_791F, RS690)
|
||||
|
||||
CHIPSET(0x796C, RS740_796C, RS740)
|
||||
CHIPSET(0x796D, RS740_796D, RS740)
|
||||
CHIPSET(0x796E, RS740_796E, RS740)
|
||||
CHIPSET(0x796F, RS740_796F, RS740)
|
265
include/pci_ids/r600_pci_ids.h
Normal file
265
include/pci_ids/r600_pci_ids.h
Normal file
@@ -0,0 +1,265 @@
|
||||
CHIPSET(0x9400, R600_9400, R600)
|
||||
CHIPSET(0x9401, R600_9401, R600)
|
||||
CHIPSET(0x9402, R600_9402, R600)
|
||||
CHIPSET(0x9403, R600_9403, R600)
|
||||
CHIPSET(0x9405, R600_9405, R600)
|
||||
CHIPSET(0x940A, R600_940A, R600)
|
||||
CHIPSET(0x940B, R600_940B, R600)
|
||||
CHIPSET(0x940F, R600_940F, R600)
|
||||
|
||||
CHIPSET(0x94C0, RV610_94C0, RV610)
|
||||
CHIPSET(0x94C1, RV610_94C1, RV610)
|
||||
CHIPSET(0x94C3, RV610_94C3, RV610)
|
||||
CHIPSET(0x94C4, RV610_94C4, RV610)
|
||||
CHIPSET(0x94C5, RV610_94C5, RV610)
|
||||
CHIPSET(0x94C6, RV610_94C6, RV610)
|
||||
CHIPSET(0x94C7, RV610_94C7, RV610)
|
||||
CHIPSET(0x94C8, RV610_94C8, RV610)
|
||||
CHIPSET(0x94C9, RV610_94C9, RV610)
|
||||
CHIPSET(0x94CB, RV610_94CB, RV610)
|
||||
CHIPSET(0x94CC, RV610_94CC, RV610)
|
||||
CHIPSET(0x94CD, RV610_94CD, RV610)
|
||||
|
||||
CHIPSET(0x9580, RV630_9580, RV630)
|
||||
CHIPSET(0x9581, RV630_9581, RV630)
|
||||
CHIPSET(0x9583, RV630_9583, RV630)
|
||||
CHIPSET(0x9586, RV630_9586, RV630)
|
||||
CHIPSET(0x9587, RV630_9587, RV630)
|
||||
CHIPSET(0x9588, RV630_9588, RV630)
|
||||
CHIPSET(0x9589, RV630_9589, RV630)
|
||||
CHIPSET(0x958A, RV630_958A, RV630)
|
||||
CHIPSET(0x958B, RV630_958B, RV630)
|
||||
CHIPSET(0x958C, RV630_958C, RV630)
|
||||
CHIPSET(0x958D, RV630_958D, RV630)
|
||||
CHIPSET(0x958E, RV630_958E, RV630)
|
||||
CHIPSET(0x958F, RV630_958F, RV630)
|
||||
|
||||
CHIPSET(0x9500, RV670_9500, RV670)
|
||||
CHIPSET(0x9501, RV670_9501, RV670)
|
||||
CHIPSET(0x9504, RV670_9504, RV670)
|
||||
CHIPSET(0x9505, RV670_9505, RV670)
|
||||
CHIPSET(0x9506, RV670_9506, RV670)
|
||||
CHIPSET(0x9507, RV670_9507, RV670)
|
||||
CHIPSET(0x9508, RV670_9508, RV670)
|
||||
CHIPSET(0x9509, RV670_9509, RV670)
|
||||
CHIPSET(0x950F, RV670_950F, RV670)
|
||||
CHIPSET(0x9511, RV670_9511, RV670)
|
||||
CHIPSET(0x9515, RV670_9515, RV670)
|
||||
CHIPSET(0x9517, RV670_9517, RV670)
|
||||
CHIPSET(0x9519, RV670_9519, RV670)
|
||||
|
||||
CHIPSET(0x95C0, RV620_95C0, RV620)
|
||||
CHIPSET(0x95C2, RV620_95C2, RV620)
|
||||
CHIPSET(0x95C4, RV620_95C4, RV620)
|
||||
CHIPSET(0x95C5, RV620_95C5, RV620)
|
||||
CHIPSET(0x95C6, RV620_95C6, RV620)
|
||||
CHIPSET(0x95C7, RV620_95C7, RV620)
|
||||
CHIPSET(0x95C9, RV620_95C9, RV620)
|
||||
CHIPSET(0x95CC, RV620_95CC, RV620)
|
||||
CHIPSET(0x95CD, RV620_95CD, RV620)
|
||||
CHIPSET(0x95CE, RV620_95CE, RV620)
|
||||
CHIPSET(0x95CF, RV620_95CF, RV620)
|
||||
|
||||
CHIPSET(0x9590, RV635_9590, RV635)
|
||||
CHIPSET(0x9591, RV635_9591, RV635)
|
||||
CHIPSET(0x9593, RV635_9593, RV635)
|
||||
CHIPSET(0x9595, RV635_9595, RV635)
|
||||
CHIPSET(0x9596, RV635_9596, RV635)
|
||||
CHIPSET(0x9597, RV635_9597, RV635)
|
||||
CHIPSET(0x9598, RV635_9598, RV635)
|
||||
CHIPSET(0x9599, RV635_9599, RV635)
|
||||
CHIPSET(0x959B, RV635_959B, RV635)
|
||||
|
||||
CHIPSET(0x9610, RS780_9610, RS780)
|
||||
CHIPSET(0x9611, RS780_9611, RS780)
|
||||
CHIPSET(0x9612, RS780_9612, RS780)
|
||||
CHIPSET(0x9613, RS780_9613, RS780)
|
||||
CHIPSET(0x9614, RS780_9614, RS780)
|
||||
CHIPSET(0x9615, RS780_9615, RS780)
|
||||
CHIPSET(0x9616, RS780_9616, RS780)
|
||||
|
||||
CHIPSET(0x9710, RS880_9710, RS880)
|
||||
CHIPSET(0x9711, RS880_9711, RS880)
|
||||
CHIPSET(0x9712, RS880_9712, RS880)
|
||||
CHIPSET(0x9713, RS880_9713, RS880)
|
||||
CHIPSET(0x9714, RS880_9714, RS880)
|
||||
CHIPSET(0x9715, RS880_9715, RS880)
|
||||
|
||||
CHIPSET(0x9440, RV770_9440, RV770)
|
||||
CHIPSET(0x9441, RV770_9441, RV770)
|
||||
CHIPSET(0x9442, RV770_9442, RV770)
|
||||
CHIPSET(0x9443, RV770_9443, RV770)
|
||||
CHIPSET(0x9444, RV770_9444, RV770)
|
||||
CHIPSET(0x9446, RV770_9446, RV770)
|
||||
CHIPSET(0x944A, RV770_944A, RV770)
|
||||
CHIPSET(0x944B, RV770_944B, RV770)
|
||||
CHIPSET(0x944C, RV770_944C, RV770)
|
||||
CHIPSET(0x944E, RV770_944E, RV770)
|
||||
CHIPSET(0x9450, RV770_9450, RV770)
|
||||
CHIPSET(0x9452, RV770_9452, RV770)
|
||||
CHIPSET(0x9456, RV770_9456, RV770)
|
||||
CHIPSET(0x945A, RV770_945A, RV770)
|
||||
CHIPSET(0x945B, RV770_945B, RV770)
|
||||
CHIPSET(0x945E, RV770_945E, RV770)
|
||||
CHIPSET(0x9460, RV790_9460, RV770)
|
||||
CHIPSET(0x9462, RV790_9462, RV770)
|
||||
CHIPSET(0x946A, RV770_946A, RV770)
|
||||
CHIPSET(0x946B, RV770_946B, RV770)
|
||||
CHIPSET(0x947A, RV770_947A, RV770)
|
||||
CHIPSET(0x947B, RV770_947B, RV770)
|
||||
|
||||
CHIPSET(0x9480, RV730_9480, RV730)
|
||||
CHIPSET(0x9487, RV730_9487, RV730)
|
||||
CHIPSET(0x9488, RV730_9488, RV730)
|
||||
CHIPSET(0x9489, RV730_9489, RV730)
|
||||
CHIPSET(0x948A, RV730_948A, RV730)
|
||||
CHIPSET(0x948F, RV730_948F, RV730)
|
||||
CHIPSET(0x9490, RV730_9490, RV730)
|
||||
CHIPSET(0x9491, RV730_9491, RV730)
|
||||
CHIPSET(0x9495, RV730_9495, RV730)
|
||||
CHIPSET(0x9498, RV730_9498, RV730)
|
||||
CHIPSET(0x949C, RV730_949C, RV730)
|
||||
CHIPSET(0x949E, RV730_949E, RV730)
|
||||
CHIPSET(0x949F, RV730_949F, RV730)
|
||||
|
||||
CHIPSET(0x9540, RV710_9540, RV710)
|
||||
CHIPSET(0x9541, RV710_9541, RV710)
|
||||
CHIPSET(0x9542, RV710_9542, RV710)
|
||||
CHIPSET(0x954E, RV710_954E, RV710)
|
||||
CHIPSET(0x954F, RV710_954F, RV710)
|
||||
CHIPSET(0x9552, RV710_9552, RV710)
|
||||
CHIPSET(0x9553, RV710_9553, RV710)
|
||||
CHIPSET(0x9555, RV710_9555, RV710)
|
||||
CHIPSET(0x9557, RV710_9557, RV710)
|
||||
CHIPSET(0x955F, RV710_955F, RV710)
|
||||
|
||||
CHIPSET(0x94A0, RV740_94A0, RV740)
|
||||
CHIPSET(0x94A1, RV740_94A1, RV740)
|
||||
CHIPSET(0x94A3, RV740_94A3, RV740)
|
||||
CHIPSET(0x94B1, RV740_94B1, RV740)
|
||||
CHIPSET(0x94B3, RV740_94B3, RV740)
|
||||
CHIPSET(0x94B4, RV740_94B4, RV740)
|
||||
CHIPSET(0x94B5, RV740_94B5, RV740)
|
||||
CHIPSET(0x94B9, RV740_94B9, RV740)
|
||||
|
||||
CHIPSET(0x68E0, CEDAR_68E0, CEDAR)
|
||||
CHIPSET(0x68E1, CEDAR_68E1, CEDAR)
|
||||
CHIPSET(0x68E4, CEDAR_68E4, CEDAR)
|
||||
CHIPSET(0x68E5, CEDAR_68E5, CEDAR)
|
||||
CHIPSET(0x68E8, CEDAR_68E8, CEDAR)
|
||||
CHIPSET(0x68E9, CEDAR_68E9, CEDAR)
|
||||
CHIPSET(0x68F1, CEDAR_68F1, CEDAR)
|
||||
CHIPSET(0x68F2, CEDAR_68F2, CEDAR)
|
||||
CHIPSET(0x68F8, CEDAR_68F8, CEDAR)
|
||||
CHIPSET(0x68F9, CEDAR_68F9, CEDAR)
|
||||
CHIPSET(0x68FE, CEDAR_68FE, CEDAR)
|
||||
|
||||
CHIPSET(0x68C0, REDWOOD_68C0, REDWOOD)
|
||||
CHIPSET(0x68C1, REDWOOD_68C1, REDWOOD)
|
||||
CHIPSET(0x68C8, REDWOOD_68C8, REDWOOD)
|
||||
CHIPSET(0x68C9, REDWOOD_68C9, REDWOOD)
|
||||
CHIPSET(0x68D8, REDWOOD_68D8, REDWOOD)
|
||||
CHIPSET(0x68D9, REDWOOD_68D9, REDWOOD)
|
||||
CHIPSET(0x68DA, REDWOOD_68DA, REDWOOD)
|
||||
CHIPSET(0x68DE, REDWOOD_68DE, REDWOOD)
|
||||
|
||||
CHIPSET(0x68A0, JUNIPER_68A0, JUNIPER)
|
||||
CHIPSET(0x68A1, JUNIPER_68A1, JUNIPER)
|
||||
CHIPSET(0x68A8, JUNIPER_68A8, JUNIPER)
|
||||
CHIPSET(0x68A9, JUNIPER_68A9, JUNIPER)
|
||||
CHIPSET(0x68B0, JUNIPER_68B0, JUNIPER)
|
||||
CHIPSET(0x68B8, JUNIPER_68B8, JUNIPER)
|
||||
CHIPSET(0x68B9, JUNIPER_68B9, JUNIPER)
|
||||
CHIPSET(0x68BA, JUNIPER_68BA, JUNIPER)
|
||||
CHIPSET(0x68BE, JUNIPER_68BE, JUNIPER)
|
||||
CHIPSET(0x68BF, JUNIPER_68BF, JUNIPER)
|
||||
|
||||
CHIPSET(0x6880, CYPRESS_6880, CYPRESS)
|
||||
CHIPSET(0x6888, CYPRESS_6888, CYPRESS)
|
||||
CHIPSET(0x6889, CYPRESS_6889, CYPRESS)
|
||||
CHIPSET(0x688A, CYPRESS_688A, CYPRESS)
|
||||
CHIPSET(0x6898, CYPRESS_6898, CYPRESS)
|
||||
CHIPSET(0x6899, CYPRESS_6899, CYPRESS)
|
||||
CHIPSET(0x689B, CYPRESS_689B, CYPRESS)
|
||||
CHIPSET(0x689E, CYPRESS_689E, CYPRESS)
|
||||
|
||||
CHIPSET(0x689C, HEMLOCK_689C, HEMLOCK)
|
||||
CHIPSET(0x689D, HEMLOCK_689D, HEMLOCK)
|
||||
|
||||
CHIPSET(0x9802, PALM_9802, PALM)
|
||||
CHIPSET(0x9803, PALM_9803, PALM)
|
||||
CHIPSET(0x9804, PALM_9804, PALM)
|
||||
CHIPSET(0x9805, PALM_9805, PALM)
|
||||
CHIPSET(0x9806, PALM_9806, PALM)
|
||||
CHIPSET(0x9807, PALM_9807, PALM)
|
||||
|
||||
CHIPSET(0x9640, SUMO_9640, SUMO)
|
||||
CHIPSET(0x9641, SUMO_9641, SUMO)
|
||||
CHIPSET(0x9642, SUMO2_9642, SUMO2)
|
||||
CHIPSET(0x9643, SUMO2_9643, SUMO2)
|
||||
CHIPSET(0x9644, SUMO2_9644, SUMO2)
|
||||
CHIPSET(0x9645, SUMO2_9645, SUMO2)
|
||||
CHIPSET(0x9647, SUMO_9647, SUMO)
|
||||
CHIPSET(0x9648, SUMO_9648, SUMO)
|
||||
CHIPSET(0x964a, SUMO_964A, SUMO)
|
||||
CHIPSET(0x964e, SUMO_964E, SUMO)
|
||||
CHIPSET(0x964f, SUMO_964F, SUMO)
|
||||
|
||||
#ifndef RADEON_CLASSIC
|
||||
CHIPSET(0x6700, CAYMAN_6700, CAYMAN)
|
||||
CHIPSET(0x6701, CAYMAN_6701, CAYMAN)
|
||||
CHIPSET(0x6702, CAYMAN_6702, CAYMAN)
|
||||
CHIPSET(0x6703, CAYMAN_6703, CAYMAN)
|
||||
CHIPSET(0x6704, CAYMAN_6704, CAYMAN)
|
||||
CHIPSET(0x6705, CAYMAN_6705, CAYMAN)
|
||||
CHIPSET(0x6706, CAYMAN_6706, CAYMAN)
|
||||
CHIPSET(0x6707, CAYMAN_6707, CAYMAN)
|
||||
CHIPSET(0x6708, CAYMAN_6708, CAYMAN)
|
||||
CHIPSET(0x6709, CAYMAN_6709, CAYMAN)
|
||||
CHIPSET(0x6718, CAYMAN_6718, CAYMAN)
|
||||
CHIPSET(0x6719, CAYMAN_6719, CAYMAN)
|
||||
CHIPSET(0x671C, CAYMAN_671C, CAYMAN)
|
||||
CHIPSET(0x671D, CAYMAN_671D, CAYMAN)
|
||||
CHIPSET(0x671F, CAYMAN_671F, CAYMAN)
|
||||
#endif
|
||||
|
||||
CHIPSET(0x6720, BARTS_6720, BARTS)
|
||||
CHIPSET(0x6721, BARTS_6721, BARTS)
|
||||
CHIPSET(0x6722, BARTS_6722, BARTS)
|
||||
CHIPSET(0x6723, BARTS_6723, BARTS)
|
||||
CHIPSET(0x6724, BARTS_6724, BARTS)
|
||||
CHIPSET(0x6725, BARTS_6725, BARTS)
|
||||
CHIPSET(0x6726, BARTS_6726, BARTS)
|
||||
CHIPSET(0x6727, BARTS_6727, BARTS)
|
||||
CHIPSET(0x6728, BARTS_6728, BARTS)
|
||||
CHIPSET(0x6729, BARTS_6729, BARTS)
|
||||
CHIPSET(0x6738, BARTS_6738, BARTS)
|
||||
CHIPSET(0x6739, BARTS_6739, BARTS)
|
||||
CHIPSET(0x673E, BARTS_673E, BARTS)
|
||||
CHIPSET(0x6740, TURKS_6740, TURKS)
|
||||
CHIPSET(0x6741, TURKS_6741, TURKS)
|
||||
CHIPSET(0x6742, TURKS_6742, TURKS)
|
||||
CHIPSET(0x6743, TURKS_6743, TURKS)
|
||||
CHIPSET(0x6744, TURKS_6744, TURKS)
|
||||
CHIPSET(0x6745, TURKS_6745, TURKS)
|
||||
CHIPSET(0x6746, TURKS_6746, TURKS)
|
||||
CHIPSET(0x6747, TURKS_6747, TURKS)
|
||||
CHIPSET(0x6748, TURKS_6748, TURKS)
|
||||
CHIPSET(0x6749, TURKS_6749, TURKS)
|
||||
CHIPSET(0x6750, TURKS_6750, TURKS)
|
||||
CHIPSET(0x6758, TURKS_6758, TURKS)
|
||||
CHIPSET(0x6759, TURKS_6759, TURKS)
|
||||
CHIPSET(0x675F, TURKS_675F, TURKS)
|
||||
|
||||
CHIPSET(0x6760, CAICOS_6760, CAICOS)
|
||||
CHIPSET(0x6761, CAICOS_6761, CAICOS)
|
||||
CHIPSET(0x6762, CAICOS_6762, CAICOS)
|
||||
CHIPSET(0x6763, CAICOS_6763, CAICOS)
|
||||
CHIPSET(0x6764, CAICOS_6764, CAICOS)
|
||||
CHIPSET(0x6765, CAICOS_6765, CAICOS)
|
||||
CHIPSET(0x6766, CAICOS_6766, CAICOS)
|
||||
CHIPSET(0x6767, CAICOS_6767, CAICOS)
|
||||
CHIPSET(0x6768, CAICOS_6768, CAICOS)
|
||||
CHIPSET(0x6770, CAICOS_6770, CAICOS)
|
||||
CHIPSET(0x6778, CAICOS_6778, CAICOS)
|
||||
CHIPSET(0x6779, CAICOS_6779, CAICOS)
|
23
include/pci_ids/radeon_pci_ids.h
Normal file
23
include/pci_ids/radeon_pci_ids.h
Normal file
@@ -0,0 +1,23 @@
|
||||
CHIPSET(0x4C57, RADEON_LW, RV200)
|
||||
CHIPSET(0x4C58, RADEON_LX, RV200)
|
||||
CHIPSET(0x4C59, RADEON_LY, RV100)
|
||||
CHIPSET(0x4C5A, RADEON_LZ, RV100)
|
||||
CHIPSET(0x5144, RADEON_QD, R100)
|
||||
CHIPSET(0x5145, RADEON_QE, R100)
|
||||
CHIPSET(0x5146, RADEON_QF, R100)
|
||||
CHIPSET(0x5147, RADEON_QG, R100)
|
||||
CHIPSET(0x5159, RADEON_QY, RV100)
|
||||
CHIPSET(0x515A, RADEON_QZ, RV100)
|
||||
|
||||
CHIPSET(0x5157, RV200_QW, RV200)
|
||||
CHIPSET(0x5158, RV200_QX, RV200)
|
||||
|
||||
CHIPSET(0x515E, RN50_515E, UNKNOWN)
|
||||
CHIPSET(0x5969, RN50_5969, UNKNOWN)
|
||||
|
||||
CHIPSET(0x4136, RS100_4136, RS100)
|
||||
CHIPSET(0x4336, RS100_4336, RS100)
|
||||
CHIPSET(0x4137, RS200_4137, RS200)
|
||||
CHIPSET(0x4337, RS200_4337, RS200)
|
||||
CHIPSET(0x4237, RS250_4237, RS200)
|
||||
CHIPSET(0x4437, RS250_4437, RS200)
|
@@ -59,6 +59,7 @@ def quietCommandLines(env):
|
||||
env['LEXCOMSTR'] = " Generating $TARGET ..."
|
||||
env['YACCCOMSTR'] = " Generating $TARGET ..."
|
||||
env['CODEGENCOMSTR'] = " Generating $TARGET ..."
|
||||
env['INSTALLSTR'] = " Installing $TARGET ..."
|
||||
|
||||
|
||||
def createConvenienceLibBuilder(env):
|
||||
@@ -156,7 +157,8 @@ def createCodeGenerateMethod(env):
|
||||
def generate(env):
|
||||
"""Common environment generation code"""
|
||||
|
||||
if env.get('quiet', True):
|
||||
verbose = env.get('verbose', False) or not env.get('quiet', True)
|
||||
if not verbose:
|
||||
quietCommandLines(env)
|
||||
|
||||
# Custom builders and methods
|
||||
|
@@ -74,7 +74,7 @@ def install_shared_library(env, sources, version = ()):
|
||||
while len(version):
|
||||
version = version[:-1]
|
||||
target_name = '.'.join((str(source),) + version)
|
||||
action = SCons.Action.Action(symlink, "$TARGET -> $SOURCE")
|
||||
action = SCons.Action.Action(symlink, " Symlinking $TARGET ...")
|
||||
last = env.Command(os.path.join(target_dir, target_name), last, action)
|
||||
targets += last
|
||||
return targets
|
||||
@@ -247,6 +247,8 @@ def generate(env):
|
||||
# configuration. See also http://www.scons.org/wiki/AdvancedBuildExample
|
||||
build_topdir = 'build'
|
||||
build_subdir = env['platform']
|
||||
if env['embedded']:
|
||||
build_subdir = 'embedded-' + build_subdir
|
||||
if env['machine'] != 'generic':
|
||||
build_subdir += '-' + env['machine']
|
||||
if env['build'] != 'release':
|
||||
@@ -277,6 +279,18 @@ def generate(env):
|
||||
cppdefines += ['NDEBUG']
|
||||
if env['build'] == 'profile':
|
||||
cppdefines += ['PROFILE']
|
||||
if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
|
||||
cppdefines += [
|
||||
'_POSIX_SOURCE',
|
||||
('_POSIX_C_SOURCE', '199309L'),
|
||||
'_SVID_SOURCE',
|
||||
'_BSD_SOURCE',
|
||||
'_GNU_SOURCE',
|
||||
'PTHREADS',
|
||||
'HAVE_POSIX_MEMALIGN',
|
||||
]
|
||||
if env['platform'] == 'darwin':
|
||||
cppdefines += ['_DARWIN_C_SOURCE']
|
||||
if platform == 'windows':
|
||||
cppdefines += [
|
||||
'WIN32',
|
||||
@@ -349,8 +363,8 @@ def generate(env):
|
||||
if platform == 'wince':
|
||||
cppdefines += ['PIPE_SUBSYSTEM_WINDOWS_CE']
|
||||
cppdefines += ['PIPE_SUBSYSTEM_WINDOWS_CE_OGL']
|
||||
if platform == 'embedded':
|
||||
cppdefines += ['PIPE_OS_EMBEDDED']
|
||||
if env['embedded']:
|
||||
cppdefines += ['PIPE_SUBSYSTEM_EMBEDDED']
|
||||
env.Append(CPPDEFINES = cppdefines)
|
||||
|
||||
# C compiler options
|
||||
@@ -403,6 +417,8 @@ def generate(env):
|
||||
ccflags += ['-m64']
|
||||
if platform == 'darwin':
|
||||
ccflags += ['-fno-common']
|
||||
if env['platform'] != 'windows':
|
||||
ccflags += ['-fvisibility=hidden']
|
||||
# See also:
|
||||
# - http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
|
||||
ccflags += [
|
||||
@@ -595,7 +611,10 @@ def generate(env):
|
||||
env['LINK'] = env['CXX']
|
||||
|
||||
# Default libs
|
||||
env.Append(LIBS = [])
|
||||
libs = []
|
||||
if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
|
||||
libs += ['m', 'pthread', 'dl']
|
||||
env.Append(LIBS = libs)
|
||||
|
||||
# Load tools
|
||||
env.Tool('lex')
|
||||
|
@@ -23,6 +23,7 @@ SConscript('mapi/vgapi/SConscript')
|
||||
|
||||
if env['platform'] != 'embedded':
|
||||
SConscript('egl/main/SConscript')
|
||||
SConscript('glu/sgi/SConscript')
|
||||
SConscript('glut/glx/SConscript')
|
||||
|
||||
if env['gles']:
|
||||
|
@@ -4,18 +4,19 @@ TOP = ../../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
EGL_DRIVER = egl_dri2
|
||||
EGL_SOURCES = egl_dri2.c platform_x11.c platform_drm.c
|
||||
EGL_SOURCES = egl_dri2.c common.c
|
||||
|
||||
EGL_INCLUDES = \
|
||||
-I$(TOP)/include \
|
||||
-I$(TOP)/src/egl/main \
|
||||
-I$(TOP)/src/mapi \
|
||||
-I$(TOP)/src/gbm/main \
|
||||
-I$(TOP)/src/gbm/backends/dri \
|
||||
-DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" \
|
||||
$(XCB_DRI2_CFLAGS) \
|
||||
$(LIBUDEV_CFLAGS) \
|
||||
$(LIBDRM_CFLAGS)
|
||||
|
||||
EGL_LIBS = $(XCB_DRI2_LIBS) $(LIBUDEV_LIBS) $(DLOPEN_LIBS) $(LIBDRM_LIB)
|
||||
EGL_LIBS = $(LIBUDEV_LIBS) $(DLOPEN_LIBS) $(LIBDRM_LIB)
|
||||
|
||||
EGL_CFLAGS = -D_EGL_MAIN=_eglBuiltInDriverDRI2
|
||||
EGL_BUILTIN = true
|
||||
@@ -24,6 +25,17 @@ ifeq ($(SHARED_GLAPI),1)
|
||||
EGL_CFLAGS += -DHAVE_SHARED_GLAPI
|
||||
endif
|
||||
|
||||
ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
|
||||
EGL_SOURCES += platform_x11.c
|
||||
EGL_INCLUDES += -DHAVE_X11_PLATFORM $(XCB_DRI2_CFLAGS)
|
||||
EGL_LIBS += $(XCB_DRI2_LIBS)
|
||||
endif
|
||||
|
||||
ifneq ($(findstring drm, $(EGL_PLATFORMS)),)
|
||||
EGL_SOURCES += platform_drm.c
|
||||
EGL_INCLUDES += -DHAVE_DRM_PLATFORM
|
||||
endif
|
||||
|
||||
ifneq ($(findstring wayland, $(EGL_PLATFORMS)),)
|
||||
EGL_SOURCES += platform_wayland.c
|
||||
EGL_INCLUDES += -DHAVE_WAYLAND_PLATFORM $(WAYLAND_CFLAGS) \
|
||||
|
144
src/egl/drivers/dri2/common.c
Normal file
144
src/egl/drivers/dri2/common.c
Normal file
@@ -0,0 +1,144 @@
|
||||
/*
|
||||
* Copyright © 2011 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 (including the next
|
||||
* paragraph) 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.
|
||||
*
|
||||
* Authors:
|
||||
* Kristian Høgsberg <krh@bitplanet.net>
|
||||
* Benjamin Franzke <benjaminfranzke@googlemail.com>
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "egl_dri2.h"
|
||||
|
||||
#ifdef HAVE_LIBUDEV
|
||||
|
||||
#define DRIVER_MAP_DRI2_ONLY
|
||||
#include "pci_ids/pci_id_driver_map.h"
|
||||
|
||||
#include <libudev.h>
|
||||
|
||||
static struct udev_device *
|
||||
dri2_udev_device_new_from_fd(struct udev *udev, int fd)
|
||||
{
|
||||
struct udev_device *device;
|
||||
struct stat buf;
|
||||
|
||||
if (fstat(fd, &buf) < 0) {
|
||||
_eglLog(_EGL_WARNING, "EGL-DRI2: failed to stat fd %d", fd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
device = udev_device_new_from_devnum(udev, 'c', buf.st_rdev);
|
||||
if (device == NULL) {
|
||||
_eglLog(_EGL_WARNING,
|
||||
"EGL-DRI2: could not create udev device for fd %d", fd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return device;
|
||||
}
|
||||
|
||||
char *
|
||||
dri2_get_device_name_for_fd(int fd)
|
||||
{
|
||||
struct udev *udev;
|
||||
struct udev_device *device;
|
||||
const char *const_device_name;
|
||||
char *device_name = NULL;
|
||||
|
||||
udev = udev_new();
|
||||
device = dri2_udev_device_new_from_fd(udev, fd);
|
||||
if (device == NULL)
|
||||
return NULL;
|
||||
|
||||
const_device_name = udev_device_get_devnode(device);
|
||||
if (!const_device_name)
|
||||
goto out;
|
||||
device_name = strdup(const_device_name);
|
||||
|
||||
out:
|
||||
udev_device_unref(device);
|
||||
udev_unref(udev);
|
||||
|
||||
return device_name;
|
||||
}
|
||||
|
||||
char *
|
||||
dri2_get_driver_for_fd(int fd)
|
||||
{
|
||||
struct udev *udev;
|
||||
struct udev_device *device, *parent;
|
||||
const char *pci_id;
|
||||
char *driver = NULL;
|
||||
int vendor_id, chip_id, i, j;
|
||||
|
||||
udev = udev_new();
|
||||
device = dri2_udev_device_new_from_fd(udev, fd);
|
||||
if (device == NULL)
|
||||
return NULL;
|
||||
|
||||
parent = udev_device_get_parent(device);
|
||||
if (parent == NULL) {
|
||||
_eglLog(_EGL_WARNING, "DRI2: could not get parent device");
|
||||
goto out;
|
||||
}
|
||||
|
||||
pci_id = udev_device_get_property_value(parent, "PCI_ID");
|
||||
if (pci_id == NULL ||
|
||||
sscanf(pci_id, "%x:%x", &vendor_id, &chip_id) != 2) {
|
||||
_eglLog(_EGL_WARNING, "EGL-DRI2: malformed or no PCI ID");
|
||||
goto out;
|
||||
}
|
||||
|
||||
for (i = 0; driver_map[i].driver; i++) {
|
||||
if (vendor_id != driver_map[i].vendor_id)
|
||||
continue;
|
||||
if (driver_map[i].num_chips_ids == -1) {
|
||||
driver = strdup(driver_map[i].driver);
|
||||
_eglLog(_EGL_DEBUG, "pci id for %d: %04x:%04x, driver %s",
|
||||
fd, vendor_id, chip_id, driver);
|
||||
goto out;
|
||||
}
|
||||
|
||||
for (j = 0; j < driver_map[i].num_chips_ids; j++)
|
||||
if (driver_map[i].chip_ids[j] == chip_id) {
|
||||
driver = strdup(driver_map[i].driver);
|
||||
_eglLog(_EGL_DEBUG, "pci id for %d: %04x:%04x, driver %s",
|
||||
fd, vendor_id, chip_id, driver);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
udev_device_unref(device);
|
||||
udev_unref(udev);
|
||||
|
||||
return driver;
|
||||
}
|
||||
|
||||
#endif /* HAVE_LIBUDEV */
|
@@ -97,6 +97,18 @@ EGLint dri2_to_egl_attribute_map[] = {
|
||||
0, /* __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE */
|
||||
};
|
||||
|
||||
static EGLBoolean
|
||||
dri2_match_config(const _EGLConfig *conf, const _EGLConfig *criteria)
|
||||
{
|
||||
if (_eglCompareConfigs(conf, criteria, NULL, EGL_FALSE) != 0)
|
||||
return EGL_FALSE;
|
||||
|
||||
if (!_eglMatchConfig(conf, criteria))
|
||||
return EGL_FALSE;
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
struct dri2_egl_config *
|
||||
dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
|
||||
int depth, EGLint surface_type, const EGLint *attr_list)
|
||||
@@ -190,7 +202,7 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
|
||||
base.ConfigID = EGL_DONT_CARE;
|
||||
base.SurfaceType = EGL_DONT_CARE;
|
||||
num_configs = _eglFilterArray(disp->Configs, (void **) &matching_config, 1,
|
||||
(_EGLArrayForEach) _eglMatchConfig, &base);
|
||||
(_EGLArrayForEach) dri2_match_config, &base);
|
||||
|
||||
if (num_configs == 1) {
|
||||
conf = (struct dri2_egl_config *) matching_config;
|
||||
@@ -200,13 +212,10 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
|
||||
else if (!double_buffer && !conf->dri_single_config)
|
||||
conf->dri_single_config = dri_config;
|
||||
else
|
||||
/* a similar config type is already added
|
||||
* => attach it as new config
|
||||
*/
|
||||
num_configs = 0;
|
||||
/* a similar config type is already added (unlikely) => discard */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (num_configs == 0) {
|
||||
else if (num_configs == 0) {
|
||||
conf = malloc(sizeof *conf);
|
||||
if (conf == NULL)
|
||||
return NULL;
|
||||
@@ -224,6 +233,10 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
|
||||
|
||||
_eglLinkConfig(&conf->base);
|
||||
}
|
||||
else {
|
||||
assert(0);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
conf->base.SurfaceType |= surface_type & (!double_buffer ? EGL_PIXMAP_BIT:
|
||||
(EGL_WINDOW_BIT | EGL_PBUFFER_BIT | EGL_SWAP_BEHAVIOR_PRESERVED_BIT));
|
||||
@@ -231,7 +244,7 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
|
||||
return conf;
|
||||
}
|
||||
|
||||
static __DRIimage *
|
||||
__DRIimage *
|
||||
dri2_lookup_egl_image(__DRIscreen *screen, void *image, void *data)
|
||||
{
|
||||
_EGLDisplay *disp = data;
|
||||
@@ -321,8 +334,8 @@ dri2_bind_extensions(struct dri2_egl_display *dri2_dpy,
|
||||
return ret;
|
||||
}
|
||||
|
||||
EGLBoolean
|
||||
dri2_load_driver(_EGLDisplay *disp)
|
||||
static const __DRIextension **
|
||||
dri2_open_driver(_EGLDisplay *disp)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = disp->DriverData;
|
||||
const __DRIextension **extensions;
|
||||
@@ -361,9 +374,9 @@ dri2_load_driver(_EGLDisplay *disp)
|
||||
|
||||
if (dri2_dpy->driver == NULL) {
|
||||
_eglLog(_EGL_WARNING,
|
||||
"DRI2: failed to open any driver (search paths %s)",
|
||||
search_paths);
|
||||
return EGL_FALSE;
|
||||
"DRI2: failed to open %s (search paths %s)",
|
||||
dri2_dpy->driver_name, search_paths);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
_eglLog(_EGL_DEBUG, "DRI2: dlopen(%s)", path);
|
||||
@@ -372,59 +385,59 @@ dri2_load_driver(_EGLDisplay *disp)
|
||||
_eglLog(_EGL_WARNING,
|
||||
"DRI2: driver exports no extensions (%s)", dlerror());
|
||||
dlclose(dri2_dpy->driver);
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
if (strcmp(dri2_dpy->driver_name, "swrast") == 0) {
|
||||
if (!dri2_bind_extensions(dri2_dpy, swrast_driver_extensions, extensions)) {
|
||||
dlclose(dri2_dpy->driver);
|
||||
return EGL_FALSE;
|
||||
}
|
||||
} else {
|
||||
if (!dri2_bind_extensions(dri2_dpy, dri2_driver_extensions, extensions)) {
|
||||
dlclose(dri2_dpy->driver);
|
||||
return EGL_FALSE;
|
||||
}
|
||||
}
|
||||
return extensions;
|
||||
}
|
||||
|
||||
EGLBoolean
|
||||
dri2_load_driver(_EGLDisplay *disp)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = disp->DriverData;
|
||||
const __DRIextension **extensions;
|
||||
|
||||
extensions = dri2_open_driver(disp);
|
||||
if (!extensions)
|
||||
return EGL_FALSE;
|
||||
|
||||
if (!dri2_bind_extensions(dri2_dpy, dri2_driver_extensions, extensions)) {
|
||||
dlclose(dri2_dpy->driver);
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
EGLBoolean
|
||||
dri2_create_screen(_EGLDisplay *disp)
|
||||
dri2_load_driver_swrast(_EGLDisplay *disp)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = disp->DriverData;
|
||||
const __DRIextension **extensions;
|
||||
struct dri2_egl_display *dri2_dpy;
|
||||
unsigned int api_mask;
|
||||
|
||||
dri2_dpy = disp->DriverData;
|
||||
|
||||
if (dri2_dpy->dri2) {
|
||||
dri2_dpy->dri_screen =
|
||||
dri2_dpy->dri2->createNewScreen(0, dri2_dpy->fd, dri2_dpy->extensions,
|
||||
&dri2_dpy->driver_configs, disp);
|
||||
} else {
|
||||
assert(dri2_dpy->swrast);
|
||||
dri2_dpy->dri_screen =
|
||||
dri2_dpy->swrast->createNewScreen(0, dri2_dpy->extensions,
|
||||
&dri2_dpy->driver_configs, disp);
|
||||
dri2_dpy->driver_name = "swrast";
|
||||
extensions = dri2_open_driver(disp);
|
||||
if (!extensions) {
|
||||
/* try again with swrastg */
|
||||
dri2_dpy->driver_name = "swrastg";
|
||||
extensions = dri2_open_driver(disp);
|
||||
}
|
||||
|
||||
if (dri2_dpy->dri_screen == NULL) {
|
||||
_eglLog(_EGL_WARNING, "DRI2: failed to create dri screen");
|
||||
if (!extensions)
|
||||
return EGL_FALSE;
|
||||
|
||||
if (!dri2_bind_extensions(dri2_dpy, swrast_driver_extensions, extensions)) {
|
||||
dlclose(dri2_dpy->driver);
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
extensions = dri2_dpy->core->getExtensions(dri2_dpy->dri_screen);
|
||||
|
||||
if (dri2_dpy->dri2) {
|
||||
if (!dri2_bind_extensions(dri2_dpy, dri2_core_extensions, extensions))
|
||||
goto cleanup_dri_screen;
|
||||
} else {
|
||||
assert(dri2_dpy->swrast);
|
||||
if (!dri2_bind_extensions(dri2_dpy, swrast_core_extensions, extensions))
|
||||
goto cleanup_dri_screen;
|
||||
}
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
dri2_setup_screen(_EGLDisplay *disp)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
unsigned int api_mask;
|
||||
|
||||
if (dri2_dpy->dri2) {
|
||||
if (dri2_dpy->dri2->base.version >= 2)
|
||||
@@ -467,6 +480,46 @@ dri2_create_screen(_EGLDisplay *disp)
|
||||
disp->Extensions.KHR_image_base = EGL_TRUE;
|
||||
disp->Extensions.KHR_gl_renderbuffer_image = EGL_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
EGLBoolean
|
||||
dri2_create_screen(_EGLDisplay *disp)
|
||||
{
|
||||
const __DRIextension **extensions;
|
||||
struct dri2_egl_display *dri2_dpy;
|
||||
|
||||
dri2_dpy = disp->DriverData;
|
||||
|
||||
if (dri2_dpy->dri2) {
|
||||
dri2_dpy->dri_screen =
|
||||
dri2_dpy->dri2->createNewScreen(0, dri2_dpy->fd, dri2_dpy->extensions,
|
||||
&dri2_dpy->driver_configs, disp);
|
||||
} else {
|
||||
assert(dri2_dpy->swrast);
|
||||
dri2_dpy->dri_screen =
|
||||
dri2_dpy->swrast->createNewScreen(0, dri2_dpy->extensions,
|
||||
&dri2_dpy->driver_configs, disp);
|
||||
}
|
||||
|
||||
if (dri2_dpy->dri_screen == NULL) {
|
||||
_eglLog(_EGL_WARNING, "DRI2: failed to create dri screen");
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
dri2_dpy->own_dri_screen = 1;
|
||||
|
||||
extensions = dri2_dpy->core->getExtensions(dri2_dpy->dri_screen);
|
||||
|
||||
if (dri2_dpy->dri2) {
|
||||
if (!dri2_bind_extensions(dri2_dpy, dri2_core_extensions, extensions))
|
||||
goto cleanup_dri_screen;
|
||||
} else {
|
||||
assert(dri2_dpy->swrast);
|
||||
if (!dri2_bind_extensions(dri2_dpy, swrast_core_extensions, extensions))
|
||||
goto cleanup_dri_screen;
|
||||
}
|
||||
|
||||
dri2_setup_screen(disp);
|
||||
|
||||
return EGL_TRUE;
|
||||
|
||||
@@ -487,16 +540,20 @@ dri2_initialize(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
return EGL_FALSE;
|
||||
|
||||
switch (disp->Platform) {
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
case _EGL_PLATFORM_X11:
|
||||
if (disp->Options.TestOnly)
|
||||
return EGL_TRUE;
|
||||
return dri2_initialize_x11(drv, disp);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LIBUDEV
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
case _EGL_PLATFORM_DRM:
|
||||
if (disp->Options.TestOnly)
|
||||
return EGL_TRUE;
|
||||
return dri2_initialize_drm(drv, disp);
|
||||
#endif
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
case _EGL_PLATFORM_WAYLAND:
|
||||
if (disp->Options.TestOnly)
|
||||
@@ -521,12 +578,30 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
_eglReleaseDisplayResources(drv, disp);
|
||||
_eglCleanupDisplay(disp);
|
||||
|
||||
dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen);
|
||||
if (dri2_dpy->own_dri_screen)
|
||||
dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen);
|
||||
if (dri2_dpy->fd)
|
||||
close(dri2_dpy->fd);
|
||||
dlclose(dri2_dpy->driver);
|
||||
if (disp->PlatformDisplay == NULL)
|
||||
xcb_disconnect(dri2_dpy->conn);
|
||||
if (dri2_dpy->driver)
|
||||
dlclose(dri2_dpy->driver);
|
||||
|
||||
if (disp->PlatformDisplay == NULL) {
|
||||
switch (disp->Platform) {
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
case _EGL_PLATFORM_X11:
|
||||
xcb_disconnect(dri2_dpy->conn);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
case _EGL_PLATFORM_WAYLAND:
|
||||
wl_display_destroy(dri2_dpy->wl_dpy);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
free(dri2_dpy);
|
||||
disp->DriverData = NULL;
|
||||
|
||||
@@ -835,7 +910,7 @@ dri2_create_image_khr_renderbuffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_context *dri2_ctx = dri2_egl_context(ctx);
|
||||
struct dri2_egl_image *dri2_img;
|
||||
GLuint renderbuffer = (GLuint) buffer;
|
||||
GLuint renderbuffer = (GLuint) (uintptr_t) buffer;
|
||||
|
||||
if (renderbuffer == 0) {
|
||||
_eglError(EGL_BAD_PARAMETER, "dri2_create_image_khr");
|
||||
@@ -870,7 +945,7 @@ dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
|
||||
(void) ctx;
|
||||
|
||||
name = (EGLint) buffer;
|
||||
name = (EGLint) (uintptr_t) buffer;
|
||||
|
||||
err = _eglParseImageAttribList(&attrs, disp, attr_list);
|
||||
if (err != EGL_SUCCESS)
|
||||
@@ -922,14 +997,12 @@ dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
return &dri2_img->base;
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_export_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *img,
|
||||
EGLint *name, EGLint *handle, EGLint *stride);
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
static _EGLImage *
|
||||
dri2_reference_drm_image(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
_EGLImage *image, EGLint width, EGLint height)
|
||||
__DRIimage *dri_image, EGLint width, EGLint height)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
EGLint attr_list[] = {
|
||||
EGL_WIDTH, 0,
|
||||
EGL_HEIGHT, 0,
|
||||
@@ -939,8 +1012,8 @@ dri2_reference_drm_image(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
};
|
||||
EGLint name, stride;
|
||||
|
||||
dri2_export_drm_image_mesa(disp->Driver, disp, image,
|
||||
&name, NULL, &stride);
|
||||
dri2_dpy->image->queryImage(dri_image, __DRI_IMAGE_ATTRIB_NAME, &name);
|
||||
dri2_dpy->image->queryImage(dri_image, __DRI_IMAGE_ATTRIB_STRIDE, &stride);
|
||||
|
||||
attr_list[1] = width;
|
||||
attr_list[3] = height;
|
||||
@@ -951,19 +1024,21 @@ dri2_reference_drm_image(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
attr_list);
|
||||
}
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
static _EGLImage *
|
||||
dri2_create_image_wayland_wl_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
EGLClientBuffer buffer,
|
||||
EGLClientBuffer _buffer,
|
||||
const EGLint *attr_list)
|
||||
{
|
||||
struct wl_drm_buffer *wl_drm_buffer = (struct wl_drm_buffer *) buffer;
|
||||
struct wl_buffer *buffer = (struct wl_buffer *) _buffer;
|
||||
(void) attr_list;
|
||||
|
||||
(void) attr_list;
|
||||
if (!wayland_buffer_is_drm(buffer))
|
||||
return NULL;
|
||||
|
||||
return dri2_reference_drm_image(disp, ctx, wl_drm_buffer->image,
|
||||
wl_drm_buffer->buffer.width,
|
||||
wl_drm_buffer->buffer.height);
|
||||
return dri2_reference_drm_image(disp, ctx,
|
||||
wayland_drm_buffer_get_buffer(buffer),
|
||||
buffer->width,
|
||||
buffer->height);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1054,7 +1129,8 @@ dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
|
||||
valid_mask =
|
||||
EGL_DRM_BUFFER_USE_SCANOUT_MESA |
|
||||
EGL_DRM_BUFFER_USE_SHARE_MESA;
|
||||
EGL_DRM_BUFFER_USE_SHARE_MESA |
|
||||
EGL_DRM_BUFFER_USE_CURSOR_MESA;
|
||||
if (attrs.DRMBufferUseMESA & ~valid_mask) {
|
||||
_eglLog(_EGL_WARNING, "bad image use bit 0x%04x",
|
||||
attrs.DRMBufferUseMESA & ~valid_mask);
|
||||
@@ -1066,6 +1142,8 @@ dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
dri_use |= __DRI_IMAGE_USE_SHARE;
|
||||
if (attrs.DRMBufferUseMESA & EGL_DRM_BUFFER_USE_SCANOUT_MESA)
|
||||
dri_use |= __DRI_IMAGE_USE_SCANOUT;
|
||||
if (attrs.DRMBufferUseMESA & EGL_DRM_BUFFER_USE_CURSOR_MESA)
|
||||
dri_use |= __DRI_IMAGE_USE_CURSOR;
|
||||
|
||||
dri2_img->dri_image =
|
||||
dri2_dpy->image->createImage(dri2_dpy->dri_screen,
|
||||
@@ -1112,6 +1190,41 @@ dri2_export_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *img,
|
||||
}
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
|
||||
static void *
|
||||
dri2_wl_reference_buffer(void *user_data, uint32_t name,
|
||||
int32_t width, int32_t height,
|
||||
uint32_t stride, struct wl_visual *visual)
|
||||
{
|
||||
_EGLDisplay *disp = user_data;
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
__DRIimage *image;
|
||||
|
||||
image = dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen,
|
||||
width, height,
|
||||
__DRI_IMAGE_FORMAT_ARGB8888,
|
||||
name, stride / 4,
|
||||
NULL);
|
||||
|
||||
return image;
|
||||
}
|
||||
|
||||
static void
|
||||
dri2_wl_release_buffer(void *user_data, void *buffer)
|
||||
{
|
||||
_EGLDisplay *disp = user_data;
|
||||
__DRIimage *image = buffer;
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
|
||||
dri2_dpy->image->destroyImage(image);
|
||||
}
|
||||
|
||||
static struct wayland_drm_callbacks wl_drm_callbacks = {
|
||||
.authenticate = NULL,
|
||||
.reference_buffer = dri2_wl_reference_buffer,
|
||||
.release_buffer = dri2_wl_release_buffer
|
||||
};
|
||||
|
||||
static EGLBoolean
|
||||
dri2_bind_wayland_display_wl(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
struct wl_display *wl_dpy)
|
||||
@@ -1123,10 +1236,12 @@ dri2_bind_wayland_display_wl(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
if (dri2_dpy->wl_server_drm)
|
||||
return EGL_FALSE;
|
||||
|
||||
wl_drm_callbacks.authenticate =
|
||||
(int(*)(void *, uint32_t)) dri2_dpy->authenticate;
|
||||
|
||||
dri2_dpy->wl_server_drm =
|
||||
wayland_drm_init(wl_dpy, disp,
|
||||
dri2_dpy->authenticate,
|
||||
dri2_dpy->device_name);
|
||||
wayland_drm_init(wl_dpy, dri2_dpy->device_name,
|
||||
&wl_drm_callbacks, disp);
|
||||
|
||||
if (!dri2_dpy->wl_server_drm)
|
||||
return EGL_FALSE;
|
||||
@@ -1145,7 +1260,7 @@ dri2_unbind_wayland_display_wl(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
if (!dri2_dpy->wl_server_drm)
|
||||
return EGL_FALSE;
|
||||
|
||||
wayland_drm_destroy(dri2_dpy->wl_server_drm);
|
||||
wayland_drm_uninit(dri2_dpy->wl_server_drm);
|
||||
dri2_dpy->wl_server_drm = NULL;
|
||||
|
||||
return EGL_TRUE;
|
||||
|
@@ -28,10 +28,12 @@
|
||||
#ifndef EGL_DRI2_INCLUDED
|
||||
#define EGL_DRI2_INCLUDED
|
||||
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
#include <xcb/xcb.h>
|
||||
#include <xcb/dri2.h>
|
||||
#include <xcb/xfixes.h>
|
||||
#include <X11/Xlib-xcb.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
#include <wayland-client.h>
|
||||
@@ -42,6 +44,10 @@
|
||||
#include <GL/gl.h>
|
||||
#include <GL/internal/dri_interface.h>
|
||||
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
#include <gbm_driint.h>
|
||||
#endif
|
||||
|
||||
#include "eglconfig.h"
|
||||
#include "eglcontext.h"
|
||||
#include "egldisplay.h"
|
||||
@@ -64,10 +70,10 @@ struct dri2_egl_driver
|
||||
|
||||
struct dri2_egl_display
|
||||
{
|
||||
xcb_connection_t *conn;
|
||||
int dri2_major;
|
||||
int dri2_minor;
|
||||
__DRIscreen *dri_screen;
|
||||
int own_dri_screen;
|
||||
const __DRIconfig **driver_configs;
|
||||
void *driver;
|
||||
__DRIcoreExtension *core;
|
||||
@@ -78,15 +84,26 @@ struct dri2_egl_display
|
||||
__DRIimageExtension *image;
|
||||
int fd;
|
||||
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
struct gbm_dri_device *gbm_dri;
|
||||
#endif
|
||||
|
||||
char *device_name;
|
||||
char *driver_name;
|
||||
|
||||
__DRIdri2LoaderExtension dri2_loader_extension;
|
||||
__DRIswrastLoaderExtension swrast_loader_extension;
|
||||
const __DRIextension *extensions[3];
|
||||
const __DRIextension *extensions[4];
|
||||
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
xcb_connection_t *conn;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
struct wl_egl_display *wl_dpy;
|
||||
struct wl_display *wl_dpy;
|
||||
struct wl_drm *wl_server_drm;
|
||||
struct wl_drm *wl_drm;
|
||||
int authenticated;
|
||||
#endif
|
||||
|
||||
int (*authenticate) (_EGLDisplay *disp, uint32_t id);
|
||||
@@ -102,6 +119,7 @@ struct dri2_egl_context
|
||||
enum wayland_buffer_type {
|
||||
WL_BUFFER_FRONT,
|
||||
WL_BUFFER_BACK,
|
||||
WL_BUFFER_THIRD,
|
||||
WL_BUFFER_COUNT
|
||||
};
|
||||
|
||||
@@ -118,26 +136,30 @@ struct dri2_egl_surface
|
||||
{
|
||||
_EGLSurface base;
|
||||
__DRIdrawable *dri_drawable;
|
||||
xcb_drawable_t drawable;
|
||||
__DRIbuffer buffers[5];
|
||||
int buffer_count;
|
||||
xcb_xfixes_region_t region;
|
||||
int have_fake_front;
|
||||
int swap_interval;
|
||||
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
xcb_drawable_t drawable;
|
||||
xcb_xfixes_region_t region;
|
||||
int depth;
|
||||
int bytes_per_pixel;
|
||||
xcb_gcontext_t gc;
|
||||
xcb_gcontext_t swapgc;
|
||||
#endif
|
||||
|
||||
enum dri2_surface_type type;
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
struct wl_egl_window *wl_win;
|
||||
struct wl_egl_pixmap *wl_pix;
|
||||
struct wl_buffer *wl_drm_buffer[WL_BUFFER_COUNT];
|
||||
int wl_buffer_lock[WL_BUFFER_COUNT];
|
||||
int dx;
|
||||
int dy;
|
||||
__DRIbuffer *dri_buffers[__DRI_BUFFER_COUNT];
|
||||
__DRIbuffer *third_buffer;
|
||||
__DRIbuffer *pending_buffer;
|
||||
EGLBoolean block_swap_buffers;
|
||||
#endif
|
||||
@@ -172,9 +194,19 @@ extern const __DRIuseInvalidateExtension use_invalidate;
|
||||
EGLBoolean
|
||||
dri2_load_driver(_EGLDisplay *disp);
|
||||
|
||||
/* Helper for platforms not using dri2_create_screen */
|
||||
void
|
||||
dri2_setup_screen(_EGLDisplay *disp);
|
||||
|
||||
EGLBoolean
|
||||
dri2_load_driver_swrast(_EGLDisplay *disp);
|
||||
|
||||
EGLBoolean
|
||||
dri2_create_screen(_EGLDisplay *disp);
|
||||
|
||||
__DRIimage *
|
||||
dri2_lookup_egl_image(__DRIscreen *screen, void *image, void *data);
|
||||
|
||||
struct dri2_egl_config *
|
||||
dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
|
||||
int depth, EGLint surface_type, const EGLint *attr_list);
|
||||
@@ -195,5 +227,7 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp);
|
||||
|
||||
char *
|
||||
dri2_get_driver_for_fd(int fd);
|
||||
char *
|
||||
dri2_get_device_name_for_fd(int fd);
|
||||
|
||||
#endif /* EGL_DRI2_INCLUDED */
|
||||
|
@@ -26,640 +26,55 @@
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
#include <dlfcn.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <xf86drm.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifdef HAVE_LIBUDEV
|
||||
#include <libudev.h>
|
||||
#endif
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include "egl_dri2.h"
|
||||
|
||||
|
||||
#ifdef HAVE_LIBUDEV
|
||||
|
||||
struct dri2_driver_map {
|
||||
int vendor_id;
|
||||
const char *driver;
|
||||
const int *chip_ids;
|
||||
int num_chips_ids;
|
||||
};
|
||||
|
||||
const int i915_chip_ids[] = {
|
||||
0x3577, /* PCI_CHIP_I830_M */
|
||||
0x2562, /* PCI_CHIP_845_G */
|
||||
0x3582, /* PCI_CHIP_I855_GM */
|
||||
0x2572, /* PCI_CHIP_I865_G */
|
||||
0x2582, /* PCI_CHIP_I915_G */
|
||||
0x258a, /* PCI_CHIP_E7221_G */
|
||||
0x2592, /* PCI_CHIP_I915_GM */
|
||||
0x2772, /* PCI_CHIP_I945_G */
|
||||
0x27a2, /* PCI_CHIP_I945_GM */
|
||||
0x27ae, /* PCI_CHIP_I945_GME */
|
||||
0x29b2, /* PCI_CHIP_Q35_G */
|
||||
0x29c2, /* PCI_CHIP_G33_G */
|
||||
0x29d2, /* PCI_CHIP_Q33_G */
|
||||
0xa001, /* PCI_CHIP_IGD_G */
|
||||
0xa011, /* Pineview */
|
||||
};
|
||||
|
||||
const int i965_chip_ids[] = {
|
||||
0x0042, /* PCI_CHIP_ILD_G */
|
||||
0x0046, /* PCI_CHIP_ILM_G */
|
||||
0x0102, /* PCI_CHIP_SANDYBRIDGE_GT1 */
|
||||
0x0106, /* PCI_CHIP_SANDYBRIDGE_M_GT1 */
|
||||
0x010a, /* PCI_CHIP_SANDYBRIDGE_S */
|
||||
0x0112, /* PCI_CHIP_SANDYBRIDGE_GT2 */
|
||||
0x0116, /* PCI_CHIP_SANDYBRIDGE_M_GT2 */
|
||||
0x0122, /* PCI_CHIP_SANDYBRIDGE_GT2_PLUS */
|
||||
0x0126, /* PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS */
|
||||
0x29a2, /* PCI_CHIP_I965_G */
|
||||
0x2992, /* PCI_CHIP_I965_Q */
|
||||
0x2982, /* PCI_CHIP_I965_G_1 */
|
||||
0x2972, /* PCI_CHIP_I946_GZ */
|
||||
0x2a02, /* PCI_CHIP_I965_GM */
|
||||
0x2a12, /* PCI_CHIP_I965_GME */
|
||||
0x2a42, /* PCI_CHIP_GM45_GM */
|
||||
0x2e02, /* PCI_CHIP_IGD_E_G */
|
||||
0x2e12, /* PCI_CHIP_Q45_G */
|
||||
0x2e22, /* PCI_CHIP_G45_G */
|
||||
0x2e32, /* PCI_CHIP_G41_G */
|
||||
0x2e42, /* PCI_CHIP_B43_G */
|
||||
0x2e92, /* PCI_CHIP_B43_G1 */
|
||||
};
|
||||
|
||||
const int r100_chip_ids[] = {
|
||||
0x4C57, /* PCI_CHIP_RADEON_LW */
|
||||
0x4C58, /* PCI_CHIP_RADEON_LX */
|
||||
0x4C59, /* PCI_CHIP_RADEON_LY */
|
||||
0x4C5A, /* PCI_CHIP_RADEON_LZ */
|
||||
0x5144, /* PCI_CHIP_RADEON_QD */
|
||||
0x5145, /* PCI_CHIP_RADEON_QE */
|
||||
0x5146, /* PCI_CHIP_RADEON_QF */
|
||||
0x5147, /* PCI_CHIP_RADEON_QG */
|
||||
0x5159, /* PCI_CHIP_RADEON_QY */
|
||||
0x515A, /* PCI_CHIP_RADEON_QZ */
|
||||
0x5157, /* PCI_CHIP_RV200_QW */
|
||||
0x5158, /* PCI_CHIP_RV200_QX */
|
||||
0x515E, /* PCI_CHIP_RN50_515E */
|
||||
0x5969, /* PCI_CHIP_RN50_5969 */
|
||||
0x4136, /* PCI_CHIP_RS100_4136 */
|
||||
0x4336, /* PCI_CHIP_RS100_4336 */
|
||||
0x4137, /* PCI_CHIP_RS200_4137 */
|
||||
0x4337, /* PCI_CHIP_RS200_4337 */
|
||||
0x4237, /* PCI_CHIP_RS250_4237 */
|
||||
0x4437, /* PCI_CHIP_RS250_4437 */
|
||||
};
|
||||
|
||||
const int r200_chip_ids[] = {
|
||||
0x5148, /* PCI_CHIP_R200_QH */
|
||||
0x514C, /* PCI_CHIP_R200_QL */
|
||||
0x514D, /* PCI_CHIP_R200_QM */
|
||||
0x4242, /* PCI_CHIP_R200_BB */
|
||||
0x4966, /* PCI_CHIP_RV250_If */
|
||||
0x4967, /* PCI_CHIP_RV250_Ig */
|
||||
0x4C64, /* PCI_CHIP_RV250_Ld */
|
||||
0x4C66, /* PCI_CHIP_RV250_Lf */
|
||||
0x4C67, /* PCI_CHIP_RV250_Lg */
|
||||
0x5960, /* PCI_CHIP_RV280_5960 */
|
||||
0x5961, /* PCI_CHIP_RV280_5961 */
|
||||
0x5962, /* PCI_CHIP_RV280_5962 */
|
||||
0x5964, /* PCI_CHIP_RV280_5964 */
|
||||
0x5965, /* PCI_CHIP_RV280_5965 */
|
||||
0x5C61, /* PCI_CHIP_RV280_5C61 */
|
||||
0x5C63, /* PCI_CHIP_RV280_5C63 */
|
||||
0x5834, /* PCI_CHIP_RS300_5834 */
|
||||
0x5835, /* PCI_CHIP_RS300_5835 */
|
||||
0x7834, /* PCI_CHIP_RS350_7834 */
|
||||
0x7835, /* PCI_CHIP_RS350_7835 */
|
||||
};
|
||||
|
||||
const int r300_chip_ids[] = {
|
||||
0x4144, /* PCI_CHIP_R300_AD */
|
||||
0x4145, /* PCI_CHIP_R300_AE */
|
||||
0x4146, /* PCI_CHIP_R300_AF */
|
||||
0x4147, /* PCI_CHIP_R300_AG */
|
||||
0x4E44, /* PCI_CHIP_R300_ND */
|
||||
0x4E45, /* PCI_CHIP_R300_NE */
|
||||
0x4E46, /* PCI_CHIP_R300_NF */
|
||||
0x4E47, /* PCI_CHIP_R300_NG */
|
||||
0x4E48, /* PCI_CHIP_R350_NH */
|
||||
0x4E49, /* PCI_CHIP_R350_NI */
|
||||
0x4E4B, /* PCI_CHIP_R350_NK */
|
||||
0x4148, /* PCI_CHIP_R350_AH */
|
||||
0x4149, /* PCI_CHIP_R350_AI */
|
||||
0x414A, /* PCI_CHIP_R350_AJ */
|
||||
0x414B, /* PCI_CHIP_R350_AK */
|
||||
0x4E4A, /* PCI_CHIP_R360_NJ */
|
||||
0x4150, /* PCI_CHIP_RV350_AP */
|
||||
0x4151, /* PCI_CHIP_RV350_AQ */
|
||||
0x4152, /* PCI_CHIP_RV350_AR */
|
||||
0x4153, /* PCI_CHIP_RV350_AS */
|
||||
0x4154, /* PCI_CHIP_RV350_AT */
|
||||
0x4155, /* PCI_CHIP_RV350_AU */
|
||||
0x4156, /* PCI_CHIP_RV350_AV */
|
||||
0x4E50, /* PCI_CHIP_RV350_NP */
|
||||
0x4E51, /* PCI_CHIP_RV350_NQ */
|
||||
0x4E52, /* PCI_CHIP_RV350_NR */
|
||||
0x4E53, /* PCI_CHIP_RV350_NS */
|
||||
0x4E54, /* PCI_CHIP_RV350_NT */
|
||||
0x4E56, /* PCI_CHIP_RV350_NV */
|
||||
0x5460, /* PCI_CHIP_RV370_5460 */
|
||||
0x5462, /* PCI_CHIP_RV370_5462 */
|
||||
0x5464, /* PCI_CHIP_RV370_5464 */
|
||||
0x5B60, /* PCI_CHIP_RV370_5B60 */
|
||||
0x5B62, /* PCI_CHIP_RV370_5B62 */
|
||||
0x5B63, /* PCI_CHIP_RV370_5B63 */
|
||||
0x5B64, /* PCI_CHIP_RV370_5B64 */
|
||||
0x5B65, /* PCI_CHIP_RV370_5B65 */
|
||||
0x3150, /* PCI_CHIP_RV380_3150 */
|
||||
0x3152, /* PCI_CHIP_RV380_3152 */
|
||||
0x3154, /* PCI_CHIP_RV380_3154 */
|
||||
0x3155, /* PCI_CHIP_RV380_3155 */
|
||||
0x3E50, /* PCI_CHIP_RV380_3E50 */
|
||||
0x3E54, /* PCI_CHIP_RV380_3E54 */
|
||||
0x4A48, /* PCI_CHIP_R420_JH */
|
||||
0x4A49, /* PCI_CHIP_R420_JI */
|
||||
0x4A4A, /* PCI_CHIP_R420_JJ */
|
||||
0x4A4B, /* PCI_CHIP_R420_JK */
|
||||
0x4A4C, /* PCI_CHIP_R420_JL */
|
||||
0x4A4D, /* PCI_CHIP_R420_JM */
|
||||
0x4A4E, /* PCI_CHIP_R420_JN */
|
||||
0x4A4F, /* PCI_CHIP_R420_JO */
|
||||
0x4A50, /* PCI_CHIP_R420_JP */
|
||||
0x4A54, /* PCI_CHIP_R420_JT */
|
||||
0x5548, /* PCI_CHIP_R423_UH */
|
||||
0x5549, /* PCI_CHIP_R423_UI */
|
||||
0x554A, /* PCI_CHIP_R423_UJ */
|
||||
0x554B, /* PCI_CHIP_R423_UK */
|
||||
0x5550, /* PCI_CHIP_R423_5550 */
|
||||
0x5551, /* PCI_CHIP_R423_UQ */
|
||||
0x5552, /* PCI_CHIP_R423_UR */
|
||||
0x5554, /* PCI_CHIP_R423_UT */
|
||||
0x5D57, /* PCI_CHIP_R423_5D57 */
|
||||
0x554C, /* PCI_CHIP_R430_554C */
|
||||
0x554D, /* PCI_CHIP_R430_554D */
|
||||
0x554E, /* PCI_CHIP_R430_554E */
|
||||
0x554F, /* PCI_CHIP_R430_554F */
|
||||
0x5D48, /* PCI_CHIP_R430_5D48 */
|
||||
0x5D49, /* PCI_CHIP_R430_5D49 */
|
||||
0x5D4A, /* PCI_CHIP_R430_5D4A */
|
||||
0x5D4C, /* PCI_CHIP_R480_5D4C */
|
||||
0x5D4D, /* PCI_CHIP_R480_5D4D */
|
||||
0x5D4E, /* PCI_CHIP_R480_5D4E */
|
||||
0x5D4F, /* PCI_CHIP_R480_5D4F */
|
||||
0x5D50, /* PCI_CHIP_R480_5D50 */
|
||||
0x5D52, /* PCI_CHIP_R480_5D52 */
|
||||
0x4B49, /* PCI_CHIP_R481_4B49 */
|
||||
0x4B4A, /* PCI_CHIP_R481_4B4A */
|
||||
0x4B4B, /* PCI_CHIP_R481_4B4B */
|
||||
0x4B4C, /* PCI_CHIP_R481_4B4C */
|
||||
0x564A, /* PCI_CHIP_RV410_564A */
|
||||
0x564B, /* PCI_CHIP_RV410_564B */
|
||||
0x564F, /* PCI_CHIP_RV410_564F */
|
||||
0x5652, /* PCI_CHIP_RV410_5652 */
|
||||
0x5653, /* PCI_CHIP_RV410_5653 */
|
||||
0x5657, /* PCI_CHIP_RV410_5657 */
|
||||
0x5E48, /* PCI_CHIP_RV410_5E48 */
|
||||
0x5E4A, /* PCI_CHIP_RV410_5E4A */
|
||||
0x5E4B, /* PCI_CHIP_RV410_5E4B */
|
||||
0x5E4C, /* PCI_CHIP_RV410_5E4C */
|
||||
0x5E4D, /* PCI_CHIP_RV410_5E4D */
|
||||
0x5E4F, /* PCI_CHIP_RV410_5E4F */
|
||||
0x5A41, /* PCI_CHIP_RS400_5A41 */
|
||||
0x5A42, /* PCI_CHIP_RS400_5A42 */
|
||||
0x5A61, /* PCI_CHIP_RC410_5A61 */
|
||||
0x5A62, /* PCI_CHIP_RC410_5A62 */
|
||||
0x5954, /* PCI_CHIP_RS480_5954 */
|
||||
0x5955, /* PCI_CHIP_RS480_5955 */
|
||||
0x5974, /* PCI_CHIP_RS482_5974 */
|
||||
0x5975, /* PCI_CHIP_RS482_5975 */
|
||||
0x7100, /* PCI_CHIP_R520_7100 */
|
||||
0x7101, /* PCI_CHIP_R520_7101 */
|
||||
0x7102, /* PCI_CHIP_R520_7102 */
|
||||
0x7103, /* PCI_CHIP_R520_7103 */
|
||||
0x7104, /* PCI_CHIP_R520_7104 */
|
||||
0x7105, /* PCI_CHIP_R520_7105 */
|
||||
0x7106, /* PCI_CHIP_R520_7106 */
|
||||
0x7108, /* PCI_CHIP_R520_7108 */
|
||||
0x7109, /* PCI_CHIP_R520_7109 */
|
||||
0x710A, /* PCI_CHIP_R520_710A */
|
||||
0x710B, /* PCI_CHIP_R520_710B */
|
||||
0x710C, /* PCI_CHIP_R520_710C */
|
||||
0x710E, /* PCI_CHIP_R520_710E */
|
||||
0x710F, /* PCI_CHIP_R520_710F */
|
||||
0x7140, /* PCI_CHIP_RV515_7140 */
|
||||
0x7141, /* PCI_CHIP_RV515_7141 */
|
||||
0x7142, /* PCI_CHIP_RV515_7142 */
|
||||
0x7143, /* PCI_CHIP_RV515_7143 */
|
||||
0x7144, /* PCI_CHIP_RV515_7144 */
|
||||
0x7145, /* PCI_CHIP_RV515_7145 */
|
||||
0x7146, /* PCI_CHIP_RV515_7146 */
|
||||
0x7147, /* PCI_CHIP_RV515_7147 */
|
||||
0x7149, /* PCI_CHIP_RV515_7149 */
|
||||
0x714A, /* PCI_CHIP_RV515_714A */
|
||||
0x714B, /* PCI_CHIP_RV515_714B */
|
||||
0x714C, /* PCI_CHIP_RV515_714C */
|
||||
0x714D, /* PCI_CHIP_RV515_714D */
|
||||
0x714E, /* PCI_CHIP_RV515_714E */
|
||||
0x714F, /* PCI_CHIP_RV515_714F */
|
||||
0x7151, /* PCI_CHIP_RV515_7151 */
|
||||
0x7152, /* PCI_CHIP_RV515_7152 */
|
||||
0x7153, /* PCI_CHIP_RV515_7153 */
|
||||
0x715E, /* PCI_CHIP_RV515_715E */
|
||||
0x715F, /* PCI_CHIP_RV515_715F */
|
||||
0x7180, /* PCI_CHIP_RV515_7180 */
|
||||
0x7181, /* PCI_CHIP_RV515_7181 */
|
||||
0x7183, /* PCI_CHIP_RV515_7183 */
|
||||
0x7186, /* PCI_CHIP_RV515_7186 */
|
||||
0x7187, /* PCI_CHIP_RV515_7187 */
|
||||
0x7188, /* PCI_CHIP_RV515_7188 */
|
||||
0x718A, /* PCI_CHIP_RV515_718A */
|
||||
0x718B, /* PCI_CHIP_RV515_718B */
|
||||
0x718C, /* PCI_CHIP_RV515_718C */
|
||||
0x718D, /* PCI_CHIP_RV515_718D */
|
||||
0x718F, /* PCI_CHIP_RV515_718F */
|
||||
0x7193, /* PCI_CHIP_RV515_7193 */
|
||||
0x7196, /* PCI_CHIP_RV515_7196 */
|
||||
0x719B, /* PCI_CHIP_RV515_719B */
|
||||
0x719F, /* PCI_CHIP_RV515_719F */
|
||||
0x7200, /* PCI_CHIP_RV515_7200 */
|
||||
0x7210, /* PCI_CHIP_RV515_7210 */
|
||||
0x7211, /* PCI_CHIP_RV515_7211 */
|
||||
0x71C0, /* PCI_CHIP_RV530_71C0 */
|
||||
0x71C1, /* PCI_CHIP_RV530_71C1 */
|
||||
0x71C2, /* PCI_CHIP_RV530_71C2 */
|
||||
0x71C3, /* PCI_CHIP_RV530_71C3 */
|
||||
0x71C4, /* PCI_CHIP_RV530_71C4 */
|
||||
0x71C5, /* PCI_CHIP_RV530_71C5 */
|
||||
0x71C6, /* PCI_CHIP_RV530_71C6 */
|
||||
0x71C7, /* PCI_CHIP_RV530_71C7 */
|
||||
0x71CD, /* PCI_CHIP_RV530_71CD */
|
||||
0x71CE, /* PCI_CHIP_RV530_71CE */
|
||||
0x71D2, /* PCI_CHIP_RV530_71D2 */
|
||||
0x71D4, /* PCI_CHIP_RV530_71D4 */
|
||||
0x71D5, /* PCI_CHIP_RV530_71D5 */
|
||||
0x71D6, /* PCI_CHIP_RV530_71D6 */
|
||||
0x71DA, /* PCI_CHIP_RV530_71DA */
|
||||
0x71DE, /* PCI_CHIP_RV530_71DE */
|
||||
0x7281, /* PCI_CHIP_RV560_7281 */
|
||||
0x7283, /* PCI_CHIP_RV560_7283 */
|
||||
0x7287, /* PCI_CHIP_RV560_7287 */
|
||||
0x7290, /* PCI_CHIP_RV560_7290 */
|
||||
0x7291, /* PCI_CHIP_RV560_7291 */
|
||||
0x7293, /* PCI_CHIP_RV560_7293 */
|
||||
0x7297, /* PCI_CHIP_RV560_7297 */
|
||||
0x7280, /* PCI_CHIP_RV570_7280 */
|
||||
0x7288, /* PCI_CHIP_RV570_7288 */
|
||||
0x7289, /* PCI_CHIP_RV570_7289 */
|
||||
0x728B, /* PCI_CHIP_RV570_728B */
|
||||
0x728C, /* PCI_CHIP_RV570_728C */
|
||||
0x7240, /* PCI_CHIP_R580_7240 */
|
||||
0x7243, /* PCI_CHIP_R580_7243 */
|
||||
0x7244, /* PCI_CHIP_R580_7244 */
|
||||
0x7245, /* PCI_CHIP_R580_7245 */
|
||||
0x7246, /* PCI_CHIP_R580_7246 */
|
||||
0x7247, /* PCI_CHIP_R580_7247 */
|
||||
0x7248, /* PCI_CHIP_R580_7248 */
|
||||
0x7249, /* PCI_CHIP_R580_7249 */
|
||||
0x724A, /* PCI_CHIP_R580_724A */
|
||||
0x724B, /* PCI_CHIP_R580_724B */
|
||||
0x724C, /* PCI_CHIP_R580_724C */
|
||||
0x724D, /* PCI_CHIP_R580_724D */
|
||||
0x724E, /* PCI_CHIP_R580_724E */
|
||||
0x724F, /* PCI_CHIP_R580_724F */
|
||||
0x7284, /* PCI_CHIP_R580_7284 */
|
||||
0x793F, /* PCI_CHIP_RS600_793F */
|
||||
0x7941, /* PCI_CHIP_RS600_7941 */
|
||||
0x7942, /* PCI_CHIP_RS600_7942 */
|
||||
0x791E, /* PCI_CHIP_RS690_791E */
|
||||
0x791F, /* PCI_CHIP_RS690_791F */
|
||||
0x796C, /* PCI_CHIP_RS740_796C */
|
||||
0x796D, /* PCI_CHIP_RS740_796D */
|
||||
0x796E, /* PCI_CHIP_RS740_796E */
|
||||
0x796F, /* PCI_CHIP_RS740_796F */
|
||||
};
|
||||
|
||||
const int r600_chip_ids[] = {
|
||||
0x9400, /* PCI_CHIP_R600_9400 */
|
||||
0x9401, /* PCI_CHIP_R600_9401 */
|
||||
0x9402, /* PCI_CHIP_R600_9402 */
|
||||
0x9403, /* PCI_CHIP_R600_9403 */
|
||||
0x9405, /* PCI_CHIP_R600_9405 */
|
||||
0x940A, /* PCI_CHIP_R600_940A */
|
||||
0x940B, /* PCI_CHIP_R600_940B */
|
||||
0x940F, /* PCI_CHIP_R600_940F */
|
||||
0x94C0, /* PCI_CHIP_RV610_94C0 */
|
||||
0x94C1, /* PCI_CHIP_RV610_94C1 */
|
||||
0x94C3, /* PCI_CHIP_RV610_94C3 */
|
||||
0x94C4, /* PCI_CHIP_RV610_94C4 */
|
||||
0x94C5, /* PCI_CHIP_RV610_94C5 */
|
||||
0x94C6, /* PCI_CHIP_RV610_94C6 */
|
||||
0x94C7, /* PCI_CHIP_RV610_94C7 */
|
||||
0x94C8, /* PCI_CHIP_RV610_94C8 */
|
||||
0x94C9, /* PCI_CHIP_RV610_94C9 */
|
||||
0x94CB, /* PCI_CHIP_RV610_94CB */
|
||||
0x94CC, /* PCI_CHIP_RV610_94CC */
|
||||
0x94CD, /* PCI_CHIP_RV610_94CD */
|
||||
0x9580, /* PCI_CHIP_RV630_9580 */
|
||||
0x9581, /* PCI_CHIP_RV630_9581 */
|
||||
0x9583, /* PCI_CHIP_RV630_9583 */
|
||||
0x9586, /* PCI_CHIP_RV630_9586 */
|
||||
0x9587, /* PCI_CHIP_RV630_9587 */
|
||||
0x9588, /* PCI_CHIP_RV630_9588 */
|
||||
0x9589, /* PCI_CHIP_RV630_9589 */
|
||||
0x958A, /* PCI_CHIP_RV630_958A */
|
||||
0x958B, /* PCI_CHIP_RV630_958B */
|
||||
0x958C, /* PCI_CHIP_RV630_958C */
|
||||
0x958D, /* PCI_CHIP_RV630_958D */
|
||||
0x958E, /* PCI_CHIP_RV630_958E */
|
||||
0x958F, /* PCI_CHIP_RV630_958F */
|
||||
0x9500, /* PCI_CHIP_RV670_9500 */
|
||||
0x9501, /* PCI_CHIP_RV670_9501 */
|
||||
0x9504, /* PCI_CHIP_RV670_9504 */
|
||||
0x9505, /* PCI_CHIP_RV670_9505 */
|
||||
0x9506, /* PCI_CHIP_RV670_9506 */
|
||||
0x9507, /* PCI_CHIP_RV670_9507 */
|
||||
0x9508, /* PCI_CHIP_RV670_9508 */
|
||||
0x9509, /* PCI_CHIP_RV670_9509 */
|
||||
0x950F, /* PCI_CHIP_RV670_950F */
|
||||
0x9511, /* PCI_CHIP_RV670_9511 */
|
||||
0x9515, /* PCI_CHIP_RV670_9515 */
|
||||
0x9517, /* PCI_CHIP_RV670_9517 */
|
||||
0x9519, /* PCI_CHIP_RV670_9519 */
|
||||
0x95C0, /* PCI_CHIP_RV620_95C0 */
|
||||
0x95C2, /* PCI_CHIP_RV620_95C2 */
|
||||
0x95C4, /* PCI_CHIP_RV620_95C4 */
|
||||
0x95C5, /* PCI_CHIP_RV620_95C5 */
|
||||
0x95C6, /* PCI_CHIP_RV620_95C6 */
|
||||
0x95C7, /* PCI_CHIP_RV620_95C7 */
|
||||
0x95C9, /* PCI_CHIP_RV620_95C9 */
|
||||
0x95CC, /* PCI_CHIP_RV620_95CC */
|
||||
0x95CD, /* PCI_CHIP_RV620_95CD */
|
||||
0x95CE, /* PCI_CHIP_RV620_95CE */
|
||||
0x95CF, /* PCI_CHIP_RV620_95CF */
|
||||
0x9590, /* PCI_CHIP_RV635_9590 */
|
||||
0x9591, /* PCI_CHIP_RV635_9591 */
|
||||
0x9593, /* PCI_CHIP_RV635_9593 */
|
||||
0x9595, /* PCI_CHIP_RV635_9595 */
|
||||
0x9596, /* PCI_CHIP_RV635_9596 */
|
||||
0x9597, /* PCI_CHIP_RV635_9597 */
|
||||
0x9598, /* PCI_CHIP_RV635_9598 */
|
||||
0x9599, /* PCI_CHIP_RV635_9599 */
|
||||
0x959B, /* PCI_CHIP_RV635_959B */
|
||||
0x9610, /* PCI_CHIP_RS780_9610 */
|
||||
0x9611, /* PCI_CHIP_RS780_9611 */
|
||||
0x9612, /* PCI_CHIP_RS780_9612 */
|
||||
0x9613, /* PCI_CHIP_RS780_9613 */
|
||||
0x9614, /* PCI_CHIP_RS780_9614 */
|
||||
0x9615, /* PCI_CHIP_RS780_9615 */
|
||||
0x9616, /* PCI_CHIP_RS780_9616 */
|
||||
0x9710, /* PCI_CHIP_RS880_9710 */
|
||||
0x9711, /* PCI_CHIP_RS880_9711 */
|
||||
0x9712, /* PCI_CHIP_RS880_9712 */
|
||||
0x9713, /* PCI_CHIP_RS880_9713 */
|
||||
0x9714, /* PCI_CHIP_RS880_9714 */
|
||||
0x9715, /* PCI_CHIP_RS880_9715 */
|
||||
0x9440, /* PCI_CHIP_RV770_9440 */
|
||||
0x9441, /* PCI_CHIP_RV770_9441 */
|
||||
0x9442, /* PCI_CHIP_RV770_9442 */
|
||||
0x9443, /* PCI_CHIP_RV770_9443 */
|
||||
0x9444, /* PCI_CHIP_RV770_9444 */
|
||||
0x9446, /* PCI_CHIP_RV770_9446 */
|
||||
0x944A, /* PCI_CHIP_RV770_944A */
|
||||
0x944B, /* PCI_CHIP_RV770_944B */
|
||||
0x944C, /* PCI_CHIP_RV770_944C */
|
||||
0x944E, /* PCI_CHIP_RV770_944E */
|
||||
0x9450, /* PCI_CHIP_RV770_9450 */
|
||||
0x9452, /* PCI_CHIP_RV770_9452 */
|
||||
0x9456, /* PCI_CHIP_RV770_9456 */
|
||||
0x945A, /* PCI_CHIP_RV770_945A */
|
||||
0x945B, /* PCI_CHIP_RV770_945B */
|
||||
0x945E, /* PCI_CHIP_RV770_945E */
|
||||
0x9460, /* PCI_CHIP_RV790_9460 */
|
||||
0x9462, /* PCI_CHIP_RV790_9462 */
|
||||
0x946A, /* PCI_CHIP_RV770_946A */
|
||||
0x946B, /* PCI_CHIP_RV770_946B */
|
||||
0x947A, /* PCI_CHIP_RV770_947A */
|
||||
0x947B, /* PCI_CHIP_RV770_947B */
|
||||
0x9480, /* PCI_CHIP_RV730_9480 */
|
||||
0x9487, /* PCI_CHIP_RV730_9487 */
|
||||
0x9488, /* PCI_CHIP_RV730_9488 */
|
||||
0x9489, /* PCI_CHIP_RV730_9489 */
|
||||
0x948A, /* PCI_CHIP_RV730_948A */
|
||||
0x948F, /* PCI_CHIP_RV730_948F */
|
||||
0x9490, /* PCI_CHIP_RV730_9490 */
|
||||
0x9491, /* PCI_CHIP_RV730_9491 */
|
||||
0x9495, /* PCI_CHIP_RV730_9495 */
|
||||
0x9498, /* PCI_CHIP_RV730_9498 */
|
||||
0x949C, /* PCI_CHIP_RV730_949C */
|
||||
0x949E, /* PCI_CHIP_RV730_949E */
|
||||
0x949F, /* PCI_CHIP_RV730_949F */
|
||||
0x9540, /* PCI_CHIP_RV710_9540 */
|
||||
0x9541, /* PCI_CHIP_RV710_9541 */
|
||||
0x9542, /* PCI_CHIP_RV710_9542 */
|
||||
0x954E, /* PCI_CHIP_RV710_954E */
|
||||
0x954F, /* PCI_CHIP_RV710_954F */
|
||||
0x9552, /* PCI_CHIP_RV710_9552 */
|
||||
0x9553, /* PCI_CHIP_RV710_9553 */
|
||||
0x9555, /* PCI_CHIP_RV710_9555 */
|
||||
0x9557, /* PCI_CHIP_RV710_9557 */
|
||||
0x955F, /* PCI_CHIP_RV710_955F */
|
||||
0x94A0, /* PCI_CHIP_RV740_94A0 */
|
||||
0x94A1, /* PCI_CHIP_RV740_94A1 */
|
||||
0x94A3, /* PCI_CHIP_RV740_94A3 */
|
||||
0x94B1, /* PCI_CHIP_RV740_94B1 */
|
||||
0x94B3, /* PCI_CHIP_RV740_94B3 */
|
||||
0x94B4, /* PCI_CHIP_RV740_94B4 */
|
||||
0x94B5, /* PCI_CHIP_RV740_94B5 */
|
||||
0x94B9, /* PCI_CHIP_RV740_94B9 */
|
||||
0x68E0, /* PCI_CHIP_CEDAR_68E0 */
|
||||
0x68E1, /* PCI_CHIP_CEDAR_68E1 */
|
||||
0x68E4, /* PCI_CHIP_CEDAR_68E4 */
|
||||
0x68E5, /* PCI_CHIP_CEDAR_68E5 */
|
||||
0x68E8, /* PCI_CHIP_CEDAR_68E8 */
|
||||
0x68E9, /* PCI_CHIP_CEDAR_68E9 */
|
||||
0x68F1, /* PCI_CHIP_CEDAR_68F1 */
|
||||
0x68F8, /* PCI_CHIP_CEDAR_68F8 */
|
||||
0x68F9, /* PCI_CHIP_CEDAR_68F9 */
|
||||
0x68FE, /* PCI_CHIP_CEDAR_68FE */
|
||||
0x68C0, /* PCI_CHIP_REDWOOD_68C0 */
|
||||
0x68C1, /* PCI_CHIP_REDWOOD_68C1 */
|
||||
0x68C8, /* PCI_CHIP_REDWOOD_68C8 */
|
||||
0x68C9, /* PCI_CHIP_REDWOOD_68C9 */
|
||||
0x68D8, /* PCI_CHIP_REDWOOD_68D8 */
|
||||
0x68D9, /* PCI_CHIP_REDWOOD_68D9 */
|
||||
0x68DA, /* PCI_CHIP_REDWOOD_68DA */
|
||||
0x68DE, /* PCI_CHIP_REDWOOD_68DE */
|
||||
0x68A0, /* PCI_CHIP_JUNIPER_68A0 */
|
||||
0x68A1, /* PCI_CHIP_JUNIPER_68A1 */
|
||||
0x68A8, /* PCI_CHIP_JUNIPER_68A8 */
|
||||
0x68A9, /* PCI_CHIP_JUNIPER_68A9 */
|
||||
0x68B0, /* PCI_CHIP_JUNIPER_68B0 */
|
||||
0x68B8, /* PCI_CHIP_JUNIPER_68B8 */
|
||||
0x68B9, /* PCI_CHIP_JUNIPER_68B9 */
|
||||
0x68BE, /* PCI_CHIP_JUNIPER_68BE */
|
||||
0x6880, /* PCI_CHIP_CYPRESS_6880 */
|
||||
0x6888, /* PCI_CHIP_CYPRESS_6888 */
|
||||
0x6889, /* PCI_CHIP_CYPRESS_6889 */
|
||||
0x688A, /* PCI_CHIP_CYPRESS_688A */
|
||||
0x6898, /* PCI_CHIP_CYPRESS_6898 */
|
||||
0x6899, /* PCI_CHIP_CYPRESS_6899 */
|
||||
0x689E, /* PCI_CHIP_CYPRESS_689E */
|
||||
0x689C, /* PCI_CHIP_HEMLOCK_689C */
|
||||
0x689D, /* PCI_CHIP_HEMLOCK_689D */
|
||||
0x9802, /* PCI_CHIP_PALM_9802 */
|
||||
0x9803, /* PCI_CHIP_PALM_9803 */
|
||||
0x9804, /* PCI_CHIP_PALM_9804 */
|
||||
0x9805, /* PCI_CHIP_PALM_9805 */
|
||||
0x6720, /* PCI_CHIP_BARTS_6720 */
|
||||
0x6721, /* PCI_CHIP_BARTS_6721 */
|
||||
0x6722, /* PCI_CHIP_BARTS_6722 */
|
||||
0x6723, /* PCI_CHIP_BARTS_6723 */
|
||||
0x6724, /* PCI_CHIP_BARTS_6724 */
|
||||
0x6725, /* PCI_CHIP_BARTS_6725 */
|
||||
0x6726, /* PCI_CHIP_BARTS_6726 */
|
||||
0x6727, /* PCI_CHIP_BARTS_6727 */
|
||||
0x6728, /* PCI_CHIP_BARTS_6728 */
|
||||
0x6729, /* PCI_CHIP_BARTS_6729 */
|
||||
0x6738, /* PCI_CHIP_BARTS_6738 */
|
||||
0x6739, /* PCI_CHIP_BARTS_6738 */
|
||||
0x6740, /* PCI_CHIP_TURKS_6740 */
|
||||
0x6741, /* PCI_CHIP_TURKS_6741 */
|
||||
0x6742, /* PCI_CHIP_TURKS_6742 */
|
||||
0x6743, /* PCI_CHIP_TURKS_6743 */
|
||||
0x6744, /* PCI_CHIP_TURKS_6744 */
|
||||
0x6745, /* PCI_CHIP_TURKS_6745 */
|
||||
0x6746, /* PCI_CHIP_TURKS_6746 */
|
||||
0x6747, /* PCI_CHIP_TURKS_6747 */
|
||||
0x6748, /* PCI_CHIP_TURKS_6748 */
|
||||
0x6749, /* PCI_CHIP_TURKS_6749 */
|
||||
0x6750, /* PCI_CHIP_TURKS_6750 */
|
||||
0x6758, /* PCI_CHIP_TURKS_6758 */
|
||||
0x6759, /* PCI_CHIP_TURKS_6759 */
|
||||
0x6760, /* PCI_CHIP_CAICOS_6760 */
|
||||
0x6761, /* PCI_CHIP_CAICOS_6761 */
|
||||
0x6762, /* PCI_CHIP_CAICOS_6762 */
|
||||
0x6763, /* PCI_CHIP_CAICOS_6763 */
|
||||
0x6764, /* PCI_CHIP_CAICOS_6764 */
|
||||
0x6765, /* PCI_CHIP_CAICOS_6765 */
|
||||
0x6766, /* PCI_CHIP_CAICOS_6766 */
|
||||
0x6767, /* PCI_CHIP_CAICOS_6767 */
|
||||
0x6768, /* PCI_CHIP_CAICOS_6768 */
|
||||
0x6770, /* PCI_CHIP_CAICOS_6770 */
|
||||
0x6779, /* PCI_CHIP_CAICOS_6779 */
|
||||
};
|
||||
|
||||
const struct dri2_driver_map driver_map[] = {
|
||||
{ 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids) },
|
||||
{ 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids) },
|
||||
{ 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids) },
|
||||
{ 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids) },
|
||||
{ 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids) },
|
||||
{ 0x1002, "r600", r600_chip_ids, ARRAY_SIZE(r600_chip_ids) },
|
||||
{ 0x10de, "nouveau", NULL, -1 },
|
||||
};
|
||||
|
||||
static char *
|
||||
dri2_get_device_name(int fd)
|
||||
static _EGLImage *
|
||||
dri2_create_image_khr_pixmap(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
EGLClientBuffer buffer, const EGLint *attr_list)
|
||||
{
|
||||
struct udev *udev;
|
||||
struct udev_device *device;
|
||||
struct stat buf;
|
||||
char *device_name;
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct gbm_dri_bo *dri_bo = gbm_dri_bo((struct gbm_bo *) buffer);
|
||||
struct dri2_egl_image *dri2_img;
|
||||
|
||||
udev = udev_new();
|
||||
if (fstat(fd, &buf) < 0) {
|
||||
_eglLog(_EGL_WARNING, "EGL-DRI2: failed to stat fd %d", fd);
|
||||
goto out;
|
||||
dri2_img = malloc(sizeof *dri2_img);
|
||||
if (!dri2_img) {
|
||||
_eglError(EGL_BAD_ALLOC, "dri2_create_image_khr_pixmap");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
device = udev_device_new_from_devnum(udev, 'c', buf.st_rdev);
|
||||
if (device == NULL) {
|
||||
_eglLog(_EGL_WARNING,
|
||||
"EGL-DRI2: could not create udev device for fd %d", fd);
|
||||
goto out;
|
||||
if (!_eglInitImage(&dri2_img->base, disp)) {
|
||||
free(dri2_img);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
device_name = udev_device_get_devnode(device);
|
||||
if (!device_name)
|
||||
goto out;
|
||||
device_name = strdup(device_name);
|
||||
dri2_img->dri_image = dri2_dpy->image->dupImage(dri_bo->image, dri2_img);
|
||||
if (dri2_img->dri_image == NULL) {
|
||||
free(dri2_img);
|
||||
_eglError(EGL_BAD_ALLOC, "dri2_create_image_khr_pixmap");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
out:
|
||||
udev_device_unref(device);
|
||||
udev_unref(udev);
|
||||
|
||||
return device_name;
|
||||
return &dri2_img->base;
|
||||
}
|
||||
|
||||
char *
|
||||
dri2_get_driver_for_fd(int fd)
|
||||
static _EGLImage *
|
||||
dri2_drm_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLContext *ctx, EGLenum target,
|
||||
EGLClientBuffer buffer, const EGLint *attr_list)
|
||||
{
|
||||
struct udev *udev;
|
||||
struct udev_device *device, *parent;
|
||||
struct stat buf;
|
||||
const char *pci_id;
|
||||
char *driver = NULL;
|
||||
int vendor_id, chip_id, i, j;
|
||||
(void) drv;
|
||||
|
||||
udev = udev_new();
|
||||
if (fstat(fd, &buf) < 0) {
|
||||
_eglLog(_EGL_WARNING, "EGL-DRI2: failed to stat fd %d", fd);
|
||||
goto out;
|
||||
switch (target) {
|
||||
case EGL_NATIVE_PIXMAP_KHR:
|
||||
return dri2_create_image_khr_pixmap(disp, ctx, buffer, attr_list);
|
||||
default:
|
||||
return dri2_create_image_khr(drv, disp, ctx, target, buffer, attr_list);
|
||||
}
|
||||
|
||||
device = udev_device_new_from_devnum(udev, 'c', buf.st_rdev);
|
||||
if (device == NULL) {
|
||||
_eglLog(_EGL_WARNING,
|
||||
"EGL-DRI2: could not create udev device for fd %d", fd);
|
||||
goto out;
|
||||
}
|
||||
|
||||
parent = udev_device_get_parent(device);
|
||||
if (parent == NULL) {
|
||||
_eglLog(_EGL_WARNING, "DRI2: could not get parent device");
|
||||
goto out;
|
||||
}
|
||||
|
||||
pci_id = udev_device_get_property_value(parent, "PCI_ID");
|
||||
if (pci_id == NULL || sscanf(pci_id, "%x:%x", &vendor_id, &chip_id) != 2) {
|
||||
_eglLog(_EGL_WARNING, "EGL-DRI2: malformed or no PCI ID");
|
||||
goto out;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(driver_map); i++) {
|
||||
if (vendor_id != driver_map[i].vendor_id)
|
||||
continue;
|
||||
if (driver_map[i].num_chips_ids == -1) {
|
||||
driver = strdup(driver_map[i].driver);
|
||||
_eglLog(_EGL_DEBUG, "pci id for %d: %04x:%04x, driver %s",
|
||||
fd, vendor_id, chip_id, driver);
|
||||
goto out;
|
||||
}
|
||||
|
||||
for (j = 0; j < driver_map[i].num_chips_ids; j++)
|
||||
if (driver_map[i].chip_ids[j] == chip_id) {
|
||||
driver = strdup(driver_map[i].driver);
|
||||
_eglLog(_EGL_DEBUG, "pci id for %d: %04x:%04x, driver %s",
|
||||
fd, vendor_id, chip_id, driver);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
udev_device_unref(device);
|
||||
udev_unref(udev);
|
||||
|
||||
return driver;
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -674,59 +89,58 @@ EGLBoolean
|
||||
dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy;
|
||||
struct gbm_device *gbm;
|
||||
int i;
|
||||
|
||||
dri2_dpy = malloc(sizeof *dri2_dpy);
|
||||
if (!dri2_dpy)
|
||||
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
|
||||
|
||||
|
||||
memset(dri2_dpy, 0, sizeof *dri2_dpy);
|
||||
|
||||
disp->DriverData = (void *) dri2_dpy;
|
||||
dri2_dpy->fd = (int) disp->PlatformDisplay;
|
||||
|
||||
dri2_dpy->driver_name = dri2_get_driver_for_fd(dri2_dpy->fd);
|
||||
if (dri2_dpy->driver_name == NULL)
|
||||
return _eglError(EGL_BAD_ALLOC, "DRI2: failed to get driver name");
|
||||
|
||||
dri2_dpy->device_name = dri2_get_device_name(dri2_dpy->fd);
|
||||
if (dri2_dpy->device_name == NULL) {
|
||||
_eglError(EGL_BAD_ALLOC, "DRI2: failed to get device name");
|
||||
goto cleanup_driver_name;
|
||||
gbm = (struct gbm_device *) disp->PlatformDisplay;
|
||||
if (strcmp(gbm_device_get_backend_name(gbm), "drm") != 0) {
|
||||
free(dri2_dpy);
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
if (!dri2_load_driver(disp))
|
||||
goto cleanup_device_name;
|
||||
dri2_dpy->gbm_dri = gbm_dri_device(gbm);
|
||||
if (dri2_dpy->gbm_dri->base.type != GBM_DRM_DRIVER_TYPE_DRI) {
|
||||
free(dri2_dpy);
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
dri2_dpy->extensions[0] = &image_lookup_extension.base;
|
||||
dri2_dpy->extensions[1] = &use_invalidate.base;
|
||||
dri2_dpy->extensions[2] = NULL;
|
||||
dri2_dpy->fd = gbm_device_get_fd(gbm);
|
||||
dri2_dpy->device_name = dri2_get_device_name_for_fd(dri2_dpy->fd);
|
||||
dri2_dpy->driver_name = dri2_dpy->gbm_dri->base.driver_name;
|
||||
|
||||
if (!dri2_create_screen(disp))
|
||||
goto cleanup_driver;
|
||||
dri2_dpy->dri_screen = dri2_dpy->gbm_dri->screen;
|
||||
dri2_dpy->core = dri2_dpy->gbm_dri->core;
|
||||
dri2_dpy->dri2 = dri2_dpy->gbm_dri->dri2;
|
||||
dri2_dpy->image = dri2_dpy->gbm_dri->image;
|
||||
dri2_dpy->driver_configs = dri2_dpy->gbm_dri->driver_configs;
|
||||
|
||||
dri2_dpy->gbm_dri->lookup_image = dri2_lookup_egl_image;
|
||||
dri2_dpy->gbm_dri->lookup_user_data = disp;
|
||||
|
||||
dri2_setup_screen(disp);
|
||||
|
||||
for (i = 0; dri2_dpy->driver_configs[i]; i++)
|
||||
dri2_add_config(disp, dri2_dpy->driver_configs[i], i + 1, 0, 0, NULL);
|
||||
dri2_add_config(disp, dri2_dpy->driver_configs[i],
|
||||
i + 1, 0, 0, NULL);
|
||||
|
||||
drv->API.CreateImageKHR = dri2_drm_create_image_khr;
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
disp->Extensions.WL_bind_wayland_display = EGL_TRUE;
|
||||
#endif
|
||||
dri2_dpy->authenticate = dri2_drm_authenticate;
|
||||
|
||||
|
||||
/* we're supporting EGL 1.4 */
|
||||
disp->VersionMajor = 1;
|
||||
disp->VersionMinor = 4;
|
||||
|
||||
return EGL_TRUE;
|
||||
|
||||
cleanup_driver:
|
||||
dlclose(dri2_dpy->driver);
|
||||
cleanup_device_name:
|
||||
free(dri2_dpy->device_name);
|
||||
cleanup_driver_name:
|
||||
free(dri2_dpy->driver_name);
|
||||
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -32,6 +32,8 @@
|
||||
#include <dlfcn.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <xf86drm.h>
|
||||
|
||||
#include "egl_dri2.h"
|
||||
|
||||
@@ -57,6 +59,29 @@ force_roundtrip(struct wl_display *display)
|
||||
wl_display_iterate(display, WL_DISPLAY_READABLE);
|
||||
}
|
||||
|
||||
static void
|
||||
wl_buffer_release(void *data, struct wl_buffer *buffer)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = data;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < WL_BUFFER_COUNT; ++i)
|
||||
if (dri2_surf->wl_drm_buffer[i] == buffer)
|
||||
break;
|
||||
|
||||
assert(i <= WL_BUFFER_COUNT);
|
||||
|
||||
/* not found? */
|
||||
if (i == WL_BUFFER_COUNT)
|
||||
return;
|
||||
|
||||
dri2_surf->wl_buffer_lock[i] = 0;
|
||||
|
||||
}
|
||||
|
||||
static struct wl_buffer_listener wl_buffer_listener = {
|
||||
wl_buffer_release
|
||||
};
|
||||
|
||||
/**
|
||||
* Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
|
||||
@@ -83,13 +108,16 @@ dri2_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
if (!_eglInitSurface(&dri2_surf->base, disp, type, conf, attrib_list))
|
||||
goto cleanup_surf;
|
||||
|
||||
for (i = 0; i < WL_BUFFER_COUNT; ++i)
|
||||
for (i = 0; i < WL_BUFFER_COUNT; ++i) {
|
||||
dri2_surf->wl_drm_buffer[i] = NULL;
|
||||
dri2_surf->wl_buffer_lock[i] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < __DRI_BUFFER_COUNT; ++i)
|
||||
dri2_surf->dri_buffers[i] = NULL;
|
||||
|
||||
dri2_surf->pending_buffer = NULL;
|
||||
dri2_surf->third_buffer = NULL;
|
||||
dri2_surf->block_swap_buffers = EGL_FALSE;
|
||||
|
||||
switch (type) {
|
||||
@@ -107,7 +135,7 @@ dri2_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
dri2_surf->base.Width = dri2_surf->wl_pix->width;
|
||||
dri2_surf->base.Height = dri2_surf->wl_pix->height;
|
||||
|
||||
if (dri2_surf->wl_pix->name > 0) {
|
||||
if (dri2_surf->wl_pix->driver_private) {
|
||||
dri2_buf = dri2_surf->wl_pix->driver_private;
|
||||
dri2_surf->dri_buffers[__DRI_BUFFER_FRONT_LEFT] = dri2_buf->dri_buffer;
|
||||
}
|
||||
@@ -185,6 +213,11 @@ dri2_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
dri2_dpy->dri2->releaseBuffer(dri2_dpy->dri_screen,
|
||||
dri2_surf->dri_buffers[i]);
|
||||
|
||||
if (dri2_surf->third_buffer) {
|
||||
dri2_dpy->dri2->releaseBuffer(dri2_dpy->dri_screen,
|
||||
dri2_surf->third_buffer);
|
||||
}
|
||||
|
||||
free(surf);
|
||||
|
||||
return EGL_TRUE;
|
||||
@@ -204,7 +237,23 @@ dri2_wl_egl_pixmap_destroy(struct wl_egl_pixmap *egl_pixmap)
|
||||
|
||||
egl_pixmap->driver_private = NULL;
|
||||
egl_pixmap->destroy = NULL;
|
||||
egl_pixmap->name = 0;
|
||||
}
|
||||
|
||||
static struct wl_buffer *
|
||||
wayland_create_buffer(struct dri2_egl_surface *dri2_surf,
|
||||
__DRIbuffer *buffer,
|
||||
struct wl_visual *visual)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy =
|
||||
dri2_egl_display(dri2_surf->base.Resource.Display);
|
||||
struct wl_buffer *buf;
|
||||
|
||||
buf = wl_drm_create_buffer(dri2_dpy->wl_drm, buffer->name,
|
||||
dri2_surf->base.Width, dri2_surf->base.Height,
|
||||
buffer->pitch, visual);
|
||||
wl_buffer_add_listener(buf, &wl_buffer_listener, dri2_surf);
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -218,6 +267,8 @@ dri2_process_back_buffer(struct dri2_egl_surface *dri2_surf, unsigned format)
|
||||
switch (dri2_surf->type) {
|
||||
case DRI2_WINDOW_SURFACE:
|
||||
/* allocate a front buffer for our double-buffered window*/
|
||||
if (dri2_surf->dri_buffers[__DRI_BUFFER_FRONT_LEFT] != NULL)
|
||||
break;
|
||||
dri2_surf->dri_buffers[__DRI_BUFFER_FRONT_LEFT] =
|
||||
dri2_dpy->dri2->allocateBuffer(dri2_dpy->dri_screen,
|
||||
__DRI_BUFFER_FRONT_LEFT, format,
|
||||
@@ -244,8 +295,6 @@ dri2_process_front_buffer(struct dri2_egl_surface *dri2_surf, unsigned format)
|
||||
dri2_buf->dri_buffer = dri2_surf->dri_buffers[__DRI_BUFFER_FRONT_LEFT];
|
||||
dri2_buf->dri2_dpy = dri2_dpy;
|
||||
|
||||
dri2_surf->wl_pix->name = dri2_buf->dri_buffer->name;
|
||||
dri2_surf->wl_pix->stride = dri2_buf->dri_buffer->pitch;
|
||||
dri2_surf->wl_pix->driver_private = dri2_buf;
|
||||
dri2_surf->wl_pix->destroy = dri2_wl_egl_pixmap_destroy;
|
||||
break;
|
||||
@@ -277,14 +326,20 @@ dri2_release_buffers(struct dri2_egl_surface *dri2_surf)
|
||||
dri2_egl_display(dri2_surf->base.Resource.Display);
|
||||
int i;
|
||||
|
||||
if (dri2_surf->third_buffer) {
|
||||
dri2_dpy->dri2->releaseBuffer(dri2_dpy->dri_screen,
|
||||
dri2_surf->third_buffer);
|
||||
dri2_surf->third_buffer = NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < __DRI_BUFFER_COUNT; ++i) {
|
||||
if (dri2_surf->dri_buffers[i]) {
|
||||
switch (i) {
|
||||
case __DRI_BUFFER_FRONT_LEFT:
|
||||
if (dri2_surf->pending_buffer)
|
||||
force_roundtrip(dri2_dpy->wl_dpy->display);
|
||||
force_roundtrip(dri2_dpy->wl_dpy);
|
||||
dri2_surf->pending_buffer = dri2_surf->dri_buffers[i];
|
||||
wl_display_sync_callback(dri2_dpy->wl_dpy->display,
|
||||
wl_display_sync_callback(dri2_dpy->wl_dpy,
|
||||
dri2_release_pending_buffer, dri2_surf);
|
||||
break;
|
||||
default:
|
||||
@@ -297,6 +352,76 @@ dri2_release_buffers(struct dri2_egl_surface *dri2_surf)
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
pointer_swap(const void **p1, const void **p2)
|
||||
{
|
||||
const void *tmp = *p1;
|
||||
*p1 = *p2;
|
||||
*p2 = tmp;
|
||||
}
|
||||
|
||||
static void
|
||||
destroy_third_buffer(struct dri2_egl_surface *dri2_surf)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy =
|
||||
dri2_egl_display(dri2_surf->base.Resource.Display);
|
||||
|
||||
if (dri2_surf->third_buffer == NULL)
|
||||
return;
|
||||
|
||||
dri2_dpy->dri2->releaseBuffer(dri2_dpy->dri_screen,
|
||||
dri2_surf->third_buffer);
|
||||
dri2_surf->third_buffer = NULL;
|
||||
|
||||
if (dri2_surf->wl_drm_buffer[WL_BUFFER_THIRD])
|
||||
wl_buffer_destroy(dri2_surf->wl_drm_buffer[WL_BUFFER_THIRD]);
|
||||
dri2_surf->wl_drm_buffer[WL_BUFFER_THIRD] = NULL;
|
||||
dri2_surf->wl_buffer_lock[WL_BUFFER_THIRD] = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
swap_wl_buffers(struct dri2_egl_surface *dri2_surf,
|
||||
enum wayland_buffer_type a, enum wayland_buffer_type b)
|
||||
{
|
||||
int tmp;
|
||||
|
||||
tmp = dri2_surf->wl_buffer_lock[a];
|
||||
dri2_surf->wl_buffer_lock[a] = dri2_surf->wl_buffer_lock[b];
|
||||
dri2_surf->wl_buffer_lock[b] = tmp;
|
||||
|
||||
pointer_swap((const void **) &dri2_surf->wl_drm_buffer[a],
|
||||
(const void **) &dri2_surf->wl_drm_buffer[b]);
|
||||
}
|
||||
|
||||
static void
|
||||
swap_back_and_third(struct dri2_egl_surface *dri2_surf)
|
||||
{
|
||||
if (dri2_surf->wl_buffer_lock[WL_BUFFER_THIRD])
|
||||
destroy_third_buffer(dri2_surf);
|
||||
|
||||
pointer_swap((const void **) &dri2_surf->dri_buffers[__DRI_BUFFER_BACK_LEFT],
|
||||
(const void **) &dri2_surf->third_buffer);
|
||||
|
||||
swap_wl_buffers(dri2_surf, WL_BUFFER_BACK, WL_BUFFER_THIRD);
|
||||
}
|
||||
|
||||
static void
|
||||
dri2_prior_buffer_creation(struct dri2_egl_surface *dri2_surf,
|
||||
unsigned int type)
|
||||
{
|
||||
switch (type) {
|
||||
case __DRI_BUFFER_BACK_LEFT:
|
||||
if (dri2_surf->wl_buffer_lock[WL_BUFFER_BACK])
|
||||
swap_back_and_third(dri2_surf);
|
||||
else if (dri2_surf->third_buffer)
|
||||
destroy_third_buffer(dri2_surf);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
static __DRIbuffer *
|
||||
dri2_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
@@ -323,6 +448,7 @@ dri2_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
if (dri2_surf->wl_drm_buffer[i])
|
||||
wl_buffer_destroy(dri2_surf->wl_drm_buffer[i]);
|
||||
dri2_surf->wl_drm_buffer[i] = NULL;
|
||||
dri2_surf->wl_buffer_lock[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,6 +457,8 @@ dri2_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
assert(attachments[i] < __DRI_BUFFER_COUNT);
|
||||
assert(dri2_surf->buffer_count < 5);
|
||||
|
||||
dri2_prior_buffer_creation(dri2_surf, attachments[i]);
|
||||
|
||||
if (dri2_surf->dri_buffers[attachments[i]] == NULL) {
|
||||
|
||||
dri2_surf->dri_buffers[attachments[i]] =
|
||||
@@ -357,6 +485,12 @@ dri2_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
assert(dri2_surf->type == DRI2_PIXMAP_SURFACE ||
|
||||
dri2_surf->dri_buffers[__DRI_BUFFER_BACK_LEFT]);
|
||||
|
||||
if (dri2_surf->type == DRI2_PIXMAP_SURFACE && !dri2_surf->wl_pix->buffer)
|
||||
dri2_surf->wl_pix->buffer =
|
||||
wayland_create_buffer(dri2_surf,
|
||||
dri2_surf->dri_buffers[__DRI_BUFFER_FRONT_LEFT],
|
||||
dri2_surf->wl_pix->visual);
|
||||
|
||||
*out_count = dri2_surf->buffer_count;
|
||||
if (dri2_surf->buffer_count == 0)
|
||||
return NULL;
|
||||
@@ -417,17 +551,6 @@ dri2_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct wl_buffer *
|
||||
wayland_create_buffer(struct dri2_egl_surface *dri2_surf, __DRIbuffer *buffer)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy =
|
||||
dri2_egl_display(dri2_surf->base.Resource.Display);
|
||||
|
||||
return wl_drm_create_buffer(dri2_dpy->wl_dpy->drm, buffer->name,
|
||||
dri2_surf->base.Width, dri2_surf->base.Height,
|
||||
buffer->pitch, dri2_surf->wl_win->visual);
|
||||
}
|
||||
|
||||
static void
|
||||
wayland_frame_callback(struct wl_surface *surface, void *data, uint32_t time)
|
||||
{
|
||||
@@ -436,14 +559,6 @@ wayland_frame_callback(struct wl_surface *surface, void *data, uint32_t time)
|
||||
dri2_surf->block_swap_buffers = EGL_FALSE;
|
||||
}
|
||||
|
||||
static inline void
|
||||
pointer_swap(const void **p1, const void **p2)
|
||||
{
|
||||
const void *tmp = *p1;
|
||||
*p1 = *p2;
|
||||
*p2 = tmp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called via eglSwapBuffers(), drv->API.SwapBuffers().
|
||||
*/
|
||||
@@ -455,12 +570,12 @@ dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
struct dri2_egl_driver *dri2_drv = dri2_egl_driver(drv);
|
||||
|
||||
while (dri2_surf->block_swap_buffers)
|
||||
wl_display_iterate(dri2_dpy->wl_dpy->display, WL_DISPLAY_READABLE);
|
||||
wl_display_iterate(dri2_dpy->wl_dpy, WL_DISPLAY_READABLE);
|
||||
|
||||
dri2_surf->block_swap_buffers = EGL_TRUE;
|
||||
wl_display_frame_callback(dri2_dpy->wl_dpy->display,
|
||||
dri2_surf->wl_win->surface,
|
||||
wayland_frame_callback, dri2_surf);
|
||||
wl_display_frame_callback(dri2_dpy->wl_dpy,
|
||||
dri2_surf->wl_win->surface,
|
||||
wayland_frame_callback, dri2_surf);
|
||||
|
||||
if (dri2_surf->type == DRI2_WINDOW_SURFACE) {
|
||||
pointer_swap(
|
||||
@@ -472,17 +587,20 @@ dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
dri2_surf->dri_buffers[__DRI_BUFFER_BACK_LEFT]->attachment =
|
||||
__DRI_BUFFER_BACK_LEFT;
|
||||
|
||||
pointer_swap((const void **) &dri2_surf->wl_drm_buffer[WL_BUFFER_FRONT],
|
||||
(const void **) &dri2_surf->wl_drm_buffer[WL_BUFFER_BACK]);
|
||||
swap_wl_buffers(dri2_surf, WL_BUFFER_FRONT, WL_BUFFER_BACK);
|
||||
|
||||
if (!dri2_surf->wl_drm_buffer[WL_BUFFER_FRONT])
|
||||
dri2_surf->wl_drm_buffer[WL_BUFFER_FRONT] =
|
||||
wayland_create_buffer(dri2_surf,
|
||||
dri2_surf->dri_buffers[__DRI_BUFFER_FRONT_LEFT]);
|
||||
dri2_surf->dri_buffers[__DRI_BUFFER_FRONT_LEFT],
|
||||
dri2_surf->wl_win->visual);
|
||||
|
||||
wl_buffer_damage(dri2_surf->wl_drm_buffer[WL_BUFFER_FRONT], 0, 0,
|
||||
dri2_surf->base.Width, dri2_surf->base.Height);
|
||||
wl_surface_attach(dri2_surf->wl_win->surface,
|
||||
dri2_surf->wl_drm_buffer[WL_BUFFER_FRONT],
|
||||
dri2_surf->dx, dri2_surf->dy);
|
||||
dri2_surf->wl_buffer_lock[WL_BUFFER_FRONT] = 1;
|
||||
|
||||
dri2_surf->wl_win->attached_width = dri2_surf->base.Width;
|
||||
dri2_surf->wl_win->attached_height = dri2_surf->base.Height;
|
||||
@@ -536,18 +654,23 @@ dri2_create_image_khr_pixmap(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
wl_egl_pixmap->width,
|
||||
wl_egl_pixmap->height);
|
||||
|
||||
wl_egl_pixmap->name = dri2_buf->dri_buffer->name;
|
||||
wl_egl_pixmap->stride = dri2_buf->dri_buffer->pitch;
|
||||
wl_egl_pixmap->destroy = dri2_wl_egl_pixmap_destroy;
|
||||
wl_egl_pixmap->driver_private = dri2_buf;
|
||||
|
||||
wl_egl_pixmap->buffer =
|
||||
wl_drm_create_buffer(dri2_dpy->wl_drm,
|
||||
dri2_buf->dri_buffer->name,
|
||||
wl_egl_pixmap->width,
|
||||
wl_egl_pixmap->height,
|
||||
dri2_buf->dri_buffer->pitch,
|
||||
wl_egl_pixmap->visual);
|
||||
|
||||
wl_attr_list[1] = wl_egl_pixmap->width;
|
||||
wl_attr_list[3] = wl_egl_pixmap->height;
|
||||
wl_attr_list[5] = wl_egl_pixmap->stride / 4;
|
||||
|
||||
wl_attr_list[5] = dri2_buf->dri_buffer->pitch / 4;
|
||||
|
||||
return dri2_create_image_khr(disp->Driver, disp, ctx, EGL_DRM_BUFFER_MESA,
|
||||
(EGLClientBuffer)(intptr_t) wl_egl_pixmap->name, wl_attr_list);
|
||||
(EGLClientBuffer)(intptr_t) dri2_buf->dri_buffer->name, wl_attr_list);
|
||||
}
|
||||
|
||||
static _EGLImage *
|
||||
@@ -571,16 +694,16 @@ dri2_wayland_authenticate(_EGLDisplay *disp, uint32_t id)
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
int ret = 0;
|
||||
|
||||
dri2_dpy->wl_dpy->authenticated = false;
|
||||
dri2_dpy->authenticated = 0;
|
||||
|
||||
wl_drm_authenticate(dri2_dpy->wl_dpy->drm, id);
|
||||
force_roundtrip(dri2_dpy->wl_dpy->display);
|
||||
wl_drm_authenticate(dri2_dpy->wl_drm, id);
|
||||
force_roundtrip(dri2_dpy->wl_dpy);
|
||||
|
||||
if (!dri2_dpy->wl_dpy->authenticated)
|
||||
if (!dri2_dpy->authenticated)
|
||||
ret = -1;
|
||||
|
||||
/* reset authenticated */
|
||||
dri2_dpy->wl_dpy->authenticated = true;
|
||||
dri2_dpy->authenticated = 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -606,10 +729,45 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
drm_handle_device(void *data, struct wl_drm *drm, const char *device)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = data;
|
||||
drm_magic_t magic;
|
||||
|
||||
dri2_dpy->device_name = strdup(device);
|
||||
if (!dri2_dpy->device_name)
|
||||
return;
|
||||
|
||||
dri2_dpy->fd = open(dri2_dpy->device_name, O_RDWR);
|
||||
if (dri2_dpy->fd == -1) {
|
||||
_eglLog(_EGL_WARNING, "wayland-egl: could not open %s (%s)",
|
||||
dri2_dpy->device_name, strerror(errno));
|
||||
return;
|
||||
}
|
||||
|
||||
drmGetMagic(dri2_dpy->fd, &magic);
|
||||
wl_drm_authenticate(dri2_dpy->wl_drm, magic);
|
||||
}
|
||||
|
||||
static void
|
||||
drm_handle_authenticated(void *data, struct wl_drm *drm)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = data;
|
||||
|
||||
dri2_dpy->authenticated = 1;
|
||||
}
|
||||
|
||||
static const struct wl_drm_listener drm_listener = {
|
||||
drm_handle_device,
|
||||
drm_handle_authenticated
|
||||
};
|
||||
|
||||
EGLBoolean
|
||||
dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy;
|
||||
uint32_t id;
|
||||
int i;
|
||||
|
||||
drv->API.CreateWindowSurface = dri2_create_window_surface;
|
||||
@@ -626,23 +784,31 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
memset(dri2_dpy, 0, sizeof *dri2_dpy);
|
||||
|
||||
disp->DriverData = (void *) dri2_dpy;
|
||||
dri2_dpy->wl_dpy = disp->PlatformDisplay;
|
||||
|
||||
if (dri2_dpy->wl_dpy->fd == -1)
|
||||
force_roundtrip(dri2_dpy->wl_dpy->display);
|
||||
if (dri2_dpy->wl_dpy->fd == -1)
|
||||
goto cleanup_dpy;
|
||||
|
||||
dri2_dpy->fd = dup(dri2_dpy->wl_dpy->fd);
|
||||
if (dri2_dpy->fd < 0) {
|
||||
_eglError(EGL_BAD_ALLOC, "DRI2: failed to dup fd");
|
||||
goto cleanup_dpy;
|
||||
if (disp->PlatformDisplay == NULL) {
|
||||
dri2_dpy->wl_dpy = wl_display_connect(NULL);
|
||||
if (dri2_dpy->wl_dpy == NULL)
|
||||
goto cleanup_dpy;
|
||||
} else {
|
||||
dri2_dpy->wl_dpy = disp->PlatformDisplay;
|
||||
}
|
||||
|
||||
if (!dri2_dpy->wl_dpy->authenticated)
|
||||
force_roundtrip(dri2_dpy->wl_dpy->display);
|
||||
if (!dri2_dpy->wl_dpy->authenticated)
|
||||
id = wl_display_get_global(dri2_dpy->wl_dpy, "wl_drm", 1);
|
||||
if (id == 0)
|
||||
force_roundtrip(dri2_dpy->wl_dpy);
|
||||
id = wl_display_get_global(dri2_dpy->wl_dpy, "wl_drm", 1);
|
||||
if (id == 0)
|
||||
goto cleanup_dpy;
|
||||
dri2_dpy->wl_drm = wl_drm_create(dri2_dpy->wl_dpy, id, 1);
|
||||
if (!dri2_dpy->wl_drm)
|
||||
goto cleanup_dpy;
|
||||
wl_drm_add_listener(dri2_dpy->wl_drm, &drm_listener, dri2_dpy);
|
||||
force_roundtrip(dri2_dpy->wl_dpy);
|
||||
if (dri2_dpy->fd == -1)
|
||||
goto cleanup_drm;
|
||||
|
||||
force_roundtrip(dri2_dpy->wl_dpy);
|
||||
if (!dri2_dpy->authenticated)
|
||||
goto cleanup_fd;
|
||||
|
||||
dri2_dpy->driver_name = dri2_get_driver_for_fd(dri2_dpy->fd);
|
||||
if (dri2_dpy->driver_name == NULL) {
|
||||
@@ -650,14 +816,8 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
goto cleanup_fd;
|
||||
}
|
||||
|
||||
dri2_dpy->device_name = strdup(dri2_dpy->wl_dpy->device_name);
|
||||
if (dri2_dpy->device_name == NULL) {
|
||||
_eglError(EGL_BAD_ALLOC, "DRI2: failed to get device name");
|
||||
goto cleanup_driver_name;
|
||||
}
|
||||
|
||||
if (!dri2_load_driver(disp))
|
||||
goto cleanup_device_name;
|
||||
goto cleanup_driver_name;
|
||||
|
||||
dri2_dpy->dri2_loader_extension.base.name = __DRI_DRI2_LOADER;
|
||||
dri2_dpy->dri2_loader_extension.base.version = 3;
|
||||
@@ -668,7 +828,8 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
|
||||
dri2_dpy->extensions[0] = &dri2_dpy->dri2_loader_extension.base;
|
||||
dri2_dpy->extensions[1] = &image_lookup_extension.base;
|
||||
dri2_dpy->extensions[2] = NULL;
|
||||
dri2_dpy->extensions[2] = &use_invalidate.base;
|
||||
dri2_dpy->extensions[3] = NULL;
|
||||
|
||||
if (!dri2_create_screen(disp))
|
||||
goto cleanup_driver;
|
||||
@@ -691,12 +852,13 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
|
||||
cleanup_driver:
|
||||
dlclose(dri2_dpy->driver);
|
||||
cleanup_device_name:
|
||||
free(dri2_dpy->device_name);
|
||||
cleanup_driver_name:
|
||||
free(dri2_dpy->driver_name);
|
||||
cleanup_fd:
|
||||
close(dri2_dpy->fd);
|
||||
cleanup_drm:
|
||||
free(dri2_dpy->device_name);
|
||||
wl_drm_destroy(dri2_dpy->wl_drm);
|
||||
cleanup_dpy:
|
||||
free(dri2_dpy);
|
||||
|
||||
|
@@ -479,10 +479,19 @@ dri2_connect(struct dri2_egl_display *dri2_dpy)
|
||||
xcb_generic_error_t *error;
|
||||
xcb_screen_iterator_t s;
|
||||
char *driver_name, *device_name;
|
||||
const xcb_query_extension_reply_t *extension;
|
||||
|
||||
xcb_prefetch_extension_data (dri2_dpy->conn, &xcb_xfixes_id);
|
||||
xcb_prefetch_extension_data (dri2_dpy->conn, &xcb_dri2_id);
|
||||
|
||||
extension = xcb_get_extension_data(dri2_dpy->conn, &xcb_xfixes_id);
|
||||
if (!(extension && extension->present))
|
||||
return EGL_FALSE;
|
||||
|
||||
extension = xcb_get_extension_data(dri2_dpy->conn, &xcb_dri2_id);
|
||||
if (!(extension && extension->present))
|
||||
return EGL_FALSE;
|
||||
|
||||
xfixes_query_cookie = xcb_xfixes_query_version(dri2_dpy->conn,
|
||||
XCB_XFIXES_MAJOR_VERSION,
|
||||
XCB_XFIXES_MINOR_VERSION);
|
||||
@@ -784,7 +793,7 @@ dri2_create_image_khr_pixmap(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
|
||||
(void) ctx;
|
||||
|
||||
drawable = (xcb_drawable_t) buffer;
|
||||
drawable = (xcb_drawable_t) (uintptr_t) buffer;
|
||||
xcb_dri2_create_drawable (dri2_dpy->conn, drawable);
|
||||
attachments[0] = XCB_DRI2_ATTACHMENT_BUFFER_FRONT_LEFT;
|
||||
buffers_cookie =
|
||||
@@ -906,9 +915,7 @@ dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
goto cleanup_dpy;
|
||||
}
|
||||
|
||||
dri2_dpy->driver_name = dri2_strndup("swrast", strlen("swrast"));
|
||||
|
||||
if (!dri2_load_driver(disp))
|
||||
if (!dri2_load_driver_swrast(disp))
|
||||
goto cleanup_conn;
|
||||
|
||||
dri2_dpy->swrast_loader_extension.base.name = __DRI_SWRAST_LOADER;
|
||||
|
@@ -1,8 +1,10 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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
|
||||
@@ -10,19 +12,19 @@
|
||||
* 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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 NON-INFRINGEMENT.
|
||||
* IN NO EVENT SHALL TUNGSTEN GRAPHICS 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 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
|
@@ -58,11 +58,20 @@ LOCAL_LIBS =
|
||||
ifeq ($(filter dri2, $(EGL_DRIVERS_DIRS)),dri2)
|
||||
LOCAL_CFLAGS += -D_EGL_BUILT_IN_DRIVER_DRI2
|
||||
LOCAL_LIBS += $(TOP)/src/egl/drivers/dri2/libegl_dri2.a
|
||||
ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
|
||||
EGL_LIB_DEPS += $(XCB_DRI2_LIBS)
|
||||
endif
|
||||
ifneq ($(findstring drm, $(EGL_PLATFORMS)),)
|
||||
EGL_LIB_DEPS += -lgbm
|
||||
endif
|
||||
EGL_LIB_DEPS += $(LIBUDEV_LIBS) $(DLOPEN_LIBS) $(LIBDRM_LIB) $(WAYLAND_LIBS)
|
||||
endif
|
||||
|
||||
|
||||
ifneq ($(findstring wayland, $(EGL_PLATFORMS)),)
|
||||
LOCAL_LIBS += $(TOP)/src/egl/wayland/wayland-drm/libwayland-drm.a
|
||||
endif
|
||||
EGL_LIB_DEPS += $(XCB_DRI2_LIBS) $(LIBUDEV_LIBS) $(DLOPEN_LIBS) $(LIBDRM_LIB) $(WAYLAND_LIBS)
|
||||
endif
|
||||
|
||||
ifeq ($(filter glx, $(EGL_DRIVERS_DIRS)),glx)
|
||||
LOCAL_CFLAGS += -D_EGL_BUILT_IN_DRIVER_GLX
|
||||
LOCAL_LIBS += $(TOP)/src/egl/drivers/glx/libegl_glx.a
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* Public EGL API entrypoints
|
||||
*
|
||||
@@ -914,7 +944,7 @@ eglGetProcAddress(const char *procname)
|
||||
{ "eglCreateDRMImageMESA", (_EGLProc) eglCreateDRMImageMESA },
|
||||
{ "eglExportDRMImageMESA", (_EGLProc) eglExportDRMImageMESA },
|
||||
#endif
|
||||
#ifdef EGL_WL_bind_display
|
||||
#ifdef EGL_WL_bind_wayland_display
|
||||
{ "eglBindWaylandDisplayWL", (_EGLProc) eglBindWaylandDisplayWL },
|
||||
{ "eglUnbindWaylandDisplayWL", (_EGLProc) eglUnbindWaylandDisplayWL },
|
||||
#endif
|
||||
@@ -1168,7 +1198,7 @@ eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode)
|
||||
EGLDisplay EGLAPIENTRY
|
||||
eglGetDRMDisplayMESA(int fd)
|
||||
{
|
||||
_EGLDisplay *dpy = _eglFindDisplay(_EGL_PLATFORM_DRM, (void *) fd);
|
||||
_EGLDisplay *dpy = _eglFindDisplay(_EGL_PLATFORM_DRM, (void *) (intptr_t) fd);
|
||||
return _eglGetDisplayHandle(dpy);
|
||||
}
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLAPI_INCLUDED
|
||||
#define EGLAPI_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,31 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
|
@@ -1,3 +1,31 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLARRAY_INCLUDED
|
||||
#define EGLARRAY_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,32 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLCOMPILER_INCLUDED
|
||||
#define EGLCOMPILER_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* EGL Configuration (pixel format) functions.
|
||||
*/
|
||||
@@ -456,8 +486,6 @@ _eglIsConfigAttribValid(_EGLConfig *conf, EGLint attr)
|
||||
return EGL_FALSE;
|
||||
|
||||
switch (attr) {
|
||||
case EGL_MATCH_NATIVE_PIXMAP:
|
||||
return EGL_FALSE;
|
||||
case EGL_Y_INVERTED_NOK:
|
||||
return conf->Display->Extensions.NOK_texture_from_pixmap;
|
||||
default:
|
||||
@@ -739,6 +767,16 @@ _eglGetConfigAttrib(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf,
|
||||
{
|
||||
if (!_eglIsConfigAttribValid(conf, attribute))
|
||||
return _eglError(EGL_BAD_ATTRIBUTE, "eglGetConfigAttrib");
|
||||
|
||||
/* nonqueryable attributes */
|
||||
switch (attribute) {
|
||||
case EGL_MATCH_NATIVE_PIXMAP:
|
||||
return _eglError(EGL_BAD_ATTRIBUTE, "eglGetConfigAttrib");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (!value)
|
||||
return _eglError(EGL_BAD_PARAMETER, "eglGetConfigAttrib");
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLCONFIG_INCLUDED
|
||||
#define EGLCONFIG_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLCONTEXT_INCLUDED
|
||||
#define EGLCONTEXT_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,31 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "egllog.h"
|
||||
|
@@ -1,3 +1,31 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLCURRENT_INCLUDED
|
||||
#define EGLCURRENT_INCLUDED
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* 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
|
||||
@@ -10,23 +10,22 @@
|
||||
* 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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 NON-INFRINGEMENT.
|
||||
* IN NO EVENT SHALL TUNGSTEN GRAPHICS 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 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Internal EGL defines
|
||||
*/
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* Functions related to EGLDisplay.
|
||||
*/
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLDISPLAY_INCLUDED
|
||||
#define EGLDISPLAY_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* Functions for choosing and opening/loading device drivers.
|
||||
*/
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLDRIVER_INCLUDED
|
||||
#define EGLDRIVER_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,31 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include <string.h>
|
||||
#include "egltypedefs.h"
|
||||
#include "egldriver.h"
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "eglglobals.h"
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLGLOBALS_INCLUDED
|
||||
#define EGLGLOBALS_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,32 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
|
||||
|
@@ -1,3 +1,32 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLIMAGE_INCLUDED
|
||||
#define EGLIMAGE_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* Logging facility for debug/info messages.
|
||||
* _EGL_FATAL messages are printed to stderr
|
||||
|
@@ -1,3 +1,32 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLLOG_INCLUDED
|
||||
#define EGLLOG_INCLUDED
|
||||
|
||||
|
@@ -1,8 +1,10 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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
|
||||
@@ -10,19 +12,19 @@
|
||||
* 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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 NON-INFRINGEMENT.
|
||||
* IN NO EVENT SHALL TUNGSTEN GRAPHICS 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 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
|
@@ -1,8 +1,10 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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
|
||||
@@ -10,19 +12,19 @@
|
||||
* 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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 NON-INFRINGEMENT.
|
||||
* IN NO EVENT SHALL TUNGSTEN GRAPHICS 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 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLMODE_INCLUDED
|
||||
#define EGLMODE_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,31 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2009 Chia-I Wu <olvaffe@gmail.com>
|
||||
* 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLMUTEX_INCLUDED
|
||||
#define EGLMUTEX_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
* Ideas for screen management extension to EGL.
|
||||
*
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLSCREEN_INCLUDED
|
||||
#define EGLSCREEN_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* String utils.
|
||||
*/
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010-2011 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLSTRING_INCLUDED
|
||||
#define EGLSTRING_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* Surface-related functions.
|
||||
*/
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLSURFACE_INCLUDED
|
||||
#define EGLSURFACE_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,31 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "eglsync.h"
|
||||
|
@@ -1,3 +1,31 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLSYNC_INCLUDED
|
||||
#define EGLSYNC_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
* Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
|
||||
* Copyright 2010 LunarG, 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 above copyright notice and this permission notice (including the
|
||||
* next paragraph) 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef EGLTYPEDEFS_INCLUDED
|
||||
#define EGLTYPEDEFS_INCLUDED
|
||||
|
||||
|
@@ -34,6 +34,7 @@ depend:
|
||||
clean:
|
||||
rm -rf libwayland-drm.a $(wayland_drm_OBJECTS) \
|
||||
$(GEN_SOURCES) $(GEN_HEADERS)
|
||||
rm -f depend depend.bak
|
||||
|
||||
install:
|
||||
@echo -n ""
|
||||
|
@@ -1,8 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<protocol name="drm">
|
||||
|
||||
<copyright>
|
||||
Copyright © 2008-2011 Kristian Høgsberg
|
||||
Copyright © 2010-2011 Intel Corporation
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this
|
||||
software and its documentation for any purpose is hereby granted
|
||||
without fee, provided that\n the above copyright notice appear in
|
||||
all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation, and that the name of
|
||||
the copyright holders not be used in advertising or publicity
|
||||
pertaining to distribution of the software without specific,
|
||||
written prior permission. The copyright holders make no
|
||||
representations about the suitability of this software for any
|
||||
purpose. It is provided "as is" without express or implied
|
||||
warranty.
|
||||
|
||||
THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
|
||||
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
||||
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
||||
THIS SOFTWARE.
|
||||
</copyright>
|
||||
|
||||
<!-- drm support. This object is created by the server and published
|
||||
using the display's global event. -->
|
||||
<interface name="drm" version="1">
|
||||
<interface name="wl_drm" version="1">
|
||||
<enum name="error">
|
||||
<entry name="authenticate_fail" value="0"/>
|
||||
<entry name="invalid_visual" value="1"/>
|
||||
<entry name="invalid_name" value="2"/>
|
||||
</enum>
|
||||
|
||||
<!-- Call this request with the magic received from drmGetMagic().
|
||||
It will be passed on to the drmAuthMagic() or
|
||||
DRIAuthConnection() call. This authentication must be
|
||||
@@ -14,12 +47,12 @@
|
||||
<!-- Create a wayland buffer for the named DRM buffer. The DRM
|
||||
surface must have a name using the flink ioctl -->
|
||||
<request name="create_buffer">
|
||||
<arg name="id" type="new_id" interface="buffer"/>
|
||||
<arg name="id" type="new_id" interface="wl_buffer"/>
|
||||
<arg name="name" type="uint"/>
|
||||
<arg name="width" type="int"/>
|
||||
<arg name="height" type="int"/>
|
||||
<arg name="stride" type="uint"/>
|
||||
<arg name="visual" type="object" interface="visual"/>
|
||||
<arg name="visual" type="object" interface="wl_visual"/>
|
||||
</request>
|
||||
|
||||
<!-- Notification of the path of the drm device which is used by
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright © 2011 Kristian Høgsberg
|
||||
* Copyright © 2011 Benjamin Franzke
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -35,25 +36,26 @@
|
||||
#include "wayland-drm.h"
|
||||
#include "wayland-drm-server-protocol.h"
|
||||
|
||||
#include "egldisplay.h"
|
||||
#include "egldriver.h"
|
||||
#include "eglimage.h"
|
||||
#include "egltypedefs.h"
|
||||
|
||||
struct wl_drm {
|
||||
struct wl_object object;
|
||||
struct wl_display *display;
|
||||
|
||||
_EGLDisplay *edisp;
|
||||
|
||||
void *user_data;
|
||||
char *device_name;
|
||||
authenticate_t authenticate;
|
||||
|
||||
struct wayland_drm_callbacks *callbacks;
|
||||
};
|
||||
|
||||
struct wl_drm_buffer {
|
||||
struct wl_buffer buffer;
|
||||
struct wl_drm *drm;
|
||||
|
||||
void *driver_buffer;
|
||||
};
|
||||
|
||||
static void
|
||||
drm_buffer_damage(struct wl_buffer *buffer_base,
|
||||
struct wl_surface *surface,
|
||||
int32_t x, int32_t y, int32_t width, int32_t height)
|
||||
buffer_damage(struct wl_client *client, struct wl_buffer *buffer,
|
||||
int32_t x, int32_t y, int32_t width, int32_t height)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -61,19 +63,21 @@ static void
|
||||
destroy_buffer(struct wl_resource *resource, struct wl_client *client)
|
||||
{
|
||||
struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) resource;
|
||||
_EGLDriver *drv = buffer->drm->edisp->Driver;
|
||||
struct wl_drm *drm = buffer->drm;
|
||||
|
||||
drv->API.DestroyImageKHR(drv, buffer->drm->edisp, buffer->image);
|
||||
drm->callbacks->release_buffer(drm->user_data,
|
||||
buffer->driver_buffer);
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
static void
|
||||
buffer_destroy(struct wl_client *client, struct wl_buffer *buffer)
|
||||
{
|
||||
wl_resource_destroy(&buffer->resource, client);
|
||||
wl_resource_destroy(&buffer->resource, client, 0);
|
||||
}
|
||||
|
||||
const static struct wl_buffer_interface buffer_interface = {
|
||||
const static struct wl_buffer_interface drm_buffer_interface = {
|
||||
buffer_damage,
|
||||
buffer_destroy
|
||||
};
|
||||
|
||||
@@ -83,62 +87,42 @@ drm_create_buffer(struct wl_client *client, struct wl_drm *drm,
|
||||
uint32_t stride, struct wl_visual *visual)
|
||||
{
|
||||
struct wl_drm_buffer *buffer;
|
||||
EGLint attribs[] = {
|
||||
EGL_WIDTH, 0,
|
||||
EGL_HEIGHT, 0,
|
||||
EGL_DRM_BUFFER_STRIDE_MESA, 0,
|
||||
EGL_DRM_BUFFER_FORMAT_MESA, EGL_DRM_BUFFER_FORMAT_ARGB32_MESA,
|
||||
EGL_NONE
|
||||
};
|
||||
_EGLDriver *drv = drm->edisp->Driver;
|
||||
|
||||
buffer = malloc(sizeof *buffer);
|
||||
buffer = calloc(1, sizeof *buffer);
|
||||
if (buffer == NULL) {
|
||||
wl_client_post_no_memory(client);
|
||||
return;
|
||||
}
|
||||
|
||||
buffer->drm = drm;
|
||||
buffer->buffer.compositor = NULL;
|
||||
buffer->buffer.width = width;
|
||||
buffer->buffer.height = height;
|
||||
buffer->buffer.visual = visual;
|
||||
buffer->buffer.attach = NULL;
|
||||
buffer->buffer.damage = drm_buffer_damage;
|
||||
buffer->buffer.client = client;
|
||||
|
||||
if (visual->object.interface != &wl_visual_interface) {
|
||||
/* FIXME: Define a real exception event instead of
|
||||
* abusing this one */
|
||||
wl_client_post_event(client,
|
||||
(struct wl_object *) drm->display,
|
||||
WL_DISPLAY_INVALID_OBJECT, 0);
|
||||
fprintf(stderr, "invalid visual in create_buffer\n");
|
||||
if (!visual || visual->object.interface != &wl_visual_interface) {
|
||||
wl_client_post_error(client, &drm->object,
|
||||
WL_DRM_ERROR_INVALID_VISUAL,
|
||||
"invalid visual");
|
||||
return;
|
||||
}
|
||||
|
||||
attribs[1] = width;
|
||||
attribs[3] = height;
|
||||
attribs[5] = stride / 4;
|
||||
buffer->image = drv->API.CreateImageKHR(drv, drm->edisp,
|
||||
EGL_NO_CONTEXT,
|
||||
EGL_DRM_BUFFER_MESA,
|
||||
(EGLClientBuffer) (intptr_t) name,
|
||||
attribs);
|
||||
buffer->driver_buffer =
|
||||
drm->callbacks->reference_buffer(drm->user_data, name,
|
||||
width, height,
|
||||
stride, visual);
|
||||
|
||||
if (buffer->image == NULL) {
|
||||
/* FIXME: Define a real exception event instead of
|
||||
* abusing this one */
|
||||
wl_client_post_event(client,
|
||||
(struct wl_object *) drm->display,
|
||||
WL_DISPLAY_INVALID_OBJECT, 0);
|
||||
fprintf(stderr, "failed to create image for name %d\n", name);
|
||||
if (buffer->driver_buffer == NULL) {
|
||||
wl_client_post_error(client, &drm->object,
|
||||
WL_DRM_ERROR_INVALID_NAME,
|
||||
"invalid name");
|
||||
return;
|
||||
}
|
||||
|
||||
buffer->buffer.resource.object.id = id;
|
||||
buffer->buffer.resource.object.interface = &wl_buffer_interface;
|
||||
buffer->buffer.resource.object.implementation = (void (**)(void))
|
||||
&buffer_interface;
|
||||
&drm_buffer_interface;
|
||||
|
||||
buffer->buffer.resource.destroy = destroy_buffer;
|
||||
|
||||
@@ -149,10 +133,10 @@ static void
|
||||
drm_authenticate(struct wl_client *client,
|
||||
struct wl_drm *drm, uint32_t id)
|
||||
{
|
||||
if (drm->authenticate(drm->edisp, id) < 0)
|
||||
wl_client_post_event(client,
|
||||
(struct wl_object *) drm->display,
|
||||
WL_DISPLAY_INVALID_OBJECT, 0);
|
||||
if (drm->callbacks->authenticate(drm->user_data, id) < 0)
|
||||
wl_client_post_error(client, &drm->object,
|
||||
WL_DRM_ERROR_AUTHENTICATE_FAIL,
|
||||
"authenicate failed");
|
||||
else
|
||||
wl_client_post_event(client, &drm->object,
|
||||
WL_DRM_AUTHENTICATED);
|
||||
@@ -164,7 +148,8 @@ const static struct wl_drm_interface drm_interface = {
|
||||
};
|
||||
|
||||
static void
|
||||
post_drm_device(struct wl_client *client, struct wl_object *global)
|
||||
post_drm_device(struct wl_client *client,
|
||||
struct wl_object *global, uint32_t version)
|
||||
{
|
||||
struct wl_drm *drm = (struct wl_drm *) global;
|
||||
|
||||
@@ -172,17 +157,17 @@ post_drm_device(struct wl_client *client, struct wl_object *global)
|
||||
}
|
||||
|
||||
struct wl_drm *
|
||||
wayland_drm_init(struct wl_display *display, _EGLDisplay *disp,
|
||||
authenticate_t authenticate, char *device_name)
|
||||
wayland_drm_init(struct wl_display *display, char *device_name,
|
||||
struct wayland_drm_callbacks *callbacks, void *user_data)
|
||||
{
|
||||
struct wl_drm *drm;
|
||||
|
||||
drm = malloc(sizeof *drm);
|
||||
|
||||
drm->display = display;
|
||||
drm->edisp = disp;
|
||||
drm->authenticate = authenticate;
|
||||
drm->device_name = strdup(device_name);
|
||||
drm->callbacks = callbacks;
|
||||
drm->user_data = user_data;
|
||||
|
||||
drm->object.interface = &wl_drm_interface;
|
||||
drm->object.implementation = (void (**)(void)) &drm_interface;
|
||||
@@ -193,7 +178,7 @@ wayland_drm_init(struct wl_display *display, _EGLDisplay *disp,
|
||||
}
|
||||
|
||||
void
|
||||
wayland_drm_destroy(struct wl_drm *drm)
|
||||
wayland_drm_uninit(struct wl_drm *drm)
|
||||
{
|
||||
free(drm->device_name);
|
||||
|
||||
@@ -201,3 +186,18 @@ wayland_drm_destroy(struct wl_drm *drm)
|
||||
|
||||
free(drm);
|
||||
}
|
||||
|
||||
int
|
||||
wayland_buffer_is_drm(struct wl_buffer *buffer)
|
||||
{
|
||||
return buffer->resource.object.implementation ==
|
||||
(void (**)(void)) &drm_buffer_interface;
|
||||
}
|
||||
|
||||
void *
|
||||
wayland_drm_buffer_get_buffer(struct wl_buffer *buffer_base)
|
||||
{
|
||||
struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) buffer_base;
|
||||
|
||||
return buffer->driver_buffer;
|
||||
}
|
||||
|
@@ -8,19 +8,27 @@
|
||||
|
||||
struct wl_drm;
|
||||
|
||||
typedef int (*authenticate_t) (_EGLDisplay *disp, uint32_t id);
|
||||
struct wayland_drm_callbacks {
|
||||
int (*authenticate)(void *user_data, uint32_t id);
|
||||
|
||||
struct wl_drm_buffer {
|
||||
struct wl_buffer buffer;
|
||||
struct wl_drm *drm;
|
||||
_EGLImage *image;
|
||||
void *(*reference_buffer)(void *user_data, uint32_t name,
|
||||
int32_t width, int32_t height,
|
||||
uint32_t stride, struct wl_visual *visual);
|
||||
|
||||
void (*release_buffer)(void *user_data, void *buffer);
|
||||
};
|
||||
|
||||
struct wl_drm *
|
||||
wayland_drm_init(struct wl_display *display, _EGLDisplay *disp,
|
||||
authenticate_t authenticate, char *device_name);
|
||||
wayland_drm_init(struct wl_display *display, char *device_name,
|
||||
struct wayland_drm_callbacks *callbacks, void *user_data);
|
||||
|
||||
void
|
||||
wayland_drm_destroy(struct wl_drm *drm);
|
||||
wayland_drm_uninit(struct wl_drm *drm);
|
||||
|
||||
int
|
||||
wayland_buffer_is_drm(struct wl_buffer *buffer);
|
||||
|
||||
void *
|
||||
wayland_drm_buffer_get_buffer(struct wl_buffer *buffer);
|
||||
|
||||
#endif
|
||||
|
@@ -12,20 +12,8 @@ extern "C" {
|
||||
#define WL_EGL_EXPORT
|
||||
#endif
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <wayland-client.h>
|
||||
|
||||
struct wl_egl_display {
|
||||
struct wl_display *display;
|
||||
|
||||
struct wl_drm *drm;
|
||||
int fd;
|
||||
char *device_name;
|
||||
bool authenticated;
|
||||
|
||||
void (*glFlush)(void);
|
||||
};
|
||||
|
||||
struct wl_egl_window {
|
||||
struct wl_surface *surface;
|
||||
struct wl_visual *visual;
|
||||
@@ -40,13 +28,11 @@ struct wl_egl_window {
|
||||
};
|
||||
|
||||
struct wl_egl_pixmap {
|
||||
struct wl_egl_display *display;
|
||||
struct wl_visual *visual;
|
||||
struct wl_visual *visual;
|
||||
struct wl_buffer *buffer;
|
||||
|
||||
int name;
|
||||
int width;
|
||||
int height;
|
||||
int stride;
|
||||
|
||||
void (*destroy) (struct wl_egl_pixmap *egl_pixmap);
|
||||
|
||||
|
@@ -1,130 +1,8 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include <wayland-client.h>
|
||||
#include "wayland-egl.h"
|
||||
#include "wayland-egl-priv.h"
|
||||
#include "wayland-drm-client-protocol.h"
|
||||
#include <xf86drm.h>
|
||||
|
||||
static void
|
||||
drm_handle_device(void *data, struct wl_drm *drm, const char *device)
|
||||
{
|
||||
struct wl_egl_display *egl_display = data;
|
||||
drm_magic_t magic;
|
||||
|
||||
egl_display->device_name = strdup(device);
|
||||
|
||||
egl_display->fd = open(egl_display->device_name, O_RDWR);
|
||||
|
||||
if (egl_display->fd == -1) {
|
||||
fprintf(stderr, "wayland-egl: could not open %s (%s)",
|
||||
egl_display->device_name, strerror(errno));
|
||||
return;
|
||||
}
|
||||
drmGetMagic(egl_display->fd, &magic);
|
||||
wl_drm_authenticate(egl_display->drm, magic);
|
||||
}
|
||||
|
||||
static void
|
||||
drm_handle_authenticated(void *data, struct wl_drm *drm)
|
||||
{
|
||||
struct wl_egl_display *egl_display = data;
|
||||
|
||||
egl_display->authenticated = true;
|
||||
}
|
||||
|
||||
static const struct wl_drm_listener drm_listener = {
|
||||
drm_handle_device,
|
||||
drm_handle_authenticated
|
||||
};
|
||||
|
||||
static void
|
||||
wl_display_handle_global(struct wl_display *display, uint32_t id,
|
||||
const char *interface, uint32_t version, void *data)
|
||||
{
|
||||
struct wl_egl_display *egl_display = data;
|
||||
|
||||
if (strcmp(interface, "drm") == 0) {
|
||||
egl_display->drm = wl_drm_create(display, id);
|
||||
wl_drm_add_listener(egl_display->drm, &drm_listener,
|
||||
egl_display);
|
||||
}
|
||||
}
|
||||
|
||||
/* stolen from egl_dri2:dri2_load() */
|
||||
static void *
|
||||
get_flush_address() {
|
||||
void *handle;
|
||||
void *(*get_proc_address)(const char *procname);
|
||||
|
||||
handle = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);
|
||||
if (handle) {
|
||||
get_proc_address = (void* (*)(const char *))
|
||||
dlsym(handle, "_glapi_get_proc_address");
|
||||
/* no need to keep a reference */
|
||||
dlclose(handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* If glapi is not available, loading DRI drivers will fail. Ideally, we
|
||||
* should load one of libGL, libGLESv1_CM, or libGLESv2 and go on. But if
|
||||
* the app has loaded another one of them with RTLD_LOCAL, there may be
|
||||
* unexpected behaviors later because there will be two copies of glapi
|
||||
* (with global variables of the same names!) in the memory.
|
||||
*/
|
||||
if (!get_proc_address) {
|
||||
fprintf(stderr, "failed to find _glapi_get_proc_address");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return get_proc_address("glFlush");
|
||||
}
|
||||
|
||||
WL_EGL_EXPORT struct wl_egl_display *
|
||||
wl_egl_display_create(struct wl_display *display)
|
||||
{
|
||||
struct wl_egl_display *egl_display;
|
||||
|
||||
egl_display = malloc(sizeof *egl_display);
|
||||
if (!egl_display)
|
||||
return NULL;
|
||||
|
||||
egl_display->display = display;
|
||||
egl_display->drm = NULL;
|
||||
egl_display->fd = -1;
|
||||
egl_display->device_name = NULL;
|
||||
egl_display->authenticated = false;
|
||||
|
||||
egl_display->glFlush = (void (*)(void)) get_flush_address();
|
||||
|
||||
wl_display_add_global_listener(display, wl_display_handle_global,
|
||||
egl_display);
|
||||
|
||||
return egl_display;
|
||||
}
|
||||
|
||||
WL_EGL_EXPORT void
|
||||
wl_egl_display_destroy(struct wl_egl_display *egl_display)
|
||||
{
|
||||
|
||||
free(egl_display->device_name);
|
||||
close(egl_display->fd);
|
||||
|
||||
wl_drm_destroy(egl_display->drm);
|
||||
|
||||
free(egl_display);
|
||||
}
|
||||
|
||||
WL_EGL_EXPORT void
|
||||
wl_egl_window_resize(struct wl_egl_window *egl_window,
|
||||
@@ -138,8 +16,7 @@ wl_egl_window_resize(struct wl_egl_window *egl_window,
|
||||
}
|
||||
|
||||
WL_EGL_EXPORT struct wl_egl_window *
|
||||
wl_egl_window_create(struct wl_egl_display *egl_display,
|
||||
struct wl_surface *surface,
|
||||
wl_egl_window_create(struct wl_surface *surface,
|
||||
int width, int height,
|
||||
struct wl_visual *visual)
|
||||
{
|
||||
@@ -175,8 +52,7 @@ wl_egl_window_get_attached_size(struct wl_egl_window *egl_window,
|
||||
}
|
||||
|
||||
WL_EGL_EXPORT struct wl_egl_pixmap *
|
||||
wl_egl_pixmap_create(struct wl_egl_display *egl_display,
|
||||
int width, int height,
|
||||
wl_egl_pixmap_create(int width, int height,
|
||||
struct wl_visual *visual, uint32_t flags)
|
||||
{
|
||||
struct wl_egl_pixmap *egl_pixmap;
|
||||
@@ -185,14 +61,13 @@ wl_egl_pixmap_create(struct wl_egl_display *egl_display,
|
||||
if (egl_pixmap == NULL)
|
||||
return NULL;
|
||||
|
||||
egl_pixmap->display = egl_display;
|
||||
egl_pixmap->width = width;
|
||||
egl_pixmap->height = height;
|
||||
egl_pixmap->visual = visual;
|
||||
egl_pixmap->name = 0;
|
||||
egl_pixmap->stride = 0;
|
||||
|
||||
egl_pixmap->destroy = NULL;
|
||||
egl_pixmap->buffer = NULL;
|
||||
egl_pixmap->driver_private = NULL;
|
||||
|
||||
return egl_pixmap;
|
||||
}
|
||||
@@ -206,21 +81,7 @@ wl_egl_pixmap_destroy(struct wl_egl_pixmap *egl_pixmap)
|
||||
}
|
||||
|
||||
WL_EGL_EXPORT struct wl_buffer *
|
||||
wl_egl_pixmap_create_buffer(struct wl_egl_display *egl_display,
|
||||
struct wl_egl_pixmap *egl_pixmap)
|
||||
wl_egl_pixmap_create_buffer(struct wl_egl_pixmap *egl_pixmap)
|
||||
{
|
||||
if (egl_pixmap->name == 0)
|
||||
return NULL;
|
||||
|
||||
return wl_drm_create_buffer(egl_display->drm, egl_pixmap->name,
|
||||
egl_pixmap->width, egl_pixmap->height,
|
||||
egl_pixmap->stride, egl_pixmap->visual);
|
||||
}
|
||||
|
||||
WL_EGL_EXPORT void
|
||||
wl_egl_pixmap_flush(struct wl_egl_display *egl_display,
|
||||
struct wl_egl_pixmap *egl_pixmap)
|
||||
{
|
||||
if (egl_display->glFlush)
|
||||
egl_display->glFlush();
|
||||
return egl_pixmap->buffer;
|
||||
}
|
||||
|
@@ -53,7 +53,7 @@ if env['drm']:
|
||||
# Needed by some state trackers
|
||||
SConscript('winsys/sw/null/SConscript')
|
||||
|
||||
if env['platform'] != 'embedded':
|
||||
if not env['embedded']:
|
||||
SConscript('state_trackers/vega/SConscript')
|
||||
SConscript('state_trackers/egl/SConscript')
|
||||
|
||||
@@ -66,8 +66,8 @@ if env['platform'] != 'embedded':
|
||||
if env['dri'] and env['xorg']:
|
||||
SConscript('state_trackers/xorg/SConscript')
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
SConscript('state_trackers/wgl/SConscript')
|
||||
if env['platform'] == 'windows':
|
||||
SConscript('state_trackers/wgl/SConscript')
|
||||
|
||||
#
|
||||
# Winsys
|
||||
@@ -83,55 +83,55 @@ SConscript([
|
||||
'targets/graw-null/SConscript',
|
||||
])
|
||||
|
||||
if env['platform'] != 'embedded':
|
||||
if not env['embedded']:
|
||||
SConscript([
|
||||
'targets/egl-static/SConscript'
|
||||
])
|
||||
|
||||
if env['x11']:
|
||||
SConscript([
|
||||
'targets/graw-xlib/SConscript',
|
||||
'targets/libgl-xlib/SConscript',
|
||||
])
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
SConscript([
|
||||
'targets/graw-gdi/SConscript',
|
||||
'targets/libgl-gdi/SConscript',
|
||||
])
|
||||
|
||||
if env['dri']:
|
||||
SConscript([
|
||||
'targets/SConscript.dri',
|
||||
'targets/dri-swrast/SConscript',
|
||||
'targets/dri-vmwgfx/SConscript',
|
||||
#'targets/dri-nouveau/SConscript',
|
||||
])
|
||||
if env['drm_intel']:
|
||||
if env['x11']:
|
||||
SConscript([
|
||||
'targets/dri-i915/SConscript',
|
||||
'targets/dri-i965/SConscript',
|
||||
])
|
||||
if env['drm_radeon']:
|
||||
SConscript([
|
||||
'targets/dri-r300/SConscript',
|
||||
'targets/dri-r600/SConscript',
|
||||
'targets/graw-xlib/SConscript',
|
||||
'targets/libgl-xlib/SConscript',
|
||||
])
|
||||
|
||||
if env['xorg'] and env['drm']:
|
||||
SConscript([
|
||||
#'targets/xorg-i915/SConscript',
|
||||
#'targets/xorg-i965/SConscript',
|
||||
#'targets/xorg-nouveau/SConscript',
|
||||
#'targets/xorg-radeon/SConscript',
|
||||
'targets/xorg-vmwgfx/SConscript',
|
||||
])
|
||||
if env['platform'] == 'windows':
|
||||
SConscript([
|
||||
'targets/graw-gdi/SConscript',
|
||||
'targets/libgl-gdi/SConscript',
|
||||
])
|
||||
|
||||
if env['dri']:
|
||||
SConscript([
|
||||
'targets/SConscript.dri',
|
||||
'targets/dri-swrast/SConscript',
|
||||
'targets/dri-vmwgfx/SConscript',
|
||||
#'targets/dri-nouveau/SConscript',
|
||||
])
|
||||
if env['drm_intel']:
|
||||
SConscript([
|
||||
'targets/dri-i915/SConscript',
|
||||
'targets/dri-i965/SConscript',
|
||||
])
|
||||
if env['drm_radeon']:
|
||||
SConscript([
|
||||
'targets/dri-r300/SConscript',
|
||||
'targets/dri-r600/SConscript',
|
||||
])
|
||||
|
||||
if env['xorg'] and env['drm']:
|
||||
SConscript([
|
||||
#'targets/xorg-i915/SConscript',
|
||||
#'targets/xorg-i965/SConscript',
|
||||
#'targets/xorg-nouveau/SConscript',
|
||||
#'targets/xorg-radeon/SConscript',
|
||||
'targets/xorg-vmwgfx/SConscript',
|
||||
])
|
||||
|
||||
|
||||
#
|
||||
# Unit tests & tools
|
||||
#
|
||||
|
||||
if env['platform'] != 'embedded':
|
||||
if not env['embedded']:
|
||||
SConscript('tests/unit/SConscript')
|
||||
SConscript('tests/graw/SConscript')
|
||||
|
@@ -44,7 +44,7 @@ C_SOURCES = \
|
||||
draw/draw_vs_exec.c \
|
||||
draw/draw_vs_ppc.c \
|
||||
draw/draw_vs_sse.c \
|
||||
draw/draw_vs_varient.c \
|
||||
draw/draw_vs_variant.c \
|
||||
indices/u_indices_gen.c \
|
||||
indices/u_unfilled_gen.c \
|
||||
os/os_misc.c \
|
||||
|
@@ -88,7 +88,7 @@ source = [
|
||||
'draw/draw_vs_exec.c',
|
||||
'draw/draw_vs_ppc.c',
|
||||
'draw/draw_vs_sse.c',
|
||||
'draw/draw_vs_varient.c',
|
||||
'draw/draw_vs_variant.c',
|
||||
#'indices/u_indices.c',
|
||||
#'indices/u_unfilled_indices.c',
|
||||
'indices/u_indices_gen.c',
|
||||
|
@@ -37,13 +37,7 @@
|
||||
|
||||
|
||||
struct cso_cache {
|
||||
struct cso_hash *blend_hash;
|
||||
struct cso_hash *depth_stencil_hash;
|
||||
struct cso_hash *fs_hash;
|
||||
struct cso_hash *vs_hash;
|
||||
struct cso_hash *rasterizer_hash;
|
||||
struct cso_hash *sampler_hash;
|
||||
struct cso_hash *velements_hash;
|
||||
struct cso_hash *hashes[CSO_CACHE_MAX];
|
||||
int max_size;
|
||||
|
||||
cso_sanitize_callback sanitize_cb;
|
||||
@@ -86,34 +80,10 @@ unsigned cso_construct_key(void *item, int item_size)
|
||||
return hash_key((item), item_size);
|
||||
}
|
||||
|
||||
static struct cso_hash *_cso_hash_for_type(struct cso_cache *sc, enum cso_cache_type type)
|
||||
static INLINE struct cso_hash *_cso_hash_for_type(struct cso_cache *sc, enum cso_cache_type type)
|
||||
{
|
||||
struct cso_hash *hash = 0;
|
||||
|
||||
switch(type) {
|
||||
case CSO_BLEND:
|
||||
hash = sc->blend_hash;
|
||||
break;
|
||||
case CSO_SAMPLER:
|
||||
hash = sc->sampler_hash;
|
||||
break;
|
||||
case CSO_DEPTH_STENCIL_ALPHA:
|
||||
hash = sc->depth_stencil_hash;
|
||||
break;
|
||||
case CSO_RASTERIZER:
|
||||
hash = sc->rasterizer_hash;
|
||||
break;
|
||||
case CSO_FRAGMENT_SHADER:
|
||||
hash = sc->fs_hash;
|
||||
break;
|
||||
case CSO_VERTEX_SHADER:
|
||||
hash = sc->vs_hash;
|
||||
break;
|
||||
case CSO_VELEMENTS:
|
||||
hash = sc->velements_hash;
|
||||
break;
|
||||
}
|
||||
|
||||
struct cso_hash *hash;
|
||||
hash = sc->hashes[type];
|
||||
return hash;
|
||||
}
|
||||
|
||||
@@ -298,17 +268,14 @@ void * cso_take_state(struct cso_cache *sc,
|
||||
struct cso_cache *cso_cache_create(void)
|
||||
{
|
||||
struct cso_cache *sc = MALLOC_STRUCT(cso_cache);
|
||||
int i;
|
||||
if (sc == NULL)
|
||||
return NULL;
|
||||
|
||||
sc->max_size = 4096;
|
||||
sc->blend_hash = cso_hash_create();
|
||||
sc->sampler_hash = cso_hash_create();
|
||||
sc->depth_stencil_hash = cso_hash_create();
|
||||
sc->rasterizer_hash = cso_hash_create();
|
||||
sc->fs_hash = cso_hash_create();
|
||||
sc->vs_hash = cso_hash_create();
|
||||
sc->velements_hash = cso_hash_create();
|
||||
for (i = 0; i < CSO_CACHE_MAX; i++)
|
||||
sc->hashes[i] = cso_hash_create();
|
||||
|
||||
sc->sanitize_cb = sanitize_cb;
|
||||
sc->sanitize_data = 0;
|
||||
|
||||
@@ -318,33 +285,9 @@ struct cso_cache *cso_cache_create(void)
|
||||
void cso_for_each_state(struct cso_cache *sc, enum cso_cache_type type,
|
||||
cso_state_callback func, void *user_data)
|
||||
{
|
||||
struct cso_hash *hash = 0;
|
||||
struct cso_hash *hash = _cso_hash_for_type(sc, type);
|
||||
struct cso_hash_iter iter;
|
||||
|
||||
switch (type) {
|
||||
case CSO_BLEND:
|
||||
hash = sc->blend_hash;
|
||||
break;
|
||||
case CSO_SAMPLER:
|
||||
hash = sc->sampler_hash;
|
||||
break;
|
||||
case CSO_DEPTH_STENCIL_ALPHA:
|
||||
hash = sc->depth_stencil_hash;
|
||||
break;
|
||||
case CSO_RASTERIZER:
|
||||
hash = sc->rasterizer_hash;
|
||||
break;
|
||||
case CSO_FRAGMENT_SHADER:
|
||||
hash = sc->fs_hash;
|
||||
break;
|
||||
case CSO_VERTEX_SHADER:
|
||||
hash = sc->vs_hash;
|
||||
break;
|
||||
case CSO_VELEMENTS:
|
||||
hash = sc->velements_hash;
|
||||
break;
|
||||
}
|
||||
|
||||
iter = cso_hash_first_node(hash);
|
||||
while (!cso_hash_iter_is_null(iter)) {
|
||||
void *state = cso_hash_iter_data(iter);
|
||||
@@ -357,6 +300,7 @@ void cso_for_each_state(struct cso_cache *sc, enum cso_cache_type type,
|
||||
|
||||
void cso_cache_delete(struct cso_cache *sc)
|
||||
{
|
||||
int i;
|
||||
assert(sc);
|
||||
|
||||
if (!sc)
|
||||
@@ -371,28 +315,20 @@ void cso_cache_delete(struct cso_cache *sc)
|
||||
cso_for_each_state(sc, CSO_SAMPLER, delete_sampler_state, 0);
|
||||
cso_for_each_state(sc, CSO_VELEMENTS, delete_velements, 0);
|
||||
|
||||
cso_hash_delete(sc->blend_hash);
|
||||
cso_hash_delete(sc->sampler_hash);
|
||||
cso_hash_delete(sc->depth_stencil_hash);
|
||||
cso_hash_delete(sc->rasterizer_hash);
|
||||
cso_hash_delete(sc->fs_hash);
|
||||
cso_hash_delete(sc->vs_hash);
|
||||
cso_hash_delete(sc->velements_hash);
|
||||
for (i = 0; i < CSO_CACHE_MAX; i++)
|
||||
cso_hash_delete(sc->hashes[i]);
|
||||
|
||||
FREE(sc);
|
||||
}
|
||||
|
||||
void cso_set_maximum_cache_size(struct cso_cache *sc, int number)
|
||||
{
|
||||
int i;
|
||||
|
||||
sc->max_size = number;
|
||||
|
||||
sanitize_hash(sc, sc->blend_hash, CSO_BLEND, sc->max_size);
|
||||
sanitize_hash(sc, sc->depth_stencil_hash, CSO_DEPTH_STENCIL_ALPHA,
|
||||
sc->max_size);
|
||||
sanitize_hash(sc, sc->fs_hash, CSO_FRAGMENT_SHADER, sc->max_size);
|
||||
sanitize_hash(sc, sc->vs_hash, CSO_VERTEX_SHADER, sc->max_size);
|
||||
sanitize_hash(sc, sc->rasterizer_hash, CSO_RASTERIZER, sc->max_size);
|
||||
sanitize_hash(sc, sc->sampler_hash, CSO_SAMPLER, sc->max_size);
|
||||
sanitize_hash(sc, sc->velements_hash, CSO_VELEMENTS, sc->max_size);
|
||||
for (i = 0; i < CSO_CACHE_MAX; i++)
|
||||
sanitize_hash(sc, sc->hashes[i], i, sc->max_size);
|
||||
}
|
||||
|
||||
int cso_maximum_cache_size(const struct cso_cache *sc)
|
||||
|
@@ -86,13 +86,14 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
enum cso_cache_type {
|
||||
CSO_BLEND,
|
||||
CSO_SAMPLER,
|
||||
CSO_DEPTH_STENCIL_ALPHA,
|
||||
CSO_RASTERIZER,
|
||||
CSO_BLEND,
|
||||
CSO_DEPTH_STENCIL_ALPHA,
|
||||
CSO_FRAGMENT_SHADER,
|
||||
CSO_VERTEX_SHADER,
|
||||
CSO_VELEMENTS
|
||||
CSO_SAMPLER,
|
||||
CSO_VELEMENTS,
|
||||
CSO_CACHE_MAX,
|
||||
};
|
||||
|
||||
typedef void (*cso_state_callback)(void *ctx, void *obj);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user