Изменения

Блог:Виталий Филиппов/2014-09-18 Blender, Radeon, Mesa, OpenCL

94 байта убрано, 14:51, 20 сентября 2014
м
Нет описания правки
Итак, после исправления этой очипятки ядро собралось… но после этого, увы, блендер просто стал падать с segmentation fault’ом где-то в недрах LLVM уже при попытке трансляции видимо IR’а в radeon’овый шейдерный код. И тут я пока хз, получится ли это поправить. Есть ещё маленькая вероятность, что это баг oibaf’ской сборки, так как mesa у меня именно оттуда… В общем, буду искать баг дальше. Очень уж хочется Cycles на GPU запустить.
UPD: Залез в недра LLVM, попробовал поискать баг; обнаружил, что в SIAnnotateControlFlow.cpp в handleLoopCondition() в какой-то момент попадает PHINode, у которого первый аргумент равен ему самому. Теперь вся интрига в том, как это всё-таки происходит? Ага! Интрига легко разрешилась с помощью условых контрольных точек В gdb: же есть условые контрольные точки! break 'llvm::PHINode::setIncomingValue(unsigned int, llvm::Value*)' if V == this. Виноват LLVM’ский оптимизатор…&& i != 32767
{{wl-publish: 2014-09-18 19:33:14 +0400 | VitaliyFilippov }}