Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[VC/OGL] FBO attachment werkt in debug mode, niet in release

Pagina: 1
Acties:

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Topicstarter
Een heel vaag probleem: ik heb een programma dat een frame-buffer object maakt en attached, en dat werkt prima. Heeft altijd gewerkt op Linux, werkt prima onder een VC9 debug build, geen enkele warning, maar het werkt niet onder een release build. In release krijg ik ook geen warnings, het programma crashed ook niet, alleen de feitelijke OGL call:

glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, text_id[0], 0);

die ook exact dezelfde inputs krijgt in beide builds (heb ik gechecked door te printen) returned nu ineens "invalid value". Hoe kan ik een OGL maken in debug mode die goed werkt, en exact dezelfde situatie en call in release mode die "invalid value" returned?

Is dit een library probleem? Out-of-date DLLs? Andere CRT libs (ik krijg hier geen warnings op)? Ik link met drie libraries: GLEW32 en GLUT32 en deze OGL code staat in mijn eigen static library. Als ik de code overneem in het programma zelf, en dus niet met mijn eigen library link, dan werkt het WEL in beide builds. Doe ik iets fout met de libraries? Ik denk het. Maar wat kan dat zijn?

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 10:12

Reptile209

- gers -

Wilde gok: wordt de release-versie op een andere plaats (directory) neergezet, waardoor .dll's opeens niet makkelijk voorhanden zijn? Heb je je compiler/linker opties nagelopen dat de debug-versie echt niks anders doet dan de release versie?

Zo scherp als een voetbal!


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:04

.oisyn

Moderator Devschuur®

Demotivational Speaker

Klopt de rest van de ogl state wel? Kan het niet al eerder fout zijn gegaan (bijv. bij het aanmaken van de FBO) omdat daar een ongeïnitialiseerde variabele bij werd gebruikt oid?

Vziw zijn er geen verschillende debug en release ogl libs oid.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Topicstarter
Ik heb het door glslDevil gegooid (geweldige glsl (shader) debugger! http://www.vis.uni-stuttgart.de/glsldevil/ heeft me al zo vaak tijd bespaard. Aanrader!) en ik zie idd dat in de Release mode m'n eerste texture niet gebind wordt, en in de Debug mode wel. Ik weet nog niet waarom, maar ik vermoed evil static singletons en unitialized bools oid...

---

Ok, opgelost :X Bound-texture member variabele van de texture-manager singleton werd niet op 0 gezet in de ctor. Blijkbaar was die ongeinitialiseerd net gelijk aan mijn texture, en die werd dus beschouwd als bound met als gevolg dat de OpenGL bind call niet werd uitgevoerd. (wat 500 regels verder in een FBO error resulteerde... Die bug zat er dus al 3 jaar ongemerkt in. Lekkere om op te lossen op de maandag ;))

[ Voor 37% gewijzigd door Zoijar op 07-07-2008 20:59 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:04

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik zei toch :Y)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Topicstarter
Ja, jij zal hier wel ervaring mee hebben O-) Thnx ;)
Pagina: 1