vkd3d 1.2 идва с подобрения в съвместимостта, засенчване и други

Проектът Wine пусна нова версия на пакета vkd3d 1.2 с внедряване на Direct3D 12 който работи чрез превод на обажданията към графичния API на Vulkan.

Тази нова версия на vkd3d 1.2 съдържа различни подобрения, но от основните, които се открояват, са наличност на libvkd3d-shader като обществена библиотека, на поддръжка на шейдър теселация, както и изходната поддръжка на потока.

Пакетъти включва библиотеки libvkd3d с реализации на Direct3D 12, libvkd3d-shader с шейдър преводач на модел 4 и 5 и libvkd3d-utils с функции за опростяване на миграцията на приложения Direct3D 12, както и набор от демонстрации, включително порт glxgears към Direct3D 12. Кодът на проекта се разпространява лицензиран под LGPLv2.1.

Библиотека libvkd3d поддържа повечето функции на Direct3D 12, включително графични и изчислителни функции, командни списъци и опашки, дескриптори на купчина и дескриптори, коренни подписи, неподреден достъп, семплери, командни подписи, коренни константи, непряко представяне и т.н.

Libvkd3d-шейдър реализира превода на байт кодове 4 и 5 на моделите на засенчване в междинното представяне SPIR-V. Поддържат се върхове, пиксели, теселация, изчислителни и прости геометрични шейдъри, сериализация на корен на подписи и десериализация.

Инструкциите на шейдъра включват аритметични, атомни и битови операции, оператори за контрол и сравнение на потока от данни, инструкции за вземане на проби, събиране и зареждане, операции с неподреден достъп (UAV, изглед за неподреден достъп).

На настоящия етап на разработка не са изпълнени всички повиквания към Direct3D 12 и тестовете се провеждаха основно върху набор от демо приложения. Изданието не включва функции в разработката, като поддръжка на сложни геометрични шейдъри и теселация, както и редица подобрения, свързани с основните методи и шейдъри Direct3D 12. Тези функции ще бъдат предложени в бъдещо издание.

Основни нови функции на Vkd3d 1.2

От най-важните промени, които са представени в новата версия, е Наличност на библиотека libvkd3d-shader за използване в проекти на трети страни, тъй като Добавени са различни функции Direct3D 12, като:

  • Мулти-вземане на проби.
  • Резервирани ресурси.
  • Скорости на предаване на данни за инстанции.
  • API за частни данни за всички интерфейси.
  • Съпоставяне на компоненти на изглед на ресурси на шейдър
  • VK_KHR_draw_indirect_count разширение.
  • Предикатно / условно представяне.
  • Дълбоко изобразяване без пикселен шейдър.
  • Дълбоко изрязване. Това изисква разширението VK_EXT_depth_clip_enable.
  • Изхвърлете растеризатора.
  • Смесване с двоен източник.
  • Картографиране на разположени ресурси.
  • Методите ReadFromSubresource () и WriteToSubresource () ID3D12Resource.
  • Едновременен достъп до ресурси на няколко опашки.
  • Нулеви изгледи. Тоест, изгледи без основен ресурс.
  • Още няколко запитвания за поддръжка на функции.

В допълнение към това, добавена поддръжка за конвертиране, сериализиране и десериализиране на подписи също е подчертана root (vkd3d_serialize_versioned_root_signature () и vkd3d_create_versioned_root_signature_deserializer (), както и поддръжка за поточно извеждане.

Друга промяна, която се откроява, е изпълнение на променлива в средата: VKD3D_CONFIG за задаване на опции за промяна на поведението на libvkd3d и VKD3D_VULKAN_DEVICE, за да замени устройството за Vulkan API.

Освен, че добавена поддръжка за инструкции за засенчване bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos и предварителна поддръжка за шейдъри модел 5.1.

И също така поддръжка за OpenGL SPIR-V целеви среди. Това позволява SPIR-V, произведен от libvkd3d-shader, да се използва с GL_ARB_gl_spirv. Това включва поддръжка за атомни броячи OpenGL и комбинирани семплери.

Накрая ако искате да научите повече за това за тази нова версия можете да проверите пълния списък с промени В следващия линк.

Как да инсталирам vkd3d на Linux?

За тези, които се интересуват от възможността да инсталират vkd3d на тяхната система, те трябва да получат изходния код и да продължат със компилацията, въпреки че за практически цели или за тези начинаещи, те могат да изпробват тази библиотека без много усилия. За това те трябва само да инсталират lutris и в неговите конфигурации.

Що се отнася до тези, които се интересуват от компилация, те трябва да получат кода с:

git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"

И накрая, слоевете Vulkan трябва да бъдат активирани:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Добавяне като предпочитан източник в Google