เหตุใดจึงสำคัญที่ต้องแสดงเป้าหมายด้วยขนาดบิตเดียวกัน


10

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

GBuffer ส่วนใหญ่ที่ฉันเคยเห็นใช้ขนาดบิตเดียวกันสำหรับแต่ละเป้าหมายการแสดงผลซึ่งนำไปสู่ช่องที่ไม่ได้ใช้ อย่างไรก็ตามในการเดาแรกสำหรับ GBuffer ของฉันบนกระดาษฉันต้องการสองเป้าหมาย 24 บิตและสอง 32 คนหรือสาม 24 และหนึ่ง 32

ฉันเข้าใจว่าการมีขนาด "สิ่งที่แนบ" เหมือนกันสามารถจัดแนวได้ดีกว่า แต่ในทางปฏิบัติแล้วมันจะดีกว่าถ้าจะเสียช่องสัญญาณ (หรือสำรองไว้เพื่อใช้ในอนาคต) และมี RTs ขนาดเท่ากันหรือควรใช้สิ่งที่ต้องการ ในกรณีก่อนหน้านี้ทำไมมันถึงได้เปรียบเช่นนั้นบิต 24 บิตจะถูกเพิ่มเป็น 32 หรือไม่?

คำตอบ:


9

ฉันเข้าใจว่าการมีขนาด "สิ่งที่แนบ" เหมือนกันสามารถจัดแนวได้ดีกว่า แต่ในทางปฏิบัติแล้วมันจะดีกว่าถ้าจะเสียช่องสัญญาณ (หรือสำรองไว้เพื่อใช้ในอนาคต) และมี RTs ขนาดเท่ากันหรือควรใช้สิ่งที่ต้องการ

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

32 บิตเป็นค่าดั้งเดิมสำหรับ GPU และ CPU ดังนั้นคุณจะลดจำนวนรอบที่ต้องการเพื่ออ่านหน่วยความจำ GPU จะพยายามอ่าน 32 บิตหากคุณพยายามอ่านที่อยู่หน่วยความจำที่ไม่ได้จัดแนวเช่น 24 บิตที่จัดแนว GPU จะอ่าน 32 บิตจากนั้นจะเลื่อนไบต์ที่ไม่ต้องการออก

นี่คือบทความโดยละเอียดเกี่ยวกับสาเหตุที่การจัดตำแหน่งหน่วยความจำ (ถึงแม้ว่ามันจะพูดถึงเกี่ยวกับ CPU ไม่ใช่ GPUs แต่แนวคิดระดับสูงยังคงใช้อยู่)

24 บิตจะถูกเพิ่มเป็น 32 หรือไม่?

GPU บางตัวจะเสริม แต่ไม่สามารถรับประกันได้ดังนั้นจึงวางในพื้นที่ใช้งานไดรเวอร์ / GPU ดังนั้นคุณต้องโปรไฟล์และตรวจสอบผลลัพธ์

PS: 32 บิตหรือ 64 บิตขึ้นอยู่กับสถาปัตยกรรม


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