O desenvolvedor Derek Lesho, da CodeWeavers, está trabalhando no suporte à memória compartilhada da Vulkan para o Wine para expor alguns casos de uso interessantes. Portanto, a CodeWeavers trabalha no suporte à memória compartilhada da Vulkan no Wine.
O suporte à memória compartilhada da Vulkan no Wine está sendo trabalhado para permitir que DXVK e D9VK suportem recursos compartilhados do Direct3D.
CodeWeavers trabalha no suporte à memória compartilhada da Vulkan no Wine
Esse patchset adiciona suporte à memória compartilhada Vulkan no wine, que pode por sua vez, ser usado por camadas de API como DXVK ou D9VK para oferecer suporte a D3D com recursos compartilhados. O commit final no patchset adiciona uma extensão de Wine permitindo que as camadas associem uma estrutura personalizada que descreve um recurso, portanto que eles podem recriá-lo sem informações externas. No caso de recursos compartilhados DXVK e D3D11, este é um D3D11_COMMON_TEXTURE_DESC.
Embora essa seja a solução mais simples, pode ser uma idéia melhor definir
uma estrutura padrão, para que a interoperabilidade entre, por exemplo, DXVK e vkd3d
seja possível.Lembre-se de que essa funcionalidade também pode ser usada para recursos
além de texturas ou superfícies, como primitivas de sincronização, diz o anúncio oficial.
Os quatro patches enviados agora adicionam o encanamento e o manuseio iniciais do VK_KHR_external_memory_fd para passar descritores de arquivos externos com o Vulkan. Os patches também incluem auxiliares personalizados para descrever os recursos da GPU.
Nesse ponto, os patches do Wine não fazem nada em relação ao D9VK ou DXVK. No entanto, permitem que essas camadas do Direct3D-over-Vulkan o desenvolvam para recursos compartilhados no futuro.
O trabalho de correção por enquanto pode ser encontrado no Wine-devel.
Lançado o D9VK 0.30 com melhorias de desempenho
O D9VK 0.30 foi lançado como o projeto semelhante que implementa a API Direct3D 9 no topo do Vulkan. Ele baseia seu código no DXVK 1.4.4 e possui melhorias de desempenho por meio de alterações de bloqueio, evitando a eliminação de buffers D3DUSAGE_DYNAMIC, suportando o descarte de recursos não dinâmicos, outras alterações de bloqueio e outros trabalhos.
O D9VK 0.30 também implementa vários outros recursos do Direct3D anteriormente não suportados, possui suporte experimental a predicação de shader, rastreamento de riscos mais eficiente, falsifica o uso da GPU AMD para CS: GO para ignorar o uso da NVAPI e possui correções específicas para o Halo 2. Há também a variedade usual de correção de bugs ocorrida.
Mais detalhes sobre o D9VK 0.30 via GitHub.
Fonte: Phoronix