OpenGL: FBO + ATi-Karte == Problem
Übersicht

![]() |
FetzeBetreff: OpenGL: FBO + ATi-Karte == Problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe ein Problem und es geht um OpenGL, daher poste ich in diesem Forum, obwohl die eigentlich verwendete Sprache nicht BlitzMax ist. OpenGL ist ja schließlich auch mit ein BLitzMax-Thema.
Nach langem herumprobieren habe ich FBOs unter OpenGL vor einiger Zeit zum laufen gebracht. Hier der funktionierende Code: Code: [AUSKLAPPEN] --------------------< CreateFBO( .. ) from Texture object >-------------------- // Set-up texture Bind(this); Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, Gl.GL_RGBA8, oglWidth, oglHeight, 0, Gl.GL_RGBA, Gl.GL_UNSIGNED_BYTE, null); this.ApplyTexFlags( .. ); // Create objects Gl.glGenFramebuffersEXT(1, out this.framebufferID); Gl.glBindFramebufferEXT(Gl.GL_FRAMEBUFFER_EXT, this.framebufferID); // Attach texture to FBO Gl.glFramebufferTexture2DEXT(Gl.GL_FRAMEBUFFER_EXT, Gl.GL_COLOR_ATTACHMENT0_EXT, Gl.GL_TEXTURE_2D, this.textureID, 0); // Initialize Depthbuffer if (reqZBuffer) { Gl.glGenRenderbuffersEXT(1, out this.depthbufferID); Gl.glBindRenderbufferEXT(Gl.GL_RENDERBUFFER_EXT, this.depthbufferID); Gl.glRenderbufferStorageEXT(Gl.GL_RENDERBUFFER_EXT, Gl.GL_DEPTH_COMPONENT, oglWidth, oglHeight); Gl.glFramebufferRenderbufferEXT(Gl.GL_FRAMEBUFFER_EXT, Gl.GL_DEPTH_ATTACHMENT_EXT, Gl.GL_RENDERBUFFER_EXT, this.depthbufferID); } // Status check <code stuff> // Unbind all to regularily continue drawing operations Gl.glBindRenderbufferEXT(Gl.GL_RENDERBUFFER_EXT, 0); Gl.glBindFramebufferEXT(Gl.GL_FRAMEBUFFER_EXT, 0); Bind(lastBound); ----------------------------------------------------------------------------------- Code: [AUSKLAPPEN] --------------------< ApplyTexFlags( .. ) from Texture object >-------------------- if ((this.texflags & TexFlag.EdgeClamp) != 0) { Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_CLAMP_TO_EDGE); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_CLAMP_TO_EDGE); } if ((this.texflags & TexFlag.Smooth) != 0) { if ((this.texflags & TexFlag.MipMap) != 0) { Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR_MIPMAP_LINEAR); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR); Gl.glGenerateMipmapEXT(Gl.GL_TEXTURE_2D); } else { Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR); } } else { if ((this.texflags & TexFlag.MipMap) != 0) { Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_NEAREST_MIPMAP_LINEAR); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_NEAREST); Gl.glGenerateMipmapEXT(Gl.GL_TEXTURE_2D); } else { Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_NEAREST); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_NEAREST); } } ----------------------------------------------------------------------------------- Wie gesagt: Dieser Code funktioniert wunderbar. Das Problem ist, dass er genau das auf ATi-Karten scheinbar *nicht* tut, wieso ist mir ein Rätsel. Hat irgendjemand eine Lösung oder ein vergleichbares Problem? |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Neuster Treiber druffe ? | ||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe kein ATi-Testsystem und von den Leuten, die entsprechende Problemberichte abgaben habe ich trotz Nachfrage keine Informationen erhalten. Insofern geht es hier mehr darum, ob das Problem bekannt ist und ob etwas dagegen getan werden kann. | ||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hi Fetze! ![]() Also ich kann dazu nur soviel sagen ... 1) ich habe eine ATI Karte ... und 2) sieht Dein Code-Schnippsel dem sehr ähnlich, woran ich zur Zeit arbeite ... und dieses läuft bei mir ![]() Oki, keine Ahnung, ob Dir das jetzt irgendwie hilft?! ![]() Lieben Gruss, Ava |
||
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gut, dann tritt das Problem wenigstens nicht *grundsätzlich* bei ATi-Karten auf, das ist doch beruhigend zu wissen ^^
Ich vermute jetzt einfach mal, dass in den entsprechenden Fällen veraltete Treiber vorlagen - was anderes kann ich jetzt für den Moment dann wie's aussieht sowieso nicht tun. |
||
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ATI hatte arge Probleme mit FBOs, vorallem mit reinen Depth FBOs. Allerdings hat ATI seit dem Catalyst 7.12 einen komplett neu geschriebenen OpenGL Treiber drinne. Dieser ist bis zur aktuellen Version sehr verbessert worden und gleicht sich vom verhalten immer mehr NVidia an.
Ich würde empfehlen erstmal auf den neuesten Treiber hinzuweisen und ansonsten direkt mit dem ATI Developer Support in kontakt treten. Das mit dem Depthbuffer Fehler zb wurde aufgrund einer Mail von Leadwerks und mir tatsächlich gefixt und das relativ schnell. Da es bei dem neuen Treiber natürlich immer mal wieder Fehler geben kann, kann so eine Mail dann nicht schaden ![]() |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gut, werde darauf hinweisen. Danke ![]() Falls sich Leute mit aktuellen Treibern finden, bei denen das ganze Probleme verursacht, werde ich deinen Vorschlag mit der eMail an den Dev Support denke ich aufgreifen - ansonsten warte ich eifach mal ab, bis sich das Problem durch steigenden Treiberstandard verflüchtigt - scheint ja nun doch nicht am Code zu liegen ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moved da es nicht BM ist.
OpenGL ist kein Teil von BM, OpenGL ist eine API. Da nicht Blitz related bitte im OffTopic fragen oder im Board der Sprache die du verwendest. Oder halt im OGL Board. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Kernle 32DLL |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe hier insgesammt 4 Computer mit ATI Karten drin rumstehen (+ ein Laptop mit ner Oboard ATI Karte, aber auf dem bekomme ich sämtliche mit BB oder Bmax, etc. geschriebene Programme nur sehr sporadisch ans laufen). Wenn du willst kann ich die mal mit deinem Prog durchtesten und dir Grafikkarten Name + Treiberversion, etc. durchgeben. Musst mir nur was ausführbares zum testen geben. Mit dem Code da oben kann ich nichts anfangen @_@.
So long, Kernle |
||
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog] Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89 Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009 |
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Als Testprogramm kannst du die Graphics Source Demo von ZweiDe verwenden - danke! ![]() |
||
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab auch eine (ältere..) ATi-Karte, geht bei mir trotz der neusten Treiber nicht. ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Radeon X1600, funktioniert alles.
mfG, Thorsten |
||
- Zuletzt bearbeitet von Thorsten am Mi, Jul 09, 2008 10:06, insgesamt einmal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Läuft einwandfrei. Mobility Radeon x1600.
Ich hatte damals für die Crysis-Demo neue Treiber besorgt weil da einiges nicht lief, seitdem rennt die Karte richtig gut, falls Dir das was hilft. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Shark |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Fetze,
ich bekomme mit meiner ATI x800 nachdem die Graphics Source Demo schließt so ein Fenster Zitat: OpenGL renderer: Radeon X800 Series (Omega 3.8.442)
mfg Shark |
||
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jop, das sollte ich wohl noch hinzufügen (siehe Shark), außerdem habe ich auch die neuesten Omega Treiber. | ||
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm.. dann scheint es bestimmte ATi Karten zu geben, die auch mit aktuellen Treibern nicht mit FBOs klarkommen..
da ich auf FBOs absolut nichtverzichten kann, werde ich da aber wohl recht wenig gegen tun können.. es sei denn jemand mit Fehler kann mir sagen, dass FBOs mit anderem (zB. BlitzMax-OGL-)Code schon bei ihm funktioniert haben. Es ist nicht so, dass ich mir keine Mühe um Kompatibilität machen würde - allerdings habe ich insgesamt sicherlich nun rund 10 Stunden darin investiert, herumzuprobieren und zu recherchieren; ein gewisser Konsens scheint in verschiedenen Foren nun auch darüber zu herrschen dass ATi Karten sich tendenziell weniger mit OpenGL vertragen als NVidia Karten und es oft an den Treibern liegt. Insofern werde ich das, sollte niemand einen Rat wissen, erstmal alles beim alten lassen. Auch wenn ich liebend gerne auch ATi Karten voll supporten würde ôo Edit: Ist eine x800 ATi Karte denn eher neu oder eher alt? Wie lange liegt das Erscheinungsdatum zurück? Wenn sie eher der älteren Generation angehört, dürfte sich das Problem ja ohnehin binnen fortschreitender Entwicklungszeit lösen. |
||
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Meine Karte (X1600) ist um die 2 Jahre alt (AGP).
mfG, Thorsten EDIT : Zitat: Die Radeon X1600-Serie wurde im 4. Quartal des Jahres 2005 veröffentlicht.
|
||
Shark |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Meine Grafikkarte ( x800) ist im Jahre 2004 erschienen.
Also schon satte 4 Jahre alt. Laut Produktbeschreibung müsste meine Grafikkarte Opengl2.0 unterstützen. Jetzt weiss ich nicht seit wann es FBOs bei Opengl gibt. mfg Shark |
||
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sollten zumindest sei 2.1 fester Bestandteil der Spezifikation sein; allerdings ist mir auch zu Ohren gekommen, dass ATi in Treibern und Karten nicht zwingend die "vollständige" OpenGL-Spezifikation - also inklusive gängiger Extensions - unterstützt. Kann gut sein, dass FBOs vor vier Jahren von ATi noch nicht supported wurden. ôo | ||
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dir ist klar, dass bei mir der selbe Fehler kommt^^ ? :weird:
mfG, Thorsten |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group