Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Fri Mar 29, 2024 3:09 pm

All times are UTC




Post new topic Reply to topic  [ 1 post ] 
Author Message
PostPosted: Sat Jan 15, 2005 10:32 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Cette fin de semaine nous a appris que les versions windows des applis Raydium posaient problème sur certains Pentium 4 :
J'ai compilé un version windows du "Bomberfrag" qui est en cours de développement de facon à ce que Seldaek, qui a commencé à modéliser les persos du jeu, puisse se rendre compte du rendu de ses modèles. Sauf que le jeux n'affichait sur sa machine qu'un écran jaune. Après analyse des logs, il est ressortit qu'il semblait y'avoir un problème du coté des timers, mais sans qu'on puisse en savoir plus, puisque Seldaek habite loin :)
RyLe s'est chargé de trouver des machines qui posaient problème parmis celles qu'il voit passer tout les jours, et a réussi à confirmer qu'il s'agissait bien d'un problème avec les P4 récents (3 Ghz, a priori). Cela nous a permis de trouver une telle machine pour effectuer (enfin) des tests plus précis pour cerner le problème et le corriger, et c'est donc la machine de Flex qui a joué le cobaye. Après quelques heures d'acharnement, Raydium dispose maintenant d'un système pour "ajuster" sa lecture des timers du CPU et éviter le problème des P4, et ceux qui pourraient arriver avec les futurs CPU.

Pour ceux qui souhaitent des détails, le problème est en fait simple : Raydium utilise RDTSC (Read Timestamp Counter) pour avoir accès à un timer très précis situé dans le CPU lui même. La facon dont Raydium traite cette information fait qu'il dispose en moyenne de 20 minutes avant que ce compteur ne boucle. Mais les fameux P4 ont complétement changé la fréquence de ce compteur qui est excessivement plus précis sur ces CPU, à tel point que le compteur boucle environ chaque seconde ! La plage est trop faible pour les timers de Raydium, qui n'arrivent plus à "planifier" sur plus d'une seconde.
La correction a consisté à tester la fréquence du compteur au lancement de Raydium, de facon à déterminer un "diviseur" sur les valeurs lues ensuite avec RDTSC. La correction a fonctionné du premier coups sur deux des machines qui étaient concernées par le problème (Flex et Seldaek).

Notez que Linux n'a pas du tout été affecté par ce problème, sa lecture du RDTSC étant normalisée, elle ...

Ref : MSDN : QueryPerformanceCounter


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 22 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group