ระดับต่ำสุดที่เหมาะสมจากมุมมองของฉันคือสิ่งที่พูดถึงทรัพยากรที่เกี่ยวข้องในการแสดงผล - vb / ib, แสดงพื้นผิวพื้นผิว shaders บล็อกรัฐ ฯลฯ
ปัญหาตรงนี้คือสิ่งเหล่านี้จำเป็นต้องอยู่ในรูปแบบที่แตกต่างกันขึ้นอยู่กับ API - นั่นคือสิ่งที่มันยุ่งยากเล็กน้อย วิธีที่ง่ายที่สุดคือการประมวลผลทรัพยากรสแตติกล่วงหน้าสำหรับ API ที่เกี่ยวข้อง สำหรับไดนามิกส์ให้ใช้เฉพาะเครื่องสร้างเฉดเพื่อสร้างพวกมันซึ่งทำให้ตรงไปตรงมาเพื่อให้อยู่ในรูปแบบดั้งเดิม
สิ่งที่คุณทำในระดับที่สูงกว่านั้นคือการตั้งค่าท่อที่มีทรัพยากรที่แนบมาและมอบให้กับ GPU คุณจะพบว่าไม่ใช่ทุกสิ่งที่จะถูกแยกออกเป็นอย่างดีโดยเฉพาะอย่างยิ่งหากคุณใช้ประโยชน์จากเทคนิคเฉพาะฮาร์ดแวร์ แต่มันเป็นการเริ่มต้นที่ดี
(Sidenote: หากคุณใช้เทคนิคเฉพาะแพลตฟอร์มเป็นทรัพยากรชนิดพิเศษคุณสามารถผลักดันแนวคิดทั้งหมดนี้ไปได้ไกล)
ดังนั้นคุณจะสร้างสองสิ่ง: ผู้จัดการทรัพยากรฮาร์ดแวร์พร้อมชุดเครื่องมือเพื่อตั้งค่า DAG ของทรัพยากรเหล่านี้