เริ่มต้นใช้งาน Vulkan บน Android
Vulkan เป็น API กราฟิกหลักระดับต่ำใน Android Vulkan มอบประสิทธิภาพที่เหมาะสมที่สุด สำหรับเกมที่ใช้เอนจินเกมและโปรแกรมแสดงผลของตนเอง
หากต้องการติดตั้งใช้งาน Vulkan ในเกมเอนจินให้สำเร็จ คุณต้องทำดังนี้
- ระบุอุปกรณ์ Android ที่จะใช้กับ Vulkan
- ทำความเข้าใจข้อดีข้อเสียของการรองรับอุปกรณ์ Android รุ่นเก่า
- เพิ่ม Vulkan ลงในเป้าหมายการสร้าง Android
- เลือกคอมไพเลอร์ Shader เพื่อสร้าง SPIR-V สำหรับ Vulkan
- กำหนดเวอร์ชัน Vulkan API ที่พร้อมใช้งานในรันไทม์
- ดูวิธีเพิ่มประสิทธิภาพการดำเนินการการแสดงผล Vulkan ด้วยโปรไฟล์ Vulkan การเว้นระยะเฟรม และการหมุนล่วงหน้า
- เลือกเครื่องมือกราฟิกสำหรับการแก้ไขข้อบกพร่องและการวิเคราะห์ประสิทธิภาพ
- หมายเหตุ: ดูข้อมูลเกี่ยวกับการใช้ Vulkan ใน Android ด้วยเครื่องมือเกม Unity หรือ Unreal ได้ที่
- Vulkan ใน Unity
- Vulkan ใน Unreal
เลือกข้อกำหนดขั้นต่ำของอุปกรณ์สำหรับ Vulkan
Vulkan พร้อมใช้งานใน Android ตั้งแต่ Android 7.0 (API ระดับ 24) เป็นต้นไป อุปกรณ์ Android บางรุ่นที่ใช้ Android 7.0 ขึ้นไปไม่รองรับ Vulkan คุณต้อง พิจารณาว่าเกมของคุณรองรับอุปกรณ์ Android ที่ใช้ Vulkan รุ่นใดบ้าง
คำแนะนำ
ใช้ข้อกำหนดต่อไปนี้เป็นข้อกำหนดขั้นต่ำสำหรับการรองรับ Vulkan
- อุปกรณ์ใช้ Android 10.0 (API ระดับ 29) ขึ้นไป
- อุปกรณ์รองรับ Vulkan API เวอร์ชัน 1.1 ขึ้นไป
- อุปกรณ์มีขีดความสามารถและฟีเจอร์ของฮาร์ดแวร์ที่เข้ากันได้กับโปรไฟล์พื้นฐานของ Android ปี 2022
การรองรับอุปกรณ์รุ่นเก่า
หากเกมออกแบบมาให้ทำงานในอุปกรณ์หลากหลายประเภทที่มีความสามารถด้านกราฟิกแตกต่างกัน คุณอาจต้องรองรับอุปกรณ์ที่เก่ากว่าอุปกรณ์ที่แนะนำในเลือกข้อกำหนดขั้นต่ำของอุปกรณ์สำหรับ Vulkan ก่อนที่จะสร้างการรองรับอุปกรณ์รุ่นเก่า ให้ประเมินว่า Vulkan มีประโยชน์ต่อเกมของคุณหรือไม่ เกมที่มีการเรียกใช้การวาดจำนวนมากและใช้ OpenGL ES อาจมีค่าใช้จ่ายไดรเวอร์สูงอย่างมากเนื่องจากต้นทุนสูงของการเรียกใช้การวาด ภายใน OpenGL ES เกมเหล่านี้อาจใช้ CPU มากเกินไปเนื่องจากใช้เวลาในการแสดงผลเฟรมส่วนใหญ่ในไดรเวอร์กราฟิก นอกจากนี้ เกมยังอาจเห็นการลดการใช้ CPU และพลังงานอย่างมาก เมื่อเปลี่ยนจาก OpenGL ES เป็น Vulkan วิธีนี้เหมาะอย่างยิ่งหากเกมมีฉากที่ซับซ้อนซึ่งใช้การสร้างอินสแตนซ์เพื่อลดการเรียกวาดได้อย่างไม่มีประสิทธิภาพ เมื่อกำหนดเป้าหมายเป็นอุปกรณ์รุ่นเก่า ให้รวมการรองรับการแสดงผล OpenGL ES เป็นตัวเลือกสำรอง เนื่องจากอุปกรณ์บางเครื่องในรายการอุปกรณ์เป้าหมายอาจมีการติดตั้งใช้งาน Vulkan ที่ไม่สามารถเรียกใช้เกมได้อย่างน่าเชื่อถือ
คุณอาจไม่ต้องการรองรับอุปกรณ์รุ่นเก่าที่ใช้ Vulkan ได้เนื่องจากอุปกรณ์เหล่านั้นมีประสิทธิภาพและฟีเจอร์ไม่เพียงพอหรือมีปัญหาด้านความเสถียร
ประสิทธิภาพและฟีเจอร์
อุปกรณ์ Android รุ่นเก่าที่รองรับ Vulkan อาจไม่มีประสิทธิภาพการแสดงผลหรือ การรองรับฮาร์ดแวร์สำหรับฟีเจอร์ที่จำเป็นต่อการเรียกใช้เกม โดยเฉพาะอย่างยิ่งหากเกมของคุณมีกราฟิกที่มีความเที่ยงตรงสูงและ Vulkan เป็น API เดียวที่คุณ กำหนดเป้าหมายใน Android อุปกรณ์รุ่นเก่าจำนวนมากจำกัดไว้ที่ Vulkan API เวอร์ชัน 1.0.3 และมักไม่มีส่วนขยาย Vulkan ที่ใช้กันอย่างแพร่หลายซึ่งมีอยู่ในฮาร์ดแวร์ที่ทันสมัยกว่า
ความเสถียร
อุปกรณ์ Android รุ่นเก่าอาจใช้ไดรเวอร์ Vulkan ที่ล้าสมัย ไดรเวอร์ เวอร์ชันเหล่านี้อาจมีข้อบกพร่องที่ส่งผลต่อความเสถียรของเกม การแก้ไขข้อบกพร่องของไดรเวอร์อาจต้องใช้เวลาในการทดสอบและวิศวกรรมเป็นอย่างมาก
เพิ่ม Vulkan ลงในโปรเจ็กต์
หากต้องการเพิ่ม Vulkan ลงในโปรเจ็กต์ คุณต้องทำดังนี้
- รวมส่วนหัวของ Vulkan API
- คอมไพล์โค้ด Shader เป็น SPIR-V
- เรียกใช้ Vulkan API ที่รันไทม์
รวมส่วนหัวของ Vulkan API
เกมของคุณต้องมีไฟล์ส่วนหัวของ Vulkan API เพื่อคอมไพล์โค้ดที่ใช้ Vulkan คุณสามารถดูสำเนาของส่วนหัว Vulkan ได้ใน Android NDK หรือ ในการเผยแพร่ Vulkan SDK NDK เวอร์ชันใดก็ตาม จะมีเฉพาะส่วนหัว Vulkan ที่พร้อมใช้งาน ณ เวลาที่เผยแพร่ NDK หากคุณใช้ส่วนหัว Vulkan จาก NDK ให้ใช้ NDK เวอร์ชัน 25 ขึ้นไป ซึ่งมีไฟล์ส่วนหัวที่รองรับ Vulkan เวอร์ชัน 1.3 Vulkan SDK มีส่วนหัวเวอร์ชันล่าสุด
คอมไพล์โค้ด Shader เป็น SPIR-V
Vulkan API คาดหวังให้โปรแกรม Shader อยู่ในรูปแบบไบนารี SPIR-V กลาง ซึ่งแตกต่างจาก OpenGL ES ที่คุณสามารถส่งซอร์สโค้ดที่เขียนใน OpenGL Shading Language (GLSL) เป็นสตริงข้อความได้ ใช้คอมไพเลอร์ Shader เพื่อนำโค้ดที่เขียนในภาษา Shader เช่น GLSL หรือ High-level Shader Language (HLSL) มาคอมไพล์เป็นโมดูล SPIR-V เพื่อใช้กับ Vulkan
คอมไพเลอร์ shaderc สามารถใช้คอมไพล์โปรแกรม Shader ที่เขียนใน GLSL เป็น SPIR-V ได้ หากเกมของคุณใช้ HLSL DirectXShaderCompiler จะรองรับเอาต์พุต SPIR-V โดยปกติแล้ว คุณจะ คอมไพล์โปรแกรมเชเดอร์แบบออฟไลน์เป็นส่วนหนึ่งของกระบวนการสร้างชิ้นงานสำหรับ เกม และรวมโมดูล SPIR-V เป็นส่วนหนึ่งของชิ้นงานรันไทม์
เรียกใช้ Vulkan API ที่รันไทม์
หากต้องการเรียกใช้ Vulkan API เกมของคุณต้องรับตัวชี้ฟังก์ชันไปยังการเรียก Vulkan API วิธีที่ตรงไปตรงมาที่สุดในการทำเช่นนี้คือการลิงก์กับ
libvulkan.so
ไลบรารีที่ใช้ร่วมกัน ซึ่งรวมอยู่ใน Android NDK การลิงก์กับไลบรารีมีข้อบกพร่อง 2 อย่าง ได้แก่ ค่าใช้จ่ายในการเรียกใช้ฟังก์ชันเพิ่มเติม
และข้อจำกัดเกี่ยวกับตัวชี้ฟังก์ชัน Vulkan API ที่ระบบจะแก้ไขโดยอัตโนมัติ
เมื่อเรียกใช้ฟังก์ชัน Vulkan API การควบคุมจะผ่านตารางการเรียกใช้ที่จัดการโดยโครงสร้างที่เรียกว่าโปรแกรมโหลด Vulkan Android ใช้การติดตั้งใช้งาน Vulkan Loader ของตัวเอง ไม่ใช่ LunarG Loader ระบบโปรแกรมโหลดนี้เป็นส่วนหนึ่งของสถาปัตยกรรมเลเยอร์ของ Vulkan API การลิงก์ไปยังไลบรารีของระบบในเวลาสร้างจะส่งผลให้มีการส่งระดับเพิ่มเติม สำหรับการเรียก API ที่ระบุ แม้ว่าค่าใช้จ่ายจะน้อย แต่ก็อาจสังเกตเห็นได้ สำหรับเกมที่เรียกใช้ Vulkan จำนวนมาก
โดยทั่วไปแล้ว ไลบรารีของระบบจะแก้ไขเฉพาะพอยน์เตอร์ไปยังฟังก์ชัน Vulkan ที่ ถือเป็นส่วนหนึ่งของ Core API Vulkan มีส่วนขยายจำนวนมาก ซึ่ง กำหนดฟังก์ชัน Vulkan เพิ่มเติม โดยหลายฟังก์ชันที่ไลบรารีของระบบไม่สามารถแก้ไขได้โดยอัตโนมัติ คุณต้องแก้ไขพอยน์เตอร์ไปยังฟังก์ชัน Vulkan เหล่านี้ด้วยตนเองก่อนจึงจะใช้งานได้
หากต้องการลดปัญหาเหล่านี้ ให้แก้ไขพอยน์เตอร์ไปยังฟังก์ชัน Vulkan ทั้งหมดแบบไดนามิก
ที่คุณต้องการใช้ในรันไทม์ วิธีหนึ่งในการดำเนินการนี้คือการใช้ไลบรารีตัวโหลดเมตาแบบโอเพนซอร์ส เช่น volk เกมตัวอย่าง
AGDKTunnel ผสานรวม volk เพื่อจุดประสงค์นี้ หาก
คุณใช้ไลบรารีตัวโหลดเมตา อย่าลิงก์กับlibvulkan.so
ไลบรารีที่ใช้ร่วมกันในสคริปต์บิลด์
กำหนดเวอร์ชัน Vulkan API ที่พร้อมใช้งาน
Android รองรับ Vulkan API เวอร์ชันต่อไปนี้
- 1.0.3
- 1.1
- 1.3
หมายเลขเวอร์ชัน Vulkan API สูงสุดที่พร้อมใช้งานในอุปกรณ์หนึ่งๆ จะกำหนดโดยเวอร์ชัน Android และการรองรับไดรเวอร์ Vulkan
เวอร์ชัน Android
การรองรับแพลตฟอร์มสำหรับเวอร์ชัน Vulkan API ขึ้นอยู่กับเวอร์ชัน Android ขั้นต่ำ (ระดับ API) ดังนี้
- 1.3 — Android 13.0 (API ระดับ 33) ขึ้นไป
- 1.1 — Android 10.0 (API ระดับ 29) ขึ้นไป
- 1.0.3 - Android 7.0 (API ระดับ 24) ขึ้นไป
การรองรับไดรเวอร์ Vulkan
การรองรับแพลตฟอร์ม Android สำหรับ API ของ Vulkan เวอร์ชันหนึ่งๆ ไม่ได้เป็นการรับประกันว่าไดรเวอร์ Vulkan ของอุปกรณ์จะรองรับ API เวอร์ชันนั้น อุปกรณ์ที่ใช้ Android 13 อาจรองรับเฉพาะ Vulkan API เวอร์ชัน 1.1
เมื่อเริ่มต้น Vulkan อย่าขอเวอร์ชัน API ที่สูงกว่า
- เวอร์ชัน Vulkan API สูงสุดสำหรับ Android เวอร์ชันที่ใช้ใน อุปกรณ์
- เวอร์ชัน Vulkan API ที่รายงานโดย vkEnumerateInstanceVersion
- เวอร์ชัน Vulkan API ที่รายงานโดยพร็อพเพอร์ตี้
apiVersion
ของโครงสร้าง VkPhysicalDeviceProperties
ตัวอย่างการกำหนดเวอร์ชัน Vulkan API สูงสุดที่รองรับมีดังนี้
// Minimum Android API levels for Vulkan 1.3/1.1 version support
static constexpr int kMinimum_vk13_api_level = 33;
static constexpr int kMinimum_vk11_api_level = 29;
uint32_t GetHighestSupportedVulkanVersion(VkPhysicalDevice physical_device) {
uint32_t instance_api_version = 0;
vkEnumerateInstanceVersion(&instance_api_version);
VkPhysicalDeviceProperties device_properties;
vkGetPhysicalDeviceProperties(physical_device, &device_properties);
// Instance and device versions don't have to match, use the lowest version
// number for API support if they don't.
const uint32_t driver_api_version =
(instance_api_version < device_properties.apiVersion) ?
instance_api_version : device_properties.apiVersion;
const int device_api_level = android_get_device_api_level();
if (device_api_level >= kMinimum_vk13_api_level &&
driver_api_version >= VK_API_VERSION_1_3) {
return VK_API_VERSION_1_3;
} else if (device_api_level >= kMinimum_vk11_api_level &&
driver_api_version >= VK_API_VERSION_1_1) {
return VK_API_VERSION_1_1;
}
return VK_API_VERSION_1_0;
}
ตรวจสอบความเข้ากันได้ของโปรไฟล์ Vulkan
โปรไฟล์ Vulkan คือไฟล์ JSON ที่กำหนดชุดฟีเจอร์ ส่วนขยาย ความสามารถ และขีดจำกัดของพารามิเตอร์ขั้นต่ำที่อุปกรณ์ Vulkan ต้องรองรับเพื่อให้เข้ากันได้กับโปรไฟล์ หากต้องการตรวจสอบว่าอุปกรณ์เข้ากันได้กับโปรไฟล์ Vulkan ที่เฉพาะเจาะจงหรือไม่ เช่น โปรไฟล์พื้นฐานของ Android ปี 2022 ให้ใช้ไลบรารี Vulkan Profiles API แบบโอเพนซอร์ส นอกจากนี้ คุณยังแยกวิเคราะห์ไฟล์ JSON ของโปรไฟล์ด้วยตนเองและค้นหาความสามารถของอุปกรณ์ได้ โดยใช้ Vulkan API ที่เกี่ยวข้องเพื่อพิจารณาความเข้ากันได้ของโปรไฟล์
โปรไฟล์ Vulkan
Android ใช้โปรไฟล์ Vulkan ซึ่งกำหนดฟีเจอร์และส่วนขยายที่พร้อมใช้งานสำหรับ อุปกรณ์แต่ละเครื่องที่ใช้ Android
Baseline Profile ของ Android (ABP) เป็นความพยายามครั้งแรกในการสร้างโปรไฟล์ Vulkan ABP2021 และ ABP2022 เป็นโปรไฟล์ที่มองย้อนกลับไปเพื่อครอบคลุมอุปกรณ์ที่ใช้งานอยู่มากกว่า 85% ในขณะนั้น จะไม่มี ABP ใหม่ในอนาคต
โปรไฟล์ Vulkan สำหรับ Android (VPA) คือโปรไฟล์ใหม่ที่มุ่งเน้นอนาคตเพื่อ ตอบสนองความต้องการของนักพัฒนาซอฟต์แวร์และขับเคลื่อนฟีเจอร์ที่สอดคล้องกันโดยเร็วที่สุด เมื่อนักพัฒนาฮาร์ดแวร์พร้อมให้บริการ VPA15_minimums เป็นโปรไฟล์แรกสำหรับ Android 15 และจะมี VPA ใหม่ทุกปีเพื่อ ครอบคลุม Android เวอร์ชันหลักแต่ละรุ่น
ใช้การเว้นระยะเฟรม
การเว้นระยะเฟรมที่เหมาะสมเป็นส่วนสำคัญในการมอบประสบการณ์การเล่นเกมคุณภาพสูง Android Game Development Kit มีไลบรารีการเว้นเฟรมเพื่อช่วยให้เกมของคุณเว้นเฟรมได้อย่างเหมาะสม ดูรายละเอียดการติดตั้งใช้งานเพิ่มเติมได้ที่ผสานรวมการเว้นวรรคเฟรมของ Android เข้ากับโปรแกรมแสดงผล Vulkan
อย่าพึ่งพาการซิงค์โดยนัยและการเว้นระยะเฟรม
vkAcquireNextImageKHR และ vkQueuePresentKHR ใช้เพื่อจัดการ Swapchain หลีกเลี่ยงการพึ่งพาพฤติกรรมการบล็อกที่อาจเกิดขึ้น สำหรับการซิงโครไนซ์แอปพลิเคชันทั่วไปหรือ GPU
ลักษณะการบล็อกที่แน่นอนของฟังก์ชันเหล่านี้อาจแตกต่างกันอย่างมาก ใน
- อุปกรณ์ Android
- ไดรเวอร์ GPU
- สถานะของเครื่องมือการนำเสนอ (VkPresentModeKHR)
วัตถุประสงค์เดียวของ vkAcquireNextImageKHR คือการรับ รูปภาพที่นำเสนอได้ซึ่งพร้อมใช้งาน และอาจบล็อกหรือไม่ก็ได้ ในทำนองเดียวกัน vkQueuePresentKHR จะจัดคิวคำขอเพื่อแสดงรูปภาพ และอาจบล็อกหรือไม่ก็ได้
ทั้ง 2 ฟังก์ชันนี้ไม่รับประกันการซิงค์งาน CPU หรือการดำเนินการ GPU ที่ไม่เกี่ยวข้อง
เพื่อการซิงค์ที่เสถียร ให้ใช้ Primitive ของ Vulkan อย่างชัดเจนเสมอ เช่น Semaphore สำหรับการขึ้นต่อกันของ GPU-GPU (เช่น การแสดงผลต่อการนำเสนอ) Fence สำหรับการซิงค์ GPU-CPU (เช่น การทราบว่าการแสดงผลเสร็จสิ้นเมื่อใดใน CPU) และ Pipeline Barrier หรือเหตุการณ์สำหรับการดำเนินการ GPU ที่ละเอียดยิ่งขึ้นและการขึ้นต่อกันของ หน่วยความจำ การใช้การซิงค์ที่ชัดเจนจะช่วยให้มั่นใจได้ถึงลักษณะการทำงานที่คาดการณ์ได้ และหลีกเลี่ยงข้อบกพร่องเล็กๆ น้อยๆ ที่เกิดจากความแตกต่างของเวลาที่เฉพาะเจาะจงในการติดตั้งใช้งาน ซึ่งมีอยู่ในระบบนิเวศของฮาร์ดแวร์ที่หลากหลายของ Android
ใช้การหมุนเวียนล่วงหน้า
อุปกรณ์ Android แสดงได้หลายแนว การวางแนวอุปกรณ์อาจ แตกต่างจากการวางแนวของพื้นผิวการแสดงผล Vulkan จะไม่จัดการความคลาดเคลื่อนระหว่าง 2 อย่างนี้ ซึ่งต่างจาก OpenGL ES ใน Android หากต้องการทำความเข้าใจวิธีการทำงานของกระบวนการวางแนวและวิธีที่ดีที่สุดในการจัดการความแตกต่างของการวางแนวเมื่อใช้ Vulkan โปรดดูจัดการการหมุนอุปกรณ์ด้วยการหมุนก่อนของ Vulkan
แก้ปัญหาและสร้างโปรไฟล์การแสดงผล Vulkan
มีเครื่องมือมากมายที่พร้อมช่วยคุณวินิจฉัยปัญหาการแสดงผลและ ปัญหาด้านประสิทธิภาพของโค้ดการแสดงผล Vulkan
ดูข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือแก้ไขข้อบกพร่องและการสร้างโปรไฟล์ของ Vulkan ได้ที่ส่วน เครื่องมือและฟีเจอร์ขั้นสูง
เลเยอร์การตรวจสอบ Vulkan
เลเยอร์การตรวจสอบความถูกต้องของ Vulkan เป็นไลบรารีรันไทม์ที่เปิดใช้เพื่อตรวจสอบการเรียกใช้ Vulkan API และแสดงคำเตือนหรือข้อผิดพลาดเกี่ยวกับการใช้งานที่ไม่ถูกต้องหรือไม่เหมาะสม เลเยอร์การตรวจสอบเหล่านี้จะไม่ทำงานโดยค่าเริ่มต้น เนื่องจาก กระบวนการตรวจสอบจะเพิ่มค่าใช้จ่ายรันไทม์และส่งผลต่อประสิทธิภาพของเกม ดูข้อมูลเกี่ยวกับวิธีใช้เลเยอร์การตรวจสอบกับเกมได้ที่ การแก้ไขข้อบกพร่องด้วยเลเยอร์การตรวจสอบ
เครื่องมือจับภาพเฟรม
ใช้เครื่องมือจับภาพเฟรมเพื่อบันทึกและเล่นซ้ำการเรียกใช้ Vulkan API ที่ทำในระหว่างเฟรมเกม เครื่องมือเหล่านี้ช่วยให้คุณทำสิ่งต่อไปนี้ได้
- ดูข้อมูลและการแสดงภาพของทรัพยากรแบบกราฟิกที่ใช้งานอยู่
- ดูลำดับการเรียก API ที่เกมของคุณทำและดูพารามิเตอร์ API
- สำรวจสถานะของไปป์ไลน์กราฟิกในขณะที่มีการเรียกใช้การวาด
- แสดงภาพผลลัพธ์ของการแสดงผลจนถึงการเรียกใช้การวาดที่เฉพาะเจาะจงในเฟรม
ใช้เครื่องมือ RenderDoc แบบโอเพนซอร์สเพื่อบันทึกเฟรมจาก เกมที่ทำงานบน Android RenderDoc รองรับการจับภาพเฟรมของทั้ง Vulkan และ OpenGL ES
นอกจากนี้ยังใช้ Android GPU Inspector (AGI) เพื่อบันทึกเฟรม Vulkan ได้ด้วย
เครื่องมือวิเคราะห์ประสิทธิภาพ
ใช้เครื่องมือวิเคราะห์ประสิทธิภาพเพื่อตรวจสอบปัญหาการแสดงผลในเกมที่ทำให้อัตราเฟรมไม่เหมาะสม ผู้จำหน่าย GPU แต่ละรายมีเครื่องมือที่ออกแบบมาเพื่อ สร้างโปรไฟล์เกมและให้ข้อมูลประสิทธิภาพที่เฉพาะเจาะจงกับสถาปัตยกรรม GPU ของตน ลักษณะประสิทธิภาพและคอขวดของเกมอาจแตกต่างกันอย่างมากเมื่อเรนเดอร์ใน GPU จากผู้ให้บริการรายต่างๆ หรือแม้แต่ใน GPU รุ่นต่างๆ จากผู้ให้บริการรายเดียวกัน
นอกจากนี้ คุณยังใช้ Android GPU Inspector เพื่อรวบรวมและวิเคราะห์ ข้อมูลประสิทธิภาพได้ด้วย Android GPU Inspector เข้ากันได้กับ GPU หลายตัวจากผู้ให้บริการต่างๆ ซึ่งแตกต่างจากเครื่องมือของผู้ให้บริการ อย่างไรก็ตาม Android GPU Inspector ไม่รองรับอุปกรณ์ Android รุ่นเก่าและอาจไม่สามารถใช้งานร่วมกับอุปกรณ์ใหม่บางรุ่นได้
ปรับปรุงการทดสอบ Vulkan ด้วย CTS-D
ผู้ผลิตอุปกรณ์ที่ใช้ Android ใช้ชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) เพื่อช่วย ให้มั่นใจว่าอุปกรณ์ของตนเข้ากันได้ CTS ที่ขับเคลื่อนโดยนักพัฒนาแอป (CTS-D) คือ การทดสอบที่นักพัฒนาแอปพลิเคชัน Android ส่งมาเพื่อให้แน่ใจว่าอุปกรณ์ Android ในอนาคต จะตอบสนองกรณีการใช้งานของตน และสามารถเรียกใช้แอปพลิเคชัน ได้อย่างราบรื่นและไม่มีข้อบกพร่อง
หากคุณพบข้อบกพร่องใหม่ในแอปพลิเคชัน Vulkan ซึ่งส่งผลต่ออุปกรณ์ที่ใช้ Android เครื่องใดเครื่องหนึ่ง โดยเฉพาะ คุณสามารถส่งข้อเสนอการทดสอบใหม่พร้อมอธิบายปัญหาและวิธีตรวจสอบปัญหาดังกล่าวได้ ซึ่งจะช่วยให้มั่นใจได้ว่าปัญหาจะได้รับการแก้ไขในการอัปเดตอุปกรณ์ในอนาคต และยังช่วยให้มั่นใจได้ว่าจะไม่มีข้อบกพร่องเดียวกันนี้เกิดขึ้นกับอุปกรณ์อื่นๆ
ดูกระบวนการส่ง CTS เพื่อดูวิธีการส่ง ข้อเสนอการทดสอบทีละขั้นตอน