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
?
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.
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 jogosglsl
diretamente?
perguntando se há alguns documentos descrevem Metal IR da Apple?
Obrigado!
Respostas:
1 para resposta № 1o 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.