Passons au passé. TBDR - la puissance que nous sommes

Ouais, ces gars-là!


Imagination Technologies est l'une de ces rares personnes à avoir prouvé que dans ce monde, vous pouvez certainement exister dans deux entités à la fois: à l'ombre et dans le profit. Si quelqu'un sait comment optimiser le rendu d'une scène 3D, Kristof Beets en sait toujours plus. Au cours des "dernières années", l'homme était le visage de PowerVR (une division d'Imagination Technologies engagée dans le développement de puces graphiques 3D) et nous a expliqué comment, avec quelques personnes, il a trouvé une nouvelle façon de rendre. Dans les brochures qui parsemaient chaque examen des cartes vidéo en fonction de leurs puces, on pouvait toujours trouver une explication très grossière de la méthode de rendu traditionnelle et de son évolution brillante - le rendu des tuiles, qui a tellement tonné en 2001 que ... vous ne l'avez pas entendu? Mais c'était bruyant !

Pipeline 3D tel qu'il était


Aujourd'hui sur la table d'opération, nous avons ... qui pensez-vous?



PowerVR série 3 ! Oh oui, nous allons l'ouvrir correctement, mais d'abord un peu d'histoire. Au moment où il est entré sur le marché, il a dû rivaliser avec des géants tels que l' ATI R100 et NVIDIA Giraffe 3 . Ces décisions étaient sérieuses, mais PowerVR n'allait pas courir pour les mégahertz. Selon PowerVR, les deux dessinent des graphiques 3D avec la méthode traditionnelle non prometteuse établie , ou cela pourrait être appelé rendu en mode immédiat . Pour comprendre comment c'est, il va falloir perturber un tel concept de pipeline graphique (ci - après dénommé pipeline 3D ).
Pipeline 3D?
! , …

3D- - . : , ? 3D- (3-Dimensional Modelling) ( ), : xyz . (space), . - ,- . , , - …

, () () 3D- — . :


3D- , .

, , ( ) (3D-). 3D- — 3D- (, ).
, 3D- , , 3D-, .

() . 25 ( FPS — Frames per Second), , .

: VSync, fps . , HDD, CPU RAM. — , FPS. Unreal 3D-, , , , .
- FPS = 60, , FPS = 25. 60 , FPS > 60. , ;)


Pipeline 3D classique à travers les yeux de PowerVR

Eh bien, revenons à notre rendu en mode immédiat du bétail (ci-après - IMR ). Au cours des années de son existence sur le marché, les cartes vidéo PC PowerVR nous ont donné une telle coupure du pipeline 3D classique utilisé dans les cartes vidéo IMR :

image

Si vous croyez le schéma, le pipeline 3D classique est exactement le suivant :
L'application génère un cadre avec des polygones dans la RAM et le donne à la carte vidéo pour manger. Chaque polygone dans gpu est d'abord tramé et texturé, et seulement alors il y a une vérification pour le chevaucher avec un autre polygone dans la scène. Autrement dit, il s'avère que nous pouvons d'abord préparer un arbre complexe dans notre mémoire, puis préparer la même personne complexe, et seulement alors réaliser qu'une personne couvrira presque complètement cet arbre entier. Oui, l' IMR est en quelque sorte inefficace. Il se révèle à découvert .

Ce que PowerVR offre

Et PowerVR nous propose cette année: " Réfléchissez avant de commencer à rendre! ".
Cela semblerait si simple! Nous avons juste besoin d'échanger les deux premières étapes de l'image.

image

Mais derrière tout cela se cache un gros problème: à cette époque, l' ensemble du pipeline 3D était câblé dans les puces du matériel (de la géométrie à la sortie du framebuffer). Par conséquent, PowerVR dans leurs puces a radicalement changé le pipeline 3D, tout en inventant leur propre méthode de rendu: le rendu différé basé sur les tuiles !!! Le mot - clé différé , car il y avait, par exemple, des cartes vidéo Intel GMA qui utilisaient le rendu de la zone Coined , qui est essentiellement également basé sur les tuiles.

Intel utilise un concept similaire dans ses solutions graphiques intégrées. Cependant, leur méthode, le rendu de zone inventé , n'effectue pas la suppression totale de la surface cachée (HSR) et la texturation différée, gaspillant ainsi le taux de remplissage et la bande passante de texture sur les pixels qui ne sont pas visibles dans l'image finale.
...
en.wikipedia.org/wiki/PowerVR

Et en fait...


... bien sûr, ce n'était pas tout à fait ça. À savoir:

  1. (1995 — 2000 .) IMR TBDR , . 2001 PowerVR, , . IMR- , , , , 3D- . , , , z-buffer'.
    2001 , HyperZ ATI Lightspeed Memory Architecture NVIDIA. , overdraw , !

  2. , , PowerVR . 3D- IMR (. 3D- PowerVR) , 2 ( NSR). 2001 (ATI R100, NVIDIA 3) , « » 3D-.
    , TBDR !


Pour les raisons ci-dessus, PowerVR est à nouveau tombé dans l'ombre et leur sort a été dans un autre segment (bonjour aux propriétaires de l'iPhone). Mais de quoi la puce PowerVR Series 3 était-elle vraiment capable, les cartes sur lesquelles nous ne sommes jamais parvenus?


Du coin de l'œil


En ce qui concerne les raretés comme les cartes PowerVR, vous devez vous contenter de l'arrachement. Autrement dit, il n'y aura pas de gars sans torsion comme Videologic Vivid! ou Hercules 3D Prophet , mais il y aura, par exemple, une telle chose: Sur la photo, il y a une carte vidéo AGP SUMA Platinum K2 sur la toute dernière puce de PowerVR publiée dans le segment PC - PowerVR Series 3 . Toutes ces cartes ont été faites selon le même modèle de référence, mais sur ce coréen, il n'y a pas d'inscription PowerVR, à partir de laquelle les ignorants pourraient passer. Le refroidisseur ici est d'Asus, car toutes ces planches avaient des refroidisseurs très bruyants à profil bas, ce qui leur a rapidement ordonné de vivre longtemps. De plus, maintenant tous les détails sur la carte sont en place :) Sur la carte, j'ai mis à jour le dernier BIOS .

image







Il semble que la carte ne soit pas loin (voire pas du tout) de 5500 vaudou: tout de même 350Mtexels, 64 mètres de mémoire SDR, 2 pipelines de pixels, DX6 (et, par conséquent, l'absence totale de shaders), tout de même AGP2x avec bande latérale (et sans brioches) ... mais il semble seulement .

Plus près du cœur


image

La puce PowerVR Series 3 elle-même est née en 2000 . C'était déjà le troisième phénomène (omettons la révision) pour le peuple, qui pour la première fois a couronné quelque chose. Apparemment, la puce a eu un tel succès qu'elle a pu hériter une fois de plus de l'histoire déjà en 2004: une certaine société Pixel Perfect a fait une carte dessus (d'ailleurs, selon le design de référence et encore avec un refroidisseur, qui est déjà parti et, oui, ce a également dû être réparé). Son autopsie a donc montré que la puce n'était pas du tout PowerVR Series 3 . Alors, asseyez-vous, ici, vous devez parler du triangle des Bermudes désormais légendaire: Imagination Technologies - PowerVR - STMicroelectronics

image

. Ce triangle était certainement là, mais aucun des nôtres ne l’a rencontré, et maintenant ce n’est définitivement pas le cas. La légende raconte que dans ces années PowerVR n'était pas du tout une division d'Imagination Technologies, mais simplement une marque (dont ils étaient propriétaires) pour un tas de technologies. Eh bien, le célèbre STMicroelectronics a acheté une licence à Imagination Technologies et riveté des puces avec ces innovations à leurs capacités. Parce qu'Imagination Technologies n'avait pas ses propres installations. Il est même difficile de dire lequel des deux a réellement trouvé le nom KYRO (mais on peut affirmer qu'il s'agit d'un dérivé du Caire (Le Caire)). Eh bien, spécifiquement, cette puce STG4500-X (chez les gens ordinaires de KYRO II ) est la PowerVR Series 3 .
Eh bien, c'est, comme vous l'avez bien compris, il y a eu au moins une autre incarnationPowerVR Series 3 - STG4000-X (ou KYRO I ), qui était essentiellement identique à KYRO II, ne fonctionnait qu'à une fréquence inférieure ...

... Mais les entrailles de KYRO II sont déjà sur la table et se figent:

  • La puce n'a que deux pipelines de pixels, mais ils fonctionnent toujours, donc peu importe si le multitexturing est activé ou non dans le jeu. Ainsi, les Mpixels ici sont égaux aux Mtexels ( oui, comme dans le vaudou ;)).

  • , . , — , .
    , Tile Based Deferred Rendering ( — TBDR), . , :

    … FPS . ? TBDR — 3D-, . ? ( IMR-), KYRO, TBDR, (display lists). KYRO , , , , . .

    ...
    Kristof Beets TBDR:

    , , PowerVR KYRO (), 1632px 3216px 32x32px .. . PowerVR KYRO tile-buffer . Tile-buffer , . 3D- :

    1. Tile Binning (Sorting).
      . , ( — ) , (Z) . KYRO .

      image

      . , . tile-buffer', , , . tile-buffer' . .

      image

    2. The Hidden Surface Removal Algorithm
      . , , , ( Z). , , ( ). , , , , , .
      , tile-buffer' №43. , , №43. . Z ( , ) , . tile-buffer', , - , , ( Z). , .

      image

      , . (-___) . , , tile buffer . PowerVR .

    3. Rendering
      , . Display List Rendering:

      image

      KYRO , , PowerVR.
      1 ( 60)




  • , PowerVR 8 , , . 2001 , , , , , EMBM. , , , ? , , , , , TBDR, ?

  • OGSS super-sampling anti-aliasing 4x, , PowerVR . , , - . , 16xAF , ?

  • , ? , , KYRO II AGP4x , , , , . , 5 .


Mais ici, vous regardez, regardez et ... ne trouvez pas. C'est vrai, hélas et ah, Transformation matérielle et éclairage (ci-après - HW T&L ) n'est pas là non plus. Et voici pourquoi (coupure de la FAQ des archives en ligne de powervr.com ):
KYRO et T&L

“Pas de T&L matériel? Tu blagues! "

En effet, le matériel KYRO et KYRO II ne prend pas en charge le T&L matériel. Bien que ce choix puisse surprendre, cette décision a de bonnes raisons.

The truth is that most games available at the moment are fill-rate limited. As frame rate and resolution increase the graphic hardware reaches a point where it cannot transfer data as fast as the CPU would like to. This is the famous memory bandwidth problem. While the graphic hardware struggles, the CPU is idle waiting for the next frame to finish rendering. Why waste this precious CPU time when it could be used to handle transformations? As an example, consider a game at 1280x1024x32 resolution running at 60 frames per second. We’ll assume a depth complexity of 3 for this game, although this figure could easily be higher as games get more complicated. The fill-rate requirement for this game is 1280x1024x4x60x3 = 943 Mpixels/sec. This figure is at least twice the real fill-rate of other hardware, which means the game is fill-rated limited. Quake 3 Arena is fill-rate limited in this situation.

KYRO II a été conçu pour être un composant standard et inclure une unité T&L coûterait non seulement plus cher mais aussi n'améliorerait pas les performances dans la plupart des cas (en fonction des processeurs et des jeux). Il y aura un moment où le T&L matériel améliorera considérablement les performances, mais ce n'est toujours pas le cas actuellement. Si un jeu est déjà limité en taux de remplissage, l'ajout de T&L matériel ne le fera pas fonctionner plus rapidement!

Eh bien, si Nvidia a décidé d'accélérer la partie géométrique du pipeline 3D, PowerVR a accéléré le reste .

la mise en oeuvre


J'ose vous plaire: KYRO est formé à Windows XP! (2001, après tout, il est temps que Longhorn soit déjà). J'ai donc fui le Millennium Tube dans la peur! Pour lequel il a reçu une opportunité à part entière de surveillance OSD dans les jeux via le nouveau MSI Afterburner , ainsi qu'une interface humaine et la stabilité du système d'exploitation. Certes, vous ne pouvez plus sortir de l'écran bleu, c'est, bien sûr, un inconvénient ...

Néanmoins, il n'y avait pas de bois de chauffage intégré à Windows pour KYRO. Mais d'un autre côté, PowerVR en avait deux: la dernière et la dernière bêta ( tout comme 3dfx, oui ... ). Voici à quoi ces derniers ressemblent:

  • Sur l'onglet principal, il y a overclocking :)



  • OpenGL avec bretzels



    Qui n'a pas compris, F1




  • Direct3D avec des petits pains



    F1





Par l'abondance de petits pains et de bretzels, il devient évident que TBDR ne va pas bien avec les jeux. Mais les développeurs de bois de chauffage ont déjà pris soin des plus populaires. Oui, c'est vrai, dans les pilotes, vous trouverez certainement un fichier avertissant Windows que l'application porsche.exe aura besoin d'un chignon (et d'un bretzel!), Mais pas que:



dans la dernière version bêta, il y avait plus de 100 applications (et jeux) ...
... Mais, malheureusement, dans les merveilleuses Arabian Nights à droite du sabre, il semble y avoir un menu:



Ici KYRO, vous ne pouvez pas apaiser avec des petits pains; et il aurait pu y avoir beaucoup de tels jeux? Et pourquoi: à l'aube de l'essor de DirectX en tant que norme de facto, de nombreux développeurs ont mis en œuvre les techniques de rendu 3D les plus folles. Alors quoi, ça a marché? Oui, sur les cartes IMR, dont le pipeline 3D n'a pas subi de modifications depuis sa naissance jusqu'en 2000. Mais KYRO avec son TBDR est encore mieux à utiliser dans les jeux au moins de l'ère DirectX6.

En plus de cela, le ski ne marche pas ... Étant donné que mes deux cartes sont après réparation, une avec un BIOS cousu et la seconde avec un BIOS personnalisé de 2004, probablement la seconde. Néanmoins, les mêmes problèmes sur les deux cartes: vous définissez une résolution, vous en obtenez une autre (et laquelle dépend de la version du bois de chauffage). Donc,Je ne pouvais pas définir 1280x1024 en 3D sous aucune condition sur aucune des cartes.

Niveau d'application




ATTENTION, configuration:

Mo: Gigabyte 6vtxe (chipset Apollo Pro133T)
CPU: Pentium 3-S 1.4Ghz / 512Kb / 133FSB
RAM: 3x256Mb PC133
HDD: UDMA-5 sain avec un cache de 2Mo décent et 5400RPM
WinXP SP3
Video: PowerVR KYRO Video: IIV Powery

IMPORTANT:
  • Nous examinerons Deus Ex , pour des raisons de justice (enfin, afin qu'il puisse être comparé avec les précédents critiques). Cependant, sachez qu'en raison de l'architecture de la puce (TBDR), les résultats, par exemple, dans Quake 3 seront complètement différents en termes de performances. Cela est en grande partie dû à la particularité des jeux et de leurs moteurs: quelque part un énorme overdraw (2-3) et un multitexturing x4, et quelque part juste un énorme tas de polygones, mais presque aucun overdraw.
  • Paramètres graphiques dans le jeu: couleurs maximales , toutes sortes d'éclairs trilinéaires et volumétriques là-bas!
  • Paramètres de bois de chauffage ... eh bien, nous allons expérimenter!
  • Il est inutile d'overclocker une carte ; ces cartes n'overclockent pratiquement pas (encore une fois, en raison de son architecture).


Alors, allons plus vite par la technologie ...

API

  • Direct3D. , DirectX7. , DirectX6, , - , HW T&L ( 3dfx, ...). - .



    , 5, , , . :



  • OpenGL. : ICD. — ! , :



    - .

  • PowerSGL Direct. ,- PowerVR, :

    Infinite planes effects were not part of Open APIs and full capabilities of PowerVR can be exploited only through proprietary SGL. The API also supported data instancing to save memory by avoiding duplicates of materials, transformations and objects.

    vintage3d.org/pcx1.php

    KYRO , , Infinite planes , data instancing OGL / D3D.

    SGL2.dll ( !). , PowerSGL Direct2 ( , : SDK ). , PowerSGL SGL.dll, , . Unreal ( SGL):



    SGL.dll(et fichier d'accompagnement) du bois de chauffage pour PowerVR Series 2 - à peu près le même résultat. Il s'avère que PowerSGL Direct a été rejeté, mais pourquoi alors terminer le PowerSGL Direct 2 ? Quoi qu'il en soit, si vous voulez jouer au magnifique Tomb Raider - achetez PCX2 ...


Coloré

En plus de la prise en charge complète de la couleur 32 bits et même de la possibilité de travailler en 24 bits ...



... KYRO a une caractéristique architecturale intéressante: l'ensemble du pipeline 3D fonctionne tout le temps en couleur 32 bits. EST TOUJOURS. Cela signifie deux choses:
  1. Lorsque vous passez en couleur 16 bits, cela ne deviendra pas plus rapide.
  2. La qualité d'image en couleur 16 bits est encore plus élevée que celle du 3dfx loué avec sa couleur 22 bits. Et tout cela parce que, selon les canons de TBDR, la conversion d'une trame de 32 bits en 16 bits ne se fait qu'une seule fois - en sortie. Alors que l'IMR en mode 16 bits, à chaque nouveau chevauchement, par exemple, texture en texture, la texture est convertie de 32 bits en 16 bits.

Néanmoins, je propose de mener un mode de vie sain pour vivre dans le monde coloré de Trukolor plutôt que d'attraper des défauts et des distorsions. Après tout, c'est gratuit! (au fait, les clichés sont enfin cliquables ) La différence de vitesse (en dessous du texte FPS blanc), notez que c'est rare.







Le plus intéressant. Performance

Après toute cette conférence, une personne simple pose une question simple: "est-ce que tout cela pourrait être plus rapide que les Girafes avec les Radeon?" En fait, si vous n'entrez pas dans les détails, tout dépend de l'affaire :) Je vais me citer:
En raison de l'architecture de la puce (TBDR), les résultats, par exemple, dans Quake 3 seront complètement différents en termes de performances. Cela est en grande partie dû à la particularité des jeux et de leurs moteurs: quelque part un énorme overdraw (2-3) et multitexturingx4, et quelque part juste un énorme tas de polygones, mais presque pas de overdraw.


Anticrénelage pleine scène (FSAA)

Nettoie les échelles sur les lignes en pente. Cette puce implémente trois types de FSAA en utilisant la méthode OGSS:



Mais même ici, tout n'est pas facile. Comme je l'ai dit de manière responsable ci-dessus, la configuration de 1280x1024px sur KYRO II n'est pas possible (en fait, cela s'avère beaucoup plus). Au début, j'ai décidé que, dans ce cas, vous pouvez vous contenter d'une résolution de 1280x960, car une hauteur de 64 pixels n'est pas la plus grande perte.
Cependant, une surprise m'attendait ici . Il s'avère que dans les résolutions horizontales élevées (lorsque l'horizontale est supérieure à 1024 px), les options FSAA 2x1 et 2x2 (c'est lorsque l'image est doublée horizontalement) ne fonctionneront pas. Parce que la puce ne sait pas travailler avec des résolutions horizontales supérieures à 2048 px.

Donc, pour commencer, voyons comment fonctionne le FSAA dans la résolution de 1024x768 . Sur l'image, regardez le repliement (échelle) des pieds verticaux des chaises sur la table et le repliement des lignes horizontales sur les lampes (ou sur la table): Peut - être que certaines personnes particulièrement attentives ont remarqué que la FSAA horizontale supprime les escaliers verticalement , pas horizontalement. Et vice versa. Comme on me l'a dit ci-dessous (merci,









MrShoor): FSAA horizontal augmente la résolution horizontale de l'image et, par conséquent, supprime les échelles verticales.

Ce qui peut être noté, c'est que (quoi?) Contrairement à de nombreuses rumeurs de la FSAA, le nifiga n'est pas gratuit et le FPS diminue considérablement avec l'augmentation du degré. Autrement dit, tout est comme toujours ici: Voulez-vous? Payer! C'est le premier.

Et deuxièmement, en fait, la qualité de cette même FSAA, je vous le dis ... comme à travers du verre sale. Ce n'est toujours rien sur les plans, et vous le tirez sur tout l'écran, vous comprendrez immédiatement (aujourd'hui chaque navigateur a un chariot). De plus, comme vous le comprenez, vous pouvez lisser un côté ou les deux; 2 échantillons des deux côtés (comme 3dfx) ne peuvent pas être repassés. Non, néanmoins ils disent la vérité, OGSS est loin de RGSS, qui était utilisé dans vaudou5.

Filtrage anisotrope (AF)

C'est le développement du trilinéaire. Vous ne sélectionnez pas un degré, c'est juste :) Pour comprendre ce qu'il fait, regardez le motif répétitif sur le mur de gauche et comment il est clairement visible avec une distance croissante de la caméra du joueur (oui, un exemple sombre, vous devez regarder sans éclairage): qui veut comprendre comment elle (AF) le fait, lit ici .







FSAA + AF

Bien sûr, vous et moi devons comprendre comment la carte suivra tout cela. Et ici:

1024x768 . Ici, vous pouvez toujours faire une FSAA complète, pour ainsi dire. Essayons. 1280x960 . Ici, nous pouvons déjà faire FSAA uniquement verticalement. Il s'avère que KYRO II ne tolère pas AF + FSAA - personne n'est intéressé à regarder un diaporama. Eh bien, comme la qualité de la FSAA peut être jugée «mauvaise», il est proposé de célébrer la joie d'augmenter la résolution et de l'oublier pour toujours. En haute résolution, vous pouvez activer la mise au point automatique, mais ce sera lent. Donc, mesdames et messieurs, dans Deus Ex (et jeux similaires), KYRO II semblait vous offrir si discrètement de vous contenter du trilinéaire et d'attendre la prochaine puce avec le bloc HW T&L. Mais personne ne l'attendait. TBDR s'est donc terminé sur PC.





















Bon tu sais ...


Si nous rejetons l'architecture de KYRO elle-même - pour l'étudiant moyen, c'était la carte vidéo la plus ordinaire, qui n'avait pas d'approximations obscures, couleur 22 bits, API interdite et autres conneries, pour lesquelles il y a aujourd'hui une occasion d'assembler un vieil ordinateur. Chez KYRO, tout était:
  1. Extrêmement simple : couleur honnête 32 bits, prise en charge complète de DX6, émulation DX7.
  2. Extrêmement rapide : il n'y avait rien à disperser
  3. Et extrêmement bon marché :)


Pour l'argent qui était alors demandé pour les cartes sur le KYRO II, c'était un bonbon. Oui, avec une garniture aigre-douce, mais c'était toujours mieux que l'énorme assortiment présenté maintenant par deux sociétés bien connues.
Il ne sera pas hors de propos de noter que le sort de PowerVR dans le segment PC est à bien des égards similaire au sort de 3dfx ( vous vous souvenez même de l' achat mourant de Gigapixel ). Les mêmes innovations stupéfiantes, les mêmes problèmes et, par conséquent, les mêmes retards de sortie. En conséquence, quitter le marché et la mort d'un autre api fermé (PowerSGL).

En général, au final, tout se résume au fait qu'on peut dire exactement deux choses:
  1. Tout ce qui est nouveau est mal enterré.

    , api api ( , ) — (, , !). ! , !
  2. !

    PowerVR . , 2007 : , Deferred Shading. , , PowerVR. IMR.


Remerciements


  • Je m'incline devant deux ingénieurs du même bureau de Saint-Pétersbourg qui ont aidé avec les pièces et les ont même soudées pour moi! Sans eux, il n'y aurait tout simplement pas de critiques sur Voodoo5 et Kairo!

  • L'administration de old-games.ru pour la possibilité de télécharger rapidement et gratuitement 20 jeux en vrac juste pour vérifier la structure du fichier et l'exécuter une fois.

  • Découvreur d'horizons et déchirures de couvertures - Communauté VOGONS . Pour un tas de recherches et de développements uniques!


... à confirmer ...

Références
PowerVR VOGONS
KYRO
KYRO II

PowerVR ( !)
PowerVR ( ).

3D-.
Kristof Beets', PowerVR.
vintage3d.org — 3D

Source: https://habr.com/ru/post/fr381895/


All Articles