Microsoft กำลังเพิ่มการสนับสนุน DirectX ให้กับ Linux distros ที่ทำงานในสภาพแวดล้อม WSL 2 การเปลี่ยนแปลงจะเกิดขึ้นจริงกับ 21H1 บิลด์แรกจากสาขา Iron (Fe) ใน Fast Ring ซึ่งคาดว่าจะมาในเดือนมิถุนายนนี้
การโฆษณา
วิธีปิดโหมดไม่ระบุตัวตนบนโทรศัพท์
Microsoft คือ แนะนำ Windows Display Driver Model เวอร์ชัน 2.9, WDDMv2.9 ซึ่งจะทำให้การเร่งความเร็วของ GPU เป็น WSL 2 เพื่อให้เป็นไปได้มีโมดูลเคอร์เนล Linux พิเศษที่ด้านข้างของ WSLdxgkrnl
.
dxgkrnl
Dxgkrnl เป็นไดรเวอร์เคอร์เนลใหม่ล่าสุดสำหรับ Linux ที่เปิดเผยไฟล์ / dev / dxg อุปกรณ์ไปยังโหมดผู้ใช้ Linux / dev / dxg แสดงชุดของ IOCTL ที่เลียนแบบชั้นบริการเคอร์เนล WDDM D3DKMT ดั้งเดิมบน Windows อย่างใกล้ชิด Dxgkrnl ภายในเคอร์เนล Linux เชื่อมต่อผ่าน VM Bus กับพี่ใหญ่บนโฮสต์ Windows และใช้การเชื่อมต่อบัส VM นี้เพื่อสื่อสารกับ GPU ทางกายภาพ
หากโฮสต์มี GPU หลายตัว GPU ทั้งหมดจะถูกฉายและพร้อมใช้งานในสภาพแวดล้อมของ Linux (สมมติว่า GPU ทั้งหมดเหล่านี้กำลังเรียกใช้ไดรเวอร์ WDDMv2.9)
Microsoft อ้างว่าสถาปัตยกรรมจะไม่ จำกัด หรือขัดขวางประสิทธิภาพของแอพ WSL และทรัพยากร GPU จะถูกแชร์อย่างเหมาะสมระหว่างแอพ Windows ที่ทำงานร่วมกับ Linux GUI และแอพคอนโซลที่ใช้ DirectX
Dxgkrnl Linux edition กำลังถูกทำให้เป็นโอเพ่นซอร์ส
windows 10 คลิกปุ่ม windows ไม่ได้
DxCore & D3D12 บน Linux
โครงการนี้นำ D3D12 API เต็มรูปแบบมาสู่ Linux โดยไม่มีการเลียนแบบ ibd3d12.so รวบรวมจากซอร์สโค้ดเดียวกับ d3d12.dll บน Windows แต่สำหรับเป้าหมาย Linux มีฟังก์ชันและประสิทธิภาพในระดับเดียวกัน (ลบด้วยค่าโสหุ้ยการจำลองเสมือน) ข้อยกเว้นเพียงประการเดียวคือปัจจุบัน () ขณะนี้ไม่มีการรวมการนำเสนอกับ WSL เนื่องจาก WSL เป็นประสบการณ์คอนโซลเท่านั้นในปัจจุบัน D3D12 API สามารถใช้สำหรับการแสดงผลและคำนวณนอกหน้าจอได้ แต่ไม่มีการสนับสนุน swapchain เพื่อคัดลอกพิกเซลไปยังหน้าจอโดยตรง
DxCore (libdxcore.so) เป็นเวอร์ชันที่เรียบง่ายของ dxgi ที่ส่วนเดิมของ API ถูกแทนที่ด้วยเวอร์ชันที่ทันสมัย DxCore พร้อมใช้งานทั้งบน Windows และ Linux DxCore ยังใช้เพื่อโฮสต์ D3DKMT API เวอร์ชันแบนที่ใช้โดยไดรเวอร์ที่ใช้ WDDM บน Windows เพื่อพูดคุยกับ GPU API นี้สรุปความแตกต่างในการที่บริการต่างๆของ WDDM เข้าสู่เคอร์เนล (ตารางบริการบน Windows เทียบกับ IOCTL บน Linux)
libd3d12.so และ libdxcore.so เป็นแบบปิดซึ่งเป็นไบนารีของโหมดผู้ใช้ที่คอมไพล์ล่วงหน้าซึ่งจัดส่งเป็นส่วนหนึ่งของ Windows ไบนารีเหล่านี้เข้ากันได้กับ distros ที่ใช้ glibc และติดตั้งโดยอัตโนมัติภายใต้/ usr / lib / wsl / libและแสดงให้ผู้โหลดเห็น กล่าวอีกนัยหนึ่ง API เหล่านี้ทำงานได้ทันทีโดยไม่จำเป็นต้องติดตั้งแพ็กเกจเพิ่มเติมหรือปรับแต่งการกำหนดค่าของ distro ขณะนี้การสนับสนุนถูก จำกัด ไว้ที่ distros ที่ใช้ glibc ซึ่งรวมเข้ากับ Ubuntu, Debian, Fedora, Centos, SUSE และอื่น ๆ
D3D12 จะไม่สามารถทำงานได้หากไม่มีไดรเวอร์โหมดผู้ใช้เฉพาะ GPU (UMD) ที่จัดหาโดยพันธมิตรผู้ผลิต GPU UMD มีหน้าที่ในการคอมไพล์เฉดเดอร์ให้กับโค้ดไบต์เฉพาะของฮาร์ดแวร์และแปลคำขอการเรนเดอร์ API เป็นคำสั่ง GPU จริงในบัฟเฟอร์คำสั่งที่ GPU จะดำเนินการ แพคเกจโปรแกรมควบคุมโฮสต์ติดตั้งอยู่ภายใน WSL ที่ / usr / lib / wsl / ไดรเวอร์และเข้าถึงได้โดยตรงไปยัง d3d12 API ต้องใช้ไดรเวอร์ WDDM 2.9 อีกครั้ง
Microsoft กำลังดำเนินการเพื่อเพิ่มการเร่ง GPU สำหรับ OpenGL, OpenCL & Vulkan ใน WSL ผ่านไลบรารี Mesa
สนิมวิธีการทำลายกำแพงของคุณเอง
รองรับ DxCore, D3D12, DirectML และ NVIDIA CUDA กำลังจะมาถึง Windows Insider สร้างเร็ว ๆ นี้ ขณะนี้วงแหวน Fast อยู่บน แมงกานีส (Mn) สาขา OS. คาดว่าวงแหวนแบบเร็วจะเปลี่ยนไปใช้แบบใหม่สาขาเหล็ก (Fe)
ในช่วงปลายเดือนมิถุนายนซึ่งจะเปิดเผยฟังก์ชันใหม่นี้ให้กับ Insiders