V OpenGL vykreslovači systému Control Web je testováno a více či
méně složitě ošetřováno několik desítek různých chyb a nekorektností,
které se vyskytovaly v některých verzích ovladačů jednotlivých
výrobců. Snaha o ošetření tohoto problému ale vede na snížení kvality
obrazu takovými artefakty, že jsem se rozhodli již vyvinutou záplatu
raději tentokrát do systému nedávat.

Okno s OpenGL vykreslovačem je vloženo do okna na pozadí
Windows
Problém se objeví jen tehdy, když je okno v pracovní ploše Windows
zmenšeno pod velikost v něm (kdekoliv v stromové hierarchii)
umístěného okna s vykreslovacím kontextem. Je-li přímo okno s
kontextem na desktopu, vše funguje správně bez ohledu na jeho
zmenšení. Autoři ovladače, pravděpodobně vedeni snahou o optimalizaci
množství přenášených dat mezi obrazovým bufferem v grafické paměti a
pamětí obrazovky, sice správně okopírují data jen z viditelné části
obrazového bufferu, ale do paměti obrazovky je pak expandují, jako by
měla rozměr celého existujícího okna s kontextem. Obraz je pak
bitmapově zvětšený se všemi z tohoto procesu vyplývajícími
artefakty.

Při zmenšení okna na pozadí Windows pod velikost okna s
OpenGL vykreslovačem dojde ke zvětšování bitmapy z obrazového
bufferu
Proti této činnosti ovladače je pak těžko nějak bojovat. Můžeme se
sice pokusit sestavit opačné transformace k této deformaci, ale ty pak
mají za následek nutnost zmenšení obrazu v bufferu, které vede na
další znehodnocení kvality při expanzi bitmapy ovladačem. A to nemluvě
o problému s třetím rozměrem. Nastavení hloubky při různých poměrech
zmenšování v osách X a Y nelze dobře vyřešit.

Korekční záplata dokáže udržet pozici a velikost, ale
kvalita obrazu je nepřijatelná
Korekční zásahy sice udrží vykreslované objekty ve správných
pozicích a velikostech, ale pokles kvality zobrazení vypadá jako chyba
v systému Control Web. Proto jsem se tentokrát rozhodli záplatu do
našeho systému nedávat.m Je jich tam i tak již docela dost. Ale ať
závěr nevyznívá příliš pesimisticky, kvalita grafických ovladačů s
postupem času jednoznačně stále roste.
Navíc tento problém se velmi pravděpodobně neprojení v žádné běžící
aplikaci. Není žádný důvod mít okno s vykreslovačem větší než koncové
vlastnické okno na pozadí Windows. Může nám pouze trochu znepříjemnit
práci v integrovaném vývojovém prostředí pří vývoji aplikace. Snad to
NVidia brzy opraví, informace jsme jim pro klid našeho svědomí poslali
...
Roman Cagaš
|