Ils n'aiment pas Mac OS X: Changement d'opinion...

D'ailleurs le développeur de Unreal/UT, Tim Sweeney a été interrogé récemment sur le P4 (pas G4, hein !
smile.gif
). Il a dit que ça pourrait être un bon processeur à partir du moment où il existera des compilos pour tirer partie de l'unité SSE2 (équivalent de l'altivec).
Mais ça sera pas avant un an !
Il a ajouté qu'aucun développeur de jeux 3D n'ira s'emmerder à faire des optimisations à la main, en assembleur, pour un processeur encore très minoritaire sur le marché.
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par Joey!:

Au cas ou tu ne l'aurais pas remarqué, les programmeurs de jeux n'ont simplement plus le temps d'optimiser leur code.
<HR></BLOCKQUOTE>

Et la version 1.27h de Q3, tu croit que c'est quoi l'optimisation majeur ????

Bon, j'en ai marre d'écrire trois pages à chaque fois, j'ai pas le courage
frown.gif
mais je te dit quand même que ca peut être possible
smile.gif


 
Posté à l'origine par Joey!:
Au cas ou tu ne l'aurais pas remarqué, les programmeurs de jeux n'ont simplement plus le temps d'optimiser leur code.

Bah bonne raison pour les pirater alors .... he he
grin.gif
 
Le cas de Q3 est spécifique. Il se trouve que quelques gars d'idsoftware (dont Carmack) sont intéressés par le mac et mosx et veulent voir ce qu'il a dans le ventre.

En plus Q3 est un jeu qui a une durée de vie très longue.

Ces 2 éléments conjugués se retrouvent sur très peu de titres ...
 
Joey, t'iras dire aux gars d'ID Software que l'Altivec du G4 ne leur sert à rien ... y vont se marrer, te sortir la 1.27 et te montrer la différence ! L'Altivec est capable des mêmes calculs que la carte 3D, et le transfert de données sur le bus se fera sans trop de problèmes parce que justement c'est un bus AGP.
Quand à dire que l'Altivec ne peut servir pour l'audio ou comme modem, je me marre vraiment, vu que justement ce sont des applications pour lesquels il a été prévu (en remplacement d'un DSP prévu à l'origine !). Quand tu penses qu'Atari se servait d'un DSP pour faire de la 3D, que sur Amiga des développeurs se sont servis eux du Blitter (qui normalement ne sert qu'à copier, déplacer des blocs mémoire) ... L'Altivec a beaucoup plus d'utilisations que tu ne le penses. Et la 3D qui n'est qu'un ensemble de calculs MATHEMATIQUES, est parfaitement dans ses cordes. Pour t'en convaincre, va lire les dernières nouvelles d'un certain Maya.
Je le répète, ce n'est pas sur la capacité de calcul du G4/733 avec Ge2MX que le doute repose.
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par HURRICAN:
Joey, t'iras dire aux gars d'ID Software que l'Altivec du G4 ne leur sert à rien ... y vont se marrer, te sortir la 1.27 et te montrer la différence !<HR></BLOCKQUOTE>

D'accord et t'iras dire à ATI et à nVidia que les processeurs spécifiques 3D qu'ils mettent sur leurs cartes servent à rien et qu'il feraient mieux de faire le rasterizing avec l'Altivec...

J'ai pas dit que Altivec n'optimisait pas les jeux: oui les calculs d'OpenGL iront beaucoup plus vite, mais cela influence faiblement le FPS (10% environ), car encore une fois 80% du temps est passé dans le dessin (= le rasterizer de la carte 3D).
Vu que t'as pas l'air de me croire, je te suggères les petits tests suivants:

1) lance Unreal en 800x600 par ex, avec les réglages suivants:
• les textures au minimum
• pas de filtering
• mipmapping
Ensuite relève la FPS, puis utilises les réglages suivants:
• les textures au maximum
• filtering
• pas de mipmapping
Puis, là aussi relèves la FPS. Les différences de réglages entre les 2 ne concernent que le rasterizer de la carte 3D: le processeur n'a pas une opération de plus ou de moins à faire. Alors regarde la différence de FPS et tu vas voir si c'est pas la carte 3D qui compte. Et comme elle ne peut pas tirer parti de l'Altivec...

2) cette fois utilises les memes réglages pour les 2 tests, mais change uniquement la taille de rendu (320x240 -&gt; 1280x1024 par ex). Meme remarque: les calculs à faire par le processeur ne sont pas du affecté par ces différences: seule la carte 3D l'est.

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>L'Altivec est capable des mêmes calculs que la carte 3D, et le transfert de données sur le bus se fera sans trop de problèmes parce que justement c'est un bus AGP.
[...]
Et la 3D qui n'est qu'un ensemble de calculs MATHEMATIQUES, est parfaitement dans ses cordes. Pour t'en convaincre, va lire les dernières nouvelles d'un certain Maya.
<HR></BLOCKQUOTE>

Je vois que tu ne connais strictement rien aux cartes 3D ou aux moteurs 3D. Tu ne sais apparament meme pas quelle est la fonction d'une carte 3D: c'est un rasterizer. point. Le seul intéret du bus AGP c'est le fait que le rasterizer peut accéder aux textures en RAM sans qu'elles soient en VRAM sur la carte 3D: avec une pénalité de performance bien sur (10%).
C'était le but original de l'AGP: la VRAM coutant très cher, cela permettait de diminuer la quantité de VRAM sur la carte.

L'Altivec peut évidemment faire les calculs du filtering par ex (c'est très simple) pour le mapping de textures, mais c'est un non sens qu'il le fasse car il faudrait transferer les texels sur le bus AGP en permanence entre la VRAM de la carte 3D et la RAM... Transfert indispensable vu que la carte 3D ne peut pas faire de rendu dans la zone AGP en RAM: elle doit le faire dans sa VRAM. Et c'est pas du tout la meme chose de transferer des données mathématiques (vertices) vers la carte 3D que de transférer des texels... vu que les vertices sont très petits (environ une trentaine d'octets par vertex).

Tu mélanges absolument tout: les jeux 3D n'ont strictement rien à voir avec Maya: tu peux pas les mettre sur le meme plan: autant meme photoshop en face de Quake 3 alors. Maya n'a pas pour but de faire du FPS.

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Quand à dire que l'Altivec ne peut servir pour l'audio ou comme modem, je me marre vraiment, vu que justement ce sont des applications pour lesquels il a été prévu (en remplacement d'un DSP prévu à l'origine !).<HR></BLOCKQUOTE>

et c'est justement pour ça que Apple équipe les G4 de modems spéciaux dont la compression est assurée par l'Altivec du G4 bien sûr... sans parler des puces audio.

Ex: le géoport d'Apple: c'était justement le processeur qui s'occupait des calcules du modem: quel succès fulgurant d'ailleurs... la vérité, c'est que c'est bien plus simple pour tout le monde de laisser le modem s'occuper de ça. Tout ça pour avoir un processeur plus simple dans le modem et baisser le cout: tu parles, c'est tellement peu cher un modem maintenant: ça n'en vaut meme pas la peine. C'est bien pour ça qu'Apple ne le fait pas.
 
Joey : Et tu crois que tes arguments tiennent ?
Allez, le bus AGP (qui n'est qu'une copie du DMA existant dans les Amiga et les Atari ST), il sert à rien, tout est fait dans la carte. C'est bien pour çà que les cartes PCI sont si lentes. Tu m'expliques, ou plutôt tu expliques à tout le monde, pourquoi ton rasterize est si lent avec un bus PCI ? Pourtant tu affirmes que 80% du temps pris c'est la carte 3D ! Allez, va, on dira aussi que le RamDac n'a rien à voir là dedans, et que les échanges de données avec le processeur sont négligeables.
Quand à Maya, c'est bien connu, comme PhotoShop il fait de la 2D. Je vois même pas pourquoi ils conseillent de prévoir des cartes 3D rapides. Surement pour rasterizer.

Juste un dernier mot. John Carmack lorsqu'il a sorti Doom, a dit qu'il ne tournerait jamais sur Amiga, à cause du mode d'affichage BitPlane au lieu du mode chunky des PC. "Ca prendrait trop de temps de calcul pour convertir de chunky en BitPlane" avait il dit. 8 jours après que le code source ait été rendu public, il y avait des versions nécessitant un simple 68030 qui
était livrées. En tout et pour tout la conversion prenait 10 à 15% du temps, l'affichage 2% et le reste était du calcul.
Il s'était bel et bien planté. Depuis, fort de cette expérience, il a décidé de toujours optimiser le code en fonction de la machine sur laquelle il tourne ...
 
Bon je vais encore argumenter, parce je vais me répéter et répéter Hurrican
wink.gif

ce qui veut donc dire que je usi d'accord avec lui
smile.gif


l'AGP pour allez chercher la RAM (ou alors j'ai mal lu parce que je suis crevard
tongue.gif
) mais bon, à quoi ca sert les 62 ou 64 Mo de VRAM DDR sur la carte dans ce cas ? pour le fun, au pris de la DDR ??
TU croit vraiment à ce que tu dis ?
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par HURRICAN:
Allez, le bus AGP (qui n'est qu'une copie du DMA existant dans les Amiga et les Atari ST), il sert à rien, tout est fait dans la carte. C'est bien pour çà que les cartes PCI sont si lentes. Tu m'expliques, ou plutôt tu expliques à tout le monde, pourquoi ton rasterize est si lent avec un bus PCI ? Pourtant tu affirmes que 80% du temps pris c'est la carte 3D !<HR></BLOCKQUOTE>

Je t'explique ça tout de suite:
C'est tout à fait cohérent avec ce que j'ai dit: une carte PCI est plus lente parce que justement elle doit avoir toutes les textures en VRAM pour être utilisées par le rasterizer, contrairement au bus AGP. Donc les textures doivent être transférées par le bus: et transférer une texture en 1024x1024 32 bits accompagnée des textures de highlighting, bumpmapping et lighting, toutes en 1024x1024 8 bits c'est autre chose que de transférer des vertices. Demande à n'importe qui fait de la 3D si c'est la géométrie du modèle ou ses textures qui prennent le plus de place... et en plus si tu mipmappes tes textures, tu multiplies par 2 la place en VRAM nécessaire.

Les jeux ayant pas loin de 100Mb de textures maintenant (et mipmappée en plus), c'est pour ça qu'il y a une telle différence entre le bus AGP et les bus PCI.

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Allez, va, on dira aussi que le RamDac n'a rien à voir là dedans, et que les échanges de données avec le processeur sont négligeables.<HR></BLOCKQUOTE>

Oui, les échanges processeur-carte 3D ne concernent quasiment que les vertices qui sont des données très très petites, comparées aux textures.
Je ne considère pas les textures comme des données véritablement échangées entre le processeur et la carte, car dans la plupart des cas, elles ne sont pas générées en temps réel.

ex: typiquement aujourd'hui, tu as jusqu'à 20000 triangles par images, ce qui donne environ 5000 vertices (avec strip et et vertex buffers) et des vertices (x,y,w,u,v,a,r,g,b,u2,v2...) de type "float" on arrive à:
5000x8x4/1024=156Kb/frame
à 50FPS, ça nous fait environ 8Mb/s ce qui est un débit ridicule pour un bus AGP ou PCI.

Par contre, les textures, ça ça nécessite autre chose que 8Mb/s, d'ou l'intéret du bus AGP.

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Quand à Maya, c'est bien connu, comme PhotoShop il fait de la 2D. Je vois même pas pourquoi ils conseillent de prévoir des cartes 3D rapides. Surement pour rasterizer.<HR></BLOCKQUOTE>

sauf que c'était pas du tout mon point: je voulais dire que Maya pouvait plus tirer parti de l'altivec que Quake, car il a bien plus de calculs mathématiques.

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Juste un dernier mot. John Carmack lorsqu'il a sorti Doom, a dit qu'il ne tournerait jamais sur Amiga, à cause du mode d'affichage BitPlane au lieu du mode chunky des PC. "Ca prendrait trop de temps de calcul pour convertir de chunky en BitPlane" avait il dit. 8 jours après que le code source ait été rendu public, il y avait des versions nécessitant un simple 68030 qui
était livrées. En tout et pour tout la conversion prenait 10 à 15% du temps, l'affichage 2% et le reste était du calcul....
<HR></BLOCKQUOTE>

Excellente remarque, mais malheureusement plus du tout valable, mais alors plus du tout!
A l'époque de Doom, on faisait du rendu en 320x240 avec des textures 8 bits, bref très peu de données à traiter, donc dans un tel cas, effectivement le rasterizing (ou l'affichage) ne demandait pas trop de calcul et par conséquent, le temps de calcul était plus important.

Mais aujourd'hui, les proportions sont complètement inversées d'ou le 80% en temps de rasterizing.


 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par [MGZ]Toine:
l'AGP pour allez chercher la RAM (ou alors j'ai mal lu parce que je suis crevard
tongue.gif
) mais bon, à quoi ca sert les 62 ou 64 Mo de VRAM DDR sur la carte dans ce cas ? pour le fun, au pris de la DDR ??
TU croit vraiment à ce que tu dis ?
<HR></BLOCKQUOTE>

Je peux te demander la meme chose, car j'ai pas l'impression que tu saches de quoi tu parles (mais c'est normal car je ne pense pas que tu ai jamais vu le code d'un moteur 3D, ou encore en écrit un
wink.gif
)... mon post précédent devrait t'éclairer quand à l'utilité de la VRAM sur la carte justement... et le point que tu soulèves d'ailleurs rejoint mon argumentation en cela que tu montres bien que la VRAM est très utile, est elle a justement des débits bien plus élevés qu'un bus AGP, d'ou le non-intéret de mettre à profit l'Altivec pour faire du rasterizing.

 
D'abord si j'ai déjà vu le code d'un moteur 3D
tongue.gif
maisd non j'en ai jamais programmé
wink.gif
(si tu voit beaucoup de mecs de 16 ans qui ont déjà fait le moteur 3D tu m'appelles
wink.gif
)

Bon déjà une petite erreur dans mon test
smile.gif
c'est 32 ou 64 Mo
smile.gif



Oui la VRAM est très utile c'est normal, et c'est sur que de la DDR à 300 voir 400 Mhz a des débits bien plus élevée qu'un bus AGP sur une carte mère à 133 Mhz
smile.gif


BOn je dois admettre que tu t'y connaît plus que moi
smile.gif
mais l'altivec ne sert p'être pas au rasterizing, mais à soulager le processeur pour tous les calculs autre....
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par [MGZ]Toine:
D'abord si j'ai déjà vu le code d'un moteur 3D
tongue.gif
maisd non j'en ai jamais programmé
wink.gif
(si tu voit beaucoup de mecs de 16 ans qui ont déjà fait le moteur 3D tu m'appelles
wink.gif
)
<HR></BLOCKQUOTE>

Je sais bien, il y a deux ans, c'est pareil, j'y connaissais rien, mais je m'y suis plongé à fond, et maintenant que je connais le domaine, je me suis rendu compte que c'est loin d'être aussi simple que ça n'y parait.

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>mais l'altivec ne sert p'être pas au rasterizing, mais à soulager le processeur pour tous les calculs autre....[/B]<HR></BLOCKQUOTE>

C'est exactement ça: l'Altivec peut considérablement accélérer les calculs 3D fait sur le processeurs, mais malheureusement, dans le cas des jeux (je parle pas de photoshop ou maya), ils sont pas très significatifs dans le framerate. Améliorer la carte 3D, sa VRAM, ou le bus est beaucoup plus intéressant.
 
Oui le bus AGP sert à charger les textures (d'ailleurs une grosse partie de la mémoire utilisé par un jeu, ce sont les textures).

Le type d'xlr8ourmac dit aussi que les chiffres annoncés par MOSR sont fantaisistes pour une MX.
Mais il est possible qu'ils aient été obtenus avec un proto de la future NV20.
 
Et pour ceux qui semblent avoir quelques lacunes sur la manière dont on fait de la 3D en informatique, je leur conseille de lire les articles introductifs sur www.opengl.org et la doc de nvidia.
Ca leur permettra de comprendre les arguments de Joey.
 
je vais essayer de te démontrer que tu as tort. Tu veux à tout prix utiliser une méthode conventionnelle (comme Carmack avec l'Amiga ...), alors qu'il y en a d'autres si on pense plus loin. Comment une carte 3D peut elle afficher un écran Photoshop 1024x768x24 à 95Hz ? Pourtant le dessin est toujours là, l'affichage aussi. La différence c'est les calculs ! Seulement, là, ils sont fait en grande partie à l'extérieur de la carte ! Car c'est dans l'appliquage des textures que réside la perte de temps. Or cet appliquage est une fois de plus qu'un calcul mathématique. Si ATI, NVidia et autres Matrox mettent des puces spécialisées, il faut aussi dire qu'elles sont nettement moins couteuses qu'un Altivec ! Il est également évident que l'Altivec n'est pas aussi performant qu'une puce 3D spécialisée, mais 4 Altivec (même s'ils perdent 10 à 20% de temps pour communiquer)peuvent rivaliser. Si ton code génère une image sur deux par la carte, puis par les unités de calcul + PPC, tu dois je pense arriver à quelque chose de rapide. Ce qui veux également dire qu'une carte 3D rapide fera aussi bien sinon mieux que ce couple, puisque les Altivec ne pourront plus rivaliser. Tout est question d'équilibre et de répartition.
Et je reviens au test. Comment une carte qui en affichage ne peut atteindre 150Hz dans la résolution indiquée, peut avoir tourner à 150Hz ? Moi je dis qu'il y a un loup quelque part.
 
Ah oui je voulais juste ajouter une chose à propos du bus AGP. S'il a été développé et copié sur le DMA, c'est pas par souci d'économie, mais parce qu'il a un avantage considérable. Il permet surtout d'accèder à la mémoire directement, soulageant le processeur, et augmentant du coup les débits possibles !
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par HURRICAN:
je vais essayer de te démontrer que tu as tort. Tu veux à tout prix utiliser une méthode conventionnelle (comme Carmack avec l'Amiga ...), alors qu'il y en a d'autres si on pense plus loin. Comment une carte 3D peut elle afficher un écran Photoshop 1024x768x24 à 95Hz ? Pourtant le dessin est toujours là, l'affichage aussi.<HR></BLOCKQUOTE>

Aucun rapport.

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>La différence c'est les calculs ! Seulement, là, ils sont fait en grande partie à l'extérieur de la carte ! Car c'est dans l'appliquage des textures que réside la perte de temps. Or cet appliquage est une fois de plus qu'un calcul mathématique. Si ATI, NVidia et autres Matrox mettent des puces spécialisées, il faut aussi dire qu'elles sont nettement moins couteuses qu'un Altivec ! Il est également évident que l'Altivec n'est pas aussi performant qu'une puce 3D spécialisée, mais 4 Altivec (même s'ils perdent 10 à 20% de temps pour communiquer)peuvent rivaliser. Si ton code génère une image sur deux par la carte, puis par les unités de calcul + PPC, tu dois je pense arriver à quelque chose de rapide.<HR></BLOCKQUOTE>

Je vois que tu n'as rien compris à ce que j'ai expliqué en détail dans mes posts précédents. Je vois que tu ne sais pas du tout comment fonctionne une carte 3D et quelle est son but et que tu n'as aucune idée du nombre de texels transférés dans une carte 3D.

Je te laisse donc montrer à toute l'industrie du jeu et des cartes 3D, que toutes les dernières innovations ne servent à rien, et que vive le rendu software avec l'Altivec et les accès VRAM super rapide avec le bus AGP bien sûr...

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Et je reviens au test. Comment une carte qui en affichage ne peut atteindre 150Hz dans la résolution indiquée, peut avoir tourner à 150Hz ? Moi je dis qu'il y a un loup quelque part.<HR></BLOCKQUOTE>

Quels que soit le FPS dans l'ordinateur, celui à l'écran (le vrai FPS: celui vu par l'utilisateur) sera obligatoirement un multiple inférieur ou égal de la fréquence de raffraichissement: ex pour un écran 75Hz, le FPS ne peut être que de 75, 37.5, 18.75... rien d'autre. Et on arrondie toujours au plus bas: par exemple, si le FPS du jeu est de 50, à l'écran, on aura du 37.5.

C'est obligatoire vu que le contenu de la VRAM est envoyé à l'écran que 75 fois par seconde. Donc meme si tu raffraichis la VRAM 200 fois par seconde, tu n'auras toujours que 75 FPS à l'écran.

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Ah oui je voulais juste ajouter une chose à propos du bus AGP. S'il a été développé et copié sur le DMA, c'est pas par souci d'économie, mais parce qu'il a un avantage considérable. Il permet surtout d'accèder à la mémoire directement, soulageant le processeur, et augmentant du coup les débits possibles !<HR></BLOCKQUOTE>

Il y avait déjà du DMA dans les Macs, avant l'AGP. Et meme si l'AGP a des débits plus rapides que le PCI, l'un des buts principaux était l'économie de VRAM sur les cartes. Sinon tu penses qu'il y aurait autre chose que des cartes graphiques sur les bus AGP.
 
Joey, si Altivec ne change rien (ou presque) dans l'affichage 3D des jeux, alors réponds moi simplement à cette question: Comment se fait-il que la mise à jour 1.27h de Quake 3 nous permette d'atteindre une vitesse d'affichage bien plus haute sur des G4, et que, DROLE DE COINCIDENCE, cette mise à jour apporte surtout l'optimisation AltiVec???
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par Joey!:

Aucun rapport
<HR></BLOCKQUOTE>

Tu crois que j'ai des lacunes, mais 1) tu te trompes, moi aussi je suis développeur ... et je considères en lisant ta réponse que tu en as des lacunes 2) Tu n'as pas répondu à la question, pour ne pas y répondre.
Je la repose donc : pourquoi un affichage '2D' peut il être bien plus rapide qu'un affichage '3D' ?
Parce que la carte n'a aucun calcul à faire, et quelle se contente d'afficher, un point c'est tout. Si toute la partie 3D, jusqu'au texturage POUVAIT se faire plus rapidement en externe, ta carte ne servirait à rien d'autre qu'à afficher !

Quant à démontrer à l'industrie 3D que leurs cartes ne servent à rien, tu n'as une fois de plus pas lu mon message, ou tu l'as lu de travers. Pour la relation FPS/Hz il en va de même, je n'ai jamais dit le contraire, mais simplement dit que la carte ne pouvait atteindre ce minimum !
 
Bon j'arrête de poser des questions parce que ca va jamais s'arreter sinon
smile.gif


mais juste deux petites quand même
smile.gif


1) la même que HeavyFighter
smile.gif


2) Ou on trouve de la doc pour tout ce qui est 3D, openGL et tout et tout, en anglais ou en francais ( de préférence en francais, mais .....) et autre que sur Opengl.org ?