เผยแพร่กราฟิกมาตรฐาน Vulkan 1.3 แล้ว

หลังจากทำงานมาเป็นเวลาสองปี Khronos ซึ่งเป็นกลุ่มมาตรฐานกราฟิกได้เผยแพร่ข้อกำหนด Vulkan 1.3 ซึ่งกำหนด API สำหรับการเข้าถึงความสามารถด้านกราฟิกและการประมวลผลของ GPU ข้อมูลจำเพาะใหม่รวมการแก้ไขและการขยายที่สะสมมาเป็นเวลาสองปี โปรดทราบว่าข้อกำหนดของข้อกำหนด Vulkan 1.3 ได้รับการออกแบบมาสำหรับอุปกรณ์กราฟิกคลาส OpenGL ES 3.1 ซึ่งจะรับประกันการรองรับ API กราฟิกใหม่ใน GPU ทั้งหมดที่รองรับ Vulkan 1.2 เครื่องมือ Vulkan SDK มีการวางแผนเผยแพร่ในช่วงกลางเดือนกุมภาพันธ์ นอกเหนือจากคุณสมบัติหลักแล้ว ยังมีแผนที่จะเสนอส่วนขยายเพิ่มเติมสำหรับอุปกรณ์พกพาและเดสก์ท็อประดับกลางและระดับสูง ซึ่งจะได้รับการสนับสนุนโดยเป็นส่วนหนึ่งของรุ่น “Vulkan Milestone”

ในเวลาเดียวกัน มีการเสนอแผนเพื่อดำเนินการสนับสนุนข้อกำหนดใหม่และส่วนขยายเพิ่มเติมในกราฟิกการ์ดและไดรเวอร์อุปกรณ์ Intel, AMD, ARM และ NVIDIA กำลังเตรียมที่จะเปิดตัวผลิตภัณฑ์ที่รองรับ Vulkan 1.3 ตัวอย่างเช่น AMD ประกาศว่าเร็วๆ นี้จะรองรับ Vulkan 1.3 ในกราฟิกการ์ดซีรีส์ AMD Radeon RX Vega รวมถึงการ์ดทั้งหมดที่ใช้สถาปัตยกรรม AMD RDNA NVIDIA กำลังเตรียมเผยแพร่ไดรเวอร์ที่รองรับ Vulkan 1.3 สำหรับ Linux และ Windows ARM จะเพิ่มการรองรับ Vulkan 1.3 ให้กับ Mali GPU

นวัตกรรมหลัก:

  • การสนับสนุนสำหรับการเรนเดอร์พาสที่ง่ายขึ้น (Streamlining Render Passes, VK_KHR_dynamic_rendering) ได้ถูกนำมาใช้แล้ว ช่วยให้คุณสามารถเริ่มการเรนเดอร์ได้โดยไม่ต้องสร้างการเรนเดอร์พาสและวัตถุ framebuffer
  • มีการเพิ่มส่วนขยายใหม่เพื่อลดความซับซ้อนในการจัดการการรวบรวมไปป์ไลน์กราฟิก (ไปป์ไลน์ ชุดของการดำเนินการที่เปลี่ยนกราฟิกแบบเวกเตอร์ดั้งเดิมและพื้นผิวให้เป็นตัวแทนพิกเซล)
    • VK_EXT_extend_dynamic_state, VK_EXT_extend_dynamic_state2 - เพิ่มสถานะไดนามิกเพิ่มเติมเพื่อลดจำนวนอ็อบเจ็กต์สถานะที่คอมไพล์และแนบ
    • VK_EXT_pipeline_creation_cache_control - ให้การควบคุมขั้นสูงเกี่ยวกับเวลาและวิธีรวบรวมไปป์ไลน์
    • VK_EXT_pipeline_creation_feedback - ให้ข้อมูลเกี่ยวกับไปป์ไลน์ที่คอมไพล์แล้วเพื่อทำให้การทำโปรไฟล์และการดีบักง่ายขึ้น
  • คุณสมบัติจำนวนหนึ่งได้รับการถ่ายโอนจากตัวเลือกเสริมไปเป็นคุณสมบัติบังคับ ตัวอย่างเช่น การดำเนินการอ้างอิงบัฟเฟอร์ (VK_KHR_buffer_device_address) และโมเดลหน่วยความจำ Vulkan ซึ่งกำหนดวิธีที่เธรดที่ทำงานพร้อมกันสามารถเข้าถึงข้อมูลที่ใช้ร่วมกันและการดำเนินการซิงโครไนซ์กลายเป็นข้อบังคับ
  • มีการควบคุมกลุ่มย่อยแบบละเอียด (VK_EXT_subgroup_size_control) เพื่อให้ผู้ขายสามารถให้การสนับสนุนสำหรับขนาดกลุ่มย่อยหลายขนาด และนักพัฒนาสามารถเลือกขนาดที่ต้องการได้
  • มีการจัดเตรียมส่วนขยาย VK_KHR_shader_integer_dot_product ซึ่งสามารถใช้เพื่อปรับประสิทธิภาพของเฟรมเวิร์กแมชชีนเลิร์นนิงให้เหมาะสม ด้วยการเร่งด้วยฮาร์ดแวร์ของการดำเนินการดอทผลิตภัณฑ์
  • มีส่วนขยายใหม่ทั้งหมด 23 รายการ:
    • VK_KHR_copy_commands2
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_การบำรุงรักษา4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_การซิงโครไนซ์2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_รูปแบบ
    • VK_EXT_extend_dynamic_state
    • VK_EXT_extend_dynamic_state2
    • VK_EXT_image_ความทนทาน
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_private_data
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_กลุ่มย่อย_ขนาด_การควบคุม
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_รูปแบบ
  • เพิ่มวัตถุประเภทใหม่ VkPrivateDataSlot มีการใช้คำสั่งใหม่ 37 คำสั่งและโครงสร้างมากกว่า 60 โครงสร้าง
  • ข้อมูลจำเพาะ SPIR-V 1.6 ได้รับการอัปเดตเพื่อกำหนดการแสดงเชเดอร์ระดับกลางที่เป็นสากลสำหรับทุกแพลตฟอร์ม และสามารถใช้ได้สำหรับทั้งกราฟิกและการประมวลผลแบบขนาน SPIR-V เกี่ยวข้องกับการแยกขั้นตอนการคอมไพล์เชเดอร์ที่แยกจากกันเป็นการเป็นตัวแทนระดับกลาง ซึ่งช่วยให้คุณสามารถสร้างส่วนหน้าสำหรับภาษาระดับสูงต่างๆ จากการใช้งานระดับสูงต่างๆ โค้ดระดับกลางเดี่ยวจะถูกสร้างขึ้นแยกกัน ซึ่งสามารถใช้ได้โดยไดรเวอร์ OpenGL, Vulkan และ OpenCL โดยไม่ต้องใช้คอมไพเลอร์เชเดอร์ในตัว
  • มีการเสนอแนวคิดของโปรไฟล์ความเข้ากันได้ Google เป็นเจ้าแรกที่เปิดตัวโปรไฟล์พื้นฐานสำหรับแพลตฟอร์ม Android ซึ่งจะทำให้ง่ายต่อการกำหนดระดับการสนับสนุนสำหรับความสามารถ Vulkan ขั้นสูงบนอุปกรณ์ที่อยู่นอกเหนือข้อกำหนด Vulkan 1.0 สำหรับอุปกรณ์ส่วนใหญ่ สามารถให้การสนับสนุนโปรไฟล์ได้โดยไม่ต้องติดตั้งการอัปเดต OTA

ให้เราระลึกว่า Vulkan API มีความโดดเด่นในด้านการลดความซับซ้อนของไดรเวอร์ การถ่ายโอนการสร้างคำสั่ง GPU ไปยังฝั่งแอปพลิเคชัน ความสามารถในการเชื่อมต่อเลเยอร์การดีบัก การรวม API สำหรับแพลตฟอร์มต่างๆ และการใช้พรีคอมไพล์แล้ว การแสดงโค้ดระดับกลางสำหรับการดำเนินการทางฝั่ง GPU เพื่อให้มั่นใจถึงประสิทธิภาพและความสามารถในการคาดการณ์ที่สูง Vulkan มอบแอปพลิเคชันที่ควบคุมการทำงานของ GPU ได้โดยตรงและการรองรับ GPU แบบมัลติเธรด ซึ่งลดค่าใช้จ่ายของไดรเวอร์ให้เหลือน้อยที่สุดและทำให้ความสามารถด้านไดรเวอร์ง่ายขึ้นและคาดเดาได้มากขึ้น ตัวอย่างเช่น การดำเนินการต่างๆ เช่น การจัดการหน่วยความจำและการจัดการข้อผิดพลาด ที่ใช้งานใน OpenGL ทางฝั่งคนขับ จะถูกย้ายไปยังระดับแอปพลิเคชันใน Vulkan

Vulkan ครอบคลุมแพลตฟอร์มที่มีอยู่ทั้งหมด และมอบ API เดียวสำหรับเดสก์ท็อป อุปกรณ์เคลื่อนที่ และเว็บ ทำให้สามารถใช้ API ทั่วไปหนึ่งตัวกับ GPU และแอปพลิเคชันหลายตัวได้ ด้วยสถาปัตยกรรมหลายชั้นของ Vulkan ซึ่งหมายถึงเครื่องมือที่ทำงานร่วมกับ GPU ใดๆ ได้ OEM จึงสามารถใช้เครื่องมือมาตรฐานอุตสาหกรรมสำหรับการตรวจสอบโค้ด การแก้ไขจุดบกพร่อง และการสร้างโปรไฟล์ในระหว่างการพัฒนา สำหรับการสร้างเชเดอร์ มีการเสนอการนำเสนอสื่อกลางแบบพกพาแบบใหม่ SPIR-V โดยอิงจาก LLVM และแบ่งปันเทคโนโลยีหลักกับ OpenCL ในการควบคุมอุปกรณ์และหน้าจอ Vulkan นำเสนออินเทอร์เฟซ WSI (Window System Integration) ซึ่งแก้ไขปัญหาเดียวกันกับ EGL ใน OpenGL ES โดยประมาณ การสนับสนุน WSI พร้อมใช้งานทันทีใน Wayland - แอปพลิเคชันทั้งหมดที่ใช้ Vulkan สามารถทำงานในสภาพแวดล้อมของเซิร์ฟเวอร์ Wayland ที่ยังไม่ได้แก้ไข ความสามารถในการทำงานผ่าน WSI ยังมีให้สำหรับ Android, X11 (พร้อม DRI3), Windows, Tizen, macOS และ iOS

ที่มา: opennet.ru

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