Compare commits
2579 Commits
tmp-eevee-
...
retopo_tra
Author | SHA1 | Date | |
---|---|---|---|
6485941d7a | |||
9b9417b661 | |||
03cd794119 | |||
091156f64a | |||
![]() |
cfd16c04f8 | ||
42ccbb7cd1 | |||
187d90f036 | |||
1665e40e16 | |||
d3879e9aaa | |||
065dfe744c | |||
3a138a74e5 | |||
![]() |
b862cf0b9f | ||
a679164cf6 | |||
ae0b8e904c | |||
b639e60864 | |||
c3ca487498 | |||
4815772fda | |||
e9bd6abde3 | |||
c0845abd89 | |||
848dd4a40a | |||
e261290cb6 | |||
6ca602dd9f | |||
a9c74a0cd0 | |||
3d91a853b2 | |||
4757a5ad33 | |||
eea1f9b1df | |||
1adeae56e6 | |||
5c2fff306e | |||
72d8a40a3d | |||
cf61be6190 | |||
543ea41569 | |||
19528cfecd | |||
79ab76e156 | |||
fb42c5838c | |||
d094a3722c | |||
9c65af2df0 | |||
68db023329 | |||
ae89fcfdaf | |||
fafb901baa | |||
2b9d4af261 | |||
53fc9add51 | |||
1e0aa2612c | |||
82327ce01d | |||
0830ff55d8 | |||
aacdaa7b1a | |||
ea23e937ce | |||
f3be8e66d7 | |||
69bf74bd76 | |||
c49717a824 | |||
![]() |
07e201ec13 | ||
d892f96cb1 | |||
d034c28f51 | |||
ccb9d5d307 | |||
aa7d130347 | |||
6ae9565d06 | |||
d41f0c7b15 | |||
a98102e32e | |||
8d4fa03e5c | |||
397731d4df | |||
ff048f5d27 | |||
165fa9e2a1 | |||
38af5b0501 | |||
69f2732a13 | |||
cd47d1b2ed | |||
eee25a175a | |||
55fb2abc81 | |||
0dcfd93c6e | |||
6e5eb46d73 | |||
d6b970dd7b | |||
84a3ff63d0 | |||
84272ce19a | |||
5560da7ceb | |||
37ebd66570 | |||
3b71a62390 | |||
d61ab45385 | |||
b2dd1f8f01 | |||
32a9aac3b8 | |||
9015952c9c | |||
83362f87bb | |||
415f88d8b0 | |||
ea4b1d027d | |||
![]() |
c8ae1fce60 | ||
9ac81ed6ab | |||
9f53272df4 | |||
58dcd20998 | |||
![]() |
4843b161d6 | ||
7324f32a94 | |||
18dc611b40 | |||
1e55b58e4f | |||
13e17507c0 | |||
4dd409a185 | |||
d706d0460c | |||
38e270ae30 | |||
e67710b908 | |||
f43a8835dc | |||
![]() |
2ca18e78f9 | ||
b75d0c7e7a | |||
f14f81e5ac | |||
faa0c7aa6f | |||
![]() |
88f0d483bd | ||
8571093f99 | |||
2b8e35eeb0 | |||
4f33dcff78 | |||
fd39da1df6 | |||
dbdab681cf | |||
66c6cf0d71 | |||
1998269b10 | |||
5945a90df9 | |||
72f77598a2 | |||
ac1554bcf6 | |||
5aba7f9774 | |||
78b7140b02 | |||
aa788b759a | |||
caf907626d | |||
c5712c6795 | |||
![]() |
b08c5381ac | ||
e4a779264c | |||
![]() |
c94ca54cda | ||
203e7ba332 | |||
c597d6cb64 | |||
c869f54dcb | |||
bdb4ebebf1 | |||
8ab91edd91 | |||
3ac5a52d6e | |||
c3bc53162a | |||
f1f89ca751 | |||
3ae85a0d8f | |||
37ad72ab23 | |||
4cf6524731 | |||
f76a2c0d18 | |||
462f99bf38 | |||
fb9f12eeec | |||
46dbfce7fc | |||
703dff333c | |||
00a3533429 | |||
739136caca | |||
f26aa186b2 | |||
![]() |
793d203139 | ||
60a8ade18a | |||
d57ce54e30 | |||
7a74d91e32 | |||
![]() |
c6ce70855a | ||
881ef0548a | |||
484ad31653 | |||
023eb2ea7c | |||
d567785658 | |||
332d547ab7 | |||
b9e66af686 | |||
2c81b4d4cf | |||
5feb3541f4 | |||
![]() |
cf9dd3c0d8 | ||
6f1cdcba85 | |||
c5afef1224 | |||
1c05f30e4d | |||
53113a2e57 | |||
c5394f3db8 | |||
f814871e81 | |||
47d1a7484c | |||
cd9ebc816e | |||
72fb92ded8 | |||
cacdea7f4a | |||
![]() |
44258b5ad0 | ||
7808ee9bd7 | |||
![]() |
6db059e3d7 | ||
f7d5aaa365 | |||
d26c29d8e4 | |||
31365c6b9e | |||
ad632a13d9 | |||
b1c49b3b2a | |||
a5bcb4c148 | |||
68101fea68 | |||
8ac5b1fdb3 | |||
bd9bb56f18 | |||
364babab65 | |||
0fcc04e7bf | |||
f1f2c26223 | |||
c94c0d988a | |||
0c3851d31f | |||
3ea2b4ac31 | |||
7c6d546f3a | |||
d53ea1d0af | |||
092732d113 | |||
beb746135d | |||
5da807e00f | |||
fc8b9efb24 | |||
82467e5dcf | |||
80b2fc59d1 | |||
7d8b651268 | |||
676a2f690c | |||
35843ddcd8 | |||
98395e0bdf | |||
a735b2c335 | |||
73aa6b8185 | |||
c40971d79a | |||
e4eaf424b9 | |||
6bcda04d1f | |||
1f94b56d77 | |||
![]() |
98bf714b37 | ||
185eeeaaac | |||
003dfae270 | |||
e0d4aede4d | |||
95e60b4ffd | |||
087f27a52f | |||
08c5d99e88 | |||
72e249974a | |||
d3db38cfb1 | |||
7725740543 | |||
aa1ffc093c | |||
7a4a6ccad7 | |||
ada6012518 | |||
![]() |
a5c2d0018c | ||
611be46cc9 | |||
a36f029459 | |||
ef5b435e8f | |||
d431b1416b | |||
b0f9639733 | |||
396b7a6ec8 | |||
412d93c298 | |||
92eb59341c | |||
9f00e138ac | |||
e022753d7a | |||
2bad3577c0 | |||
4ba6bac2f1 | |||
63be57307e | |||
95ab16004d | |||
03338e0270 | |||
a06b04f92d | |||
2034e8c42d | |||
538da79c6d | |||
d099e0d2a4 | |||
f7252e9692 | |||
10b048fd9e | |||
![]() |
ee3facd087 | ||
0dcee6a386 | |||
4089b7b80b | |||
d6faee2824 | |||
2eeedbbca9 | |||
7a73685460 | |||
095b8d8688 | |||
4ec0a8705b | |||
dd158f1cab | |||
c171e8b95c | |||
46a2592eef | |||
e75adb979b | |||
9f68369247 | |||
eb281e4b24 | |||
698efac59e | |||
afe11eff8a | |||
fe108d85b4 | |||
d34f8ac3d9 | |||
5d4574ea0e | |||
c4d8e28aa7 | |||
0c6ae51d9f | |||
712960cefd | |||
3ea91cecc9 | |||
![]() |
7561183830 | ||
29c68e2523 | |||
a814c7091b | |||
7f8d05131a | |||
8d69c6c4e7 | |||
e6855507a5 | |||
054a169be0 | |||
ae49e0e8be | |||
![]() |
c48dc61749 | ||
![]() |
92ca920c52 | ||
ecf4f4a71f | |||
c3b9a4e001 | |||
215f805ce6 | |||
2551cf9087 | |||
5d6e4822d8 | |||
40ffb94ab4 | |||
410a6efb74 | |||
e9f82d3dc7 | |||
![]() |
28985ccc05 | ||
43d04c7eeb | |||
![]() |
3b7ac10d62 | ||
75e62df429 | |||
cd478fbfb3 | |||
edc89c7f46 | |||
d14c2d549b | |||
597955d0a8 | |||
16b145bc62 | |||
fb9dc810f1 | |||
![]() |
801513efa0 | ||
87ae10a050 | |||
35b4e3a350 | |||
c771dd5e9c | |||
6a1ab4747b | |||
9246ff373a | |||
![]() |
9835d5e58b | ||
![]() |
6bba4d864e | ||
3370c1a8a7 | |||
ad5e3d30a2 | |||
2e3fb58128 | |||
5bee991132 | |||
348ec37f52 | |||
![]() |
2f834bfc14 | ||
![]() |
4812eda3c5 | ||
2232855b50 | |||
95fd7c3679 | |||
bc6b612d8b | |||
![]() |
44f1495b57 | ||
e8465f941c | |||
835203fde8 | |||
73f8a7ca0a | |||
6d2100f7de | |||
99faebfca6 | |||
2280a71f90 | |||
9b2b61a07b | |||
d3c063188e | |||
ff98b5eaa8 | |||
e00a027c1e | |||
533a5a6a8c | |||
bbf87c4f75 | |||
7ebd1f4b79 | |||
37922eab90 | |||
135e530356 | |||
![]() |
d175eb6c30 | ||
4ebe1c3e69 | |||
8358cc7963 | |||
cd21022b78 | |||
935b7a6f65 | |||
1f8567ac68 | |||
757041560f | |||
3407ed5f9b | |||
![]() |
dec8854bf3 | ||
![]() |
47f3b53756 | ||
c7f788b877 | |||
3c016fbfd0 | |||
cd1e4ae448 | |||
9a14887905 | |||
d136a996ca | |||
![]() |
1e4c557d82 | ||
887713d08d | |||
cc761cdae6 | |||
a2938c86ca | |||
a66e20f984 | |||
0a8d21e0c9 | |||
49babc7caa | |||
f76b537d48 | |||
bf49e6040c | |||
b985437283 | |||
92a99c1496 | |||
5152c7c152 | |||
bb376da6df | |||
03aeef64d5 | |||
c505f19efe | |||
1cf465bbc3 | |||
5e1229f253 | |||
82f65d8971 | |||
011d3c75a7 | |||
00dc747702 | |||
![]() |
180db0f752 | ||
914617f8fd | |||
523bbf7065 | |||
da4ef05e4d | |||
5653c5fcdd | |||
79da7f2a8f | |||
![]() |
2e70d5cb98 | ||
5ddbc14bb2 | |||
9ea1b88f0f | |||
b8ffd43bd2 | |||
4d7c990180 | |||
e69c4482f1 | |||
![]() |
8e1323f633 | ||
f4d7ea2cf6 | |||
98f688ac42 | |||
862170c0b1 | |||
ca1daf4cda | |||
c2715dc416 | |||
63ea0f7581 | |||
8fd2b79ca1 | |||
d8094f9212 | |||
60f260eb6a | |||
d14d570580 | |||
c8e8f107bf | |||
675f6ef089 | |||
178868cf42 | |||
0e9367fc29 | |||
b1329d7eaa | |||
9fedcde750 | |||
bdd0ac5bce | |||
1ef686bd26 | |||
b6de6da59a | |||
3b15467e97 | |||
![]() |
1b5db02a02 | ||
28c3739a9b | |||
5539fb3121 | |||
02ce29c6ee | |||
4b1d315017 | |||
47d4ce498e | |||
2d04012e57 | |||
9dfabc1de3 | |||
93f74299f0 | |||
cdd8b96e3b | |||
eb3e56a36e | |||
db80cf6ad7 | |||
64e196422e | |||
7fa7722350 | |||
6cd30d5ff0 | |||
9024ac31be | |||
cb62095c1c | |||
96cc603037 | |||
c8a07ef663 | |||
bcdce4ffd8 | |||
44e530e1b1 | |||
![]() |
9d73bbd966 | ||
![]() |
8e3879ab52 | ||
![]() |
77df9d788a | ||
![]() |
f48fadc953 | ||
![]() |
1571ee66b5 | ||
3935bf255e | |||
411bcf1fe7 | |||
b35e33317d | |||
d6fef73ef1 | |||
816a73891b | |||
d3374e5337 | |||
931779197a | |||
09a74ff8b6 | |||
50d832634e | |||
144d9f2b2e | |||
88fbf0a8fc | |||
ccdf189d3c | |||
441dd08dba | |||
c484599687 | |||
c8be3d3b27 | |||
74888cdbfd | |||
a084839605 | |||
b3913d7551 | |||
9422627155 | |||
8f543a73ab | |||
d0a552b5c6 | |||
5f09440d5a | |||
9f153949f9 | |||
1c382a4940 | |||
02aefa7659 | |||
b767628173 | |||
![]() |
93253d5dcc | ||
d58072caf4 | |||
47dd42485e | |||
4a445c8dc0 | |||
f72cedffb6 | |||
2d1fe736fa | |||
57097e9a85 | |||
![]() |
4344b2bf19 | ||
52b7f2b089 | |||
bb3a538843 | |||
8bd32019ca | |||
6e6da22eb0 | |||
b8d1e576bc | |||
ae6a4fcc7a | |||
00c7e760b3 | |||
2a1d12d7a0 | |||
995c904d00 | |||
8ca09e6c5e | |||
![]() |
76d8614236 | ||
6e426259b4 | |||
6ca5ac2084 | |||
275419f6fd | |||
1c4c904786 | |||
da101118d4 | |||
7357176b57 | |||
cb39058f2f | |||
133d398120 | |||
d51bc8215f | |||
d4a4691c0c | |||
a83502f05f | |||
7f4ee97b9e | |||
6543290116 | |||
fad857f473 | |||
4114ace616 | |||
443690604f | |||
1de14061cb | |||
9a1d772339 | |||
ef970b7756 | |||
b5d22a8134 | |||
80f8b7cbbb | |||
e3801a2bd4 | |||
d9e00fbbf6 | |||
bc2121147f | |||
2ee6891728 | |||
d8e980a4a6 | |||
8159e0a666 | |||
f639b59a29 | |||
b876ce2a4a | |||
f391e8f316 | |||
0f50ae131f | |||
5723bf926d | |||
becb1530b1 | |||
2c55d8c1cf | |||
05b38ecc78 | |||
aa78278ef6 | |||
155bb95353 | |||
![]() |
a8f7d41d38 | ||
![]() |
2c4dfe3453 | ||
754dae6c76 | |||
47616992f8 | |||
418d82af28 | |||
c4b32f1b29 | |||
b98a937db6 | |||
03173d63c0 | |||
9ef3736959 | |||
56bf92f0f6 | |||
b9c0eed206 | |||
db317f070e | |||
fc06b4c033 | |||
7502bc583c | |||
089870ab3a | |||
52fa0c4251 | |||
4e9e44ad28 | |||
ba62e20af6 | |||
7cfea48752 | |||
b8605ee458 | |||
e0cc86978c | |||
f9a805164a | |||
298711d158 | |||
![]() |
fcf1a9ff71 | ||
c76e1ecac6 | |||
59e1009f10 | |||
85ef8e1945 | |||
a91f9c2c01 | |||
f0ac55f519 | |||
![]() |
a26038ff38 | ||
![]() |
3063d90cfc | ||
eb7218de8d | |||
9a4927031d | |||
ed7dc4282c | |||
5c3dc52536 | |||
e3ef56ef91 | |||
5d6e7df4a8 | |||
a27024e36d | |||
97dd107070 | |||
051a341cf0 | |||
14980c9b3a | |||
f256201876 | |||
50f9c1c09c | |||
bddcb89cda | |||
28105caaa3 | |||
843ad51d18 | |||
34c701abbd | |||
3f657e7ef1 | |||
83c0f6ac37 | |||
5c790fd52b | |||
709e620977 | |||
378f65f7d9 | |||
3354ec3fb3 | |||
2a60b979cc | |||
2d041fc468 | |||
190ad73590 | |||
debb233787 | |||
fae68ec651 | |||
8ea5a5259d | |||
82fc8786ea | |||
0df574b55e | |||
6636edbb00 | |||
9d0777e514 | |||
da85245704 | |||
94323bb427 | |||
4b0e7fe511 | |||
26f721b516 | |||
e58e023e1a | |||
d9505831a4 | |||
db9e08a0d1 | |||
![]() |
1f0048cc2d | ||
faac25fefe | |||
![]() |
1a820680a1 | ||
9435ee8c65 | |||
8d284d4854 | |||
7688f0ace7 | |||
c52a18abf8 | |||
883d8ea16c | |||
329efa23d0 | |||
31f0845b7e | |||
8f0907b797 | |||
d4099465cd | |||
b98d116257 | |||
7ff054c6d1 | |||
c46d4d9fad | |||
7f24d90f11 | |||
ce1d023667 | |||
598a26fd8a | |||
935ef06fd1 | |||
fdb854b932 | |||
![]() |
bd00324c26 | ||
322abb2e4b | |||
8c33a53b17 | |||
9145a4d08f | |||
780c0ea097 | |||
dfa5201763 | |||
7537369498 | |||
6e879c3998 | |||
242bfd28ce | |||
dccdc6213e | |||
8fb8a6529f | |||
c63569c0e0 | |||
abbc8333ac | |||
af6f3a4020 | |||
1c38bfdc6f | |||
004913dd95 | |||
3f5073a8e2 | |||
7be07a9d6e | |||
a720a4aabb | |||
c5d3846b10 | |||
cbb897070d | |||
148dcb3954 | |||
faa97de208 | |||
9dd27a2c87 | |||
929811df63 | |||
f4a9a3767e | |||
e86c2f7288 | |||
c355be6fae | |||
![]() |
4ffee9a48d | ||
ab444a80a2 | |||
69ee9ca90e | |||
01d7dedd74 | |||
9bb2afb55e | |||
5d9ade27de | |||
3c60d62dba | |||
d0e3388848 | |||
da00d62c49 | |||
56b218296c | |||
b683a37824 | |||
5e5fe217ca | |||
41c10ac84a | |||
e7a21275c0 | |||
![]() |
4527dd1ce4 | ||
3ffc558341 | |||
0554537c3c | |||
bb8953ab49 | |||
5b7e7d67a5 | |||
4cba209edd | |||
ccbf9ee482 | |||
eff62ea8ab | |||
5d57d9f899 | |||
e4bf58e285 | |||
72b9e07cf2 | |||
dfa5bd689e | |||
c922b9e2c1 | |||
b872ad037a | |||
16264aebe6 | |||
b1d3b14711 | |||
650a15fb9b | |||
bd7b181e10 | |||
df8d96ab66 | |||
276e419671 | |||
7e55ff15b0 | |||
3d3ba9ca8e | |||
cf64a1d73e | |||
90f4b35bc2 | |||
c15ae2e87b | |||
4206b30275 | |||
32e9c9802e | |||
6161ce6e5d | |||
982d6589a8 | |||
a69e5c2348 | |||
95055af668 | |||
![]() |
106d937a4e | ||
f18067aa03 | |||
a9696f04a0 | |||
fbcc00d10d | |||
c9795102c2 | |||
e7c58941b1 | |||
65166e145b | |||
66de653784 | |||
![]() |
79fe27b976 | ||
34e04ccde2 | |||
ef268c7893 | |||
![]() |
f00d9e80ae | ||
6bb703a9ee | |||
8bf9d482da | |||
58ccd8338e | |||
7c98632289 | |||
cfd087673d | |||
1cf64434ed | |||
6bd2c6789b | |||
df40e9d0aa | |||
e190b70946 | |||
e75f3e3feb | |||
90ccb71969 | |||
547efb6b1e | |||
![]() |
92d7f9ac56 | ||
416aef4e13 | |||
![]() |
0f22b5599a | ||
4a7e1c9209 | |||
c64d1b23df | |||
b544225202 | |||
acdc043c30 | |||
edbf04ff37 | |||
![]() |
5c726dd4ef | ||
c39e932631 | |||
2185943235 | |||
f7c6d3705d | |||
3cefa13770 | |||
feeb8310c8 | |||
b6c28002ac | |||
209f2b85d7 | |||
011327224e | |||
0ea282f746 | |||
![]() |
4593fb52cf | ||
![]() |
d23818fcd9 | ||
95964444c6 | |||
1516f7dcde | |||
6b508eb012 | |||
6dd8ceef2a | |||
![]() |
2ac5b55289 | ||
b708f45922 | |||
a5ac0375b0 | |||
45fb7a1db5 | |||
4a9f60ecd2 | |||
40f40e9931 | |||
70c6beeafb | |||
087e95d0fe | |||
a02992f131 | |||
302b04a5a3 | |||
c51b8ec863 | |||
43b65150ed | |||
930398d5b1 | |||
6b2dd3e314 | |||
b1163d2198 | |||
![]() |
66f826ae85 | ||
eaec01cad5 | |||
2d0877ed7e | |||
3283bc6367 | |||
f32d7dd0c8 | |||
68d037190f | |||
e1dc54c8fc | |||
6777c420db | |||
d94d7a5d8f | |||
45645936e9 | |||
c0e4532331 | |||
2d18dd9309 | |||
1c61db5346 | |||
![]() |
33be9c0885 | ||
c257443192 | |||
814f360c83 | |||
e127182065 | |||
75ad435ceb | |||
fde7d39051 | |||
![]() |
abfa09752f | ||
270ed1c716 | |||
9e88cfbe0c | |||
b8064e3312 | |||
![]() |
bd6912930f | ||
614aa9d8ec | |||
f9f73473d6 | |||
b585872450 | |||
d5dcbabdd2 | |||
![]() |
4d982cbb5d | ||
0124de9d0e | |||
c96f2778f0 | |||
dfea5e24ad | |||
c1ffea157c | |||
f9076f3869 | |||
33fc230ba2 | |||
![]() |
e6d50cdd43 | ||
ca9e1f6391 | |||
dd95deadf3 | |||
fd7c070861 | |||
40cd041f74 | |||
b8cc181808 | |||
![]() |
b910114384 | ||
381fe684e2 | |||
65f4f50640 | |||
7a44f62bdb | |||
317dfc1735 | |||
17a773cdce | |||
36348bf4fc | |||
8eef98710b | |||
![]() |
67e23b4b29 | ||
a571c74e10 | |||
31ebe8982e | |||
![]() |
6b35d9e6fb | ||
a2b9b9d3c4 | |||
f0a3d2beb2 | |||
6f7171525b | |||
![]() |
64a3a11e19 | ||
6243972319 | |||
![]() |
279e7dac7d | ||
83c2cbb880 | |||
36f5967b99 | |||
228d79b789 | |||
6de0f29950 | |||
151fc2fcd8 | |||
6a2c42a0d5 | |||
2b806cb955 | |||
ddc6b86a5b | |||
a617929683 | |||
3cf6516e7b | |||
![]() |
9130a60d3d | ||
7b6b740ace | |||
e1c0d18598 | |||
1cf05f17eb | |||
10a2c50733 | |||
3a8fa77c1f | |||
2b6c633b63 | |||
0e88c2fc59 | |||
30273b86c7 | |||
4c3b984b3d | |||
77f10fceb2 | |||
81c5b759d6 | |||
a646a4b47e | |||
be692cc4fe | |||
ef8bb8c0d5 | |||
22fc0cbd69 | |||
3237c6dbe8 | |||
b513c89e84 | |||
ba1e97f1c6 | |||
5606942c63 | |||
2967726a29 | |||
2a8afc142f | |||
9a0a4b0c0d | |||
12bde317f4 | |||
35d2a22846 | |||
fca94c5e0d | |||
f6290cd2a4 | |||
35da733e6b | |||
9b6e86ace1 | |||
![]() |
29755e1df8 | ||
f1d191120f | |||
ad8add5f0c | |||
2580d2bab5 | |||
77eadbede4 | |||
585d81ba2b | |||
![]() |
f748a81f25 | ||
7927ac2fbe | |||
79973494ec | |||
e08c932482 | |||
3323cd9c9a | |||
11f38f59e2 | |||
4c4e8cc926 | |||
70648683a2 | |||
cc09661c4e | |||
b3a713fffa | |||
9b5dda3b07 | |||
93de6b912f | |||
4919403c29 | |||
41a0411d79 | |||
b0fe0e6a30 | |||
0473462241 | |||
a5ff46e0fc | |||
dc64673f6e | |||
![]() |
56435b3268 | ||
![]() |
792bf82f11 | ||
9b775ebad7 | |||
6dde88c536 | |||
54182e4925 | |||
3e5a4d1412 | |||
633c2f07da | |||
2eba15d3e8 | |||
5c6ffd07e0 | |||
d1ea39aac7 | |||
1c83354c63 | |||
![]() |
c2a2f3553a | ||
b8403b065e | |||
e63799e791 | |||
b830263186 | |||
![]() |
091100bfd7 | ||
![]() |
2ae4397ec9 | ||
![]() |
57816a6435 | ||
![]() |
d8e9647ae2 | ||
d20bad914e | |||
e4f51b3a6e | |||
743a027862 | |||
1160a3a3f8 | |||
d2a3b99ff7 | |||
![]() |
532b33973b | ||
![]() |
328a911379 | ||
5c0d18f682 | |||
![]() |
b6a76243cd | ||
1cde1562e8 | |||
![]() |
9f4ec73101 | ||
6c3965c027 | |||
cebc5531e9 | |||
785931fc3c | |||
a3d0f77ded | |||
a7b91fc8bc | |||
31d80ddeaa | |||
![]() |
df2ab4e758 | ||
![]() |
5946ea938a | ||
f4d8382c86 | |||
75f0aaab3d | |||
b8289eb1b9 | |||
8fab580949 | |||
c08fda3a6b | |||
256cb68d33 | |||
d901f8b75b | |||
7140016838 | |||
d2f47017b9 | |||
9622dace3e | |||
![]() |
d90b320444 | ||
7f3af2aaee | |||
15bc3d260d | |||
d373206c3f | |||
3bb34fb7ee | |||
ee78c860b8 | |||
84fc086254 | |||
5d3df1c296 | |||
3df6e75a26 | |||
beaae4533a | |||
84315368ef | |||
697363545f | |||
e42c662723 | |||
1154b45526 | |||
4144a85bda | |||
d7fbc5708a | |||
95465606b3 | |||
a18c291435 | |||
3545d8a500 | |||
522dcc54af | |||
9f8cc1bc34 | |||
549f9a1178 | |||
df3a67fc52 | |||
f86722afc7 | |||
6a1cc0d855 | |||
3bb8b64c47 | |||
d2e4bd7995 | |||
af983a3eef | |||
06b212c446 | |||
![]() |
eca0c95d51 | ||
72a5bb8ba9 | |||
ff1883307f | |||
b73a52302e | |||
088157e447 | |||
e658c8851a | |||
f8cec1ff30 | |||
a76c1ddecc | |||
6e8217d35e | |||
![]() |
6ad9d8e224 | ||
91b5254598 | |||
cf8922ef57 | |||
b7e193cdad | |||
d48735cca2 | |||
575884b827 | |||
7bf306622e | |||
b8bd304bd4 | |||
7d030213b2 | |||
cf3238c1c7 | |||
ac4836af6a | |||
30f244d96f | |||
3c2a2a6c96 | |||
8a3ff496a7 | |||
498f079d2c | |||
881d1c9bc2 | |||
35b2b9b6e6 | |||
5c814e75f2 | |||
![]() |
600c391a65 | ||
3d3c0dfe30 | |||
5b5811c97b | |||
230f72347a | |||
![]() |
257b4d138c | ||
![]() |
33bad77043 | ||
524a9e3db8 | |||
5485057a27 | |||
0ea173165b | |||
9bae9d97b1 | |||
d86af60429 | |||
3c0162295f | |||
0d43117a40 | |||
23662a9a84 | |||
52b93c423d | |||
b8f489c65b | |||
133095fff4 | |||
18def163f8 | |||
f0b4aa5d59 | |||
8d61ca5815 | |||
2c1bffa286 | |||
24246d9870 | |||
![]() |
838c4a97f1 | ||
75489b5887 | |||
d54eb5ed20 | |||
510f3fe9a9 | |||
10981bc8c0 | |||
18960c08fd | |||
96764c3a1f | |||
9830603620 | |||
f59418fd92 | |||
5cda99ff52 | |||
c756d08b4a | |||
1152a437e0 | |||
0ff7a7b3b5 | |||
62346abc02 | |||
483bc6c9c1 | |||
e2975cb701 | |||
209bf7780e | |||
650d2f863d | |||
b6b5f317a3 | |||
23d2e77a54 | |||
69d3f41d75 | |||
6562a11c60 | |||
dc11e1164a | |||
947ece8d39 | |||
8b9469ec36 | |||
5a30fe29ef | |||
e0c966a3b9 | |||
49b068bc63 | |||
![]() |
e6eefdd402 | ||
dce03ecd5c | |||
798b49109b | |||
9bed68de13 | |||
36307d8fba | |||
1064bf58c3 | |||
b19751bee2 | |||
65b1b1cd34 | |||
a17f74ab34 | |||
0d644e6d06 | |||
9dd5c2a7ec | |||
1fed24de5a | |||
409c62aa61 | |||
02012b0cce | |||
fa99323f09 | |||
e6e9f1ac5a | |||
![]() |
2804497312 | ||
43ddfdb1a5 | |||
653100cd65 | |||
004d858138 | |||
7e89bbb2ff | |||
0a3650210f | |||
d3edb3cfc7 | |||
502089f275 | |||
298372fa06 | |||
f0fa90e156 | |||
fe988f6c7f | |||
60bf561d37 | |||
![]() |
2e33172719 | ||
15b4120064 | |||
41053deba4 | |||
2e6cd70473 | |||
216a2c0f37 | |||
c1a231f40b | |||
412c468893 | |||
7cc8f2743e | |||
e550e400cd | |||
ea39d808b5 | |||
fc79b17dce | |||
66483c58eb | |||
f5dae5844c | |||
9978689595 | |||
f7bfbc357c | |||
b83f33ffca | |||
4acbb84efa | |||
2770010224 | |||
08f5219d1c | |||
46f93ac6be | |||
04a75c90d5 | |||
20ba130315 | |||
a59fedb0bf | |||
6737f89e49 | |||
7a24fe372c | |||
f5e7221fbd | |||
b690f4c2e6 | |||
06780aa4e6 | |||
25f18e6c49 | |||
0f06de8072 | |||
58a67e6fb6 | |||
3012eca350 | |||
67254ea37c | |||
e772087ed6 | |||
c7942c31b2 | |||
ca9d65cc97 | |||
4e96d71ddb | |||
![]() |
d209629806 | ||
28f4fc664f | |||
4475c38c5c | |||
06e0776175 | |||
e903403b41 | |||
c654a92237 | |||
c1d295e905 | |||
e1f15e3b32 | |||
1b4f35f6a5 | |||
827fa81767 | |||
f001c85772 | |||
97f894881c | |||
74e9605455 | |||
6c31bd80e3 | |||
b5a5c24396 | |||
0bd6b3e5a0 | |||
f89ea052f7 | |||
9a063e85a5 | |||
67f5596f19 | |||
77b34a00f9 | |||
afde12e066 | |||
988fc24930 | |||
3b7ce70232 | |||
1c5f09e8a8 | |||
1243c2bdae | |||
40d700c6fb | |||
e2993719a8 | |||
5abe127b3d | |||
85fde25178 | |||
10850f0db9 | |||
19e0b60f3e | |||
5ada2afb6d | |||
434133a631 | |||
9634f7fae3 | |||
16f5d51109 | |||
c55dac9904 | |||
afe57c4001 | |||
37097ae62a | |||
3ac656d367 | |||
7a849678c9 | |||
07a5869cf6 | |||
ac2a56d7f3 | |||
019df1fa73 | |||
4c7b0804f8 | |||
cc4d46d91e | |||
9d7e731444 | |||
f24d32f791 | |||
922861c5dc | |||
add1da52ad | |||
9e622e1d02 | |||
f6268f921a | |||
717ab5aeae | |||
4d0f7c3dcd | |||
f5d0a40122 | |||
07341d7b32 | |||
9cad614ad5 | |||
![]() |
9670c649d8 | ||
a24a28db7b | |||
d83a418c45 | |||
28f852ccc3 | |||
00aa57594c | |||
178c184825 | |||
2601b9832d | |||
eb9fa052a1 | |||
6a11cd036c | |||
aebca2bd65 | |||
e6548c03f9 | |||
32ee2ffc7d | |||
14d1ad8dd8 | |||
6d726192be | |||
f37a37cafe | |||
41c7c744eb | |||
ed15900473 | |||
8a6cbcf386 | |||
0fddff027e | |||
a91c8d8efa | |||
62dece5c86 | |||
38bfa53081 | |||
0926495de4 | |||
a632260828 | |||
96f88511ee | |||
132e58610d | |||
3bdf1c11fb | |||
84906d47dc | |||
8b8fbffeea | |||
8a02696724 | |||
530f2abb9b | |||
4ff9c0f4e3 | |||
371fc68678 | |||
285a68b7bb | |||
![]() |
9c28f0eb37 | ||
![]() |
f69c565a33 | ||
fe4e646405 | |||
a3e7280bd8 | |||
8843705f65 | |||
d62e6f1225 | |||
1a71f9d2b8 | |||
cc1cc46099 | |||
405bbb06f2 | |||
ed8f2bbf5c | |||
ddce8e9ea3 | |||
1b9e31f004 | |||
17971b8a5b | |||
8791762af0 | |||
8d813f2eed | |||
af29d103c6 | |||
9e393fc2f1 | |||
![]() |
520be607e8 | ||
7a751327fa | |||
ca29376e00 | |||
b52760a023 | |||
fe746b2738 | |||
5b0e9bd975 | |||
6eea5f70e3 | |||
1af652d42e | |||
83fd3767d3 | |||
8d09a12414 | |||
1269bcce81 | |||
8edd1d8aa5 | |||
a1d2efd190 | |||
b3e0101a35 | |||
ca336c600b | |||
491ada0a38 | |||
62f813754d | |||
173a15bcda | |||
a857156578 | |||
3e7d977886 | |||
9fda233897 | |||
d39e0f9616 | |||
627d42cd56 | |||
ec493d79fa | |||
b568f445a5 | |||
391485f412 | |||
60442b0292 | |||
cbeb70bdae | |||
7974d2bff6 | |||
139a651434 | |||
add307d429 | |||
59e6dc8a93 | |||
6410fe0492 | |||
b818008ddf | |||
9c029a3eb0 | |||
![]() |
e62a33e572 | ||
af9c969768 | |||
0b25d923e5 | |||
ccf0d22e92 | |||
b69aad60bd | |||
![]() |
1203bd58be | ||
503bcaf1a2 | |||
f49efed953 | |||
3b7e314a28 | |||
d422715094 | |||
1456f30b02 | |||
2918a3a2a3 | |||
1e0e1ad20f | |||
2935b6a2ac | |||
3a8a44b3f9 | |||
16934c198a | |||
![]() |
4412e14708 | ||
4fc7e1a880 | |||
4637f3e83c | |||
58d350b489 | |||
dcbbdc89ea | |||
9ccc21dde3 | |||
4580c18c56 | |||
![]() |
b77494ec61 | ||
7c4826d971 | |||
99847cd642 | |||
b4d3ca624e | |||
263371dc4e | |||
243891104f | |||
af6a68217f | |||
ea182deeb9 | |||
b3101abcce | |||
56ede578e7 | |||
a863ba191d | |||
![]() |
7c511f1b47 | ||
14fc89f38f | |||
3a57f5a9cf | |||
f700aa67ac | |||
128aa7f3b0 | |||
3772dda4ab | |||
a094cdacf8 | |||
7eb2018a0b | |||
bb9647b703 | |||
3cd283a424 | |||
011d9cce19 | |||
bb34afac56 | |||
8589f60546 | |||
c7e4c43072 | |||
93a68f2a90 | |||
270a24cc64 | |||
545d469879 | |||
c4e11122c5 | |||
72ea37ae5f | |||
648350e456 | |||
d450a791c3 | |||
4e3ce04855 | |||
e37eebf16f | |||
899ec8b6b8 | |||
176d7bcc2e | |||
31da775ec2 | |||
![]() |
e90ba74d3e | ||
e230ccaf8c | |||
db5ffdd1a4 | |||
6572ad8620 | |||
a5190dce9d | |||
23f8fc38d9 | |||
9531eb24b3 | |||
8e02b53ae7 | |||
2681e480ea | |||
da45c12bef | |||
34f94a02f3 | |||
3fe7d049d2 | |||
f606393522 | |||
f8b389b121 | |||
5cc118fc09 | |||
7f7ed8e098 | |||
6b9a3be03d | |||
![]() |
59adee83e7 | ||
e7156be86e | |||
0b38b8dafa | |||
e73fd4f0c0 | |||
691ab3fc46 | |||
1a3ac2f750 | |||
5d9ebea15d | |||
12722bd354 | |||
2780c7e312 | |||
074010ad6d | |||
9d8fb80f21 | |||
4c4056579b | |||
d040e1da4f | |||
284a3431ae | |||
fa5cf5360c | |||
cf6c8ae01b | |||
6b84465352 | |||
0a2a8d702a | |||
3b51d9065c | |||
5c6053ccb1 | |||
![]() |
50976657ac | ||
4eb5163b18 | |||
16d329da28 | |||
9babe39de9 | |||
cf5529af12 | |||
e87082d8a7 | |||
379672ca0b | |||
9ad19b0453 | |||
c4701a027f | |||
1fb36e9a7c | |||
4a72b64c7b | |||
545b9ddc34 | |||
049e42ef20 | |||
c15e913df8 | |||
7f47f187c1 | |||
b5fe0f02be | |||
73d8015aa3 | |||
2b80bfe9d0 | |||
33f5e8f239 | |||
10488d54d9 | |||
91c44920dd | |||
3cd6ccd968 | |||
2d9c5f3dcf | |||
96a47af413 | |||
9e43a57d22 | |||
9580f23596 | |||
1174cdc914 | |||
9bb7de274d | |||
432c4c74eb | |||
![]() |
901791944d | ||
3ca76ae0e8 | |||
48bb144fea | |||
f4456a4d3c | |||
40ecf9d606 | |||
33eeed5b3c | |||
d73adfdc86 | |||
0f73a27b76 | |||
ef3f33dfd3 | |||
7afcfe111a | |||
604409b8c7 | |||
f60ac5068a | |||
fb08353f38 | |||
b450a8c851 | |||
68150b666c | |||
129ea355c8 | |||
bff9841465 | |||
a493956eaa | |||
a1e6245650 | |||
e72b86d3cb | |||
c667069a12 | |||
7dd0258d4a | |||
ae0b68e129 | |||
e0f3c23ac0 | |||
e9eae1b857 | |||
110c90b3cf | |||
d3b3d72303 | |||
e5ab1495e5 | |||
da7bc51210 | |||
38acd14fb7 | |||
71ce47a71d | |||
1bf35f1b19 | |||
61a7e5be18 | |||
4cab98f8be | |||
0f29f2c3e6 | |||
44bac4c8cc | |||
ca346d2176 | |||
54d076b20d | |||
46cb24e7c2 | |||
0e8d6c2828 | |||
65e7d49939 | |||
ee57afe7e1 | |||
12642bdeab | |||
b38a59881b | |||
6cee404914 | |||
75162ab8c2 | |||
79cee340a8 | |||
511a08585d | |||
b9f29a0f64 | |||
0f47506cde | |||
5c80bcf8c2 | |||
484ea573af | |||
dc389a6152 | |||
a1830859fa | |||
96f20ddc1e | |||
610619c203 | |||
a40b611128 | |||
f2cd7e08fe | |||
908dfd5e0d | |||
52cb24a779 | |||
3060b98842 | |||
a746cef825 | |||
d356a4f280 | |||
a5dcae0c64 | |||
3d66ee8c97 | |||
e37027634b | |||
4669178fc3 | |||
39c14f4e84 | |||
765c16bbd0 | |||
75ef51cc80 | |||
9301cc74ee | |||
344a8fb3d4 | |||
0d7e0ffdb5 | |||
e82141b6b4 | |||
247ceca629 | |||
18a17d4291 | |||
![]() |
a30e67813d | ||
a3a138b41b | |||
5fdd367786 | |||
![]() |
1ebc0ebdc0 | ||
993fd985f0 | |||
c338388354 | |||
c8058e51ee | |||
1c6b66c9cf | |||
94444aaadf | |||
fb86f3ee18 | |||
ed2a345402 | |||
7056c7520a | |||
ca59391704 | |||
![]() |
f523fb1dc9 | ||
![]() |
c8cef83fae | ||
b24e091c5a | |||
3f9376851b | |||
3437cf155e | |||
a5d9b3442d | |||
4267c6280a | |||
dd2ed1c55c | |||
fb62fcf071 | |||
e7544e3ce4 | |||
c1277c5d25 | |||
6856290514 | |||
cd6551d4eb | |||
fc1ae52994 | |||
de610d06a6 | |||
65bd9974d1 | |||
afd81e26af | |||
a9a4bcc3d1 | |||
a775389823 | |||
70171cdfdf | |||
6a59cf0530 | |||
1f85877263 | |||
![]() |
a8471459fd | ||
ec8365b9ed | |||
7f877ee042 | |||
fbeec91abf | |||
24e74f8bef | |||
ddebb0f783 | |||
bb0fc67582 | |||
2f77b2daac | |||
ce1dd44c68 | |||
![]() |
878a805ae8 | ||
f1c29b9bd3 | |||
fc3c589b18 | |||
a7bda30ca8 | |||
16746e8ec2 | |||
3c0d7152c8 | |||
cc4b6c6476 | |||
32bf6455a0 | |||
218f23935c | |||
86cfc30aac | |||
3152d68b70 | |||
93e4b15767 | |||
13373a6ccd | |||
49368c734b | |||
812a9728f8 | |||
314e5cb889 | |||
16166f69be | |||
5dfff02437 | |||
138a4846e2 | |||
86baf6e3ed | |||
3f1f4df3fd | |||
712b0496c1 | |||
967f96ee2e | |||
7b65086fdf | |||
da1dd98101 | |||
bd2f9a16fb | |||
![]() |
52c1f983cb | ||
b45f410b31 | |||
![]() |
74cf22c42c | ||
3a4f2131c2 | |||
9fef80c663 | |||
bf6aa5d63d | |||
abf8750dbc | |||
5b40c48f85 | |||
5417b8434a | |||
802f107e38 | |||
e5c65709a2 | |||
![]() |
8d53ead69b | ||
![]() |
f45a735aad | ||
84189a6340 | |||
f41c7723c9 | |||
5625a21fc7 | |||
da9e14b0b9 | |||
46456a59c4 | |||
7aad4d459e | |||
6d4f16a776 | |||
49032a8ca5 | |||
ae39abe7f3 | |||
fdc2b7bfa4 | |||
bf53956914 | |||
55e3930b25 | |||
d6badf6fde | |||
2a367689d4 | |||
38a2576ace | |||
790fe55c52 | |||
fdb1a7b5e1 | |||
374ce5dcb4 | |||
3131107ba3 | |||
ae5d3fa2d0 | |||
3f3d82cfe9 | |||
11480763b6 | |||
dc6fe73e70 | |||
a4a7af4732 | |||
f3c03982e5 | |||
6feca52349 | |||
f1df685f57 | |||
![]() |
1a516bb714 | ||
496394daad | |||
a337e7738f | |||
f381c31ac6 | |||
288e7d0af0 | |||
e8eb67bb04 | |||
841a354412 | |||
b0d2a435a1 | |||
a072a264b6 | |||
ef59c8295f | |||
c27be07d89 | |||
98b66dc040 | |||
![]() |
c980ed27f0 | ||
53f7c22022 | |||
332d87375d | |||
c64e9c6ae2 | |||
4949dd54eb | |||
cb3b9358bf | |||
6ec0f62e3f | |||
a4e7a5aa4f | |||
adaf92b4ab | |||
80e007fe8c | |||
c9a9763e36 | |||
aab947eb46 | |||
26c6ec5594 | |||
8f0612b781 | |||
08324ba2c1 | |||
e69f3d7db1 | |||
1ec01b2142 | |||
603d3c90a5 | |||
57b87feda1 | |||
d46647040d | |||
ceff1c2f65 | |||
ae73bd3d9e | |||
b0da080c2c | |||
7b778166db | |||
25d216724b | |||
cd412b4454 | |||
961db61fb8 | |||
bc3dbf109c | |||
463077a3d5 | |||
258f6cbf93 | |||
bfec666dbc | |||
a40a269062 | |||
10aa2fa902 | |||
2da7977e3e | |||
089175bb1f | |||
f29ff7fb7e | |||
2ca66d541a | |||
bc1eb513ab | |||
![]() |
cd77bf44d4 | ||
![]() |
d1340e1bb2 | ||
b84264fbc5 | |||
ec5b53a018 | |||
174c3ffb4a | |||
123f4db9bd | |||
2ea6a0dd4d | |||
e07b1b8316 | |||
cd968a3273 | |||
64a5a7ade1 | |||
5744e7d247 | |||
bb6f0b085e | |||
d55e1caa75 | |||
c968dae054 | |||
8eda776eef | |||
770510915c | |||
bdab538b30 | |||
a22ad7fbd3 | |||
2655f47ca3 | |||
b2e5fc72c8 | |||
8f79fa9c67 | |||
0d6dda4555 | |||
02c5ca2f22 | |||
9039fbaa9c | |||
917c096be6 | |||
ffa262c9f8 | |||
9e45af530a | |||
a8c81ffa83 | |||
14a5a91e0e | |||
54f357ed2a | |||
ec95f4a5df | |||
0e6d70fec9 | |||
d91711bc85 | |||
bc8e030a84 | |||
2b9dfff6f3 | |||
09b7e141d2 | |||
e4de0d28c4 | |||
bce37bc52a | |||
7542dc460f | |||
5565d79057 | |||
16fd5fa656 | |||
7f1a5f2567 | |||
![]() |
f4d31fbf6c | ||
85e3e3be5b | |||
aea59428eb | |||
63cf0d0890 | |||
![]() |
82d7234ed9 | ||
698e394e7e | |||
9bb4bf5748 | |||
3e4f84d10d | |||
eb5e7d0a31 | |||
469ee7ff15 | |||
09292b89c3 | |||
00506d7a86 | |||
2f2d13b8c6 | |||
eba6900b08 | |||
a833c7f4a5 | |||
f626fc27f9 | |||
3fe1079ecf | |||
2d67b375a1 | |||
62a2b92b6b | |||
a5409d2b59 | |||
f4101ba4a1 | |||
c4e5a7d59a | |||
f4a01c8a8b | |||
8f3847aef3 | |||
b81f1b8cf1 | |||
f93b237194 | |||
4418536f69 | |||
ad33e68348 | |||
1e882b8657 | |||
4d509fd6e1 | |||
c92f137a75 | |||
47b0ca85cd | |||
341f1e444f | |||
04ed96136b | |||
568b692bcf | |||
84e55e3dc2 | |||
d095fcd6b4 | |||
e222e19d82 | |||
fff8f969de | |||
fdb1f70468 | |||
9d9f2f1a03 | |||
45ed325443 | |||
84901adec5 | |||
dfb8c90324 | |||
0d73113452 | |||
029e6b5174 | |||
bf352df27a | |||
9b082da708 | |||
8d65895af8 | |||
de561280fc | |||
b215fe82e8 | |||
f8239cc9a0 | |||
cea37b3127 | |||
a89f829f12 | |||
019681b984 | |||
47c2a876bf | |||
d4cdae29c1 | |||
1d65f7ea91 | |||
b8bd20d7e0 | |||
![]() |
8e02b0d5d4 | ||
af7502dd9b | |||
d27f4e8493 | |||
f049591967 | |||
f61dd33f50 | |||
f68fb81064 | |||
838806be28 | |||
780ad443fd | |||
930e526cae | |||
42a6c226d0 | |||
c1dcc64750 | |||
74a34d95d6 | |||
a42307eb65 | |||
f600a2aa6d | |||
1a627d528c | |||
![]() |
89106a695a | ||
9e9895b055 | |||
65e13cc2d2 | |||
bc6965cb98 | |||
436a7ee651 | |||
2d5b91d6a0 | |||
eb13072399 | |||
f8ebb0e1d5 | |||
d0fabb318e | |||
f5b708d1cf | |||
29ca935eb8 | |||
4fc96e5000 | |||
24745e8d27 | |||
74420d95b3 | |||
e42e4e8568 | |||
c88de1594f | |||
f4cbfaded6 | |||
2e06c223cc | |||
5d0432a2ea | |||
a111aae415 | |||
ae11233b65 | |||
3ecc03c3d6 | |||
76b6741981 | |||
41feaa17f3 | |||
e9c3af3dd7 | |||
6730c11dd9 | |||
3e2017491a | |||
30e666f747 | |||
ae2d2c9361 | |||
b16eff2bb3 | |||
b3e53d6daa | |||
f4028630bf | |||
769cdccd0e | |||
22812579bb | |||
7ace6dc496 | |||
89ccff62d2 | |||
699944572f | |||
0fcfc4cc5b | |||
33c5adba62 | |||
9631bb1e17 | |||
ca780f4406 | |||
4fa743af85 | |||
683570c7fe | |||
80811c5638 | |||
790598fa60 | |||
fe4ae77ded | |||
c4c6ea7ea9 | |||
c34e3f0f19 | |||
28316e0810 | |||
8ca9ce0986 | |||
214e61fc2c | |||
47dbdf8dd5 | |||
14a893f20e | |||
b712dbe5de | |||
c56103356f | |||
2e70af5cd5 | |||
342e12d6d9 | |||
f517b3a295 | |||
708547ab06 | |||
136a06285f | |||
8fb2a61966 | |||
f937c186de | |||
3cd3a4abe3 | |||
1fcdb1ea28 | |||
e8e2bdaa86 | |||
c9ae9e1483 | |||
df8a9648e2 | |||
c536791f36 | |||
ba2c6c90fa | |||
a820ba0d36 | |||
418184d1c1 | |||
6f00b1500c | |||
9f8254fd34 | |||
369f652c80 | |||
2719869a2a | |||
c8edc458d1 | |||
88fbe94d70 | |||
77f2cb1686 | |||
5d1cab0c2f | |||
d7053ba030 | |||
0af772ef8a | |||
ffbeb34f5f | |||
c38187393a | |||
ebb492a389 | |||
df26f4f63a | |||
35e73aa347 | |||
![]() |
b48adbc9d7 | ||
b3b5d4cabb | |||
83349294b1 | |||
8fdd3aad9b | |||
0609b4bb49 | |||
8c9805fc62 | |||
939c2387a1 | |||
b759a3eac0 | |||
7a31229011 | |||
fb2ae6b8c5 | |||
9a4cb7a732 | |||
6d42cd8ff9 | |||
22bf263269 | |||
c6e3242e18 | |||
ff2d6c2ba8 | |||
c8b740cc00 | |||
![]() |
dbc439e41a | ||
dbb6016e94 | |||
200e63b0bf | |||
ed62b65474 | |||
3ad5510427 | |||
af6765a49c | |||
3ccdc362da | |||
46114f0a36 | |||
c7033bdf26 | |||
65fa34f63f | |||
f9ed31b15d | |||
4301b6c896 | |||
f752eaadbd | |||
c582a2dbd9 | |||
eddfa811da | |||
bdb5a50682 | |||
080e506e28 | |||
fcc3a68cac | |||
a4ed0f51c1 | |||
f4ff36431c | |||
f11401d32a | |||
51195c17ac | |||
210d0f1b80 | |||
c93f3b4596 | |||
1a740c2541 | |||
48c4c409b8 | |||
5c9ab3e003 | |||
77ddcc4717 | |||
7bbf101082 | |||
1660eff1a2 | |||
405d32bc80 | |||
8c4bd02b06 | |||
be84fe4ce1 | |||
205c6d8d08 | |||
6065fbb543 | |||
4be79da9a7 | |||
a2dacefb46 | |||
00af3e9472 | |||
b8c30fb80a | |||
c729ddd741 | |||
5973950b2a | |||
e9d7c05754 | |||
b66368f3fd | |||
![]() |
68d203af0b | ||
![]() |
f1beb3b3f6 | ||
b98175008f | |||
![]() |
00eb7594b1 | ||
0d80c4a2a6 | |||
9bd905e73f | |||
9df91654dc | |||
f1c27b383b | |||
29a3f43da5 | |||
![]() |
48754bc146 | ||
adf183eeae | |||
93bcfd19ba | |||
8c24e29338 | |||
cef36f4a95 | |||
717c150eb1 | |||
2397287a51 | |||
124aae91e2 | |||
7fc2804f45 | |||
84a7641563 | |||
1c70402c62 | |||
7b091fbb94 | |||
024f3ddf61 | |||
ee0c05e886 | |||
b8de9916ed | |||
e46a38942a | |||
3e989e8c8d | |||
b44cec0eca | |||
450a190095 | |||
901fc29df1 | |||
dcaaa5b6f4 | |||
b54abd7ede | |||
a46f34d9b3 | |||
f9751889df | |||
139a4b6a84 | |||
ea5bfedb49 | |||
e1c8ef551f | |||
c2bbd01b2f | |||
7c9b6cc380 | |||
ee363ee7b3 | |||
cf69652618 | |||
fa7224d8ed | |||
074c695a0d | |||
870ad7d05d | |||
ca2fb9bae9 | |||
8e717ce55a | |||
![]() |
5baa3ecda6 | ||
1e4cd98f0a | |||
8d43ee1b08 | |||
7c9c13cf83 | |||
908e6c7c4d | |||
3f952b3ca3 | |||
c2d2cd1468 | |||
a0748153b4 | |||
a80ad0a545 | |||
4680331749 | |||
6f3d155293 | |||
05b56d55e8 | |||
d6c4317f35 | |||
7533bee58b | |||
94ad77100c | |||
cbc024c3ca | |||
6e2270f3d3 | |||
e30ccb9a34 | |||
58555ccc7a | |||
8741cf2038 | |||
42d748be34 | |||
fa9e878e79 | |||
0d1b9eabf2 | |||
3e5cb7b23e | |||
b3938d2a36 | |||
113b8030ce | |||
470cbad51a | |||
427a2c920a | |||
906b9f55af | |||
c0df1cd1b3 | |||
1159b63a07 | |||
6044c6d09b | |||
c09cfdb251 | |||
![]() |
073139e329 | ||
992ae3f282 | |||
e4bb898e40 | |||
f3f7f8b37b | |||
17fc8db104 | |||
018acc5688 | |||
c5b67975cd | |||
d634194cac | |||
2c784f44cf | |||
766340856d | |||
d1f32b63eb | |||
32fd85e6f9 | |||
b24f204e91 | |||
ccd18691fc | |||
f2c7b56f0f | |||
3693e1d8e8 | |||
![]() |
c31f519954 | ||
d9effc1cc6 | |||
092cbacd8f | |||
65d44093c9 | |||
2e8089b6bf | |||
dea5d22da1 | |||
94a54ab554 | |||
9757b4efb1 | |||
f5077e057b | |||
207b0c2a0f | |||
dff11551de | |||
6f5d172d6c | |||
b04de6d180 | |||
77d3e6b439 | |||
6dcda1b9aa | |||
89306a3a05 | |||
87dd8dc740 | |||
993d17af90 | |||
66dada123c | |||
58fe38af9f | |||
a0e63bac02 | |||
81f23ad57a | |||
ca5f832fe9 | |||
0c9892020b | |||
![]() |
c21cc4dad5 | ||
9599c5415d | |||
cb5b33a627 | |||
31202ea628 | |||
0eb2244f0a | |||
59637cf073 | |||
14175043e5 | |||
1242e8b93c | |||
295b6e8230 | |||
3b0a08b793 | |||
51fdf4bdfc | |||
578771ae4d | |||
8d9d5da137 | |||
![]() |
502e1a44b9 | ||
3e782bba71 | |||
007184bcf2 | |||
59cd616534 | |||
8d528241a9 | |||
2001ee6251 | |||
fa114cc4a0 | |||
06a7afb528 | |||
a4382badb9 | |||
6599d2f03b | |||
e354ba701a | |||
3eb3d363e1 | |||
edd892166d | |||
007e95c259 | |||
a3f9862262 | |||
87978ff560 | |||
fbf92f5967 | |||
b9d02b9ced | |||
![]() |
eef98e66cf | ||
6bd270f3af | |||
8c233cfd78 | |||
5045968f24 | |||
61202f6f74 | |||
49173399f3 | |||
b765ea52af | |||
2f799f893e | |||
74a5fb734a | |||
30534deced | |||
2d9a6e4f68 | |||
be9800e8da | |||
b30cb05c14 | |||
![]() |
195986a719 | ||
8650c2b614 | |||
82a70ffe40 | |||
c0546ff953 | |||
0c5a7ca117 | |||
ec53e9fa69 | |||
ae683a22c6 | |||
87d74d03bf | |||
8e476c414c | |||
690ecaae20 | |||
067f0d40ae | |||
a652568570 | |||
2fa2612b06 | |||
42e275a7d4 | |||
8f1a11c35a | |||
17ab0342ac | |||
0091c97b32 | |||
f9e0b94c2f | |||
baf8ec2e54 | |||
046b45749c | |||
1bb7fda600 | |||
b47c5505aa | |||
74228e2cd2 | |||
81b797af66 | |||
28240f78ce | |||
![]() |
dcce4a59a0 | ||
![]() |
dc55e095e6 | ||
c171c99fa1 | |||
8852191b77 | |||
6f7959f55f | |||
3bc037a7eb | |||
9c2613d1b6 | |||
1dd1772419 | |||
0134ab4b56 | |||
6c679aca17 | |||
cd349dc402 | |||
c60b570841 | |||
d9d81cb1ff | |||
b4b85c5ce2 | |||
de71cdb35d | |||
4c3e91e5f5 | |||
9173dd24ad | |||
502c3d6c21 | |||
15021968c1 | |||
b38cd1bcbe | |||
4ffeb2d449 | |||
3893ba5d67 | |||
7849b56c3c | |||
061995775f | |||
a74a267767 | |||
77c0e79805 | |||
2a2e47b20c | |||
439f86ac89 | |||
08a39d32a9 | |||
11aa237858 | |||
bc256a4507 | |||
501ec81d3e | |||
![]() |
4bb90b8f4c | ||
ccb4e29873 | |||
e7464dffbc | |||
1c1e842879 | |||
a4c2060b91 | |||
b468255453 | |||
b6b94f878f | |||
7301547ca7 | |||
35594f4b92 | |||
10865c8f34 | |||
6e2b0a38f0 | |||
bfa1c077cb | |||
bda9a1b103 | |||
c2e26406c5 | |||
![]() |
f4827d08bc | ||
78f61bf8c1 | |||
c2737913db | |||
892562b7bf | |||
f9d7313bb7 | |||
686abf1850 | |||
e0e95f7895 | |||
9f8f35008c | |||
5823e749dc | |||
43e31d26a9 | |||
6f773b1a4f | |||
36e330bd9c | |||
865cdff426 | |||
17429fe5e5 | |||
82060c1697 | |||
95ff5e6d89 | |||
0f7da9a72f | |||
![]() |
719c86c0a6 | ||
b508999d8d | |||
b1b6994129 | |||
b8432c2c8e | |||
025959da23 | |||
![]() |
4ac6177b8d | ||
9913196470 | |||
b651754890 | |||
6b95e75d2f | |||
cc3c15fbdd | |||
![]() |
b96cdbcf7a | ||
![]() |
90298c24a2 | ||
78e7b20c0f | |||
90663acfd5 | |||
014cdd3441 | |||
9f2e995c3e | |||
3a035a4417 | |||
b28e261753 | |||
2a2261d7e1 | |||
23be3294ff | |||
98a04ed452 | |||
5e40c342ae | |||
aee8e49031 | |||
aae2ff49f5 | |||
92d0ed3000 | |||
![]() |
26d375467b | ||
![]() |
a7417ba845 | ||
a0a99fb252 | |||
f23f831e91 | |||
763b8f1423 | |||
dd2df5ceb0 | |||
2ba081f59b | |||
cdd2c8bd07 | |||
acafc7327e | |||
edc92f779e | |||
c7bffc8fa2 | |||
bdfee6d831 | |||
8f6f28a0dc | |||
f5428736a7 | |||
d02b8c1c3b | |||
![]() |
90042b7d79 | ||
b1517e26e2 | |||
![]() |
ce3dd12371 | ||
f3b56246d1 | |||
eac403b6e1 | |||
908976b09a | |||
84756b68e6 | |||
477066adee | |||
12a1fa9cf4 | |||
2c75857f9f | |||
ae9ef28126 | |||
62450e8485 | |||
![]() |
e58b18888c | ||
4a4f0a70eb | |||
693aa573db | |||
4dc6d14bdc | |||
11f3a388ed | |||
11a7da675f | |||
e1476ca310 | |||
929a210608 | |||
fcbd81fb0f | |||
1b566b70c1 | |||
e4931ab86d | |||
108963d508 | |||
75a051a6ab | |||
4fa71be89a | |||
26cda38985 | |||
26bc584e01 | |||
47ba541853 | |||
b891c72d2d | |||
b968e2bf48 | |||
6fa5d520b8 | |||
5b24291be1 | |||
48f7574716 | |||
1830a3dfb5 | |||
ad119d327e | |||
bff9bf728e | |||
611b82621d | |||
69c7ff1649 | |||
be0417d690 | |||
756710800c | |||
78fc5ea1c3 | |||
18bcd8321a | |||
622c4e4953 | |||
c7a345bd60 | |||
960a1ddd85 | |||
598917f49b | |||
7e02c90103 | |||
dbba5c4df9 | |||
b4fa74e812 | |||
09f769bde5 | |||
8d78c3152e | |||
a85df96b4f | |||
94533ca4b8 | |||
3505d948c6 | |||
9ebf8a0c35 | |||
060c5a7fa2 | |||
b4fb2a6980 | |||
8b54e05e33 | |||
eb837ba17e | |||
6513ce258f | |||
0f567ada9d | |||
ddbac88c08 | |||
836fbb90aa | |||
e33c15951b | |||
d0c2fd0570 | |||
d3c895fc41 | |||
777b72b5cb | |||
73fa571598 | |||
adbe71c3fa | |||
8960c6e060 | |||
![]() |
ed0964c976 | ||
f11dba8892 | |||
0fa1c65ee3 | |||
54f447ecde | |||
ac9ebc9de3 | |||
319a772b7f | |||
fc0f6d19ad | |||
5d7ee44406 | |||
1a98bec40e | |||
![]() |
82df48227b | ||
7d41e1ed40 | |||
60772baebf | |||
8ff5836766 | |||
b5c3885bf0 | |||
![]() |
d2271cf939 | ||
5559ea59a1 | |||
b5b6ae06f9 | |||
08daeb9472 | |||
03aba8046e | |||
8bd0ed6bd2 | |||
a0d139076c | |||
a52fbeadb1 | |||
54b293237e | |||
82bf11e73f | |||
dc1793e85b | |||
d86d7c935e | |||
5162135e14 | |||
3bdda67e50 | |||
cbeb8770cc | |||
48c0738d4a | |||
9ee9dd257f | |||
16011e34f0 | |||
7d7047058a | |||
![]() |
b31f5b8ce7 | ||
0f2cc50fc6 | |||
caeea212cf | |||
302584bd6e | |||
14d845192a | |||
e7ba34599c | |||
79e94caa6b | |||
5f8f436dca | |||
aa1fb4204d | |||
2d80f814cc | |||
7dc94155f6 | |||
0375720e28 | |||
aa21087d56 | |||
78e8fae346 | |||
b1cd3be0d0 | |||
f8c8abae38 | |||
0383047257 | |||
2a89509e45 | |||
10b1e993f4 | |||
8cb30c079d | |||
db63945c36 | |||
dc57ab8941 | |||
e86b62f195 | |||
5b2a6b6ebb | |||
502c707e0e | |||
![]() |
1d668b6356 | ||
281bcc1c1d | |||
94205e1d02 | |||
947f8ba300 | |||
04df0a3b8c | |||
2062116924 | |||
9fb98735ea | |||
f586c3ba21 | |||
5962db093f | |||
5f5e7ac317 | |||
11d075f07d | |||
![]() |
61e8310b75 | ||
46d7bcc068 | |||
a2e3005b42 | |||
2ea9d1fccf | |||
6b74c8e486 | |||
20f819d708 | |||
cd1044fb2b | |||
31bf70e35c | |||
cfdec85cd9 | |||
4824cad580 | |||
61b65e9c9b | |||
4196772ae8 | |||
3a002bff7a | |||
74dfb7ca23 | |||
a821a2db3d | |||
1fc95d829f | |||
f5dc675537 | |||
daa9edc9be | |||
fd98403211 | |||
8e71ba12e5 | |||
f80e4f0046 | |||
af2740abc0 | |||
00fb44797a | |||
cc0c4c17f0 | |||
1a6d0ec71c | |||
c09c3246eb | |||
3d96fd6fd6 | |||
56039e30c7 | |||
38a4d96a90 | |||
e4e5d7781e | |||
e62b5e867d | |||
ab7379ae62 | |||
4ee8dfa8b3 | |||
80c8a7dcb0 | |||
8810d0cecd | |||
e5a738af6d | |||
ecc2ec724e | |||
79d4740eda | |||
309b6319a0 | |||
![]() |
fd7384a751 | ||
![]() |
62ef1c08af | ||
0d9e22d43c | |||
b1e0be0d25 | |||
ab5d52a6db | |||
5188c14718 | |||
263f56ba49 | |||
4c3efb4320 | |||
e07ac34b3f | |||
![]() |
3d5f5c2d9a | ||
38394e1a32 | |||
d0948dfb17 | |||
b54c6a20aa | |||
1b0da28038 | |||
951fae3578 | |||
4f3b562506 | |||
0c80a0acd8 | |||
d1cbfc81bb | |||
da46ed9116 | |||
46b32c9d7b | |||
12baea1b8e | |||
8ece0816d9 | |||
f0f44fd92f | |||
a5644f9a28 | |||
aaab3c8ad4 | |||
f0118e9aca | |||
5e5e198bbe | |||
0676963809 | |||
2a7a01b339 | |||
aa34706aac | |||
3f0c09f6dd | |||
fc872d738e | |||
a330b9b0ea | |||
631506d9c3 | |||
eba06fee49 | |||
c87f6242b9 | |||
33518f9da1 | |||
30d1d4579e | |||
6cad9c7964 | |||
d02d1129f7 | |||
6861ef62a6 | |||
cc268238ea | |||
ba22aa8797 | |||
e59cc3a814 | |||
d33801e2bf | |||
1c992cc647 | |||
0dfb6eddc0 | |||
0c44b03b09 | |||
df0616bcd0 | |||
171851a6c8 | |||
![]() |
5ff931149b | ||
12217714c7 | |||
86b37748a7 | |||
6e5877c189 | |||
69a43069e8 | |||
![]() |
57b4efc250 | ||
fc40356ed8 | |||
a8e6ee17cc | |||
669349bfe4 | |||
b95601fa1a | |||
237857cc26 | |||
ac88123e29 | |||
5c92c04518 | |||
![]() |
2fc6563a59 | ||
eaa63c7d68 | |||
fc2c22e90c | |||
9b92ce9dc0 | |||
060a50a5f7 | |||
074a8558b7 | |||
3eb9b4dfbc | |||
a6f951b464 | |||
e0315a5ef0 | |||
1a8a69d318 | |||
3c7a6718dd | |||
4d464a946a | |||
d779b15485 | |||
f44a34fc55 | |||
3b7bce45d2 | |||
9ef727d3d4 | |||
0634bb24ee | |||
0c317e23bf | |||
5d84d9b0d6 | |||
2f49908a5e | |||
baae87ce86 | |||
473a2c83ea | |||
a7db7f88b0 | |||
1d9c050188 | |||
a323ada701 | |||
![]() |
7fd11d9c7f | ||
3d877c8a0d | |||
a111a0f1e1 | |||
a1b21a3503 | |||
d442782dbe | |||
62eb190d4e | |||
fcb0090842 | |||
65e7219706 | |||
cc8fe1a1cb | |||
7f0163118b | |||
720e19a833 | |||
9dadd8bdb1 | |||
0b5cf91b89 | |||
1e23304fbc | |||
9a25a34e42 | |||
4b96517e20 | |||
f38f12cbbc | |||
810f33d434 | |||
![]() |
708fabe3d7 | ||
8095875dff | |||
4b7ed584a8 | |||
d5f3351f55 | |||
308a12ac64 | |||
3d9f0280ff | |||
![]() |
1425b356b8 | ||
c722993ef1 | |||
5b1ec08f04 | |||
2d7957727c | |||
![]() |
fbc884d2a8 | ||
![]() |
bd327e3bf3 | ||
![]() |
110eb23005 | ||
4296c1fe25 | |||
099120e54a | |||
![]() |
024386bb89 | ||
f4718d52f3 | |||
16b6d4aeb3 | |||
44b318bd22 | |||
853713336f | |||
91bd63a196 | |||
22f5c05cb3 | |||
17769489d9 | |||
b1b153b88c | |||
4412cbc6d1 | |||
c9c95201d0 | |||
0ad73bb965 | |||
b0e47ffdcf | |||
77794b1a7b | |||
![]() |
16fe767d00 | ||
e8102aea13 | |||
37ede15e63 | |||
![]() |
eed8c2e655 | ||
198a763944 | |||
eb4b79c556 | |||
9e2d80c49e | |||
74a44e816c | |||
8399375098 | |||
52a5f68562 | |||
3558f565f1 | |||
0539208f97 | |||
e2cd5c6748 | |||
9c82c00b32 | |||
676198f57f | |||
c6ce2be496 | |||
b60f3fe6ad | |||
bfb4dcaa1a | |||
f3d5114c41 | |||
ce115a2786 | |||
69a720abb0 | |||
478eb3a0e6 | |||
c01e33d6ca | |||
163f6a17e4 | |||
08731d70bf | |||
c5a4159bee | |||
![]() |
db622b5a0b | ||
cdd4354c81 | |||
68ca12a7fc | |||
9a8669ac81 | |||
1f270cf99b | |||
b82de02e7c | |||
994da7077d | |||
83c8f996f1 | |||
5fe1624b0e | |||
8016d8a4bd | |||
296b261299 | |||
d8ef52ca47 | |||
3e7ee3f3bc | |||
ae94e36cfb | |||
9a53599180 | |||
7b16ddeb5a | |||
e9334c5df8 | |||
5c5ec837b3 | |||
96bdd65e74 | |||
db45292d8e | |||
b7458f909c | |||
![]() |
4e57b6ce77 | ||
6cf148227b | |||
2492d9852b | |||
e0e737b72b | |||
e3724d29ff | |||
802bc8e233 | |||
a28fd0ceb5 | |||
6d12bc9e91 | |||
a9d1b3d7e3 | |||
a32f447c54 | |||
c63a6d3057 | |||
0f583d9d60 | |||
07e2bd443e | |||
3221766820 | |||
a003547a37 | |||
3ea6dbfe73 | |||
98ad294d17 | |||
96834a7bac | |||
3b4b2bcb13 | |||
c20b99b70c | |||
a8331d8c9d | |||
2bc0e8d304 | |||
891268aa82 | |||
8e1b16534d | |||
2fd8fa8f84 | |||
42878ffc26 | |||
38eed4ada3 | |||
296d734344 | |||
185d9627b3 | |||
f431be224f | |||
845e2ed3a2 | |||
e99cb91530 | |||
d30f701e84 | |||
35dc4ba9e2 | |||
6963703801 | |||
2b3f7c6481 | |||
09710d5f2a | |||
26afa23b3b | |||
c2751f8a11 | |||
654bc35bc8 | |||
![]() |
0a86ab6639 | ||
![]() |
d2a01bb7cb | ||
0310638e94 | |||
ab032fba39 | |||
42368f2ef4 | |||
1640fbe7c6 | |||
7c55a7ccca | |||
b4a4004fb1 | |||
a2d32960b4 | |||
![]() |
c63d64a2ce | ||
416ef3b6b2 | |||
0efe581a5b | |||
29b9187b32 | |||
17eb8a9ceb | |||
dc7f88fd15 | |||
bba757ef81 | |||
a6504aa64b | |||
99fff90eab | |||
c486da0238 | |||
cfce5a32a7 | |||
6787cc13d4 | |||
bdc537e0a7 | |||
ac8beb4fda | |||
ff6098345a | |||
7f726b48ac | |||
![]() |
58be9708bf | ||
d8abac7357 | |||
e96623c19b | |||
b38491b407 | |||
5b87862ddc | |||
![]() |
8f05a547d5 | ||
984cd552f0 | |||
a7c65ef4cb | |||
75aa5ecbda | |||
fe43c17083 | |||
024a4da6b3 | |||
535c9308ef | |||
![]() |
50f0103059 | ||
9c279723da | |||
5179b8236b | |||
048c769774 | |||
![]() |
b226236b01 | ||
![]() |
d724d3ae58 | ||
![]() |
33d102e5b2 | ||
48f369d63a | |||
30acc5f9cd | |||
2547c3c70c | |||
![]() |
179100c021 | ||
ce95856f2d | |||
74b9c351b9 | |||
65e4c91bec | |||
9de3ed5c82 | |||
9a9a46df46 | |||
![]() |
e2d8b6dc06 | ||
f807e6effe | |||
f991f5ad51 | |||
f6d5d01715 | |||
b9799dfb8a | |||
aca083fbf3 | |||
75a9830d84 | |||
c196ca3740 | |||
0178e694b7 | |||
ed971a19fa |
@@ -265,6 +265,7 @@ ForEachMacros:
|
||||
- SET_SLOT_PROBING_BEGIN
|
||||
- MAP_SLOT_PROBING_BEGIN
|
||||
- VECTOR_SET_SLOT_PROBING_BEGIN
|
||||
- WL_ARRAY_FOR_EACH
|
||||
|
||||
StatementMacros:
|
||||
- PyObject_HEAD
|
||||
|
@@ -1,6 +1,8 @@
|
||||
# The warnings below are disabled because they are too pedantic and not worth fixing.
|
||||
# Some of them will be enabled as part of the Clang-Tidy task, see T78535.
|
||||
|
||||
# NOTE: No comments in the list below is allowed. Clang-tidy will ignore items after comments in the lists flag list.
|
||||
# This is because the comment is not a valid list item and it will stop parsing flags if a list item is a comment.
|
||||
Checks: >
|
||||
-*,
|
||||
readability-*,
|
||||
@@ -14,10 +16,9 @@ Checks: >
|
||||
-readability-make-member-function-const,
|
||||
-readability-suspicious-call-argument,
|
||||
-readability-redundant-member-init,
|
||||
|
||||
-readability-misleading-indentation,
|
||||
|
||||
-readability-use-anyofallof,
|
||||
-readability-identifier-length,
|
||||
|
||||
-readability-function-cognitive-complexity,
|
||||
|
||||
@@ -35,6 +36,8 @@ Checks: >
|
||||
|
||||
-bugprone-redundant-branch-condition,
|
||||
|
||||
-bugprone-suspicious-include,
|
||||
|
||||
modernize-*,
|
||||
-modernize-use-auto,
|
||||
-modernize-use-trailing-return-type,
|
||||
@@ -42,8 +45,6 @@ Checks: >
|
||||
-modernize-use-nodiscard,
|
||||
-modernize-loop-convert,
|
||||
-modernize-pass-by-value,
|
||||
# Cannot be enabled yet, because using raw string literals in tests breaks
|
||||
# the windows compiler currently.
|
||||
-modernize-raw-string-literal,
|
||||
-modernize-return-braced-init-list
|
||||
|
||||
|
@@ -34,6 +34,15 @@ indent_style = space
|
||||
indent_size = 2
|
||||
max_line_length = 99
|
||||
|
||||
# Tom's Obvious Minimal Language
|
||||
[*.toml]
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
max_line_length = 120
|
||||
|
||||
# reStructuredText
|
||||
[*.rst]
|
||||
charset = utf-8
|
||||
|
128
CMakeLists.txt
128
CMakeLists.txt
@@ -222,6 +222,17 @@ if(UNIX AND NOT (APPLE OR HAIKU))
|
||||
|
||||
option(WITH_GHOST_WAYLAND "Enable building Blender against Wayland for windowing (under development)" OFF)
|
||||
mark_as_advanced(WITH_GHOST_WAYLAND)
|
||||
|
||||
if (WITH_GHOST_WAYLAND)
|
||||
option(WITH_GHOST_WAYLAND_LIBDECOR "Optionally build with LibDecor window decorations" OFF)
|
||||
mark_as_advanced(WITH_GHOST_WAYLAND_LIBDECOR)
|
||||
|
||||
option(WITH_GHOST_WAYLAND_DBUS "Optionally build with DBUS support (used for Cursor themes). May hang on startup systems where DBUS is not used." OFF)
|
||||
mark_as_advanced(WITH_GHOST_WAYLAND_DBUS)
|
||||
|
||||
option(WITH_GHOST_WAYLAND_DYNLOAD "Enable runtime dynamic WAYLAND libraries loading" OFF)
|
||||
mark_as_advanced(WITH_GHOST_WAYLAND_DYNLOAD)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GHOST_X11)
|
||||
@@ -255,19 +266,11 @@ if(WITH_GHOST_X11)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF)
|
||||
option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON)
|
||||
option(WITH_SYSTEM_FREETYPE "Use the freetype library provided by the operating system" OFF)
|
||||
else()
|
||||
# not an option for other OS's
|
||||
set(WITH_SYSTEM_GLEW OFF)
|
||||
set(WITH_SYSTEM_GLES OFF)
|
||||
set(WITH_SYSTEM_FREETYPE OFF)
|
||||
endif()
|
||||
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF)
|
||||
else()
|
||||
set(WITH_SYSTEM_FREETYPE OFF)
|
||||
set(WITH_SYSTEM_EIGEN3 OFF)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -300,6 +303,9 @@ option(WITH_USD "Enable Universal Scene Description (USD) Suppor
|
||||
# 3D format support
|
||||
# Disable opencollada when we don't have precompiled libs
|
||||
option(WITH_OPENCOLLADA "Enable OpenCollada Support (http://www.opencollada.org)" ON)
|
||||
option(WITH_IO_WAVEFRONT_OBJ "Enable Wavefront-OBJ 3D file format support (*.obj)" ON)
|
||||
option(WITH_IO_STL "Enable STL 3D file format support (*.stl)" ON)
|
||||
option(WITH_IO_GPENCIL "Enable grease-pencil file format IO (*.svg, *.pdf)" ON)
|
||||
|
||||
# Sound output
|
||||
option(WITH_SDL "Enable SDL for sound" ON)
|
||||
@@ -439,14 +445,9 @@ endif()
|
||||
|
||||
# AMD HIP
|
||||
if(NOT APPLE)
|
||||
if(WIN32)
|
||||
option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" ON)
|
||||
else()
|
||||
option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" OFF)
|
||||
endif()
|
||||
|
||||
option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" ON)
|
||||
option(WITH_CYCLES_HIP_BINARIES "Build Cycles AMD HIP binaries" OFF)
|
||||
set(CYCLES_HIP_BINARIES_ARCH gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032 gfx1034 CACHE STRING "AMD HIP architectures to build binaries for")
|
||||
set(CYCLES_HIP_BINARIES_ARCH gfx900 gfx906 gfx90c gfx902 gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032 gfx1034 gfx1035 CACHE STRING "AMD HIP architectures to build binaries for")
|
||||
mark_as_advanced(WITH_CYCLES_DEVICE_HIP)
|
||||
mark_as_advanced(CYCLES_HIP_BINARIES_ARCH)
|
||||
endif()
|
||||
@@ -456,6 +457,21 @@ if(APPLE)
|
||||
option(WITH_CYCLES_DEVICE_METAL "Enable Cycles Apple Metal compute support" ON)
|
||||
endif()
|
||||
|
||||
# oneAPI
|
||||
if(NOT APPLE)
|
||||
option(WITH_CYCLES_DEVICE_ONEAPI "Enable Cycles oneAPI compute support" OFF)
|
||||
option(WITH_CYCLES_ONEAPI_BINARIES "Enable Ahead-Of-Time compilation for Cycles oneAPI device" OFF)
|
||||
option(WITH_CYCLES_ONEAPI_SYCL_HOST_ENABLED "Enable use of SYCL host (CPU) device execution by oneAPI implementation. This option is for debugging purposes and impacts GPU execution." OFF)
|
||||
|
||||
# https://www.intel.com/content/www/us/en/develop/documentation/oneapi-dpcpp-cpp-compiler-dev-guide-and-reference/top/compilation/ahead-of-time-compilation.html
|
||||
SET (CYCLES_ONEAPI_SPIR64_GEN_DEVICES "dg2" CACHE STRING "oneAPI Intel GPU architectures to build binaries for")
|
||||
SET (CYCLES_ONEAPI_SYCL_TARGETS spir64 spir64_gen CACHE STRING "oneAPI targets to build AOT binaries for")
|
||||
|
||||
mark_as_advanced(WITH_CYCLES_ONEAPI_SYCL_HOST_ENABLED)
|
||||
mark_as_advanced(CYCLES_ONEAPI_SPIR64_GEN_DEVICES)
|
||||
mark_as_advanced(CYCLES_ONEAPI_SYCL_TARGETS)
|
||||
endif()
|
||||
|
||||
# Draw Manager
|
||||
option(WITH_DRAW_DEBUG "Add extra debug capabilities to Draw Manager" OFF)
|
||||
mark_as_advanced(WITH_DRAW_DEBUG)
|
||||
@@ -491,7 +507,7 @@ if((UNIX AND NOT APPLE) OR (CMAKE_GENERATOR MATCHES "^Visual Studio.+"))
|
||||
endif()
|
||||
|
||||
option(WITH_BOOST "Enable features depending on boost" ON)
|
||||
option(WITH_TBB "Enable features depending on TBB (OpenVDB, OpenImageDenoise, sculpt multithreading)" ON)
|
||||
option(WITH_TBB "Enable multithreading. TBB is also required for features such as Cycles, OpenVDB and USD" ON)
|
||||
|
||||
# TBB malloc is only supported on for windows currently
|
||||
if(WIN32)
|
||||
@@ -520,20 +536,48 @@ endif()
|
||||
|
||||
# OpenGL
|
||||
|
||||
# Experimental EGL option.
|
||||
option(WITH_GL_EGL "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL, GLX or WGL)" OFF)
|
||||
mark_as_advanced(WITH_GL_EGL)
|
||||
|
||||
if(WITH_GHOST_WAYLAND)
|
||||
# Wayland can only use EGL to create OpenGL contexts, not GLX.
|
||||
set(WITH_GL_EGL ON)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
if(WITH_GL_EGL)
|
||||
# GLEW can only be built with either GLX or EGL support. Most binary distributions are
|
||||
# built with GLX support and we have no automated way to detect this. So always build
|
||||
# GLEW from source to be sure it has EGL support.
|
||||
set(WITH_SYSTEM_GLEW OFF)
|
||||
else()
|
||||
option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF)
|
||||
endif()
|
||||
|
||||
option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON)
|
||||
else()
|
||||
# System GLEW and GLES not an option on other platforms.
|
||||
set(WITH_SYSTEM_GLEW OFF)
|
||||
set(WITH_SYSTEM_GLES OFF)
|
||||
endif()
|
||||
|
||||
option(WITH_OPENGL "When off limits visibility of the opengl headers to just bf_gpu and gawain (temporary option for development purposes)" ON)
|
||||
option(WITH_GLEW_ES "Switches to experimental copy of GLEW that has support for OpenGL ES. (temporary option for development purposes)" OFF)
|
||||
option(WITH_GL_EGL "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL, glX, or WGL)" OFF)
|
||||
option(WITH_GL_PROFILE_ES20 "Support using OpenGL ES 2.0. (through either EGL or the AGL/WGL/XGL 'es20' profile)" OFF)
|
||||
option(WITH_GPU_SHADER_BUILDER "Shader builder is a developer option enabling linting on GLSL during compilation" OFF)
|
||||
option(WITH_GPU_BUILDTIME_SHADER_BUILDER "Shader builder is a developer option enabling linting on GLSL during compilation" OFF)
|
||||
|
||||
mark_as_advanced(
|
||||
WITH_OPENGL
|
||||
WITH_GLEW_ES
|
||||
WITH_GL_EGL
|
||||
WITH_GL_PROFILE_ES20
|
||||
WITH_GPU_SHADER_BUILDER
|
||||
WITH_GPU_BUILDTIME_SHADER_BUILDER
|
||||
)
|
||||
|
||||
if(WITH_HEADLESS)
|
||||
set(WITH_OPENGL OFF)
|
||||
endif()
|
||||
|
||||
# Metal
|
||||
|
||||
if (APPLE)
|
||||
@@ -770,6 +814,7 @@ endif()
|
||||
|
||||
set_and_warn_dependency(WITH_PYTHON WITH_CYCLES OFF)
|
||||
set_and_warn_dependency(WITH_PYTHON WITH_DRACO OFF)
|
||||
set_and_warn_dependency(WITH_PYTHON WITH_MOD_FLUID OFF)
|
||||
|
||||
if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL)
|
||||
message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now")
|
||||
@@ -786,7 +831,9 @@ set_and_warn_dependency(WITH_BOOST WITH_OPENCOLORIO OFF)
|
||||
set_and_warn_dependency(WITH_BOOST WITH_QUADRIFLOW OFF)
|
||||
set_and_warn_dependency(WITH_BOOST WITH_USD OFF)
|
||||
set_and_warn_dependency(WITH_BOOST WITH_ALEMBIC OFF)
|
||||
set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF)
|
||||
if(WITH_CYCLES)
|
||||
set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF)
|
||||
endif()
|
||||
set_and_warn_dependency(WITH_PUGIXML WITH_OPENIMAGEIO OFF)
|
||||
|
||||
if(WITH_BOOST AND NOT (WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
|
||||
@@ -811,6 +858,9 @@ set_and_warn_dependency(WITH_IMAGE_OPENEXR WITH_OPENCOLORIO OFF)
|
||||
# Haru needs `TIFFFaxBlackCodes` & `TIFFFaxWhiteCodes` symbols from TIFF.
|
||||
set_and_warn_dependency(WITH_IMAGE_TIFF WITH_HARU OFF)
|
||||
|
||||
# USD needs OpenSubDiv, since that is used by the Cycles Hydra render delegate.
|
||||
set_and_warn_dependency(WITH_OPENSUBDIV WITH_USD OFF)
|
||||
|
||||
# auto enable openimageio for cycles
|
||||
if(WITH_CYCLES)
|
||||
set(WITH_OPENIMAGEIO ON)
|
||||
@@ -937,7 +987,10 @@ set(PLATFORM_CFLAGS)
|
||||
set(C_WARNINGS)
|
||||
set(CXX_WARNINGS)
|
||||
|
||||
# for gcc -Wno-blah-blah
|
||||
# NOTE: These flags are intended for situations where where it's impractical to
|
||||
# suppress warnings by modifying the code or for code which is maintained externally.
|
||||
# For GCC this typically means adding `-Wno-*` arguments to negate warnings
|
||||
# that are useful in the general case.
|
||||
set(C_REMOVE_STRICT_FLAGS)
|
||||
set(CXX_REMOVE_STRICT_FLAGS)
|
||||
|
||||
@@ -1457,14 +1510,6 @@ if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING))
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure Ceres
|
||||
|
||||
if(WITH_LIBMV)
|
||||
# We always have C++11 which includes unordered_map.
|
||||
set(CERES_DEFINES "-DCERES_STD_UNORDERED_MAP;-DCERES_USE_CXX_THREADS")
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Extra limits to number of jobs running in parallel for some kind os tasks.
|
||||
# Only supported by Ninja build system currently.
|
||||
@@ -1541,7 +1586,6 @@ endif()
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_CAST_ALIGN -Wcast-align)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_VLA -Werror=vla)
|
||||
@@ -1626,6 +1670,18 @@ if(CMAKE_COMPILER_IS_GNUCC)
|
||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_IMPLICIT_FALLTHROUGH -Wimplicit-fallthrough=5)
|
||||
endif()
|
||||
|
||||
|
||||
#----------------------
|
||||
# Suppress Strict Flags
|
||||
#
|
||||
# Exclude the following warnings from this list:
|
||||
# - `-Wno-address`:
|
||||
# This can give useful hints that point to bugs/misleading logic.
|
||||
# - `-Wno-strict-prototypes`:
|
||||
# No need to support older C-style prototypes.
|
||||
#
|
||||
# If code in `./extern/` needs to suppress these flags that can be done on a case-by-case basis.
|
||||
|
||||
# flags to undo strict flags
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
||||
@@ -1681,6 +1737,9 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros)
|
||||
# ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros)
|
||||
|
||||
#----------------------
|
||||
# Suppress Strict Flags
|
||||
|
||||
# flags to undo strict flags
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable)
|
||||
@@ -1746,6 +1805,7 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
||||
"/wd4828" # The file contains a character that is illegal
|
||||
"/wd4996" # identifier was declared deprecated
|
||||
"/wd4661" # no suitable definition provided for explicit template instantiation request
|
||||
"/wd4848" # 'no_unique_address' is a vendor extension in C++17
|
||||
# errors:
|
||||
"/we4013" # 'function' undefined; assuming extern returning int
|
||||
"/we4133" # incompatible pointer types
|
||||
|
28
GNUmakefile
28
GNUmakefile
@@ -120,7 +120,7 @@ Utilities
|
||||
Updates git and all submodules but not svn.
|
||||
|
||||
* format:
|
||||
Format source code using clang (uses PATHS if passed in). For example::
|
||||
Format source code using clang-format & autopep8 (uses PATHS if passed in). For example::
|
||||
|
||||
make format PATHS="source/blender/blenlib source/blender/blenkernel"
|
||||
|
||||
@@ -130,6 +130,7 @@ Environment Variables
|
||||
* BUILD_DIR: Override default build path.
|
||||
* PYTHON: Use this for the Python command (used for checking tools).
|
||||
* NPROCS: Number of processes to use building (auto-detect when omitted).
|
||||
* AUTOPEP8: Command used for Python code-formatting (used for the format target).
|
||||
|
||||
Documentation Targets
|
||||
Not associated with building Blender.
|
||||
@@ -206,6 +207,27 @@ ifeq ($(OS_NCASE),darwin)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Set the LIBDIR, an empty string when not found.
|
||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE}_${CPU})
|
||||
ifeq (, $(LIBDIR))
|
||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE}_centos7_${CPU})
|
||||
endif
|
||||
ifeq (, $(LIBDIR))
|
||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE})
|
||||
endif
|
||||
|
||||
# Use the autopep8 module in ../lib/ (which can be executed via Python directly).
|
||||
# Otherwise the "autopep8" command can be used.
|
||||
ifndef AUTOPEP8
|
||||
ifneq (, $(LIBDIR))
|
||||
AUTOPEP8:=$(wildcard $(LIBDIR)/python/lib/python3.10/site-packages/autopep8.py)
|
||||
endif
|
||||
ifeq (, $(AUTOPEP8))
|
||||
AUTOPEP8:=autopep8
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# additional targets for the build configuration
|
||||
|
||||
@@ -527,8 +549,8 @@ update_code: .FORCE
|
||||
@$(PYTHON) ./build_files/utils/make_update.py --no-libraries
|
||||
|
||||
format: .FORCE
|
||||
@PATH="../lib/${OS_NCASE}_${CPU}/llvm/bin/:../lib/${OS_NCASE}_centos7_${CPU}/llvm/bin/:../lib/${OS_NCASE}/llvm/bin/:$(PATH)" \
|
||||
$(PYTHON) source/tools/utils_maintenance/clang_format_paths.py $(PATHS)
|
||||
@PATH="${LIBDIR}/llvm/bin/:$(PATH)" $(PYTHON) source/tools/utils_maintenance/clang_format_paths.py $(PATHS)
|
||||
@$(PYTHON) source/tools/utils_maintenance/autopep8_format_paths.py --autopep8-command="$(AUTOPEP8)" $(PATHS)
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@@ -29,10 +29,12 @@ cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
include(ExternalProject)
|
||||
include(cmake/check_software.cmake)
|
||||
include(cmake/versions.cmake)
|
||||
include(cmake/options.cmake)
|
||||
# versions.cmake needs to be included after options.cmake due to the BLENDER_PLATFORM_ARM variable being needed.
|
||||
include(cmake/versions.cmake)
|
||||
include(cmake/boost_build_options.cmake)
|
||||
include(cmake/download.cmake)
|
||||
include(cmake/macros.cmake)
|
||||
|
||||
if(ENABLE_MINGW64)
|
||||
include(cmake/setup_mingw64.cmake)
|
||||
@@ -54,13 +56,9 @@ include(cmake/freetype.cmake)
|
||||
include(cmake/freeglut.cmake)
|
||||
include(cmake/glew.cmake)
|
||||
include(cmake/alembic.cmake)
|
||||
include(cmake/glfw.cmake)
|
||||
include(cmake/clew.cmake)
|
||||
include(cmake/cuew.cmake)
|
||||
include(cmake/opensubdiv.cmake)
|
||||
include(cmake/sdl.cmake)
|
||||
include(cmake/opencollada.cmake)
|
||||
include(cmake/llvm.cmake)
|
||||
if(APPLE)
|
||||
include(cmake/openmp.cmake)
|
||||
endif()
|
||||
@@ -78,6 +76,7 @@ include(cmake/osl.cmake)
|
||||
include(cmake/tbb.cmake)
|
||||
include(cmake/openvdb.cmake)
|
||||
include(cmake/python.cmake)
|
||||
include(cmake/llvm.cmake)
|
||||
option(USE_PIP_NUMPY "Install NumPy using pip wheel instead of building from source" OFF)
|
||||
if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
||||
set(USE_PIP_NUMPY ON)
|
||||
@@ -99,6 +98,15 @@ include(cmake/fmt.cmake)
|
||||
include(cmake/robinmap.cmake)
|
||||
if(NOT APPLE)
|
||||
include(cmake/xr_openxr.cmake)
|
||||
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
||||
include(cmake/dpcpp.cmake)
|
||||
include(cmake/dpcpp_deps.cmake)
|
||||
endif()
|
||||
if(NOT WIN32)
|
||||
include(cmake/igc.cmake)
|
||||
include(cmake/gmmlib.cmake)
|
||||
include(cmake/ocloc.cmake)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# OpenColorIO and dependencies.
|
||||
@@ -131,6 +139,7 @@ if(NOT WIN32 OR ENABLE_MINGW64)
|
||||
include(cmake/vpx.cmake)
|
||||
include(cmake/x264.cmake)
|
||||
include(cmake/xvidcore.cmake)
|
||||
include(cmake/aom.cmake)
|
||||
include(cmake/ffmpeg.cmake)
|
||||
include(cmake/fftw.cmake)
|
||||
include(cmake/sndfile.cmake)
|
||||
|
@@ -42,4 +42,5 @@ endif()
|
||||
add_dependencies(
|
||||
external_alembic
|
||||
external_openexr
|
||||
external_imath
|
||||
)
|
||||
|
45
build_files/build_environment/cmake/aom.cmake
Normal file
45
build_files/build_environment/cmake/aom.cmake
Normal file
@@ -0,0 +1,45 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
# The default generator on windows is msbuild, which we do not
|
||||
# want to use for this dep, as needs to build with mingw
|
||||
set(AOM_GENERATOR "Ninja")
|
||||
# The default flags are full of MSVC options given this will be
|
||||
# building with mingw, it'll have an unhappy time with that and
|
||||
# we need to clear them out.
|
||||
set(AOM_CMAKE_FLAGS )
|
||||
# CMake will correctly identify phreads being available, however
|
||||
# we do not want to use them, as that gains a dependency on
|
||||
# libpthreadswin.dll which we do not want. when pthreads is not
|
||||
# available oam will use a pthreads emulation layer using win32 threads
|
||||
set(AOM_EXTRA_ARGS_WIN32 -DCMAKE_HAVE_PTHREAD_H=OFF)
|
||||
else()
|
||||
set(AOM_GENERATOR "Unix Makefiles")
|
||||
set(AOM_CMAKE_FLAGS ${DEFAULT_CMAKE_FLAGS})
|
||||
endif()
|
||||
|
||||
set(AOM_EXTRA_ARGS
|
||||
-DENABLE_TESTDATA=OFF
|
||||
-DENABLE_TESTS=OFF
|
||||
-DENABLE_TOOLS=OFF
|
||||
-DENABLE_EXAMPLES=OFF
|
||||
${AOM_EXTRA_ARGS_WIN32}
|
||||
)
|
||||
|
||||
# This is slightly different from all other deps in the way that
|
||||
# aom uses cmake as a build system, but still needs the environment setup
|
||||
# to include perl so we manually setup the environment and call
|
||||
# cmake directly for the configure, build and install commands.
|
||||
|
||||
ExternalProject_Add(external_aom
|
||||
URL file://${PACKAGE_DIR}/${AOM_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${AOM_HASH_TYPE}=${AOM_HASH}
|
||||
PREFIX ${BUILD_DIR}/aom
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/aom/src/external_aom-build/ &&
|
||||
${CMAKE_COMMAND} -G "${AOM_GENERATOR}" -DCMAKE_INSTALL_PREFIX=${LIBDIR}/aom ${AOM_CMAKE_FLAGS} ${AOM_EXTRA_ARGS} ${BUILD_DIR}/aom/src/external_aom/
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build .
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install
|
||||
INSTALL_DIR ${LIBDIR}/aom
|
||||
)
|
@@ -56,10 +56,7 @@ if(UNIX)
|
||||
"On Debian and Ubuntu:\n"
|
||||
" apt install autoconf automake libtool yasm tcl ninja-build meson python3-mako\n"
|
||||
"\n"
|
||||
"On macOS Intel (with homebrew):\n"
|
||||
" brew install autoconf automake bison libtool pkg-config yasm\n"
|
||||
"\n"
|
||||
"On macOS ARM (with homebrew):\n"
|
||||
"On macOS (with homebrew):\n"
|
||||
" brew install autoconf automake bison flex libtool pkg-config yasm\n"
|
||||
"\n"
|
||||
"Other platforms:\n"
|
||||
|
@@ -1,12 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(CLEW_EXTRA_ARGS)
|
||||
|
||||
ExternalProject_Add(external_clew
|
||||
URL file://${PACKAGE_DIR}/${CLEW_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${CLEW_HASH_TYPE}=${CLEW_HASH}
|
||||
PREFIX ${BUILD_DIR}/clew
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CLEW_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/clew
|
||||
)
|
@@ -1,13 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(CUEW_EXTRA_ARGS)
|
||||
|
||||
ExternalProject_Add(external_cuew
|
||||
URL file://${PACKAGE_DIR}/${CUEW_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${CUEW_HASH_TYPE}=${CUEW_HASH}
|
||||
PREFIX ${BUILD_DIR}/cuew
|
||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/cuew/src/external_cuew < ${PATCH_DIR}/cuew.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/cuew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CUEW_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/cuew
|
||||
)
|
@@ -39,10 +39,6 @@ download_source(FREETYPE)
|
||||
download_source(GLEW)
|
||||
download_source(FREEGLUT)
|
||||
download_source(ALEMBIC)
|
||||
download_source(GLFW)
|
||||
download_source(CLEW)
|
||||
download_source(GLFW)
|
||||
download_source(CUEW)
|
||||
download_source(OPENSUBDIV)
|
||||
download_source(SDL)
|
||||
download_source(OPENCOLLADA)
|
||||
@@ -105,3 +101,19 @@ download_source(ROBINMAP)
|
||||
download_source(IMATH)
|
||||
download_source(PYSTRING)
|
||||
download_source(LEVEL_ZERO)
|
||||
download_source(DPCPP)
|
||||
download_source(VCINTRINSICS)
|
||||
download_source(OPENCLHEADERS)
|
||||
download_source(ICDLOADER)
|
||||
download_source(MP11)
|
||||
download_source(SPIRV_HEADERS)
|
||||
download_source(IGC)
|
||||
download_source(IGC_LLVM)
|
||||
download_source(IGC_OPENCL_CLANG)
|
||||
download_source(IGC_VCINTRINSICS)
|
||||
download_source(IGC_SPIRV_HEADERS)
|
||||
download_source(IGC_SPIRV_TOOLS)
|
||||
download_source(IGC_SPIRV_TRANSLATOR)
|
||||
download_source(GMMLIB)
|
||||
download_source(OCLOC)
|
||||
download_source(AOM)
|
||||
|
109
build_files/build_environment/cmake/dpcpp.cmake
Normal file
109
build_files/build_environment/cmake/dpcpp.cmake
Normal file
@@ -0,0 +1,109 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
||||
if(WIN32)
|
||||
set(LLVM_GENERATOR "Ninja")
|
||||
else()
|
||||
set(LLVM_GENERATOR "Unix Makefiles")
|
||||
endif()
|
||||
|
||||
set(DPCPP_CONFIGURE_ARGS
|
||||
# When external deps dpcpp needs are not found it will automatically
|
||||
# download the during the configure stage using FetchContent. Given
|
||||
# we need to keep an archive of all source used during build for compliance
|
||||
# reasons it CANNOT download anything we do not know about. By setting
|
||||
# this property to ON, all downloads are disabled, and we will have to
|
||||
# provide the missing deps some other way, a build error beats a compliance
|
||||
# violation
|
||||
--cmake-opt FETCHCONTENT_FULLY_DISCONNECTED=ON
|
||||
)
|
||||
set(DPCPP_SOURCE_ROOT ${BUILD_DIR}/dpcpp/src/external_dpcpp/)
|
||||
set(DPCPP_EXTRA_ARGS
|
||||
# When external deps dpcpp needs are not found it will automatically
|
||||
# download the during the configure stage using FetchContent. Given
|
||||
# we need to keep an archive of all source used during build for compliance
|
||||
# reasons it CANNOT download anything we do not know about. By setting
|
||||
# this property to ON, all downloads are disabled, and we will have to
|
||||
# provide the missing deps some other way, a build or configure error
|
||||
# beats a compliance violation
|
||||
-DFETCHCONTENT_FULLY_DISCONNECTED=ON
|
||||
-DLLVMGenXIntrinsics_SOURCE_DIR=${BUILD_DIR}/vcintrinsics/src/external_vcintrinsics/
|
||||
-DOpenCL_HEADERS=file://${PACKAGE_DIR}/${OPENCLHEADERS_FILE}
|
||||
-DOpenCL_LIBRARY_SRC=file://${PACKAGE_DIR}/${ICDLOADER_FILE}
|
||||
-DBOOST_MP11_SOURCE_DIR=${BUILD_DIR}/mp11/src/external_mp11/
|
||||
-DLEVEL_ZERO_LIBRARY=${LIBDIR}/level-zero/lib/${LIBPREFIX}ze_loader${SHAREDLIBEXT}
|
||||
-DLEVEL_ZERO_INCLUDE_DIR=${LIBDIR}/level-zero/include
|
||||
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${BUILD_DIR}/spirvheaders/src/external_spirvheaders/
|
||||
# Below here is copied from an invocation of buildbot/config.py
|
||||
-DLLVM_ENABLE_ASSERTIONS=ON
|
||||
-DLLVM_TARGETS_TO_BUILD=X86
|
||||
-DLLVM_EXTERNAL_PROJECTS=sycl^^llvm-spirv^^opencl^^libdevice^^xpti^^xptifw
|
||||
-DLLVM_EXTERNAL_SYCL_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/sycl
|
||||
-DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/llvm-spirv
|
||||
-DLLVM_EXTERNAL_XPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti
|
||||
-DXPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti
|
||||
-DLLVM_EXTERNAL_XPTIFW_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xptifw
|
||||
-DLLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/libdevice
|
||||
-DLLVM_ENABLE_PROJECTS=clang^^sycl^^llvm-spirv^^opencl^^libdevice^^xpti^^xptifw
|
||||
-DLIBCLC_TARGETS_TO_BUILD=
|
||||
-DLIBCLC_GENERATE_REMANGLED_VARIANTS=OFF
|
||||
-DSYCL_BUILD_PI_HIP_PLATFORM=AMD
|
||||
-DLLVM_BUILD_TOOLS=ON
|
||||
-DSYCL_ENABLE_WERROR=OFF
|
||||
-DSYCL_INCLUDE_TESTS=ON
|
||||
-DLLVM_ENABLE_DOXYGEN=OFF
|
||||
-DLLVM_ENABLE_SPHINX=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DSYCL_ENABLE_XPTI_TRACING=ON
|
||||
-DLLVM_ENABLE_LLD=OFF
|
||||
-DXPTI_ENABLE_WERROR=OFF
|
||||
-DSYCL_CLANG_EXTRA_FLAGS=
|
||||
-DSYCL_ENABLE_PLUGINS=level_zero
|
||||
-DCMAKE_INSTALL_RPATH=\$ORIGIN
|
||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DLLDB_ENABLE_CURSES=OFF
|
||||
-DLLVM_ENABLE_TERMINFO=OFF
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
list(APPEND DPCPP_EXTRA_ARGS -DPython3_FIND_REGISTRY=NEVER)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_dpcpp
|
||||
URL file://${PACKAGE_DIR}/${DPCPP_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${DPCPP_HASH_TYPE}=${DPCPP_HASH}
|
||||
PREFIX ${BUILD_DIR}/dpcpp
|
||||
CMAKE_GENERATOR ${LLVM_GENERATOR}
|
||||
SOURCE_SUBDIR llvm
|
||||
LIST_SEPARATOR ^^
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/dpcpp ${DEFAULT_CMAKE_FLAGS} ${DPCPP_EXTRA_ARGS}
|
||||
#CONFIGURE_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/configure.py ${DPCPP_CONFIGURE_ARGS}
|
||||
#BUILD_COMMAND echo "." #${PYTHON_BINARY} ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/compile.py
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . -- deploy-sycl-toolchain
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/dpcpp/src/external_dpcpp < ${PATCH_DIR}/dpcpp.diff
|
||||
INSTALL_DIR ${LIBDIR}/dpcpp
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_dpcpp
|
||||
external_python
|
||||
external_python_site_packages
|
||||
external_vcintrinsics
|
||||
external_openclheaders
|
||||
external_icdloader
|
||||
external_mp11
|
||||
external_level-zero
|
||||
external_spirvheaders
|
||||
)
|
||||
|
||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||
ExternalProject_Add_Step(external_dpcpp after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${LIBDIR}/dpcpp/bin/clang-cl.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${LIBDIR}/dpcpp/bin/clang-cpp.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${LIBDIR}/dpcpp/bin/clang.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/dpcpp ${HARVEST_TARGET}/dpcpp
|
||||
)
|
||||
endif()
|
61
build_files/build_environment/cmake/dpcpp_deps.cmake
Normal file
61
build_files/build_environment/cmake/dpcpp_deps.cmake
Normal file
@@ -0,0 +1,61 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# These are build time requirements for dpcpp
|
||||
# We only have to unpack these dpcpp will build
|
||||
# them.
|
||||
|
||||
ExternalProject_Add(external_vcintrinsics
|
||||
URL file://${PACKAGE_DIR}/${VCINTRINSICS_FILE}
|
||||
URL_HASH ${VCINTRINSICS_HASH_TYPE}=${VCINTRINSICS_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/vcintrinsics
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
# opencl headers do not have to be unpacked, dpcpp will do it
|
||||
# but it wouldn't hurt to do it anyway as an opertunity to validate
|
||||
# the hash is correct.
|
||||
ExternalProject_Add(external_openclheaders
|
||||
URL file://${PACKAGE_DIR}/${OPENCLHEADERS_FILE}
|
||||
URL_HASH ${OPENCLHEADERS_HASH_TYPE}=${OPENCLHEADERS_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/openclheaders
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
# icdloader does not have to be unpacked, dpcpp will do it
|
||||
# but it wouldn't hurt to do it anyway as an opertunity to validate
|
||||
# the hash is correct.
|
||||
ExternalProject_Add(external_icdloader
|
||||
URL file://${PACKAGE_DIR}/${ICDLOADER_FILE}
|
||||
URL_HASH ${ICDLOADER_HASH_TYPE}=${ICDLOADER_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/icdloader
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_mp11
|
||||
URL file://${PACKAGE_DIR}/${MP11_FILE}
|
||||
URL_HASH ${MP11_HASH_TYPE}=${MP11_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/mp11
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_spirvheaders
|
||||
URL file://${PACKAGE_DIR}/${SPIRV_HEADERS_FILE}
|
||||
URL_HASH ${SPIRV_HEADERS_HASH_TYPE}=${SPIRV_HEADERS_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/spirvheaders
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
@@ -10,18 +10,12 @@ set(EMBREE_EXTRA_ARGS
|
||||
-DEMBREE_RAY_MASK=ON
|
||||
-DEMBREE_FILTER_FUNCTION=ON
|
||||
-DEMBREE_BACKFACE_CULLING=OFF
|
||||
-DEMBREE_MAX_ISA=AVX2
|
||||
-DEMBREE_TASKING_SYSTEM=TBB
|
||||
-DEMBREE_TBB_ROOT=${LIBDIR}/tbb
|
||||
-DTBB_ROOT=${LIBDIR}/tbb
|
||||
-DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY}
|
||||
)
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DEMBREE_MAX_ISA=NEON)
|
||||
else()
|
||||
if (NOT BLENDER_PLATFORM_ARM)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DEMBREE_MAX_ISA=AVX2)
|
||||
@@ -30,23 +24,10 @@ endif()
|
||||
if(TBB_STATIC_LIBRARY)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DEMBREE_TBB_LIBRARY_NAME=tbb_static
|
||||
-DEMBREE_TBBMALLOC_LIBRARY_NAME=tbbmalloc_static
|
||||
-DEMBREE_TBB_COMPONENT=tbb_static
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(EMBREE_BUILD_DIR ${BUILD_MODE}/)
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
list(APPEND EMBREE_EXTRA_ARGS
|
||||
-DEMBREE_TBBMALLOC_LIBRARY_NAME=tbbmalloc_debug
|
||||
-DEMBREE_TBB_LIBRARY_NAME=tbb_debug
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
set(EMBREE_BUILD_DIR)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_embree
|
||||
URL file://${PACKAGE_DIR}/${EMBREE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(FFMPEG_CFLAGS "-I${mingw_LIBDIR}/lame/include -I${mingw_LIBDIR}/openjpeg/include/ -I${mingw_LIBDIR}/ogg/include -I${mingw_LIBDIR}/vorbis/include -I${mingw_LIBDIR}/theora/include -I${mingw_LIBDIR}/opus/include -I${mingw_LIBDIR}/vpx/include -I${mingw_LIBDIR}/x264/include -I${mingw_LIBDIR}/xvidcore/include -I${mingw_LIBDIR}/zlib/include")
|
||||
set(FFMPEG_LDFLAGS "-L${mingw_LIBDIR}/lame/lib -L${mingw_LIBDIR}/openjpeg/lib -L${mingw_LIBDIR}/ogg/lib -L${mingw_LIBDIR}/vorbis/lib -L${mingw_LIBDIR}/theora/lib -L${mingw_LIBDIR}/opus/lib -L${mingw_LIBDIR}/vpx/lib -L${mingw_LIBDIR}/x264/lib -L${mingw_LIBDIR}/xvidcore/lib -L${mingw_LIBDIR}/zlib/lib")
|
||||
set(FFMPEG_CFLAGS "-I${mingw_LIBDIR}/lame/include -I${mingw_LIBDIR}/openjpeg/include/ -I${mingw_LIBDIR}/ogg/include -I${mingw_LIBDIR}/vorbis/include -I${mingw_LIBDIR}/theora/include -I${mingw_LIBDIR}/opus/include -I${mingw_LIBDIR}/vpx/include -I${mingw_LIBDIR}/x264/include -I${mingw_LIBDIR}/xvidcore/include -I${mingw_LIBDIR}/zlib/include -I${mingw_LIBDIR}/aom/include")
|
||||
set(FFMPEG_LDFLAGS "-L${mingw_LIBDIR}/lame/lib -L${mingw_LIBDIR}/openjpeg/lib -L${mingw_LIBDIR}/ogg/lib -L${mingw_LIBDIR}/vorbis/lib -L${mingw_LIBDIR}/theora/lib -L${mingw_LIBDIR}/opus/lib -L${mingw_LIBDIR}/vpx/lib -L${mingw_LIBDIR}/x264/lib -L${mingw_LIBDIR}/xvidcore/lib -L${mingw_LIBDIR}/zlib/lib -L${mingw_LIBDIR}/aom/lib")
|
||||
set(FFMPEG_EXTRA_FLAGS --pkg-config-flags=--static --extra-cflags=${FFMPEG_CFLAGS} --extra-ldflags=${FFMPEG_LDFLAGS})
|
||||
set(FFMPEG_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/openjpeg/lib/pkgconfig:${mingw_LIBDIR}/x264/lib/pkgconfig:${mingw_LIBDIR}/vorbis/lib/pkgconfig:${mingw_LIBDIR}/ogg/lib/pkgconfig:${mingw_LIBDIR}:${mingw_LIBDIR}/vpx/lib/pkgconfig:${mingw_LIBDIR}/theora/lib/pkgconfig:${mingw_LIBDIR}/openjpeg/lib/pkgconfig:${mingw_LIBDIR}/opus/lib/pkgconfig:)
|
||||
set(FFMPEG_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/openjpeg/lib/pkgconfig:${mingw_LIBDIR}/x264/lib/pkgconfig:${mingw_LIBDIR}/vorbis/lib/pkgconfig:${mingw_LIBDIR}/ogg/lib/pkgconfig:${mingw_LIBDIR}:${mingw_LIBDIR}/vpx/lib/pkgconfig:${mingw_LIBDIR}/theora/lib/pkgconfig:${mingw_LIBDIR}/openjpeg/lib/pkgconfig:${mingw_LIBDIR}/opus/lib/pkgconfig:${mingw_LIBDIR}/aom/lib/pkgconfig:)
|
||||
|
||||
if(WIN32)
|
||||
set(FFMPEG_ENV set ${FFMPEG_ENV} &&)
|
||||
@@ -79,6 +79,7 @@ ExternalProject_Add(external_ffmpeg
|
||||
--disable-librtmp
|
||||
--enable-libx264
|
||||
--enable-libxvid
|
||||
--enable-libaom
|
||||
--disable-libopencore-amrnb
|
||||
--disable-libopencore-amrwb
|
||||
--disable-libdc1394
|
||||
@@ -125,6 +126,7 @@ add_dependencies(
|
||||
external_vorbis
|
||||
external_ogg
|
||||
external_lame
|
||||
external_aom
|
||||
)
|
||||
if(WIN32)
|
||||
add_dependencies(
|
||||
|
@@ -1,12 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(GLFW_EXTRA_ARGS)
|
||||
|
||||
ExternalProject_Add(external_glfw
|
||||
URL file://${PACKAGE_DIR}/${GLFW_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${GLFW_HASH_TYPE}=${GLFW_HASH}
|
||||
PREFIX ${BUILD_DIR}/glfw
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/glfw -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${GLFW_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/glfw
|
||||
)
|
13
build_files/build_environment/cmake/gmmlib.cmake
Normal file
13
build_files/build_environment/cmake/gmmlib.cmake
Normal file
@@ -0,0 +1,13 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(GMMLIB_EXTRA_ARGS
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_gmmlib
|
||||
URL file://${PACKAGE_DIR}/${GMMLIB_FILE}
|
||||
URL_HASH ${GMMLIB_HASH_TYPE}=${GMMLIB_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/gmmlib
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/gmmlib ${DEFAULT_CMAKE_FLAGS} ${GMMLIB_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/gmmlib
|
||||
)
|
@@ -25,9 +25,6 @@ if(BUILD_MODE STREQUAL Release)
|
||||
# glew-> opengl
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/glew/lib/libglew32.lib ${HARVEST_TARGET}/opengl/lib/glew.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/glew/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
||||
# tiff
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/
|
||||
DEPENDS
|
||||
)
|
||||
endif()
|
||||
@@ -87,7 +84,7 @@ harvest(jpeg/lib jpeg/lib "libjpeg.a")
|
||||
harvest(lame/lib ffmpeg/lib "*.a")
|
||||
if(NOT APPLE)
|
||||
harvest(level-zero/include/level_zero level-zero/include/level_zero "*.h")
|
||||
harvest(level-zero/lib level-zero/lib "*.a")
|
||||
harvest(level-zero/lib level-zero/lib "*.so*")
|
||||
endif()
|
||||
harvest(llvm/bin llvm/bin "clang-format")
|
||||
if(BUILD_CLANG_TOOLS)
|
||||
@@ -146,8 +143,8 @@ harvest(openjpeg/lib openjpeg/lib "*.a")
|
||||
harvest(opensubdiv/include opensubdiv/include "*.h")
|
||||
harvest(opensubdiv/lib opensubdiv/lib "*.a")
|
||||
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
||||
harvest(openvdb/include/nanovdb openvdb/include/nanovdb "*.h")
|
||||
harvest(openvdb/lib openvdb/lib "*.a")
|
||||
harvest(nanovdb/nanovdb nanovdb/include/nanovdb "*.h")
|
||||
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
||||
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
||||
harvest(osl/bin osl/bin "oslc")
|
||||
@@ -177,6 +174,7 @@ harvest(opus/lib ffmpeg/lib "*.a")
|
||||
harvest(vpx/lib ffmpeg/lib "*.a")
|
||||
harvest(x264/lib ffmpeg/lib "*.a")
|
||||
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
||||
harvest(aom/lib ffmpeg/lib "*.a")
|
||||
harvest(webp/lib webp/lib "*.a")
|
||||
harvest(webp/include webp/include "*.h")
|
||||
harvest(usd/include usd/include "*.h")
|
||||
@@ -192,6 +190,10 @@ harvest(zstd/lib zstd/lib "*.a")
|
||||
if(UNIX AND NOT APPLE)
|
||||
harvest(libglu/lib mesa/lib "*.so*")
|
||||
harvest(mesa/lib64 mesa/lib "*.so*")
|
||||
endif()
|
||||
|
||||
harvest(dpcpp dpcpp "*")
|
||||
harvest(igc dpcpp/lib/igc "*")
|
||||
harvest(ocloc dpcpp/lib/ocloc "*")
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
126
build_files/build_environment/cmake/igc.cmake
Normal file
126
build_files/build_environment/cmake/igc.cmake
Normal file
@@ -0,0 +1,126 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
unpack_only(igc_vcintrinsics)
|
||||
unpack_only(igc_spirv_headers)
|
||||
unpack_only(igc_spirv_tools)
|
||||
|
||||
#
|
||||
# igc_opencl_clang contains patches that need to be applied
|
||||
# to external_igc_llvm and igc_spirv_translator, we unpack
|
||||
# igc_opencl_clang first, then have the patch stages of
|
||||
# external_igc_llvm and igc_spirv_translator apply them.
|
||||
#
|
||||
|
||||
ExternalProject_Add(external_igc_opencl_clang
|
||||
URL file://${PACKAGE_DIR}/${IGC_OPENCL_CLANG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${IGC_OPENCL_CLANG_HASH_TYPE}=${IGC_OPENCL_CLANG_HASH}
|
||||
PREFIX ${BUILD_DIR}/igc_opencl_clang
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/igc_opencl_clang/src/external_igc_opencl_clang/ < ${PATCH_DIR}/igc_opencl_clang.diff
|
||||
)
|
||||
|
||||
set(IGC_OPENCL_CLANG_PATCH_DIR ${BUILD_DIR}/igc_opencl_clang/src/external_igc_opencl_clang/patches)
|
||||
set(IGC_LLVM_SOURCE_DIR ${BUILD_DIR}/igc_llvm/src/external_igc_llvm)
|
||||
set(IGC_SPIRV_TRANSLATOR_SOURCE_DIR ${BUILD_DIR}/igc_spirv_translator/src/external_igc_spirv_translator)
|
||||
|
||||
ExternalProject_Add(external_igc_llvm
|
||||
URL file://${PACKAGE_DIR}/${IGC_LLVM_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${IGC_LLVM_HASH_TYPE}=${IGC_LLVM_HASH}
|
||||
PREFIX ${BUILD_DIR}/igc_llvm
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0001-OpenCL-3.0-support.patch &&
|
||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0002-Remove-__IMAGE_SUPPORT__-macro-for-SPIR.patch &&
|
||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0003-Avoid-calling-ParseCommandLineOptions-in-BackendUtil.patch &&
|
||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0004-OpenCL-support-cl_ext_float_atomics.patch &&
|
||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0005-OpenCL-Add-cl_khr_integer_dot_product.patch &&
|
||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/llvm/0001-Memory-leak-fix-for-Managed-Static-Mutex.patch &&
|
||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/llvm/0002-Remove-repo-name-in-LLVM-IR.patch
|
||||
)
|
||||
add_dependencies(
|
||||
external_igc_llvm
|
||||
external_igc_opencl_clang
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_igc_spirv_translator
|
||||
URL file://${PACKAGE_DIR}/${IGC_SPIRV_TRANSLATOR_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${IGC_SPIRV_TRANSLATOR_HASH_TYPE}=${IGC_SPIRV_TRANSLATOR_HASH}
|
||||
PREFIX ${BUILD_DIR}/igc_spirv_translator
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${IGC_SPIRV_TRANSLATOR_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/spirv/0001-update-SPIR-V-headers-for-SPV_INTEL_split_barrier.patch &&
|
||||
${PATCH_CMD} -p 1 -d ${IGC_SPIRV_TRANSLATOR_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/spirv/0002-Add-support-for-split-barriers-extension-SPV_INTEL_s.patch &&
|
||||
${PATCH_CMD} -p 1 -d ${IGC_SPIRV_TRANSLATOR_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/spirv/0003-Support-cl_bf16_conversions.patch
|
||||
)
|
||||
add_dependencies(
|
||||
external_igc_spirv_translator
|
||||
external_igc_opencl_clang
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(IGC_GENERATOR "Ninja")
|
||||
set(IGC_TARGET Windows64)
|
||||
else()
|
||||
set(IGC_GENERATOR "Unix Makefiles")
|
||||
set(IGC_TARGET Linux64)
|
||||
endif()
|
||||
|
||||
set(IGC_EXTRA_ARGS
|
||||
-DIGC_OPTION__ARCHITECTURE_TARGET=${IGC_TARGET}
|
||||
-DIGC_OPTION__ARCHITECTURE_HOST=${IGC_TARGET}
|
||||
)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
list(APPEND IGC_EXTRA_ARGS
|
||||
-DFLEX_EXECUTABLE=${LIBDIR}/flex/bin/flex
|
||||
-DFLEX_INCLUDE_DIR=${LIBDIR}/flex/include
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_igc
|
||||
URL file://${PACKAGE_DIR}/${IGC_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${IGC_HASH_TYPE}=${IGC_HASH}
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/igc ${DEFAULT_CMAKE_FLAGS} ${IGC_EXTRA_ARGS}
|
||||
|
||||
# IGC is pretty set in its way where sub projects ought to live, for some it offers
|
||||
# hooks to supply alternatives folders, other are just hardocded with no way to configure
|
||||
# we symlink everything here, since it's less work than trying to convince the cmake
|
||||
# scripts to accept alternative locations.
|
||||
#
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_llvm/src/external_igc_llvm/ ${BUILD_DIR}/igc/src/llvm-project &&
|
||||
${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_opencl_clang/src/external_igc_opencl_clang/ ${BUILD_DIR}/igc/src/llvm-project/llvm/projects/opencl-clang &&
|
||||
${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_spirv_translator/src/external_igc_spirv_translator/ ${BUILD_DIR}/igc/src/llvm-project/llvm/projects/llvm-spirv &&
|
||||
${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_spirv_tools/src/external_igc_spirv_tools/ ${BUILD_DIR}/igc/src/SPIRV-Tools &&
|
||||
${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_spirv_headers/src/external_igc_spirv_headers/ ${BUILD_DIR}/igc/src/SPIRV-Headers &&
|
||||
${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_vcintrinsics/src/external_igc_vcintrinsics/ ${BUILD_DIR}/igc/src/vc-intrinsics
|
||||
PREFIX ${BUILD_DIR}/igc
|
||||
INSTALL_DIR ${LIBDIR}/igc
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --install . --strip
|
||||
CMAKE_GENERATOR ${IGC_GENERATOR}
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_igc
|
||||
external_igc_vcintrinsics
|
||||
external_igc_llvm
|
||||
external_igc_opencl_clang
|
||||
external_igc_vcintrinsics
|
||||
external_igc_spirv_headers
|
||||
external_igc_spirv_tools
|
||||
external_igc_spirv_translator
|
||||
)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
add_dependencies(
|
||||
external_igc
|
||||
external_flex
|
||||
)
|
||||
endif()
|
@@ -6,6 +6,7 @@ if(WIN32)
|
||||
-DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe
|
||||
-DM4_EXECUTABLE=${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/m4.exe
|
||||
-DARM_ENABLED=Off
|
||||
-DPython3_FIND_REGISTRY=NEVER
|
||||
)
|
||||
elseif(APPLE)
|
||||
# Use bison and flex installed via Homebrew.
|
||||
@@ -27,7 +28,7 @@ elseif(UNIX)
|
||||
set(ISPC_EXTRA_ARGS_UNIX
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/llvm/bin/clang
|
||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/llvm/bin/clang++
|
||||
-DARM_ENABLED=Off
|
||||
-DARM_ENABLED=${BLENDER_PLATFORM_ARM}
|
||||
-DFLEX_EXECUTABLE=${LIBDIR}/flex/bin/flex
|
||||
)
|
||||
endif()
|
||||
@@ -43,6 +44,8 @@ set(ISPC_EXTRA_ARGS
|
||||
-DISPC_INCLUDE_TESTS=Off
|
||||
-DCLANG_LIBRARY_DIR=${LIBDIR}/llvm/lib
|
||||
-DCLANG_INCLUDE_DIRS=${LIBDIR}/llvm/include
|
||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
${ISPC_EXTRA_ARGS_WIN}
|
||||
${ISPC_EXTRA_ARGS_APPLE}
|
||||
${ISPC_EXTRA_ARGS_UNIX}
|
||||
@@ -61,6 +64,7 @@ ExternalProject_Add(external_ispc
|
||||
add_dependencies(
|
||||
external_ispc
|
||||
ll
|
||||
external_python
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
|
@@ -25,11 +25,14 @@ set(LLVM_EXTRA_ARGS
|
||||
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
||||
-DLLVM_ENABLE_UNWIND_TABLES=OFF
|
||||
-DLLVM_ENABLE_PROJECTS=clang${LLVM_BUILD_CLANG_TOOLS_EXTRA}
|
||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
${LLVM_XML2_ARGS}
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(LLVM_GENERATOR "Ninja")
|
||||
list(APPEND LLVM_EXTRA_ARGS -DPython3_FIND_REGISTRY=NEVER)
|
||||
else()
|
||||
set(LLVM_GENERATOR "Unix Makefiles")
|
||||
endif()
|
||||
@@ -74,3 +77,8 @@ if(APPLE)
|
||||
external_xml2
|
||||
)
|
||||
endif()
|
||||
|
||||
add_dependencies(
|
||||
ll
|
||||
external_python
|
||||
)
|
||||
|
18
build_files/build_environment/cmake/macros.cmake
Normal file
18
build_files/build_environment/cmake/macros.cmake
Normal file
@@ -0,0 +1,18 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# shorthand to only unpack a certain dependency
|
||||
macro(unpack_only name)
|
||||
string(TOUPPER ${name} UPPER_NAME)
|
||||
set(TARGET_FILE ${${UPPER_NAME}_FILE})
|
||||
set(TARGET_HASH_TYPE ${${UPPER_NAME}_HASH_TYPE})
|
||||
set(TARGET_HASH ${${UPPER_NAME}_HASH})
|
||||
ExternalProject_Add(external_${name}
|
||||
URL file://${PACKAGE_DIR}/${TARGET_FILE}
|
||||
URL_HASH ${TARGET_HASH_TYPE}=${TARGET_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/${name}
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
endmacro()
|
24
build_files/build_environment/cmake/ocloc.cmake
Normal file
24
build_files/build_environment/cmake/ocloc.cmake
Normal file
@@ -0,0 +1,24 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(OCLOC_EXTRA_ARGS
|
||||
-DNEO_SKIP_UNIT_TESTS=1
|
||||
-DNEO_BUILD_WITH_OCL=0
|
||||
-DBUILD_WITH_L0=0
|
||||
-DIGC_DIR=${LIBDIR}/igc
|
||||
-DGMM_DIR=${LIBDIR}/gmmlib
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_ocloc
|
||||
URL file://${PACKAGE_DIR}/${OCLOC_FILE}
|
||||
URL_HASH ${OCLOC_HASH_TYPE}=${OCLOC_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/ocloc
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ocloc ${DEFAULT_CMAKE_FLAGS} ${OCLOC_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/ocloc
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_ocloc
|
||||
external_igc
|
||||
external_gmmlib
|
||||
)
|
@@ -53,7 +53,8 @@ add_dependencies(
|
||||
external_opencolorio
|
||||
external_yamlcpp
|
||||
external_expat
|
||||
external_openexr
|
||||
external_imath
|
||||
external_pystring
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
|
@@ -9,6 +9,7 @@ set(OIDN_EXTRA_ARGS
|
||||
-DOIDN_STATIC_RUNTIME=OFF
|
||||
-DISPC_EXECUTABLE=${LIBDIR}/ispc/bin/ispc
|
||||
-DOIDN_FILTER_RTLIGHTMAP=OFF
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
@@ -38,6 +39,7 @@ add_dependencies(
|
||||
external_openimagedenoise
|
||||
external_tbb
|
||||
external_ispc
|
||||
external_python
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
|
@@ -18,9 +18,15 @@ if(WIN32)
|
||||
set(PNG_LIBNAME libpng16_static${LIBEXT})
|
||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse2)
|
||||
set(OPENJPEG_POSTFIX _msvc)
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
set(TIFF_POSTFIX d)
|
||||
else()
|
||||
set(TIFF_POSTFIX)
|
||||
endif()
|
||||
else()
|
||||
set(PNG_LIBNAME libpng${LIBEXT})
|
||||
set(OIIO_SIMD_FLAGS)
|
||||
set(TIFF_POSTFIX)
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
@@ -65,7 +71,7 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
||||
-DPNG_LIBRARY=${LIBDIR}/png/lib/${PNG_LIBNAME}
|
||||
-DPNG_PNG_INCLUDE_DIR=${LIBDIR}/png/include
|
||||
-DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT}
|
||||
-DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${TIFF_POSTFIX}${LIBEXT}
|
||||
-DTIFF_INCLUDE_DIR=${LIBDIR}/tiff/include
|
||||
-DJPEG_LIBRARY=${LIBDIR}/jpeg/lib/${JPEG_LIBRARY}
|
||||
-DJPEG_INCLUDE_DIR=${LIBDIR}/jpeg/include
|
||||
|
@@ -10,20 +10,16 @@ set(OPENSUBDIV_EXTRA_ARGS
|
||||
-DNO_OMP=ON
|
||||
-DNO_TBB=OFF
|
||||
-DNO_CUDA=ON
|
||||
-DNO_OPENCL=OFF
|
||||
-DNO_CLEW=OFF
|
||||
-DNO_OPENCL=ON
|
||||
-DNO_CLEW=ON
|
||||
-DNO_OPENGL=OFF
|
||||
-DNO_METAL=OFF
|
||||
-DNO_DX=ON
|
||||
-DNO_TESTS=ON
|
||||
-DNO_GLTESTS=ON
|
||||
-DNO_GLEW=OFF
|
||||
-DNO_GLFW=OFF
|
||||
-DNO_GLEW=ON
|
||||
-DNO_GLFW=ON
|
||||
-DNO_GLFW_X11=ON
|
||||
-DGLEW_INCLUDE_DIR=${LIBDIR}/glew/include
|
||||
-DGLEW_LIBRARY=${LIBDIR}/glew/lib/libGLEW${LIBEXT}
|
||||
-DGLFW_INCLUDE_DIR=${LIBDIR}/glfw/include
|
||||
-DGLFW_LIBRARIES=${LIBDIR}/glfw/lib/glfw3${LIBEXT}
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
@@ -31,19 +27,12 @@ if(WIN32)
|
||||
${OPENSUBDIV_EXTRA_ARGS}
|
||||
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb.lib
|
||||
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
|
||||
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/clew${LIBEXT}
|
||||
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
|
||||
-DCUEW_LIBRARY=${LIBDIR}/cuew/lib/cuew${LIBEXT}
|
||||
)
|
||||
else()
|
||||
set(OPENSUBDIV_EXTRA_ARGS
|
||||
${OPENSUBDIV_EXTRA_ARGS}
|
||||
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
||||
-DTBB_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
||||
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
|
||||
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
|
||||
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/static/${LIBPREFIX}clew${LIBEXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -75,9 +64,5 @@ endif()
|
||||
|
||||
add_dependencies(
|
||||
external_opensubdiv
|
||||
external_glew
|
||||
external_glfw
|
||||
external_clew
|
||||
external_cuew
|
||||
external_tbb
|
||||
)
|
||||
|
@@ -38,6 +38,7 @@ message("BUILD_DIR = ${BUILD_DIR}")
|
||||
if(WIN32)
|
||||
set(PATCH_CMD ${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/patch.exe)
|
||||
set(LIBEXT ".lib")
|
||||
set(SHAREDLIBEXT ".lib")
|
||||
set(LIBPREFIX "")
|
||||
|
||||
# For OIIO and OSL
|
||||
@@ -96,6 +97,7 @@ if(WIN32)
|
||||
else()
|
||||
set(PATCH_CMD patch)
|
||||
set(LIBEXT ".a")
|
||||
set(SHAREDLIBEXT ".so")
|
||||
set(LIBPREFIX "lib")
|
||||
|
||||
if(APPLE)
|
||||
|
@@ -15,7 +15,7 @@ ExternalProject_Add(external_python_site_packages
|
||||
CONFIGURE_COMMAND ${PIP_CONFIGURE_COMMAND}
|
||||
BUILD_COMMAND ""
|
||||
PREFIX ${BUILD_DIR}/site_packages
|
||||
INSTALL_COMMAND ${PYTHON_BINARY} -m pip install --no-cache-dir ${SITE_PACKAGES_EXTRA} cython==${CYTHON_VERSION} idna==${IDNA_VERSION} charset-normalizer==${CHARSET_NORMALIZER_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} zstandard==${ZSTANDARD_VERSION} --no-binary :all:
|
||||
INSTALL_COMMAND ${PYTHON_BINARY} -m pip install --no-cache-dir ${SITE_PACKAGES_EXTRA} cython==${CYTHON_VERSION} idna==${IDNA_VERSION} charset-normalizer==${CHARSET_NORMALIZER_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} zstandard==${ZSTANDARD_VERSION} autopep8==${AUTOPEP8_VERSION} pycodestyle==${PYCODESTYLE_VERSION} toml==${TOML_VERSION} --no-binary :all:
|
||||
)
|
||||
|
||||
if(USE_PIP_NUMPY)
|
||||
|
@@ -11,12 +11,3 @@ ExternalProject_Add(external_robinmap
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/robinmap ${DEFAULT_CMAKE_FLAGS} ${ROBINMAP_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/robinmap
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_robinmap after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/zstd/include/ ${HARVEST_TARGET}/zstd/include/
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -3,6 +3,8 @@
|
||||
set(TIFF_EXTRA_ARGS
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
||||
-DJPEG_LIBRARY=${LIBDIR}/jpeg/lib/${JPEG_LIBRARY}
|
||||
-DJPEG_INCLUDE_DIR=${LIBDIR}/jpeg/include
|
||||
-DPNG_STATIC=ON
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-Dlzma=OFF
|
||||
@@ -24,10 +26,12 @@ add_dependencies(
|
||||
external_tiff
|
||||
external_zlib
|
||||
)
|
||||
|
||||
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_tiff after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiffd${LIBEXT} ${LIBDIR}/tiff/lib/tiff${LIBEXT}
|
||||
DEPENDEES install
|
||||
)
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_tiff after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -25,7 +25,6 @@ set(USD_EXTRA_ARGS
|
||||
-DOpenImageIO_ROOT=${LIBDIR}/openimageio
|
||||
-DOPENEXR_LIBRARIES=${LIBDIR}/imath/lib/imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/imath/include
|
||||
-DOSL_ROOT=${LIBDIR}/osl
|
||||
-DPXR_ENABLE_PYTHON_SUPPORT=OFF
|
||||
-DPXR_BUILD_IMAGING=ON
|
||||
-DPXR_BUILD_TESTS=OFF
|
||||
@@ -36,8 +35,22 @@ set(USD_EXTRA_ARGS
|
||||
-DPXR_ENABLE_OPENVDB_SUPPORT=OFF
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DPXR_BUILD_MONOLITHIC=ON
|
||||
-DPXR_ENABLE_OSL_SUPPORT=ON
|
||||
-DPXR_BUILD_OPENIMAGEIO_PLUGIN=ON
|
||||
# OSL is an optional dependency of the Imaging module. However, since that
|
||||
# module was included for its support for converting primitive shapes (sphere,
|
||||
# cube, etc.) to geometry, it's not necessary. Disabling it will make it
|
||||
# simpler to build Blender; currently only Cycles uses OSL.
|
||||
-DPXR_ENABLE_OSL_SUPPORT=OFF
|
||||
# GL support on Linux also links to X11 libraries. Enabling it would break
|
||||
# headless or Wayland-only builds. OpenGL support would be useful if someone
|
||||
# wants to work on a Hydra viewport in Blender; when that's actually being
|
||||
# worked on, we could patch in a new PXR_ENABLE_X11_SUPPORT option (to
|
||||
# separate OpenGL from X11) and contribute it upstream.
|
||||
-DPXR_ENABLE_GL_SUPPORT=OFF
|
||||
# Disable Metal since USD fails to build this when OpenGL is disabled.
|
||||
-DPXR_ENABLE_METAL_SUPPORT=OFF
|
||||
# OIIO is used for loading image textures in Hydra Storm / Embree renderers,
|
||||
# which we don't use.
|
||||
-DPXR_BUILD_OPENIMAGEIO_PLUGIN=OFF
|
||||
# USD 22.03 does not support OCIO 2.x
|
||||
# Tracking ticket https://github.com/PixarAnimationStudios/USD/issues/1386
|
||||
-DPXR_BUILD_OPENCOLORIO_PLUGIN=OFF
|
||||
@@ -70,9 +83,7 @@ add_dependencies(
|
||||
external_usd
|
||||
external_tbb
|
||||
external_boost
|
||||
external_openimageio
|
||||
external_opensubdiv
|
||||
external_osl
|
||||
)
|
||||
|
||||
# Since USD 21.11 the libraries are prefixed with "usd_", i.e. "libusd_m.a" became "libusd_usd_m.a".
|
||||
|
@@ -45,15 +45,15 @@ set(PTHREADS_HASH f3bf81bb395840b3446197bcf4ecd653)
|
||||
set(PTHREADS_HASH_TYPE MD5)
|
||||
set(PTHREADS_FILE pthreads4w-code-${PTHREADS_VERSION}.zip)
|
||||
|
||||
set(OPENEXR_VERSION 3.1.4)
|
||||
set(OPENEXR_VERSION 3.1.5)
|
||||
set(OPENEXR_URI https://github.com/AcademySoftwareFoundation/openexr/archive/v${OPENEXR_VERSION}.tar.gz)
|
||||
set(OPENEXR_HASH e990be1ff765797bc2d93a8060e1c1f2)
|
||||
set(OPENEXR_HASH a92f38eedd43e56c0af56d4852506886)
|
||||
set(OPENEXR_HASH_TYPE MD5)
|
||||
set(OPENEXR_FILE openexr-${OPENEXR_VERSION}.tar.gz)
|
||||
|
||||
set(IMATH_VERSION 3.1.4)
|
||||
set(IMATH_VERSION 3.1.5)
|
||||
set(IMATH_URI https://github.com/AcademySoftwareFoundation/Imath/archive/v${OPENEXR_VERSION}.tar.gz)
|
||||
set(IMATH_HASH fddf14ec73e12c34e74c3c175e311a3f)
|
||||
set(IMATH_HASH dd375574276c54872b7b3d54053baff0)
|
||||
set(IMATH_HASH_TYPE MD5)
|
||||
set(IMATH_FILE imath-${IMATH_VERSION}.tar.gz)
|
||||
|
||||
@@ -98,27 +98,6 @@ set(ALEMBIC_HASH 2cd8d6e5a3ac4a014e24a4b04f4fadf9)
|
||||
set(ALEMBIC_HASH_TYPE MD5)
|
||||
set(ALEMBIC_FILE alembic-${ALEMBIC_VERSION}.tar.gz)
|
||||
|
||||
# hash is for 3.1.2
|
||||
set(GLFW_GIT_UID 30306e54705c3adae9fe082c816a3be71963485c)
|
||||
set(GLFW_URI https://github.com/glfw/glfw/archive/${GLFW_GIT_UID}.zip)
|
||||
set(GLFW_HASH 20cacb1613da7eeb092f3ac4f6b2b3d0)
|
||||
set(GLFW_HASH_TYPE MD5)
|
||||
set(GLFW_FILE glfw-${GLFW_GIT_UID}.zip)
|
||||
|
||||
# latest uid in git as of 2016-04-01
|
||||
set(CLEW_GIT_UID 277db43f6cafe8b27c6f1055f69dc67da4aeb299)
|
||||
set(CLEW_URI https://github.com/OpenCLWrangler/clew/archive/${CLEW_GIT_UID}.zip)
|
||||
set(CLEW_HASH 2c699d10ed78362e71f56fae2a4c5f98)
|
||||
set(CLEW_HASH_TYPE MD5)
|
||||
set(CLEW_FILE clew-${CLEW_GIT_UID}.zip)
|
||||
|
||||
# latest uid in git as of 2016-04-01
|
||||
set(CUEW_GIT_UID 1744972026de9cf27c8a7dc39cf39cd83d5f922f)
|
||||
set(CUEW_URI https://github.com/CudaWrangler/cuew/archive/${CUEW_GIT_UID}.zip)
|
||||
set(CUEW_HASH 86760d62978ebfd96cd93f5aa1abaf4a)
|
||||
set(CUEW_HASH_TYPE MD5)
|
||||
set(CUEW_FILE cuew-${CUEW_GIT_UID}.zip)
|
||||
|
||||
set(OPENSUBDIV_VERSION v3_4_4)
|
||||
set(OPENSUBDIV_URI https://github.com/PixarAnimationStudios/OpenSubdiv/archive/${OPENSUBDIV_VERSION}.tar.gz)
|
||||
set(OPENSUBDIV_HASH 39ecc5caf0abebc943d1ce131855e76e)
|
||||
@@ -168,7 +147,7 @@ set(OPENIMAGEIO_HASH de45fb38501c4581062b522b53b6141c)
|
||||
set(OPENIMAGEIO_HASH_TYPE MD5)
|
||||
set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
|
||||
# 8.0.0 is currently oiio's preferred vesion although never versions may be available.
|
||||
# 8.0.0 is currently oiio's preferred version although never versions may be available.
|
||||
# the preferred version can be found in oiio's externalpackages.cmake
|
||||
set(FMT_VERSION 8.0.0)
|
||||
set(FMT_URI https://github.com/fmtlib/fmt/archive/refs/tags/${FMT_VERSION}.tar.gz)
|
||||
@@ -176,7 +155,7 @@ set(FMT_HASH 7bce0e9e022e586b178b150002e7c2339994e3c2bbe44027e9abb0d60f9cce83)
|
||||
set(FMT_HASH_TYPE SHA256)
|
||||
set(FMT_FILE fmt-${FMT_VERSION}.tar.gz)
|
||||
|
||||
# 0.6.2 is currently oiio's preferred vesion although never versions may be available.
|
||||
# 0.6.2 is currently oiio's preferred version although never versions may be available.
|
||||
# the preferred version can be found in oiio's externalpackages.cmake
|
||||
set(ROBINMAP_VERSION v0.6.2)
|
||||
set(ROBINMAP_URI https://github.com/Tessil/robin-map/archive/refs/tags/${ROBINMAP_VERSION}.tar.gz)
|
||||
@@ -184,9 +163,9 @@ set(ROBINMAP_HASH c08ec4b1bf1c85eb0d6432244a6a89862229da1cb834f3f90fba8dc35d8c8e
|
||||
set(ROBINMAP_HASH_TYPE SHA256)
|
||||
set(ROBINMAP_FILE robinmap-${ROBINMAP_VERSION}.tar.gz)
|
||||
|
||||
set(TIFF_VERSION 4.3.0)
|
||||
set(TIFF_VERSION 4.4.0)
|
||||
set(TIFF_URI http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz)
|
||||
set(TIFF_HASH 0a2e4744d1426a8fc8211c0cdbc3a1b3)
|
||||
set(TIFF_HASH 376f17f189e9d02280dfe709b2b2bbea)
|
||||
set(TIFF_HASH_TYPE MD5)
|
||||
set(TIFF_FILE tiff-${TIFF_VERSION}.tar.gz)
|
||||
|
||||
@@ -225,6 +204,9 @@ set(CYTHON_VERSION 0.29.26)
|
||||
# The version of the zstd library used to build the Python package should match ZSTD_VERSION defined below.
|
||||
# At this time of writing, 0.17.0 was already released, but built against zstd 1.5.1, while we use 1.5.0.
|
||||
set(ZSTANDARD_VERSION 0.16.0)
|
||||
set(AUTOPEP8_VERSION 1.6.0)
|
||||
set(PYCODESTYLE_VERSION 2.8.0)
|
||||
set(TOML_VERSION 0.10.2)
|
||||
|
||||
set(NUMPY_VERSION 1.22.0)
|
||||
set(NUMPY_SHORT_VERSION 1.22)
|
||||
@@ -428,9 +410,9 @@ set(SQLITE_HASH fb558c49ee21a837713c4f1e7e413309aabdd9c7)
|
||||
set(SQLITE_HASH_TYPE SHA1)
|
||||
set(SQLITE_FILE sqlite-src-3240000.zip)
|
||||
|
||||
set(EMBREE_VERSION 3.13.3)
|
||||
set(EMBREE_VERSION 3.13.4)
|
||||
set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip)
|
||||
set(EMBREE_HASH f62766ba54e48a2f327c3a22596e7133)
|
||||
set(EMBREE_HASH 52d0be294d6c88ba7a6c9e046796e7be)
|
||||
set(EMBREE_HASH_TYPE MD5)
|
||||
set(EMBREE_FILE embree-v${EMBREE_VERSION}.zip)
|
||||
|
||||
@@ -520,3 +502,140 @@ set(LEVEL_ZERO_URI https://github.com/oneapi-src/level-zero/archive/refs/tags/${
|
||||
set(LEVEL_ZERO_HASH c39bb05a8e5898aa6c444e1704105b93d3f1888b9c333f8e7e73825ffbfb2617)
|
||||
set(LEVEL_ZERO_HASH_TYPE SHA256)
|
||||
set(LEVEL_ZERO_FILE level-zero-${LEVEL_ZERO_VERSION}.tar.gz)
|
||||
|
||||
set(DPCPP_VERSION 20220620)
|
||||
set(DPCPP_URI https://github.com/intel/llvm/archive/refs/tags/sycl-nightly/${DPCPP_VERSION}.tar.gz)
|
||||
set(DPCPP_HASH a5f41abd5229d28afa92cbd8a5d8d786ee698bf239f722929fd686276bad692c)
|
||||
set(DPCPP_HASH_TYPE SHA256)
|
||||
set(DPCPP_FILE DPCPP-${DPCPP_VERSION}.tar.gz)
|
||||
|
||||
########################
|
||||
### DPCPP DEPS BEGIN ###
|
||||
########################
|
||||
# The following deps are build time requirements for dpcpp, when possible
|
||||
# the source in the dpcpp source tree for the version chosen is documented
|
||||
# by each dep, these will only have to be downloaded and unpacked, dpcpp
|
||||
# will take care of building them, unpack is being done in dpcpp_deps.cmake
|
||||
|
||||
# Source llvm/lib/SYCLLowerIR/CMakeLists.txt
|
||||
set(VCINTRINSICS_VERSION 984bb27baacce6ee5c716c2e64845f2a1928025b)
|
||||
set(VCINTRINSICS_URI https://github.com/intel/vc-intrinsics/archive/${VCINTRINSICS_VERSION}.tar.gz)
|
||||
set(VCINTRINSICS_HASH abea415a15a0dd11fdc94dee8fb462910f2548311b787e02f42509789e1b0d7b)
|
||||
set(VCINTRINSICS_HASH_TYPE SHA256)
|
||||
set(VCINTRINSICS_FILE vc-intrinsics-${VCINTRINSICS_VERSION}.tar.gz)
|
||||
|
||||
# Source opencl/CMakeLists.txt
|
||||
set(OPENCLHEADERS_VERSION dcd5bede6859d26833cd85f0d6bbcee7382dc9b3)
|
||||
set(OPENCLHEADERS_URI https://github.com/KhronosGroup/OpenCL-Headers/archive/${OPENCLHEADERS_VERSION}.tar.gz)
|
||||
set(OPENCLHEADERS_HASH ca8090359654e94f2c41e946b7e9d826253d795ae809ce7c83a7d3c859624693)
|
||||
set(OPENCLHEADERS_HASH_TYPE SHA256)
|
||||
set(OPENCLHEADERS_FILE opencl_headers-${OPENCLHEADERS_VERSION}.tar.gz)
|
||||
|
||||
# Source opencl/CMakeLists.txt
|
||||
set(ICDLOADER_VERSION aec3952654832211636fc4af613710f80e203b0a)
|
||||
set(ICDLOADER_URI https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/${ICDLOADER_VERSION}.tar.gz)
|
||||
set(ICDLOADER_HASH e1880551d67bd8dc31d13de63b94bbfd6b1f315b6145dad1ffcd159b89bda93c)
|
||||
set(ICDLOADER_HASH_TYPE SHA256)
|
||||
set(ICDLOADER_FILE icdloader-${ICDLOADER_VERSION}.tar.gz)
|
||||
|
||||
# Source sycl/cmake/modules/AddBoostMp11Headers.cmake
|
||||
# Using external MP11 here, getting AddBoostMp11Headers.cmake to recognize
|
||||
# our copy in boost directly was more trouble than it was worth.
|
||||
set(MP11_VERSION 7bc4e1ae9b36ec8ee635c3629b59ec525bbe82b9)
|
||||
set(MP11_URI https://github.com/boostorg/mp11/archive/${MP11_VERSION}.tar.gz)
|
||||
set(MP11_HASH 071ee2bd3952ec89882edb3af25dd1816f6b61723f66e42eea32f4d02ceef426)
|
||||
set(MP11_HASH_TYPE SHA256)
|
||||
set(MP11_FILE mp11-${MP11_VERSION}.tar.gz)
|
||||
|
||||
# Source llvm-spirv/CMakeLists.txt (repo)
|
||||
# Source llvm-spirv/spirv-headers-tag.conf (hash)
|
||||
set(SPIRV_HEADERS_VERSION 36c0c1596225e728bd49abb7ef56a3953e7ed468)
|
||||
set(SPIRV_HEADERS_URI https://github.com/KhronosGroup/SPIRV-Headers/archive/${SPIRV_HEADERS_VERSION}.tar.gz)
|
||||
set(SPIRV_HEADERS_HASH 7a5c89633f8740456fe8adee052033e134476d267411d1336c0cb1e587a9229a)
|
||||
set(SPIRV_HEADERS_HASH_TYPE SHA256)
|
||||
set(SPIRV_HEADERS_FILE SPIR-V-Headers-${SPIRV_HEADERS_VERSION}.tar.gz)
|
||||
|
||||
######################
|
||||
### DPCPP DEPS END ###
|
||||
######################
|
||||
|
||||
##########################################
|
||||
### Intel Graphics Compiler DEPS BEGIN ###
|
||||
##########################################
|
||||
# The following deps are build time requirements for the intel graphics
|
||||
# compiler, the versions used are taken from the following location
|
||||
# https://github.com/intel/intel-graphics-compiler/releases
|
||||
|
||||
set(IGC_VERSION 1.0.11222)
|
||||
set(IGC_URI https://github.com/intel/intel-graphics-compiler/archive/refs/tags/igc-${IGC_VERSION}.tar.gz)
|
||||
set(IGC_HASH d92f0608dcbb52690855685f9447282e5c09c0ba98ae35fabf114fcf8b1e9fcf)
|
||||
set(IGC_HASH_TYPE SHA256)
|
||||
set(IGC_FILE igc-${IGC_VERSION}.tar.gz)
|
||||
|
||||
set(IGC_LLVM_VERSION llvmorg-11.1.0)
|
||||
set(IGC_LLVM_URI https://github.com/llvm/llvm-project/archive/refs/tags/${IGC_LLVM_VERSION}.tar.gz)
|
||||
set(IGC_LLVM_HASH 53a0719f3f4b0388013cfffd7b10c7d5682eece1929a9553c722348d1f866e79)
|
||||
set(IGC_LLVM_HASH_TYPE SHA256)
|
||||
set(IGC_LLVM_FILE ${IGC_LLVM_VERSION}.tar.gz)
|
||||
|
||||
# WARNING WARNING WARNING
|
||||
#
|
||||
# IGC_OPENCL_CLANG contains patches for some of its dependencies.
|
||||
#
|
||||
# Whenever IGC_OPENCL_CLANG_VERSION changes, one *MUST* inspect
|
||||
# IGC_OPENCL_CLANG's patches folder and update igc.cmake to account for
|
||||
# any added or removed patches.
|
||||
#
|
||||
# WARNING WARNING WARNING
|
||||
|
||||
set(IGC_OPENCL_CLANG_VERSION bbdd1587f577397a105c900be114b56755d1f7dc)
|
||||
set(IGC_OPENCL_CLANG_URI https://github.com/intel/opencl-clang/archive/${IGC_OPENCL_CLANG_VERSION}.tar.gz)
|
||||
set(IGC_OPENCL_CLANG_HASH d08315f1b0d8a6fef33de2b3e6aa7356534c324910634962c72523d970773efc)
|
||||
set(IGC_OPENCL_CLANG_HASH_TYPE SHA256)
|
||||
set(IGC_OPENCL_CLANG_FILE opencl-clang-${IGC_OPENCL_CLANG_VERSION}.tar.gz)
|
||||
|
||||
set(IGC_VCINTRINSICS_VERSION v0.4.0)
|
||||
set(IGC_VCINTRINSICS_URI https://github.com/intel/vc-intrinsics/archive/refs/tags/${IGC_VCINTRINSICS_VERSION}.tar.gz)
|
||||
set(IGC_VCINTRINSICS_HASH c8b92682ad5031cf9d5b82a40e7d5c0e763cd9278660adbcaa69aab988e4b589)
|
||||
set(IGC_VCINTRINSICS_HASH_TYPE SHA256)
|
||||
set(IGC_VCINTRINSICS_FILE vc-intrinsics-${IGC_VCINTRINSICS_VERSION}.tar.gz)
|
||||
|
||||
set(IGC_SPIRV_HEADERS_VERSION sdk-1.3.204.1)
|
||||
set(IGC_SPIRV_HEADERS_URI https://github.com/KhronosGroup/SPIRV-Headers/archive/refs/tags/${IGC_SPIRV_HEADERS_VERSION}.tar.gz)
|
||||
set(IGC_SPIRV_HEADERS_HASH 262864053968c217d45b24b89044a7736a32361894743dd6cfe788df258c746c)
|
||||
set(IGC_SPIRV_HEADERS_HASH_TYPE SHA256)
|
||||
set(IGC_SPIRV_HEADERS_FILE SPIR-V-Headers-${IGC_SPIRV_HEADERS_VERSION}.tar.gz)
|
||||
|
||||
set(IGC_SPIRV_TOOLS_VERSION sdk-1.3.204.1)
|
||||
set(IGC_SPIRV_TOOLS_URI https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/${IGC_SPIRV_TOOLS_VERSION}.tar.gz)
|
||||
set(IGC_SPIRV_TOOLS_HASH 6e19900e948944243024aedd0a201baf3854b377b9cc7a386553bc103b087335)
|
||||
set(IGC_SPIRV_TOOLS_HASH_TYPE SHA256)
|
||||
set(IGC_SPIRV_TOOLS_FILE SPIR-V-Tools-${IGC_SPIRV_TOOLS_VERSION}.tar.gz)
|
||||
|
||||
set(IGC_SPIRV_TRANSLATOR_VERSION 99420daab98998a7e36858befac9c5ed109d4920)
|
||||
set(IGC_SPIRV_TRANSLATOR_URI https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz)
|
||||
set(IGC_SPIRV_TRANSLATOR_HASH 77dfb4ddb6bfb993535562c02ddea23f0a0d1c5a0258c1afe7e27c894ff783a8)
|
||||
set(IGC_SPIRV_TRANSLATOR_HASH_TYPE SHA256)
|
||||
set(IGC_SPIRV_TRANSLATOR_FILE SPIR-V-Translator-${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz)
|
||||
|
||||
########################################
|
||||
### Intel Graphics Compiler DEPS END ###
|
||||
########################################
|
||||
|
||||
set(GMMLIB_VERSION intel-gmmlib-22.1.2)
|
||||
set(GMMLIB_URI https://github.com/intel/gmmlib/archive/refs/tags/${GMMLIB_VERSION}.tar.gz)
|
||||
set(GMMLIB_HASH 3b9a6d5e7e3f5748b3d0a2fb0e980ae943907fece0980bd9c0508e71c838e334)
|
||||
set(GMMLIB_HASH_TYPE SHA256)
|
||||
set(GMMLIB_FILE ${GMMLIB_VERSION}.tar.gz)
|
||||
|
||||
set(OCLOC_VERSION 22.20.23198)
|
||||
set(OCLOC_URI https://github.com/intel/compute-runtime/archive/refs/tags/${OCLOC_VERSION}.tar.gz)
|
||||
set(OCLOC_HASH ab22b8bf2560a57fdd3def0e35a62ca75991406f959c0263abb00cd6cd9ae998)
|
||||
set(OCLOC_HASH_TYPE SHA256)
|
||||
set(OCLOC_FILE ocloc-${OCLOC_VERSION}.tar.gz)
|
||||
|
||||
set(AOM_VERSION 3.4.0)
|
||||
set(AOM_URI https://storage.googleapis.com/aom-releases/libaom-${AOM_VERSION}.tar.gz)
|
||||
set(AOM_HASH bd754b58c3fa69f3ffd29da77de591bd9c26970e3b18537951336d6c0252e354)
|
||||
set(AOM_HASH_TYPE SHA256)
|
||||
set(AOM_FILE libaom-${AOM_VERSION}.tar.gz)
|
||||
|
@@ -1,11 +1,13 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
set(VPX_EXTRA_FLAGS --target=x86_64-win64-gcc --disable-multithread)
|
||||
else()
|
||||
set(VPX_EXTRA_FLAGS --target=x86-win32-gcc --disable-multithread)
|
||||
endif()
|
||||
# VPX is determined to use pthreads which it will tell ffmpeg to dynamically
|
||||
# link, which is not something we're super into distribution wise. However
|
||||
# if it cannot find pthread.h it'll happily provide a pthread emulation
|
||||
# layer using win32 threads. So all this patch does is make it not find
|
||||
# pthead.h
|
||||
set(VPX_PATCH ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/vpx/src/external_vpx < ${PATCH_DIR}/vpx_windows.diff)
|
||||
set(VPX_EXTRA_FLAGS --target=x86_64-win64-gcc )
|
||||
else()
|
||||
if(APPLE)
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
@@ -18,6 +20,16 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT BLENDER_PLATFORM_ARM)
|
||||
list(APPEND VPX_EXTRA_FLAGS
|
||||
--enable-sse4_1
|
||||
--enable-sse3
|
||||
--enable-ssse3
|
||||
--enable-avx
|
||||
--enable-avx2
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_vpx
|
||||
URL file://${PACKAGE_DIR}/${VPX_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
@@ -30,11 +42,6 @@ ExternalProject_Add(external_vpx
|
||||
--enable-static
|
||||
--disable-install-bins
|
||||
--disable-install-srcs
|
||||
--disable-sse4_1
|
||||
--disable-sse3
|
||||
--disable-ssse3
|
||||
--disable-avx
|
||||
--disable-avx2
|
||||
--disable-unit-tests
|
||||
--disable-examples
|
||||
--enable-vp8
|
||||
@@ -42,6 +49,7 @@ ExternalProject_Add(external_vpx
|
||||
${VPX_EXTRA_FLAGS}
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vpx/src/external_vpx/ && make -j${MAKE_THREADS}
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vpx/src/external_vpx/ && make install
|
||||
PATCH_COMMAND ${VPX_PATCH}
|
||||
INSTALL_DIR ${LIBDIR}/vpx
|
||||
)
|
||||
|
||||
|
@@ -37,10 +37,6 @@ graph[autosize = false, size = "25.7,8.3!", resolution = 300, overlap = false, s
|
||||
external_openimageio -- external_webp;
|
||||
external_openimageio -- external_opencolorio_extra;
|
||||
external_openmp -- external_clang;
|
||||
external_opensubdiv -- external_glew;
|
||||
external_opensubdiv -- external_glfw;
|
||||
external_opensubdiv -- external_clew;
|
||||
external_opensubdiv -- external_cuew;
|
||||
external_opensubdiv -- external_tbb;
|
||||
openvdb -- external_tbb;
|
||||
openvdb -- external_boost;
|
||||
|
@@ -36,19 +36,19 @@ getopt \
|
||||
-o s:i:t:h \
|
||||
--long source:,install:,tmp:,info:,threads:,help,show-deps,no-sudo,no-build,no-confirm,\
|
||||
with-all,with-opencollada,with-jack,with-pulseaudio,with-embree,with-oidn,with-nanovdb,\
|
||||
ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,ver-xr-openxr:,\
|
||||
ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,ver-xr-openxr:,ver-level-zero:\
|
||||
force-all,force-python,force-boost,force-tbb,\
|
||||
force-ocio,force-imath,force-openexr,force-oiio,force-llvm,force-osl,force-osd,force-openvdb,\
|
||||
force-ffmpeg,force-opencollada,force-alembic,force-embree,force-oidn,force-usd,\
|
||||
force-xr-openxr,\
|
||||
force-xr-openxr,force-level-zero,\
|
||||
build-all,build-python,build-boost,build-tbb,\
|
||||
build-ocio,build-imath,build-openexr,build-oiio,build-llvm,build-osl,build-osd,build-openvdb,\
|
||||
build-ffmpeg,build-opencollada,build-alembic,build-embree,build-oidn,build-usd,\
|
||||
build-xr-openxr,\
|
||||
build-xr-openxr,build-level-zero,\
|
||||
skip-python,skip-boost,skip-tbb,\
|
||||
skip-ocio,skip-imath,skip-openexr,skip-oiio,skip-llvm,skip-osl,skip-osd,skip-openvdb,\
|
||||
skip-ffmpeg,skip-opencollada,skip-alembic,skip-embree,skip-oidn,skip-usd,\
|
||||
skip-xr-openxr \
|
||||
skip-xr-openxr,skip-level-zero \
|
||||
-- "$@" \
|
||||
)
|
||||
|
||||
@@ -165,6 +165,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
||||
--ver-xr-openxr=<ver>
|
||||
Force version of OpenXR-SDK.
|
||||
|
||||
--ver-level-zero=<ver>
|
||||
Force version of OneAPI Level Zero library.
|
||||
|
||||
Note about the --ver-foo options:
|
||||
It may not always work as expected (some libs are actually checked out from a git rev...), yet it might help
|
||||
to fix some build issues (like LLVM mismatch with the version used by your graphic system).
|
||||
@@ -226,6 +229,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
||||
--build-xr-openxr
|
||||
Force the build of OpenXR-SDK.
|
||||
|
||||
--build-level-zero=<ver>
|
||||
Force the build of OneAPI Level Zero library.
|
||||
|
||||
Note about the --build-foo options:
|
||||
* They force the script to prefer building dependencies rather than using available packages.
|
||||
This may make things simpler and allow working around some distribution bugs, but on the other hand it will
|
||||
@@ -293,6 +299,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
||||
--force-xr-openxr
|
||||
Force the rebuild of OpenXR-SDK.
|
||||
|
||||
--force-level-zero=<ver>
|
||||
Force the rebuild of OneAPI Level Zero library.
|
||||
|
||||
Note about the --force-foo options:
|
||||
* They obviously only have an effect if those libraries are built by this script
|
||||
(i.e. if there is no available and satisfactory package)!
|
||||
@@ -351,7 +360,10 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
||||
Unconditionally skip Universal Scene Description installation/building.
|
||||
|
||||
--skip-xr-openxr
|
||||
Unconditionally skip OpenXR-SDK installation/building.\""
|
||||
Unconditionally skip OpenXR-SDK installation/building.
|
||||
|
||||
--skip-level-zero=<ver>
|
||||
Unconditionally skip OneAPI Level Zero installation/building.\""
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Main Vars
|
||||
@@ -453,7 +465,7 @@ TBB_VERSION="2020"
|
||||
TBB_VERSION_SHORT="2020"
|
||||
TBB_VERSION_UPDATE="_U3" # Used for source packages...
|
||||
TBB_VERSION_MIN="2018"
|
||||
TBB_VERSION_MEX="2022"
|
||||
TBB_VERSION_MEX="2021" # 2021 introduces 'oneTBB', which has lots of compatibility breakage with previous versions
|
||||
TBB_FORCE_BUILD=false
|
||||
TBB_FORCE_REBUILD=false
|
||||
TBB_SKIP=false
|
||||
@@ -466,7 +478,7 @@ OCIO_FORCE_BUILD=false
|
||||
OCIO_FORCE_REBUILD=false
|
||||
OCIO_SKIP=false
|
||||
|
||||
IMATH_VERSION="3.1.4"
|
||||
IMATH_VERSION="3.1.5"
|
||||
IMATH_VERSION_SHORT="3.1"
|
||||
IMATH_VERSION_MIN="3.0"
|
||||
IMATH_VERSION_MEX="4.0"
|
||||
@@ -475,7 +487,7 @@ IMATH_FORCE_REBUILD=false
|
||||
IMATH_SKIP=false
|
||||
_with_built_imath=false
|
||||
|
||||
OPENEXR_VERSION="3.1.4"
|
||||
OPENEXR_VERSION="3.1.5"
|
||||
OPENEXR_VERSION_SHORT="3.1"
|
||||
OPENEXR_VERSION_MIN="3.0"
|
||||
OPENEXR_VERSION_MEX="4.0"
|
||||
@@ -539,10 +551,10 @@ ALEMBIC_FORCE_BUILD=false
|
||||
ALEMBIC_FORCE_REBUILD=false
|
||||
ALEMBIC_SKIP=false
|
||||
|
||||
USD_VERSION="21.02"
|
||||
USD_VERSION_SHORT="21.02"
|
||||
USD_VERSION="22.03"
|
||||
USD_VERSION_SHORT="22.03"
|
||||
USD_VERSION_MIN="20.05"
|
||||
USD_VERSION_MEX="22.00"
|
||||
USD_VERSION_MEX="23.00"
|
||||
USD_FORCE_BUILD=false
|
||||
USD_FORCE_REBUILD=false
|
||||
USD_SKIP=false
|
||||
@@ -555,7 +567,7 @@ OPENCOLLADA_FORCE_BUILD=false
|
||||
OPENCOLLADA_FORCE_REBUILD=false
|
||||
OPENCOLLADA_SKIP=false
|
||||
|
||||
EMBREE_VERSION="3.13.3"
|
||||
EMBREE_VERSION="3.13.4"
|
||||
EMBREE_VERSION_SHORT="3.13"
|
||||
EMBREE_VERSION_MIN="3.13"
|
||||
EMBREE_VERSION_MEX="4.0"
|
||||
@@ -573,14 +585,13 @@ OIDN_SKIP=false
|
||||
|
||||
ISPC_VERSION="1.17.0"
|
||||
|
||||
FFMPEG_VERSION="4.4"
|
||||
FFMPEG_VERSION_SHORT="4.4"
|
||||
FFMPEG_VERSION_MIN="3.0"
|
||||
FFMPEG_VERSION_MEX="5.0"
|
||||
FFMPEG_FORCE_BUILD=false
|
||||
FFMPEG_FORCE_REBUILD=false
|
||||
FFMPEG_SKIP=false
|
||||
_ffmpeg_list_sep=";"
|
||||
LEVEL_ZERO_VERSION="1.7.15"
|
||||
LEVEL_ZERO_VERSION_SHORT="1.7"
|
||||
LEVEL_ZERO_VERSION_MIN="1.7"
|
||||
LEVEL_ZERO_VERSION_MEX="2.0"
|
||||
LEVEL_ZERO_FORCE_BUILD=false
|
||||
LEVEL_ZERO_FORCE_REBUILD=false
|
||||
LEVEL_ZERO_SKIP=false
|
||||
|
||||
XR_OPENXR_VERSION="1.0.22"
|
||||
XR_OPENXR_VERSION_SHORT="1.0"
|
||||
@@ -590,6 +601,15 @@ XR_OPENXR_FORCE_BUILD=false
|
||||
XR_OPENXR_FORCE_REBUILD=false
|
||||
XR_OPENXR_SKIP=false
|
||||
|
||||
FFMPEG_VERSION="5.0"
|
||||
FFMPEG_VERSION_SHORT="5.0"
|
||||
FFMPEG_VERSION_MIN="4.0"
|
||||
FFMPEG_VERSION_MEX="6.0"
|
||||
FFMPEG_FORCE_BUILD=false
|
||||
FFMPEG_FORCE_REBUILD=false
|
||||
FFMPEG_SKIP=false
|
||||
_ffmpeg_list_sep=";"
|
||||
|
||||
# FFMPEG optional libs.
|
||||
VORBIS_USE=false
|
||||
VORBIS_DEV=""
|
||||
@@ -607,6 +627,9 @@ WEBP_DEV=""
|
||||
VPX_USE=false
|
||||
VPX_VERSION_MIN=0.9.7
|
||||
VPX_DEV=""
|
||||
AOM_USE=false
|
||||
AOM_VERSION_MIN=3.3.0
|
||||
AOM_DEV=""
|
||||
OPUS_USE=false
|
||||
OPUS_VERSION_MIN=1.1.1
|
||||
OPUS_DEV=""
|
||||
@@ -615,9 +638,6 @@ MP3LAME_DEV=""
|
||||
OPENJPEG_USE=false
|
||||
OPENJPEG_DEV=""
|
||||
|
||||
# Whether to use system GLEW or not (OpenSubDiv needs recent glew to work).
|
||||
NO_SYSTEM_GLEW=false
|
||||
|
||||
# Switch to english language, else some things (like check_package_DEB()) won't work!
|
||||
LANG_BACK=$LANG
|
||||
LANG=""
|
||||
@@ -781,6 +801,12 @@ while true; do
|
||||
XR_OPENXR_VERSION_SHORT=$XR_OPENXR_VERSION
|
||||
shift; shift; continue
|
||||
;;
|
||||
--ver-level-zero)
|
||||
LEVEL_ZERO_VERSION="$2"
|
||||
LEVEL_ZERO_VERSION_MIN=$LEVEL_ZERO_VERSION
|
||||
LEVEL_ZERO_VERSION_SHORT=$LEVEL_ZERO_VERSION
|
||||
shift; shift; continue
|
||||
;;
|
||||
--build-all)
|
||||
PYTHON_FORCE_BUILD=true
|
||||
BOOST_FORCE_BUILD=true
|
||||
@@ -800,6 +826,7 @@ while true; do
|
||||
ALEMBIC_FORCE_BUILD=true
|
||||
USD_FORCE_BUILD=true
|
||||
XR_OPENXR_FORCE_BUILD=true
|
||||
LEVEL_ZERO_FORCE_BUILD=true
|
||||
shift; continue
|
||||
;;
|
||||
--build-python)
|
||||
@@ -857,6 +884,9 @@ while true; do
|
||||
--build-xr-openxr)
|
||||
XR_OPENXR_FORCE_BUILD=true; shift; continue
|
||||
;;
|
||||
--build-level-zero)
|
||||
LEVEL_ZERO_FORCE_BUILD=true; shift; continue
|
||||
;;
|
||||
--force-all)
|
||||
PYTHON_FORCE_REBUILD=true
|
||||
BOOST_FORCE_REBUILD=true
|
||||
@@ -876,6 +906,7 @@ while true; do
|
||||
ALEMBIC_FORCE_REBUILD=true
|
||||
USD_FORCE_REBUILD=true
|
||||
XR_OPENXR_FORCE_REBUILD=true
|
||||
LEVEL_ZERO_FORCE_REBUILD=true
|
||||
shift; continue
|
||||
;;
|
||||
--force-python)
|
||||
@@ -933,6 +964,9 @@ while true; do
|
||||
--force-xr-openxr)
|
||||
XR_OPENXR_FORCE_REBUILD=true; shift; continue
|
||||
;;
|
||||
--force-level-zero)
|
||||
LEVEL_ZERO_FORCE_REBUILD=true; shift; continue
|
||||
;;
|
||||
--skip-python)
|
||||
PYTHON_SKIP=true; shift; continue
|
||||
;;
|
||||
@@ -987,6 +1021,9 @@ while true; do
|
||||
--skip-xr-openxr)
|
||||
XR_OPENXR_SKIP=true; shift; continue
|
||||
;;
|
||||
--skip-level-zero)
|
||||
LEVEL_ZERO_SKIP=true; shift; continue
|
||||
;;
|
||||
--)
|
||||
# no more arguments to parse
|
||||
break
|
||||
@@ -1128,14 +1165,16 @@ OIDN_SOURCE=( "https://github.com/OpenImageDenoise/oidn/releases/download/v${OID
|
||||
|
||||
ISPC_BINARY=( "https://github.com/ispc/ispc/releases/download/v${ISPC_VERSION}/ispc-v${ISPC_VERSION}-linux.tar.gz" )
|
||||
|
||||
FFMPEG_SOURCE=( "http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" )
|
||||
|
||||
XR_OPENXR_USE_REPO=false
|
||||
XR_OPENXR_SOURCE=("https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_VERSION}.tar.gz")
|
||||
XR_OPENXR_SOURCE_REPO=("https://github.com/KhronosGroup/OpenXR-SDK.git")
|
||||
XR_OPENXR_REPO_UID="458984d7f59d1ae6dc1b597d94b02e4f7132eaba"
|
||||
XR_OPENXR_REPO_BRANCH="master"
|
||||
|
||||
LEVEL_ZERO_SOURCE=("https://github.com/oneapi-src/level-zero/archive/refs/tags/v${LEVEL_ZERO_VERSION}.tar.gz")
|
||||
|
||||
FFMPEG_SOURCE=( "http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" )
|
||||
|
||||
# C++11 is required now
|
||||
CXXFLAGS_BACK=$CXXFLAGS
|
||||
CXXFLAGS="$CXXFLAGS -std=c++11"
|
||||
@@ -1154,7 +1193,7 @@ Those libraries should be available as packages in all recent distributions (opt
|
||||
* libx11, libxcursor, libxi, libxrandr, libxinerama (and other libx... as needed).
|
||||
* libwayland-client0, libwayland-cursor0, libwayland-egl1, libxkbcommon0, libdbus-1-3, libegl1 (Wayland)
|
||||
* libsqlite3, libzstd, libbz2, libssl, libfftw3, libxml2, libtinyxml, yasm, libyaml-cpp, flex.
|
||||
* libsdl2, libglew, libpugixml, libpotrace, [libgmp], [libglewmx], fontconfig, [libharu/libhpdf].\""
|
||||
* libsdl2, libglew, libpugixml, libpotrace, [libgmp], fontconfig, [libharu/libhpdf].\""
|
||||
|
||||
DEPS_SPECIFIC_INFO="\"BUILDABLE DEPENDENCIES:
|
||||
|
||||
@@ -1173,7 +1212,7 @@ You may also want to build them yourself (optional ones are [between brackets]):
|
||||
** [NumPy $PYTHON_NUMPY_VERSION] (use pip).
|
||||
* Boost $BOOST_VERSION (from $BOOST_SOURCE, modules: $BOOST_BUILD_MODULES).
|
||||
* TBB $TBB_VERSION (from $TBB_SOURCE).
|
||||
* [FFMpeg $FFMPEG_VERSION (needs libvorbis, libogg, libtheora, libx264, libmp3lame, libxvidcore, libvpx, libwebp, ...)] (from $FFMPEG_SOURCE).
|
||||
* [FFMpeg $FFMPEG_VERSION (needs libvorbis, libogg, libtheora, libx264, libmp3lame, libxvidcore, libvpx, libaom, libwebp, ...)] (from $FFMPEG_SOURCE).
|
||||
* [OpenColorIO $OCIO_VERSION] (from $OCIO_SOURCE).
|
||||
* Imath $IMATH_VERSION (from $IMATH_SOURCE).
|
||||
* OpenEXR $OPENEXR_VERSION (from $OPENEXR_SOURCE).
|
||||
@@ -1187,7 +1226,8 @@ You may also want to build them yourself (optional ones are [between brackets]):
|
||||
* [OpenImageDenoise $OIDN_VERSION] (from $OIDN_SOURCE).
|
||||
* [Alembic $ALEMBIC_VERSION] (from $ALEMBIC_SOURCE).
|
||||
* [Universal Scene Description $USD_VERSION] (from $USD_SOURCE).
|
||||
* [OpenXR-SDK $XR_OPENXR_VERSION] (from $XR_OPENXR_SOURCE).\""
|
||||
* [OpenXR-SDK $XR_OPENXR_VERSION] (from $XR_OPENXR_SOURCE).
|
||||
* [OneAPI Level Zero $LEVEL_ZERO_VERSION] (from $LEVEL_ZERO_SOURCE).\""
|
||||
|
||||
if [ "$DO_SHOW_DEPS" = true ]; then
|
||||
PRINT ""
|
||||
@@ -1647,7 +1687,7 @@ compile_TBB() {
|
||||
fi
|
||||
|
||||
# To be changed each time we make edits that would modify the compiled result!
|
||||
tbb_magic=0
|
||||
tbb_magic=1
|
||||
_init_tbb
|
||||
|
||||
# Force having own builds for the dependencies.
|
||||
@@ -2656,14 +2696,13 @@ compile_OSD() {
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
if [ -d $INST/tbb ]; then
|
||||
cmake_d="$cmake_d $cmake_d -D TBB_LOCATION=$INST/tbb"
|
||||
fi
|
||||
cmake_d="-D CMAKE_BUILD_TYPE=Release"
|
||||
if [ -d $INST/tbb ]; then
|
||||
cmake_d="$cmake_d -D TBB_LOCATION=$INST/tbb"
|
||||
fi
|
||||
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
|
||||
# ptex is only needed when nicholas bishop is ready
|
||||
cmake_d="$cmake_d -D NO_PTEX=1"
|
||||
cmake_d="$cmake_d -D NO_CLEW=1 -D NO_CUDA=1 -D NO_OPENCL=1"
|
||||
cmake_d="$cmake_d -D NO_CLEW=1 -D NO_CUDA=1 -D NO_OPENCL=1 -D NO_GLEW=1"
|
||||
# maya plugin, docs, tutorials, regression tests and examples are not needed
|
||||
cmake_d="$cmake_d -D NO_MAYA=1 -D NO_DOC=1 -D NO_TUTORIALS=1 -D NO_REGRESSION=1 -DNO_EXAMPLES=1"
|
||||
|
||||
@@ -2964,7 +3003,7 @@ compile_ALEMBIC() {
|
||||
fi
|
||||
|
||||
# To be changed each time we make edits that would modify the compiled result!
|
||||
alembic_magic=2
|
||||
alembic_magic=3
|
||||
_init_alembic
|
||||
|
||||
# Force having own builds for the dependencies.
|
||||
@@ -3012,7 +3051,7 @@ compile_ALEMBIC() {
|
||||
fi
|
||||
if [ "$_with_built_openexr" = true ]; then
|
||||
cmake_d="$cmake_d -D USE_ARNOLD=OFF"
|
||||
cmake_d="$cmake_d -D USE_BINARIES=OFF"
|
||||
cmake_d="$cmake_d -D USE_BINARIES=ON" # Tests use some Alembic binaries...
|
||||
cmake_d="$cmake_d -D USE_EXAMPLES=OFF"
|
||||
cmake_d="$cmake_d -D USE_HDF5=OFF"
|
||||
cmake_d="$cmake_d -D USE_MAYA=OFF"
|
||||
@@ -3286,7 +3325,7 @@ compile_Embree() {
|
||||
fi
|
||||
|
||||
# To be changed each time we make edits that would modify the compiled results!
|
||||
embree_magic=10
|
||||
embree_magic=11
|
||||
_init_embree
|
||||
|
||||
# Force having own builds for the dependencies.
|
||||
@@ -3346,7 +3385,7 @@ compile_Embree() {
|
||||
|
||||
cmake_d="$cmake_d -D EMBREE_TASKING_SYSTEM=TBB"
|
||||
if [ -d $INST/tbb ]; then
|
||||
make_d="$make_d EMBREE_TBB_ROOT=$INST/tbb"
|
||||
cmake_d="$cmake_d -D EMBREE_TBB_ROOT=$INST/tbb"
|
||||
fi
|
||||
|
||||
cmake $cmake_d ../
|
||||
@@ -3485,7 +3524,7 @@ compile_OIDN() {
|
||||
install_ISPC
|
||||
|
||||
# To be changed each time we make edits that would modify the compiled results!
|
||||
oidn_magic=9
|
||||
oidn_magic=10
|
||||
_init_oidn
|
||||
|
||||
# Force having own builds for the dependencies.
|
||||
@@ -3541,7 +3580,7 @@ compile_OIDN() {
|
||||
cmake_d="$cmake_d -D ISPC_DIR_HINT=$_ispc_path_bin"
|
||||
|
||||
if [ -d $INST/tbb ]; then
|
||||
make_d="$make_d TBB_ROOT=$INST/tbb"
|
||||
cmake_d="$cmake_d -D TBB_ROOT=$INST/tbb"
|
||||
fi
|
||||
|
||||
cmake $cmake_d ../
|
||||
@@ -3598,7 +3637,7 @@ compile_FFmpeg() {
|
||||
fi
|
||||
|
||||
# To be changed each time we make edits that would modify the compiled result!
|
||||
ffmpeg_magic=5
|
||||
ffmpeg_magic=6
|
||||
_init_ffmpeg
|
||||
|
||||
# Force having own builds for the dependencies.
|
||||
@@ -3651,6 +3690,10 @@ compile_FFmpeg() {
|
||||
extra="$extra --enable-libvpx"
|
||||
fi
|
||||
|
||||
if [ "$AOM_USE" = true ]; then
|
||||
extra="$extra --enable-libaom"
|
||||
fi
|
||||
|
||||
if [ "$WEBP_USE" = true ]; then
|
||||
extra="$extra --enable-libwebp"
|
||||
fi
|
||||
@@ -3822,6 +3865,103 @@ compile_XR_OpenXR_SDK() {
|
||||
}
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Build OneAPI Level Zero library.
|
||||
|
||||
_init_level_zero() {
|
||||
_src=$SRC/level-zero-$LEVEL_ZERO_VERSION
|
||||
_git=false
|
||||
_inst=$INST/level-zero-$LEVEL_ZERO_VERSION_SHORT
|
||||
_inst_shortcut=$INST/level-zero
|
||||
}
|
||||
|
||||
_update_deps_level_zero() {
|
||||
:
|
||||
}
|
||||
|
||||
clean_Level_Zero() {
|
||||
_init_level_zero
|
||||
if [ -d $_inst ]; then
|
||||
# Force rebuilding the dependencies if needed.
|
||||
_update_deps_level_zero false true
|
||||
fi
|
||||
_clean
|
||||
}
|
||||
|
||||
compile_Level_Zero() {
|
||||
if [ "$NO_BUILD" = true ]; then
|
||||
WARNING "--no-build enabled, Level Zero will not be compiled!"
|
||||
return
|
||||
fi
|
||||
|
||||
# To be changed each time we make edits that would modify the compiled result!
|
||||
level_zero_magic=1
|
||||
_init_level_zero
|
||||
|
||||
# Force having own builds for the dependencies.
|
||||
_update_deps_level_zero true false
|
||||
|
||||
# Clean install if needed!
|
||||
magic_compile_check level-zero-$LEVEL_ZERO_VERSION $level_zero_magic
|
||||
if [ $? -eq 1 -o "$LEVEL_ZERO_FORCE_REBUILD" = true ]; then
|
||||
clean_Level_Zero
|
||||
fi
|
||||
|
||||
if [ ! -d $_inst ]; then
|
||||
INFO "Building Level-Zero-$LEVEL_ZERO_VERSION"
|
||||
|
||||
# Force rebuilding the dependencies.
|
||||
_update_deps_level_zero true true
|
||||
|
||||
prepare_inst
|
||||
|
||||
if [ ! -d $_src ]; then
|
||||
mkdir -p $SRC
|
||||
|
||||
download LEVEL_ZERO_SOURCE[@] "$_src.tar.gz"
|
||||
INFO "Unpacking Level-Zero-$LEVEL_ZERO_VERSION"
|
||||
tar -C $SRC -xf $_src.tar.gz
|
||||
fi
|
||||
|
||||
cd $_src
|
||||
|
||||
# Always refresh the whole build!
|
||||
if [ -d build ]; then
|
||||
rm -rf build
|
||||
fi
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
# Keep flags in sync with LEVEL_ZERO_EXTRA_ARGS in level-zero.cmake!
|
||||
cmake_d="-D CMAKE_BUILD_TYPE=Release"
|
||||
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
|
||||
|
||||
cmake $cmake_d ..
|
||||
|
||||
make -j$THREADS && make install
|
||||
make clean
|
||||
|
||||
if [ ! -d $_inst ]; then
|
||||
ERROR "Level-Zero-$LEVEL_ZERO_VERSION failed to compile, exiting"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
magic_compile_set level-zero-$LEVEL_ZERO_VERSION $level_zero_magic
|
||||
|
||||
cd $CWD
|
||||
INFO "Done compiling Level-Zero-$LEVEL_ZERO_VERSION!"
|
||||
else
|
||||
INFO "Own Level-Zero-$LEVEL_ZERO_VERSION is up to date, nothing to do!"
|
||||
INFO "If you want to force rebuild of this lib, use the --force-level-zero option."
|
||||
fi
|
||||
|
||||
if [ -d $_inst ]; then
|
||||
_create_inst_shortcut
|
||||
fi
|
||||
run_ldconfig "level-zero"
|
||||
}
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Install on DEB-like
|
||||
|
||||
@@ -3925,7 +4065,6 @@ install_DEB() {
|
||||
libopenal-dev libglew-dev yasm \
|
||||
libsdl2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libjemalloc-dev \
|
||||
libgmp-dev libpugixml-dev libpotrace-dev libhpdf-dev libzstd-dev libpystring-dev"
|
||||
# libglewmx-dev (broken in deb testing currently...)
|
||||
|
||||
VORBIS_USE=true
|
||||
OGG_USE=true
|
||||
@@ -4008,33 +4147,37 @@ install_DEB() {
|
||||
WEBP_USE=true
|
||||
fi
|
||||
|
||||
if [ "$WITH_ALL" = true ]; then
|
||||
XVID_DEV="libxvidcore-dev"
|
||||
check_package_DEB $XVID_DEV
|
||||
if [ $? -eq 0 ]; then
|
||||
XVID_USE=true
|
||||
fi
|
||||
|
||||
MP3LAME_DEV="libmp3lame-dev"
|
||||
check_package_DEB $MP3LAME_DEV
|
||||
if [ $? -eq 0 ]; then
|
||||
MP3LAME_USE=true
|
||||
fi
|
||||
|
||||
VPX_DEV="libvpx-dev"
|
||||
check_package_version_ge_DEB $VPX_DEV $VPX_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
VPX_USE=true
|
||||
fi
|
||||
|
||||
OPUS_DEV="libopus-dev"
|
||||
check_package_version_ge_DEB $OPUS_DEV $OPUS_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
OPUS_USE=true
|
||||
fi
|
||||
XVID_DEV="libxvidcore-dev"
|
||||
check_package_DEB $XVID_DEV
|
||||
if [ $? -eq 0 ]; then
|
||||
XVID_USE=true
|
||||
fi
|
||||
|
||||
# Check cmake/glew versions and disable features for older distros.
|
||||
MP3LAME_DEV="libmp3lame-dev"
|
||||
check_package_DEB $MP3LAME_DEV
|
||||
if [ $? -eq 0 ]; then
|
||||
MP3LAME_USE=true
|
||||
fi
|
||||
|
||||
VPX_DEV="libvpx-dev"
|
||||
check_package_version_ge_DEB $VPX_DEV $VPX_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
VPX_USE=true
|
||||
fi
|
||||
|
||||
AOM_DEV="libaom-dev"
|
||||
check_package_version_ge_DEB $AOM_DEV $AOM_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
AOM_USE=true
|
||||
fi
|
||||
|
||||
OPUS_DEV="libopus-dev"
|
||||
check_package_version_ge_DEB $OPUS_DEV $OPUS_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
OPUS_USE=true
|
||||
fi
|
||||
|
||||
# Check cmake version and disable features for older distros.
|
||||
# This is so Blender can at least compile.
|
||||
PRINT ""
|
||||
_cmake=`get_package_version_DEB cmake`
|
||||
@@ -4051,28 +4194,6 @@ install_DEB() {
|
||||
fi
|
||||
fi
|
||||
|
||||
PRINT ""
|
||||
_glew=`get_package_version_DEB libglew-dev`
|
||||
if [ -z $_glew ]; then
|
||||
# Stupid virtual package in Ubuntu 12.04 doesn't show version number...
|
||||
_glew=`apt-cache showpkg libglew-dev|tail -n1|awk '{print $2}'|sed 's/-.*//'`
|
||||
fi
|
||||
version_ge $_glew "1.9.0"
|
||||
if [ $? -eq 1 ]; then
|
||||
version_ge $_glew "1.7.0"
|
||||
if [ $? -eq 1 ]; then
|
||||
WARNING "OpenSubdiv disabled because GLEW-$_glew is not enough"
|
||||
WARNING "Blender will not use system GLEW library"
|
||||
OSD_SKIP=true
|
||||
NO_SYSTEM_GLEW=true
|
||||
else
|
||||
WARNING "OpenSubdiv will compile with GLEW-$_glew but with limited capability"
|
||||
WARNING "Blender will not use system GLEW library"
|
||||
NO_SYSTEM_GLEW=true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
PRINT ""
|
||||
_do_compile_python=false
|
||||
if [ "$PYTHON_SKIP" = true ]; then
|
||||
@@ -4436,6 +4557,9 @@ install_DEB() {
|
||||
if [ "$VPX_USE" = true ]; then
|
||||
_packages="$_packages $VPX_DEV"
|
||||
fi
|
||||
if [ "$AOM_USE" = true ]; then
|
||||
_packages="$_packages $AOM_DEV"
|
||||
fi
|
||||
if [ "$OPUS_USE" = true ]; then
|
||||
_packages="$_packages $OPUS_DEV"
|
||||
fi
|
||||
@@ -4458,6 +4582,18 @@ install_DEB() {
|
||||
PRINT ""
|
||||
compile_XR_OpenXR_SDK
|
||||
fi
|
||||
|
||||
PRINT ""
|
||||
if [ "$LEVEL_ZERO_SKIP" = true ]; then
|
||||
WARNING "Skipping Level Zero installation, as requested..."
|
||||
elif [ "$LEVEL_ZERO_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced Level Zero building, as requested..."
|
||||
compile_Level_Zero
|
||||
else
|
||||
# No package currently!
|
||||
PRINT ""
|
||||
compile_Level_Zero
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -4724,21 +4860,27 @@ install_RPM() {
|
||||
WEBP_USE=true
|
||||
fi
|
||||
|
||||
if [ "$WITH_ALL" = true ]; then
|
||||
VPX_DEV="libvpx-devel"
|
||||
check_package_version_ge_RPM $VPX_DEV $VPX_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
VPX_USE=true
|
||||
fi
|
||||
VPX_DEV="libvpx-devel"
|
||||
check_package_version_ge_RPM $VPX_DEV $VPX_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
VPX_USE=true
|
||||
fi
|
||||
|
||||
AOM_DEV="libaom-devel"
|
||||
check_package_version_ge_RPM $AOM_DEV $AOM_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
AOM_USE=true
|
||||
fi
|
||||
|
||||
OPUS_DEV="libopus-devel"
|
||||
check_package_version_ge_RPM $OPUS_DEV $OPUS_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
OPUS_USE=true
|
||||
fi
|
||||
|
||||
if [ "$WITH_ALL" = true ]; then
|
||||
PRINT ""
|
||||
install_packages_RPM libspnav-devel
|
||||
|
||||
OPUS_DEV="libopus-devel"
|
||||
check_package_version_ge_RPM $OPUS_DEV $OPUS_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
OPUS_USE=true
|
||||
fi
|
||||
fi
|
||||
|
||||
PRINT ""
|
||||
@@ -5123,6 +5265,9 @@ install_RPM() {
|
||||
if [ "$VPX_USE" = true ]; then
|
||||
_packages="$_packages $VPX_DEV"
|
||||
fi
|
||||
if [ "$AOM_USE" = true ]; then
|
||||
_packages="$_packages $AOM_DEV"
|
||||
fi
|
||||
if [ "$OPUS_USE" = true ]; then
|
||||
_packages="$_packages $OPUS_DEV"
|
||||
fi
|
||||
@@ -5144,6 +5289,18 @@ install_RPM() {
|
||||
# No package currently!
|
||||
compile_XR_OpenXR_SDK
|
||||
fi
|
||||
|
||||
PRINT ""
|
||||
if [ "$LEVEL_ZERO_SKIP" = true ]; then
|
||||
WARNING "Skipping Level Zero installation, as requested..."
|
||||
elif [ "$LEVEL_ZERO_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced Level Zero building, as requested..."
|
||||
compile_Level_Zero
|
||||
else
|
||||
# No package currently!
|
||||
PRINT ""
|
||||
compile_Level_Zero
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -5300,30 +5457,34 @@ install_ARCH() {
|
||||
WEBP_USE=true
|
||||
fi
|
||||
|
||||
if [ "$WITH_ALL" = true ]; then
|
||||
XVID_DEV="xvidcore"
|
||||
check_package_ARCH $XVID_DEV
|
||||
if [ $? -eq 0 ]; then
|
||||
XVID_USE=true
|
||||
fi
|
||||
XVID_DEV="xvidcore"
|
||||
check_package_ARCH $XVID_DEV
|
||||
if [ $? -eq 0 ]; then
|
||||
XVID_USE=true
|
||||
fi
|
||||
|
||||
MP3LAME_DEV="lame"
|
||||
check_package_ARCH $MP3LAME_DEV
|
||||
if [ $? -eq 0 ]; then
|
||||
MP3LAME_USE=true
|
||||
fi
|
||||
MP3LAME_DEV="lame"
|
||||
check_package_ARCH $MP3LAME_DEV
|
||||
if [ $? -eq 0 ]; then
|
||||
MP3LAME_USE=true
|
||||
fi
|
||||
|
||||
VPX_DEV="libvpx"
|
||||
check_package_version_ge_ARCH $VPX_DEV $VPX_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
VPX_USE=true
|
||||
fi
|
||||
VPX_DEV="libvpx"
|
||||
check_package_version_ge_ARCH $VPX_DEV $VPX_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
VPX_USE=true
|
||||
fi
|
||||
|
||||
OPUS_DEV="opus"
|
||||
check_package_version_ge_ARCH $OPUS_DEV $OPUS_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
OPUS_USE=true
|
||||
fi
|
||||
AOM_DEV="libaom"
|
||||
check_package_version_ge_ARCH $AOM_DEV $AOM_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
AOM_USE=true
|
||||
fi
|
||||
|
||||
OPUS_DEV="opus"
|
||||
check_package_version_ge_ARCH $OPUS_DEV $OPUS_VERSION_MIN
|
||||
if [ $? -eq 0 ]; then
|
||||
OPUS_USE=true
|
||||
fi
|
||||
|
||||
|
||||
@@ -5701,6 +5862,9 @@ install_ARCH() {
|
||||
if [ "$VPX_USE" = true ]; then
|
||||
_packages="$_packages $VPX_DEV"
|
||||
fi
|
||||
if [ "$AOM_USE" = true ]; then
|
||||
_packages="$_packages $AOM_DEV"
|
||||
fi
|
||||
if [ "$OPUS_USE" = true ]; then
|
||||
_packages="$_packages $OPUS_DEV"
|
||||
fi
|
||||
@@ -5721,6 +5885,18 @@ install_ARCH() {
|
||||
# No package currently!
|
||||
compile_XR_OpenXR_SDK
|
||||
fi
|
||||
|
||||
PRINT ""
|
||||
if [ "$LEVEL_ZERO_SKIP" = true ]; then
|
||||
WARNING "Skipping Level Zero installation, as requested..."
|
||||
elif [ "$LEVEL_ZERO_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced Level Zero building, as requested..."
|
||||
compile_Level_Zero
|
||||
else
|
||||
# No package currently!
|
||||
PRINT ""
|
||||
compile_Level_Zero
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -5895,6 +6071,14 @@ install_OTHER() {
|
||||
INFO "Forced OpenXR-SDK building, as requested..."
|
||||
compile_XR_OpenXR_SDK
|
||||
fi
|
||||
|
||||
PRINT ""
|
||||
if [ "$LEVEL_ZERO_SKIP" = true ]; then
|
||||
WARNING "Skipping Level Zero installation, as requested..."
|
||||
elif [ "$LEVEL_ZERO_FORCE_BUILD" = true ]; then
|
||||
INFO "Forced Level Zero building, as requested..."
|
||||
compile_Level_Zero
|
||||
fi
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
@@ -6109,12 +6293,6 @@ print_info() {
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$NO_SYSTEM_GLEW" = true ]; then
|
||||
_1="-D WITH_SYSTEM_GLEW=OFF"
|
||||
PRINT " $_1"
|
||||
_buildargs="$_buildargs $_1"
|
||||
fi
|
||||
|
||||
if [ "$FFMPEG_SKIP" = false ]; then
|
||||
_1="-D WITH_CODEC_FFMPEG=ON"
|
||||
PRINT " $_1"
|
||||
@@ -6137,6 +6315,18 @@ print_info() {
|
||||
fi
|
||||
fi
|
||||
|
||||
# Not yet available in Blender.
|
||||
#~ if [ "$LEVEL_ZERO_SKIP" = false ]; then
|
||||
#~ _1="-D WITH_LEVEL_ZERO=ON"
|
||||
#~ PRINT " $_1"
|
||||
#~ _buildargs="$_buildargs $_1"
|
||||
#~ if [ -d $INST/level-zero ]; then
|
||||
#~ _1="-D LEVEL_ZERO_ROOT_DIR=$INST/level-zero"
|
||||
#~ PRINT " $_1"
|
||||
#~ _buildargs="$_buildargs $_1"
|
||||
#~ fi
|
||||
#~ fi
|
||||
|
||||
PRINT ""
|
||||
PRINT "Or even simpler, just run (in your blender-source dir):"
|
||||
PRINT " make -j$THREADS BUILD_CMAKE_ARGS=\"$_buildargs\""
|
||||
|
@@ -1,26 +0,0 @@
|
||||
--- CmakeLists.txt.orig 2015-12-31 03:46:41 -0700
|
||||
+++ CMakeLists.txt 2016-04-01 13:28:33 -0600
|
||||
@@ -22,3 +22,10 @@
|
||||
|
||||
add_executable(testcuew cuewTest/cuewTest.c include/cuew.h)
|
||||
target_link_libraries(testcuew cuew ${CMAKE_DL_LIBS})
|
||||
+
|
||||
+install(TARGETS cuew
|
||||
+ LIBRARY DESTINATION lib COMPONENT libraries
|
||||
+ ARCHIVE DESTINATION lib/static COMPONENT libraries)
|
||||
+
|
||||
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/cuew.h
|
||||
+ DESTINATION include/)
|
||||
\ No newline at end of file
|
||||
--- src/cuew.c 2016-04-01 13:41:43 -0600
|
||||
+++ src/cuew.c 2016-04-01 13:41:11 -0600
|
||||
@@ -15,7 +15,9 @@
|
||||
*/
|
||||
|
||||
#ifdef _MSC_VER
|
||||
+#if _MSC_VER < 1900
|
||||
# define snprintf _snprintf
|
||||
+#endif
|
||||
# define popen _popen
|
||||
# define pclose _pclose
|
||||
# define _CRT_SECURE_NO_WARNINGS
|
54
build_files/build_environment/patches/dpcpp.diff
Normal file
54
build_files/build_environment/patches/dpcpp.diff
Normal file
@@ -0,0 +1,54 @@
|
||||
diff -Naur external_dpcpp.orig/sycl/source/CMakeLists.txt external_dpcpp/sycl/source/CMakeLists.txt
|
||||
--- external_dpcpp.orig/sycl/source/CMakeLists.txt 2022-05-20 04:19:45.067771362 +0000
|
||||
+++ external_dpcpp/sycl/source/CMakeLists.txt 2022-05-20 04:21:49.708025048 +0000
|
||||
@@ -66,10 +66,10 @@
|
||||
target_compile_options(${LIB_OBJ_NAME} PUBLIC
|
||||
-fvisibility=hidden -fvisibility-inlines-hidden)
|
||||
set(linker_script "${CMAKE_CURRENT_SOURCE_DIR}/ld-version-script.txt")
|
||||
- set(abi_linker_script "${CMAKE_CURRENT_SOURCE_DIR}/abi_replacements_linux.txt")
|
||||
- target_link_libraries(
|
||||
- ${LIB_NAME} PRIVATE "-Wl,${abi_linker_script}")
|
||||
- set_target_properties(${LIB_NAME} PROPERTIES LINK_DEPENDS ${abi_linker_script})
|
||||
+# set(abi_linker_script "${CMAKE_CURRENT_SOURCE_DIR}/abi_replacements_linux.txt")
|
||||
+# target_link_libraries(
|
||||
+# ${LIB_NAME} PRIVATE "-Wl,${abi_linker_script}")
|
||||
+# set_target_properties(${LIB_NAME} PROPERTIES LINK_DEPENDS ${abi_linker_script})
|
||||
target_link_libraries(
|
||||
${LIB_NAME} PRIVATE "-Wl,--version-script=${linker_script}")
|
||||
set_target_properties(${LIB_NAME} PROPERTIES LINK_DEPENDS ${linker_script})
|
||||
diff -Naur llvm-sycl-nightly-20220501.orig\opencl/CMakeLists.txt llvm-sycl-nightly-20220501\opencl/CMakeLists.txt
|
||||
--- llvm-sycl-nightly-20220501.orig/opencl/CMakeLists.txt 2022-04-29 13:47:11 -0600
|
||||
+++ llvm-sycl-nightly-20220501/opencl/CMakeLists.txt 2022-05-21 15:25:06 -0600
|
||||
@@ -11,6 +11,11 @@
|
||||
)
|
||||
endif()
|
||||
|
||||
+# Blender code below is determined to use FetchContent_Declare
|
||||
+# temporarily allow it (but feed it our downloaded tarball
|
||||
+# in the OpenCL_HEADERS variable
|
||||
+set(FETCHCONTENT_FULLY_DISCONNECTED OFF)
|
||||
+
|
||||
# Repo URLs
|
||||
|
||||
set(OCL_HEADERS_REPO
|
||||
@@ -77,5 +82,6 @@
|
||||
|
||||
FetchContent_MakeAvailable(ocl-icd)
|
||||
add_library(OpenCL-ICD ALIAS OpenCL)
|
||||
+set(FETCHCONTENT_FULLY_DISCONNECTED ON)
|
||||
|
||||
add_subdirectory(opencl-aot)
|
||||
diff -Naur llvm-sycl-nightly-20220208.orig/libdevice/cmake/modules/SYCLLibdevice.cmake llvm-sycl-nightly-20220208/libdevice/cmake/modules/SYCLLibdevice.cmake
|
||||
--- llvm-sycl-nightly-20220208.orig/libdevice/cmake/modules/SYCLLibdevice.cmake 2022-02-08 09:17:24 -0700
|
||||
+++ llvm-sycl-nightly-20220208/libdevice/cmake/modules/SYCLLibdevice.cmake 2022-05-24 11:35:51 -0600
|
||||
@@ -36,7 +36,9 @@
|
||||
add_custom_target(libsycldevice-obj)
|
||||
add_custom_target(libsycldevice-spv)
|
||||
|
||||
-add_custom_target(libsycldevice DEPENDS
|
||||
+# Blender: add ALL here otherwise this target will not build
|
||||
+# and cause an error due to missing files during the install phase.
|
||||
+add_custom_target(libsycldevice ALL DEPENDS
|
||||
libsycldevice-obj
|
||||
libsycldevice-spv)
|
||||
|
@@ -1,30 +1,37 @@
|
||||
diff -Naur orig/common/sys/platform.h external_embree/common/sys/platform.h
|
||||
--- orig/common/sys/platform.h 2020-05-13 23:08:53 -0600
|
||||
+++ external_embree/common/sys/platform.h 2020-06-13 17:40:26 -0600
|
||||
@@ -84,8 +84,8 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
diff -Naur org/kernels/rtcore_config.h.in embree-3.13.4/kernels/rtcore_config.h.in
|
||||
--- org/kernels/rtcore_config.h.in 2022-06-14 22:13:52 -0600
|
||||
+++ embree-3.13.4/kernels/rtcore_config.h.in 2022-06-24 15:20:12 -0600
|
||||
@@ -14,6 +14,7 @@
|
||||
#cmakedefine01 EMBREE_MIN_WIDTH
|
||||
#define RTC_MIN_WIDTH EMBREE_MIN_WIDTH
|
||||
|
||||
+#cmakedefine EMBREE_STATIC_LIB
|
||||
#cmakedefine EMBREE_API_NAMESPACE
|
||||
|
||||
#if defined(EMBREE_API_NAMESPACE)
|
||||
diff --git a/kernels/CMakeLists.txt b/kernels/CMakeLists.txt
|
||||
index 7c2f43d..106b1d5 100644
|
||||
--- a/kernels/CMakeLists.txt
|
||||
+++ b/kernels/CMakeLists.txt
|
||||
@@ -201,6 +201,12 @@ embree_files(EMBREE_LIBRARY_FILES_AVX512 ${AVX512})
|
||||
#message("AVX2: ${EMBREE_LIBRARY_FILES_AVX2}")
|
||||
#message("AVX512: ${EMBREE_LIBRARY_FILES_AVX512}")
|
||||
|
||||
#ifdef __WIN32__
|
||||
-#define dll_export __declspec(dllexport)
|
||||
-#define dll_import __declspec(dllimport)
|
||||
+#define dll_export
|
||||
+#define dll_import
|
||||
#else
|
||||
#define dll_export __attribute__ ((visibility ("default")))
|
||||
#define dll_import
|
||||
diff --git orig/common/tasking/CMakeLists.txt external_embree/common/tasking/CMakeLists.txt
|
||||
--- orig/common/tasking/CMakeLists.txt
|
||||
+++ external_embree/common/tasking/CMakeLists.txt
|
||||
@@ -27,7 +27,11 @@
|
||||
else()
|
||||
# If not found try getting older TBB via module (FindTBB.cmake)
|
||||
unset(TBB_DIR CACHE)
|
||||
- find_package(TBB 4.1 REQUIRED tbb)
|
||||
+ if (TBB_STATIC_LIB)
|
||||
+ find_package(TBB 4.1 REQUIRED tbb_static)
|
||||
+ else()
|
||||
+ find_package(TBB 4.1 REQUIRED tbb)
|
||||
+ endif()
|
||||
if (TBB_FOUND)
|
||||
TARGET_LINK_LIBRARIES(tasking PUBLIC TBB)
|
||||
TARGET_INCLUDE_DIRECTORIES(tasking PUBLIC "${TBB_INCLUDE_DIRS}")
|
||||
+# Bundle Neon2x into the main static library.
|
||||
+IF(EMBREE_ISA_NEON2X AND EMBREE_STATIC_LIB)
|
||||
+ LIST(APPEND EMBREE_LIBRARY_FILES ${EMBREE_LIBRARY_FILES_AVX2})
|
||||
+ LIST(REMOVE_DUPLICATES EMBREE_LIBRARY_FILES)
|
||||
+ENDIF()
|
||||
+
|
||||
# replaces all .cpp files with a dummy file that includes that .cpp file
|
||||
# this is to work around an ICC name mangling issue related to lambda functions under windows
|
||||
MACRO (CreateISADummyFiles list isa)
|
||||
@@ -277,7 +283,7 @@ IF (EMBREE_ISA_AVX AND EMBREE_LIBRARY_FILES_AVX)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
-IF (EMBREE_ISA_AVX2 AND EMBREE_LIBRARY_FILES_AVX2)
|
||||
+IF (EMBREE_ISA_AVX2 AND EMBREE_LIBRARY_FILES_AVX2 AND NOT (EMBREE_ISA_NEON2X AND EMBREE_STATIC_LIB))
|
||||
DISABLE_STACK_PROTECTOR_FOR_INTERSECTORS(${EMBREE_LIBRARY_FILES_AVX2})
|
||||
ADD_LIBRARY(embree_avx2 STATIC ${EMBREE_LIBRARY_FILES_AVX2})
|
||||
TARGET_LINK_LIBRARIES(embree_avx2 PRIVATE tasking)
|
||||
|
44
build_files/build_environment/patches/igc_opencl_clang.diff
Normal file
44
build_files/build_environment/patches/igc_opencl_clang.diff
Normal file
@@ -0,0 +1,44 @@
|
||||
diff -Naur external_igc_opencl_clang.orig/CMakeLists.txt external_igc_opencl_clang/CMakeLists.txt
|
||||
--- external_igc_opencl_clang.orig/CMakeLists.txt 2022-03-16 05:51:10 -0600
|
||||
+++ external_igc_opencl_clang/CMakeLists.txt 2022-05-23 10:40:09 -0600
|
||||
@@ -126,22 +126,24 @@
|
||||
)
|
||||
endif()
|
||||
|
||||
-
|
||||
- set(SPIRV_BASE_REVISION llvm_release_110)
|
||||
- set(TARGET_BRANCH "ocl-open-110")
|
||||
- get_filename_component(LLVM_MONOREPO_DIR ${LLVM_SOURCE_DIR} DIRECTORY)
|
||||
- set(LLVM_PATCHES_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/patches/llvm
|
||||
- ${CMAKE_CURRENT_SOURCE_DIR}/patches/clang)
|
||||
- apply_patches(${LLVM_MONOREPO_DIR}
|
||||
- "${LLVM_PATCHES_DIRS}"
|
||||
- ${LLVM_BASE_REVISION}
|
||||
- ${TARGET_BRANCH}
|
||||
- ret)
|
||||
- apply_patches(${SPIRV_SOURCE_DIR}
|
||||
- ${CMAKE_CURRENT_SOURCE_DIR}/patches/spirv
|
||||
- ${SPIRV_BASE_REVISION}
|
||||
- ${TARGET_BRANCH}
|
||||
- ret)
|
||||
+ #
|
||||
+ # Blender: Why apply these manually in igc.cmake
|
||||
+ #
|
||||
+ #set(SPIRV_BASE_REVISION llvm_release_110)
|
||||
+ #set(TARGET_BRANCH "ocl-open-110")
|
||||
+ #get_filename_component(LLVM_MONOREPO_DIR ${LLVM_SOURCE_DIR} DIRECTORY)
|
||||
+ #set(LLVM_PATCHES_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/patches/llvm
|
||||
+ # ${CMAKE_CURRENT_SOURCE_DIR}/patches/clang)
|
||||
+ #apply_patches(${LLVM_MONOREPO_DIR}
|
||||
+ # "${LLVM_PATCHES_DIRS}"
|
||||
+ # ${LLVM_BASE_REVISION}
|
||||
+ # ${TARGET_BRANCH}
|
||||
+ # ret)
|
||||
+ #apply_patches(${SPIRV_SOURCE_DIR}
|
||||
+ # ${CMAKE_CURRENT_SOURCE_DIR}/patches/spirv
|
||||
+ # ${SPIRV_BASE_REVISION}
|
||||
+ # ${TARGET_BRANCH}
|
||||
+ # ret)
|
||||
endif(NOT USE_PREBUILT_LLVM)
|
||||
|
||||
#
|
@@ -1,374 +0,0 @@
|
||||
Index: nanovdb/nanovdb/NanoVDB.h
|
||||
===================================================================
|
||||
--- a/nanovdb/nanovdb/NanoVDB.h (revision 62751)
|
||||
+++ b/nanovdb/nanovdb/NanoVDB.h (working copy)
|
||||
@@ -152,8 +152,8 @@
|
||||
|
||||
#endif // __CUDACC_RTC__
|
||||
|
||||
-#ifdef __CUDACC__
|
||||
-// Only define __hostdev__ when using NVIDIA CUDA compiler
|
||||
+#if defined(__CUDACC__) || defined(__HIP__)
|
||||
+// Only define __hostdev__ when using NVIDIA CUDA or HIP compiler
|
||||
#define __hostdev__ __host__ __device__
|
||||
#else
|
||||
#define __hostdev__
|
||||
@@ -461,7 +461,7 @@
|
||||
/// Maximum floating-point values
|
||||
template<typename T>
|
||||
struct Maximum;
|
||||
-#ifdef __CUDA_ARCH__
|
||||
+#if defined(__CUDA_ARCH__) || defined(__HIP__)
|
||||
template<>
|
||||
struct Maximum<int>
|
||||
{
|
||||
@@ -1006,10 +1006,10 @@
|
||||
using Vec3i = Vec3<int>;
|
||||
|
||||
/// @brief Return a single precision floating-point vector of this coordinate
|
||||
-Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
||||
+inline __hostdev__ Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
||||
|
||||
/// @brief Return a double precision floating-point vector of this coordinate
|
||||
-Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
||||
+inline __hostdev__ Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
||||
|
||||
// ----------------------------> Vec4 <--------------------------------------
|
||||
|
||||
@@ -1820,7 +1820,7 @@
|
||||
}; // Map
|
||||
|
||||
template<typename Mat4T>
|
||||
-void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
||||
+__hostdev__ void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
||||
{
|
||||
float * mf = mMatF, *vf = mVecF;
|
||||
float* mif = mInvMatF;
|
||||
@@ -2170,7 +2170,7 @@
|
||||
}; // Class Grid
|
||||
|
||||
template<typename TreeT>
|
||||
-int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
||||
+__hostdev__ int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
||||
{
|
||||
for (uint32_t i = 0, n = blindDataCount(); i < n; ++i)
|
||||
if (blindMetaData(i).mSemantic == semantic)
|
||||
@@ -2328,7 +2328,7 @@
|
||||
}; // Tree class
|
||||
|
||||
template<typename RootT>
|
||||
-void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
||||
+__hostdev__ void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
||||
{
|
||||
min = this->root().valueMin();
|
||||
max = this->root().valueMax();
|
||||
@@ -2336,7 +2336,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<typename NodeT>
|
||||
-const NodeT* Tree<RootT>::getNode(uint32_t i) const
|
||||
+__hostdev__ const NodeT* Tree<RootT>::getNode(uint32_t i) const
|
||||
{
|
||||
static_assert(is_same<TreeNodeT<NodeT::LEVEL>, NodeT>::value, "Tree::getNode: unvalid node type");
|
||||
NANOVDB_ASSERT(i < DataType::mCount[NodeT::LEVEL]);
|
||||
@@ -2345,7 +2345,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<int LEVEL>
|
||||
-const typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i) const
|
||||
+__hostdev__ const typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i) const
|
||||
{
|
||||
NANOVDB_ASSERT(i < DataType::mCount[LEVEL]);
|
||||
return reinterpret_cast<const TreeNodeT<LEVEL>*>(reinterpret_cast<const uint8_t*>(this) + DataType::mBytes[LEVEL]) + i;
|
||||
@@ -2353,7 +2353,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<typename NodeT>
|
||||
-NodeT* Tree<RootT>::getNode(uint32_t i)
|
||||
+__hostdev__ NodeT* Tree<RootT>::getNode(uint32_t i)
|
||||
{
|
||||
static_assert(is_same<TreeNodeT<NodeT::LEVEL>, NodeT>::value, "Tree::getNode: invalid node type");
|
||||
NANOVDB_ASSERT(i < DataType::mCount[NodeT::LEVEL]);
|
||||
@@ -2362,7 +2362,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<int LEVEL>
|
||||
-typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i)
|
||||
+__hostdev__ typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i)
|
||||
{
|
||||
NANOVDB_ASSERT(i < DataType::mCount[LEVEL]);
|
||||
return reinterpret_cast<TreeNodeT<LEVEL>*>(reinterpret_cast<uint8_t*>(this) + DataType::mBytes[LEVEL]) + i;
|
||||
@@ -2370,7 +2370,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<typename NodeT>
|
||||
-uint32_t Tree<RootT>::getNodeID(const NodeT& node) const
|
||||
+__hostdev__ uint32_t Tree<RootT>::getNodeID(const NodeT& node) const
|
||||
{
|
||||
static_assert(is_same<TreeNodeT<NodeT::LEVEL>, NodeT>::value, "Tree::getNodeID: invalid node type");
|
||||
const NodeT* first = reinterpret_cast<const NodeT*>(reinterpret_cast<const uint8_t*>(this) + DataType::mBytes[NodeT::LEVEL]);
|
||||
@@ -2380,7 +2380,7 @@
|
||||
|
||||
template<typename RootT>
|
||||
template<typename NodeT>
|
||||
-uint32_t Tree<RootT>::getLinearOffset(const NodeT& node) const
|
||||
+__hostdev__ uint32_t Tree<RootT>::getLinearOffset(const NodeT& node) const
|
||||
{
|
||||
return this->getNodeID(node) + DataType::mPFSum[NodeT::LEVEL];
|
||||
}
|
||||
@@ -3366,7 +3366,7 @@
|
||||
}; // LeafNode class
|
||||
|
||||
template<typename ValueT, typename CoordT, template<uint32_t> class MaskT, uint32_t LOG2DIM>
|
||||
-inline void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
||||
+inline __hostdev__ void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
||||
{
|
||||
static_assert(LOG2DIM == 3, "LeafNode::updateBBox: only supports LOGDIM = 3!");
|
||||
if (!this->isActive()) return;
|
||||
Index: nanovdb/nanovdb/util/SampleFromVoxels.h
|
||||
===================================================================
|
||||
--- a/nanovdb/nanovdb/util/SampleFromVoxels.h (revision 62751)
|
||||
+++ b/nanovdb/nanovdb/util/SampleFromVoxels.h (working copy)
|
||||
@@ -22,7 +22,7 @@
|
||||
#define NANOVDB_SAMPLE_FROM_VOXELS_H_HAS_BEEN_INCLUDED
|
||||
|
||||
// Only define __hostdev__ when compiling as NVIDIA CUDA
|
||||
-#ifdef __CUDACC__
|
||||
+#if defined(__CUDACC__) || defined(__HIP__)
|
||||
#define __hostdev__ __host__ __device__
|
||||
#else
|
||||
#include <cmath> // for floor
|
||||
@@ -136,7 +136,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
||||
{
|
||||
const CoordT ijk = Round<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -147,7 +147,7 @@
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
||||
{
|
||||
if (ijk != mPos) {
|
||||
mPos = ijk;
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
||||
{
|
||||
return mAcc.getValue(Round<CoordT>(xyz));
|
||||
}
|
||||
@@ -195,7 +195,7 @@
|
||||
}; // TrilinearSamplerBase
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
||||
+__hostdev__ void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
||||
{
|
||||
v[0][0][0] = mAcc.getValue(ijk); // i, j, k
|
||||
|
||||
@@ -224,7 +224,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
{
|
||||
#if 0
|
||||
auto lerp = [](ValueT a, ValueT b, ValueT w){ return fma(w, b-a, a); };// = w*(b-a) + a
|
||||
@@ -239,7 +239,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
{
|
||||
static_assert(std::is_floating_point<ValueT>::value, "TrilinearSampler::gradient requires a floating-point type");
|
||||
#if 0
|
||||
@@ -270,7 +270,7 @@
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
||||
{
|
||||
static_assert(std::is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
||||
const bool less = v[0][0][0] < ValueT(0);
|
||||
@@ -363,7 +363,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mVal);
|
||||
@@ -370,7 +370,7 @@
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
||||
{
|
||||
return ijk == mPos ? mVal[0][0][0] : BaseT::mAcc.getValue(ijk);
|
||||
}
|
||||
@@ -377,7 +377,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::gradient(xyz, mVal);
|
||||
@@ -393,7 +393,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -406,7 +406,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -418,7 +418,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
auto lerp = [](ValueT a, ValueT b, RealT w) { return a + ValueT(w) * (b - a); };
|
||||
|
||||
@@ -463,7 +463,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
||||
+inline __hostdev__ Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -473,7 +473,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -510,7 +510,7 @@
|
||||
}; // TriquadraticSamplerBase
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
||||
+__hostdev__ void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
||||
{
|
||||
CoordT p(ijk[0] - 1, 0, 0);
|
||||
for (int dx = 0; dx < 3; ++dx, ++p[0]) {
|
||||
@@ -526,7 +526,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
||||
+__hostdev__ typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
||||
{
|
||||
auto kernel = [](const ValueT* value, double weight)->ValueT {
|
||||
return weight * (weight * (0.5f * (value[0] + value[2]) - value[1]) +
|
||||
@@ -545,7 +545,7 @@
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
||||
+__hostdev__ bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
||||
{
|
||||
static_assert(std::is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
||||
const bool less = v[0][0][0] < ValueT(0);
|
||||
@@ -624,7 +624,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mVal);
|
||||
@@ -631,7 +631,7 @@
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
||||
{
|
||||
return ijk == mPos ? mVal[1][1][1] : BaseT::mAcc.getValue(ijk);
|
||||
}
|
||||
@@ -646,7 +646,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -657,7 +657,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[3][3][3];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -667,7 +667,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[3][3][3];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -710,7 +710,7 @@
|
||||
}; // TricubicSampler
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
||||
+__hostdev__ void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
||||
{
|
||||
auto fetch = [&](int i, int j, int k) -> ValueT& { return C[((i + 1) << 4) + ((j + 1) << 2) + k + 1]; };
|
||||
|
||||
@@ -929,7 +929,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mC);
|
||||
@@ -937,7 +937,7 @@
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
@@ -99,3 +99,321 @@ diff -Naur openvdb-8.0.0/openvdb/openvdb/version.rc.in openvdb/openvdb/openvdb/v
|
||||
+
|
||||
+ END
|
||||
+END
|
||||
diff --git a/nanovdb/nanovdb/NanoVDB.h b/nanovdb/nanovdb/NanoVDB.h
|
||||
index cc2e54b77..703d2eabc 100644
|
||||
--- a/nanovdb/nanovdb/NanoVDB.h
|
||||
+++ b/nanovdb/nanovdb/NanoVDB.h
|
||||
@@ -161,8 +161,8 @@ typedef unsigned long long uint64_t;
|
||||
|
||||
#endif // __CUDACC_RTC__
|
||||
|
||||
-#ifdef __CUDACC__
|
||||
-// Only define __hostdev__ when using NVIDIA CUDA compiler
|
||||
+#if defined(__CUDACC__) || defined(__HIP__)
|
||||
+// Only define __hostdev__ when using NVIDIA CUDA or HIP compiler
|
||||
#define __hostdev__ __host__ __device__
|
||||
#else
|
||||
#define __hostdev__
|
||||
@@ -611,7 +611,7 @@ struct Delta<double>
|
||||
/// Maximum floating-point values
|
||||
template<typename T>
|
||||
struct Maximum;
|
||||
-#ifdef __CUDA_ARCH__
|
||||
+#if defined(__CUDA_ARCH__) || defined(__HIP__)
|
||||
template<>
|
||||
struct Maximum<int>
|
||||
{
|
||||
@@ -1176,10 +1176,10 @@ using Vec3f = Vec3<float>;
|
||||
using Vec3i = Vec3<int>;
|
||||
|
||||
/// @brief Return a single precision floating-point vector of this coordinate
|
||||
-Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
||||
+__hostdev__ inline Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
||||
|
||||
/// @brief Return a double precision floating-point vector of this coordinate
|
||||
-Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
||||
+__hostdev__ inline Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
||||
|
||||
// ----------------------------> Vec4 <--------------------------------------
|
||||
|
||||
@@ -2042,7 +2042,7 @@ struct Map
|
||||
}; // Map
|
||||
|
||||
template<typename Mat4T>
|
||||
-void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
||||
+__hostdev__ void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
||||
{
|
||||
float * mf = mMatF, *vf = mVecF;
|
||||
float* mif = mInvMatF;
|
||||
@@ -2486,7 +2486,7 @@ class Grid : private GridData
|
||||
}; // Class Grid
|
||||
|
||||
template<typename TreeT>
|
||||
-int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
||||
+__hostdev__ int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
||||
{
|
||||
for (uint32_t i = 0, n = this->blindDataCount(); i < n; ++i)
|
||||
if (this->blindMetaData(i).mSemantic == semantic)
|
||||
@@ -2671,7 +2671,7 @@ class Tree : private TreeData<RootT::LEVEL>
|
||||
}; // Tree class
|
||||
|
||||
template<typename RootT>
|
||||
-void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
||||
+__hostdev__ void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
||||
{
|
||||
min = this->root().minimum();
|
||||
max = this->root().maximum();
|
||||
@@ -3880,7 +3880,7 @@ class LeafNode : private LeafData<BuildT, CoordT, MaskT, Log2Dim>
|
||||
}; // LeafNode class
|
||||
|
||||
template<typename ValueT, typename CoordT, template<uint32_t> class MaskT, uint32_t LOG2DIM>
|
||||
-inline void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
||||
+__hostdev__ inline void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
||||
{
|
||||
static_assert(LOG2DIM == 3, "LeafNode::updateBBox: only supports LOGDIM = 3!");
|
||||
if (!this->isActive()) return;
|
||||
diff --git a/nanovdb/nanovdb/util/SampleFromVoxels.h b/nanovdb/nanovdb/util/SampleFromVoxels.h
|
||||
index 852123dac..e779d66cf 100644
|
||||
--- a/nanovdb/nanovdb/util/SampleFromVoxels.h
|
||||
+++ b/nanovdb/nanovdb/util/SampleFromVoxels.h
|
||||
@@ -22,7 +22,7 @@
|
||||
#define NANOVDB_SAMPLE_FROM_VOXELS_H_HAS_BEEN_INCLUDED
|
||||
|
||||
// Only define __hostdev__ when compiling as NVIDIA CUDA
|
||||
-#ifdef __CUDACC__
|
||||
+#if defined(__CUDACC__) || defined(__HIP__)
|
||||
#define __hostdev__ __host__ __device__
|
||||
#else
|
||||
#include <cmath> // for floor
|
||||
@@ -136,7 +136,7 @@ class SampleFromVoxels<TreeOrAccT, 0, false>
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
||||
{
|
||||
const CoordT ijk = Round<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -147,7 +147,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
||||
{
|
||||
if (ijk != mPos) {
|
||||
mPos = ijk;
|
||||
@@ -158,7 +158,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
||||
{
|
||||
return mAcc.getValue(Round<CoordT>(xyz));
|
||||
}
|
||||
@@ -195,7 +195,7 @@ class TrilinearSampler
|
||||
}; // TrilinearSamplerBase
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
||||
+__hostdev__ void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
||||
{
|
||||
v[0][0][0] = mAcc.getValue(ijk); // i, j, k
|
||||
|
||||
@@ -224,7 +224,7 @@ void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) co
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
{
|
||||
#if 0
|
||||
auto lerp = [](ValueT a, ValueT b, ValueT w){ return fma(w, b-a, a); };// = w*(b-a) + a
|
||||
@@ -239,7 +239,7 @@ typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||
{
|
||||
static_assert(is_floating_point<ValueT>::value, "TrilinearSampler::gradient requires a floating-point type");
|
||||
#if 0
|
||||
@@ -270,7 +270,7 @@ Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(con
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
||||
+__hostdev__ bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
||||
{
|
||||
static_assert(is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
||||
const bool less = v[0][0][0] < ValueT(0);
|
||||
@@ -363,21 +363,21 @@ class SampleFromVoxels<TreeOrAccT, 1, true> : public TrilinearSampler<TreeOrAccT
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mVal);
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
||||
{
|
||||
return ijk == mPos ? mVal[0][0][0] : BaseT::mAcc.getValue(ijk);
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::gradient(xyz, mVal);
|
||||
@@ -393,7 +393,7 @@ __hostdev__ bool SampleFromVoxels<TreeOrAccT, 1, true>::zeroCrossing(Vec3T<RealT
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -406,7 +406,7 @@ void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -418,7 +418,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator(
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
auto lerp = [](ValueT a, ValueT b, RealT w) { return a + ValueT(w) * (b - a); };
|
||||
|
||||
@@ -463,7 +463,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator(
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -473,7 +473,7 @@ inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, fal
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[2][2][2];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -510,7 +510,7 @@ class TriquadraticSampler
|
||||
}; // TriquadraticSamplerBase
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
||||
+__hostdev__ void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
||||
{
|
||||
CoordT p(ijk[0] - 1, 0, 0);
|
||||
for (int dx = 0; dx < 3; ++dx, ++p[0]) {
|
||||
@@ -526,7 +526,7 @@ void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
||||
+__hostdev__ typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
||||
{
|
||||
auto kernel = [](const ValueT* value, double weight)->ValueT {
|
||||
return weight * (weight * (0.5f * (value[0] + value[2]) - value[1]) +
|
||||
@@ -545,7 +545,7 @@ typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
||||
+__hostdev__ bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
||||
{
|
||||
static_assert(is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
||||
const bool less = v[0][0][0] < ValueT(0);
|
||||
@@ -624,14 +624,14 @@ class SampleFromVoxels<TreeOrAccT, 2, true> : public TriquadraticSampler<TreeOrA
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mVal);
|
||||
}
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
||||
{
|
||||
return ijk == mPos ? mVal[1][1][1] : BaseT::mAcc.getValue(ijk);
|
||||
}
|
||||
@@ -646,7 +646,7 @@ __hostdev__ bool SampleFromVoxels<TreeOrAccT, 2, true>::zeroCrossing(Vec3T<RealT
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
@@ -657,7 +657,7 @@ void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[3][3][3];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -667,7 +667,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator(
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||
{
|
||||
ValueT val[3][3][3];
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
@@ -710,7 +710,7 @@ class TricubicSampler
|
||||
}; // TricubicSampler
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
-void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
||||
+__hostdev__ void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
||||
{
|
||||
auto fetch = [&](int i, int j, int k) -> ValueT& { return C[((i + 1) << 4) + ((j + 1) << 2) + k + 1]; };
|
||||
|
||||
@@ -929,7 +929,7 @@ class SampleFromVoxels<TreeOrAccT, 3, true> : public TricubicSampler<TreeOrAccT>
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
||||
{
|
||||
this->cache(xyz);
|
||||
return BaseT::sample(xyz, mC);
|
||||
@@ -937,7 +937,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()
|
||||
|
||||
template<typename TreeOrAccT>
|
||||
template<typename RealT, template<typename...> class Vec3T>
|
||||
-void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
||||
{
|
||||
CoordT ijk = Floor<CoordT>(xyz);
|
||||
if (ijk != mPos) {
|
||||
|
||||
|
@@ -25,3 +25,78 @@ diff -Naur usd_orig/cmake/defaults/msvcdefaults.cmake external_usd/cmake/default
|
||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /MP")
|
||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Gm-")
|
||||
|
||||
diff --git a/pxr/base/work/singularTask.h b/pxr/base/work/singularTask.h
|
||||
--- a/pxr/base/work/singularTask.h
|
||||
+++ b/pxr/base/work/singularTask.h
|
||||
@@ -120,7 +120,7 @@
|
||||
// case we go again to ensure the task can do whatever it
|
||||
// was awakened to do. Once we successfully take the count
|
||||
// to zero, we stop.
|
||||
- size_t old = count;
|
||||
+ std::size_t old = count;
|
||||
do { _fn(); } while (
|
||||
!count.compare_exchange_strong(old, 0));
|
||||
});
|
||||
|
||||
diff --git a/pxr/usd/sdr/shaderMetadataHelpers.h b/pxr/usd/sdr/shaderMetadataHelpers.h
|
||||
--- a/pxr/usd/sdr/shaderMetadataHelpers.h
|
||||
+++ b/pxr/usd/sdr/shaderMetadataHelpers.h
|
||||
@@ -32,6 +32,8 @@
|
||||
#include "pxr/base/tf/token.h"
|
||||
#include "pxr/usd/sdr/declare.h"
|
||||
|
||||
+#include <limits>
|
||||
+
|
||||
PXR_NAMESPACE_OPEN_SCOPE
|
||||
|
||||
/// \namespace ShaderMetadataHelpers
|
||||
|
||||
diff --git a/pxr/base/arch/timing.h b/pxr/base/arch/timing.h
|
||||
index 517561f..fda5a1f 100644
|
||||
--- a/pxr/base/arch/timing.h
|
||||
+++ b/pxr/base/arch/timing.h
|
||||
@@ -91,6 +91,10 @@ ArchGetTickTime()
|
||||
inline uint64_t
|
||||
ArchGetStartTickTime()
|
||||
{
|
||||
+ // BLENDER: avoid using rdtsc instruction that is not supported on older CPUs.
|
||||
+ return ArchGetTickTime();
|
||||
+
|
||||
+#if 0
|
||||
uint64_t t;
|
||||
#if defined (ARCH_OS_DARWIN)
|
||||
return ArchGetTickTime();
|
||||
@@ -123,6 +127,7 @@ ArchGetStartTickTime()
|
||||
#error "Unsupported architecture."
|
||||
#endif
|
||||
return t;
|
||||
+#endif
|
||||
}
|
||||
|
||||
/// Get a "stop" tick time for measuring an interval of time. See
|
||||
@@ -132,6 +137,10 @@ ArchGetStartTickTime()
|
||||
inline uint64_t
|
||||
ArchGetStopTickTime()
|
||||
{
|
||||
+ // BLENDER: avoid using rdtsc instruction that is not supported on older CPUs.
|
||||
+ return ArchGetTickTime();
|
||||
+
|
||||
+#if 0
|
||||
uint64_t t;
|
||||
#if defined (ARCH_OS_DARWIN)
|
||||
return ArchGetTickTime();
|
||||
@@ -162,11 +171,11 @@ ArchGetStopTickTime()
|
||||
#error "Unsupported architecture."
|
||||
#endif
|
||||
return t;
|
||||
+#endif
|
||||
}
|
||||
|
||||
-#if defined (doxygen) || \
|
||||
- (!defined(ARCH_OS_DARWIN) && defined(ARCH_CPU_INTEL) && \
|
||||
- (defined(ARCH_COMPILER_CLANG) || defined(ARCH_COMPILER_GCC)))
|
||||
+// BLENDER: avoid using rdtsc instruction that is not supported on older CPUs.
|
||||
+#if 0
|
||||
|
||||
/// A simple timer class for measuring an interval of time using the
|
||||
/// ArchTickTimer facilities.
|
||||
|
11
build_files/build_environment/patches/vpx_windows.diff
Normal file
11
build_files/build_environment/patches/vpx_windows.diff
Normal file
@@ -0,0 +1,11 @@
|
||||
diff -Naur orig/configure external_vpx/configure
|
||||
--- orig/configure 2022-07-06 09:22:04 -0600
|
||||
+++ external_vpx/configure 2022-07-06 09:24:12 -0600
|
||||
@@ -270,7 +270,6 @@
|
||||
HAVE_LIST="
|
||||
${ARCH_EXT_LIST}
|
||||
vpx_ports
|
||||
- pthread_h
|
||||
unistd_h
|
||||
"
|
||||
EXPERIMENT_LIST="
|
@@ -48,10 +48,13 @@ if "%4" == "nobuild" set dobuild=0
|
||||
|
||||
REM If Python is be available certain deps may try to
|
||||
REM to use this over the version we build, to prevent that
|
||||
REM make sure python is NOT in the path
|
||||
for %%X in (python.exe) do (set PYTHON=%%~$PATH:X)
|
||||
if EXIST "%PYTHON%" (
|
||||
echo PYTHON found at %PYTHON% dependencies cannot be build with python available in the path
|
||||
REM make sure pythonw is NOT in the path. We look for pythonw.exe
|
||||
REM since windows apparently ships a python.exe that just opens up
|
||||
REM the windows store but does not ship any actual python files that
|
||||
REM could cause issues.
|
||||
for %%X in (pythonw.exe) do (set PYTHONW=%%~$PATH:X)
|
||||
if EXIST "%PYTHONW%" (
|
||||
echo PYTHON found at %PYTHONW% dependencies cannot be build with python available in the path
|
||||
goto exit
|
||||
)
|
||||
|
||||
@@ -107,8 +110,8 @@ echo %DATE% %TIME% : Start > %StatusFile%
|
||||
cmake -G "%CMAKE_BUILDER%" %CMAKE_BUILD_ARCH% -Thost=x64 %SOURCE_DIR% -DPACKAGE_DIR=%BUILD_DIR%/packages -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DBUILD_MODE=Release -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/
|
||||
echo %DATE% %TIME% : Release Configuration done >> %StatusFile%
|
||||
if "%dobuild%" == "1" (
|
||||
msbuild /m "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal
|
||||
msbuild /maxcpucount:1 /m "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal
|
||||
msbuild /m:1 "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal
|
||||
msbuild /m:1 "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal
|
||||
echo %DATE% %TIME% : Release Build done >> %StatusFile%
|
||||
cmake --build . --target Harvest_Release_Results > Harvest_Release.txt
|
||||
)
|
||||
@@ -120,8 +123,8 @@ cd %Staging%\%BuildDir%%ARCH%D
|
||||
cmake -G "%CMAKE_BUILDER%" %CMAKE_BUILD_ARCH% -Thost=x64 %SOURCE_DIR% -DPACKAGE_DIR=%BUILD_DIR%/packages -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DCMAKE_BUILD_TYPE=Debug -DBUILD_MODE=Debug -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/ %CMAKE_DEBUG_OPTIONS%
|
||||
echo %DATE% %TIME% : Debug Configuration done >> %StatusFile%
|
||||
if "%dobuild%" == "1" (
|
||||
msbuild /m "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal
|
||||
msbuild /maxcpucount:1 /m "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal
|
||||
msbuild /m:1 "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal
|
||||
msbuild /m:1 "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal
|
||||
echo %DATE% %TIME% : Debug Build done >> %StatusFile%
|
||||
cmake --build . --target Harvest_Debug_Results> Harvest_Debug.txt
|
||||
)
|
||||
|
56
build_files/cmake/Modules/FindLevelZero.cmake
Normal file
56
build_files/cmake/Modules/FindLevelZero.cmake
Normal file
@@ -0,0 +1,56 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright 2021-2022 Intel Corporation
|
||||
|
||||
# - Find Level Zero library
|
||||
# Find Level Zero headers and libraries needed by oneAPI implementation
|
||||
# This module defines
|
||||
# LEVEL_ZERO_LIBRARY, libraries to link against in order to use L0.
|
||||
# LEVEL_ZERO_INCLUDE_DIR, directories where L0 headers can be found.
|
||||
# LEVEL_ZERO_ROOT_DIR, The base directory to search for L0 files.
|
||||
# This can also be an environment variable.
|
||||
# LEVEL_ZERO_FOUND, If false, then don't try to use L0.
|
||||
|
||||
IF(NOT LEVEL_ZERO_ROOT_DIR AND NOT $ENV{LEVEL_ZERO_ROOT_DIR} STREQUAL "")
|
||||
SET(LEVEL_ZERO_ROOT_DIR $ENV{LEVEL_ZERO_ROOT_DIR})
|
||||
ENDIF()
|
||||
|
||||
SET(_level_zero_search_dirs
|
||||
${LEVEL_ZERO_ROOT_DIR}
|
||||
/usr/lib
|
||||
/usr/local/lib
|
||||
)
|
||||
|
||||
FIND_LIBRARY(_LEVEL_ZERO_LIBRARY
|
||||
NAMES
|
||||
ze_loader
|
||||
HINTS
|
||||
${_level_zero_search_dirs}
|
||||
PATH_SUFFIXES
|
||||
lib64 lib
|
||||
)
|
||||
|
||||
FIND_PATH(_LEVEL_ZERO_INCLUDE_DIR
|
||||
NAMES
|
||||
level_zero/ze_api.h
|
||||
HINTS
|
||||
${_level_zero_search_dirs}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LevelZero DEFAULT_MSG _LEVEL_ZERO_LIBRARY _LEVEL_ZERO_INCLUDE_DIR)
|
||||
|
||||
IF(LevelZero_FOUND)
|
||||
SET(LEVEL_ZERO_LIBRARY ${_LEVEL_ZERO_LIBRARY})
|
||||
SET(LEVEL_ZERO_INCLUDE_DIR ${_LEVEL_ZERO_INCLUDE_DIR} ${_LEVEL_ZERO_INCLUDE_PARENT_DIR})
|
||||
SET(LEVEL_ZERO_FOUND TRUE)
|
||||
ELSE()
|
||||
SET(LEVEL_ZERO_FOUND FALSE)
|
||||
ENDIF()
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
LEVEL_ZERO_LIBRARY
|
||||
LEVEL_ZERO_INCLUDE_DIR
|
||||
)
|
@@ -175,7 +175,9 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonLibsUnix DEFAULT_MSG
|
||||
IF(PYTHONLIBSUNIX_FOUND)
|
||||
# Assign cache items
|
||||
SET(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR} ${PYTHON_INCLUDE_CONFIG_DIR})
|
||||
SET(PYTHON_LIBRARIES ${PYTHON_LIBRARY})
|
||||
IF(NOT WITH_PYTHON_MODULE)
|
||||
SET(PYTHON_LIBRARIES ${PYTHON_LIBRARY})
|
||||
ENDIF()
|
||||
|
||||
FIND_FILE(PYTHON_SITE_PACKAGES
|
||||
NAMES
|
||||
|
88
build_files/cmake/Modules/FindSYCL.cmake
Normal file
88
build_files/cmake/Modules/FindSYCL.cmake
Normal file
@@ -0,0 +1,88 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright 2021-2022 Intel Corporation
|
||||
|
||||
# - Find SYCL library
|
||||
# Find the native SYCL header and libraries needed by oneAPI implementation
|
||||
# This module defines
|
||||
# SYCL_COMPILER, compiler which will be used for compilation of SYCL code
|
||||
# SYCL_LIBRARY, libraries to link against in order to use SYCL.
|
||||
# SYCL_INCLUDE_DIR, directories where SYCL headers can be found
|
||||
# SYCL_ROOT_DIR, The base directory to search for SYCL files.
|
||||
# This can also be an environment variable.
|
||||
# SYCL_FOUND, If false, then don't try to use SYCL.
|
||||
|
||||
IF(NOT SYCL_ROOT_DIR AND NOT $ENV{SYCL_ROOT_DIR} STREQUAL "")
|
||||
SET(SYCL_ROOT_DIR $ENV{SYCL_ROOT_DIR})
|
||||
ENDIF()
|
||||
|
||||
SET(_sycl_search_dirs
|
||||
${SYCL_ROOT_DIR}
|
||||
/usr/lib
|
||||
/usr/local/lib
|
||||
/opt/intel/oneapi/compiler/latest/linux/
|
||||
C:/Program\ Files\ \(x86\)/Intel/oneAPI/compiler/latest/windows
|
||||
)
|
||||
|
||||
# Find DPC++ compiler.
|
||||
# Since the compiler name is possibly conflicting with the system-wide
|
||||
# CLang start with looking for either dpcpp or clang binary in the given
|
||||
# list of search paths only. If that fails, try to look for a system-wide
|
||||
# dpcpp binary.
|
||||
FIND_PROGRAM(SYCL_COMPILER
|
||||
NAMES
|
||||
dpcpp
|
||||
clang++
|
||||
HINTS
|
||||
${_sycl_search_dirs}
|
||||
PATH_SUFFIXES
|
||||
bin
|
||||
NO_CMAKE_FIND_ROOT_PATH
|
||||
NAMES_PER_DIR
|
||||
)
|
||||
|
||||
# NOTE: No clang++ here so that we do not pick up a system-wide CLang
|
||||
# compiler.
|
||||
if(NOT SYCL_COMPILER)
|
||||
FIND_PROGRAM(SYCL_COMPILER
|
||||
NAMES
|
||||
dpcpp
|
||||
HINTS
|
||||
${_sycl_search_dirs}
|
||||
PATH_SUFFIXES
|
||||
bin
|
||||
)
|
||||
endif()
|
||||
|
||||
FIND_LIBRARY(SYCL_LIBRARY
|
||||
NAMES
|
||||
sycl
|
||||
HINTS
|
||||
${_sycl_search_dirs}
|
||||
PATH_SUFFIXES
|
||||
lib64 lib
|
||||
)
|
||||
|
||||
FIND_PATH(SYCL_INCLUDE_DIR
|
||||
NAMES
|
||||
CL/sycl.hpp
|
||||
HINTS
|
||||
${_sycl_search_dirs}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
include/sycl
|
||||
)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SYCL DEFAULT_MSG SYCL_LIBRARY SYCL_INCLUDE_DIR)
|
||||
|
||||
IF(SYCL_FOUND)
|
||||
get_filename_component(_SYCL_INCLUDE_PARENT_DIR ${SYCL_INCLUDE_DIR} DIRECTORY)
|
||||
SET(SYCL_INCLUDE_DIR ${SYCL_INCLUDE_DIR} ${_SYCL_INCLUDE_PARENT_DIR})
|
||||
ELSE()
|
||||
SET(SYCL_SYCL_FOUND FALSE)
|
||||
ENDIF()
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
_SYCL_INCLUDE_PARENT_DIR
|
||||
)
|
@@ -64,6 +64,7 @@ ENDIF()
|
||||
MARK_AS_ADVANCED(
|
||||
USD_INCLUDE_DIR
|
||||
USD_LIBRARY_DIR
|
||||
USD_LIBRARY
|
||||
)
|
||||
|
||||
UNSET(_usd_SEARCH_DIRS)
|
||||
|
@@ -74,4 +74,9 @@ ENDIF()
|
||||
MARK_AS_ADVANCED(
|
||||
WEBP_INCLUDE_DIR
|
||||
WEBP_LIBRARY_DIR
|
||||
|
||||
# Generated names.
|
||||
WEBP_WEBPDEMUX_LIBRARY
|
||||
WEBP_WEBPMUX_LIBRARY
|
||||
WEBP_WEBP_LIBRARY
|
||||
)
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
"""
|
||||
Example linux usage
|
||||
python3 ~/blender-git/blender/build_files/cmake/cmake_netbeans_project.py ~/blender-git/cmake
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
r"""
|
||||
Example Linux usage:
|
||||
python ~/blender-git/blender/build_files/cmake/cmake_qtcreator_project.py --build-dir ~/blender-git/cmake
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
import project_source_info
|
||||
import subprocess
|
||||
import sys
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
import project_source_info
|
||||
import subprocess
|
||||
import sys
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
CHECKER_IGNORE_PREFIX = [
|
||||
"extern",
|
||||
"intern/moto",
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
CHECKER_IGNORE_PREFIX = [
|
||||
"extern",
|
||||
"intern/moto",
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
CHECKER_IGNORE_PREFIX = [
|
||||
"extern",
|
||||
"intern/moto",
|
||||
|
@@ -37,6 +37,9 @@ set(WITH_IMAGE_TIFF OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IMAGE_WEBP OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_INPUT_NDOF OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_INTERNATIONAL OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IO_STL OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IO_WAVEFRONT_OBJ OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_IO_GPENCIL OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_JACK OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_LIBMV OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_LLVM OFF CACHE BOOL "" FORCE)
|
||||
|
@@ -70,7 +70,7 @@ if(NOT WIN32)
|
||||
set(WITH_JACK ON CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
if(WIN32)
|
||||
set(WITH_WASAPI ON CACHE BOOL "" FORCE)
|
||||
set(WITH_WASAPI ON CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
|
||||
@@ -86,4 +86,8 @@ if(NOT APPLE)
|
||||
set(WITH_CYCLES_CUDA_BINARIES ON CACHE BOOL "" FORCE)
|
||||
set(WITH_CYCLES_CUBIN_COMPILER OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_CYCLES_HIP_BINARIES ON CACHE BOOL "" FORCE)
|
||||
set(WITH_CYCLES_DEVICE_ONEAPI ON CACHE BOOL "" FORCE)
|
||||
|
||||
# Disable AoT kernels compilations until buildbot can deliver them in a reasonable time.
|
||||
set(WITH_CYCLES_ONEAPI_BINARIES OFF CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
|
@@ -162,6 +162,9 @@ if(WITH_CODEC_FFMPEG)
|
||||
mp3lame ogg opus swresample swscale
|
||||
theora theoradec theoraenc vorbis vorbisenc
|
||||
vorbisfile vpx x264 xvidcore)
|
||||
if(EXISTS ${LIBDIR}/ffmpeg/lib/libaom.a)
|
||||
list(APPEND FFMPEG_FIND_COMPONENTS aom)
|
||||
endif()
|
||||
find_package(FFmpeg)
|
||||
endif()
|
||||
|
||||
@@ -215,7 +218,12 @@ if(WITH_SDL)
|
||||
find_package(SDL2)
|
||||
set(SDL_INCLUDE_DIR ${SDL2_INCLUDE_DIRS})
|
||||
set(SDL_LIBRARY ${SDL2_LIBRARIES})
|
||||
string(APPEND PLATFORM_LINKFLAGS " -framework ForceFeedback -framework GameController -framework CoreHaptics")
|
||||
string(APPEND PLATFORM_LINKFLAGS " -framework ForceFeedback -framework GameController")
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
# The minimum macOS version of the libraries makes it so this is included in SDL on arm64
|
||||
# but not x86_64.
|
||||
string(APPEND PLATFORM_LINKFLAGS " -framework CoreHaptics")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(PNG_ROOT ${LIBDIR}/png)
|
||||
@@ -462,8 +470,9 @@ string(APPEND CMAKE_CXX_FLAGS " -ftemplate-depth=1024")
|
||||
|
||||
# Avoid conflicts with Luxrender, and other plug-ins that may use the same
|
||||
# libraries as Blender with a different version or build options.
|
||||
set(PLATFORM_SYMBOLS_MAP ${CMAKE_SOURCE_DIR}/source/creator/symbols_apple.map)
|
||||
string(APPEND PLATFORM_LINKFLAGS
|
||||
" -Wl,-unexported_symbols_list,'${CMAKE_SOURCE_DIR}/source/creator/osx_locals.map'"
|
||||
" -Wl,-unexported_symbols_list,'${PLATFORM_SYMBOLS_MAP}'"
|
||||
)
|
||||
|
||||
string(APPEND CMAKE_CXX_FLAGS " -stdlib=libc++")
|
||||
|
@@ -25,6 +25,7 @@ if(UNIX AND
|
||||
unset_cache_variables("^PNG")
|
||||
unset_cache_variables("^USD")
|
||||
unset_cache_variables("^WEBP")
|
||||
unset_cache_variables("^NANOVDB")
|
||||
endif()
|
||||
|
||||
# Automatically set WebP on/off depending if libraries are available.
|
||||
@@ -35,3 +36,11 @@ if(EXISTS ${LIBDIR}/webp)
|
||||
else()
|
||||
set(WITH_IMAGE_WEBP OFF)
|
||||
endif()
|
||||
|
||||
# NanoVDB moved into openvdb.
|
||||
if(UNIX AND DEFINED NANOVDB_INCLUDE_DIR)
|
||||
if(NOT EXISTS ${NANOVDB_INCLUDE_DIR} AND
|
||||
EXISTS ${LIBDIR}/openvdb/include/nanovdb)
|
||||
unset_cache_variables("^NANOVDB")
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -38,9 +38,15 @@ if(EXISTS ${LIBDIR})
|
||||
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
|
||||
|
||||
file(GLOB LIB_SUBDIRS ${LIBDIR}/*)
|
||||
|
||||
# Ignore Mesa software OpenGL libraries, they are not intended to be
|
||||
# linked against but to optionally override at runtime.
|
||||
list(REMOVE_ITEM LIB_SUBDIRS ${LIBDIR}/mesa)
|
||||
|
||||
# Ignore DPC++ as it contains its own copy of LLVM/CLang which we do
|
||||
# not need to be ever discovered for the Blender linking.
|
||||
list(REMOVE_ITEM LIB_SUBDIRS ${LIBDIR}/dpcpp)
|
||||
|
||||
# NOTE: Make sure "proper" compiled zlib comes first before the one
|
||||
# which is a part of OpenCollada. They have different ABI, and we
|
||||
# do need to use the official one.
|
||||
@@ -196,6 +202,9 @@ if(WITH_CODEC_FFMPEG)
|
||||
vpx
|
||||
x264
|
||||
xvidcore)
|
||||
if(EXISTS ${LIBDIR}/ffmpeg/lib/libaom.a)
|
||||
list(APPEND FFMPEG_FIND_COMPONENTS aom)
|
||||
endif()
|
||||
elseif(FFMPEG)
|
||||
# Old cache variable used for root dir, convert to new standard.
|
||||
set(FFMPEG_ROOT_DIR ${FFMPEG})
|
||||
@@ -271,6 +280,18 @@ if(WITH_CYCLES AND WITH_CYCLES_OSL)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_CYCLES_DEVICE_ONEAPI)
|
||||
set(CYCLES_LEVEL_ZERO ${LIBDIR}/level-zero CACHE PATH "Path to Level Zero installation")
|
||||
if(EXISTS ${CYCLES_LEVEL_ZERO} AND NOT LEVEL_ZERO_ROOT_DIR)
|
||||
set(LEVEL_ZERO_ROOT_DIR ${CYCLES_LEVEL_ZERO})
|
||||
endif()
|
||||
|
||||
set(CYCLES_SYCL ${LIBDIR}/dpcpp CACHE PATH "Path to DPC++ and SYCL installation")
|
||||
if(EXISTS ${CYCLES_SYCL} AND NOT SYCL_ROOT_DIR)
|
||||
set(SYCL_ROOT_DIR ${CYCLES_SYCL})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_OPENVDB)
|
||||
find_package_wrapper(OpenVDB)
|
||||
find_package_wrapper(Blosc)
|
||||
@@ -613,17 +634,42 @@ if(WITH_GHOST_WAYLAND)
|
||||
pkg_check_modules(wayland-scanner REQUIRED wayland-scanner)
|
||||
pkg_check_modules(xkbcommon REQUIRED xkbcommon)
|
||||
pkg_check_modules(wayland-cursor REQUIRED wayland-cursor)
|
||||
pkg_check_modules(dbus REQUIRED dbus-1)
|
||||
|
||||
set(WITH_GL_EGL ON)
|
||||
if(WITH_GHOST_WAYLAND_DBUS)
|
||||
pkg_check_modules(dbus REQUIRED dbus-1)
|
||||
endif()
|
||||
|
||||
if(WITH_GHOST_WAYLAND_LIBDECOR)
|
||||
pkg_check_modules(libdecor REQUIRED libdecor-0>=0.1)
|
||||
endif()
|
||||
|
||||
list(APPEND PLATFORM_LINKLIBS
|
||||
${wayland-client_LINK_LIBRARIES}
|
||||
${wayland-egl_LINK_LIBRARIES}
|
||||
${xkbcommon_LINK_LIBRARIES}
|
||||
${wayland-cursor_LINK_LIBRARIES}
|
||||
${dbus_LINK_LIBRARIES}
|
||||
)
|
||||
|
||||
if(NOT WITH_GHOST_WAYLAND_DYNLOAD)
|
||||
list(APPEND PLATFORM_LINKLIBS
|
||||
${wayland-client_LINK_LIBRARIES}
|
||||
${wayland-egl_LINK_LIBRARIES}
|
||||
${wayland-cursor_LINK_LIBRARIES}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_GHOST_WAYLAND_DBUS)
|
||||
list(APPEND PLATFORM_LINKLIBS
|
||||
${dbus_LINK_LIBRARIES}
|
||||
)
|
||||
add_definitions(-DWITH_GHOST_WAYLAND_DBUS)
|
||||
endif()
|
||||
|
||||
if(WITH_GHOST_WAYLAND_LIBDECOR)
|
||||
if(NOT WITH_GHOST_WAYLAND_DYNLOAD)
|
||||
list(APPEND PLATFORM_LINKLIBS
|
||||
${libdecor_LIBRARIES}
|
||||
)
|
||||
endif()
|
||||
add_definitions(-DWITH_GHOST_WAYLAND_LIBDECOR)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GHOST_X11)
|
||||
@@ -842,8 +888,9 @@ unset(_IS_LINKER_DEFAULT)
|
||||
|
||||
# Avoid conflicts with Mesa llvmpipe, Luxrender, and other plug-ins that may
|
||||
# use the same libraries as Blender with a different version or build options.
|
||||
set(PLATFORM_SYMBOLS_MAP ${CMAKE_SOURCE_DIR}/source/creator/symbols_unix.map)
|
||||
set(PLATFORM_LINKFLAGS
|
||||
"${PLATFORM_LINKFLAGS} -Wl,--version-script='${CMAKE_SOURCE_DIR}/source/creator/blender.map'"
|
||||
"${PLATFORM_LINKFLAGS} -Wl,--version-script='${PLATFORM_SYMBOLS_MAP}'"
|
||||
)
|
||||
|
||||
# Don't use position independent executable for portable install since file
|
||||
|
@@ -104,7 +104,7 @@ string(APPEND CMAKE_MODULE_LINKER_FLAGS " /SAFESEH:NO /ignore:4099")
|
||||
list(APPEND PLATFORM_LINKLIBS
|
||||
ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 Comctl32 version
|
||||
advapi32 shfolder shell32 ole32 oleaut32 uuid psapi Dbghelp Shlwapi
|
||||
pathcch Shcore
|
||||
pathcch Shcore Dwmapi
|
||||
)
|
||||
|
||||
if(WITH_INPUT_IME)
|
||||
@@ -950,3 +950,6 @@ endif()
|
||||
|
||||
set(ZSTD_INCLUDE_DIRS ${LIBDIR}/zstd/include)
|
||||
set(ZSTD_LIBRARIES ${LIBDIR}/zstd/lib/zstd_static.lib)
|
||||
|
||||
set(LEVEL_ZERO_ROOT_DIR ${LIBDIR}/level_zero)
|
||||
set(SYCL_ROOT_DIR ${LIBDIR}/dpcpp)
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
"""
|
||||
Module for accessing project file data for Blender.
|
||||
|
||||
@@ -170,7 +168,7 @@ def cmake_advanced_info() -> Union[Tuple[List[str], List[Tuple[str, str]]], Tupl
|
||||
project_path = create_eclipse_project()
|
||||
|
||||
if not exists(project_path):
|
||||
print("Generating Eclipse Prokect File Failed: %r not found" % project_path)
|
||||
print("Generating Eclipse Project File Failed: %r not found" % project_path)
|
||||
return None, None
|
||||
|
||||
from xml.dom.minidom import parse
|
||||
|
@@ -1,7 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
__all__ = (
|
||||
"build_info",
|
||||
"SOURCE_DIR",
|
||||
|
@@ -54,6 +54,8 @@ buildbot:
|
||||
version: '10.1.243'
|
||||
cuda11:
|
||||
version: '11.4.1'
|
||||
hip:
|
||||
version: '5.2.21440'
|
||||
optix:
|
||||
version: '7.3.0'
|
||||
cmake:
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
@@ -3,13 +3,10 @@ for %%X in (svn.exe) do (set SVN=%%~$PATH:X)
|
||||
for %%X in (cmake.exe) do (set CMAKE=%%~$PATH:X)
|
||||
for %%X in (ctest.exe) do (set CTEST=%%~$PATH:X)
|
||||
for %%X in (git.exe) do (set GIT=%%~$PATH:X)
|
||||
REM For python, default on 39 but if that does not exist also check
|
||||
REM the 310,311 and 312 folders to see if those are there, it checks
|
||||
REM this far ahead to ensure good lib folder compatibility in the future.
|
||||
set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
|
||||
if EXIST %PYTHON% (
|
||||
goto detect_python_done
|
||||
)
|
||||
REM For python, default on 310 but if that does not exist also check
|
||||
REM the 311, 312 and finally 39 folders to see if those are there, it checks
|
||||
REM this far ahead to ensure good lib folder compatibility in the future
|
||||
REM it falls back to 3.9 just incase it is a very old lib folder.
|
||||
set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\310\bin\python.exe
|
||||
if EXIST %PYTHON% (
|
||||
goto detect_python_done
|
||||
@@ -22,6 +19,10 @@ set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\312\bin\python.exe
|
||||
if EXIST %PYTHON% (
|
||||
goto detect_python_done
|
||||
)
|
||||
set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
|
||||
if EXIST %PYTHON% (
|
||||
goto detect_python_done
|
||||
)
|
||||
|
||||
if NOT EXIST %PYTHON% (
|
||||
echo Warning: Python not found, there is likely an issue with the library folder
|
||||
|
@@ -411,7 +411,7 @@ def main():
|
||||
# read blend header from blend file
|
||||
log.info("2: read file:")
|
||||
|
||||
if not dir in sys.path:
|
||||
if dir not in sys.path:
|
||||
sys.path.append(dir)
|
||||
import BlendFileReader
|
||||
|
||||
|
@@ -38,7 +38,7 @@ PROJECT_NAME = Blender
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = V3.2
|
||||
PROJECT_NUMBER = V3.4
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
|
@@ -11,8 +11,6 @@ where <path-to-blender> is the path to the Blender executable,
|
||||
and <output-filename> is where to write the generated man page.
|
||||
'''
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
|
@@ -10,7 +10,7 @@ Notes:
|
||||
|
||||
- Temporary context overrides may be nested, when this is done, members will be added to the existing overrides.
|
||||
|
||||
- Context members are restored outside the scope of the context.
|
||||
- Context members are restored outside the scope of the context-manager.
|
||||
The only exception to this is when the data is no longer available.
|
||||
|
||||
In the event windowing data was removed (for example), the state of the context is left as-is.
|
||||
|
46
doc/python_api/examples/bpy.types.Image.py
Normal file
46
doc/python_api/examples/bpy.types.Image.py
Normal file
@@ -0,0 +1,46 @@
|
||||
"""
|
||||
Image Data
|
||||
++++++++++
|
||||
|
||||
The Image data-block is a shallow wrapper around image or video file(s)
|
||||
(on disk, as packed data, or generated).
|
||||
|
||||
All actual data like the pixel buffer, size, resolution etc. is
|
||||
cached in an :class:`imbuf.types.ImBuf` image buffer (or several buffers
|
||||
in some cases, like UDIM textures, multi-views, animations...).
|
||||
|
||||
Several properties and functions of the Image data-block are then actually
|
||||
using/modifying its image buffer, and not the Image data-block itself.
|
||||
|
||||
.. warning::
|
||||
|
||||
One key limitation is that image buffers are not shared between different
|
||||
Image data-blocks, and they are not duplicated when copying an image.
|
||||
|
||||
So until a modified image buffer is saved on disk, duplicating its Image
|
||||
data-block will not propagate the underlying buffer changes to the new Image.
|
||||
|
||||
|
||||
This example script generates an Image data-block with a given size,
|
||||
change its first pixel, rescale it, and duplicates the image.
|
||||
|
||||
The duplicated image still has the same size and colors as the original image
|
||||
at its creation, all editing in the original image's buffer is 'lost' in its copy.
|
||||
"""
|
||||
|
||||
import bpy
|
||||
|
||||
image_src = bpy.data.images.new('src', 1024, 102)
|
||||
print(image_src.size)
|
||||
print(image_src.pixels[0:4])
|
||||
|
||||
image_src.scale(1024, 720)
|
||||
image_src.pixels[0:4] = (0.5, 0.5, 0.5, 0.5)
|
||||
image_src.update()
|
||||
print(image_src.size)
|
||||
print(image_src.pixels[0:4])
|
||||
|
||||
image_dest = image_src.copy()
|
||||
image_dest.update()
|
||||
print(image_dest.size)
|
||||
print(image_dest.pixels[0:4])
|
@@ -29,3 +29,36 @@ def draw():
|
||||
|
||||
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')
|
||||
|
||||
"""
|
||||
3D Image
|
||||
--------
|
||||
|
||||
Similar to the 2D Image shader, but works with 3D positions for the image vertices.
|
||||
To use this example you have to provide an image that should be displayed.
|
||||
"""
|
||||
import bpy
|
||||
import gpu
|
||||
from gpu_extras.batch import batch_for_shader
|
||||
|
||||
IMAGE_NAME = "Untitled"
|
||||
image = bpy.data.images[IMAGE_NAME]
|
||||
texture = gpu.texture.from_image(image)
|
||||
|
||||
shader = gpu.shader.from_builtin('3D_IMAGE')
|
||||
batch = batch_for_shader(
|
||||
shader, 'TRIS',
|
||||
{
|
||||
"pos": ((0, 0, 0), (0, 1, 1), (1, 1, 1), (1, 1, 1), (1, 0, 0), (0, 0, 0)),
|
||||
"texCoord": ((0, 0), (0, 1), (1, 1), (1, 1), (1, 0), (0, 0)),
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
def draw():
|
||||
shader.bind()
|
||||
shader.uniform_sampler("image", texture)
|
||||
batch.draw(shader)
|
||||
|
||||
|
||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
|
||||
|
@@ -43,7 +43,7 @@ with offscreen.bind():
|
||||
offscreen.free()
|
||||
|
||||
|
||||
if not IMAGE_NAME in bpy.data.images:
|
||||
if IMAGE_NAME not in bpy.data.images:
|
||||
bpy.data.images.new(IMAGE_NAME, WIDTH, HEIGHT)
|
||||
image = bpy.data.images[IMAGE_NAME]
|
||||
image.scale(WIDTH, HEIGHT)
|
||||
|
@@ -1,12 +1,12 @@
|
||||
sphinx==4.1.1
|
||||
sphinx==5.0.1
|
||||
|
||||
# Sphinx dependencies that are important
|
||||
Jinja2==3.0.1
|
||||
Pygments==2.10.0
|
||||
Jinja2==3.1.2
|
||||
Pygments==2.12.0
|
||||
docutils==0.17.1
|
||||
snowballstemmer==2.1.0
|
||||
babel==2.9.1
|
||||
requests==2.26.0
|
||||
snowballstemmer==2.2.0
|
||||
babel==2.10.1
|
||||
requests==2.27.1
|
||||
|
||||
# Only needed to match the theme used for the official documentation.
|
||||
# Without this theme, the default theme will be used.
|
||||
|
@@ -4,6 +4,12 @@ OpenGL Wrapper (bgl)
|
||||
|
||||
.. module:: bgl
|
||||
|
||||
.. warning::
|
||||
|
||||
This module is deprecated and will be removed in a future release,
|
||||
when OpenGL is replaced by Metal and Vulkan.
|
||||
Use the graphics API independent :mod:`gpu` module instead.
|
||||
|
||||
This module wraps OpenGL constants and functions, making them available from
|
||||
within Blender Python.
|
||||
|
||||
|
@@ -40,15 +40,6 @@ As well as pep8 we have additional conventions used for Blender Python scripts:
|
||||
- pep8 also defines that lines should not exceed 79 characters,
|
||||
we have decided that this is too restrictive so it is optional per script.
|
||||
|
||||
Periodically we run checks for pep8 compliance on Blender scripts,
|
||||
for scripts to be included in this check add this line as a comment at the top of the script:
|
||||
|
||||
``# <pep8 compliant>``
|
||||
|
||||
To enable line length checks use this instead:
|
||||
|
||||
``# <pep8-80 compliant>``
|
||||
|
||||
|
||||
User Interface Layout
|
||||
=====================
|
||||
|
@@ -1,7 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
# This is a quite stupid script which extracts bmesh api docs from
|
||||
# 'bmesh_opdefines.c' in order to avoid having to add a lot of introspection
|
||||
# data access into the api.
|
||||
|
@@ -1,61 +1,111 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
"""
|
||||
Dump the python API into a text file so we can generate changelogs.
|
||||
---------------
|
||||
|
||||
output from this tool should be added into "doc/python_api/rst/change_log.rst"
|
||||
Dump the python API into a JSON file, or generate changelogs from those JSON API dumps.
|
||||
|
||||
# dump api blender_version.py in CWD
|
||||
blender --background --python doc/python_api/sphinx_changelog_gen.py -- --dump
|
||||
Typically, changelog output from this tool should be added into "doc/python_api/rst/change_log.rst"
|
||||
|
||||
# create changelog
|
||||
API dump files are saved together with the generated API doc on the server, with a general index file.
|
||||
This way the changelog generation simply needs to re-download the previous version's dump for the diffing process.
|
||||
|
||||
---------------
|
||||
|
||||
# Dump api blender_version.json in CWD:
|
||||
blender --background --factory-startup --python doc/python_api/sphinx_changelog_gen.py -- \
|
||||
--indexpath="path/to/api/docs/api_dump_index.json" \
|
||||
dump --filepath-out="path/to/api/docs/<version>/api_dump.json"
|
||||
|
||||
# Create changelog:
|
||||
blender --background --factory-startup --python doc/python_api/sphinx_changelog_gen.py -- \
|
||||
--api_from blender_2_63_0.py \
|
||||
--api_to blender_2_64_0.py \
|
||||
--api_out changes.rst
|
||||
--indexpath="path/to/api/docs/api_dump_index.json" \
|
||||
changelog --filepath-out doc/python_api/rst/change_log.rst
|
||||
|
||||
|
||||
# Api comparison can also run without blender
|
||||
# Api comparison can also run without blender,
|
||||
# will by default generate changeloig between the last two available versions listed in the index,
|
||||
# unless input files are provided explicitely:
|
||||
python doc/python_api/sphinx_changelog_gen.py -- \
|
||||
--api_from blender_api_2_63_0.py \
|
||||
--api_to blender_api_2_64_0.py \
|
||||
--api_out changes.rst
|
||||
--indexpath="path/to/api/docs/api_dump_index.json" \
|
||||
changelog --filepath-in-from blender_api_2_63_0.json \
|
||||
--filepath-in-to blender_api_2_64_0.json \
|
||||
--filepath-out changes.rst
|
||||
|
||||
# Save the latest API dump in this folder, renaming it with its revision.
|
||||
# This way the next person updating it doesn't need to build an old Blender only for that
|
||||
--------------
|
||||
|
||||
API dump index format:
|
||||
|
||||
{[version_main, version_sub]: "<version>/api_dump.json", ...
|
||||
}
|
||||
|
||||
API dump format:
|
||||
|
||||
[
|
||||
[version_main, vserion_sub, version_path],
|
||||
{"module.name":
|
||||
{"parent.class":
|
||||
{"basic_type", "member_name":
|
||||
["Name", type, range, length, default, descr, f_args, f_arg_types, f_ret_types]}, ...
|
||||
}, ...
|
||||
}
|
||||
]
|
||||
|
||||
"""
|
||||
|
||||
# format
|
||||
'''
|
||||
{"module.name":
|
||||
{"parent.class":
|
||||
{"basic_type", "member_name":
|
||||
("Name", type, range, length, default, descr, f_args, f_arg_types, f_ret_types)}, ...
|
||||
}, ...
|
||||
}
|
||||
'''
|
||||
import json
|
||||
import os
|
||||
|
||||
|
||||
api_names = "basic_type" "name", "type", "range", "length", "default", "descr", "f_args", "f_arg_types", "f_ret_types"
|
||||
|
||||
API_BASIC_TYPE = 0
|
||||
API_F_ARGS = 7
|
||||
|
||||
|
||||
def api_dunp_fname():
|
||||
import bpy
|
||||
return "blender_api_%s.py" % "_".join([str(i) for i in bpy.app.version])
|
||||
def api_version():
|
||||
try:
|
||||
import bpy
|
||||
except:
|
||||
return None, None
|
||||
version = tuple(bpy.app.version[:2])
|
||||
version_key = "%d.%d" % (version[0], version[1])
|
||||
return version, version_key
|
||||
|
||||
|
||||
def api_dump():
|
||||
dump = {}
|
||||
dump_module = dump["bpy.types"] = {}
|
||||
def api_version_previous_in_index(index, version):
|
||||
print("Searching for previous version to %s in %r" % (version, index))
|
||||
version_prev = (version[0], version[1])
|
||||
while True:
|
||||
version_prev = (version_prev[0], version_prev[1] - 1)
|
||||
if version_prev[1] < 0:
|
||||
version_prev = (version_prev[0] - 1, 99)
|
||||
if version_prev[0] < 0:
|
||||
return None, None
|
||||
version_prev_key = "%d.%d" % (version_prev[0], version_prev[1])
|
||||
if version_prev_key in index:
|
||||
print("Found previous version %s: %r" % (version_prev, index[version_prev_key]))
|
||||
return version_prev, version_prev_key
|
||||
|
||||
|
||||
class JSONEncoderAPIDump(json.JSONEncoder):
|
||||
def default(self, o):
|
||||
if o is ...:
|
||||
return "..."
|
||||
if isinstance(o, set):
|
||||
return tuple(o)
|
||||
return json.JSONEncoder.default(self, o)
|
||||
|
||||
|
||||
def api_dump(args):
|
||||
import rna_info
|
||||
import inspect
|
||||
|
||||
version, version_key = api_version()
|
||||
if version is None:
|
||||
raise(ValueError("API dumps can only be generated from within Blender."))
|
||||
|
||||
dump = {}
|
||||
dump_module = dump["bpy.types"] = {}
|
||||
|
||||
struct = rna_info.BuildRNAInfo()[0]
|
||||
for struct_id, struct_info in sorted(struct.items()):
|
||||
|
||||
@@ -157,17 +207,25 @@ def api_dump():
|
||||
)
|
||||
del funcs
|
||||
|
||||
import pprint
|
||||
filepath_out = args.filepath_out
|
||||
with open(filepath_out, 'w', encoding='utf-8') as file_handle:
|
||||
json.dump((version, dump), file_handle, cls=JSONEncoderAPIDump)
|
||||
|
||||
filename = api_dunp_fname()
|
||||
filehandle = open(filename, 'w', encoding='utf-8')
|
||||
tot = filehandle.write(pprint.pformat(dump, width=1))
|
||||
filehandle.close()
|
||||
print("%s, %d bytes written" % (filename, tot))
|
||||
indexpath = args.indexpath
|
||||
rootpath = os.path.dirname(indexpath)
|
||||
if os.path.exists(indexpath):
|
||||
with open(indexpath, 'r', encoding='utf-8') as file_handle:
|
||||
index = json.load(file_handle)
|
||||
else:
|
||||
index = {}
|
||||
index[version_key] = os.path.relpath(filepath_out, rootpath)
|
||||
with open(indexpath, 'w', encoding='utf-8') as file_handle:
|
||||
json.dump(index, file_handle)
|
||||
|
||||
print("API version %s dumped into %r, and index %r has been updated" % (version_key, filepath_out, indexpath))
|
||||
|
||||
|
||||
def compare_props(a, b, fuzz=0.75):
|
||||
|
||||
# must be same basic_type, function != property
|
||||
if a[0] != b[0]:
|
||||
return False
|
||||
@@ -182,15 +240,44 @@ def compare_props(a, b, fuzz=0.75):
|
||||
return ((tot / totlen) >= fuzz)
|
||||
|
||||
|
||||
def api_changelog(api_from, api_to, api_out):
|
||||
def api_changelog(args):
|
||||
indexpath = args.indexpath
|
||||
filepath_in_from = args.filepath_in_from
|
||||
filepath_in_to = args.filepath_in_to
|
||||
filepath_out = args.filepath_out
|
||||
|
||||
file_handle = open(api_from, 'r', encoding='utf-8')
|
||||
dict_from = eval(file_handle.read())
|
||||
file_handle.close()
|
||||
rootpath = os.path.dirname(indexpath)
|
||||
|
||||
file_handle = open(api_to, 'r', encoding='utf-8')
|
||||
dict_to = eval(file_handle.read())
|
||||
file_handle.close()
|
||||
version, version_key = api_version()
|
||||
if version is None and (filepath_in_from is None or filepath_in_to is None):
|
||||
raise(ValueError("API dumps files must be given when ran outside of Blender."))
|
||||
|
||||
with open(indexpath, 'r', encoding='utf-8') as file_handle:
|
||||
index = json.load(file_handle)
|
||||
|
||||
if filepath_in_to is None:
|
||||
filepath_in_to = index.get(version_key, None)
|
||||
if filepath_in_to is None:
|
||||
raise(ValueError("Cannot find API dump file for Blender version " + str(version) + " in index file."))
|
||||
|
||||
print("Found to file: %r" % filepath_in_to)
|
||||
|
||||
if filepath_in_from is None:
|
||||
version_from, version_from_key = api_version_previous_in_index(index, version)
|
||||
if version_from is None:
|
||||
raise(ValueError("No previous version of Blender could be found in the index."))
|
||||
filepath_in_from = index.get(version_from_key, None)
|
||||
if filepath_in_from is None:
|
||||
raise(ValueError("Cannot find API dump file for previous Blender version " + str(version_from) + " in index file."))
|
||||
|
||||
print("Found from file: %r" % filepath_in_from)
|
||||
|
||||
with open(os.path.join(rootpath, filepath_in_from), 'r', encoding='utf-8') as file_handle:
|
||||
_, dict_from = json.load(file_handle)
|
||||
|
||||
with open(os.path.join(rootpath, filepath_in_to), 'r', encoding='utf-8') as file_handle:
|
||||
dump_version, dict_to = json.load(file_handle)
|
||||
assert(tuple(dump_version) == version)
|
||||
|
||||
api_changes = []
|
||||
|
||||
@@ -251,63 +338,66 @@ def api_changelog(api_from, api_to, api_out):
|
||||
|
||||
# also document function argument changes
|
||||
|
||||
fout = open(api_out, 'w', encoding='utf-8')
|
||||
fw = fout.write
|
||||
# print(api_changes)
|
||||
with open(filepath_out, 'w', encoding='utf-8') as fout:
|
||||
fw = fout.write
|
||||
|
||||
# :class:`bpy_struct.id_data`
|
||||
# Write header.
|
||||
fw(""
|
||||
":tocdepth: 2\n"
|
||||
"\n"
|
||||
"Blender API Change Log\n"
|
||||
"**********************\n"
|
||||
"\n"
|
||||
".. note, this document is auto generated by sphinx_changelog_gen.py\n"
|
||||
"\n"
|
||||
"\n"
|
||||
"%s to %s\n"
|
||||
"============\n"
|
||||
"\n" % (version_from_key, version_key))
|
||||
|
||||
def write_title(title, title_char):
|
||||
fw("%s\n%s\n\n" % (title, title_char * len(title)))
|
||||
def write_title(title, title_char):
|
||||
fw("%s\n%s\n\n" % (title, title_char * len(title)))
|
||||
|
||||
for mod_id, class_id, props_moved, props_new, props_old, func_args in api_changes:
|
||||
class_name = class_id.split(".")[-1]
|
||||
title = mod_id + "." + class_name
|
||||
write_title(title, "-")
|
||||
for mod_id, class_id, props_moved, props_new, props_old, func_args in api_changes:
|
||||
class_name = class_id.split(".")[-1]
|
||||
title = mod_id + "." + class_name
|
||||
write_title(title, "-")
|
||||
|
||||
if props_new:
|
||||
write_title("Added", "^")
|
||||
for prop_id in props_new:
|
||||
fw("* :class:`%s.%s.%s`\n" % (mod_id, class_name, prop_id))
|
||||
fw("\n")
|
||||
if props_new:
|
||||
write_title("Added", "^")
|
||||
for prop_id in props_new:
|
||||
fw("* :class:`%s.%s.%s`\n" % (mod_id, class_name, prop_id))
|
||||
fw("\n")
|
||||
|
||||
if props_old:
|
||||
write_title("Removed", "^")
|
||||
for prop_id in props_old:
|
||||
fw("* **%s**\n" % prop_id) # can't link to removed docs
|
||||
fw("\n")
|
||||
if props_old:
|
||||
write_title("Removed", "^")
|
||||
for prop_id in props_old:
|
||||
fw("* **%s**\n" % prop_id) # can't link to removed docs
|
||||
fw("\n")
|
||||
|
||||
if props_moved:
|
||||
write_title("Renamed", "^")
|
||||
for prop_id_old, prop_id in props_moved:
|
||||
fw("* **%s** -> :class:`%s.%s.%s`\n" % (prop_id_old, mod_id, class_name, prop_id))
|
||||
fw("\n")
|
||||
if props_moved:
|
||||
write_title("Renamed", "^")
|
||||
for prop_id_old, prop_id in props_moved:
|
||||
fw("* **%s** -> :class:`%s.%s.%s`\n" % (prop_id_old, mod_id, class_name, prop_id))
|
||||
fw("\n")
|
||||
|
||||
if func_args:
|
||||
write_title("Function Arguments", "^")
|
||||
for func_id, args_old, args_new in func_args:
|
||||
args_new = ", ".join(args_new)
|
||||
args_old = ", ".join(args_old)
|
||||
fw("* :class:`%s.%s.%s` (%s), *was (%s)*\n" % (mod_id, class_name, func_id, args_new, args_old))
|
||||
fw("\n")
|
||||
if func_args:
|
||||
write_title("Function Arguments", "^")
|
||||
for func_id, args_old, args_new in func_args:
|
||||
args_new = ", ".join(args_new)
|
||||
args_old = ", ".join(args_old)
|
||||
fw("* :class:`%s.%s.%s` (%s), *was (%s)*\n" % (mod_id, class_name, func_id, args_new, args_old))
|
||||
fw("\n")
|
||||
|
||||
fout.close()
|
||||
|
||||
print("Written: %r" % api_out)
|
||||
print("Written: %r" % filepath_out)
|
||||
|
||||
|
||||
def main():
|
||||
def main(argv=None):
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
|
||||
try:
|
||||
import argparse
|
||||
except ImportError:
|
||||
print("Old Blender, just dumping")
|
||||
api_dump()
|
||||
return
|
||||
|
||||
argv = sys.argv
|
||||
if argv is None:
|
||||
argv = sys.argv
|
||||
|
||||
if "--" not in argv:
|
||||
argv = [] # as if no args are passed
|
||||
@@ -318,42 +408,42 @@ def main():
|
||||
usage_text = "Run blender in background mode with this script: "
|
||||
"blender --background --factory-startup --python %s -- [options]" % os.path.basename(__file__)
|
||||
|
||||
epilog = "Run this before releases"
|
||||
|
||||
parser = argparse.ArgumentParser(description=usage_text, epilog=epilog)
|
||||
|
||||
parser = argparse.ArgumentParser(description=usage_text,
|
||||
epilog=__doc__,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||
parser.add_argument(
|
||||
"--dump", dest="dump", action='store_true',
|
||||
help="When set the api will be dumped into blender_version.py")
|
||||
"--indexpath", dest="indexpath", metavar='FILE', required=True,
|
||||
help="Path of the JSON file containing the index of all available API dumps.")
|
||||
|
||||
parser.add_argument(
|
||||
"--api_from", dest="api_from", metavar='FILE',
|
||||
help="File to compare from (previous version)")
|
||||
parser.add_argument(
|
||||
"--api_to", dest="api_to", metavar='FILE',
|
||||
help="File to compare from (current)")
|
||||
parser.add_argument(
|
||||
"--api_out", dest="api_out", metavar='FILE',
|
||||
help="Output sphinx changelog")
|
||||
parser_commands = parser.add_subparsers(required=True)
|
||||
|
||||
args = parser.parse_args(argv) # In this example we won't use the args
|
||||
parser_dump = parser_commands.add_parser('dump', help="Dump the current Blender Python API into a JSON file.")
|
||||
parser_dump.add_argument(
|
||||
"--filepath-out", dest="filepath_out", metavar='FILE', required=True,
|
||||
help="Path of the JSON file containing the dump of the API.")
|
||||
parser_dump.set_defaults(func=api_dump)
|
||||
|
||||
if not argv:
|
||||
print("No args given!")
|
||||
parser.print_help()
|
||||
return
|
||||
parser_changelog = parser_commands.add_parser(
|
||||
'changelog',
|
||||
help="Generate the RST changelog page based on two Blender Python API JSON dumps.",
|
||||
)
|
||||
|
||||
if args.dump:
|
||||
api_dump()
|
||||
else:
|
||||
if args.api_from and args.api_to and args.api_out:
|
||||
api_changelog(args.api_from, args.api_to, args.api_out)
|
||||
else:
|
||||
print("Error: --api_from/api_to/api_out args needed")
|
||||
parser.print_help()
|
||||
return
|
||||
parser_changelog.add_argument(
|
||||
"--filepath-in-from", dest="filepath_in_from", metavar='FILE', default=None,
|
||||
help="JSON dump file to compare from (typically, previous version). "
|
||||
"If not given, will be automatically determined from current Blender version and index file.")
|
||||
parser_changelog.add_argument(
|
||||
"--filepath-in-to", dest="filepath_in_to", metavar='FILE', default=None,
|
||||
help="JSON dump file to compare to (typically, current version). "
|
||||
"If not given, will be automatically determined from current Blender version and index file.")
|
||||
parser_changelog.add_argument(
|
||||
"--filepath-out", dest="filepath_out", metavar='FILE', required=True,
|
||||
help="Output sphinx changelog RST file.")
|
||||
parser_changelog.set_defaults(func=api_changelog)
|
||||
|
||||
print("batch job finished, exiting")
|
||||
args = parser.parse_args(argv)
|
||||
|
||||
args.func(args)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
bpy_types_Operator_bl_property__doc__ = (
|
||||
"""
|
||||
The name of a property to use as this operators primary property.
|
||||
|
@@ -1,10 +1,3 @@
|
||||
/* T76453: Prevent Long enum lists */
|
||||
.field-list > dd p {
|
||||
max-height: 245px;
|
||||
overflow-y: auto !important;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
/* Hide home icon in search area */
|
||||
.wy-side-nav-search > a:hover {background: none; opacity: 0.9}
|
||||
.wy-side-nav-search > a.icon::before {content: none}
|
||||
|
68
extern/audaspace/CMakeLists.txt
vendored
68
extern/audaspace/CMakeLists.txt
vendored
@@ -450,7 +450,11 @@ if(WITH_COREAUDIO)
|
||||
if(WITH_STRICT_DEPENDENCIES)
|
||||
message(FATAL_ERROR "CoreAudio not found!")
|
||||
else()
|
||||
set(WITH_COREAUDIO FALSE CACHE BOOL "Build With CoreAudio" FORCE)
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_COREAUDIO FALSE CACHE BOOL "Build With CoreAudio" FORCE)
|
||||
else()
|
||||
set(WITH_COREAUDIO FALSE)
|
||||
endif()
|
||||
message(WARNING "CoreAudio not found, plugin will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
@@ -487,7 +491,11 @@ if(WITH_FFMPEG)
|
||||
list(APPEND DLLS ${FFMPEG_DLLS})
|
||||
endif()
|
||||
else()
|
||||
set(WITH_FFMPEG FALSE CACHE BOOL "Build With FFMPEG" FORCE)
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_FFMPEG FALSE CACHE BOOL "Build With FFMPEG" FORCE)
|
||||
else()
|
||||
set(WITH_FFMPEG FALSE)
|
||||
endif()
|
||||
message(WARNING "FFMPEG not found, plugin will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
@@ -536,7 +544,11 @@ if(WITH_FFTW)
|
||||
list(APPEND DLLS ${FFTW_DLLS})
|
||||
endif()
|
||||
else()
|
||||
set(WITH_FFTW FALSE CACHE BOOL "Build With FFTW" FORCE)
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_FFTW FALSE CACHE BOOL "Build With FFTW" FORCE)
|
||||
else()
|
||||
set(WITH_FFTW FALSE)
|
||||
endif()
|
||||
message(WARNING "FFTW not found, convolution functionality will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
@@ -579,7 +591,11 @@ if(WITH_JACK)
|
||||
list(APPEND DLLS ${JACK_DLLS})
|
||||
endif()
|
||||
else()
|
||||
set(WITH_JACK FALSE CACHE BOOL "Build With JACK" FORCE)
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_JACK FALSE CACHE BOOL "Build With JACK" FORCE)
|
||||
else()
|
||||
set(WITH_JACK FALSE)
|
||||
endif()
|
||||
message(WARNING "JACK not found, plugin will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
@@ -615,7 +631,11 @@ if(WITH_LIBSNDFILE)
|
||||
list(APPEND DLLS ${LIBSNDFILE_DLLS})
|
||||
endif()
|
||||
else()
|
||||
set(WITH_LIBSNDFILE FALSE CACHE BOOL "Build With LibSndFile" FORCE)
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_LIBSNDFILE FALSE CACHE BOOL "Build With LibSndFile" FORCE)
|
||||
else()
|
||||
set(WITH_LIBSNDFILE FALSE)
|
||||
endif()
|
||||
message(WARNING "LibSndFile not found, plugin will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
@@ -649,7 +669,11 @@ if(WITH_OPENAL)
|
||||
list(APPEND DLLS ${OPENAL_DLLS})
|
||||
endif()
|
||||
else()
|
||||
set(WITH_OPENAL FALSE CACHE BOOL "Build With OpenAL" FORCE)
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_OPENAL FALSE CACHE BOOL "Build With OpenAL" FORCE)
|
||||
else()
|
||||
set(WITH_OPENAL FALSE)
|
||||
endif()
|
||||
message(WARNING "OpenAL not found, plugin will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
@@ -685,7 +709,11 @@ if(WITH_PULSEAUDIO)
|
||||
list(APPEND STATIC_PLUGINS PulseAudioDevice)
|
||||
endif()
|
||||
else()
|
||||
set(WITH_PULSEAUDIO FALSE CACHE BOOL "Build With PulseAudio" FORCE)
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_PULSEAUDIO FALSE CACHE BOOL "Build With PulseAudio" FORCE)
|
||||
else()
|
||||
set(WITH_PULSEAUDIO FALSE)
|
||||
endif()
|
||||
message(WARNING "PulseAudio not found, plugin will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
@@ -716,8 +744,12 @@ if(WITH_PYTHON)
|
||||
list(APPEND DLLS ${PYTHON_DLLS})
|
||||
endif()
|
||||
else()
|
||||
set(WITH_PYTHON FALSE CACHE BOOL "Build With Python Library" FORCE)
|
||||
message(WARNING "Python libraries not found, language binding will not be built.")
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_PYTHON FALSE CACHE BOOL "Build With Python Library" FORCE)
|
||||
else()
|
||||
set(WITH_PYTHON FALSE)
|
||||
endif()
|
||||
message(WARNING "Python & NumPy libraries not found, language binding will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -759,7 +791,11 @@ if(WITH_SDL)
|
||||
list(APPEND DLLS ${SDL_DLLS})
|
||||
endif()
|
||||
else()
|
||||
set(WITH_SDL FALSE CACHE BOOL "Build With SDL" FORCE)
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_SDL FALSE CACHE BOOL "Build With SDL" FORCE)
|
||||
else()
|
||||
set(WITH_SDL FALSE)
|
||||
endif()
|
||||
message(WARNING "SDL not found, plugin will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
@@ -1116,7 +1152,11 @@ if(WITH_DOCS)
|
||||
|
||||
add_custom_target(audaspace_doc ALL ${DOXYGEN_EXECUTABLE} Doxyfile COMMENT "Building C++ HTML documentation with Doxygen.")
|
||||
else()
|
||||
set(WITH_DOCS FALSE CACHE BOOL "Build C++ HTML Documentation with Doxygen" FORCE)
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_DOCS FALSE CACHE BOOL "Build C++ HTML Documentation with Doxygen" FORCE)
|
||||
else()
|
||||
set(WITH_DOCS FALSE)
|
||||
endif()
|
||||
message(WARNING "Doxygen (and/or dot) not found, documentation will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
@@ -1129,7 +1169,11 @@ if(WITH_BINDING_DOCS)
|
||||
|
||||
add_custom_target(bindings_doc ALL COMMAND ${PYTHON_EXECUTABLE} setup.py --build-docs ${SPHINX_EXECUTABLE} -q -b html -c "${CMAKE_CURRENT_BINARY_DIR}" -d "${CMAKE_CURRENT_BINARY_DIR}/_doctrees" "${CMAKE_CURRENT_SOURCE_DIR}/bindings/doc" "${CMAKE_CURRENT_BINARY_DIR}/doc/bindings" DEPENDS pythonmodule COMMENT "Building C/Python HTML documentation with Sphinx.")
|
||||
else()
|
||||
set(WITH_BINDING_DOCS FALSE CACHE BOOL "Build C/Python HTML Documentation with Sphinx" FORCE)
|
||||
if(AUDASPACE_STANDALONE)
|
||||
set(WITH_BINDING_DOCS FALSE CACHE BOOL "Build C/Python HTML Documentation with Sphinx" FORCE)
|
||||
else()
|
||||
set(WITH_BINDING_DOCS FALSE)
|
||||
endif()
|
||||
message(WARNING "Sphinx not found, binding documentation will not be built.")
|
||||
endif()
|
||||
endif()
|
||||
|
22
extern/audaspace/bindings/C/AUD_Special.cpp
vendored
22
extern/audaspace/bindings/C/AUD_Special.cpp
vendored
@@ -270,7 +270,7 @@ AUD_API int AUD_readSound(AUD_Sound* sound, float* buffer, int length, int sampl
|
||||
return length;
|
||||
}
|
||||
|
||||
AUD_API const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate, void(*callback)(float, void*), void* data)
|
||||
AUD_API int AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate, void(*callback)(float, void*), void* data, char* error, size_t errorsize)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -282,15 +282,20 @@ AUD_API const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned i
|
||||
std::shared_ptr<IWriter> writer = FileWriter::createWriter(filename, convCToDSpec(specs), static_cast<Container>(format), static_cast<Codec>(codec), bitrate);
|
||||
FileWriter::writeReader(reader, writer, length, buffersize, callback, data);
|
||||
|
||||
return nullptr;
|
||||
return true;
|
||||
}
|
||||
catch(Exception& e)
|
||||
{
|
||||
return e.getMessage().c_str();
|
||||
if(error && errorsize)
|
||||
{
|
||||
std::strncpy(error, e.getMessage().c_str(), errorsize);
|
||||
error[errorsize - 1] = '\0';
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
AUD_API const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate, void(*callback)(float, void*), void* data)
|
||||
AUD_API int AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate, void(*callback)(float, void*), void* data, char* error, size_t errorsize)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -328,11 +333,16 @@ AUD_API const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start
|
||||
reader->seek(start);
|
||||
FileWriter::writeReader(reader, writers, length, buffersize, callback, data);
|
||||
|
||||
return nullptr;
|
||||
return true;
|
||||
}
|
||||
catch(Exception& e)
|
||||
{
|
||||
return e.getMessage().c_str();
|
||||
if(error && errorsize)
|
||||
{
|
||||
std::strncpy(error, e.getMessage().c_str(), errorsize);
|
||||
error[errorsize - 1] = '\0';
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
16
extern/audaspace/bindings/C/AUD_Special.h
vendored
16
extern/audaspace/bindings/C/AUD_Special.h
vendored
@@ -70,13 +70,15 @@ extern AUD_API int AUD_readSound(AUD_Sound* sound, float* buffer, int length, in
|
||||
* \param bitrate The bitrate for encoding.
|
||||
* \param callback A callback function that is called periodically during mixdown, reporting progress if length > 0. Can be NULL.
|
||||
* \param data Pass through parameter that is passed to the callback.
|
||||
* \return An error message or NULL in case of success.
|
||||
* \param error String buffer to copy the error message to in case of failure.
|
||||
* \param errorsize The size of the error buffer.
|
||||
* \return Whether or not the operation succeeded.
|
||||
*/
|
||||
extern AUD_API const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int length,
|
||||
extern AUD_API int AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int length,
|
||||
unsigned int buffersize, const char* filename,
|
||||
AUD_DeviceSpecs specs, AUD_Container format,
|
||||
AUD_Codec codec, unsigned int bitrate,
|
||||
void(*callback)(float, void*), void* data);
|
||||
void(*callback)(float, void*), void* data, char* error, size_t errorsize);
|
||||
|
||||
/**
|
||||
* Mixes a sound down into multiple files.
|
||||
@@ -91,13 +93,15 @@ extern AUD_API const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, uns
|
||||
* \param bitrate The bitrate for encoding.
|
||||
* \param callback A callback function that is called periodically during mixdown, reporting progress if length > 0. Can be NULL.
|
||||
* \param data Pass through parameter that is passed to the callback.
|
||||
* \return An error message or NULL in case of success.
|
||||
* \param error String buffer to copy the error message to in case of failure.
|
||||
* \param errorsize The size of the error buffer.
|
||||
* \return Whether or not the operation succeeded.
|
||||
*/
|
||||
extern AUD_API const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length,
|
||||
extern AUD_API int AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length,
|
||||
unsigned int buffersize, const char* filename,
|
||||
AUD_DeviceSpecs specs, AUD_Container format,
|
||||
AUD_Codec codec, unsigned int bitrate,
|
||||
void(*callback)(float, void*), void* data);
|
||||
void(*callback)(float, void*), void* data, char* error, size_t errorsize);
|
||||
|
||||
/**
|
||||
* Opens a read device and prepares it for mixdown of the sound scene.
|
||||
|
10
extern/audaspace/include/util/Buffer.h
vendored
10
extern/audaspace/include/util/Buffer.h
vendored
@@ -34,7 +34,7 @@ class AUD_API Buffer
|
||||
{
|
||||
private:
|
||||
/// The size of the buffer in bytes.
|
||||
int m_size;
|
||||
long long m_size;
|
||||
|
||||
/// The pointer to the buffer memory.
|
||||
data_t* m_buffer;
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
* Creates a new buffer.
|
||||
* \param size The size of the buffer in bytes.
|
||||
*/
|
||||
Buffer(int size = 0);
|
||||
Buffer(long long size = 0);
|
||||
|
||||
/**
|
||||
* Destroys the buffer.
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
/**
|
||||
* Returns the size of the buffer in bytes.
|
||||
*/
|
||||
int getSize() const;
|
||||
long long getSize() const;
|
||||
|
||||
/**
|
||||
* Resizes the buffer.
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
* \param keep Whether to keep the old data. If the new buffer is smaller,
|
||||
* the data at the end will be lost.
|
||||
*/
|
||||
void resize(int size, bool keep = false);
|
||||
void resize(long long size, bool keep = false);
|
||||
|
||||
/**
|
||||
* Makes sure the buffer has a minimum size.
|
||||
@@ -81,7 +81,7 @@ public:
|
||||
* \param keep Whether to keep the old data. If the new buffer is smaller,
|
||||
* the data at the end will be lost.
|
||||
*/
|
||||
void assureSize(int size, bool keep = false);
|
||||
void assureSize(long long size, bool keep = false);
|
||||
};
|
||||
|
||||
AUD_NAMESPACE_END
|
||||
|
@@ -361,7 +361,7 @@ int FFMPEGReader::read_packet(void* opaque, uint8_t* buf, int buf_size)
|
||||
{
|
||||
FFMPEGReader* reader = reinterpret_cast<FFMPEGReader*>(opaque);
|
||||
|
||||
int size = std::min(buf_size, reader->m_membuffer->getSize() - reader->m_membufferpos);
|
||||
long long size = std::min(static_cast<long long>(buf_size), reader->m_membuffer->getSize() - reader->m_membufferpos);
|
||||
|
||||
if(size < 0)
|
||||
return -1;
|
||||
|
@@ -114,7 +114,7 @@ private:
|
||||
/**
|
||||
* Reading position of the buffer.
|
||||
*/
|
||||
int m_membufferpos;
|
||||
long long m_membufferpos;
|
||||
|
||||
/**
|
||||
* Whether the audio data has to be interleaved after reading.
|
||||
|
@@ -23,7 +23,9 @@
|
||||
extern "C" {
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libavformat/avio.h>
|
||||
#if LIBAVCODEC_VERSION_MAJOR >= 59
|
||||
#include <libavutil/channel_layout.h>
|
||||
#endif
|
||||
}
|
||||
|
||||
AUD_NAMESPACE_BEGIN
|
||||
@@ -398,7 +400,7 @@ FFMPEGWriter::FFMPEGWriter(std::string filename, DeviceSpecs specs, Container fo
|
||||
m_specs.rate = m_codecCtx->sample_rate;
|
||||
|
||||
#ifdef FFMPEG_OLD_CODE
|
||||
m_codecCtx->codec_id = outputFmt->audio_codec;
|
||||
m_codecCtx->codec_id = audio_codec;
|
||||
#endif
|
||||
|
||||
m_codecCtx->codec_type = AVMEDIA_TYPE_AUDIO;
|
||||
|
@@ -41,7 +41,7 @@ double PulseAudioDevice::PulseAudioSynchronizer::getPosition(std::shared_ptr<IHa
|
||||
|
||||
void PulseAudioDevice::updateRingBuffer()
|
||||
{
|
||||
unsigned int samplesize = AUD_SAMPLE_SIZE(m_specs);
|
||||
unsigned int samplesize = AUD_DEVICE_SAMPLE_SIZE(m_specs);
|
||||
|
||||
std::unique_lock<std::mutex> lock(m_mixingLock);
|
||||
|
||||
|
8
extern/audaspace/src/util/Buffer.cpp
vendored
8
extern/audaspace/src/util/Buffer.cpp
vendored
@@ -25,7 +25,7 @@
|
||||
|
||||
AUD_NAMESPACE_BEGIN
|
||||
|
||||
Buffer::Buffer(int size)
|
||||
Buffer::Buffer(long long size)
|
||||
{
|
||||
m_size = size;
|
||||
m_buffer = (data_t*) std::malloc(size + ALIGNMENT);
|
||||
@@ -41,12 +41,12 @@ sample_t* Buffer::getBuffer() const
|
||||
return (sample_t*) ALIGN(m_buffer);
|
||||
}
|
||||
|
||||
int Buffer::getSize() const
|
||||
long long Buffer::getSize() const
|
||||
{
|
||||
return m_size;
|
||||
}
|
||||
|
||||
void Buffer::resize(int size, bool keep)
|
||||
void Buffer::resize(long long size, bool keep)
|
||||
{
|
||||
if(keep)
|
||||
{
|
||||
@@ -63,7 +63,7 @@ void Buffer::resize(int size, bool keep)
|
||||
m_size = size;
|
||||
}
|
||||
|
||||
void Buffer::assureSize(int size, bool keep)
|
||||
void Buffer::assureSize(long long size, bool keep)
|
||||
{
|
||||
if(m_size < size)
|
||||
resize(size, keep);
|
||||
|
18
extern/audaspace/src/util/StreamBuffer.cpp
vendored
18
extern/audaspace/src/util/StreamBuffer.cpp
vendored
@@ -18,8 +18,12 @@
|
||||
#include "util/BufferReader.h"
|
||||
#include "util/Buffer.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
// 5 sec * 48000 samples/sec * 4 bytes/sample * 6 channels
|
||||
#define BUFFER_RESIZE_BYTES 5760000
|
||||
// 90 min * 60 sec/min * 48000 samples/sec * 4 bytes/sample * 2 channels
|
||||
#define MAXIMUM_INITIAL_BUFFER_SIZE_BYTES 2073600000
|
||||
|
||||
AUD_NAMESPACE_BEGIN
|
||||
|
||||
@@ -32,14 +36,15 @@ StreamBuffer::StreamBuffer(std::shared_ptr<ISound> sound) :
|
||||
|
||||
int sample_size = AUD_SAMPLE_SIZE(m_specs);
|
||||
int length;
|
||||
int index = 0;
|
||||
long long index = 0;
|
||||
bool eos = false;
|
||||
|
||||
// get an approximated size if possible
|
||||
int size = reader->getLength();
|
||||
long long size = std::min(reader->getLength(), MAXIMUM_INITIAL_BUFFER_SIZE_BYTES / sample_size);
|
||||
long long size_increase = BUFFER_RESIZE_BYTES / sample_size;
|
||||
|
||||
if(size <= 0)
|
||||
size = BUFFER_RESIZE_BYTES / sample_size;
|
||||
size = size_increase;
|
||||
else
|
||||
size += m_specs.rate;
|
||||
|
||||
@@ -47,13 +52,16 @@ StreamBuffer::StreamBuffer(std::shared_ptr<ISound> sound) :
|
||||
while(!eos)
|
||||
{
|
||||
// increase
|
||||
m_buffer->resize(size*sample_size, true);
|
||||
m_buffer->resize(static_cast<long long>(size) * sample_size, true);
|
||||
|
||||
// read more
|
||||
length = size-index;
|
||||
reader->read(length, eos, m_buffer->getBuffer() + index * m_specs.channels);
|
||||
if(index == m_buffer->getSize() / sample_size)
|
||||
size += BUFFER_RESIZE_BYTES / sample_size;
|
||||
{
|
||||
size += size_increase;
|
||||
size_increase <<= 1;
|
||||
}
|
||||
index += length;
|
||||
}
|
||||
|
||||
|
661
extern/ceres/CMakeLists.txt
vendored
661
extern/ceres/CMakeLists.txt
vendored
@@ -1,16 +1,11 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2012 Blender Foundation. All rights reserved.
|
||||
|
||||
# NOTE: This file is automatically generated by bundle.sh script
|
||||
# If you're doing changes in this file, please update template
|
||||
# in that script too
|
||||
|
||||
set(INC
|
||||
.
|
||||
include
|
||||
internal
|
||||
config
|
||||
../gflags/src
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
@@ -20,279 +15,296 @@ set(INC_SYS
|
||||
)
|
||||
|
||||
set(SRC
|
||||
internal/ceres/accelerate_sparse.cc
|
||||
internal/ceres/array_utils.cc
|
||||
internal/ceres/blas.cc
|
||||
internal/ceres/block_evaluate_preparer.cc
|
||||
internal/ceres/block_jacobian_writer.cc
|
||||
internal/ceres/block_jacobi_preconditioner.cc
|
||||
internal/ceres/block_random_access_dense_matrix.cc
|
||||
internal/ceres/block_random_access_diagonal_matrix.cc
|
||||
internal/ceres/block_random_access_matrix.cc
|
||||
internal/ceres/block_random_access_sparse_matrix.cc
|
||||
internal/ceres/block_sparse_matrix.cc
|
||||
internal/ceres/block_structure.cc
|
||||
internal/ceres/callbacks.cc
|
||||
internal/ceres/canonical_views_clustering.cc
|
||||
internal/ceres/c_api.cc
|
||||
internal/ceres/cgnr_solver.cc
|
||||
internal/ceres/compressed_col_sparse_matrix_utils.cc
|
||||
internal/ceres/compressed_row_jacobian_writer.cc
|
||||
internal/ceres/compressed_row_sparse_matrix.cc
|
||||
internal/ceres/conditioned_cost_function.cc
|
||||
internal/ceres/conjugate_gradients_solver.cc
|
||||
internal/ceres/context.cc
|
||||
internal/ceres/context_impl.cc
|
||||
internal/ceres/coordinate_descent_minimizer.cc
|
||||
internal/ceres/corrector.cc
|
||||
internal/ceres/covariance.cc
|
||||
internal/ceres/covariance_impl.cc
|
||||
internal/ceres/cxsparse.cc
|
||||
internal/ceres/dense_normal_cholesky_solver.cc
|
||||
internal/ceres/dense_qr_solver.cc
|
||||
internal/ceres/dense_sparse_matrix.cc
|
||||
internal/ceres/detect_structure.cc
|
||||
internal/ceres/dogleg_strategy.cc
|
||||
internal/ceres/dynamic_compressed_row_jacobian_writer.cc
|
||||
internal/ceres/dynamic_compressed_row_sparse_matrix.cc
|
||||
internal/ceres/dynamic_sparse_normal_cholesky_solver.cc
|
||||
internal/ceres/eigensparse.cc
|
||||
internal/ceres/evaluator.cc
|
||||
internal/ceres/file.cc
|
||||
internal/ceres/float_cxsparse.cc
|
||||
internal/ceres/float_suitesparse.cc
|
||||
internal/ceres/function_sample.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_d_d_d.cc
|
||||
internal/ceres/generated/schur_eliminator_d_d_d.cc
|
||||
internal/ceres/gradient_checker.cc
|
||||
internal/ceres/gradient_checking_cost_function.cc
|
||||
internal/ceres/gradient_problem.cc
|
||||
internal/ceres/gradient_problem_solver.cc
|
||||
internal/ceres/implicit_schur_complement.cc
|
||||
internal/ceres/inner_product_computer.cc
|
||||
internal/ceres/is_close.cc
|
||||
internal/ceres/iterative_refiner.cc
|
||||
internal/ceres/iterative_schur_complement_solver.cc
|
||||
internal/ceres/lapack.cc
|
||||
internal/ceres/levenberg_marquardt_strategy.cc
|
||||
internal/ceres/linear_least_squares_problems.cc
|
||||
internal/ceres/linear_operator.cc
|
||||
internal/ceres/linear_solver.cc
|
||||
internal/ceres/line_search.cc
|
||||
internal/ceres/line_search_direction.cc
|
||||
internal/ceres/line_search_minimizer.cc
|
||||
internal/ceres/line_search_preprocessor.cc
|
||||
internal/ceres/local_parameterization.cc
|
||||
internal/ceres/loss_function.cc
|
||||
internal/ceres/low_rank_inverse_hessian.cc
|
||||
internal/ceres/minimizer.cc
|
||||
internal/ceres/normal_prior.cc
|
||||
internal/ceres/parallel_for_cxx.cc
|
||||
internal/ceres/parallel_for_nothreads.cc
|
||||
internal/ceres/parallel_for_openmp.cc
|
||||
internal/ceres/parallel_utils.cc
|
||||
internal/ceres/parameter_block_ordering.cc
|
||||
internal/ceres/partitioned_matrix_view.cc
|
||||
internal/ceres/polynomial.cc
|
||||
internal/ceres/preconditioner.cc
|
||||
internal/ceres/preprocessor.cc
|
||||
internal/ceres/problem.cc
|
||||
internal/ceres/problem_impl.cc
|
||||
internal/ceres/program.cc
|
||||
internal/ceres/reorder_program.cc
|
||||
internal/ceres/residual_block.cc
|
||||
internal/ceres/residual_block_utils.cc
|
||||
internal/ceres/schur_complement_solver.cc
|
||||
internal/ceres/schur_eliminator.cc
|
||||
internal/ceres/schur_jacobi_preconditioner.cc
|
||||
internal/ceres/schur_templates.cc
|
||||
internal/ceres/scratch_evaluate_preparer.cc
|
||||
internal/ceres/single_linkage_clustering.cc
|
||||
internal/ceres/solver.cc
|
||||
internal/ceres/solver_utils.cc
|
||||
internal/ceres/sparse_cholesky.cc
|
||||
internal/ceres/sparse_matrix.cc
|
||||
internal/ceres/sparse_normal_cholesky_solver.cc
|
||||
internal/ceres/split.cc
|
||||
internal/ceres/stringprintf.cc
|
||||
internal/ceres/subset_preconditioner.cc
|
||||
internal/ceres/suitesparse.cc
|
||||
internal/ceres/thread_pool.cc
|
||||
internal/ceres/thread_token_provider.cc
|
||||
internal/ceres/triplet_sparse_matrix.cc
|
||||
internal/ceres/trust_region_minimizer.cc
|
||||
internal/ceres/trust_region_preprocessor.cc
|
||||
internal/ceres/trust_region_step_evaluator.cc
|
||||
internal/ceres/trust_region_strategy.cc
|
||||
internal/ceres/types.cc
|
||||
internal/ceres/visibility_based_preconditioner.cc
|
||||
internal/ceres/visibility.cc
|
||||
internal/ceres/wall_time.cc
|
||||
include/ceres/autodiff_cost_function.h
|
||||
include/ceres/autodiff_first_order_function.h
|
||||
include/ceres/autodiff_local_parameterization.h
|
||||
include/ceres/autodiff_manifold.h
|
||||
include/ceres/c_api.h
|
||||
include/ceres/ceres.h
|
||||
include/ceres/conditioned_cost_function.h
|
||||
include/ceres/context.h
|
||||
include/ceres/cost_function.h
|
||||
include/ceres/cost_function_to_functor.h
|
||||
include/ceres/covariance.h
|
||||
include/ceres/crs_matrix.h
|
||||
include/ceres/cubic_interpolation.h
|
||||
include/ceres/dynamic_autodiff_cost_function.h
|
||||
include/ceres/dynamic_cost_function.h
|
||||
include/ceres/dynamic_cost_function_to_functor.h
|
||||
include/ceres/dynamic_numeric_diff_cost_function.h
|
||||
include/ceres/evaluation_callback.h
|
||||
include/ceres/first_order_function.h
|
||||
include/ceres/gradient_checker.h
|
||||
include/ceres/gradient_problem.h
|
||||
include/ceres/gradient_problem_solver.h
|
||||
include/ceres/iteration_callback.h
|
||||
include/ceres/jet.h
|
||||
include/ceres/jet_fwd.h
|
||||
include/ceres/line_manifold.h
|
||||
include/ceres/local_parameterization.h
|
||||
include/ceres/loss_function.h
|
||||
include/ceres/manifold.h
|
||||
include/ceres/manifold_test_utils.h
|
||||
include/ceres/normal_prior.h
|
||||
include/ceres/numeric_diff_cost_function.h
|
||||
include/ceres/numeric_diff_first_order_function.h
|
||||
include/ceres/numeric_diff_options.h
|
||||
include/ceres/ordered_groups.h
|
||||
include/ceres/problem.h
|
||||
include/ceres/product_manifold.h
|
||||
include/ceres/rotation.h
|
||||
include/ceres/sized_cost_function.h
|
||||
include/ceres/solver.h
|
||||
include/ceres/sphere_manifold.h
|
||||
include/ceres/tiny_solver.h
|
||||
include/ceres/tiny_solver_autodiff_function.h
|
||||
include/ceres/tiny_solver_cost_function_adapter.h
|
||||
include/ceres/types.h
|
||||
include/ceres/version.h
|
||||
|
||||
include/ceres/autodiff_cost_function.h
|
||||
include/ceres/autodiff_first_order_function.h
|
||||
include/ceres/autodiff_local_parameterization.h
|
||||
include/ceres/c_api.h
|
||||
include/ceres/ceres.h
|
||||
include/ceres/conditioned_cost_function.h
|
||||
include/ceres/context.h
|
||||
include/ceres/cost_function.h
|
||||
include/ceres/cost_function_to_functor.h
|
||||
include/ceres/covariance.h
|
||||
include/ceres/crs_matrix.h
|
||||
include/ceres/cubic_interpolation.h
|
||||
include/ceres/dynamic_autodiff_cost_function.h
|
||||
include/ceres/dynamic_cost_function.h
|
||||
include/ceres/dynamic_cost_function_to_functor.h
|
||||
include/ceres/dynamic_numeric_diff_cost_function.h
|
||||
include/ceres/evaluation_callback.h
|
||||
include/ceres/first_order_function.h
|
||||
include/ceres/gradient_checker.h
|
||||
include/ceres/gradient_problem.h
|
||||
include/ceres/gradient_problem_solver.h
|
||||
include/ceres/internal/array_selector.h
|
||||
include/ceres/internal/autodiff.h
|
||||
include/ceres/internal/disable_warnings.h
|
||||
include/ceres/internal/eigen.h
|
||||
include/ceres/internal/fixed_array.h
|
||||
include/ceres/internal/householder_vector.h
|
||||
include/ceres/internal/integer_sequence_algorithm.h
|
||||
include/ceres/internal/line_parameterization.h
|
||||
include/ceres/internal/memory.h
|
||||
include/ceres/internal/numeric_diff.h
|
||||
include/ceres/internal/parameter_dims.h
|
||||
include/ceres/internal/port.h
|
||||
include/ceres/internal/reenable_warnings.h
|
||||
include/ceres/internal/variadic_evaluate.h
|
||||
include/ceres/iteration_callback.h
|
||||
include/ceres/jet.h
|
||||
include/ceres/local_parameterization.h
|
||||
include/ceres/loss_function.h
|
||||
include/ceres/normal_prior.h
|
||||
include/ceres/numeric_diff_cost_function.h
|
||||
include/ceres/numeric_diff_options.h
|
||||
include/ceres/ordered_groups.h
|
||||
include/ceres/problem.h
|
||||
include/ceres/rotation.h
|
||||
include/ceres/sized_cost_function.h
|
||||
include/ceres/solver.h
|
||||
include/ceres/tiny_solver_autodiff_function.h
|
||||
include/ceres/tiny_solver_cost_function_adapter.h
|
||||
include/ceres/tiny_solver.h
|
||||
include/ceres/types.h
|
||||
include/ceres/version.h
|
||||
internal/ceres/accelerate_sparse.h
|
||||
internal/ceres/array_utils.h
|
||||
internal/ceres/blas.h
|
||||
internal/ceres/block_evaluate_preparer.h
|
||||
internal/ceres/block_jacobian_writer.h
|
||||
internal/ceres/block_jacobi_preconditioner.h
|
||||
internal/ceres/block_random_access_dense_matrix.h
|
||||
internal/ceres/block_random_access_diagonal_matrix.h
|
||||
internal/ceres/block_random_access_matrix.h
|
||||
internal/ceres/block_random_access_sparse_matrix.h
|
||||
internal/ceres/block_sparse_matrix.h
|
||||
internal/ceres/block_structure.h
|
||||
internal/ceres/callbacks.h
|
||||
internal/ceres/canonical_views_clustering.h
|
||||
internal/ceres/casts.h
|
||||
internal/ceres/cgnr_linear_operator.h
|
||||
internal/ceres/cgnr_solver.h
|
||||
internal/ceres/compressed_col_sparse_matrix_utils.h
|
||||
internal/ceres/compressed_row_jacobian_writer.h
|
||||
internal/ceres/compressed_row_sparse_matrix.h
|
||||
internal/ceres/concurrent_queue.h
|
||||
internal/ceres/conjugate_gradients_solver.h
|
||||
internal/ceres/context_impl.h
|
||||
internal/ceres/coordinate_descent_minimizer.h
|
||||
internal/ceres/corrector.h
|
||||
internal/ceres/covariance_impl.h
|
||||
internal/ceres/cxsparse.h
|
||||
internal/ceres/dense_jacobian_writer.h
|
||||
internal/ceres/dense_normal_cholesky_solver.h
|
||||
internal/ceres/dense_qr_solver.h
|
||||
internal/ceres/dense_sparse_matrix.h
|
||||
internal/ceres/detect_structure.h
|
||||
internal/ceres/dogleg_strategy.h
|
||||
internal/ceres/dynamic_compressed_row_finalizer.h
|
||||
internal/ceres/dynamic_compressed_row_jacobian_writer.h
|
||||
internal/ceres/dynamic_compressed_row_sparse_matrix.h
|
||||
internal/ceres/dynamic_sparse_normal_cholesky_solver.h
|
||||
internal/ceres/eigensparse.h
|
||||
internal/ceres/evaluator.h
|
||||
internal/ceres/execution_summary.h
|
||||
internal/ceres/file.h
|
||||
internal/ceres/float_cxsparse.h
|
||||
internal/ceres/float_suitesparse.h
|
||||
internal/ceres/function_sample.h
|
||||
internal/ceres/gradient_checking_cost_function.h
|
||||
internal/ceres/gradient_problem_evaluator.h
|
||||
internal/ceres/graph_algorithms.h
|
||||
internal/ceres/graph.h
|
||||
internal/ceres/implicit_schur_complement.h
|
||||
internal/ceres/inner_product_computer.h
|
||||
internal/ceres/invert_psd_matrix.h
|
||||
internal/ceres/is_close.h
|
||||
internal/ceres/iterative_refiner.h
|
||||
internal/ceres/iterative_schur_complement_solver.h
|
||||
internal/ceres/lapack.h
|
||||
internal/ceres/levenberg_marquardt_strategy.h
|
||||
internal/ceres/linear_least_squares_problems.h
|
||||
internal/ceres/linear_operator.h
|
||||
internal/ceres/linear_solver.h
|
||||
internal/ceres/line_search_direction.h
|
||||
internal/ceres/line_search.h
|
||||
internal/ceres/line_search_minimizer.h
|
||||
internal/ceres/line_search_preprocessor.h
|
||||
internal/ceres/low_rank_inverse_hessian.h
|
||||
internal/ceres/map_util.h
|
||||
internal/ceres/minimizer.h
|
||||
internal/ceres/pair_hash.h
|
||||
internal/ceres/parallel_for.h
|
||||
internal/ceres/parallel_utils.h
|
||||
internal/ceres/parameter_block.h
|
||||
internal/ceres/parameter_block_ordering.h
|
||||
internal/ceres/partitioned_matrix_view.h
|
||||
internal/ceres/partitioned_matrix_view_impl.h
|
||||
internal/ceres/polynomial.h
|
||||
internal/ceres/preconditioner.h
|
||||
internal/ceres/preprocessor.h
|
||||
internal/ceres/problem_impl.h
|
||||
internal/ceres/program_evaluator.h
|
||||
internal/ceres/program.h
|
||||
internal/ceres/random.h
|
||||
internal/ceres/reorder_program.h
|
||||
internal/ceres/residual_block.h
|
||||
internal/ceres/residual_block_utils.h
|
||||
internal/ceres/schur_complement_solver.h
|
||||
internal/ceres/schur_eliminator.h
|
||||
internal/ceres/schur_eliminator_impl.h
|
||||
internal/ceres/schur_jacobi_preconditioner.h
|
||||
internal/ceres/schur_templates.h
|
||||
internal/ceres/scoped_thread_token.h
|
||||
internal/ceres/scratch_evaluate_preparer.h
|
||||
internal/ceres/single_linkage_clustering.h
|
||||
internal/ceres/small_blas_generic.h
|
||||
internal/ceres/small_blas.h
|
||||
internal/ceres/solver_utils.h
|
||||
internal/ceres/sparse_cholesky.h
|
||||
internal/ceres/sparse_matrix.h
|
||||
internal/ceres/sparse_normal_cholesky_solver.h
|
||||
internal/ceres/split.h
|
||||
internal/ceres/stl_util.h
|
||||
internal/ceres/stringprintf.h
|
||||
internal/ceres/subset_preconditioner.h
|
||||
internal/ceres/suitesparse.h
|
||||
internal/ceres/thread_pool.h
|
||||
internal/ceres/thread_token_provider.h
|
||||
internal/ceres/triplet_sparse_matrix.h
|
||||
internal/ceres/trust_region_minimizer.h
|
||||
internal/ceres/trust_region_preprocessor.h
|
||||
internal/ceres/trust_region_step_evaluator.h
|
||||
internal/ceres/trust_region_strategy.h
|
||||
internal/ceres/visibility_based_preconditioner.h
|
||||
internal/ceres/visibility.h
|
||||
internal/ceres/wall_time.h
|
||||
include/ceres/internal/array_selector.h
|
||||
include/ceres/internal/autodiff.h
|
||||
include/ceres/internal/disable_warnings.h
|
||||
include/ceres/internal/eigen.h
|
||||
include/ceres/internal/fixed_array.h
|
||||
include/ceres/internal/householder_vector.h
|
||||
include/ceres/internal/integer_sequence_algorithm.h
|
||||
include/ceres/internal/jet_traits.h
|
||||
include/ceres/internal/line_parameterization.h
|
||||
include/ceres/internal/memory.h
|
||||
include/ceres/internal/numeric_diff.h
|
||||
include/ceres/internal/parameter_dims.h
|
||||
include/ceres/internal/port.h
|
||||
include/ceres/internal/reenable_warnings.h
|
||||
include/ceres/internal/sphere_manifold_functions.h
|
||||
include/ceres/internal/variadic_evaluate.h
|
||||
|
||||
internal/ceres/accelerate_sparse.cc
|
||||
internal/ceres/accelerate_sparse.h
|
||||
internal/ceres/array_utils.cc
|
||||
internal/ceres/array_utils.h
|
||||
internal/ceres/block_evaluate_preparer.cc
|
||||
internal/ceres/block_evaluate_preparer.h
|
||||
internal/ceres/block_jacobi_preconditioner.cc
|
||||
internal/ceres/block_jacobi_preconditioner.h
|
||||
internal/ceres/block_jacobian_writer.cc
|
||||
internal/ceres/block_jacobian_writer.h
|
||||
internal/ceres/block_random_access_dense_matrix.cc
|
||||
internal/ceres/block_random_access_dense_matrix.h
|
||||
internal/ceres/block_random_access_diagonal_matrix.cc
|
||||
internal/ceres/block_random_access_diagonal_matrix.h
|
||||
internal/ceres/block_random_access_matrix.cc
|
||||
internal/ceres/block_random_access_matrix.h
|
||||
internal/ceres/block_random_access_sparse_matrix.cc
|
||||
internal/ceres/block_random_access_sparse_matrix.h
|
||||
internal/ceres/block_sparse_matrix.cc
|
||||
internal/ceres/block_sparse_matrix.h
|
||||
internal/ceres/block_structure.cc
|
||||
internal/ceres/block_structure.h
|
||||
internal/ceres/c_api.cc
|
||||
internal/ceres/callbacks.cc
|
||||
internal/ceres/callbacks.h
|
||||
internal/ceres/canonical_views_clustering.cc
|
||||
internal/ceres/canonical_views_clustering.h
|
||||
internal/ceres/casts.h
|
||||
internal/ceres/cgnr_linear_operator.h
|
||||
internal/ceres/cgnr_solver.cc
|
||||
internal/ceres/cgnr_solver.h
|
||||
internal/ceres/compressed_col_sparse_matrix_utils.cc
|
||||
internal/ceres/compressed_col_sparse_matrix_utils.h
|
||||
internal/ceres/compressed_row_jacobian_writer.cc
|
||||
internal/ceres/compressed_row_jacobian_writer.h
|
||||
internal/ceres/compressed_row_sparse_matrix.cc
|
||||
internal/ceres/compressed_row_sparse_matrix.h
|
||||
internal/ceres/concurrent_queue.h
|
||||
internal/ceres/conditioned_cost_function.cc
|
||||
internal/ceres/conjugate_gradients_solver.cc
|
||||
internal/ceres/conjugate_gradients_solver.h
|
||||
internal/ceres/context.cc
|
||||
internal/ceres/context_impl.cc
|
||||
internal/ceres/context_impl.h
|
||||
internal/ceres/coordinate_descent_minimizer.cc
|
||||
internal/ceres/coordinate_descent_minimizer.h
|
||||
internal/ceres/corrector.cc
|
||||
internal/ceres/corrector.h
|
||||
internal/ceres/cost_function.cc
|
||||
internal/ceres/covariance.cc
|
||||
internal/ceres/covariance_impl.cc
|
||||
internal/ceres/covariance_impl.h
|
||||
internal/ceres/cuda_buffer.h
|
||||
internal/ceres/cxsparse.cc
|
||||
internal/ceres/cxsparse.h
|
||||
internal/ceres/dense_cholesky.cc
|
||||
internal/ceres/dense_cholesky.h
|
||||
internal/ceres/dense_jacobian_writer.h
|
||||
internal/ceres/dense_normal_cholesky_solver.cc
|
||||
internal/ceres/dense_normal_cholesky_solver.h
|
||||
internal/ceres/dense_qr.cc
|
||||
internal/ceres/dense_qr.h
|
||||
internal/ceres/dense_qr_solver.cc
|
||||
internal/ceres/dense_qr_solver.h
|
||||
internal/ceres/dense_sparse_matrix.cc
|
||||
internal/ceres/dense_sparse_matrix.h
|
||||
internal/ceres/detect_structure.cc
|
||||
internal/ceres/detect_structure.h
|
||||
internal/ceres/dogleg_strategy.cc
|
||||
internal/ceres/dogleg_strategy.h
|
||||
internal/ceres/dynamic_compressed_row_finalizer.h
|
||||
internal/ceres/dynamic_compressed_row_jacobian_writer.cc
|
||||
internal/ceres/dynamic_compressed_row_jacobian_writer.h
|
||||
internal/ceres/dynamic_compressed_row_sparse_matrix.cc
|
||||
internal/ceres/dynamic_compressed_row_sparse_matrix.h
|
||||
internal/ceres/dynamic_sparse_normal_cholesky_solver.cc
|
||||
internal/ceres/dynamic_sparse_normal_cholesky_solver.h
|
||||
internal/ceres/eigensparse.cc
|
||||
internal/ceres/eigensparse.h
|
||||
internal/ceres/evaluation_callback.cc
|
||||
internal/ceres/evaluator.cc
|
||||
internal/ceres/evaluator.h
|
||||
internal/ceres/execution_summary.h
|
||||
internal/ceres/file.cc
|
||||
internal/ceres/file.h
|
||||
internal/ceres/first_order_function.cc
|
||||
internal/ceres/float_cxsparse.cc
|
||||
internal/ceres/float_cxsparse.h
|
||||
internal/ceres/float_suitesparse.cc
|
||||
internal/ceres/float_suitesparse.h
|
||||
internal/ceres/function_sample.cc
|
||||
internal/ceres/function_sample.h
|
||||
internal/ceres/gradient_checker.cc
|
||||
internal/ceres/gradient_checking_cost_function.cc
|
||||
internal/ceres/gradient_checking_cost_function.h
|
||||
internal/ceres/gradient_problem.cc
|
||||
internal/ceres/gradient_problem_evaluator.h
|
||||
internal/ceres/gradient_problem_solver.cc
|
||||
internal/ceres/graph.h
|
||||
internal/ceres/graph_algorithms.h
|
||||
internal/ceres/implicit_schur_complement.cc
|
||||
internal/ceres/implicit_schur_complement.h
|
||||
internal/ceres/inner_product_computer.cc
|
||||
internal/ceres/inner_product_computer.h
|
||||
internal/ceres/invert_psd_matrix.h
|
||||
internal/ceres/is_close.cc
|
||||
internal/ceres/is_close.h
|
||||
internal/ceres/iteration_callback.cc
|
||||
internal/ceres/iterative_refiner.cc
|
||||
internal/ceres/iterative_refiner.h
|
||||
internal/ceres/iterative_schur_complement_solver.cc
|
||||
internal/ceres/iterative_schur_complement_solver.h
|
||||
internal/ceres/levenberg_marquardt_strategy.cc
|
||||
internal/ceres/levenberg_marquardt_strategy.h
|
||||
internal/ceres/line_search.cc
|
||||
internal/ceres/line_search.h
|
||||
internal/ceres/line_search_direction.cc
|
||||
internal/ceres/line_search_direction.h
|
||||
internal/ceres/line_search_minimizer.cc
|
||||
internal/ceres/line_search_minimizer.h
|
||||
internal/ceres/line_search_preprocessor.cc
|
||||
internal/ceres/line_search_preprocessor.h
|
||||
internal/ceres/linear_least_squares_problems.cc
|
||||
internal/ceres/linear_least_squares_problems.h
|
||||
internal/ceres/linear_operator.cc
|
||||
internal/ceres/linear_operator.h
|
||||
internal/ceres/linear_solver.cc
|
||||
internal/ceres/linear_solver.h
|
||||
internal/ceres/local_parameterization.cc
|
||||
internal/ceres/loss_function.cc
|
||||
internal/ceres/low_rank_inverse_hessian.cc
|
||||
internal/ceres/low_rank_inverse_hessian.h
|
||||
internal/ceres/manifold.cc
|
||||
internal/ceres/manifold_adapter.h
|
||||
internal/ceres/map_util.h
|
||||
internal/ceres/minimizer.cc
|
||||
internal/ceres/minimizer.h
|
||||
internal/ceres/normal_prior.cc
|
||||
internal/ceres/pair_hash.h
|
||||
internal/ceres/parallel_for.h
|
||||
internal/ceres/parallel_for_cxx.cc
|
||||
internal/ceres/parallel_for_nothreads.cc
|
||||
internal/ceres/parallel_for_openmp.cc
|
||||
internal/ceres/parallel_utils.cc
|
||||
internal/ceres/parallel_utils.h
|
||||
internal/ceres/parameter_block.h
|
||||
internal/ceres/parameter_block_ordering.cc
|
||||
internal/ceres/parameter_block_ordering.h
|
||||
internal/ceres/partitioned_matrix_view.cc
|
||||
internal/ceres/partitioned_matrix_view.h
|
||||
internal/ceres/partitioned_matrix_view_impl.h
|
||||
internal/ceres/polynomial.cc
|
||||
internal/ceres/polynomial.h
|
||||
internal/ceres/preconditioner.cc
|
||||
internal/ceres/preconditioner.h
|
||||
internal/ceres/preprocessor.cc
|
||||
internal/ceres/preprocessor.h
|
||||
internal/ceres/problem.cc
|
||||
internal/ceres/problem_impl.cc
|
||||
internal/ceres/problem_impl.h
|
||||
internal/ceres/program.cc
|
||||
internal/ceres/program.h
|
||||
internal/ceres/program_evaluator.h
|
||||
internal/ceres/random.h
|
||||
internal/ceres/reorder_program.cc
|
||||
internal/ceres/reorder_program.h
|
||||
internal/ceres/residual_block.cc
|
||||
internal/ceres/residual_block.h
|
||||
internal/ceres/residual_block_utils.cc
|
||||
internal/ceres/residual_block_utils.h
|
||||
internal/ceres/schur_complement_solver.cc
|
||||
internal/ceres/schur_complement_solver.h
|
||||
internal/ceres/schur_eliminator.cc
|
||||
internal/ceres/schur_eliminator.h
|
||||
internal/ceres/schur_eliminator_impl.h
|
||||
internal/ceres/schur_jacobi_preconditioner.cc
|
||||
internal/ceres/schur_jacobi_preconditioner.h
|
||||
internal/ceres/schur_templates.cc
|
||||
internal/ceres/schur_templates.h
|
||||
internal/ceres/scoped_thread_token.h
|
||||
internal/ceres/scratch_evaluate_preparer.cc
|
||||
internal/ceres/scratch_evaluate_preparer.h
|
||||
internal/ceres/single_linkage_clustering.cc
|
||||
internal/ceres/single_linkage_clustering.h
|
||||
internal/ceres/small_blas.h
|
||||
internal/ceres/small_blas_generic.h
|
||||
internal/ceres/solver.cc
|
||||
internal/ceres/solver_utils.cc
|
||||
internal/ceres/solver_utils.h
|
||||
internal/ceres/sparse_cholesky.cc
|
||||
internal/ceres/sparse_cholesky.h
|
||||
internal/ceres/sparse_matrix.cc
|
||||
internal/ceres/sparse_matrix.h
|
||||
internal/ceres/sparse_normal_cholesky_solver.cc
|
||||
internal/ceres/sparse_normal_cholesky_solver.h
|
||||
internal/ceres/stl_util.h
|
||||
internal/ceres/stringprintf.cc
|
||||
internal/ceres/stringprintf.h
|
||||
internal/ceres/subset_preconditioner.cc
|
||||
internal/ceres/subset_preconditioner.h
|
||||
internal/ceres/suitesparse.cc
|
||||
internal/ceres/suitesparse.h
|
||||
internal/ceres/thread_pool.cc
|
||||
internal/ceres/thread_pool.h
|
||||
internal/ceres/thread_token_provider.cc
|
||||
internal/ceres/thread_token_provider.h
|
||||
internal/ceres/triplet_sparse_matrix.cc
|
||||
internal/ceres/triplet_sparse_matrix.h
|
||||
internal/ceres/trust_region_minimizer.cc
|
||||
internal/ceres/trust_region_minimizer.h
|
||||
internal/ceres/trust_region_preprocessor.cc
|
||||
internal/ceres/trust_region_preprocessor.h
|
||||
internal/ceres/trust_region_step_evaluator.cc
|
||||
internal/ceres/trust_region_step_evaluator.h
|
||||
internal/ceres/trust_region_strategy.cc
|
||||
internal/ceres/trust_region_strategy.h
|
||||
internal/ceres/types.cc
|
||||
internal/ceres/visibility.cc
|
||||
internal/ceres/visibility.h
|
||||
internal/ceres/visibility_based_preconditioner.cc
|
||||
internal/ceres/visibility_based_preconditioner.h
|
||||
internal/ceres/wall_time.cc
|
||||
internal/ceres/wall_time.h
|
||||
|
||||
internal/ceres/generated/partitioned_matrix_view_d_d_d.cc
|
||||
internal/ceres/generated/schur_eliminator_d_d_d.cc
|
||||
)
|
||||
|
||||
set(LIB
|
||||
@@ -302,48 +314,48 @@ set(LIB
|
||||
|
||||
if(WITH_LIBMV_SCHUR_SPECIALIZATIONS)
|
||||
list(APPEND SRC
|
||||
internal/ceres/generated/partitioned_matrix_view_2_2_2.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_2_3.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_2_4.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_2_d.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_3_3.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_3_4.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_3_6.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_3_9.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_3_d.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_3.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_4.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_6.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_8.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_9.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_d.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_d_d.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_3_3_3.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_4_4_2.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_4_4_3.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_4_4_4.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_4_4_d.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_2.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_3.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_4.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_d.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_3.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_4.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_6.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_9.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_d.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_3.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_4.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_6.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_8.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_9.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_d.cc
|
||||
internal/ceres/generated/schur_eliminator_2_d_d.cc
|
||||
internal/ceres/generated/schur_eliminator_3_3_3.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_2.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_3.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_4.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_d.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_2_2.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_2_3.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_2_4.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_2_d.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_3_3.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_3_4.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_3_6.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_3_9.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_3_d.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_3.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_4.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_6.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_8.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_9.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_4_d.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_2_d_d.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_3_3_3.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_4_4_2.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_4_4_3.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_4_4_4.cc
|
||||
internal/ceres/generated/partitioned_matrix_view_4_4_d.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_2.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_3.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_4.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_d.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_3.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_4.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_6.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_9.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_d.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_3.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_4.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_6.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_8.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_9.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_d.cc
|
||||
internal/ceres/generated/schur_eliminator_2_d_d.cc
|
||||
internal/ceres/generated/schur_eliminator_3_3_3.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_2.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_3.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_4.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_d.cc
|
||||
)
|
||||
else()
|
||||
add_definitions(-DCERES_RESTRICT_SCHUR_SPECIALIZATION)
|
||||
@@ -351,16 +363,5 @@ endif()
|
||||
|
||||
add_definitions(${GFLAGS_DEFINES})
|
||||
add_definitions(${GLOG_DEFINES})
|
||||
add_definitions(${CERES_DEFINES})
|
||||
|
||||
add_definitions(
|
||||
-DCERES_HAVE_PTHREAD
|
||||
-DCERES_NO_SUITESPARSE
|
||||
-DCERES_NO_CXSPARSE
|
||||
-DCERES_NO_LAPACK
|
||||
-DCERES_NO_ACCELERATE_SPARSE
|
||||
-DCERES_HAVE_RWLOCK
|
||||
-DCERES_USE_CXX_THREADS
|
||||
)
|
||||
|
||||
blender_add_lib(extern_ceres "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
|
||||
|
596
extern/ceres/ChangeLog
vendored
596
extern/ceres/ChangeLog
vendored
@@ -1,596 +0,0 @@
|
||||
commit 399cda773035d99eaf1f4a129a666b3c4df9d1b1
|
||||
Author: Alex Stewart <alexs.mac@gmail.com>
|
||||
Date: Fri Oct 23 19:36:08 2020 +0100
|
||||
|
||||
Update build documentation to reflect detection of Eigen via config mode
|
||||
|
||||
Change-Id: I18d5f0fc1eb51ea630164c911d935e9bffea35ce
|
||||
|
||||
commit bb127272f9b57672bca48424f2d83bc430a46eb8
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Mon Oct 19 09:28:34 2020 -0700
|
||||
|
||||
Fix typos.
|
||||
|
||||
Contributed by Ishamis@, IanBoyanZhang@, gkrobner@ & mithunjacob@.
|
||||
|
||||
Change-Id: Iab3c19a07a6f3db2486e3557dcb55bfe5de2aee5
|
||||
|
||||
commit a0ec5c32af5c5f5a52168dc2748be910dba14810
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Sun Oct 18 15:20:36 2020 -0700
|
||||
|
||||
Update version history for 2.0.0RC2
|
||||
|
||||
Change-Id: I75b7515fbf9880bd8eaea6ecd5e72ce1ae4a3a86
|
||||
|
||||
commit 3f6d2736769044e7c08c873c41a184849eea73ab
|
||||
Author: Taylor Braun-Jones <taylor@braun-jones.org>
|
||||
Date: Tue Jan 28 12:09:30 2020 -0500
|
||||
|
||||
Unify symbol visibility configuration for all compilers
|
||||
|
||||
This makes it possible to build unit tests with shared libraries on MSVC.
|
||||
|
||||
Change-Id: I1db66a80b2c78c4f3d354e35235244d17bac9809
|
||||
|
||||
commit 29c2912ee635c77f3ddf2e382a5d6a9cf9805a3d
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Tue Oct 13 12:07:06 2020 -0700
|
||||
|
||||
Unbreak the bazel build some more
|
||||
|
||||
Change-Id: I6bbf3df977a473b9b5e16a9e59da5f535f8cdc24
|
||||
|
||||
commit bf47e1a36829f62697b930241d0a353932f34090
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Tue Oct 13 10:00:22 2020 -0700
|
||||
|
||||
Fix the Bazel build.
|
||||
|
||||
1. Fix the path to eigen, now that it uses gitlab instead of bitbucket.
|
||||
2. Remove an unrecognized compiler option.
|
||||
3. Remove an obsolete benchmark.
|
||||
|
||||
This CL only unbreaks the build, it is likely that it is still not
|
||||
at par with the cmake build.
|
||||
|
||||
https://github.com/ceres-solver/ceres-solver/issues/628
|
||||
|
||||
Change-Id: I470209cbb48b6a4f499564a86b52436e0c8d98ef
|
||||
|
||||
commit 600e8c529ebbb4bb89d5baefa3d5ab6ad923706a
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Mon Oct 12 23:00:39 2020 +0200
|
||||
|
||||
fix minor typos
|
||||
|
||||
all timing values in the summary are initialized to -1, so the one
|
||||
+1 is likely an oversight.
|
||||
|
||||
Change-Id: Ie355f3b7da08a56d49d19ca9a5bc48fe5581dee3
|
||||
|
||||
commit bdcdcc78af61a0cb85317ebee52dc804bf4ea975
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Mon Sep 7 01:48:50 2020 +0200
|
||||
|
||||
update docs for changed cmake usage
|
||||
|
||||
- update links to cmake docs to version 3.5
|
||||
- highlight difference between dependencies with and without custom
|
||||
find modules
|
||||
- point out removal of CERES_INCLUDE_DIRS
|
||||
- point out that TBB might be linked if SuiteSparseQR is found
|
||||
- added 'Migration' section
|
||||
- fixed typos
|
||||
|
||||
Change-Id: Icbcc0e723d11f12246fb3cf09b9d7c6206195a82
|
||||
|
||||
commit 3f69e5b36a49b44344e96a26b39693a914ba80c6
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Mon Oct 12 11:46:40 2020 -0700
|
||||
|
||||
Corrections from William Rucklidge
|
||||
|
||||
Change-Id: I0b5d4808be48f68df7829c70ec93ffa67d81315d
|
||||
|
||||
commit 8bfdb02fb18551bbd5f222c5472e45eddecd42b9
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Mon Oct 12 10:07:13 2020 -0700
|
||||
|
||||
Rewrite uses of VLOG_IF and LOG_IF.
|
||||
|
||||
VLOG_IF's evaluation order is ambiguous - does it mean
|
||||
`if (cond) VLOG(lvl)` or `if (VLOG_IS_ON(lvl) && cond) LOG(INFO)`?
|
||||
In particular, the way it works now is inconsistent with the way the
|
||||
rest of the LOG macros evaluate their arguments.
|
||||
Fixing this would be hard, and the macro's behavior would still surprise
|
||||
some people. Replacing it with an if statement is simple, clear, and unambiguous.
|
||||
|
||||
Change-Id: I97a92d17a932c0a5344a1bf98d676308793ba877
|
||||
|
||||
commit d1b35ffc161fd857c7c433574ca82aa9b2db7f98
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Mon Oct 12 10:58:05 2020 -0700
|
||||
|
||||
Corrections from William Rucklidge
|
||||
|
||||
Change-Id: Ifb50e87aa915d00f9861fe1a6da0acee11bc0a94
|
||||
|
||||
commit f34e80e91f600014a3030915cf9ea28bcbc576e7
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Thu Oct 8 12:34:53 2020 -0700
|
||||
|
||||
Add dividers between licenses.
|
||||
|
||||
Change-Id: I4e4aaa15e0621c5648550cfa622fe0a79f1f4f9f
|
||||
|
||||
commit 65c397daeca77da53d16e73720b9a17edd6757ab
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Wed Oct 7 14:34:52 2020 -0700
|
||||
|
||||
Fix formatting
|
||||
|
||||
Change-Id: Ib4ca8a097059dbb8d2f3a6a888222c0188cb126e
|
||||
|
||||
commit f63b1fea9cfa48ae4530c327b10efa4985e69631
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Wed Oct 7 14:30:54 2020 -0700
|
||||
|
||||
Add the MIT license text corresponding to the libmv derived files.
|
||||
|
||||
Change-Id: Ie72fb45ae96a7892c00411eee6873db7f0e365a8
|
||||
|
||||
commit 542613c13d8b7469822aff5eec076f2cad4507ec
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Tue Oct 6 22:48:59 2020 +0200
|
||||
|
||||
minor formatting fix for trust_region_minimizer.cc
|
||||
|
||||
Change-Id: I18ba27825fc23dd0e9e3e15dc13fc0833db01b5b
|
||||
|
||||
commit 6d9e9843d8c61cfb04cc55b9def9518f823a592a
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Mon Sep 28 11:35:37 2020 -0700
|
||||
|
||||
Remove inclusion of ceres/eigen.h
|
||||
|
||||
The initial reason for this is because of a previous reformatting CL
|
||||
triggered a macro redefinition warning in the schur eliminator. But
|
||||
actually it was worse because the reordering had caused the macro
|
||||
definition to be ignored and caused a performance regression.
|
||||
|
||||
This simplifies the generated files, fixes some formatting errors
|
||||
and recovers the performance.
|
||||
|
||||
Change-Id: I9dbeffc38743b3f24b25843feec2e26a73188413
|
||||
|
||||
commit eafeca5dcb7af8688d40a9c14b0d2fcb856c96fc
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Mon Sep 28 11:12:59 2020 -0700
|
||||
|
||||
Fix a logging bug in TrustRegionMinimizer.
|
||||
|
||||
Upon encountering an unsuccessful step (one where the cost goes up)
|
||||
the the trust region minimizer failed to populate the gradient norm
|
||||
in the IterationSummary. This would cause the gradient norm to be
|
||||
logged as zero which is incorrect. Instead it should be the gradient
|
||||
norm at the current point.
|
||||
|
||||
This CL fixes this issue.
|
||||
|
||||
Before:
|
||||
iter cost cost_change |gradient| |step| tr_ratio tr_radius ls_iter iter_time total_time
|
||||
0 1.115206e+07 0.00e+00 1.90e+07 0.00e+00 0.00e+00 1.00e+04 0 2.72e-01 1.33e+00
|
||||
1 3.687552e+06 7.46e+06 1.84e+08 2.86e+03 6.91e-01 1.06e+04 1 1.32e+00 2.65e+00
|
||||
2 3.670266e+10 -3.67e+10 0.00e+00 3.27e+03 -1.07e+04 5.30e+03 1 7.52e-01 3.40e+00
|
||||
3 4.335397e+07 -3.97e+07 0.00e+00 2.74e+03 -1.16e+01 1.32e+03 1 7.28e-01 4.13e+00
|
||||
4 1.345488e+06 2.34e+06 4.12e+07 1.55e+03 6.87e-01 1.40e+03 1 9.31e-01 5.06e+00
|
||||
5 5.376653e+05 8.08e+05 9.99e+06 6.64e+02 7.46e-01 1.59e+03 1 9.64e-01 6.03e+00
|
||||
|
||||
After:
|
||||
iter cost cost_change |gradient| |step| tr_ratio tr_radius ls_iter iter_time total_time
|
||||
0 1.115206e+07 0.00e+00 1.90e+07 0.00e+00 0.00e+00 1.00e+04 0 2.37e-01 1.13e+00
|
||||
1 3.687552e+06 7.46e+06 1.84e+08 2.86e+03 6.91e-01 1.06e+04 1 1.08e+00 2.21e+00
|
||||
2 3.670266e+10 -3.67e+10 1.84e+08 3.27e+03 -1.07e+04 5.30e+03 1 7.50e-01 2.96e+00
|
||||
3 4.335397e+07 -3.97e+07 1.84e+08 2.74e+03 -1.16e+01 1.32e+03 1 7.13e-01 3.67e+00
|
||||
4 1.345488e+06 2.34e+06 4.12e+07 1.55e+03 6.87e-01 1.40e+03 1 9.01e-01 4.57e+00
|
||||
5 5.376653e+05 8.08e+05 9.99e+06 6.64e+02 7.46e-01 1.59e+03 1 9.36e-01 5.51e+00
|
||||
|
||||
Change-Id: Iae538fe089be07c7bb219337a6f1392f7213acfe
|
||||
|
||||
commit 1fd0be916dd4ff4241bd52264b9e9170bc7e4339
|
||||
Author: Alex Stewart <alexs.mac@gmail.com>
|
||||
Date: Mon Sep 28 18:54:33 2020 +0100
|
||||
|
||||
Fix default initialisation of IterationCallback::cost
|
||||
|
||||
Change-Id: I9f529093fc09424c90dbff8e9648b90b16990623
|
||||
|
||||
commit 137bbe845577929a87f8eef979196df6a8b30ee4
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Mon Sep 28 02:17:32 2020 +0200
|
||||
|
||||
add info about clang-format to contributing docs
|
||||
|
||||
Change-Id: I2f4dcbda2e4f36096df217d76de370103ffaa43e
|
||||
|
||||
commit d3f66d77f45482b90d01af47938289c32dd2cc08
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Mon Sep 28 02:01:43 2020 +0200
|
||||
|
||||
fix formatting generated files (best effort)
|
||||
|
||||
- update file generator scripts / templates so generated files adhere
|
||||
to clang-format
|
||||
- A few exceptions are not fixed, where the file generation results in
|
||||
lines of different width. To properly fix this would make the code
|
||||
more complicated and it's not that important for generated files
|
||||
anyway.
|
||||
- note that generated files are excluded in ./scripts/format_all.sh
|
||||
|
||||
Change-Id: I4f42c83d1fec01242eada5e7ce6c1a5192234d37
|
||||
|
||||
commit a9c7361c8dc1d37e78d216754a4c03e8a8f1e74f
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Mon Sep 28 02:14:29 2020 +0200
|
||||
|
||||
minor formatting fix (wrongly updated in earlier commit)
|
||||
|
||||
Change-Id: I544635fd936cb5b7f7bd9255876641cd5a9590c6
|
||||
|
||||
commit 7b8f675bfdb1d924af6a2dcc1f79bda5ace7e886
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Sun Sep 20 21:45:24 2020 +0200
|
||||
|
||||
fix formatting for (non-generated) internal source files
|
||||
|
||||
- Change formatting standard to Cpp11. Main difference is not having
|
||||
the space between two closing >> for nested templates. We don't
|
||||
choose c++14, because older versions of clang-format (version 9
|
||||
and earlier) don't know this value yet, and it doesn't make a
|
||||
difference in the formatting.
|
||||
- Apply clang-format to all (non generated) internal source files.
|
||||
- Manually fix some code sections (clang-format on/off) and c-strings
|
||||
- Exclude some embedded external files with very different formatting
|
||||
(gtest/gmock)
|
||||
- Add script to format all source files
|
||||
|
||||
Change-Id: Ic6cea41575ad6e37c9e136dbce176b0d505dc44d
|
||||
|
||||
commit 921368ce31c42ee793cf131860abba291a7e39ad
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Wed Sep 9 09:15:37 2020 -0700
|
||||
|
||||
Fix a number of typos in covariance.h
|
||||
|
||||
Also some minor cleanups in covariance_impl.h
|
||||
|
||||
Thanks to Lorenzo Lamia for pointing these out.
|
||||
|
||||
Change-Id: Icb4012a367fdd1f249bc1e7019e0114c868e45b6
|
||||
|
||||
commit 7b6b2491cc1be0b3abb67338366d8d69bef3a402
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Tue Sep 8 17:51:32 2020 +0200
|
||||
|
||||
fix formatting for examples
|
||||
|
||||
This is mostly just applying the existing clang format config, except:
|
||||
- Use NOLINT on overlong comment lines.
|
||||
- Wrap some sections in 'clang-format off' / 'clang format on'.
|
||||
- Manually split or join some multi-line strings.
|
||||
|
||||
Change-Id: Ia1a40eeb92112e12c3a169309afe087af55b2f4f
|
||||
|
||||
commit 82275d8a4eac4fc0bd07e17c3a41a6e429e72bfb
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Tue Sep 8 02:00:21 2020 +0200
|
||||
|
||||
some fixes for Linux and macOS install docs
|
||||
|
||||
Linux:
|
||||
- Remove workaround for Ubuntu 14.04, which is EOL. libsuitesparse-dev
|
||||
seems to come with a shared library on 16.04 and later, so linking
|
||||
to a shared build of ceres doesn't seem to be an issue any more.
|
||||
- Add missing libgflags-dev.
|
||||
|
||||
macOS:
|
||||
- OS X is now called macOS.
|
||||
- Update homebrew link.
|
||||
- Mac homebrew the preferred method of installation.
|
||||
- Fix OpenMP instructions.
|
||||
- Remove reference to homebrew/science. Everything is in core.
|
||||
- Add missing gflags.
|
||||
|
||||
Change-Id: I633b3c7ea84a87886bfd823f8187fdd0a84737c9
|
||||
|
||||
commit 9d762d74f06b946bbd2f098de7216032d0e7b51d
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Sun Sep 6 21:04:24 2020 +0200
|
||||
|
||||
fix formatting for public header files
|
||||
|
||||
- ensure all public headers files adhere to clang-format
|
||||
- preserve one-per-line for enums by adding trailing comma
|
||||
- preserve include order for en/disable_warning.h
|
||||
|
||||
Change-Id: I78dbd0527a294ab2ec5f074fb426e48b20c393e6
|
||||
|
||||
commit c76478c4898f3af11a6a826ac89c261205f4dd96
|
||||
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
|
||||
Date: Sun Sep 6 23:29:56 2020 +0200
|
||||
|
||||
gitignore *.pyc
|
||||
|
||||
Change-Id: Ic6238a617a3c7ce92df7dcefcc44bae20c32b30b
|
||||
|
||||
commit 4e69a475cd7d7cbed983f5aebf79ae13a46e5415
|
||||
Author: Alex Stewart <alexs.mac@gmail.com>
|
||||
Date: Tue Sep 1 10:15:23 2020 +0100
|
||||
|
||||
Fix potential for mismatched release/debug TBB libraries
|
||||
|
||||
- Protect against the case when the user has multiple installs of TBB
|
||||
in their search paths and the first install does not contain debug
|
||||
libraries. In this case it is possible to get mismatched versions
|
||||
of TBB inserted into TBB_LIBRARIES.
|
||||
- Also suppresses warning about use of TBB_ROOT on modern versions of
|
||||
CMake due to CMP0074.
|
||||
|
||||
Change-Id: I2eaafdde4a028cbf6c500c63771973d85bc4723d
|
||||
|
||||
commit 8e1d8e32ad0d28c0d4d1d7b2b1ce7fc01d90b7b0
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Thu Sep 3 10:49:20 2020 -0700
|
||||
|
||||
A number of small changes.
|
||||
|
||||
1. Add a move constructor to NumericDiffCostFunction, DynamicAutoDiffCostfunction
|
||||
and DynamicNumericDiffCostFunction.
|
||||
2. Add optional ownership of the underlying functor.
|
||||
3. Update docs to reflect this as well as the variadic templates that allow an
|
||||
arbitrary number of parameter blocks.
|
||||
|
||||
Change-Id: I57bbb51fb9e75f36ec2a661b603beda270f30a19
|
||||
|
||||
commit 368a738e5281039f19587545806b7bc6f35e78f9
|
||||
Author: Julian Kent <jkflying@gmail.com>
|
||||
Date: Thu May 7 12:54:35 2020 +0200
|
||||
|
||||
AutoDiffCostFunction: optional ownership
|
||||
|
||||
Add Ownership semantics to the AutoDiffCostFunction
|
||||
|
||||
This allows several benefits, such as pointer ordering always being the
|
||||
same for numerical repeatability (due to blocks being ordered by
|
||||
pointer address), memory adjacency for better cache performance, and
|
||||
reduced allocator pressure / overhead.
|
||||
|
||||
This is then made use of in libmv by preallocating the errors and
|
||||
cost functions into vectors
|
||||
|
||||
Change-Id: Ia5b97e7249b55a463264b6e26f7a02291927c9f2
|
||||
|
||||
commit 8cbd721c199c69f127af6ef7c187ddf7e8f116f9
|
||||
Author: Morten Hannemose <morten@hannemose.dk>
|
||||
Date: Thu Sep 3 17:54:20 2020 +0200
|
||||
|
||||
Add erf and erfc to jet.h, including tests in jet_test.cc
|
||||
|
||||
erf is necessary for evaluating Gaussian functions.
|
||||
erfc was added because it is so similar to erf.
|
||||
|
||||
Change-Id: I5e470dbe013cc938fabb87cde3b0ebf26a90fff4
|
||||
|
||||
commit 31366cff299cf2a8d97b43a7533d953ff28fdc29
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Tue Sep 1 09:23:34 2020 -0700
|
||||
|
||||
Benchmarks for dynamic autodiff.
|
||||
|
||||
This patch is from Clement Courbet. courbet@google.com
|
||||
|
||||
Change-Id: I886390663644733bfa5b7b52b0c883079e793726
|
||||
|
||||
commit 29fb08aeae1ce691851724af7209fea6127523a9
|
||||
Author: Alex Stewart <alexs.mac@gmail.com>
|
||||
Date: Tue Sep 1 10:23:31 2020 +0100
|
||||
|
||||
Use CMAKE_PREFIX_PATH to pass Homebrew install location
|
||||
|
||||
- Passing HINTS disables the MODULE mode of find_package() which
|
||||
precludes users from creating their own find modules to provide
|
||||
Ceres' dependencies.
|
||||
|
||||
Change-Id: I6f2edf429331d13fe67bf61ac4b79d17579d9a57
|
||||
|
||||
commit 242c703b501ffd64d645f4016d63c8b41c381038
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Tue Aug 4 21:02:11 2020 -0700
|
||||
|
||||
Minor fixes to the documentation
|
||||
|
||||
Change-Id: I65e6f648d963b8aa640078684ce02dcde6acb87d
|
||||
|
||||
commit 79bbf95103672fa4b5485e055ff7692ee4a1f9da
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Tue Aug 4 18:26:02 2020 -0700
|
||||
|
||||
Add changelog for 2.0.0
|
||||
|
||||
Change-Id: I8acad62bfe629454ae5032732693e43fe37b97ff
|
||||
|
||||
commit 41d05f13d0ffb230d7a5a9d67ed31b0cfb35d669
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Tue Aug 4 14:56:33 2020 -0700
|
||||
|
||||
Fix lint errors in evaluation_callback_test.cc
|
||||
|
||||
Change-Id: I63eb069544ad0d8f495490fe4caa07b9f04f7ec2
|
||||
|
||||
commit 4b67903c1f96037048c83a723028c5d0991c09cf
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Tue Aug 4 14:40:50 2020 -0700
|
||||
|
||||
Remove unused variables from problem_test.cc
|
||||
|
||||
Change-Id: Ia1a13cfc6e462f6d249dcbf169ad34831dd93ec2
|
||||
|
||||
commit 10449fc3664c96d4b5454c092195432df79412f8
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Tue Aug 4 14:30:25 2020 -0700
|
||||
|
||||
Add Apache license to the LICENSE file for FixedArray
|
||||
|
||||
FixedArray implementation comes from ABSL which is Apache
|
||||
licensed.
|
||||
|
||||
Change-Id: I566dbe9d236814c95945732c6347d3bf7b508283
|
||||
|
||||
commit 8c3ecec6db26d7a66f5de8dc654475ec7aa0df14
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Tue May 26 04:44:11 2020 -0700
|
||||
|
||||
Fix some minor errors in IterationCallback docs
|
||||
|
||||
Change-Id: Id3d7f21a523ff8466868cdec542921c566bbbfa9
|
||||
|
||||
commit 7d3ffcb4234632dc51ee84c8a509d9428263070b
|
||||
Author: Alex Stewart <alexs.mac@gmail.com>
|
||||
Date: Sun Jul 26 19:42:16 2020 +0100
|
||||
|
||||
Remove forced CONFIG from find_package(Eigen3)
|
||||
|
||||
- Ceres will fail to configure if Eigen3::Eigen target is not found, and
|
||||
the minimum required Eigen version specified (3.3) exports Eigen as
|
||||
a CMake package and this is reflected in the default Ubuntu 18.04
|
||||
packages.
|
||||
- This permits users to specify their own Eigen3 detection should they
|
||||
choose to do so, but they must do so via an imported target.
|
||||
|
||||
Change-Id: I5edff117c8001770004f49012ac1ae63b66ec9c1
|
||||
|
||||
commit a029fc0f93817f20b387b707bc578dc1f1a269ae
|
||||
Author: Alex Stewart <alexs.mac@gmail.com>
|
||||
Date: Sun Jul 26 18:44:59 2020 +0100
|
||||
|
||||
Use latest FindTBB.cmake from VTK project
|
||||
|
||||
- Retrieved from [1], SHA: 0d9bbf9beb97f8f696c43a9edf1e52c082b3639b on
|
||||
2020-07-26
|
||||
- [1]: https://gitlab.kitware.com/vtk/vtk/blob/master/CMake/FindTBB.cmake
|
||||
|
||||
Change-Id: I953a8c87802a974d30ccc7c80f5229683826efbd
|
||||
|
||||
commit aa1abbc578797c6b17ee7221db31535dc249ae66
|
||||
Author: Alex Stewart <alexs.mac@gmail.com>
|
||||
Date: Sun Jul 26 19:57:31 2020 +0100
|
||||
|
||||
Replace use of GFLAGS_LIBRARIES with export gflags target
|
||||
|
||||
- As our minimum required version of gflags (2.2) exports itself as
|
||||
a CMake package and this is the case for the default 18.04 package
|
||||
we can use the gflags target directly.
|
||||
- Replaces forced use of CONFIG in find_package(gflags) with a check
|
||||
that the gflags imported target exists to avoid ambiguity with
|
||||
libgflags if installed in a default location. This permits users to
|
||||
override the gflags detection should they so choose, provided that
|
||||
they do so via an imported target.
|
||||
- Also removes some previously removed legacy GLAGS_ vars from the
|
||||
installation docs.
|
||||
|
||||
Change-Id: I015f5a751e5b22f956bbf9df692e63a6825c9f0d
|
||||
|
||||
commit db2af1be8780bbe88944775400baa2dbd3592b7d
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Mon Aug 3 04:57:08 2020 -0700
|
||||
|
||||
Add Problem::EvaluateResidualBlockAssumingParametersUnchanged
|
||||
|
||||
Simplify the semantics for Problem::EvaluateResidualBlock to
|
||||
not ignore the presence of EvaluationCallback and add another method
|
||||
EvaluateResidualBlockAssumingParametersUnchanged to handle the case
|
||||
where the user has an EvaluationCallback but knows that the parameter
|
||||
blocks do not change between calls.
|
||||
|
||||
Updated the documentation for the methods and EvaluationCallback to
|
||||
reflect these semantics.
|
||||
|
||||
Also added tests for Evaluation related methods calling i
|
||||
EvaluationCallback when its present.
|
||||
|
||||
https://github.com/ceres-solver/ceres-solver/issues/483
|
||||
|
||||
Change-Id: If0a0c95c2f1f92e9183a90df240104a69a71c46d
|
||||
|
||||
commit ab4ed32cda004befd29a0b4b02f1d907e0c4dab7
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Mon Aug 3 04:17:33 2020 -0700
|
||||
|
||||
Replace NULL with nullptr in the documentation.
|
||||
|
||||
Change-Id: I995f68770e2a4b6027c0a1d3edf5eb5132b081d7
|
||||
|
||||
commit ee280e27a6140295ef6258d24c92305628f3d508
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Fri Jul 31 16:48:06 2020 -0700
|
||||
|
||||
Allow SubsetParameterization to accept an empty vector of constant parameters.
|
||||
|
||||
Thanks to Frédéric Devernay for reporting this and providing an initial fix.
|
||||
|
||||
Change-Id: Id86a2051ab7841ecafdcfb00f4634b353a7ef3b4
|
||||
|
||||
commit 4b8c731d8a4f3fda53c642ff14a25fab6c233918
|
||||
Author: Sameer Agarwal <sameeragarwal@google.com>
|
||||
Date: Fri Jul 31 10:05:52 2020 -0700
|
||||
|
||||
Fix a bug in DynamicAutoDiffCostFunction
|
||||
|
||||
DynamicAutoDiffCostFunction::Evaluate when provided with a jacobians
|
||||
array that was non-empty but all its entries are nullptr, would
|
||||
compute num_active_parameters = 0, and then skip over all the loops
|
||||
that evaluated the CostFunctor.
|
||||
|
||||
The fix is to check if num_active_parameters == 0, and then treat
|
||||
it as the case where jacobians array is null.
|
||||
|
||||
Thanks to Ky Waegel for reporting and providing a reproduction for this.
|
||||
|
||||
Change-Id: Ib86930c2c3f722724d249f662bf88238679bbf98
|
||||
|
||||
commit 5cb5b35a930c1702278083c75769dbb4e5801045
|
||||
Author: Alex Stewart <alexs.mac@gmail.com>
|
||||
Date: Sun Jul 26 20:42:12 2020 +0100
|
||||
|
||||
Fixed incorrect argument name in RotationMatrixToQuaternion()
|
||||
|
||||
- Raised as: https://github.com/ceres-solver/ceres-solver/pull/607 by
|
||||
Frank Dellaert
|
||||
|
||||
Change-Id: Id3e9f190e814cf18206e2f8c3b1b67b995c21dd5
|
||||
|
||||
commit e39d9ed1d60dfeb58dd2a0df4622c683f87b28e3
|
||||
Author: Carl Dehlin <carl@dehlin.com>
|
||||
Date: Tue Jun 16 09:02:05 2020 +0200
|
||||
|
||||
Add a missing term and remove a superfluous word
|
||||
|
||||
Change-Id: I25f40f0bf241302b975e6fc14690aa863c0728b0
|
||||
|
||||
commit 27cab77b699a1a2b5354820c57a91c92eaeb21e3
|
||||
Author: Carl Dehlin <carl@dehlin.com>
|
||||
Date: Mon Jun 15 20:01:18 2020 +0200
|
||||
|
||||
Reformulate some sentences
|
||||
|
||||
Change-Id: I4841aa8e8522008dd816261d9ad98e5fb8ad1758
|
||||
|
||||
commit 8ac6655ce85a4462f2882fcb9e9118a7057ebe09
|
||||
Author: Carl Dehlin <carl@dehlin.com>
|
||||
Date: Mon Jun 15 19:10:12 2020 +0200
|
||||
|
||||
Fix documentation formatting issues
|
||||
|
||||
Change-Id: Iea3a6e75dc3a7376eda866ab24e535a6df84f8ea
|
234
extern/ceres/LICENSE
vendored
234
extern/ceres/LICENSE
vendored
@@ -1,6 +1,6 @@
|
||||
Ceres Solver - A fast non-linear least squares minimizer
|
||||
Copyright 2010, 2011, 2012 Google Inc. All rights reserved.
|
||||
http://code.google.com/p/ceres-solver/
|
||||
Copyright 2015 Google Inc. All rights reserved.
|
||||
http://ceres-solver.org/
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
@@ -25,3 +25,233 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Some of the code in the examples directory derives from libmv, which is
|
||||
distributed under the MIT license as described below
|
||||
|
||||
|
||||
Copyright (c) 2007-2011 libmv authors.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to
|
||||
deal in the Software without restriction, including without limitation the
|
||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
IN THE SOFTWARE.
|
||||
|
3
extern/ceres/README
vendored
3
extern/ceres/README
vendored
@@ -1,3 +0,0 @@
|
||||
Ceres Solver - A non-linear least squares minimizer
|
||||
==================================================
|
||||
Please see ceres.pdf in docs/ for a tutorial and reference.
|
2
extern/ceres/README.blender
vendored
2
extern/ceres/README.blender
vendored
@@ -1,5 +1,5 @@
|
||||
Project: Ceres Solver
|
||||
URL: http://ceres-solver.org/
|
||||
License: BSD 3-Clause
|
||||
Upstream version 2.0.0
|
||||
Upstream version 2.1.0
|
||||
Local modifications: None
|
||||
|
18
extern/ceres/README.md
vendored
Normal file
18
extern/ceres/README.md
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
[](https://github.com/ceres-solver/ceres-solver/actions/workflows/android.yml)
|
||||
[](https://github.com/ceres-solver/ceres-solver/actions/workflows/linux.yml)
|
||||
[](https://github.com/ceres-solver/ceres-solver/actions/workflows/macos.yml)
|
||||
[](https://github.com/ceres-solver/ceres-solver/actions/workflows/windows.yml)
|
||||
|
||||
Ceres Solver
|
||||
============
|
||||
|
||||
Ceres Solver is an open source C++ library for modeling and solving
|
||||
large, complicated optimization problems. It is a feature rich, mature
|
||||
and performant library which has been used in production at Google
|
||||
since 2010. Ceres Solver can solve two kinds of problems.
|
||||
|
||||
1. Non-linear Least Squares problems with bounds constraints.
|
||||
2. General unconstrained optimization problems.
|
||||
|
||||
Please see [ceres-solver.org](http://ceres-solver.org/) for more
|
||||
information.
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user