vkd3d, ay ang Wine's Direct3D 12 to Vulkan translation layer
Ang proyekto ng Alak ay inihayag ilang araw na ang nakakaraan ang paglabas ng bagong bersyon ng vkd3d 1.11 package, isang bersyon kung saan ipinakilala ang mga pagpapabuti sa paggamit ng mga vulkan extension, pati na rin ang mga pagpapabuti ng suporta, mga bagong function at higit pa.
Para sa mga hindi alam tungkol sa Vkd3d, dapat mong malaman na ito ay isang pakete na nag-aalok ng pagpapatupad ng Direct3D 12 gamit ang mga tawag sa Vulkan graphics API at may kasamang ilang mahahalagang aklatan. Ang libvkd3d library ay naglalaman ng mga pagpapatupad ng Direct3D 12, na sumasaklaw sa malawak na hanay ng mga function tulad ng computing at graphics, command queues at mga listahan, identifier, at iba pa.
Ang libvkd3d-shader library ay ibinigay din na nagbibigay ng tagasalin para sa mga modelo ng shader 4 at 5 sa isang intermediate na representasyon ng SPIR-V. Sinusuportahan ng library na ito ang vertex, pixel, tessellation, computation, at simpleng geometry shaders, pati na rin ang root signature serialization at deserialization.
Ano ang bago sa vkd3d 1.11?
Ipinakilala ng Vkd3d 1.11 ang a paunang suporta para sa pag-compile ng legacy na Direct3D bytecode sa isang intermediate na representasyon ng SPIR-V shaders, pati na rin ang spaunang suporta sa HLSL p compilerpara mag-compile ng mga effect profile.
Ang isa pang pagpapabuti na ipinakita sa bagong bersyon na ito ay ang pang-eksperimentong suporta para sa pag-compile ng DXIL (DirectX intermediate na wika) sa representasyon ng SPIR-V, na nagbibigay ng mga bagong opsyon para sa pagbuo ng mga Direct3D na application. Ang tampok na ito ay nangangailangan ng pag-compile ng vkd3d gamit ang 'preprocessor' na opsyon-DVKD3D_SHADER_UNSUPPORTED_DXIL' at itinuturing na eksperimental.
Gayundin ang paggamit ng mga pangkat at set ng deskriptor ay na-optimize kapag available ang mga extension VK_EXT_mutable_descriptor_type at VK_EXT_shader_viewport_index_layer, na ibinibigay upang mapabuti ang kahusayan ng pagtatrabaho sa descriptor pool at pabilisin ang pag-render ng tessellation at vertex shader arrays.
Naipatupad na ang cSuporta para sa mga karaniwang kulay ng hangganan, tulad ng itim at puti at ang pamamaraan ay ipinatupad GetResourceAllocationInfo1() ng interface ng ID3D12Device4, pati na rin ang suporta para sa mga interface ng ID3D12Device7 at ID3D12Resource2.
Sinusuportahan ang ilang mga bagong query sa feature, kabilang ang D3D12_FEATURE_D3D12_OPTIONS6 a D3D12_FEATURE_D3D12_OPTIONS13.
Naipatupad na mga bagong pagpipilian sa pagbuo: VKD3D_SHADER_COMPILE_OPTION_FEATURE maaaring magamit para sa
tukuyin ang mga tampok na magagamit sa target na kapaligiran, habang VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 ay nagpapahiwatig ng pagiging tugma sa
ang 64-bit na mga uri ng integer sa SPIR target na kapaligiran at VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 ay nagpapahiwatig ng pagiging tugma sa
64-bit na mga uri ng floating point sa SPIR-V target na kapaligiran.
Ng iba pang mga pagbabago na namumukod-tangi ng bagong bersyon na ito:
- Nangyayari na ngayon ang mga update ng descriptor nang asynchronous sa isang thread ng panloob na manggagawa, na nagpapahusay sa pagganap sa mga application na nag-a-update ng maraming descriptor bawat frame.
- Nagdagdag ng mga bagong feature para sa uri ng target na SPIR-V, kabilang ang suporta para sa mga global na pare-parehong out-of-order na mga view ng access, thread group out-of-order access na mga hadlang sa view, at higit pa.
- Ang interface ng ID3D12Device7 ay suportado.
- Ang minimum na kinakailangang bersyon ng Vulkan-Header para sa release na ito ay bersyon
1.3.228. - Ang interface ng ID3D12Resource2 ay suportado.
- Sinusuportahan ang ilang mga bagong query sa feature:
– D3D12_FEATURE_D3D12_OPTIONS6
– D3D12_FEATURE_D3D12_OPTIONS7
– D3D12_FEATURE_D3D12_OPTIONS8
– D3D12_FEATURE_D3D12_OPTIONS9
– D3D12_FEATURE_D3D12_OPTIONS10
– D3D12_FEATURE_D3D12_OPTIONS11
– D3D12_FEATURE_D3D12_OPTIONS12
– D3D12_FEATURE_D3D12_OPTIONS13 - Ang mga intrinsic na function na acos(), asin(), atan() at atan2() ay suportado na.
- Ang tahasang pagmamapa ng rehistro gamit ang 'register()' na keyword
- Pag-convert mula sa mga uri ng integer patungo sa floating point sa mga profile ng shader model 1-3.
Para sa mga interesadong matuto pa tungkol dito, dapat mong malaman na ang code ng proyekto ay ipinamamahagi sa ilalim ng LGPL 2.1 at maaari mong konsultahin ang mga detalye ng bagong release na ito Sa sumusunod na link.
Paano i-install ang vkd3d 1.11?
para interesadong makapag-install ng vkd3d Dapat nilang malaman na dapat nilang i-compile ang source code, kaya kailangan muna nating makuha ito, mahalagang banggitin na ang Vkd3d ay nakasalalay sa SPIRV-Headers at Vulkan-Headers (>= 1.3.228).
Ang compilation ay medyo simple at upang gawin ito kailangan naming buksan ang isang terminal kung saan namin i-type ang sumusunod na command:
git clone https://gitlab.winehq.org/wine/vkd3d.git
Nagpapatuloy kami upang ipasok ang folder kung saan ito na-download gamit ang:
cd vkd3d
At nagpapatuloy kami sa pag-compile sa pamamagitan ng pagpapatupad ng mga sumusunod na utos:
./configure make make install
Si gusto mong malaman ang higit pa tungkol sa compilation ng vkd3d maaari mong suriin ang mga detalye ang link na ito.