Перевести OpenCL SPIR-V на Vulkan SPIR-V - PullRequest
1 голос
/ 07 ноября 2019

Можно ли перевести SPIR-V в стиле OpenCL в SPIR-V в стиле Vulkan?
Я знаю, что можно использовать clspv для компиляции OpenCL C в SPIR-V в стиле Vulkan, но у меня нетНе было видно никаких признаков того, что он также поддерживает прием SPIR-V в стиле OpenCL.

Спасибо за любые предложения, если вы знаете, как этого добиться:)

1 Ответ

0 голосов
/ 12 ноября 2019

Я знаю, что можно использовать clspv для компиляции OpenCL C в SPIR-V в стиле Vulkan, но я не видел никаких признаков того, что он также поддерживает прием SPIR-V в стиле OpenCL.

clspv компилируется в «Opencl-стиль SPIR-V». Таким образом, он использует модель выполнения OpenCL, а также модель памяти OpenCL. Ответ на ваш вопрос - нет (в общем). Проблема в том, что, например, GLSL использует модель логической памяти, что означает, что указатели являются абстрактными, поэтому вы не можете иметь указатели на указатели. Хотя OpenCL позволяет это, потому что он использует модель физической памяти. Плюс в OpenCL есть и другие вещи, которые нельзя выразить в GLSL. Вы могли бы попытаться написать некоторый переводчик, и он мог бы работать для некоторого очень простого кода, но это все.

...