OpenGL อนุญาตให้คุณแชร์ shader เดียวกันระหว่างหลาย ๆ โปรแกรม นอกเหนือจากการบันทึกหน่วยความจำขนาดเล็กและด้ามจับ shader แล้วยังมีประสิทธิภาพด้าน GPU อีกไหมในการทำเช่นนี้?
OpenGL อนุญาตให้คุณแชร์ shader เดียวกันระหว่างหลาย ๆ โปรแกรม นอกเหนือจากการบันทึกหน่วยความจำขนาดเล็กและด้ามจับ shader แล้วยังมีประสิทธิภาพด้าน GPU อีกไหมในการทำเช่นนี้?
คำตอบ:
ฉันสงสัยว่ามีประโยชน์ด้านประสิทธิภาพของ GPU
เมื่อคุณผูกเชดเดอร์ทั่วไปกับโปรแกรมการใช้งานที่มีประสิทธิภาพควรจะสามารถลบแอททริบิวที่ไม่ได้ใช้ระหว่างเชดเดอร์นั้นกับ Shader อื่นในโปรแกรมนั้นและอาจทำให้ตรรกะของ Shader ง่ายขึ้น แน่นอนว่านี่ไม่ใช่ประโยชน์อย่างแท้จริงต่อชุดค่าผสมของ shader ที่ปรับด้วยมือ แต่จะช่วยจัดการความซับซ้อน / combinatorics และอาจช่วยลดจำนวนการคอมไพล์ที่ผู้ขับขี่ต้องทำ
อย่างไรก็ตามอาจมีข้อเสียในการทำเช่นนี้ในแง่ของการใช้งานโปรแกรมควบคุมคอมไพเลอร์ที่ไม่มีประสิทธิภาพ และมีบางอย่างอยู่ที่นั่นตรวจสอบ: http://aras-p.info/blog/2010/09/29/glsl-optimizer/สำหรับสิ่งง่ายๆที่การใช้งานบางอย่างอาจผิด