Mga Sikreto ng Android: Mga Engineering Code at Developer Mode. Tinatanggal ng developer ng Google ang mga alamat tungkol sa "full hardware acceleration" sa Ice Cream Sandwich

Panimula

Kaayon ng Paglabas ng Windows 7 ilang buwan na ang nakalilipas, ipinakilala ng mga tagagawa ng video card ang maraming modelo na may mga bagong GPU, pagkatapos nito ay sinimulan nilang pahusayin ang mga driver para sa kanilang mga produkto. Sa palagay namin, sapat na ang oras na lumipas ngayon para makayanan nila ang mga pinakamabigat na problema sa ilalim ng pinakabagong operating system (na, sa totoo lang, ay hindi kasing kritikal sa kaso ng Vista), at dapat ipakita ng mga layunin ng pagsubok ang estado ng bagong teknolohiya.

Siyempre, naiintindihan namin na ang pokus ngayon ay sa mga 3D na teknolohiya, ngunit nagpasya kaming bumalik sa isang bahagi ng graphics na ipinagkakaloob ngayon - 2D graphics. At huwag isipin na nagpasya lang kaming magdagdag ng ilang pagsubok sa aming pakete ng pagsubok, nagtataas ng mga problema na nalutas noong mga araw kung kailan gumawa ng makabuluhang pagkakaiba ang pagganap ng RAMDAC. Ngunit pag-uusapan natin ang higit pa tungkol dito sa ibang pagkakataon.

Bagama't ang karamihan sa mga user ay magiging interesado sa bilis ng pagpapakita ng GUI ng Windows (na kung saan ang Windows 7 ay nakatanggap ng kaunting papuri kumpara sa Vista), nalaman namin na ang sinasabing "graphics update" ng Windows 7 ay hindi kasing-sariwa gaya ng nakikita. Kung ikukumpara sa Windows XP (at maging sa Vista), hindi pa ganap na na-optimize ng mga manufacturer ng GPU ang 2D graphics para sa Windows 7, hindi bababa sa ayon sa pananaliksik bagong pagpapatupad Mga tawag sa GDI (Graphics Device Interface) API. Alam nating lahat na ang 2D graphics ay hindi lamang tungkol sa mga masasayang palette, optical transition effect, at animated na menu na may mga anino; kailangang pabilisin ng mga developer ang pag-render ng magagandang lumang pixel, linya, kurba, parihaba, polygon at lahat ng uri ng graphic primitive, gaya ng madalas na tawag sa kanila.

Mahalagang Paunang Tala

Hindi namin nais na bigyan ang artikulo ng anumang emosyonal na tono, bagaman ang mga tagasunod ng "pula" o "berde" na mga kampo ay kuskusin ang kanilang mga mata habang binabasa ang materyal. Dahil kami mismo ay hindi naniniwala sa mga resulta ng pagsusulit, gumastos kami dagdag na oras upang ihanda ang artikulo upang, sa interes ng lahat ng partido, ang mga resulta ay bilang layunin at nauulit hangga't maaari. Nagtrabaho din kami upang lumikha ng pinakalayunin na batayan para sa paghahambing ng mga video card sa bawat isa. Hindi namin nais na ituro ang daliri sa direksyon ng isang tagagawa o iba pa: mahalagang maunawaan na ang artikulong ito ay inilaan upang tulungan ang mga gumagamit na gumagamit ng kanilang computer hindi lamang para sa mga laro, ngunit gumagawa din ng tunay na trabaho sa kanilang mga PC.

Sa pagsasaalang-alang na ito, mahalagang maunawaan na ngayon ay medyo mahirap na magtrabaho nang produktibo sa 2D graphics sa ilalim ng Windows 7. Halimbawa, noong ginagamit namin ang Radeon HD 5870 at pinakabagong mga driver, pagkatapos ay nahihirapang makapag-render ng mga simpleng vector graphics, simple o kumplikadong mga disenyo ng CAD, o kahit na maglaro ng mga 2D na laro gamit ang mataas na kalidad graphics. Ito ay hindi gaanong pagpuna dahil ito ay isang pagtatangka na tukuyin ang mga limitasyon ng problema na sinubukan naming suriin at maunawaan ang problema nang malalim hangga't maaari.

Teorya at kasanayan

Dahil malamang na hindi alam ng karamihan sa mga user ang tungkol sa mga built-in na feature at gawi ng 2D acceleration sa ilalim ng Windows XP o Windows 7, nagpasya kaming hatiin ang aming napakalalim na artikulo sa dalawang bahagi. Sa unang bahagi ay titingnan natin ang mga teknikal na detalye tungkol sa 2D graphics upang ang ating mga mambabasa ay makapaghanda para sa ikalawang bahagi. Hindi mo lang mauunawaan ang aming mga pagsusulit, ngunit mas maiintindihan mo rin ang mga ito. Upang mapadali ang aming pagsubok, gumawa pa kami ng sarili naming maliit na programa sa pagsubok (at ginawa itong available upang ang lahat ng interesadong user ay ma-download at magamit ang program mismo - sa ikalawang bahagi ng artikulo). Ang aming layunin ay gawin ang parehong bahagi ng artikulo bilang nagbibigay-kaalaman, naa-access at kumpleto hangga't maaari.

Sa susunod na seksyon, titingnan natin ang mga pangunahing kaalaman ng 2D graphics. Pansamantala, naniniwala din kami na ang ilang mga pangunahing kaalaman sa lugar na ito ay hindi makakasakit sa sinuman, maaaring maging kapaki-pakinabang ang mga ito para sa pag-unawa sa iba pang mga paksa, hindi lamang sa aming mga pagsubok.

Windows: paano nagsimula ang lahat

Bumalik tayo sa 1985. Sa taong ito, si Mikhail Gorbachev ay naging kalihim ng Komite Sentral ng CPSU, nakatanggap si "Amadeus" ng isang Oscar para sa pinakamahusay na pelikula, at si Ronald Reagan ay nahalal sa pangalawang termino bilang ika-40 Pangulo ng Estados Unidos. Ilang tao ang nakapansin, ngunit noong 1985 na inilabas ang operating system Microsoft Windows 1.0.


Windows na may maliit na bilang ng mga bintana - kahit na hindi nagsasapawan ng iba't ibang lugar. Mag-click sa larawan upang palakihin.

Ang ideya ng paglalagay ng isang virtual na graphical na interface sa ibabaw ng isang text-mode na operating system ay hindi gaanong rebolusyonaryo, kahit noong 1985. Sa katunayan, ito ang diskarte na ginawa ng iba't ibang kumpanya, kabilang ang Microsoft at Digital Research, noong panahong iyon upang palawakin ang kanilang presensya sa merkado at gawing mas naa-access ang teknolohiya ng PC sa mas malaking bahagi ng mga potensyal na mamimili at user. Ang ideya ay ang mga application ay magiging sapat na madaling gamitin na kahit na ang mga di-IT na propesyonal ay maaaring gumamit ng mga ito nang hindi kinakailangang matuto ng marami tungkol sa computer. Kapansin-pansin, hindi tulad ng Windows 1.0, sinusuportahan ng Digital Research GEM multi-user OS ang window overlay sa oras na iyon.



Sa Bersyon 2 lamang nagsimulang tuparin ng Windows ang pangalan nito. Mag-click sa larawan upang palakihin.

Kung ang Windows 2.0 operating system ay hindi pa ipinakilala noong 1987, na mayroon nang suporta para sa maraming magkakapatong na mga bintana, kung gayon ito ay lubos na posible na walang makakaalam tungkol sa Microsoft Windows ngayon. Sa katunayan, utang ng Windows ang kaligtasan nito lampas sa unang dalawang taon pagkatapos ng paunang anunsyo nito sa isang taong may napakalaking impluwensya sa Microsoft ngayon: Steve Ballmer. Ang kanyang pag-promote ng Windows 1.0 ay mahirap pa ring kalimutan ngayon, dahil hindi niya katamtaman ang presyo ng Windows 1.0 sa kahanga-hangang $99 (isang malaking halaga para sa 1985), sa kabila ng kakulangan ng suporta para sa mga tunay na bintana. Talagang maakit ni Steve Ballmer ang manonood - matatawag siyang henyo sa marketing. Tingnan mo ang iyong sarili.

Nagbebenta si Steve Ballmer ng Windows.

Mula nang ilabas ang bersyon 2.0, nakapagbigay ang Windows ng (kahit man lang) evolutionary, kung hindi man rebolusyonaryo, ng mga pagbabago sa mga kasunod na paglabas nito. Sa katunayan, ang rebolusyonaryong pagbabago ay lumalabas na ang mga isyu na gusto naming tugunan sa Windows 7, ang pinakabagong release ng kumpanya.

Ang pinakabagong bersyon ay naging eksakto ang isa na nagpapataas ng malalim na mga katanungan na nagpilit sa amin na bumaling sa tuktok na Windows. Ang mga dahilan para dito ay simple at halata. Sa pamamagitan ng aming paghahambing ng mga diskarte sa windowing, nalaman namin na mayroong dalawang panig sa Windows GUI: graphical na user interface o GUI(hindi namin isinaalang-alang ang pagpapasadya sa panig ng gumagamit, ngunit nakatuon sa pangunahing desktop at magtrabaho kasama nito), kabilang ang pagtatrabaho sa mga bintana, pati na rin simpleng mga function ng graphics, na ginagamit upang lumikha ng mga desktop environment. Sa katunayan, ang pagpapakita ng mga nilalaman ng mga bintana at pagtatrabaho sa kanila ay dalawang magkahiwalay, kahit na magkaugnay, mga bahagi ng Windows OS. Ang hitsura at pakiramdam ng interface ng Windows ay patuloy na nagbabago at nagbabago, ngunit ang pinagbabatayan ng simpleng 2D na graphical na functionality ay nanatiling kapansin-pansing pare-pareho sa paglipas ng panahon.

Malamang na malalaman ng mga matalinong mambabasa na ang mga naka-window na interface ng gumagamit ay hindi na umaasa sa purong 2D na graphics. Ito ang dahilan kung bakit ipapaliwanag namin sa ibaba kung ano ang umiiral maliit na set mga utos ng graphics 2D, na dapat isaalang-alang sa liwanag ng kanilang hitsura sa isang pisikal na display, sa higit pa o mas kaunting three-dimensional na anyo.

Mga Limitasyon ng 2D: Isang Puwang na may Maraming Windows


Ang kailangan mo lang ay taas at lapad.

Kung titingnan mo ang display sa anumang window, kailangan mo lamang ng dalawang coordinate: X at Y, iyon ay, lapad at taas. Ano ang kulang? Anumang impormasyon tungkol sa lalim.

Sa Windows, ipinapakita ang 2D graphics sa pamamagitan ng GDI (Graphics Device Interface). Ang interface na ito sumusuporta sa lahat ng mga programming language mataas na antas at naglalaman ng lahat ng mahahalagang graphics function na kailangan para mag-render ng 2D graphics object. Ang mga pagpapahusay sa ibang pagkakataon tulad ng GDI+ at Direct2D ay hindi partikular na mahalaga dahil ang GDI ay (at nananatili) ang pinakamahalagang tool para sa 2D graphics output sa isang application. Mga kritikal na function para sa pagpapakita ng mga pixel, linya, kurba, polygon, parihaba, ellipse, at iba pa - lahat ng mga ito ay unang kinakalkula sa CPU. Salamat sa pagbuo ng mga video card, ang pinakabagong henerasyon ng hardware ay nagbibigay ng mas mabilis na 2D na pagkalkula at pag-render. Ang maagang anyo ng 2D acceleration na ito ay nananatiling mahalaga kahit ngayon, ngunit hindi na ang 2D acceleration ang pangunahing layunin. Para masulit ang performance ng graphics, kailangan namin ng ikatlong coordinate.

Ang orihinal na paraan ng 2D rendering, na nakatago sa ilalim ng overlay ng mga bintana sa display screen, ay simple at diretso. Kailangan nating malaman ang dalawang parameter: ang una ay ang lugar sa screen sa loob ng bawat window na magbabago (samakatuwid kailangan itong muling iguhit). Ang pangalawa ay ang pagkakasunud-sunod kung saan ang mga bintana o mga bagay ay magkakapatong sa isa't isa (buo ba o bahagyang makikita ang bagay, o matatabunan ba ito ng isa pang window). Ang ganitong uri Ang impormasyon ay nangangailangan ng tinatawag na 2.5-dimensional na dimensyon o ang paggamit ng mga layer ng graphics, kapag ang ikatlong coordinate ay kumukuha ng halaga na 0 (nakatago) o 1 (nakikita), iyon ay, ito ay gumaganap bilang isang uri ng pantulong na dimensyon. Ito ay para sa kadahilanang ito na maraming mga eksperto sa Mga lugar ng bintana Maraming usapan tungkol sa 2.5D graphics.


Ipinapakita ng halaga ng Z kung paano nakapatong o nakaayos ang mga bintana.

Kapag natukoy na ang pagkakasunud-sunod o visibility ng mga bintana, maaaring ipakita ang mga nilalaman ng mga nakikitang bintana gamit ang purong two-dimensional. mga graphic function. Sa anumang kaso, kinakailangan hindi lamang upang ganap na kalkulahin ang mga nilalaman ng mga window ng display, kundi pati na rin upang makontrol iba't ibang uri impormasyon at nilalaman ng window. Ano ang mangyayari, halimbawa, kung ang isang window ay inilipat? Kapag ang isa pang window ay naglalaman ng isang lugar na ganap o bahagyang nabuksan bilang resulta ng pagkilos na ito, ang system graphics function na WM_PAINT ay dapat na tawagan na may tumpak na impormasyon tungkol sa kung aling hugis-parihaba na lugar ang dapat na muling iguhit. Ang mga na-optimize na pagpapatupad ng function ay muling itatayo o ire-redraw ang lugar na ito. Sa kasamaang palad, maraming mga pagpapatupad sa halip ay muling i-redraw ang buong window, sa kabila ng kakayahang ma-access ang mas tumpak na mga tagubilin kung ang mga nilalaman ng window ay kailangang i-render nang buo o bahagi. Ito, sa turn, ay nakakaapekto sa pagganap ng graphics. Ang isa pang kilalang disbentaha ay ang pag-blur o pagdoble kapag ang isang window ay mabilis na na-drag sa screen sa isang system na walang 2D hardware acceleration.

Ngunit hayaan mo akong ibuod kung ano ang aming tinalakay sa ngayon. Ang display ay may hiwalay na mga bintana na ang 2D na nilalaman ay dapat na i-render sa screen upang makita. Ang mga bintanang ito ay maaaring ilipat ayon sa gusto, at maaari silang mag-overlap at bahagyang o ganap na sakop ng ibang mga bintana. Ang nakikitang nilalaman ng lahat ng mga window na ito ay kailangang kontrolin at ipakita nang may kaunting latency. Alam din namin na ang CPU mismo, kahit na ito ay napaka mabilis na processor, ay maaaring maging masyadong ma-stress kapag nagsasagawa ng mga kumplikadong gawain. Anong mga solusyon ang mayroon maliban sa paglipat ng load na ito sa video card? Ano ang kailangan nito? At bakit mas simple ang lahat sa teorya kaysa sa praktikal? Titingnan natin ang lahat ng ito sa ibaba.

2.5D: Mga alamat ng 2D Hardware Acceleration

Sa una, ang mga discrete na video card ay kailangan lamang para sa 2D na gawain. Hindi lihim na ang mga discrete graphics card ngayon ay nagbibigay ng mahusay na pagganap pagdating sa kumplikadong mga gawain sa pag-render ng graphics. Gayunpaman, ang mga mas lumang video card ay masyadong mabagal para sa pang-araw-araw na trabaho, lalo na kapag kailangan nilang magpakita ng kumplikado mga graphic na epekto mga rendering na nasa huli Mga bersyon ng Windows. Sa kabilang banda, ito ay dahil sa graphical na kumplikado ng mga modernong Windows user interface, at sa kabilang banda, sa limitadong graphical na pag-andar. Ngunit unawain natin ang mga sangkap na ito, isa-isa.

Sa seksyong ito ay titingnan natin graphics acceleration 2D na nauugnay sa native graphics rendering, mula sa GDI hanggang sa video card mismo. Kabilang dito ang mga simpleng geometric na bagay tulad ng mga pixel, linya, kurba, polygon, parihaba at ellipse sa isang banda, at ang kanilang pag-scale, pag-render o anti-aliasing na operasyon ng mga font (gaya ng TrueType o OpenType) sa kabilang banda.

Ang matagal nang suporta para sa hardware acceleration ng tinatawag na "2D primitives" sa mga graphics card ay nawala, at nawala sa mga consumer-level na produkto sa loob ng ilang panahon. Ngayon, ang acceleration ng 2D graphics function ay ipinatupad bilang isang analogue ng 3D acceleration, ngunit naproseso ng eksklusibo at ganap ng software graphics driver, at hindi ng hardware na binuo sa board.

Sa ikalawang bahagi ng aming serye, ipapakilala at ipapaliwanag namin ang isang benchmark na partikular naming binuo para sa 2D graphics na masusing sumusubok sa mga pangunahing at pangunahing tampok ng 2D graphics. Bukod dito, ang pagsubok na ito ay nagpapakita na driver ng software maaaring magkaroon ng negatibo at hindi mahulaan na epekto sa 2D graphics. Magpapakita rin kami ng siyam na karaniwang pamantayan sa pagsusulit.


Ipakita ang teksto.


Mga parihaba.


Mga kurba.

Ang pagbabago sa mga function ng pag-render ay bahagi lamang ng 2D acceleration. Ang makabuluhan at napakapositibong acceleration ay ibinibigay ng modernong 3D video card, na maaaring mag-render, magkontrol at magpakita ng 2.5D graphics na impormasyon sa hardware.


Lahat ay ipinapakita kaagad.

Paano gumagana ang lahat ng ito? Tulad ng sa kaso ng 3D graphics, ang nakikita at nakatagong mga lugar ng mga bintana ay kinakalkula, na ganap na naka-imbak sa anyo ng mga virtual na hugis-parihaba na lugar, at ang mga nilalaman ng lahat ng mga aktibong window ay ipinapakita sa real time. Samakatuwid, walang kailangang kalkulahin muli kapag inilipat mo o binago ang window; tanging ang mga lugar na nakatago at nakikita na ngayon ay kailangang muling iguhit kasama ang lahat ng nagbago mula noon pinakabagong update. Palaging alam ng video card ang laki at lokasyon ng mga virtual na parihaba na kilala bilang mga bintana. Gamit ang isang depth buffer (z-buffer), sinusubaybayan ng video card ang pagkakasunud-sunod at priyoridad ng mga bintana o mga bagay sa screen (kilala rin bilang Z-order). Samakatuwid, ang video card mismo ay maaaring matukoy kung aling mga bagay ang nakikita, iyon ay, kung ano ang kailangang ipakita nang direkta sa screen mismo.

Hayaan akong maikling buod kung ano ang ibig sabihin ng lahat ng ito.

Kasama sa modernong 2D hardware acceleration ang parehong pagpapatupad mga pangunahing pag-andar 2D rendering at pagpapatupad ng 2.5D layering na teknolohiya para sa mga bintana at user interface.

Gayunpaman, magiging napakahirap na pagsasaliksik sa bawat bersyon ng Windows na inilabas upang makahanap ng mga karagdagang detalye. Dahil ang mga isyung natukoy namin ay nakaapekto lamang sa pagganap ng pagsubok sa ilalim ng Windows 7, nilimitahan namin ang aming Pagsubok sa Windows XP, Vista at, natural, Windows 7.

Windows XP: " lumang paaralan" Mga limitasyon sa 2D at WM_PAINT

Maaari mong sabihin kung ano ang iniisip mo tungkol sa Windows XP, ngunit ang GDI hardware acceleration ay gumagana nang walang kamali-mali hanggang sa araw na ito at sapat ito para sa karamihan ng mga uri ng mga application. Gayunpaman, ang hindi magagawa ng XP ay ilipat ang pamamaraan ng pagtatrabaho sa mga 2.5D na layer sa modernong 3D video card. Tulad ng inilarawan namin sa itaas, ang pag-render ng mga nilalaman ng window ay ginagawa ng mga application mismo.



Isang tipikal na 2D na application kung saan malamang na hindi sila bumili ng mamahaling video card. Mag-click sa larawan upang palakihin.

Ang limitasyong ito ay malamang na hindi makaabala sa mga user na tumutuon sa kanilang mga pagsisikap sa alinmang window desktop application. Ang pinakakaraniwang aplikasyon ng teknolohiyang ito ay makikita sa mga kapaligiran ng SDI (single device interface). Ngunit mas nagiging abala ang mga bagay kapag marami kang window na nakabukas at nakikita sa iyong desktop. Sino ang hindi tututol na samantalahin ang pinahusay na teknolohiya ng layering na sumusuporta sa mga menu, gumagana nang mas mahusay sa modernong hardware, at ginagawang mas madaling magtrabaho sa maraming mga bintana sa maraming monitor? Sino ang hindi magnanais na gawing isang bagay ng nakaraan ang gumagalaw na window blur at window trails habang tinatangkilik ang mas mahusay na pagganap ng 2D graphics?



Ang Windows ay parang deck ng mga baraha: ang epekto ng pagdodoble ng mga bintana sa ilalim ng XP kapag nagda-drag. Mag-click sa larawan upang palakihin.

Bagama't purong 2D na pagganap sa vector mga programa sa graphics tulad ng Corel Draw o CAD application ay medyo mataas, dahil ang GDI function ay maayos na sinusuportahan sa kanila, naabot namin ang mga limitasyon ng WM_PAINT. Kapag ang XP GUI ay na-overload ng animation, malambot na anino, mga transparent na bintana at iba pang mga graphic na elemento, malapit ito sa mga limitasyon ng 2D graphics.



Kapag ang system ay nasa ilalim ng mabigat na pagkarga, ang WM_Paint function ay nagha-hang o ina-update lamang paminsan-minsan. Dapat maghintay ang mga kaganapan sa muling pagguhit upang maisagawa. Mag-click sa larawan upang palakihin.

Nalaman ng maraming user na pinakamahusay na ipakita ang mga window bilang mga frame lamang kapag inililipat ang mga ito, at ganap na patayin ang mga animated na menu. Sa pangkalahatan, ang pag-save ng mga graphic na mapagkukunan ay lumalabas na isang ganap na normal na diskarte kapag nagtatrabaho sa isang XP desktop. Sa kasamaang palad, marami ang magaganda mga graphic na tema napunta sa basurahan pagkatapos ng unang euphoria ng paglulunsad ng bagong operating system, dahil nawalan ng kakayahan ang OS na i-render ang lahat ng graphics nang walang mga error o lags.

Mabilis na napansin ng Microsoft na ang 2D graphics solution nito, na naroroon sa lahat ng bersyon ng Windows bago nito, kasama ang XP, ay kailangang palitan. At ang lumalagong kakayahang magamit ng mga mas mabilis na 3D accelerators, kasama ng mga bumabagsak na presyo para sa mga discrete GPU, ay malinaw na nagpahiwatig na ang mga oras (at mga operating system) ay nagbabago.


Isang tipikal na halimbawa ng isang 3D video card noong 2005: Radeon X1800.

Sa puntong ito, mahalagang tandaan na ang acceleration ng hardware sa XP sa simula ay hindi gumana sa pinagsama-samang graphics ng ATI 780G sa mga native na resolusyon. Bilang resulta, mabagal na nagre-render ang mga bintana, na nagpapababa kahit sa pangunahing pagganap ng web browser. Nakatulong ang mga kasunod na update sa driver na malutas ang mga isyung ito. Ngunit kahit ngayon, ang graphics core ng 780G ay hindi maaaring gumanap nang mahusay, na kung saan ay lubos na kaibahan sa 740G. Ngunit ngayon, kapag ang XP ay isang bagay na sa nakaraan, ang paghatol na ito ay maaaring magkaroon din ng katulad na kapalaran...

Pagkatapos ay pumasok ito sa palengke Windows Vista, na marahil ang pinakakontrobersyal na OS ng Microsoft (kasama ang Windows ME). Sa anumang kaso, anuman ang iyong pag-ibig o galit para sa Vista, hindi na maipagpaliban ng kumpanya ang ilang mga teknikal na pagpapabuti.

Ang maikling buod ng XP ay ito.

  • Ang 2D hardware acceleration ay gumana nang walang kamali-mali para sa mga GDI command.
  • Walang hardware acceleration para sa 2.5D na mga layer, na nagreresulta sa mas mabagal na user interface.
  • Ang paulit-ulit na muling pagguhit o pagbabago ng mga nilalaman ng window ay nakakaubos ng oras at nakaapekto rin sa pagganap.

Windows Vista: pag-unlad at pag-abandona ng luma

Noong una naming na-install ang Windows Vista, halos hindi namin mapigilan ang aming sarili. Nakakaintriga, mapaghamong at napabuti, ang Vista ay nangako ng marami.



Maraming liwanag at anino, ngunit walang 2D hardware acceleration. Mag-click sa larawan upang palakihin.

Ngunit kung ano ang tila napaka-rebolusyonaryo sa unang tingin ay nagbigay daan sa pagkabigo kapag inilunsad ito o ang application na iyon, at kung minsan ay nagbibigay lamang ng inspirasyon. Tingnan natin ang pinaka mahahalagang katangian nang detalyado.

Pagpapatupad ng hardware ng 2.5D na mga layer

Ang teknolohiyang ito ay unang ipinatupad sa Windows Vista. Ito ay kinuha ng maraming upang mailabas ito sa mahabang panahon, ngunit noong 2006 sa wakas ay lumitaw ang teknolohiya. Gayunpaman, isang maliit na limitasyon ang nanatili: ito ay gagana lamang kung ang interface ng Aero ay naisaaktibo. Bukod pa rito, upang suportahan ang mga 2.5D na layer, kailangan mo ng 3D capable na graphics card, kahit na hindi mo planong magpatakbo ng mga 3D na application o laro. Kung ginagamit mo ang Vista Basic na tema, kailangan mong tiisin ang parehong blurring at ghosting effect kapag naglilipat ng mga window na pamilyar sa mga user ng XP, dahil awtomatikong hindi pinagana ang suporta para sa 2.5D na mga layer - kahit na may 3D video card ang system naka-install. Nakakahiya naman.

Ang paglipat upang suportahan ang 2.5D na mga layer ay nagpilit din sa Microsoft na harapin ang ilang mga isyu. Ang Vista ay itinuturing na isang mabagal na operating system, ngunit sa karamihan ay matatag. Pero anong nangyari? Nabanggit na namin na si GDI ay pangunahing interface para sa graphics programming. Pagkatapos ng pagpapakilala ng (sa kasamaang palad) napakabagal na C++-based na GDI+ extension, na hindi kailanman gumawa ng teknolohikal na tagumpay sa mga tuntunin ng pagganap nito, hindi na namin maitatanggi ang pagkakaroon ng isang uri ng "gulo sa interface". Sa katunayan, napaka-malamang na ang GDI, GDI+, DirectDraw at Direct3D ay maaaring mapabilis ng hardware nang sabay-sabay.

Bilang karagdagan sa bagong modelo ng driver ng device, ipinakilala ng Windows ang modelong DWM para sa pagkontrol ng mga display device. Ang pangkalahatang konsepto ay hindi gaanong simple, idinagdag niya antas ng programa(at ang katumbas na pagtaas ng pagiging kumplikado) sa pagitan ng mga bintana at pag-render ng mga command sa isang banda, at sa pagitan ng mga driver at device sa kabilang banda. Nahinto ang direktang pakikipag-ugnayan dahil sa paglitaw ng DWM. Sa pagtatangkang makakuha ng kontrol sa lahat, siniguro ng modelo ng DWM ang koordinasyon ng lahat ng mga indibidwal na graphical na interface. Ang paglipat na ito ay umalis sa isang medyo seryoso tampok na graphic, na nabanggit na namin - lalo na ang hardware acceleration ng GDI display function. Mahirap intindihin, pero ganun talaga ang nangyari.

Karamihan sa dagdag na memorya na kinokonsumo ng Vista ay karaniwang nauugnay sa teknolohiya ng SuperFetch. Sa kasamaang palad, ito ay bahagyang naglalarawan sa sitwasyon sa katotohanan. Ang kakulangan ng hardware 2D acceleration ay nangangahulugan na ang buong pasanin ng mga tawag ng GDI upang ipakita ang mga nilalaman ng window ay nahuhulog sa CPU. Ang lahat ng ito ay humahantong sa isang malaking buffer sa loob ng DWM. Pagkatapos ay dapat ilipat ang mga kumpletong window display sa video card. Ngunit mabilis itong lumikha ng isang seryosong bottleneck, dahil isang window lang sa bawat pagkakataon ang maaaring magpadala ng mga GDI command sa DWM. Asynchronous na mga gawain ay hindi naresolba, na nagreresulta sa mahabang pila ng mga nakabinbing kahilingan sa serbisyo. Ang lahat ng ito ay hindi lamang nangangailangan ng makabuluhang oras ng CPU upang maipatupad, ngunit kumonsumo din ng isang malaking halaga ng memorya, dahil ang lahat ng mga aktibong window ay matatagpuan sa loob ng buffer ng DWM. Ang mga indibidwal na bintana ay maaaring tumagal ng hanggang 100MB, kaya maliwanag na tataas ang pagkonsumo ng memorya. Sa pinakamatinding kaso, maaaring mag-freeze lang ang Vista, tulad ng kapag ang isang nakakahamak na programa ay nagbukas ng sunud-sunod na window sa isang walang katapusang loop. Siyempre, ang gayong loop ay hindi maaaring magpatuloy nang walang katiyakan, kaya kailangan mong gawin sapilitang pagsasara computer upang mabawi ang kontrol ng system.



Ang pagdodoble ng iyong pagkonsumo ng memorya ay hindi doble ang iyong kasiyahan (pinagmulan: Microsoft). Mag-click sa larawan upang palakihin.

Ibuod natin ang Vista.

  • Gumagamit ang Vista ng hardware acceleration sa unang pagkakataon para sa 2.5D layer model.
  • Mabagal na pag-redraw gamit ang aktibong teknolohiya ng Aero Windows windows nananatili sa nakaraan.
  • Ang Microsoft ay lumalayo sa hardware acceleration ng 2D rendering feature ng GDI.
  • Hindi maaaring gumana ang DWM sa mga bintana sa asynchronous mode, na negatibong nakakaapekto sa pagganap ng graphics.
  • Ang GDI command queue sa loob ng DWM ay maaaring kumonsumo ng malaking halaga ng memorya.

Windows 7: Pagbabalik ng Alibughang Anak


Ang logo ng Windows 7, na interesado sa maraming user.

Itinuring ng maraming user ang Vista bilang isang hindi matagumpay na OS - ito ay itinuturing bilang isang halimaw na literal na "nilamon" ng memorya. Sa anumang kaso, ang operating system na ito ay kailangang tingnang muli, sa liwanag ng Paglabas ng Windows 7. Kasama ng mga pangunahing pagbabago sa system mismo, Windows graphics Ibinigay ng 7 ang inalis ng Vista - walang limitasyong 2D graphics acceleration sa lahat ng lugar, kabilang ang mga function ng pag-render ng GDI.

Salamat sa paglipat sa WDDM 1.1, pinigilan ng Windows 7 ang paggamit ng dobleng memorya (sa unang pagkakataon para sa mga indibidwal na buffer, sa pangalawang pagkakataon para sa bawat aktibong window sa DWM). Ginawa nitong posible na gawing mas simple ang system, na may mas katamtamang mga kinakailangan sa mapagkukunan. Sa Windows Vista, ang dobleng pagkonsumo ng memorya para sa mga bintana ay maaaring ipaliwanag kung bakit ang memorya ng system ay natupok nang walang awa.


Sa kaso ng Vista, "kinakain" ng OS ang lahat ng memorya na makukuha nito... (source: Microsoft).



...ngunit sa kaso ng Windows 7 ang mga kinakailangan ay mas katamtaman (pinagmulan: Microsoft).

Upang makadagdag sa GDI sa ilalim ng Windows 7, inihayag din ang Direct2D. Gumagamit ang interface na ito ng command translation na katulad ng Direct3D para ipatupad ang hardware acceleration at suportahan ang mas kumplikadong hanay ng mga graphics function. Binibigyan ng Direct2D ang bilis ng bentahe ng GDI kasama ang mga advanced na kakayahan ng GDI+, na hindi gumana sa ganoong paraan. Gayunpaman, hindi pa namin nakikita kung ang Direct2D ay makakakuha ng suporta mula sa mga developer.

Kahit ngayon, ang karamihan sa mga programa ay gumagamit pa rin ng GDI API upang i-render at manipulahin ang mga elemento ng 2D graphics. Nagustuhan namin na ibinalik ng Windows 7 ang hardware acceleration para sa mga command na ito, na inabandona ng Vista.



Asynchronous GDI sa ilalim ng Windows 7 (pinagmulan: Microsoft). Mag-click sa larawan upang palakihin.


Halos perpektong scaling sabay-sabay na gawain na may maraming mga bintana (pinagmulan: Microsoft)

Ibubuod natin nang maikli ang tungkol sa Windows 7.

  • Direktang pag-redirect ng GDI rendering command sa driver ng graphics sa pamamagitan ng DWM.
  • Asynchronous at sabay-sabay na pagproseso ng mga GDI command para sa maramihang mga window.
  • Mga diskarte upang maiwasan ang labis na paggamit ng memory para sa pagpila ng mga kahilingan sa graphics.
  • Bago at pinahusay na mga driver ng WDDM 1.1.

Mga Kinakailangan ng Mga Manufacturer ng GPU

Ang pagbabalik ng hardware acceleration para sa 2D graphics ay nagbalik sa mga tagagawa ng GPU sa laro. Ang mga driver para sa Windows 7 ay dapat na espesyal na binuo upang magbigay ng hardware acceleration para sa 2D GDI acceleration command, pati na rin ang pagsuporta sa 2.5D layered na operasyon ng mga indibidwal na bintana.

Para sa ilang mga video card, naging mahirap ito. Halimbawa, ang kasalukuyang henerasyon ng mga ATI graphics card ay tila dumaranas ng mga komplikasyon na nauugnay sa driver sa lahat ng mga lugar na ito ng 2D graphics acceleration. Mababasa mo sa ibaba ang tungkol sa kung paano namin natuklasan ang mga problemang ito at kung anong mga konklusyon ang naabot namin.

Windows 7: Walang 2D acceleration ang Radeon HD 5000 na linya ng mga graphics card

Ang AMD ay naglagay ng maraming pagsisikap sa pagbuo ng DirectX 11 graphics card pinakabagong henerasyon; Ito ay medyo natural na tumagal ng ilang oras upang pinuhin ang bahagi ng software (ito ay hindi isang lihim na ang kasunod na paglabas ng driver ay nagpapabuti sa pagganap at katatagan ng marami sa iba't ibang paraan). Hindi namin maaaring balewalain ang nVidia sa bagay na ito, dahil nakakita kami ng mga katulad na problema sa Mga driver ng GeForce mga kumpanya kapag gumagamit ng 2D graphics sa mga mobile processor ng kumpanya. Para sa aming artikulo, ginamit namin ang pinakabagong bersyon ng driver ng Catalyst sa panahon ng pagsubok - 9.12.



Ang Catalyst at Windows 7 ay nagna-navigate sa maalon na dagat. Mag-click sa larawan upang palakihin.

Isyu 1: Tumigil sa pagtugon ang ATIKMDAG, pagkatapos ay nakabawi

Kung nakatagpo ka ng mensahe ng error na tulad nito, malamang na dahil bumalik ka sa 2D mode pagkatapos lumabas sa isang 3D na application. Wala kaming pagpipilian kundi isipin na ito ay resulta ng ilang pagkakamali sa driver.

Ipaalala ko sa iyo: kapag ang interface ng Aero ay naka-off, ang DWM ay hindi pinagana, kaya hindi na nangyayari ang 2D acceleration (iyon ay, nakukuha namin ang parehong bagay sa ilalim ng Windows 7 tulad ng sa ilalim ng Vista). Dahil paulit-ulit naming naranasan ang error na ito sa mga system na may naka-install na mga video card Radeon HD 5750 at Radeon HD 5870 (sa dalawang magkaibang configuration ng pagsubok), kinailangan naming sadyang i-disable ang Aero interface sa parehong mga kaso. Pagkatapos ng gayong maniobra, hindi na lumitaw ang mga pagkakamali. Kapansin-pansin, nakita namin ang eksaktong parehong sitwasyon (at ang solusyon nito) sa mga laptop na may GeForce video card. Siyempre, oras lang ang magsasabi kung nagkataon lang ito o nagpapahiwatig ng conflict sa pagitan ng DWM, mga driver, at 2D graphics hardware acceleration.

Ang aming susunod na pangunahing pinaghihinalaan ay lumalabas na medyo mababa ang mga frequency. AMD video card bilang default sa 2D mode, pati na rin ang ilang mga problema sa maagang BIOS ng mga video card. Gayunpaman, upang kumpirmahin o pabulaanan ang kanilang impluwensya, kakailanganin namin ng mga pangmatagalang obserbasyon - o pagkatapos ng paglabas ng isang bagong bersyon ng driver, dapat magbago ang pag-uugali.

Naranasan namin ang isyung ito dahil nahirapan agad kaming makuha ang Radeon HD 5870 upang suportahan ang 2D graphics. Marami ang maaaring, siyempre, idagdag sa bagay na ito na ang mga 3D na mapa ay nilikha para sa mga laro, hindi 2D application. Ngunit kung babasahin mo ang mga nakaraang seksyon ng artikulo, dapat mong aminin na ang problemang ito ay naging seryoso lamang sa paglabas ng Windows 7 (at hindi sa Windows Vista). Upang maging mas tiyak, karamihan sa mga 3D graphics card ay may kakayahang pangasiwaan ang 2D graphics sa mga araw na ito nang walang anumang problema. Pero direktang paghahambing 2D acceleration support sa pagitan GeForce GTX 285 at Radeon HD 5870 na humantong sa katotohanan na ang AMD video card ay isang tagalabas. Sa katunayan, kung ihahambing sa pinagsamang solusyon sa graphics nVidia GeForce 7050 (nForce 610i), na walang sariling memorya, bagong Radeon pumangalawa lang.

Mas nagiging interesante ang mga bagay kapag naka-off ang DWM. Kahit nasa sa kasong ito Ang 2D acceleration ay hindi na posible; Kung ikukumpara sa Nvidia GeForce, ang pagpapatakbo ng AMD video card na may DWM disabled ay nagbibigay dito ng pagpapalakas ng performance. Kahit na ang CorelDraw at AutoCAD ay tumatakbo nang mas mabilis sa Radeon HD 5870 na naka-off ang DWM. Inilalagay nito ang nVidia sa isang kanais-nais na liwanag at sinasalungat ang parehong lohika at nakaraang karanasan sa pagsubok ng data ng GPU.


Ang 2D hardware acceleration gamit ang Aero interface at DWM enabled ay nagbibigay ng kalamangan sa GeForce video card.


Kung walang Aero at hardware acceleration, ang AMD 2D graphics card ay hanggang limang beses na mas mabilis. Nakakaloka!

Dahil dito, ilang beses naming inulit ang mga pagsubok sa PassMark sa mga video card na ito.


Aero interface at DWM ay hindi pinagana - AMD video card ay kapansin-pansing mas mabilis. Mag-click sa larawan upang palakihin.

Sa kasamaang palad, wala sa mga pagsubok na ito ang nakahanap ng eksaktong dahilan ng mga problemang naranasan namin o nagbigay ng anumang liwanag sa kakaibang mga resulta ng pagganap. Iyon ang dahilan kung bakit nagpasya kaming lumikha ng aming sariling pagsubok, na nagbigay-daan sa amin upang mas maunawaan ang mga sanhi ng mga natukoy na problema.

Tom2D Benchmark: Radeon HD 5870 vs GeForce GTX 285 sa ilalim ng Windows 7

Sa aming bagong benchmark, umaasa kaming mas malalim ang paghuhukay sa ugat ng mga pagbaba ng performance ng 2D na ito na natuklasan namin kamakailan gamit ang Radeon HD 5870, 5850 at 5750 graphics card na magagamit namin. Magsimula tayo sa katotohanan na ang 2D acceleration ng mga function ng GDI sa ilalim ng Windows 7 ay malinaw na hindi gumana sa alinman sa mga modelo sa linya ng Radeon HD 5000, iyon ay, nahaharap tayo sa higit pa sa isang seryosong paghina. Ano ang problema: sa driver o sa hardware? Sa kaso ng nVidia, hindi rin naging maayos ang lahat: hindi lahat ng posibleng pag-andar ay pinabilis sa mga video card ng kumpanyang ito.

Pagsubok ng configuration
CPU Intel Core 2 Quad Q6600, 2.4 GHz @ 3.2 GHz, G0 stepping, 8 MB L2 cache, LGA 775
Alaala 4 GB DDR2-1066 CL5
Motherboard A-Data Vitesta Extreme
operating system Windows 7 Ultimate x64
Mga video card Radeon HD 5870, GeForce GTX 285
Driver ng graphics Catalyst 9.12, GeForce 195.62
Mga video card Bilis ng orasan na may naka-enable na Aero/DWM Bilis ng orasan nang walang acceleration
ATI Radeon HD 5870 850 MHz 157 MHz
Nvidia GeForce GTX 285 648 MHz 300 MHz

Upang maglatag ng mas matibay na pundasyon para sa 2D acceleration on/off na paghahambing, pinatakbo din namin ang lahat ng aming mga pagsubok sa mas lumang nForce 610i chipset na may pinagsamang GeForce 7050 graphics (nang walang nakalaang memorya). Nag-install kami ng parehong processor at 4GB ng memorya at pagkatapos ay nagpatakbo ng parehong operating system ng Windows 7 Sinubukan din namin ang pagganap ng hinalinhan ng Radeon HD5870, ang ATI Radeon HD 4870, sa aming platform ng pagsubok.


SA pagsubok na ito Ang lahat ng pansubok na video card ay nasa isang makitid na hanay ng pagganap.

Magiging kagiliw-giliw na marinig ang mga komento mula sa nVidia kung bakit ang isinama GPU nagpapakita ng 2D graphics nang mas mabilis kaysa sa GeForce GTX 285, kahit na ang pagkakaiba ay napakahinhin.

Ang Radeon HD 4870 video card, na kinuha namin para sa paghahambing, ay matatagpuan sa pangatlo mula sa ibaba, kahit na hindi ito nagpapakita ng anumang partikular na mga pagkukulang.


Nakakagulat, ang Radeon HD 5870 graphics card ay sadyang hindi kayang mag-output ng hardware-accelerated na mga linya na may katanggap-tanggap na performance.

Habang ang parehong nVidia at AMD test card ay gumawa ng katanggap-tanggap at medyo malapit na mga resulta na may 2D acceleration na naka-off at ginagawa ng CPU ang lahat ng trabaho, isang malaking agwat ang magbubukas sa pagitan ng dalawang card kapag pinagana ang Aero. Ang GeForce GTX 285 ay 11 beses na mas mabilis kaysa sa ATI Radeon HD 5870. Ang masama pa, ang pinagsamang GPU na may motherboard para sa $50 dalawang taon na ang nakalipas ay isang order ng magnitude na mas mahusay kaysa sa isang $400 na video card.

Ang data na natanggap namin para sa Radeon HD 4870 ay nagpapakita ng maliit na pagkakaiba sa pagitan ng aktibong Aero mode at ng simpleng mode (nang walang graphics acceleration) sa ilalim ng Windows 7, na nagmumungkahi na walang acceleration sa pagguhit ng mga linya sa ilalim ng Windows 7. Ang video card na ito ay kapansin-pansing mas mabagal kaysa sa GeForce GTX 285 at ang pinagsama-samang mga solusyon sa graphics, ngunit higit pa rin ang pagganap nito sa Radeon HD 5870 na may acceleration na naka-on at naka-off.


Ang pagsusulit na ito ay nagbibigay ng humigit-kumulang kaparehong larawan ng pagsubok sa pagguhit ng linya. Ang Radeon HD 5870 ay pumapasok sa ibaba, na nagpapatunay sa aming hinala na hindi nito mahawakan nang maayos ang mga 2D na application. Ito ay halos hindi matatawag na matitiis kahit na para sa merkado ng mga mamimili.

Kapag naka-enable ang interface ng Aero at aktibo ang DWM, nagbibigay ang GeForce GTX 285 graphics card ng siyam na beses pa mataas na pagganap. Gayundin, kahit na ang lumang pinagsama-samang chipset core ay makabuluhang lumalampas sa pagganap bagong video card AMD. Sa pamamagitan ng paraan, ang pagganap ng Radeon HD 4870 ay naging napaka-interesante: ang video card ay may kakayahang mapabilis ang output ng mga curves sa hardware, kahit na ang pagganap ay nabawasan kumpara sa parehong mga solusyon sa nVidia.


Dahil ang aming Radeon HD 5870 ay may mga halatang isyu sa pag-render ng mga linya (lalo na sa mga rich stroke), nakikita namin na ang kalahati ng aming mga resulta ng rectangle test ay pare-pareho sa mga nakaraang natuklasan, na hindi nakakagulat.

Sa anumang kaso, medyo kawili-wiling makita kung paano dinodoble ng Radeon HD 5870 ang pagganap na may pinagana ang hardware acceleration (kumpara sa hardware acceleration na hindi pinagana), kahit na ang pagganap ay bahagyang mas masama kaysa sa GeForce 7050 GPU.

Ang rectangle test ay ang tanging isa kung saan nakakita kami ng kapansin-pansing epekto ng pagpapagana ng hardware acceleration sa ATI video card, at kung saan ang hardware acceleration ay karapat-dapat sa pangalan nito. Ang Radeon HD 4870 ay nakinabang mula sa epektong ito nang higit sa 5870, kahit na nahuli ito sa iba pang mga card sa hindi na-boosted na pagsubok na ito.


Sa kasong ito, ang tagumpay ay iginawad sa lumang integrated graphics core. Nahihigitan ng Nvidia nForce 610i ang lahat ng iba pang discrete video card sa isang nakakagulat na malaking margin, at hindi mahalaga kung gagamitin natin ang mga ito nang may aktibong 2D acceleration o hindi aktibo. Ito ay kagiliw-giliw na tandaan na para sa parehong nangungunang 3D video card, polygon output acceleration ay hindi gumagana sa lahat.

Ang pinagsamang graphics core na may naka-enable na Aero ay 10 beses na mas mabilis kaysa sa Radeon HD 5870. Kung walang acceleration, ang Radeon HD 4870 ay bahagyang mas mabagal kaysa sa 5870. Ngunit kapag naka-enable ang Aero, ang 4870 ay gumaganap nang higit sa dalawang beses na mas mabilis kaysa sa 5870.


Ang mga resulta ay katulad ng nakita natin sa itaas. Ang parehong mga high-end na graphics card ay hindi nagbibigay ng 2D acceleration, hindi katulad ng integrated chipset. Ang Radeon HD 5870 video card ay nagiging isang tagalabas, at ang lumang Radeon HD 4870 ay matatagpuan sa isang lugar sa gitna.

Dagdag

Nakakita kami ng mga katulad na resulta noong ginamit namin ang Radeon HD 5750, na nag-ayos ng ilan sa mga isyu na nakakaapekto sa 5870. Inihambing din namin ang mga driver ng Catalyst 9.11 at 9.12 at nakakita ng mga kapansin-pansing nadagdag sa performance kapag lumipat mula sa lumang bersyon patungo sa bagong bersyon, hindi alintana kung pinagana ang hardware acceleration o Hindi. Ang aming sa pamamagitan ng sumusunod na paghahambing Magkakaroon ng pagsukat ng pagganap ng Windows 7 at Vista, ngunit iiwan namin ito hanggang sa ikalawang bahagi ng artikulo. Sapat na sabihin na kahit dito ay nakakita kami ng maraming mga sorpresa sa panahon ng aming mga pagsusulit.

Konklusyon

Batay sa aming pagsusuri kasalukuyang sitwasyon, pagkatapos ay ang mga bagong video card ng linya ng ATI Radeon HD 5000 ay may mga problema sa 2D graphics. Nababahala din kami na ang mas lumang integrated chipset ay mas mabilis sa ilang lugar (laban sa parehong AMD at nVidia discrete graphics card). Bilang karagdagan, hindi kami makahanap ng anumang katanggap-tanggap na solusyon para sa pagtatrabaho sa mga program na gumagamit ng vector graphics. At nalalapat ito hindi lamang sa aming pagsubok; nalalapat ito sa sinumang regular na gumagana sa 2D graphics. Sa totoo lang, medyo mahirap isipin kung paano maaaring lumapit ang lumang Radeon HD 4870 video card o matalo pa ang mga bagong video card sa napakaraming pagsubok.

Bagama't gumagana nang maayos ang 2D acceleration (kabilang ang 2.5D layers), ang AMD ay hindi pa nagpapatupad ng ilang pangunahing pag-andar GDI sa Radeon HD 5000 na linya ng mga video card Maraming mga paglabas ng driver ang lumipas na mula noong unang paglabas ng Windows 7, kaya ang sitwasyon ay magiging mahirap maunawaan para sa mga gumastos ng ilang daang dolyar sa isang bagong-bagong video card. parehong oras nakatanggap ng "preno" sa 2D application. Kailangan din naming ipaalala sa iyo na ang lahat ng ito ay nalalapat hindi lamang sa aming sintetikong 2D na pagsubok, kundi pati na rin sa iba't ibang real-world application na ginagamit namin sa aming mga pagsubok, kabilang ang AutoCAD, Corel Draw, Adobe Illustrator, Photoshop CS3/CS4, Microsoft Publisher, PowerPoint at iba pa. Nangangailangan ito ng madalian at seryosong pagpapahusay sa mga driver sa bahagi ng AMD, lalo na dahil ang aming mga resulta sa ilalim ng Vista ay nagpapakita ng mas mataas na pagganap kaysa sa ilalim ng Windows 7 (pag-uusapan natin ito sa ikalawang bahagi ng artikulo).

Sa panahon ng paghahanda ng artikulong ito at pagsubok, tinawagan namin si Antal Tungler, teknikal na PR manager para sa AMD, upang talakayin ang 2D na pagganap ng Radeon HD 5000 na linya sa ilalim ng Windows 7. Nang kumpirmahin namin sa aming sarili na ang mga problema sa pagganap na ito ay partikular na nauugnay sa Sa mga problema sa GDI na nararanasan ng halos anumang programa na gumagana sa mga bintana sa desktop, ang sitwasyong ito ay tila hindi na namin matitiis, lalo na para sa mga gumagamit sa bahay at opisina. Bukod dito, ang integrated graphics GPU ng kakumpitensya ay humawak ng 2D graphics nang mas mahusay.

Maaari lamang nating ipagpalagay (at umaasa) na ang dahilan at posibleng solusyon ay nasa mga driver ng Catalyst. Kung gayon, madaling maayos ng AMD ang mga problema. Isinasaalang-alang kamakailang paglabas ng mga murang video card, maaari nating ipagpalagay na ang mga problema ay nakakaapekto sa buong linya. Ngunit ang higit na nag-aalala sa amin, dahil sa mga resulta ng pagsubok, ay ang mga parihaba ay nakakakuha ng isang kapansin-pansing bilis, habang ang lahat ng iba pang mga graphic primitive (lalo na ang mga linya at kurba) ay hindi. Nakikita namin ang isang malubhang pagbaba sa pagganap kapag pinagana ang GPU hardware acceleration - na nagmumungkahi na walang magandang nangyayari dito. discrete nVidia video card lags din kapag nagre-render ng mga ellipse at polygon, at interesado kaming malaman kung bakit ito nangyayari.

Sa ngayon, inirerekumenda namin na ang mga user ng Radeon HD 5000 na linya ng mga video card ay huwag paganahin ang interface ng Aero kapag nagtatrabaho sa mga program na masinsinang gumagamit ng 2D graphics. Sa kasong ito, ang pagtaas ng produktibo ay maaaring hanggang sa 300%, na madaling mabayaran ang kakulangan ng maganda at transparent na mga frame ng bintana. Bukod pa rito, maaari mong i-disable ang Aero para sa mga startup program lamang, kaya hindi mo kailangang isuko nang buo ang interface ng Aero.

Mag-right-click sa icon ng programa, pagkatapos ay piliin ang "Properties" mula sa menu na lilitaw. Piliin ang tab na "Pagkatugma" sa window ng mga katangian, at pagkatapos ay lagyan ng check ang checkbox na "Huwag paganahin ang komposisyon sa desktop."


Ang pagpili sa "I-disable ang Desktop Composition" ay hindi pinapagana ang suporta sa DWM.

Sa ikalawang bahagi, muli naming susubukan ang mga kakayahan ng AMD video card at ihambing ang mga ito sa direkta at hindi direktang mga kakumpitensya mula sa nVidia. Pansamantala, makikipag-chat kami sa AMD at Nvidia para talakayin ang mga resulta ng aming paunang pagsubok. Interesado kaming malaman kung ano ang sinasabi nila.

Pagkatapos ng masinsinang pagtalakay sa paksang ito sa aming mga kasamahan, nagpasya kaming magsasagawa kami ng mas malalim na pagsusuri sa iba't ibang hardware sa ilalim ng XP, Vista at Windows 7. Ang aming layunin ay makahanap ng mas malalim na pag-unawa mga graphic na kakayahan 2D ng lahat ng mga operating system na ito. Plano naming tingnan ang mga mas lumang S3 graphics card, Voodoo, maraming mas lumang modelo ng GeForce, at ang buong linya ng AMD/ATI graphics card. Sa pangkalahatan, wala kaming gustong iwanan, kabilang ang mga pinagsama-samang graphics core mula sa aming malaking seleksyon ng mga motherboard sa aming mga pagsubok.

Alam na namin na sa prosesong ito ay makakahanap kami ng ilang mga kawili-wiling bagay, pati na rin ang ilang mga pagkabigo. Sa ikalawang bahagi ng artikulo ay magbibigay din kami ng mas tumpak na paglalarawan ng mga pagsubok, mga rating ng mga resulta ng pagsubok, at magbibigay din ng pagkakataong mag-download ng Tom2D Benchmark sa iyong sarili. Nakatitiyak kaming makikita mo itong napaka-interesante, lalo na kapag natuklasan namin kung aling mga consumer-grade graphics card ang magbibigay ng mas mahusay na 2D graphics performance para sa mga partikular na bersyon ng Windows. Mga sorpresa ang naghihintay sa iyo, kaya manatiling nakatutok!

Update. Sa pagtingin sa aming mga paunang resulta ng pagganap ng 2D, ginawa ng AMD ang mga sumusunod na pagpapalagay.

  • Sinukat ng Tom's Hardware ang isang lugar (mga 2D na linya, atbp.) na hindi pa na-optimize.
  • Bago ang bagong pagsubok na ito, wala kaming nakitang anumang iba pang mga application na bottleneck sa parehong paraan, kaya hindi kami tumutok dito noon.
  • Ipinapakita ng aming paunang pagsusuri na walang mga limitasyon sa hardware sa lugar na ito.
  • Hihilingin namin sa aming koponan sa pagpapaunlad ng driver na mag-optimize din para sa lugar na ito, at susubukan naming magpakilala ng bagong driver upang matugunan ang isyu sa lalong madaling panahon.
  • Nakahanap na kami ng simpleng paraan para seryosong pataasin ang aming performance, at susubukan naming ipatupad ito sa mga hinaharap na bersyon ng Catalyst driver (kailangan naming isulat ang code, i-validate ito, tiyaking wala itong masisira pa, atbp.).

Magandang umaga, Habr!

Nakakita ako ng ilang kawili-wiling balita sa xda-developers.com, na isang muling pagsasalaysay ng pinakabagong post na "Pagsira ng mga alamat tungkol sa buong hardware acceleration sa ICS" mula sa Google+ profile ng Google developer na si Diana Hackborn. Kinuha ko ang kalayaan sa paggawa ng isang maikling pagsasalin-retelling batay sa dalawang publikasyong ito, na ipinakita ko sa ibaba sa ilalim ng buod. Ang unang bersyon ng publikasyong ito ay nai-publish ko na ngayong gabi sa blog na R2-D2: Android na may pakinabang, ngunit ang paksa ay tila karapat-dapat sa saklaw sa Habrahabr (Umaasa ako na hindi na kailangang muling itaas ang talakayan ng katotohanan na ang seksyong "Mga Link" pagkatapos ng pag-update ng taglagas na Habra ay halos at aktwal na namatay).

Nagbahagi ang developer ng Google na si Diana Hackborn ng impormasyon sa kanyang Google+ page tungkol sa hardware acceleration ng interface sa Android 4.0 Ice Cream Sandwich. Ang pananabik na lumitaw sa paligid ng function na ito ay hindi lumabas nang walang dahilan - napakaraming paninisi ang ginawa tungkol sa pagiging maayos ng pag-render ng mga 2D na elemento sa Android kumpara sa iba pang mga mobile operating system.

Siyempre, ang pagpapabilis ng hardware sa Android ay isang positibong bagay, ngunit maraming mga maling kuru-kuro tungkol sa kung ano talaga ang tampok na ito. Una, sinusuportahan ng Android ang hardware acceleration sa loob ng maraming taon para sa gawain ng pag-render ng maramihang mga bintana (pinag-uusapan natin ang komposisyon ng mga bintana - ang taskbar, mga notification, menu bar, pagpapakita at pagtatago ng mga elemento ng interface). Nangangahulugan ito na ang lahat ng animation ng mga elemento ng interface sa Android ay palaging gumagamit ng hardware acceleration.

Hindi tulad ng pag-render ng komposisyon ng window, ang pag-render ng larawan sa loob ng isang window ay tradisyonal na ginagawa gamit ang processor sa Android 2.X at mas mababa. Gayunpaman, sa Android 3.0 Honeycomb, maaaring ilipat ang mga function na ito sa graphics accelerator, ngunit kung ito ay tahasang tinukoy sa application manifest gamit ang android:hardwareAccelerated=”true” na opsyon. Ang tanging bagay Pagkakaiba sa Android 4.0 ICS ay kapag nagde-develop gamit ang pinakabagong available na API level 14 (at lahat ng hinaharap), ang opsyong ito para sa mga application ay pinagana "bilang default".
Mukhang mayroon na tayong kakayahan na "pilitin" ang lahat ng application sa Android 4.0 ICS na gumana nang pinagana ang hardware acceleration, anuman ang manifest nito, hindi ba't napakahusay? Sa katunayan, hindi ito ganap na totoo. Sa kaso, halimbawa, gamit ang PowerVR video accelerator, ang mga driver na ginamit sa Nexus S at maging ang Galaxy Nexus ay kumakain ng 8MB bawat isa. RAM para sa bawat proseso na gumagamit ng hardware acceleration. Parang hindi masyado? Hindi ito ang kaso, dahil ang ganitong aktibong pagkonsumo ng RAM sa pamamagitan ng maraming mga proseso nang sabay-sabay ay makabuluhang pinatataas ang pagkonsumo ng memorya sa pangkalahatan, na agad na nakakaapekto sa bilis ng multitasking - kahit na sa punto ng makabuluhang pagbagal nito. Bilang resulta, ang koponan ng disenyo ng Google ay gumugugol na ngayon ng malaking pagsisikap sa pag-fine-tune kung aling mga bahagi ng user interface ang talagang nangangailangan ng hardware acceleration sa Nexus S.

Ano ang resulta? Kumpara sa Android 2.X, mayroon ang Ice Cream Sandwich mas maraming posibilidad, kabilang ang dahil sa tumaas na paggamit ng hardware acceleration. Gayunpaman, maliban sa pagkakaroon ng opsyon ng acceleration na pinagana "bilang default", ang paggamit ng hardware acceleration sa ICS ay hindi na "buo" kaysa sa dati. At, bukod sa iba pang mga bagay, huwag kalimutan na ang hardware acceleration ay hindi magic o isang himala, gaya ng pinaniniwalaan ng marami, ngunit ang presensya nito ay tiyak na isang plus, hindi isang minus.

Ang pagkakaroon ng malakas na hardware ay hindi palaging nangangahulugan mabilis na trabaho mga device. Sa ilang mga kaso, ang pag-optimize ay nag-iiwan ng maraming bagay na naisin at maaaring subukan ng user na pabilisin ang pagpapatakbo ng kanilang smartphone o tablet nang mag-isa. Mayroong ilang mga paraan na makakatulong sa pagtupad sa gawaing ito. Ang mga pamamaraang ito ay tinalakay sa aming artikulo.

Alisin ang lahat ng hindi kinakailangang application

May mga application na maaaring gumamit ng mga karagdagang mapagkukunan. Kung hindi ginagamit ang mga application na ito, sulit na tanggalin ang mga ito.

Kabilang dito ang mga application na naka-install sa smartphone sa pagbili. Ang ilan sa mga ito ay hindi maaaring alisin, sila ay binuo sa firmware, habang ang iba, kung hindi mo kailangan ang mga ito, ay mas mahusay na alisin.

Huwag gumamit ng mga live na wallpaper

Ang mga live na wallpaper, kakaiba, ay nangangailangan ng karagdagang mga mapagkukunan. Siyempre, maganda ang mga ito at kaaya-aya sa mata, ngunit kung kailangan mo ng bilis, dapat ka pa ring magpaalam sa kanila.

Huwag gumamit ng mga third party launcher

Huwag gumamit ng mga karagdagang widget

Halos pareho ang masasabi tungkol sa mga widget, na maaaring mailagay nang sagana sa desktop. Subukang panatilihin lamang ang mga widget na iyon na talagang hindi mo mabubuhay kung wala, gaya ng orasan o taya ng panahon. Ang iba pang mga widget ay dapat alisin mula sa desktop, dahil sila, kahit na kaunti, ay "kumakain" pa rin ng memorya.

Huwag paganahin ang mga hindi kinakailangang application

May mga application na gumagana sa background, ngunit ang pangangailangan para sa kanila ay bihira. Sa kasong ito, pinag-uusapan natin ang tungkol sa mga application ng third-party, at hindi ang mga system, na hindi inirerekomenda na hindi paganahin, dahil maaaring humantong ito sa pagkabigo ng system.

Ang hindi pagpapagana ng application ay madali. Pumunta sa mga setting, hanapin ang seksyon na may mga application, piliin ang nais na application, pumunta dito at i-click ang "Stop".

Huwag paganahin ang GPS at geolocation

Napakahalaga ng mga setting ng geolocation, ngunit magagamit lamang ang mga ito kapag kinakailangan.

Ito, sa pamamagitan ng paraan, ay makakatulong din sa pagtaas ng awtonomiya ng aparato.

Magsagawa ng paglilinis gamit ang mga third-party na app

Huwag kalimutang tanggalin ang cache at iba pang pansamantalang data, na maaari ring makaapekto sa bilis ng system. Kadalasan ito ay mga application ng third party tulad ng Clean Master, na nagbibigay-daan sa iyo na tanggalin ang mga pansamantalang file, ngunit sa ilang mga device ay naka-built na sila sa firmware.

Gumamit ng GPU acceleration

Pumunta sa menu, hanapin ang seksyong "Para sa Mga Developer" o "Mga Pagpipilian sa Developer".

Kung hindi mo nakikita ang ganoong seksyon, kailangan mong paganahin ito. Hanapin ang seksyong "Tungkol sa telepono", "Tungkol sa tablet" o "Tungkol sa device", pumunta dito at mag-click sa "Build number" 7 beses (kung minsan kailangan mong mag-click nang kaunti pa, sasabihin sa iyo ng system ang tungkol dito).

Sa Mga Opsyon sa Developer, paganahin ang sapilitang pagpoproseso ng GPU (2D hardware acceleration sa mga app).

Kasabay nito, maaari mong i-off ang animation. Maghanap ng mga item tulad ng "Window animation scale."

Huwag paganahin ang animation. Mag-ingat lamang sa pag-edit ng mga parameter, ang ilan sa mga ito ay maaaring humantong sa mga problema sa system.

I-update ang firmware

Minsan ang mga problema sa pagganap ay nauugnay sa mismong firmware, na maaaring malutas sa pamamagitan ng pag-update sa parehong firmware. Ito ang dahilan kung bakit (at hindi lamang) napakahalaga na i-update ang software ng iyong smartphone o tablet sa oras.

Mayroon ka bang mga ideya na naiiba sa atin? Kami ay natutuwa kung ipaalam mo sa amin ang tungkol sa mga ito gamit ang mga komento sa artikulo.

Ipapakita ko sa iyo kung paano pabilisin ang iyong Android tablet. Bilang default, ang tablet ay na-configure ng tagagawa hindi para sa bilis ng pagpapatakbo, ngunit para sa matatag na trabaho, bukod sa, ang tagagawa ay madalas na nag-i-install ng marami sa kanyang sariling mga programa sa tablet, na kailangan ng ilang tao, ngunit para dito ang tagagawa ay tumatanggap ng pera mula sa mga na ang mga application ay na-install niya sa tablet.

1. Hindi pagpapagana ng mga serbisyo at application ng system

Pumunta sa mga setting - manager ng application. Mag-swipe mula kanan pakaliwa para buksan ang lahat ng application.

Sa pamamagitan ng pagpunta sa lahat ng application, makikita namin ang isang listahan ng lahat ng application na naka-install sa iyong tablet.

Sa pinakailalim ng listahan ay ipinapakita ang lahat ng hindi pinaganang application. Hindi ko pinagana ang street view, Google speech synthesizer, Yandex movie poster, Yandex news, Yandex traffic jams, Yandex taxi sa aking tablet.

Hindi ko rin pinagana ang application manager, mga mapa, oras ng mundo, mobile printing, Pag-setup ng Google Partner, pagpapalitan ng data sa pamamagitan ng Wi-Fi Direct.

Na-disable ang Mga Laro sa Play Magpatugtog ng musika, Polaris Office 5, S Voice, Samsung apps, Samsung print Service.

Naka-disable din ang Google play books, Google play movies, Google play search, Google+, Hangouts sa aking tablet.

Hindi ko kailangan ang lahat ng mga application na ito at hindi ko gagamitin ang mga ito, ngunit kung naka-on ang mga ito, maa-update ang mga ito, kukuha ng espasyo, mag-aalok sa akin ng kanilang mga serbisyo, at biswal akong maiistorbo sa kanilang walang kwentang kalat.

Maaari mo ring i-disable ang mga app sa iyong tablet na hindi mo ginagamit.

Upang huwag paganahin ang isang application, i-click ito sa listahan ng mga application. At dito nakikita natin ang pindutan ng Stop, pag-click sa kung saan ang application ay hihinto sa trabaho nito, ngunit hindi i-off. Kapag na-reboot mo ang tablet, magsisimula itong gumana muli.

Hindi lahat mga application ng system Sa tablet maaari mong i-off ito, ang ilan ay maaari lamang ihinto.

Ipapakita ko sa iyo kung paano i-disable ang built-in na application gamit ang message application bilang isang halimbawa.

Halimbawa, ang isang application sa pagmemensahe na nagbibigay-daan sa iyong magpadala at tumanggap ng SMS mula sa iyong tablet ay maaaring ihinto at hindi paganahin kung hindi ka magpadala o tumanggap ng SMS mula sa iyong tablet.

I-click ang stop.

May lalabas na notification: Sapilitang huminto. Ang pagpilit sa isang application na huminto ay maaaring magresulta sa mga error. Ibig sabihin, kasalukuyang tumatakbo ang application ng mensahe. I-click ang oo.

Huminto ang application ng mensahe. Ngayon huwag paganahin ang application ng mensahe. I-click ang huwag paganahin.

Lumilitaw ang isang babalang tanong: Huwag paganahin ang built-in na application?

Ang hindi pagpapagana ng mga built-in na application ay maaaring magdulot ng mga error sa iba pang mga application.

I-click ang oo.

Naka-disable na ngayon ang message app.

Sa listahan ng mga application makikita mo na ito ay hindi pinagana.

Kung kailangan mong muli ang naka-disable na built-in na application, maaari mo itong paganahin. Buksan ang na-disable na application sa listahan ng application at i-click ang paganahin.

Ang built-in na application ng mensahe ay gumagana muli.

2. Ihinto ang pagpapatakbo ng mga application

Pumunta sa mga setting - manager ng application. Mag-swipe mula kanan pakaliwa upang buksan ang listahan ng "tumatakbo" na ipinapakita ng listahang ito ang mga application na kasalukuyang tumatakbo.

Sabihin nating ihihinto namin ang application ng recorder ng boses ng mga bata na tumatakbo sa tablet (pinapayagan ka ng application na ito na mag-record ng mga tunog at boses kapag tumatakbo ito sa mode na pambata).

I-click ang stop upang ihinto ang application, i-unload ang application mula sa RAM (ito ay tumatagal ng hanggang 2.5 MB ng RAM) at ihinto ang background work nito, na kung minsan ay naglo-load din sa processor.

3. Paganahin ang Mga Opsyon sa Developer

Pumunta sa mga setting - mga pagpipilian sa developer.

Kung wala kang Mga Opsyon sa Developer, maaari mo itong paganahin.

Upang paganahin ang mga pagpipilian sa developer, pumunta sa item ng device at mag-click sa linya ng numero ng build nang 7 beses, pagkatapos nito ay dapat mong makita ang item ng mga pagpipilian sa developer.

Mayroon na akong mga opsyon sa developer sa aking tablet, kaya kapag nag-click ako sa build number, nakakatanggap ako ng notification: hindi kinakailangan, naka-enable na ang developer mode.

4. Huwag paganahin ang animation

Pumunta sa mga setting - mga pagpipilian sa developer, hanapin ang window animation scale item at mag-click sa item na ito.

Ngayon mag-click sa animation na hindi pinagana upang huwag paganahin ang window transition animation upang hindi mai-load ang video processor at processor sa pamamaraang ito.

Hindi rin namin pinagana ang sukat ng animation ng paglipat at ang sukat ng tagal ng animator.

Pinapagana din namin ang sapilitang pagpoproseso ng GPU upang samantalahin ang pagpapabilis ng hardware sa mga 2D na application. Kaya, ang video accelerator ay kukuha sa pagpoproseso ng mga graphic sa mga 2D na application at palayain nang kaunti ang processor mula sa gawaing ito.

5. Huwag paganahin ang mga proseso sa background.

Pumunta sa mga setting - mga pagpipilian sa developer. Nahanap namin ang mga proseso sa background ng item, bilang default, mayroong karaniwang limitasyon.

Mag-click sa item sa mga proseso sa background upang i-edit ang item at baguhin ang mga proseso sa background sa wala mga proseso sa background, upang kung ang application ay wala sa screen at hindi namin ito ginagamit ngayon, kung gayon hindi ito gagana sa background at hindi nag-aaksaya ng kapangyarihan at hindi naglo-load sa processor ng trabaho sa background nito.

Sa ganitong paraan, tanging ang application na kasalukuyang tumatakbo sa screen ang gagana, at walang "kakain" ng mga mapagkukunan ng tablet sa background.

Narito ang isang video tutorial kung paano pabilisin ang Android.

Alam ko ang isang disenteng halaga ng C++ at ngayon gusto kong tuklasin ang paggawa ng isang laro. Iniisip ko kung ano ang magiging pinakamahusay na diskarte sa mga tuntunin ng pagsusulat ng isang hardware accelerated na laro na cross platform pa rin (Windows/OSX/Linux). Ito ay magiging isang 2d na laro, ngunit sapat na matindi na malamang na hindi ito maputol ng pag-render ng CPU.

Sa wakas, nakakita na ako ng mga aklatan tulad ng http://www.sfml-dev.org/ na maaaring nagpadali, dapat ba akong pumunta sa rutang ito?

Salamat ulit.

6 na sagot

Kalokohan ito guys

OpenGL AY cross-platform. Hindi na kailangan ng Qt o ganoon. Ilang bahagi lang ang kailangang iakma: ang windows API at ang input API, na tanging mga function na nakadepende sa mga gawaing partikular sa OS.

Mayroon kang ilang mga pagpipilian:

Pinabilis ng cross platform hardware ang 2d C++ app?

Alam ko ang OpenGL, ngunit wala akong mahanap na mga tutorial kung paano ito gamitin sa cross-platform na paraan, lahat sila ay nakatutok sa isang platform.

SDL_Init(SDL_INIT_VIDEO);

SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);

SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);

SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);

SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);

SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);

SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 0);//disable ang vsync kung (SDL_SetVideoMode(scrWidth, scrHeight, 32, SDL_OPENGL) == 0)( fprintf(stderr, "hindi maitakda ang mode %dx%d!\n", 4840, 4840 ); SDL_Quit(); return -1; ) glewInit();//kung gumagamit ka ng glew, shaders while(gameIsRunning())(//game loop glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //OpenGL rendering dito glFlush. ; SDL_GL_SwapBuffers( ) SDL_Quit();

// separate files class LowLevelGraphicStuff ( // abstract ); klase LowLevelGraphicsStuff_SFML: pampublikong LowLevelGraphicsStuff ( // aktwal na pagpapatupad ng SFML ); klase LowLevelGraphicsStuff_OGL: pampublikong LowLevelGraphicsStuff ( // aktwal na pagpapatupad ng OpenGL ); // main // Patakbuhin ang laro gamit ang pagpapatupad ng SFML. gameLoop(bagong LowLevelGraphicsStuff_SFML()); // Patakbuhin ang laro gamit ang pagpapatupad ng OpenGL. gameLoop(bagong LowLevelGraphicsStuff_OGL());