AMD ขยาย Radeon Cauldron 1.0 SDK ไปยังชุมชนการเขียนโปรแกรมซึ่งใช้ C ++ แบบง่าย

ฮาร์ดแวร์ / AMD ขยาย Radeon Cauldron 1.0 SDK ไปยังชุมชนการเขียนโปรแกรมซึ่งใช้ C ++ แบบง่าย อ่าน 4 นาที

หลังจากการทดสอบภายในอย่างกว้างขวางและการนำมาใช้ภายในอย่างรวดเร็วอย่างน่าประหลาดใจตอนนี้ AMD กำลังเสนอ Radeon Cauldron 1.0 Software Development Kit (SDK) ให้กับชุมชนการเขียนโปรแกรม บริษัท มั่นใจว่ากรอบงานไม่เพียง แต่ทำให้ง่ายขึ้น แต่ยังมีความหลากหลายอย่างน่าทึ่ง กล่าวอีกนัยหนึ่ง Radeon Cauldron SDK สามารถเข้าใจได้ง่ายสำหรับผู้เริ่มต้น ยิ่งไปกว่านั้นเฟรมเวิร์กยังมีความยืดหยุ่นอย่างกว้างขวางสำหรับโปรแกรมเมอร์ที่ต้องการเพิ่มคุณสมบัติใหม่ ๆ



AMD ขอนำเสนอหนึ่งในผลิตภัณฑ์ยอดนิยม กรอบการพัฒนาซอฟต์แวร์ เพื่อมวลชน Radeon Cauldron SDK รุ่นแรกที่ครอบคลุมและเสถียรพร้อมให้โปรแกรมเมอร์แล้ว Radeon Cauldron เป็นไลบรารีเฟรมเวิร์กสำหรับการสร้างต้นแบบอย่างรวดเร็ว ใช้ในตัวอย่าง AMD SDK และเอฟเฟกต์ SDK ทำงานร่วมกับ Vulkan หรือ Direct3D 12 API ได้อย่างราบรื่น AMD ได้ทำกรอบทั้งหมด มีให้ดาวน์โหลดบน GitHub ซึ่งเป็นพื้นที่เก็บข้อมูลยอดนิยมสำหรับซอฟต์แวร์โอเพนซอร์สที่เพิ่งซื้อมาโดย Microsoft ที่น่าสนใจก็คือ AMD ยังมี อัปโหลด GltfSample . แอปที่มีชื่อแปลก ๆ ได้รับการออกแบบพัฒนาและสร้างขึ้นโดยใช้กรอบ Cauldron อนึ่งทรัพยากรที่เกี่ยวข้องทั้งหมดของ Radeon Cauldron SDK ก็มีอยู่ใน GitHub เช่นกัน

Radeon Cauldron SDK คืออะไรและจะส่งผลต่อการพัฒนาซอฟต์แวร์แอพหรือเกมอย่างไร

Radeon Cauldron เป็นเฟรมเวิร์กทั้งหมดหรือชุดพัฒนาซอฟต์แวร์ที่สมบูรณ์สำหรับการสร้างต้นแบบอย่างรวดเร็ว โดยจะใช้เป็นหลักในตัวอย่าง AMD SDK และเอฟเฟกต์ ดังที่ได้กล่าวไว้ข้างต้นสามารถทำงานได้อย่างเหมาะสมกับ Vulkan ซึ่งเป็นกราฟิก 3 มิติข้ามแพลตฟอร์มและ API การประมวลผลแบบโอเวอร์เฮดต่ำที่ต้องการ ยิ่งไปกว่านั้น SDK ยังทำงานร่วมกับเวอร์ชันล่าสุดของ Direct3D ซึ่งก็คือ Direct3D 12



Radeon Cauldron SDK เปิดตัวครั้งแรกภายในที่ AMD แม้ว่าจะคาดไว้ แต่รุ่นแรกได้รับการยอมรับและนำมาใช้โดยทีมพัฒนาซอฟต์แวร์ภายในของ AMD หลังจากโครงการนำร่องแรก AMD ยืนยันแม้แต่กลุ่มสัมผัสอื่น ๆ ภายใน บริษัท ก็เริ่มแสดงความสนใจ ในที่สุด SDK ก็กลายเป็นหนึ่งในเฟรมเวิร์กที่ต้องการสำหรับทีมที่จัดการกับเครื่องมือไดรเวอร์และแม้แต่ซอฟต์แวร์และการสาธิตคุณลักษณะ



AMD ให้บริการ Radeon Cauldron 1.0 บน GPUOpen ภายใต้ใบอนุญาตโอเพ่นซอร์สของ MIT บริษัท ได้เน้นย้ำหลายครั้งถึงความง่ายในการทำความเข้าใจรหัสและความสะดวกในการขยายสิ่งเดียวกัน กล่าวอีกนัยหนึ่งแม้ว่าโปรแกรมเมอร์ที่มีประสบการณ์จะไม่สามารถใช้งานได้ แต่ผู้ใช้ใหม่สามารถถอดรหัสส่วนประกอบต่างๆและฟังก์ชันแต่ละอย่างได้อย่างรวดเร็วรวมถึงการอ้างอิง สิ่งนี้จะช่วยลดความซับซ้อนของขั้นตอนการพัฒนาที่ซับซ้อนได้อย่างมากและทำให้แน่ใจว่าผู้ใช้ทุกคนมั่นใจและสบายใจในขณะที่ใช้แบบเดียวกัน ยิ่งไปกว่านั้นโปรแกรมเมอร์สามารถขยายโค้ดได้อย่างรวดเร็วและมีประสิทธิภาพโดยไม่ต้องกังวลว่าจะขัดขวางการทำงานที่ผ่านมาหรือทำลายบางสิ่งในกระบวนการ



เฟรมเวิร์กมีความยืดหยุ่นและหลากหลายอย่างน่าประหลาดใจทำให้ AMD มั่นใจได้ การอ้างสิทธิ์ปรากฏเป็นจริงเนื่องจาก SDK ใช้วานิลลา C ++ AMD ได้พัฒนาสิ่งเดียวกันนี้โดยมีจุดมุ่งหมายที่ชัดเจนในการปฏิบัติตามปรัชญา 'หนึ่งคุณลักษณะหนึ่งคลาสหนึ่งไฟล์' ไม่จำเป็นต้องพูดถึงสิ่งนี้หมายความว่าโปรแกรมเมอร์ไม่จำเป็นต้องนำทางไฟล์ที่ซับซ้อนและหลายไฟล์ในขณะที่พยายามทำความเข้าใจว่าแอปพลิเคชันหรือแพลตฟอร์มเว็บทำงานอย่างไร AMD มั่นใจว่า Radeon Cauldron SDK จะยึดติดกับรูปแบบคลาสที่ง่ายที่สุด กล่าวอีกนัยหนึ่งถ้าเป็นไปได้ชั้นเรียนส่วนใหญ่จะใช้วิธีการต่อไปนี้:

คลาส MyTechnique

{



บูล OnCreate (…); // สร้างไปป์ไลน์เรขาคณิตคงที่และการเริ่มต้นครั้งเดียวอื่น ๆ

เป็นโมฆะ OnDestroy (…);

เป็นโมฆะ OnDraw (…) // ใช้ทรัพยากรที่สร้างขึ้นเพื่อวาดเทคนิค

}

Radeon Cauldron SDK ช่วยให้สามารถใช้เทคนิคสองอย่างที่จำเป็นในการเรนเดอร์โมเดล glTF 2.0 แม้ว่าจะจำเป็นสำหรับพาส PBR (Physically Based Rendering) แต่อีกอันมีไว้สำหรับการส่งผ่านความลึกเท่านั้น ในฐานะส่วนขยายมีสองคลาสที่เรียกว่า GltfPbrPass และ GltfDepthPass ข้อมูลของโมเดล glTF แบ่งออกเป็นสามไฟล์:

  1. GltfCommon คลาสที่ไม่เชื่อเรื่องพระเจ้าของ API ที่โหลดและดูแลการเปลี่ยนแปลงและภาพเคลื่อนไหวของฉากรวมถึงคลาส skinnin MyTechnique {bool OnCreate (…); // สร้างไปป์ไลน์เรขาคณิตคงที่และการเริ่มต้นครั้งเดียวอื่น ๆ ถือเป็นโมฆะ OnDestroy (…); เป็นโมฆะ OnDraw (…) // ใช้ทรัพยากรที่สร้างขึ้นเพื่อวาดเทคนิค} g.
  2. GltfTexturesAndBuffers ซึ่งเป็นคลาสที่โหลดและเก็บพื้นผิวทั้งหมดเมทริกซ์สกินและบัฟเฟอร์เรขาคณิต
  3. GltfPbrPass และ GltfDepthPass สองคลาสที่ใช้คลาสด้านบนเพื่อแสดงฉากด้วยเทคนิคที่กล่าวถึง

เฟรมเวิร์ก Radeon Cauldron มีทั้งโค้ดที่ไม่เกี่ยวกับกราฟิกและโค้ดที่ขึ้นกับกราฟิก ดังนั้นกรอบงานสามารถแบ่งออกเป็นสามโครงการ Visual Studio:

  1. Framework_DX12: ดังที่เห็นได้ชัดจากชื่อส่วนนี้เกี่ยวข้องกับ DirectX12 กล่าวอีกนัยหนึ่งคือประกอบด้วยรหัส Direct3D 12 ทั้งหมด
  2. Framework_VK: ส่วนนี้ประกอบด้วยรหัส Vulkan ที่เกี่ยวข้องทั้งหมด

อนึ่งมีองค์ประกอบที่สามเช่นกันซึ่งเป็นเรื่องปกติสำหรับโครงการ Visual Studio ทั้งสองประเภทที่กล่าวถึงข้างต้น ส่วนนี้เรียกว่า 'Framework_Common' ส่วนประกอบทั่วไปประกอบด้วยประเด็นต่อไปนี้:

โครงสร้าง GLTF

  • รหัสการแปลงและภาพเคลื่อนไหว
  • กำลังโหลดภาพ
  • การจัดการหน้าต่าง
  • กล้อง

เฟรมเวิร์ก Radeon Cauldron รองรับเทคนิคหลังการประมวลผลเช่นการบาน, เบลอ, การสุ่มตัวอย่างและโทนสี SDK แนะนำสมาชิกย่อยใหม่สองคน สิ่งเหล่านี้มีประโยชน์ในการสร้างเป้าหมายการแสดงผลชั่วคราว:

บูล OnCreateWindowSizeDependentResources (…) // สร้างเป้าหมายการแสดงผลชั่วคราวที่จำเป็นสำหรับเอฟเฟกต์

เป็นโมฆะ OnDestroyWindowSizeDependentResources (…)

ที่น่าสนใจคือ AMD Radeon Cauldron 1.0 SDK ที่ผ่านการทดสอบภายในช่วยให้โปรแกรมเมอร์สามารถใช้งานสิ่งต่างๆในระดับที่ต่ำกว่าได้เช่นกัน น่าแปลกที่แม้ในระดับเหล่านี้พวกเขาสามารถใช้ตัวจัดการหน่วยความจำหลายตัวเพื่อให้แน่ใจว่าสิ่งต่างๆทำงานได้อย่างราบรื่น ตัวจัดการหน่วยความจำบางตัวที่ยังทำงานได้แม้ในระดับที่ต่ำกว่ามีดังนี้:

  • StaticBufferPool: ส่วนประกอบนี้เก็บข้อมูลคงที่ นอกจากนี้ยังมีคุณสมบัติการจัดสรรย่อยอีกด้วย
  • DynamicBufferRing: นี่คือระบบบัฟเฟอร์แบบวงกลม โปรแกรมเมอร์สามารถพึ่งพาสิ่งนี้สำหรับบัฟเฟอร์คงที่
  • พื้นผิว: อนุญาตให้โหลดพื้นผิวและสร้างเป้าหมายการแสดงผล ที่น่าสนใจคือระบบ Texture ยังช่วยให้สามารถสร้างมุมมองสำหรับเป้าหมายการแสดงผล
  • ShaderCompilerHelper: นี่คือเครื่องมืออันทรงพลังที่ช่วยในการรวบรวมซอร์สโค้ด ShaderCompilerHelper ยังแคชไบนารี ไม่จำเป็นต้องพูดถึงสิ่งนี้ทำให้เวลาในการโหลดลดลงอย่างมาก
  • UploadHeap: เครื่องมือนี้ช่วยให้โปรแกรมเมอร์สามารถจัดสรรย่อยจากพูลหน่วยความจำระบบเพื่ออัปโหลดข้อมูลซึ่งโดยพื้นฐานแล้วรวมถึงพื้นผิวและบัฟเฟอร์ไปยังบัฟเฟอร์หน่วยความจำวิดีโอ

เนื่องจากเป็น SDK แบบโอเพนซอร์ส AMD จึงขอเรียกร้องให้ผู้ใช้งานภายนอกทดลองใช้สิ่งเดียวกันและเสนอความคิดเห็น ค่อนข้างเป็นไปได้ที่ AMD จะวิเคราะห์สิ่งเดียวกันและนำคำแนะนำบางอย่างไปใช้เพื่อปรับปรุง Radeon Cauldron SDK

แท็ก เอเอ็มดี AMD Navi radeon