/ / Język cieniowania w formacie IR - ios, metal

Metalowy język cieniowania w formacie IR - ios, metal

Ostatnio próbuję metalu "Apple". Wydaje się, że język cieniowania metalu jest bardzo podobny do vulkan glsl.

kilka pytań: 1. Czy jest jakiś kompilator open source do kompilacji języka cieniowania metalu? czy może przetłumaczyć na inny język cieniowania? glsl lub spirv?

  1. jaki jest format wyjściowy Apple "Metal kompilator? Widzę, że ktoś wspomina, że ​​jest LLVM IR, ale nie mogę znaleźć żadnych dokumentów.

  2. Gry metalowe muszą przesłać skompilowane IR do sterownika w celu renderowania, prawda? czy mogą używać wysokiego poziomu języka cieniowania metalu, jak opengl używanie gier glsl bezpośrednio?

zastanawiasz się, czy jest jakiś dokument opisujący Metal IR od Apple?

Dzięki!

Odpowiedzi:

1 dla odpowiedzi № 1

The metal narzędzie do kompilacji MSL to zmodyfikowana wersja clang, ale nie sądzę, że modyfikacje zostały otwarte. Przyjmuje wiele takich samych opcji wiersza polecenia, jak clang do tworzenia różnych plików wyjściowych.

Domyślnie produkuje .air pliki, które są kodem LLVM. Możesz użyć narzędzi takich jak llvm-dis aby je zdemontować.

Aplikacje metalowe mogą korzystać z prekompilowanych shaderów lub mogą kompilować ze źródła MSL w czasie wykonywania. Aplikacja użyje jednego z plików -newLibraryWithSource:... metody MTLDevice dla tego ostatniego.