Projeto Vinho
biblioteca libvkd3d
No libvkd3d-shader, a tradução do bytecode dos modelos de shader 4 e 5 em uma representação SPIR-V intermediária é implementada. Sombreadores de vértice, pixel, tesselação, computação e geometria simples, serialização e desserialização de assinatura raiz são suportados. As instruções do shader incluem operações aritméticas, atômicas e de bits, operadores de comparação e controle de fluxo de dados, instruções de amostra, coleta e carregamento, operações de acesso não ordenado (UAV, Unordered Access View).
Entre os mais significativos
- A biblioteca libvkd3d-shader está pronta para uso em projetos de terceiros.
- Suporte para shader de mosaico.
- Suporte para conversão, serialização e desserialização de assinaturas raiz (vkd3d_serialize_versioned_root_signature() e vkd3d_create_versioned_root_signature_deserializer()).
- Suporte para saída de streaming.
- Implementação de muitos recursos do Direct3D 12 anteriormente indisponíveis, incluindo suporte para multisampling, reserva de recursos,
renderização indexada indireta, renderização de profundidade sem pixel shaders, acesso simultâneo a recursos de diferentes filas de comando, visualizações nulas. - Adicionadas variáveis de ambiente: VKD3D_CONFIG para definir opções para alterar o comportamento do libvkd3d e VKD3D_VULKAN_DEVICE para substituir o dispositivo para a API Vulkan.
- Adicionado suporte para instruções do shader bufinfo,
eval_centroid,
eval_sample_index,
ld2ms,
amostra_b,
amostra_d,
amostra_info,
amostrapos.
Fonte: opennet.ru