เลเยอร์การแปลที่ใช้ Vulkan สำหรับ Direct3d 10/11 ซึ่งอนุญาตให้ใช้งานแอปพลิเคชัน 3D บน Linux โดยใช้ไวน์
สำหรับสถานะปัจจุบันของโครงการโปรดดูโครงการ Wiki
ในการติดตั้งแพ็คเกจ DXVK ที่ได้จากหน้าปล่อยลงในคำนำหน้าไวน์ที่กำหนดให้เรียกใช้คำสั่งต่อไปนี้จากภายในไดเรกทอรี DXVK:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh install
สิ่งนี้จะ คัดลอก DLLs ลงในไดเรกทอรี system32 และ syswow64 ของคำนำหน้าไวน์ของคุณและตั้งค่าการแทนที่ DLL ที่จำเป็น รองรับคำนำหน้า 32 บิตบริสุทธิ์
สคริปต์การตั้งค่าเลือกใช้อาร์กิวเมนต์ต่อไปนี้:
--symlink : สร้างลิงก์สัญลักษณ์ไปยังไฟล์ DLL แทนการคัดลอก สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการพัฒนา--without-dxgi : อย่าติดตั้งการใช้งาน DXGI ของ DXVK และใช้สิ่งที่ได้จากไวน์แทน สิ่งนี้จำเป็นสำหรับทั้ง VKD3D และ DXVK ในการทำงานภายในคำนำหน้าไวน์เดียวกัน ตรวจสอบว่าแอปพลิเคชันของคุณใช้ DXVK แทน Wined3D โดยตรวจสอบการมีอยู่ของไฟล์บันทึก d3d11.log ในไดเรกทอรีของแอปพลิเคชันหรือโดยการเปิดใช้งาน HUD (ดูหมายเหตุด้านล่าง)
ในการลบ DXVK ออกจากคำนำหน้าให้เรียกใช้คำสั่งต่อไปนี้:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh uninstall
ภายในไดเรกทอรี DXVK, Run:
./package-release.sh master /your/target/directory --no-package
สิ่งนี้จะสร้างโฟลเดอร์ dxvk-master ใน /your/target/directory ซึ่งมีทั้ง DXVK รุ่น 32 บิตและ 64 บิตซึ่งสามารถตั้งค่าได้ในลักษณะเดียวกับรุ่นรุ่นที่ระบุไว้ข้างต้น
เพื่อที่จะรักษาไดเรกทอรีการสร้างเพื่อการพัฒนาให้ผ่าน --dev-build กับสคริปต์ ตัวเลือกนี้แสดงถึง --no-package หลังจากทำการเปลี่ยนแปลงซอร์สโค้ดแล้วคุณสามารถทำสิ่งต่อไปนี้เพื่อสร้าง DXVK:
# change to build.32 for 32-bit
cd /your/target/directory/build.64
ninja install
การสร้าง Winelib สามารถสร้างขึ้นได้โดยการเพิ่มอาร์กิวเมนต์ --winelib
# 64-bit build. For 32-bit builds, replace
# build-win64.txt with build-win32.txt
meson --cross-file build-win64.txt --buildtype release --prefix /your/dxvk/directory build.w64
cd build.w64
ninja install
D3D10, D3D11 และ DXGI DLLS จะอยู่ใน /your/dxvk/directory/bin การตั้งค่าจะต้องทำด้วยตนเองในกรณีนี้
ก่อนรายงานปัญหาโปรดตรวจสอบหน้า Wiki เกี่ยวกับสถานะไดรเวอร์ปัจจุบันและตรวจสอบให้แน่ใจว่าคุณเรียกใช้เวอร์ชันไดรเวอร์ล่าสุดสำหรับฮาร์ดแวร์ของคุณ
การจัดการของไลบรารี Direct3D ในเกมผู้เล่นหลายคนอาจถูกพิจารณาว่ามีการโกงและสามารถ ห้าม บัญชีของคุณได้ สิ่งนี้อาจนำไปใช้กับเกมผู้เล่นเดี่ยวที่มีส่วนที่มีผู้เล่นหลายคนในตัวหรือทุ่มเท ใช้ความเสี่ยงของคุณเอง
ตัวแปรสภาพแวดล้อม DXVK_HUD ควบคุม HUD ซึ่งสามารถแสดงเคาน์เตอร์ Framerate และ Stat บางตัว ยอมรับรายการตัวเลือกต่อไปนี้ที่คั่นด้วยเครื่องหมายจุลภาค:
devinfo : แสดงชื่อของ GPU และเวอร์ชันไดรเวอร์fps : แสดงอัตราเฟรมปัจจุบันframetimes : แสดงกราฟเวลาเฟรมsubmissions : แสดงจำนวนบัฟเฟอร์คำสั่งที่ส่งต่อเฟรมdrawcalls : แสดงจำนวนการเรียกใช้การดึงและการแสดงผลผ่านต่อเฟรมpipelines : แสดงจำนวนกราฟิกทั้งหมดและการคำนวณท่อmemory : แสดงจำนวนหน่วยความจำอุปกรณ์ที่จัดสรรและใช้gpuload : แสดงโหลด GPU โดยประมาณ อาจไม่ถูกต้องversion : แสดงเวอร์ชัน DXVKapi : แสดงระดับคุณสมบัติ D3D ที่ใช้โดยแอปพลิเคชัน ไม่ทำงานอย่างถูกต้องสำหรับ D3D10 ในขณะนี้compiler : แสดงกิจกรรมคอมไพเลอร์ Shader นอกจากนี้ DXVK_HUD=1 มีเอฟเฟกต์เช่นเดียวกับ DXVK_HUD=devinfo,fps และ DXVK_HUD=full เปิดใช้งานองค์ประกอบ HUD ที่มีอยู่ทั้งหมด
แอปพลิเคชันบางตัวไม่ได้ให้วิธีการเลือก GPU อื่น ในกรณีนั้น DXVK สามารถบังคับให้ใช้อุปกรณ์ที่กำหนดได้:
DXVK_FILTER_DEVICE_NAME="Device Name" เลือกอุปกรณ์ที่มีชื่ออุปกรณ์ Vulkan ที่ตรงกันซึ่งสามารถเรียกคืนได้ด้วยเครื่องมือเช่น vulkaninfo การจับคู่บนพื้นผิวดังนั้น "Vega" หรือ "AMD Radv Vega10" ได้รับการสนับสนุนหากชื่ออุปกรณ์เต็มคือ "AMD Radv Vega10 (LLVM 9.0.0)" ตัวอย่างเช่น หากสตริงย่อยตรงกับอุปกรณ์มากกว่าหนึ่งอุปกรณ์อุปกรณ์แรกที่ตรงกันจะถูกใช้หมายเหตุ: หากตัวกรองอุปกรณ์ได้รับการกำหนดค่าไม่ถูกต้องอาจกรองอุปกรณ์และแอปพลิเคชันทั้งหมดจะไม่สามารถสร้างอุปกรณ์ D3D ได้
DXVK แคชสถานะไปป์ไลน์โดยค่าเริ่มต้นเพื่อให้ shaders สามารถคอมไพล์ใหม่ก่อนเวลาในการรันแอปพลิเคชันที่ตามมาแม้ว่าแคช Shader ของคนขับเองจะถูกทำให้เป็นโมฆะในระหว่างนี้ แคชนี้เปิดใช้งานโดยค่าเริ่มต้นและโดยทั่วไปจะลดการพูดติดอ่าง
ตัวแปรสภาพแวดล้อมต่อไปนี้สามารถใช้ในการควบคุมแคช:
DXVK_STATE_CACHE=0 ปิดการใช้งานแคชสถานะDXVK_STATE_CACHE_PATH=/some/directory ระบุไดเรกทอรีที่จะใส่ไฟล์แคช ค่าเริ่มต้นไปยังไดเรกทอรีการทำงานปัจจุบันของแอปพลิเคชันตัวแปรสภาพแวดล้อมต่อไปนี้สามารถใช้เพื่อวัตถุประสงค์ ในการดีบัก
VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation ช่วยให้เลเยอร์ดีบั๊ก Vulkan แนะนำเป็นอย่างยิ่งสำหรับการแก้ไขปัญหาการแสดงผลและการล่มของคนขับ ต้องใช้ Vulkan SDK ในระบบโฮสต์DXVK_LOG_LEVEL=none|error|warn|info|debug ควบคุมการบันทึกข้อความDXVK_LOG_PATH=/some/directory เปลี่ยนเส้นทางที่เก็บไฟล์บันทึกไว้DXVK_CONFIG_FILE=/xxx/dxvk.conf ตั้งค่าพา ธ ไปยังไฟล์การกำหนดค่า DXVK ต้องการการสนับสนุนการทำเกลียวจากสภาพแวดล้อมการสร้าง MingW-W64 ของคุณ หากคุณพลาดสิ่งนี้คุณอาจเห็น "ข้อผิดพลาด: 'mutex' ไม่ใช่สมาชิกของ 'std'" ใน Debian และ Ubuntu สิ่งนี้สามารถแก้ไขได้โดยใช้ Posix Alternate ซึ่งรองรับการทำเกลียว ตัวอย่างเช่นเลือก Posix Alternate จากคำสั่งเหล่านี้ (ใช้ i686 สำหรับ 32 บิต):
update-alternatives --config x86_64-w64-mingw32-gcc
update-alternatives --config x86_64-w64-mingw32-g++