Протокол SCNShadable выдает внутреннюю ошибку при компиляции функции фрагмента на новых устройствах - PullRequest
1 голос
/ 17 февраля 2020

Мы написали модификатор шейдера, основанный на протоколе SCNShadable , который работает хорошо до тех пор, пока число однородных переменных не станет довольно медленным (скажем, 5-10). Позже нам нужно было расширить модификатор шейдера и использовать новые униформы, всего их 25, включая 8 текстур и соответствующие матрицы float4x4. Затем он перестал работать, не смог скомпилировать функцию фрагмента, которая выдает следующее бесполезное сообщение об ошибке:

Error Domain=AGXMetalA12 Code=3 "Internal error during fragment function compilation" UserInfo={NSLocalizedDescription=Internal error during fragment function compilation}

Когда мы уменьшили количество float4x4 матриц до 2, он снова начал работать на iPhone 7 и другие Metal GPU Family 3 устройства, но не на Metal GPU Family 4 или более новых устройствах.

Наш вопрос заключается в том, знает ли кто-нибудь какие-либо ограничения, объясняющие такое поведение.

...