/ / Linguagem de sombreamento de metal Formato IR - ios, metal

Linguagem de sombreamento de metal Formato IR - ios, metal

Eu estou tentando Apple Metal hoje em dia. parece linguagem de sombreamento de metal é muito semelhante ao vulkan glsl.

algumas perguntas: 1. existe algum compilador de código aberto para compilar a linguagem de sombreamento de metal? ou pode traduzir para outra linguagem de sombreamento? glsl ou spirv?

  1. qual é o formato de saída do compilador "Metal" da Apple? Eu vejo alguém mencionando que é LLVM IR, mas não consigo encontrar nenhum documento.

  2. Jogos de metal devem enviar o IR compilado para o driver para renderização, certo? eles podem usar linguagem de sombreamento de metal de alto nível, como opengl uso de jogos glsl diretamente?

perguntando se há alguns documentos descrevem Metal IR da Apple?

Obrigado!

Respostas:

1 para resposta № 1

o metal ferramenta para compilar MSL é uma versão modificada do clang, mas eu não acho que as modificações foram de código aberto. Ele aceita muitas das mesmas opções de linha de comando como clang para produzir vários arquivos de saída.

Por padrão, ele produz .air arquivos, que são o bitcode LLVM. Você pode usar ferramentas como llvm-dis desmontá-los.

Os aplicativos de metal podem usar shaders pré-compilados ou podem compilar a partir da origem do MSL em tempo de execução. Um aplicativo usaria um dos -newLibraryWithSource:... métodos de MTLDevice para o último.