Moravské přístroje, a. s., zdroj: http://www.mii.cz/art?id=937&lang=405, vytištěno: 18.1.2018 0:30:18

Hlavní stránka  Podpora  Články

Chyba v ovladačích grafických karet NVidia verze 388.XX a 390.XX
 V nových ovladačích verze 388.XX a 390.XX grafických karet NVidia se objevil problém, který způsobuje deformaci obrazu při zmenšení vlastnického okna na pozadí Windows pod velikost okna s OpenGL vykreslovacím kontextem. Na starších ovladačích, máme to vyzkoušeno např. na 382.05, vše funguje správně. Tento problém se také netýká ovladačů pro grafické adaptéry Intel a AMD.

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

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

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á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š