โครงสร้างข้อมูลสำหรับการเรนเดอร์ที่อิงกับไทล์


18

การเรนเดอร์แบบเรียงต่อกันถูกใช้ในสถาปัตยกรรม GPU เคลื่อนที่ที่ทันสมัยเพื่อเพิ่มความต่อเนื่องของการเข้าถึงหน่วยความจำโดยแบ่งพื้นที่ภาพออกเป็นตารางย่อยขนาดเล็ก (เช่น 32x32 พิกเซล) ข้อมูลมีน้อยในประเภทของโครงสร้างข้อมูลที่ใช้ในการติดตาม primitives ที่เกี่ยวข้องกับไพ่แต่ละใบโดยพิจารณาว่า primitives พื้นฐานจำนวนมากโดยพลการอาจซ้อนทับไพ่ใด ๆ

จากมุมมองของนักพัฒนาไดรเวอร์โครงสร้างข้อมูลใดที่ใช้เพื่อแสดงชุดดั้งเดิมที่เป็นของไทล์และโครงสร้างดังกล่าวจัดสรร / ปรับขนาดแบบไดนามิกตามเรขาคณิตที่ทับซ้อนไทล์เฉพาะหรือไม่


3
คำถามที่น่าสนใจจริงๆและแม้ว่าฉันสงสัยว่ารายละเอียดส่วนใหญ่เป็นซอสสูตรลับ แต่นี่อาจเป็นจุดกระโดดที่ดีสำหรับทุกคนที่ต้องการทำวิจัยและเขียนบทสรุป: blog.imgtec.com/powervr/
John Calsbeek

คำตอบ:


11

โพสต์บล็อกนั้นที่จอห์นกล่าวถึงเป็นการเริ่มต้นที่ค่อนข้างดี (ถ้าฉันพูดด้วยตัวเอง!) แต่มีรายละเอียดเล็กน้อยที่อาจเป็นประโยชน์

สำหรับสถาปัตยกรรม PowerVR โครงสร้างข้อมูลกลางซึ่งเรียกว่ารายการดั้งเดิมหรือพารามิเตอร์บัฟเฟอร์ (PB) ซึ่งจัดเก็บข้อมูลต่อแผ่นหลังจากการแรเงาจุดสุดยอดและกระบวนการเรียงลำดับเสร็จสมบูรณ์จริง ๆ แล้วส่วนใหญ่สร้างและจัดการโดย ฮาร์ดแวร์มากกว่าไดรเวอร์

โครงสร้างในหน่วยความจำของ PB ถูกแบ่งออกเป็นสองทางร่างกาย ก่อนอื่นบล็อกของข้อมูลจุดสุดยอดที่ถูกแปลงรวมถึงแอตทริบิวต์จุดสุดยอด บล็อกดังกล่าวถูกบีบอัดและอย่างที่คุณสามารถจินตนาการได้ว่าพวกเขากำลังรวบรวมและบีบอัดข้อมูลจุดลอยตัวเป็นส่วนใหญ่ โครงสร้างในหน่วยความจำที่สองคือข้อมูลการเรียงลำดับซึ่งเป็นรายการที่มีประสิทธิภาพ

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

หน่วยความจำที่ GPU ใช้สำหรับ PB นั้นถูกจัดสรรแบบไดนามิกในการใช้งาน PowerVR ที่ทันสมัยทั้งหมด ตัวชี้ไปยังหน่วยความจำนั้นให้บริการโดยไดรเวอร์และไดรเวอร์พร้อมความช่วยเหลือของ GPU จะปรับขนาดตามที่ต้องการ กลไกนั้นเป็นการแลกเปลี่ยนระหว่างการจัดสรรใหม่บ่อยครั้งและลดจำนวนพื้นที่ PB ที่จัดสรรให้น้อยที่สุด

GPU รุ่นใหม่พยายามอย่างหนักเพื่อลดการเปลี่ยนทิศทางหน่วยความจำให้น้อยที่สุด แต่การเดิน PB เพื่อป้อน rasterisation stage เป็นหนึ่งในกรณีที่ยากและไม่มีทางเลือกอื่น โชคดีที่การไล่ตัวชี้นั้นครอบคลุมบล็อกขนาดใหญ่ที่แคชได้ดีและถูกสตรีมเข้าสู่แกนหลัก

สถาปัตยกรรมอื่น ๆ ไม่ทำงานเหมือนกับ PowerVR เพราะส่วนหนึ่งของเหตุผล PB คือวิธีที่มันเป็นในสถาปัตยกรรมของเราคือการช่วยแนวคิดแรเงาพิกเซลรอการตัดบัญชีอย่างเต็มที่ที่เราใช้ แต่แนวคิดทั่วไปใช้กับ tilers อื่น ๆ ทั้งหมดใน พื้นที่มือถือที่ฉันรู้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.