
เอกสารสำหรับตัวอย่างจะได้รับการดูที่ดีที่สุดในเว็บไซต์เอกสาร Vulkan ใหม่ เอกสารใช้ ASCIIDOC ซึ่งไม่ได้รับการสนับสนุนอย่างสมบูรณ์โดย GitHub
ตัวอย่าง Vulkan คือการรวบรวมทรัพยากรเพื่อช่วยให้คุณพัฒนาแอพพลิเคชั่น Vulkan ที่ดีที่สุด
หากคุณยังใหม่กับ Vulkan ตัวอย่าง API เป็นจุดเริ่มต้นที่เหมาะสม นอกจากนี้คุณอาจพบว่าลิงก์ต่อไปนี้มีประโยชน์:
คู่มือ Vulkan
เริ่มต้นใน Vulkan
ตัวอย่างประสิทธิภาพแสดงแนวทางปฏิบัติที่ดีที่สุดที่แนะนำพร้อมกับข้อมูลการทำโปรไฟล์แบบเรียลไทม์ พวกเขามีความก้าวหน้ามากขึ้น แต่ยังมีการสอนโดยละเอียดพร้อมคำอธิบายรายละเอียดเพิ่มเติม
สร้างคอลเลกชันของทรัพยากรที่แสดงให้เห็นถึงคำแนะนำการปฏิบัติที่ดีที่สุดใน Vulkan
สร้างแบบฝึกหัดที่อธิบายการใช้แนวปฏิบัติที่ดีที่สุดและรวมถึงคู่มือการวิเคราะห์ประสิทธิภาพ
สร้างเฟรมเวิร์กที่สามารถใช้เป็นวัสดุอ้างอิงและเป็นกล่องทรายสำหรับการทดลองขั้นสูงกับ Vulkan
รายชื่อตัวอย่างทั้งหมดที่มีอยู่ในที่เก็บนี้
พื้นฐานโครงการ
การควบคุม
หน้าต่างดีบัก
สร้างตัวอย่าง
Essentials Vulkan
Vulkan เปรียบเทียบกับ OpenGL ES อย่างไร คุณควรคาดหวังอะไรเมื่อกำหนดเป้าหมาย Vulkan?
ผิด
เวอร์ชันไดรเวอร์
ขีด จำกัด หน่วยความจำ
วิชาบังคับก่อน: Git พร้อมที่เก็บไฟล์ขนาดใหญ่ Git (GIT-LFs)
โคลน repo ด้วย submodules โดยใช้คำสั่งต่อไปนี้:
git clone-recurse-submodules https://github.com/khronosgroup/vulkan-samples.git ตัวอย่าง CD Vulkan
ทำตามคำแนะนำการสร้างสำหรับแพลตฟอร์มของคุณด้านล่าง
บันทึก | ที่เก็บเต็มมีขนาดใหญ่มากและผู้ให้บริการอินเทอร์เน็ตบางรายดูเหมือนจะมีปัญหาในการเชื่อมต่อที่แข็งแกร่งกับ GitHub ในขณะที่มีการโคลน หากคุณสังเกตเห็นปัญหาเช่นการดาวน์โหลด submodules ในอัตราที่รายงานในสิบ kb/s หรือข้อผิดพลาดการหมดเวลาที่ร้ายแรงที่เกิดขึ้นสิ่งเหล่านี้อาจเกิดจากปัญหาการกำหนดเส้นทางเครือข่ายไปยัง GitHub ภายในเครือข่ายภายในของ ISP ของคุณมากกว่าสิ่งผิดปกติในการตั้งค่าเครือข่ายของคุณเอง อาจเป็นเรื่องยากมากที่จะได้รับ ISP ที่จะรับทราบปัญหาดังกล่าวมีอยู่น้อยกว่ามากในการแก้ไข วิธีแก้ปัญหาหนึ่งคือการเปลี่ยนที่เก็บเพื่อใช้โปรโตคอล SSH ก่อนการดาวน์โหลด submodule ซึ่งสามารถทำได้ผ่านเช่น git clone [email protected]:KhronosGroup/Vulkan-Samples.git
cd Vulkan-Samples
perl -i -p -e ' s|https://(.*?)/|git@1:|g ' .gitmodules
git submodule sync
git submodule updateแม้ว่านี่จะเป็นทางเลือกที่ดีหากคุณกำลังพบปัญหาการเชื่อมต่อนี้คุณต้องมีการตั้งค่าการรับรองความถูกต้องของคีย์ GitHub SSH เพื่อใช้โปรโตคอล SSH - ดูการเชื่อมต่อกับ GitHub กับ SSH สำหรับรายละเอียด ดังนั้นจึงไม่ใช่วิธีแก้ปัญหาที่เราสามารถนำไปใช้เป็นค่าเริ่มต้นที่เก็บ ตัวเลือกอื่นที่อาจช่วยได้คือเรียกใช้ GitHub ผ่านบริการ VPN |
Windows - คู่มือสร้าง
Linux - คู่มือสร้าง
Android - คู่มือสร้าง
MacOS - คู่มือสร้าง
iOS - คู่มือสร้าง
ต่อไปนี้แสดงการใช้บรรทัดคำสั่งตัวอย่างบางส่วนเกี่ยวกับวิธีการกำหนดค่าและเรียกใช้ตัวอย่าง Vulkan
ตรวจสอบให้แน่ใจว่าคุณกำลังเรียกใช้ตัวอย่างจากไดเรกทอรีรากของที่เก็บ มิฉะนั้นตัวอย่างจะไม่สามารถค้นหาสินทรัพย์ได้ ./build/app/bin/<buildtype>/<arch>/vulkan_samples
# สำหรับการใช้งานทั้งหมด vulkan_samples -help # สำหรับการใช้งานคำสั่งย่อย vulkan_samples <ub_command> -help # รันตัวอย่างภาพ swapchain vulkan_samples ตัวอย่าง swapchain_images # รันตัวอย่าง AFBC ในโหมดมาตรฐานสำหรับ 5,000 เฟรม Vulkan_Samples ตัวอย่าง AFBC-เบี้ยประกัน-stop-after-frame 5000 # Run Compute NBY # หมายเหตุ: headless_surface ใช้ vk_ext_headless_surface # สิ่งนี้จะสร้างพื้นผิวและ swapchain แต่ปัจจุบันจะไม่มี op # ส่วนขยายได้รับการสนับสนุนโดย Swiftshader (https://github.com/google/swiftshader) # ช่วยให้สามารถทดสอบเนื้อหาในสภาพแวดล้อมได้อย่างรวดเร็วโดยไม่มี GPU vulkan_samples ตัวอย่าง compute_nbody -headless_surface -screenshot 5 # เรียกใช้ตัวอย่างประสิทธิภาพทั้งหมดเป็นเวลา 10 วินาทีในการกำหนดค่าแต่ละครั้ง Vulkan_Samples Batch -ประสิทธิภาพหมวดหมู่ -ระยะเวลา 10 # รันตัวอย่างภาพ swapchain บนอุปกรณ์ Android Adb Shell Am Start -Activity -n com.khronos.vulkan_samples/com.khronos.vulkan_samples.samplelauncheractivity -e ตัวอย่าง swapchain_images
ดูใบอนุญาต
โครงการนี้มีการพึ่งพาบุคคลที่สามหลายแห่ง
โครงการนี้ใช้สินทรัพย์จากชุดเก็บตัวอย่าง Vulkan แต่ละคนมีใบอนุญาตของตัวเอง
Vulkan เป็นเครื่องหมายการค้าจดทะเบียนของ Khronos Group Inc.
บริจาคให้กับ Khronos โดยแขนด้วยการบริจาคเพิ่มเติมโดย Sascha Willems และ Adam Sawicki ดูผู้มีส่วนร่วมสำหรับรายชื่อผู้สนับสนุนทั้งหมด
ดูการมีส่วนร่วมสำหรับแนวทางการบริจาค
แนวทางปฏิบัติที่ดีที่สุดของ Mali GPU: เอกสารที่มีคำแนะนำสำหรับการใช้ API ที่มีประสิทธิภาพ