ฉันมีแอพพลิเคชั่นที่เรียบง่าย มันมีสองกระทู้แต่ละคนมีบริบทการแสดงผลของตัวเอง แต่พวกเขาแบ่งปัน VBO หนึ่ง (นี้ใช้งานได้ผมทดสอบมัน)
ตอนนี้สิ่งที่ฉันต้องการ: หนึ่งเธรดกำลังแสดงผลข้อมูลบางส่วนจากครึ่งแรกของ VBO และเธรดที่สองกำลังอัปเดตส่วนที่สองของ VBO
เมื่อฉันไม่อัปเดต VBO มันก็ใช้ได้ดี
แต่ฉันมีปัญหาแปลก ๆ บางอย่างเมื่ออัปเดต เมื่อฉันใช้glMapBufferเพื่ออัปเดต VBO (ในเธรดที่สอง), ในเธรดแรก, โดยส่วนใหญ่, มันไม่มีการแสดงผลใด ๆ - ทั้งหน้าจอนั้นชัดเจน (หลังจากการglClearโทร) ดูเหมือนว่าจะไม่สามารถสัมผัสข้อมูลจาก VBO (เป็นที่เข้าใจได้เพราะบัฟเฟอร์ทั้งหมดถูกแมปและดังนั้นจึงสามารถล็อคได้อย่างใด)
ผมพยายามที่จะใช้ซึ่งการใช้งานglMapBufferRange GL_MAP_UNSYNCHRONIZED_BITนี่ควรหมายความว่า "อย่ารอและใช้ VBO ตามที่คุณต้องการฉัน (โปรแกรม) จะซิงโครไนซ์ด้วยตนเอง" นอกจากนี้เมื่อฉัน map ช่วงของ VBOs และแสดงผลข้อมูลจากส่วนอื่นก็ไม่ควรจะรอ glMapBufferแต่ฉันประสบปัญหาเดียวกับผมด้วย
ใครสามารถช่วยฉันแก้ไขหรืออธิบายได้ว่าทำไมมันถึงเกิดขึ้น