Toon posts:

[OpenGL] Radeon (9800 Pro) OpenGL mipmap driver bug?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,


Ik ben op dit moment bezig met het ontwikkelen van een OpenGL-programma dat gebruik maakt van de "wgl_arb_render_texture"-extensie om een scene naar een textuur te renderen en dat vervolgens van deze textuur gebruik maakt nadat de "GL_SGIS_generate_mipmap"-extensie automatisch de benodigde mipmapniveaus voor de textuur heeft gegenereerd. En bij dit laatste gaat het mis: alhoewel er duidelijk mipmapniveaus gegenereerd worden, is een van de kleinere mipmaps gecorrumpeerd ("corrupted" als je "gecorrumpeerd" - ongeacht het feit dat dit het correcte Nederlandse woord ervoor is - raar vindt klinken :)). Voor hen die op dit moment het idee hebben dat ze iets dergelijks ook al eens mee hebben gemaakt (of voor hen die "gewoon" nieuwsgierig zijn), hier het volledige verhaal (ik heb de versie overgenomen die ik ook op FlipCode / GameDev heb gepost):

<PASTE>
I'm currently writing an OpenGL application that uses the wgl_arb_render_texture extension to render a scene to a texture and subsequently uses that texture in two different OpenGL rendering windows (two different OpenGL contexts). So far no problems. I'm also using the GL_SGIS_generate_mipmap extension to automatically generate mipmaps whenever the texture base level (level 0) has been updated. When I activate this extension and take a look at my texture when scaling a quad to which the texture has been applied, it looks like the extension is doing its thing: when comparing the visual quality to the non-mipmapped (GL_LINEAR) version, I can clearly see that mipmaps are indeed generated and that blending between them (because of GL_LINEAR_MIPMAP_LINEAR) is indeed occuring, but there's a problem (at least on my Radeon 9800 Pro): one of the smaller mipmap textures is corrupted. The following screenshots demonstrate this corruption (generated by moving the lower-right ("Texture Settings - Scale") slider gradually to the left):

http://www.sickcrew.com/~inforum/mme/scale100.jpg (everything OK)
http://www.sickcrew.com/~inforum/mme/scale075.jpg
http://www.sickcrew.com/~inforum/mme/scale050.jpg
http://www.sickcrew.com/~inforum/mme/scale025.jpg
http://www.sickcrew.com/~inforum/mme/scale015.jpg
http://www.sickcrew.com/~inforum/mme/scale010.jpg (corruption starts)
http://www.sickcrew.com/~inforum/mme/scale009.jpg (corrupted)
http://www.sickcrew.com/~inforum/mme/scale008.jpg (corrupted)
http://www.sickcrew.com/~inforum/mme/scale007.jpg (corrupted)
http://www.sickcrew.com/~inforum/mme/scale006.jpg (corrupted)
http://www.sickcrew.com/~inforum/mme/scale005.jpg (corrupted)
http://www.sickcrew.com/~inforum/mme/scale004.jpg (corrupted)
http://www.sickcrew.com/~inforum/mme/scale003.jpg (corruption ends)
http://www.sickcrew.com/~inforum/mme/scale002.jpg
http://www.sickcrew.com/~inforum/mme/scale001.jpg

As you can clearly see, the corruption occurs at one of the in-between mipmap levels; the smallest level is OK again. Besides, I ran the program on a GeForce4 MX (440) and the flaw did not occur, so I started to think that it is, in fact, driver related; I updated my driver to the newest version (WinXP Catalyst 4.2), reset every driver option to its default setting, started my program, but the problem is still there. I've also checked to see that my Radeon 9800 Pro actually supports the GL_SGIS_generate_mipmap extension: no problem there.

You can download my program at http://www.sickcrew.com/~inforum/mme/SpotNice.zip to check the presence or absence of the flaw yourself (please let me know what happens and what videocard / driver / OS you're running). I really don't have a clue as to what is causing the error (besides a possible GL_SGIS_generate_mipmap related driver bug). Does anyone recognize this problem and/or have a possible solution to it (I know that I could use the (slower) gluBuild2DMipmaps() function instead, but I would really like to use the GL_SGIS_generate_mipmap extension; that's what it's there for)? Some help would be greatly appreciated. Thanks in advance.
</PASTE>

Als iemand een idee heeft wat hier aan de hand is, dan zou ik enige hulp ten zeerste weten te waarderen. Bij voorbaat dank.


Groeten,

(Sn)Ik.

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hoe groot is je originele texture?

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.


Verwijderd

Topicstarter
De textuur die ik met wgl_arb_render_texture aflever (en bind als "GL_TEXTURE_2D" type) is 256x256, maar het probleem treedt ook op wanneer ik bijvoorbeeld 32x32, 64x64, ..., 512x512 gebruik, dat heb ik ook al geprobeerd. De textuur zelf (basisniveau) wordt goed gegenereerd, daar ligt in elk geval het probleem niet. Ik vind het maar vreemd :?...


GRTZ,

(Sn)Ik.

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

Wat ik zo raar vind is dat ie het alleen tussen 10% en 3% doet (resp. 25x25 en 7x7). Is het op die andere grotes ook in dat bereik?

Ik zou verder ook niet weten hoe of waarom hoor, maar ik vind het nogal vreemd dat het precies dan gebeurt
Uit de FAQ:
Wij tweakers doen elkaar permanent de groeten. Het is dus niet nodig om steeds ruimteverspillende "greetz [user]" of iets dergelijks onder je post te plakken. Als je perse zoiets wilt kun je daar je signature voor gebruiken
;)

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.


  • BCC
  • Registratie: Juli 2000
  • Laatst online: 20:53

BCC

Dit lijkt mij toch een straightforward driver probleem? (of een hardware natuurlijk, maar dat lijkt me minder waarschijnlijk :))

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 26-05 23:14
Heb je al andere driverversies geprobeerd? Er zijn hele hordes gemodde drivers beschikbaar voor de Radeon 9800, sommige daarvan zijn speciaal geoptimaliseerd voor beeldkwaliteit. Lossen die het probleem wel op? Veel meer kan ik er niet over zeggen want je programma draait hier prima (GeForce FX5900 XT met nVidia ForceWare 53.03 drivers). Je zult dus een beetje moeten experimenteren met verschillende hardware (lastig, natuurlijk) en verschillende drivers (goed te doen) om het probleem te isoleren.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
8500 heeft die extensie zeker niet? Zie een vierkant namelijk. :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Bedankt voor de replies, mensen. Ik zal maar eens een bug report naar ATI gaan sturen met de mededeling dat het hoogstwaarschijnlijk een driver bug is. Wat die gemodde drivers betreft: enig idee waar ik "goede" exemplaren kan vinden?

P. S.

In het geval van de Radeon 8500 zou er op zijn minst melding gemaakt moeten worden van het ontbreken van een bepaalde extensie (volgens mij ondersteunt de 8500 beide extensies zelfs), ik controleer daar namelijk bij opstarten van het programma op. Erg raar dus (het schijnt tot nog toe feilloos (op de corruptiebug na) te lopen op een GF2MX/4MX/3/FX5900 (zelfs geheel zonder corruptiebug) en op de 9600/9800 (Pro).
Pagina: 1