Produktet er venligst udlånt af: http://www.Sapphiretech.com
Produktet distribueres i DK af: http://www.ITButikken.dk
Link til producentens website: http://www.Sapphiretech.com
Teknologi og arkitektur:
Følgende er udvalgte dele fra henholdsvis Greforbs og Red_Martians artikler med enkelte ændringer og tilføjelser. Her, lidt over et halvt år efter X800-serien udkom, ser det ud til at der er brug for lidt fornyelse. X800/X800XL på PCI-E har fået en mindre opdatering i form er en anden produktionsteknik. Man har flyttet teknikken fra 130nm-proces low-k til en 110nm-proces som ikke er low-k.
Low-k sænker temperaturen på chippen, så dan kan tåle højere frekvenser, men det er også en dyrere teknik at bruge.
Dette gælder dog kun for X800/X800XL løsningen, men ikke X850XT/X850XT PE. Disse laves stadig med 130nm-proces low-k, men som følge af forbedrede produktionsteknikker, har det været muligt at presse endnu flere MHz ud af disse chips.
Den nye udgave, som tidligere har været kendt som R480, hedder som sagt X850 til for- og mellemnavn og skulle udover et par ekstra MHz være præcis den samme chip som R420/423. Dvs. at chippen deler de samme fordele og ulemper som den gamle R420/423-kerne.
X800 serien ser nu sådan ud:
R420 chippens vertex pipelines: En vertex pipeline er den enhed i enhver VPU, der sørger for, at de geometriske data, der kommer ind bliver projiceret ned, så de kan vises på en almindelig 2-dimensionel skærm. Det er også en vertex pipelines job at fjerne unødvendigt data, så man ikke skal bruge yderligere tid på at behandle det. Basalt set, er R420 chippens vertex piplines ikke ret meget forskellige fra en R3xx pipeline. Den største forskel er, at man i en R420 pipeline nu kan lave såkaldte SINCOS instruktioner i én clockcykel. En SINCOS instruktion bruges, når man vil beregne sinus eller cosinus af et eller andet givet tal. I R3xx tager denne beregning væsentlig længere tid, fordi pipelinen først skal lave en række approksimationer, hvilket tager flere clockcykler. Når man skal lave geometriske beregninger, som er vertex pipelinens hovedopgave, bruger man meget ofte sinus og cosinus; derfor er det en kærkommen forbedring.
Som det ses på illustrationen kommer data fra vertex pipelines over i en setup motor, som sørger for, udfra de 2D projicerede data, at lave triangler og point sprites. Herefter deles disse op i såkaldte tiles, som så sendes til pixel shader enheden, der består af 16 pixel pipelines i Radeon X800XT og Radeon X800XT PE og 12 i Radeon X800PRO. Hver tile sendes til en blok på 4 pixel pipelines kaldet en quad (det er derfor antallet af pixel pipelines går op i 4, og man således ikke har f.eks 14 pipelines).
R420 chippens Pixel pipelines: R420 er udstyret med op til 16 pixel pipelines i en såkladt 16x1 pixel pipeline arkitektur (Radeon X800 Pro har kun 12 pixel pipelines). Den er altså i stand til at rendere 16 single-textured pixels per clock. Det er det dobbelte af R3xx arkitekturen, som kun har 8 pixel pipelines. En anden forbedring, der er sket i R420 chippens pixel pipelines er, at der nu findes 32 midlertidige registre i stedet for de 12, der findes i R3xx arkitekturen.
ATi har også øget det maksimale antal af pixel shader instruktioner fra 120 til op til 1536 (512 for vektorer, 512 for skalarer og 512 for texturer, så det afhænger af, hvad der skal laves). En sidste ting, der er sket med de pipelines, der findes i R420 er at F-bufferen er blevet forbedret. F-bufferen gemmer de pixels, der allerede har været igennem pixel shaderen én gang, men som kræver endnu et (eller flere) gennemløb for at blive færdiggjort. ATi har indtil nu ladet driveren administrere dette, men nu har de indbygget en forbedret hardware-enhed, der tager sig af at administrere F-bufferen sammen med driver-softwaren.
Smartshader HD: Smartshader omfatter de avancerede vertex og pixel shader funktioner i Radeon X800 serien. Når der skal skrives shader kode, kan man bruge en række forskellige sprog, men de mest brugte er HLSL (DirectX 9.0) og GLSL (OpenGL). Grunden til dette er, at de minder meget om C og C++ og er derfor lettere for programmørerne at forstå. En anden grund er deres evne til at blive afviklet på forskellig hardware.
Den normale procedure for at skrive et shader program, er ved først at udvikle en matematisk algoritme, der beskriver den ønskede effekt og derefter oversætte den til enten HLSL eller GLSL. Når koden er komplet vil programmørerne forsøge at kompilere koden til et bestemt "niveau" af grafisk hardware kompatibilitet. I DirectX kaldes disse niveauer for Shader Models og med DirectX 9.0 er man oppe på Shader Model 3.0.
Kompileren vil da forsøge at få shader programmer til at overholde de ressourcemæssige begrænsninger, som er gældende for den hardware, som shaderen er tiltænkt. Det kan f.eks. være antallet af instruktioner, konstante og midlertidige registre eller teksturer.
Hvis det mislykkes for kompileren at gøre dette, må programmørerne modificere koden, så begrænsningerne overholdes eller dele koden op i mindre dele. Det kan betyde at koden bliver kompileret uden fejl og den ønskede effekt opnås, men måske på bekostning af ydelsen. For at optimere ydelsen efter shaderen er blever kompileret, kræver det at man undersøger den kode som kompileren generer og det er både tidskrævende og besværligt.
Smartshader HDs opgave er at minimere antallet af gange, hvor ovenstående problem opstår og derved gøre det muligt at programmere mere komplekser, detaljerede og realistiske effekter. Eksempler på disse effekter er High Dynamic Range, Light Shaft Rendering, Subsurface Scattering, Shoft Shadows og Virtual Displacement Mapping, som alle er beskevet i teknologiafsnittet til vores Geforce tests. Du kan finde et link til en af disse ved at klikke
her.
Hyper Z HD: ATi kører for øjeblikket med et High Definition Gaming tema. Deraf stammer "HD" i Hyper Z HD. I hver quad findes der et Hyper Z HD modul, som består af tre ting, som det også fremgår af illustrationen: Hierachical Early Z Test, Z/Stencil cache og Z Compression & Fast Clear.
Hierachical Early Z Test mekanismen sørger for, at hvis hele den tile som kommer fra setup motoren er occluded (skjult af andre, som ikke ligger så dybt i billedet), bliver den smidt væk. Hvis der kun er dele af en tile, der er occluded smider man disse dele væk, hvis det er muligt. Herefter er mange af de pixels, der var occluded blevet smidt væk, men ikke alle, så man er nødt til at checke dem igen, når de kommer ud af pixel pipelinen. Kort sagt: Hierachical Early Z Test smider en stor del af den scene væk, der ellers ville være dækket af andre dele og man sparer således en masse rendering. Z/Stencil bufferen er blot en buffer som bruges af ovenstående mekanisme. Z Compression sørger for at komprimere det data, der ligger i Z cachen, mens Fast Clear sørger for, at få slettet Z-bufferen meget hurtigt efter hver frame. De ting, som jeg nu har nævnt kender vi egentlig fra tidligere Hyper Z versioner. Eneste forskel fra R3xx til R420 er hastigheden hvormed Hyper Z HD kører. Den er betydeligt hurtigere end Hyper Z III, som vi så i R3xx arkitekturen.
3Dc Normal Map kompression: 3Dc er et kompressionsskema, som skal hjælpe med at sørge for at båndbredde ikke bliver et problem i VPU'en, selvom en udvikler ønsker at presse meget data gennem grafikkortet. Normal Mapping er en forbedret bump mapping, som bruges til at gøre lysvirkninger i en overflade mere detaljerede end dens geometri. Man laver først en model som har en meget høj detaljegrad med en masse polygoner. Herefter laver man den model man egentlig vil bruge i sin applikation. Udfra disse to beregner man den forskel der er og gemmer denne som et Normal Map. I sin applikation kan man nu bruge den simple model og via sit Normal Map udregne lysvirkingen med en pixel shader. Herunder ses et eksempel:
Med 3Dc kan man komprimere disse Normal Maps og dermed enten øge detaljegraden (ved at lave den første højdetaljemodel med endnu flere detaljer) eller øge ydelsen i sin applikation (fordi den nuværende detaljegrad kan komprimeres mere). Med 3Dc kan man komprimere sine Normal Maps med op til 4:1 uden at miste ret meget detalje:
Smoothvision HD: Smoothvision HD er navnet på ATi's nyeste måde at udføre Full Scene Anti Aliasing (FSAA) på. Egentlig har ATi lige siden R3xx implementeret mulighed for at bruge forskellige sample patterns. Med R420 introduceres en ny teknologi som kaldes Temporal FSAA og som er baseret netop på den førnævnte mulighed for forskellige sample patterns. Temporal FSAA bruger forskellige sample patterns på lige og ulige frames i en scene, hvilket gør dem en smule forskellige. Hvis frameraten er høj nok kan det menneskelige øje ikke skille de to frames ad. Det betyder at sampling raten på skærmen effektivt er fordoblet. Man kan ikke se effekten af Temporal FSAA på screenshots for man vil altid fange enten en lige eller en ulige frame. Det er meget åbenlyst hvad idéen bag denne type af Anti Aliasing er, nemlig at snyde det menneskelige øje til at tro at "hakkerne" i billedet ikke er der.
Der er naturligvis også nogen ulemper ved Temporal FSAA, bl.a. skal man have en framerate på over 60 FPS, ellers kan det menneskelige øje se forskel på de forskellige frames og billedkvaliteten vil blive ringere end ellers og ikke bedre, som det var meningen. Hvis frameraten kommer under 60 FPS slås der automatisk over til almindelig FSAA. En anden ting er, at V-sync altid er slået til, når man bruger Temporal FSAA. Dvs. hvis kører benchmarks får man givetvis et lavt resultat. Som det ses af følgende illustration svarer eksempelvis 2xTAA til 4xAA:
Videoshader HD: Videoshader HD gør det muligt for video processing enginen at udnytte de programmerbare pixel shadere i X800 kernen. Dette tillader at shadere kan bruges til at accelere mange forskellige video opgaver, såsom de-blocking, adaptive de-interlacing, framerate conversion, color space conversion og meget mere.
De fleste er ting som kun de færreste brugere kender til, enten fordi de ikke komprimerer videofiler eller fordi processerne kører automatisk. Noget som de fleste af os dog kan nikke genkende til, er det som ATi kalder Fullstream.
Når man streamer videofiler fra internettet, er det tit med en lav bitrate og et dårligt billede til følge. Fullstream er et sæt avancerede filtre, der udfører operationer, der minder om Anti-Aliasing og Anisotrofisk Filtrering - blot til videofiler.
Fullstream analyserer den viste video og påfører de nødvendige filtre for at optimere billedkvaliteten, så brugeren ikke generes af de fejl, der opstår når bitraten er lav.