2011-07-23 17 views
5

OpenGL'nin bir konsola bilgi gönderdiği yerde çalışabileceği bir çeşit hata ayıklama modu var mı? Bir uygulamamın birçok makinede iyi çalışması var, ancak gerçekten önemli olan bir makinede sefil bir şekilde başarısız oluyor. Bu makineye doğrudan erişimim yok, o yüzden nasıl başarısız olduğunu anlamaya çalışıyorum. Şu anda konsolda çıktı yok. Uygulamanın orijinal olarak konsolsuz bir windows uygulaması olduğunu ve proje özellikleri üzerinden konsola değiştirdiğimi unutmayın. Ayrıca eğer bazı nesneler görünmüyorsa ve başka bir şey takılıp kalmıyorsa ve canlandırmıyorsa - bu bana hiç mantıklı gelmiyor.OpenGL hata ayıklama veya ayrıntılı bilgi konsol

cevap

7

Pek değil. Eğer OpenGL için bir kanca yazmanız ve gerçekten bazı çıktılar almak istiyorsanız (yani, gDEBugger gibi hangi araçların yaptığı gibi) tüm aramaları kaydetmeniz gerekir, ancak bu biraz iş gerektiriyor (bunun için GLIntercept gibi bir şey kullanabilirsiniz).) Kişisel deneyimlerinden: Muhtemelen, söz konusu makineye erişim elde etmek ve orada gDEBugger'ı çalıştırmak ... ya da eşdeğer bir makine elde etmek, muhtemelen bir grafik hata ayıklayıcıyı ekleyerek hatayı yeniden üretmeniz olacaktır. Alternatif olarak, teorik olarak size daha fazla çıkış vermesi gereken ARB_debug_output uzantısını kullanmayı deneyebilirsiniz. Pratikte, her bir OpenGL API çağrısından sonra, kullanım durumunuz için yeterince iyi olan bir glGetError çağrısı (yani, GL durumunu bozan bir şey yaparsınız) çağrısı. Hata ayıklama çıkış uzantısını kullanmak için, değişiklik yapmanız gerekir. Bir hata ayıklama bağlamı oluşturmak için uygulamanız.

+1

ARB_debug_output programının kullanımı OpenGL uygulamasına bağlıdır. NVIDIA temelde 'glGetError' sürümünü yapar, ancak AMD'nin sürümü oldukça faydalıdır. Sadece "GL_INVALID_OPERATION" ı yeniden doğurmaz; Genel olarak, ona neden olan işlev gibi yararlı bilgiler verir. Özellikle çekirdek bir ortamda kullanım dışı işlev çağrılarını tanıdığını gördüm. Shader derleme ve bağlantı hataları, hata durumunda uygun günlükleri atar. Ve benzeri. –

+0

'ARG_debug_ouput', 4.3 sürümünden bu yana Çekirdek özelliklerinin bir parçasıdır. –

İlgili konular