โครงการ Wine ได้เผยแพร่ Vkd3d 1.7 พร้อมการใช้งาน Direct3D 12

โครงการ Wine ได้เผยแพร่การเปิดตัวแพ็คเกจ vkd3d 1.7 พร้อมการใช้งาน Direct3D 12 ที่ทำงานผ่านการออกอากาศการโทรไปยัง Vulkan Graphics API แพ็คเกจนี้ประกอบด้วยไลบรารี libvkd3d ที่มีการปรับใช้ Direct3D 12, libvkd3d-shader พร้อมตัวแปลของ shader รุ่น 4 และ 5 และ libvkd3d-utils พร้อมฟังก์ชันเพื่อทำให้การพอร์ตแอปพลิเคชัน Direct3D 12 ง่ายขึ้น รวมถึงชุดตัวอย่างการสาธิต รวมถึงพอร์ต ของ glxgears ถึง Direct3D 12 รหัสโครงการได้รับการเผยแพร่ภายใต้ลิขสิทธิ์ LGPLv2.1

ไลบรารี libvkd3d รองรับคุณสมบัติ Direct3D 12 ส่วนใหญ่ รวมถึงสิ่งอำนวยความสะดวกด้านกราฟิกและการคำนวณ คิวและรายการคำสั่ง ตัวจัดการและตัวจัดการฮีป ลายเซ็นรูท การเข้าถึงที่ไม่อยู่ในลำดับ แซมเพลอร์ ลายเซ็นคำสั่ง ค่าคงที่รูท การเรนเดอร์ทางอ้อม วิธีการล้าง *( ) และคัดลอก*() ใน libvkd3d-shader มีการใช้การแปลไบต์โค้ดของ shader รุ่น 4 และ 5 ไปเป็นการแสดง SPIR-V ระดับกลาง รองรับจุดสุดยอด พิกเซล เทสเซลเลชัน การคำนวณ และเชเดอร์เรขาคณิตแบบง่าย การทำให้ซีเรียลไลซ์ลายเซ็นราก และการดีซีเรียลไลซ์ คำสั่งเชเดอร์ประกอบด้วยการดำเนินการทางคณิตศาสตร์ อะตอมมิกและบิต ตัวดำเนินการเปรียบเทียบและควบคุมการไหลของข้อมูล คำแนะนำในการสุ่มตัวอย่าง รวบรวม และโหลด การดำเนินการเข้าถึงแบบไม่เรียงลำดับ (UAV, มุมมองการเข้าถึงแบบไม่เรียงลำดับ)

ในเวอร์ชันใหม่:

  • งานยังคงปรับปรุงคอมไพเลอร์เชเดอร์ใน HLSL (ภาษาเชเดอร์ระดับสูง):
    • เพิ่มความสามารถในการเรียกใช้ฟังก์ชันแบบกำหนดเองและใช้อาร์เรย์เป็นพารามิเตอร์สำหรับฟังก์ชันแบบกำหนดเอง
    • เพิ่มการสนับสนุนสำหรับพารามิเตอร์ SV_DispatchThreadID, SV_GroupID และ SV_GroupThreadID
    • เพิ่มฟังก์ชันในตัวทั้งหมด(), ระยะทาง(), exp(), exp2(), frac(), lit(), สะท้อน(), sin(), cos(), Smoothstep(), sqrt(), rsqrt () , ขั้นตอน(), ย้าย()
    • เพิ่มการรองรับเบื้องต้นสำหรับประเภทจุดลอยตัวที่มีความแม่นยำต่ำ เช่น "min16float"
  • การสนับสนุนที่ดีขึ้นอย่างมากสำหรับโปรไฟล์โมเดล Direct3D 1/2/3 shader
  • เพิ่ม API สาธารณะสำหรับการแยกวิเคราะห์ (vkd3d_shader_parse_dxbc) และการทำให้เป็นอนุกรม (vkd3d_shader_serialize_dxbc) ของข้อมูลไบนารี DXBC

ที่มา: opennet.ru

เพิ่มความคิดเห็น