« Réunion du 03-05-2022 » : différence entre les versions
Aucun résumé des modifications |
|||
(23 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 2 : | Ligne 2 : | ||
= Introduction= | = Introduction= | ||
[11:02] Kayaker Magic : Le voilà ! | [11:02] '''Kayaker Magic''' : Le voilà ! | ||
[11:03] Andrew Hellershanks : Bonjour, tout le monde. | [11:03] '''Andrew Hellershanks''' : Bonjour, tout le monde. | ||
= Problème de script : Rezzeur = | = Problème de script : Rezzeur = | ||
[ | * [http://opensimulator.org/wiki/OSSL_Constants#osGetRegionStats.28.29 osGetRegionStats()] : fonction OSSL qui renvoie une liste de float représentant un certain nombre de statistiques sur la région. Renvoie 21 statistiques simultanément dont STATS_SIM_FPS, STATS_PHYSICS_FPS et STATS_SCRIPT_LPS. | ||
*Yeti : version d'OpenSimulator (0.9.2.0 Yeti) | |||
[11:03] Kayaker Magic: | [11:03] '''Kayaker Magic''' : J'ai un problème aujourd'hui : Quelqu'un sait-il ce qui peut causer ce message d'erreur sur la console opensim ? | ||
[11: | [11:03] '''Kayaker Magic''': 10:54:41 - [WATCHDOG]: Timeout detected for thread "Heartbeat-(Test_Bed_3x3)". ThreadState=Running. Last tick was 21253ms ago. | ||
[11:04] | [11:04] '''Kayaker Magic''' : J'ai un script qui peut verrouiller une région et qui provoque ce message une minute plus tard. TOUT LE TEMPS | ||
[11: | [11:04] '''Ubit Umarov''' : le lit est très bon et le cœur bat en s'endormant. | ||
[11:05] | [11:05] '''Kayaker Magic''' : Mais j'essaie de faire une version plus petite du script, et l'erreur ne se produit pas. Du moins pas encore... | ||
[11:05] | [11:05] '''Ubit Umarov''' : les scripts peuvent provoquer ça, mais c'est difficile à dire. | ||
[11:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : | [11:05] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Tu viens de répondre à ta propre question | ||
[11: | [11:05] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Habituellement, les scripts chargés ou mal écrits consomment une tonne de mémoire. | ||
[11:06] | [11:06] '''Kayaker Magic''' : Le script fonctionnait parfaitement sur les anciennes versions d'OpenSim. L'erreur a commencé avec les versions récentes. | ||
[11:06] | [11:06] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Cependant, cela fonctionne | ||
[11:06] | [11:06] '''Kayaker Magic''' : Non, ce script n'est pas mauvais. Il a bien fonctionné pendant des années. | ||
[11: | [11:06] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Indices de défaillance potentielle de la file d'attente de mise à jour des scènes dans long terme. | ||
[11: | [11:07] '''Kayaker Magic''' : Les tests sont difficiles, chaque test nécessite généralement de redémarrer ou d'attendre 2 minutes pour que la région récupère. | ||
[11:08] Andrew Hellershanks: | [11:08] '''Andrew Hellershanks''' : Oui, vous retirez des éléments d'un script jusqu'à ce que les erreurs cessent. La dernière chose retirée était la cause de l'erreur. | ||
[11:08] | [11:08] '''Andrew Hellershanks''': :) | ||
[11: | [11:08] '''Ubit Umarov''' : selby, tu es coincé ? | ||
[11:09] | [11:09] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Il n'est pas nécessaire que ce soit un seul script, la charge globale est également un facteur et le type d'opérations effectuées par ces scripts. | ||
[11:09] Kayaker | [11:09] '''Andrew Hellershanks''' : Kayaker, le script utilise-t-il un [https://wiki.secondlife.com/wiki/Timer/fr timer] ? Si oui, est-ce qu'il en fait trop dans le timer handler ? | ||
[11:09] Kayaker Magic : | [11:09] '''Kayaker Magic''' : A moins qu'il s'agisse d'une condition de concurrence, alors enlever quelque chose sans rapport change suffisamment le timing pour changer le résultat. | ||
[11: | [11:09] '''Kayaker Magic''' : Le script est complètement piloté par les évènements, il a un timer qui tourne à 0.5 secondes. | ||
[11:10] | [11:10] '''Kayaker Magic''' : En fait il y a deux scripts, un rezzeur et la chose qu'il rezze. J'envisage une condition de concurrence sur la façon dont les deux communiquent, mais je ne peux pas encore le vérifier. | ||
[11: | [11:10] '''Selby.Evans @grid.kitely.com:8002''' : Je suppose que oui, mais corrigé | ||
[11:11] | [11:11] '''Ubit Umarov''' : ok | ||
[11:11] | [11:11] '''Andrew Hellershanks''' : Kayaker, est-ce que c'est ton propre rezzeur ou l'un de ceux que l'on trouve facilement ? | ||
[11:11] | [11:11] '''Ubit Umarov''' : kayker nous ne pouvons pas deviner ces choses. | ||
[11: | [11:11] '''Andrew Hellershanks''' : J'ai utilisé [https://wiki.secondlife.com/wiki/Builders_Buddy_v1 Builder's Buddy] et je n'ai pas eu de problème avec lui. | ||
[11:12] Ubit Umarov : | [11:12] '''Ubit Umarov''' : je cherche seulement à écrire du code, trouver des relations potentielles et les tester. | ||
[11:12] Ubit Umarov | [11:12] '''Ubit Umarov''' : bien sûr, rezzer une prim est une opération lourde... | ||
[11:12] Ubit Umarov: | [11:12] '''Ubit Umarov''': ''1000 od them a bit worse''.. | ||
[11: | [11:12] '''Ubit Umarov''': :p | ||
[11:13] | [11:13] '''Kayaker Magic''' : Mon propre rezzeur. | ||
[11:13] | [11:13] '''Ubit Umarov''' : et rezzer n'est pas une opération multithread. | ||
[11:13] | [11:13] '''Andrew Hellershanks''' : Kayaker, as-tu vérifié les statistiques de la région quand elle émet l'erreur pour voir si elle montre un nombre élevé de LPS (Ligne par seconde) ou un nombre faible de FPS (Frame par seconde) ? | ||
[11:13] | [11:13] '''Kayaker Magic''' : J'espère seulement avoir des suggestions sur ce qui peut causer le blocage maintenant alors que ça n'est pas arrivé dans le dernier Yeti que j'ai compilé. | ||
[11:13] Michael. | [11:13] '''Andrew Hellershanks''' : Bonjour, Michael. | ||
[11:13] | [11:13] '''Michael.Christopher @cc.opensimulator.org:8002''': hello | ||
[11: | [11:13] '''Ubit Umarov''' : cela arrêtera les autres threads pendant la transformation des données partagées. | ||
[11:16] Kayaker Magic : Oui, je vais continuer à essayer de trouver un moyen simple de répéter le problème. Mais soyez avertis : Il y a un moyen de planter Yeti qui n'existait pas avant. Je ne peux plus utiliser les versions récentes sur mes régions de peur que d'autres choses déclenchent cela. | [11:14] '''Ubit Umarov''' : mais, comme je l'ai dit, nous ne pouvons que deviner. | ||
[11:16] '''Kayaker Magic''' : Oui, je vais continuer à essayer de trouver un moyen simple de répéter le problème. Mais soyez avertis : Il y a un moyen de planter Yeti qui n'existait pas avant. Je ne peux plus utiliser les versions récentes sur mes régions de peur que d'autres choses déclenchent cela. | |||
= Changements dans le code cette semaine = | = Changements dans le code cette semaine = | ||
* [http://opensimulator.org/viewgit/?a=shortlog&p=opensim Journal des commits OpenSim] | |||
* [http://opensimulator.org/mantis/my_view_page.php Mantis : Suivi des bogues] | |||
== Moteurs physiques ubODE et ODE == | == Moteurs physiques ubODE et ODE == | ||
[11:15] Ubit Umarov : bien sur les changements de code de la semaine dernière. | * [https://fr.wikipedia.org/wiki/Moteur_physique Moteur physique] : bibliothèque logicielle indépendante appliquée à la résolution de problèmes de la mécanique classique. Les résolutions typiques sont les collisions, la chute des corps, les forces, la cinétique, etc. Les moteurs physiques sont principalement utilisés dans des simulations scientifiques et dans les jeux vidéo. | ||
* [https://fr.wikipedia.org/wiki/Open_Dynamics_Engine ODE] : bibliothèque logicielle libre (double licence GNU LGPL et BSD) se plaçant dans la catégorie des moteurs physiques. Elle sert à simuler l'interaction physique de corps rigides. | |||
* ubODE : moteur physique | |||
[11:15] '''Ubit Umarov''' : bien sur les changements de code de la semaine dernière. | |||
[11:16] '''Ubit Umarov''' : j'ai fait en sorte que ubode utilise ses propres copies des bibliothèques[https://fr.wikipedia.org/wiki/Biblioth%C3%A8que_logicielle] non administrées. | |||
[11:16] '''Andrew Hellershanks''' : J'ai vu principalement des changements de type nettoyage de code mais il y avait deux [https://fr.wikipedia.org/wiki/Commit commits] référençant des rapports mantis. | |||
[11:16] '''Ubit Umarov''' : donc l'ancien module ode peut rester inchangé. | |||
[11:16] '''Ubit Umarov''' : donc maintenant ubode utilise ubode.dll et l'ancienne ode utilise ode.dll. | |||
[11:17] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Oui, il y avait quelques petits bogues amusants qui nous avaient échappé, tout est résolu maintenant, mais étant donné les changements apportés à la physique, il se peut qu'il y en ait un ou deux de plus à mesure que les gens testent les choses. | |||
[11:17] '''Ubit Umarov''' : cela sur Windows, similaire pour les autres systèmes d'exploitation. | |||
[11:18] '''Ubit Umarov''' : puis j'ai mis à jour ubode avec le code que j'avais ici et qui prend la poussière depuis des années maintenant. | |||
[11:18] '''Andrew Hellershanks''': Je reviens tout de suite | |||
[11:18] '''Ubit Umarov''' : et d'autres que j'ai fait récemment. | |||
[11:18] '''Ubit Umarov''' : la plupart du temps c'est la même chose, j'essaie d'économiser du cpu [https://fr.wikipedia.org/wiki/Processeur] ici et là. | |||
[11:18] '''Ubit Umarov''' : en fait, ODE est un code assez mauvais. | |||
[11:19] '''Ubit Umarov''' : comme si c'était une série de différentes bibliothèques, toutes collées d'une manière ou d'une autre. | |||
[11:19] '''Ubit Umarov''' : le problème typique est que chacun a sa propre conception de ce qu'est une rotation. | |||
[11:20] '''Ubit Umarov''' : et il y a des tonnes de code pour convertir et copier entre ces différentes versions. | |||
== Quaternions et matrices == | |||
[11:20] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Ce ne sont pas tous des quaternions [https://fr.wikipedia.org/wiki/Quaternions_et_rotation_dans_l%27espace] ? | |||
[11:20] '''Ubit Umarov''' : bien sûr que non ! | |||
[11:20] '''Ubit Umarov''' : les quaternions sont en fait incorrects. | |||
[11:20] '''Michael.Christopher @cc.opensimulator.org:8002''' : oh ? | |||
[11:21] '''Ubit Umarov''' : tous utilisent des matrices [https://fr.wikipedia.org/wiki/Matrice_de_rotation] pour les rotations. | |||
[11:21] '''Michael.Christopher @cc.opensimulator.org:8002''' : cela a attiré mon attention lol. quelle est la meilleure façon ? | |||
[11:21] '''Ubit Umarov''' : vous pouvez comprendre cela si je vous dis que pour faire une rotation avec un quaternion vous aurez toujours besoin de connaître la matrice correspondante. | |||
[11:22] '''Ubit Umarov''' : donc, réellement, tout le monde utilise les matrices dans les moteurs de bas niveau. | |||
[11:23] '''Ubit Umarov''' : le quaternion a le seul avantage de l'espace... avec 4 float [https://fr.wikipedia.org/wiki/Virgule_flottante] contre 9 pour la matrice correspondante. | |||
[11:23] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Différence dans le traitement requis pour eux ? | |||
[11:24] '''Ubit Umarov''' : ils ne s'adaptent pas non plus aux instructions SIMD[https://fr.wikipedia.org/wiki/Single_instruction_multiple_data#Instructions_SIMD] moder. | |||
[11:24] '''Ubit Umarov''' : l'utilisation de SIMD sur eux peut être beaucoup plus lente. | |||
[11:24] '''Ubit Umarov''' : bien SIMD a été conçu en vue d'utiliser des matrices. | |||
[11:25] '''Ubit Umarov''' : la plupart au moins. | |||
[11:25] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : La conversion de valeurs à virgule flottante et l'application de certaines opérations pour faire rentrer 9 dans 4 ne semble pas non plus très efficace. | |||
[11:26] '''Ubit Umarov''' : vous pouvez voir le code de [https://bitbucket.org/opensimulator/libopenmetaverse/src/master/ libomv] par exemple. | |||
[11:26] '''Ubit Umarov''' : comme je l'ai dit pour multiplier un vecteur par un quaternion, le code de base va récupérer la matrice puis faire la multiplication de la matrice. | |||
[11:27] '''Ubit Umarov''' : sur la matrice vous pouvez aussi extraire plus d'information directement | |||
[11:27] '''Ubit Umarov''' : comme l'axe associé à la rotation... blabla | |||
[11:27] '''Ubit Umarov''' : une rotation peut aussi être une opération de taille. | |||
[11:28] '''Ubit Umarov''' : donc seul un petit nombre de code pas très rapide utilise le quaternion comme représentation de la rotation. | |||
[11:28] '''Ubit Umarov''' : ou comme stockage inchangé sur le long terme, bien sûr. | |||
[11:29] '''Andrew Hellershanks''' : Je suis de retour. | |||
[11:29] '''Ubit Umarov''' : même, avec un quaternion, une rotation c'est juste 3 floats. | |||
[11:29] '''Michael.Christopher @cc.opensimulator.org:8002''': Bon retour | |||
[11:29] '''Ubit Umarov''' : parce qu'un quat doit être normalisé... ce qui veut dire que le 4ème float est 1 - Somme des carrés des autres. | |||
[11:29] '''Ubit Umarov''' : LLUDP [http://opensimulator.org/wiki/LLUDP_ClientStack/fr] utilise cela | |||
[11:30] '''Ubit Umarov''' : les lindens [https://fr.wikipedia.org/wiki/Linden_Lab] étaient des codeurs intelligents à l'époque. | |||
[11:30] '''Ubit Umarov''' : ce n'était pas ce code très peu performant qu'ils font aujourd'hui. | |||
[11:30] '''Ubit Umarov''' : bon, c'est une autre histoire. | |||
== Refus d'utiliser une capacité== | |||
[11:31] '''Ubit Umarov''' : j'ai aussi refusé de soutenir l'utilisation d'une autre cap[http://opensimulator.org/wiki/CAPS] de viewer. | |||
[11:31] '''Ubit Umarov''' : Rye[https://github.com/RyeMutt] ou Beq[https://github.com/beqjanus][http://world.secondlife.com/resident/12475f25-933a-4312-8a32-9516e93e6c3b] l'ont mentionné. | |||
[11:32] '''Ubit Umarov''' : il s'agissait juste de passer de lludp très compact et rapide à http[https://fr.wikipedia.org/wiki/Hypertext_Markup_Language] lent en utilisant un encodage de type xml[https://fr.wikipedia.org/wiki/Extensible_Markup_Language]. | |||
[11:32] '''Ubit Umarov''' : cela correspond à 10 octets d'information dans environ 200 octets. | |||
[11:32] '''Ubit Umarov''' : ( dans ce cas beaucoup plus ) | |||
[11:33] '''Ubit Umarov''' : donc... les changements de code... | |||
[11:33] '''Ubit Umarov''' : il est possible qu'ubode ait maintenant de nouveaux problèmes, bien sûr. | |||
[11:33] '''Ubit Umarov''' : et très difficile à déboguer. | |||
[11:33] '''Ubit Umarov''' : en général nous n'avons que le BUMMMMM de la région qui est morte. | |||
[11:33] '''Ubit Umarov''' : ce genre de reports :P | |||
[11:34] '''Ubit Umarov''' : dans le cas de Windows un BSOD[https://fr.wikipedia.org/wiki/%C3%89cran_bleu_de_la_mort] est aussi possible :) | |||
[11:34] '''Michael.Christopher @cc.opensimulator.org:8002''': :)) | |||
[11:34] '''Ubit Umarov''' : le dernier que j'ai reçu testait les changements de ode.dll. | |||
[11:34] '''Ubit Umarov''' : :) | |||
[11:34] '''Michael.Christopher @cc.opensimulator.org:8002''' : ouille. | |||
== Remplacement de parse par tryparse == | |||
* Traduction du mot "parse" : Analyser | |||
[11:35] '''Ubit Umarov''' : d'autres changements où quelques corrections de bugs récents. | |||
[11:35] '''Ubit Umarov''': ''changed some user por uuid parse by tryparse'' | |||
[11:35] '''Ubit Umarov''' : parce que parse s'arrête maintenant avec une erreur, comme guid le fait. | |||
[11:36] '''Ubit Umarov''' : dans le passé, il ne retournait pas uuid.zero, comme tryparse le fait. | |||
[11:36] '''Ubit Umarov''' : même chose pour int, vector3 et bool parse. | |||
[11:37] '''Ubit Umarov''' : évidemment cela a provoqué un bug stupide, trouvé par vincent et maintenant aussi corrigé. | |||
== Saut des avatars == | |||
[11:37] '''Ubit Umarov''' : le nouveau code de saut des avatars avait également un petit problème. | |||
[11:37] '''Ubit Umarov''' : les sauts au dessus d'une prim mesh étaient beaucoup plus courts qu'au dessus d'une prim normale ou d'un terrain. | |||
[11:38] '''Ubit Umarov''' : nous avons travaillé un peu sur ce problème... ils sont à nouveau similaires. | |||
[11:38] '''Ubit Umarov''' : le problème est la façon dont la collision est détectée [https://fr.wikipedia.org/wiki/D%C3%A9tection_de_collision]... | |||
[11:39] '''Ubit Umarov''' : sur une simulation, une collision d'avatar avec n'importe quelle prim retourne au plus 2 collisions. | |||
[11:39] '''Ubit Umarov''' : avec un mesh cela peut aller jusqu'à 80... | |||
[11:40] '''Ubit Umarov''' : la méthode globale IsColliding compte les collisions. | |||
[11:40] '''Ubit Umarov''' : donc... bien mal :) | |||
[11:40] '''Ubit Umarov''' : cela devrait être mieux maintenant. | |||
[11:40] '''Ubit Umarov''' : mais il y a d'autres parties du code qui ont besoin d'être révisées. | |||
[11:41] '''Ubit Umarov''' : toujours une vieille structure de code... | |||
[11:41] '''Ubit Umarov''' : malheureusement pas la meilleure... mais toujours présente. | |||
== Rotation sur les sièges == | |||
[11:41] '''Ubit Umarov''' : j'ai aussi cassé des sièges :p | |||
[11:42] '''Ubit Umarov''' : dans les mêmes cas, en fonction du timing, la rotation du siège peut être perdue en raison d'une mise à jour retardée envoyée par les viewers. | |||
[11:42] '''Ubit Umarov''' : toujours avec une rotation debout... | |||
[11:43] '''Ubit Umarov''' : cette mise à jour retardée est à nouveau ignorée... | |||
[11:44] '''Ubit Umarov''' : j'espère que vous voyez tous les autres assis ici maintenant :) | |||
[11: | [11:44] '''Selby.Evans @grid.kitely.com:8002''' : Je les vois. | ||
[11: | [11:45] '''Ubit Umarov''' : c'était un peu aléatoire, mais nous aurions pu voir des rotations incorrectes comme je l'ai dit. | ||
[11: | [11:46] '''Ubit Umarov''' : typique d'opensim... 1 amélioration 2 nouveaux bugs | ||
[11: | [11:46] '''Ubit Umarov''': oups :p | ||
[11: | [11:46] '''Michael.Christopher @cc.opensimulator.org:8002''': lol | ||
[11: | [11:46] '''Ubit Umarov''' : ( toujours à la recherche du deuxième bug sur ce sujet :P ) | ||
= Compilation = | |||
[11:47] '''Ubit Umarov''' : à propos du code ubode unmaged, je ne peux compiler que pour win32, 64 et linux64. | |||
[11: | [11:47] '''Ubit Umarov''' : pas pour mac ou linux32 | ||
[11: | [11:48] '''Ubit Umarov''' : la bonne nouvelle est que gavin a dit qu'il compilera pour mac dans les prochains jours. | ||
[11: | [11:48] '''Ubit Umarov''' : comme je l'ai fait plusieurs fois dans le passé. | ||
[11: | [11:48] '''Ubit Umarov''' : je veux dire qu' IL l'a fait... | ||
[11: | [11:48] '''Ubit Umarov''' : :) | ||
[11: | [11:48] '''Michael.Christopher @cc.opensimulator.org:8002''' : ok bien lol j'essayais de penser à la façon de proposer d'utiliser le nôtre en toute confiance :))) | ||
[11: | [11:49] '''Ubit Umarov''' : donc les utilisateurs de mac auront aussi de magnifiques BSODs. | ||
[11: | [11:49] '''Ubit Umarov''' : (je ne suis pas sûr que le bleu soit aussi présent sur mac) | ||
[11: | [11:51] '''Ubit Umarov''' : alors quelles nouvelles avez-vous ? | ||
[11: | [11:52] '''Michael.Christopher @cc.opensimulator.org:8002''' : le dépôt de brevet est terminé et un spécialiste des bases de données est censé arriver pour essayer de déterminer par où commencer. | ||
[11: | [11:52] '''Andrew Hellershanks''' : Le fait que Gavin travaille toujours sur le code est une bonne nouvelle. | ||
[11: | [11:52] '''Andrew Hellershanks''' : Michael, quel dépôt de brevet ? | ||
[11: | [11:53] '''Michael.Christopher @cc.opensimulator.org:8002''' : couche d'intégration de la réalité. | ||
= Nouvelle pré-version de Firestorm = | |||
[11: | [11:53] '''Ubit Umarov''' : En parlant de Gavin, il y a une nouvelle préversion de Firestorm.[https://www.firestormviewer.org/] | ||
[11: | [11:53] '''Ubit Umarov''' : oups lol :) | ||
[11: | [11:53] '''Andrew Hellershanks''': :) | ||
[11: | [11:53] '''Ubit Umarov''' : qui inclut maintenant le code LL avec la validation de l'inventaire. | ||
[11: | [11:54] '''Ubit Umarov''' : il semble que certaines personnes obtiennent des erreurs à ce sujet et ne peuvent pas utiliser le viewer. | ||
[11: | [11:54] '''Ubit Umarov''' : je n'ai encore aucune explication. | ||
[11: | [11:54] '''Ubit Umarov''' : mais cette "validation" est bien sûr conforme à l'idée actuelle de lindens de ce qu'un inventaire devrait être | ||
[11: | [11:54] '''Ubit Umarov''' : je ne serais pas surpris si le SL avait aussi des échecs. | ||
[11: | [11:55] '''Ubit Umarov''' : mais malheureusement, il faut s'attendre à beaucoup d'échecs ici, avec les anciens inventaires que certains ont. | ||
[11: | [11:55] '''Kayaker Magic''' : Le nouveau FS beta résout un problème avec Vivox [https://en.wikipedia.org/wiki/Vivox](en) que Kitely [https://www.kitely.com/] avait avec les HG TPs. | ||
[11: | [11:55] '''Ubit Umarov''' : ahh le truc de la boucle ? | ||
[11: | [11:56] '''Kayaker Magic''' : J'ai entendu dire que Vivox raccrochait sur un TP HG. | ||
[11: | [11:56] '''Ubit Umarov''' : il semble qu'un commit de Beq corrige ce problème. | ||
[11: | [11:56] '''Ubit Umarov''' : il semble que le viewer était placé dans une boucle sans fin :) | ||
[11: | [11:57] '''Kayaker Magic''' : C'est vrai. C'est corrigé ! | ||
[11: | [11:57] '''Michael.Christopher @cc.opensimulator.org:8002''' : Opensim était l'inspiration originale, mais "la même solution" devrait être utilisable dans la plupart des environnements virtuels. C'est une question de cas d'utilisation pour chaque entreprise, comment ils l'utiliseraient au mieux (les utilisateurs finaux devraient bénéficier de notre plateforme mais ne pas avoir à payer pour elle). | ||
[11: | [11:57] '''Ubit Umarov''' : les rebakes 2 secondes après l'arrivée sur une région ont également disparu. | ||
[11: | [11:58] '''Ubit Umarov''' : j'ai parlé de cette correction lors d'une autre réunion. | ||
[11: | [11:58] '''Ubit Umarov''': moi rye et beq | ||
[11: | [11:59] '''Selby.Evans @grid.kitely.com:8002''' : Je dois y aller -- au revoir à tous. | ||
[11: | [11:59] '''Ubit Umarov''' : et le mauvais extra " !". | ||
[11: | = Conclusion = | ||
[11:59] '''Michael.Christopher @cc.opensimulator.org:8002''' : au revoir selby ! | |||
[ | [12:00] '''Andrew Hellershanks''': Bye, Selby | ||
[ | [12:00] '''Andrew Hellershanks''' : Une autre heure s'est écoulée. Des questions de dernière minute pour aujourd'hui ? | ||
[12:00] '''Michael.Christopher @cc.opensimulator.org:8002''' : pas ici. | |||
[ | |||
[ | [12:01] '''Kayaker Magic''' : Pas pour moi ! | ||
[ | [12:01] '''Andrew Hellershanks''' : ok. Je ne vois personne d'autre taper alors je vais prendre ça comme un non de la part des autres. | ||
[ | [12:01] '''Andrew Hellershanks''' : Merci à tous d'être venus. Nous nous reverrons la semaine prochaine. | ||
[ | [12:01] '''Michael.Christopher @cc.opensimulator.org:8002''' : Bonne semaine à tous ! | ||
Dernière version du 4 mai 2022 à 17:38
Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-05-03
Introduction
[11:02] Kayaker Magic : Le voilà !
[11:03] Andrew Hellershanks : Bonjour, tout le monde.
Problème de script : Rezzeur
- osGetRegionStats() : fonction OSSL qui renvoie une liste de float représentant un certain nombre de statistiques sur la région. Renvoie 21 statistiques simultanément dont STATS_SIM_FPS, STATS_PHYSICS_FPS et STATS_SCRIPT_LPS.
- Yeti : version d'OpenSimulator (0.9.2.0 Yeti)
[11:03] Kayaker Magic : J'ai un problème aujourd'hui : Quelqu'un sait-il ce qui peut causer ce message d'erreur sur la console opensim ?
[11:03] Kayaker Magic: 10:54:41 - [WATCHDOG]: Timeout detected for thread "Heartbeat-(Test_Bed_3x3)". ThreadState=Running. Last tick was 21253ms ago.
[11:04] Kayaker Magic : J'ai un script qui peut verrouiller une région et qui provoque ce message une minute plus tard. TOUT LE TEMPS
[11:04] Ubit Umarov : le lit est très bon et le cœur bat en s'endormant.
[11:05] Kayaker Magic : Mais j'essaie de faire une version plus petite du script, et l'erreur ne se produit pas. Du moins pas encore...
[11:05] Ubit Umarov : les scripts peuvent provoquer ça, mais c'est difficile à dire.
[11:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : Tu viens de répondre à ta propre question
[11:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : Habituellement, les scripts chargés ou mal écrits consomment une tonne de mémoire.
[11:06] Kayaker Magic : Le script fonctionnait parfaitement sur les anciennes versions d'OpenSim. L'erreur a commencé avec les versions récentes.
[11:06] Vincent.Sylvester @hg.zetaworlds.com:8002 : Cependant, cela fonctionne
[11:06] Kayaker Magic : Non, ce script n'est pas mauvais. Il a bien fonctionné pendant des années.
[11:06] Vincent.Sylvester @hg.zetaworlds.com:8002 : Indices de défaillance potentielle de la file d'attente de mise à jour des scènes dans long terme.
[11:07] Kayaker Magic : Les tests sont difficiles, chaque test nécessite généralement de redémarrer ou d'attendre 2 minutes pour que la région récupère.
[11:08] Andrew Hellershanks : Oui, vous retirez des éléments d'un script jusqu'à ce que les erreurs cessent. La dernière chose retirée était la cause de l'erreur.
[11:08] Andrew Hellershanks: :)
[11:08] Ubit Umarov : selby, tu es coincé ?
[11:09] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il n'est pas nécessaire que ce soit un seul script, la charge globale est également un facteur et le type d'opérations effectuées par ces scripts.
[11:09] Andrew Hellershanks : Kayaker, le script utilise-t-il un timer ? Si oui, est-ce qu'il en fait trop dans le timer handler ?
[11:09] Kayaker Magic : A moins qu'il s'agisse d'une condition de concurrence, alors enlever quelque chose sans rapport change suffisamment le timing pour changer le résultat.
[11:09] Kayaker Magic : Le script est complètement piloté par les évènements, il a un timer qui tourne à 0.5 secondes.
[11:10] Kayaker Magic : En fait il y a deux scripts, un rezzeur et la chose qu'il rezze. J'envisage une condition de concurrence sur la façon dont les deux communiquent, mais je ne peux pas encore le vérifier.
[11:10] Selby.Evans @grid.kitely.com:8002 : Je suppose que oui, mais corrigé
[11:11] Ubit Umarov : ok
[11:11] Andrew Hellershanks : Kayaker, est-ce que c'est ton propre rezzeur ou l'un de ceux que l'on trouve facilement ?
[11:11] Ubit Umarov : kayker nous ne pouvons pas deviner ces choses.
[11:11] Andrew Hellershanks : J'ai utilisé Builder's Buddy et je n'ai pas eu de problème avec lui.
[11:12] Ubit Umarov : je cherche seulement à écrire du code, trouver des relations potentielles et les tester.
[11:12] Ubit Umarov : bien sûr, rezzer une prim est une opération lourde...
[11:12] Ubit Umarov: 1000 od them a bit worse..
[11:12] Ubit Umarov: :p
[11:13] Kayaker Magic : Mon propre rezzeur.
[11:13] Ubit Umarov : et rezzer n'est pas une opération multithread.
[11:13] Andrew Hellershanks : Kayaker, as-tu vérifié les statistiques de la région quand elle émet l'erreur pour voir si elle montre un nombre élevé de LPS (Ligne par seconde) ou un nombre faible de FPS (Frame par seconde) ?
[11:13] Kayaker Magic : J'espère seulement avoir des suggestions sur ce qui peut causer le blocage maintenant alors que ça n'est pas arrivé dans le dernier Yeti que j'ai compilé.
[11:13] Andrew Hellershanks : Bonjour, Michael.
[11:13] Michael.Christopher @cc.opensimulator.org:8002: hello
[11:13] Ubit Umarov : cela arrêtera les autres threads pendant la transformation des données partagées.
[11:14] Ubit Umarov : mais, comme je l'ai dit, nous ne pouvons que deviner.
[11:16] Kayaker Magic : Oui, je vais continuer à essayer de trouver un moyen simple de répéter le problème. Mais soyez avertis : Il y a un moyen de planter Yeti qui n'existait pas avant. Je ne peux plus utiliser les versions récentes sur mes régions de peur que d'autres choses déclenchent cela.
Changements dans le code cette semaine
Moteurs physiques ubODE et ODE
- Moteur physique : bibliothèque logicielle indépendante appliquée à la résolution de problèmes de la mécanique classique. Les résolutions typiques sont les collisions, la chute des corps, les forces, la cinétique, etc. Les moteurs physiques sont principalement utilisés dans des simulations scientifiques et dans les jeux vidéo.
- ODE : bibliothèque logicielle libre (double licence GNU LGPL et BSD) se plaçant dans la catégorie des moteurs physiques. Elle sert à simuler l'interaction physique de corps rigides.
- ubODE : moteur physique
[11:15] Ubit Umarov : bien sur les changements de code de la semaine dernière.
[11:16] Ubit Umarov : j'ai fait en sorte que ubode utilise ses propres copies des bibliothèques[1] non administrées.
[11:16] Andrew Hellershanks : J'ai vu principalement des changements de type nettoyage de code mais il y avait deux commits référençant des rapports mantis.
[11:16] Ubit Umarov : donc l'ancien module ode peut rester inchangé.
[11:16] Ubit Umarov : donc maintenant ubode utilise ubode.dll et l'ancienne ode utilise ode.dll.
[11:17] Vincent.Sylvester @hg.zetaworlds.com:8002 : Oui, il y avait quelques petits bogues amusants qui nous avaient échappé, tout est résolu maintenant, mais étant donné les changements apportés à la physique, il se peut qu'il y en ait un ou deux de plus à mesure que les gens testent les choses.
[11:17] Ubit Umarov : cela sur Windows, similaire pour les autres systèmes d'exploitation.
[11:18] Ubit Umarov : puis j'ai mis à jour ubode avec le code que j'avais ici et qui prend la poussière depuis des années maintenant.
[11:18] Andrew Hellershanks: Je reviens tout de suite
[11:18] Ubit Umarov : et d'autres que j'ai fait récemment.
[11:18] Ubit Umarov : la plupart du temps c'est la même chose, j'essaie d'économiser du cpu [2] ici et là.
[11:18] Ubit Umarov : en fait, ODE est un code assez mauvais.
[11:19] Ubit Umarov : comme si c'était une série de différentes bibliothèques, toutes collées d'une manière ou d'une autre.
[11:19] Ubit Umarov : le problème typique est que chacun a sa propre conception de ce qu'est une rotation.
[11:20] Ubit Umarov : et il y a des tonnes de code pour convertir et copier entre ces différentes versions.
Quaternions et matrices
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : Ce ne sont pas tous des quaternions [3] ?
[11:20] Ubit Umarov : bien sûr que non !
[11:20] Ubit Umarov : les quaternions sont en fait incorrects.
[11:20] Michael.Christopher @cc.opensimulator.org:8002 : oh ?
[11:21] Ubit Umarov : tous utilisent des matrices [4] pour les rotations.
[11:21] Michael.Christopher @cc.opensimulator.org:8002 : cela a attiré mon attention lol. quelle est la meilleure façon ?
[11:21] Ubit Umarov : vous pouvez comprendre cela si je vous dis que pour faire une rotation avec un quaternion vous aurez toujours besoin de connaître la matrice correspondante.
[11:22] Ubit Umarov : donc, réellement, tout le monde utilise les matrices dans les moteurs de bas niveau.
[11:23] Ubit Umarov : le quaternion a le seul avantage de l'espace... avec 4 float [5] contre 9 pour la matrice correspondante.
[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002 : Différence dans le traitement requis pour eux ?
[11:24] Ubit Umarov : ils ne s'adaptent pas non plus aux instructions SIMD[6] moder.
[11:24] Ubit Umarov : l'utilisation de SIMD sur eux peut être beaucoup plus lente.
[11:24] Ubit Umarov : bien SIMD a été conçu en vue d'utiliser des matrices.
[11:25] Ubit Umarov : la plupart au moins.
[11:25] Vincent.Sylvester @hg.zetaworlds.com:8002 : La conversion de valeurs à virgule flottante et l'application de certaines opérations pour faire rentrer 9 dans 4 ne semble pas non plus très efficace.
[11:26] Ubit Umarov : vous pouvez voir le code de libomv par exemple.
[11:26] Ubit Umarov : comme je l'ai dit pour multiplier un vecteur par un quaternion, le code de base va récupérer la matrice puis faire la multiplication de la matrice.
[11:27] Ubit Umarov : sur la matrice vous pouvez aussi extraire plus d'information directement
[11:27] Ubit Umarov : comme l'axe associé à la rotation... blabla
[11:27] Ubit Umarov : une rotation peut aussi être une opération de taille.
[11:28] Ubit Umarov : donc seul un petit nombre de code pas très rapide utilise le quaternion comme représentation de la rotation.
[11:28] Ubit Umarov : ou comme stockage inchangé sur le long terme, bien sûr.
[11:29] Andrew Hellershanks : Je suis de retour.
[11:29] Ubit Umarov : même, avec un quaternion, une rotation c'est juste 3 floats.
[11:29] Michael.Christopher @cc.opensimulator.org:8002: Bon retour
[11:29] Ubit Umarov : parce qu'un quat doit être normalisé... ce qui veut dire que le 4ème float est 1 - Somme des carrés des autres.
[11:29] Ubit Umarov : LLUDP [7] utilise cela
[11:30] Ubit Umarov : les lindens [8] étaient des codeurs intelligents à l'époque.
[11:30] Ubit Umarov : ce n'était pas ce code très peu performant qu'ils font aujourd'hui.
[11:30] Ubit Umarov : bon, c'est une autre histoire.
Refus d'utiliser une capacité
[11:31] Ubit Umarov : j'ai aussi refusé de soutenir l'utilisation d'une autre cap[9] de viewer.
[11:31] Ubit Umarov : Rye[10] ou Beq[11][12] l'ont mentionné.
[11:32] Ubit Umarov : il s'agissait juste de passer de lludp très compact et rapide à http[13] lent en utilisant un encodage de type xml[14].
[11:32] Ubit Umarov : cela correspond à 10 octets d'information dans environ 200 octets.
[11:32] Ubit Umarov : ( dans ce cas beaucoup plus )
[11:33] Ubit Umarov : donc... les changements de code...
[11:33] Ubit Umarov : il est possible qu'ubode ait maintenant de nouveaux problèmes, bien sûr.
[11:33] Ubit Umarov : et très difficile à déboguer.
[11:33] Ubit Umarov : en général nous n'avons que le BUMMMMM de la région qui est morte.
[11:33] Ubit Umarov : ce genre de reports :P
[11:34] Ubit Umarov : dans le cas de Windows un BSOD[15] est aussi possible :)
[11:34] Michael.Christopher @cc.opensimulator.org:8002: :))
[11:34] Ubit Umarov : le dernier que j'ai reçu testait les changements de ode.dll.
[11:34] Ubit Umarov : :)
[11:34] Michael.Christopher @cc.opensimulator.org:8002 : ouille.
Remplacement de parse par tryparse
- Traduction du mot "parse" : Analyser
[11:35] Ubit Umarov : d'autres changements où quelques corrections de bugs récents.
[11:35] Ubit Umarov: changed some user por uuid parse by tryparse
[11:35] Ubit Umarov : parce que parse s'arrête maintenant avec une erreur, comme guid le fait.
[11:36] Ubit Umarov : dans le passé, il ne retournait pas uuid.zero, comme tryparse le fait.
[11:36] Ubit Umarov : même chose pour int, vector3 et bool parse.
[11:37] Ubit Umarov : évidemment cela a provoqué un bug stupide, trouvé par vincent et maintenant aussi corrigé.
Saut des avatars
[11:37] Ubit Umarov : le nouveau code de saut des avatars avait également un petit problème.
[11:37] Ubit Umarov : les sauts au dessus d'une prim mesh étaient beaucoup plus courts qu'au dessus d'une prim normale ou d'un terrain.
[11:38] Ubit Umarov : nous avons travaillé un peu sur ce problème... ils sont à nouveau similaires.
[11:38] Ubit Umarov : le problème est la façon dont la collision est détectée [16]...
[11:39] Ubit Umarov : sur une simulation, une collision d'avatar avec n'importe quelle prim retourne au plus 2 collisions.
[11:39] Ubit Umarov : avec un mesh cela peut aller jusqu'à 80...
[11:40] Ubit Umarov : la méthode globale IsColliding compte les collisions.
[11:40] Ubit Umarov : donc... bien mal :)
[11:40] Ubit Umarov : cela devrait être mieux maintenant.
[11:40] Ubit Umarov : mais il y a d'autres parties du code qui ont besoin d'être révisées.
[11:41] Ubit Umarov : toujours une vieille structure de code...
[11:41] Ubit Umarov : malheureusement pas la meilleure... mais toujours présente.
Rotation sur les sièges
[11:41] Ubit Umarov : j'ai aussi cassé des sièges :p
[11:42] Ubit Umarov : dans les mêmes cas, en fonction du timing, la rotation du siège peut être perdue en raison d'une mise à jour retardée envoyée par les viewers.
[11:42] Ubit Umarov : toujours avec une rotation debout...
[11:43] Ubit Umarov : cette mise à jour retardée est à nouveau ignorée...
[11:44] Ubit Umarov : j'espère que vous voyez tous les autres assis ici maintenant :)
[11:44] Selby.Evans @grid.kitely.com:8002 : Je les vois.
[11:45] Ubit Umarov : c'était un peu aléatoire, mais nous aurions pu voir des rotations incorrectes comme je l'ai dit.
[11:46] Ubit Umarov : typique d'opensim... 1 amélioration 2 nouveaux bugs
[11:46] Ubit Umarov: oups :p
[11:46] Michael.Christopher @cc.opensimulator.org:8002: lol
[11:46] Ubit Umarov : ( toujours à la recherche du deuxième bug sur ce sujet :P )
Compilation
[11:47] Ubit Umarov : à propos du code ubode unmaged, je ne peux compiler que pour win32, 64 et linux64.
[11:47] Ubit Umarov : pas pour mac ou linux32
[11:48] Ubit Umarov : la bonne nouvelle est que gavin a dit qu'il compilera pour mac dans les prochains jours.
[11:48] Ubit Umarov : comme je l'ai fait plusieurs fois dans le passé.
[11:48] Ubit Umarov : je veux dire qu' IL l'a fait...
[11:48] Ubit Umarov : :)
[11:48] Michael.Christopher @cc.opensimulator.org:8002 : ok bien lol j'essayais de penser à la façon de proposer d'utiliser le nôtre en toute confiance :)))
[11:49] Ubit Umarov : donc les utilisateurs de mac auront aussi de magnifiques BSODs.
[11:49] Ubit Umarov : (je ne suis pas sûr que le bleu soit aussi présent sur mac)
[11:51] Ubit Umarov : alors quelles nouvelles avez-vous ?
[11:52] Michael.Christopher @cc.opensimulator.org:8002 : le dépôt de brevet est terminé et un spécialiste des bases de données est censé arriver pour essayer de déterminer par où commencer.
[11:52] Andrew Hellershanks : Le fait que Gavin travaille toujours sur le code est une bonne nouvelle.
[11:52] Andrew Hellershanks : Michael, quel dépôt de brevet ?
[11:53] Michael.Christopher @cc.opensimulator.org:8002 : couche d'intégration de la réalité.
Nouvelle pré-version de Firestorm
[11:53] Ubit Umarov : En parlant de Gavin, il y a une nouvelle préversion de Firestorm.[17]
[11:53] Ubit Umarov : oups lol :)
[11:53] Andrew Hellershanks: :)
[11:53] Ubit Umarov : qui inclut maintenant le code LL avec la validation de l'inventaire.
[11:54] Ubit Umarov : il semble que certaines personnes obtiennent des erreurs à ce sujet et ne peuvent pas utiliser le viewer.
[11:54] Ubit Umarov : je n'ai encore aucune explication.
[11:54] Ubit Umarov : mais cette "validation" est bien sûr conforme à l'idée actuelle de lindens de ce qu'un inventaire devrait être
[11:54] Ubit Umarov : je ne serais pas surpris si le SL avait aussi des échecs.
[11:55] Ubit Umarov : mais malheureusement, il faut s'attendre à beaucoup d'échecs ici, avec les anciens inventaires que certains ont.
[11:55] Kayaker Magic : Le nouveau FS beta résout un problème avec Vivox [18](en) que Kitely [19] avait avec les HG TPs.
[11:55] Ubit Umarov : ahh le truc de la boucle ?
[11:56] Kayaker Magic : J'ai entendu dire que Vivox raccrochait sur un TP HG.
[11:56] Ubit Umarov : il semble qu'un commit de Beq corrige ce problème.
[11:56] Ubit Umarov : il semble que le viewer était placé dans une boucle sans fin :)
[11:57] Kayaker Magic : C'est vrai. C'est corrigé !
[11:57] Michael.Christopher @cc.opensimulator.org:8002 : Opensim était l'inspiration originale, mais "la même solution" devrait être utilisable dans la plupart des environnements virtuels. C'est une question de cas d'utilisation pour chaque entreprise, comment ils l'utiliseraient au mieux (les utilisateurs finaux devraient bénéficier de notre plateforme mais ne pas avoir à payer pour elle).
[11:57] Ubit Umarov : les rebakes 2 secondes après l'arrivée sur une région ont également disparu.
[11:58] Ubit Umarov : j'ai parlé de cette correction lors d'une autre réunion.
[11:58] Ubit Umarov: moi rye et beq
[11:59] Selby.Evans @grid.kitely.com:8002 : Je dois y aller -- au revoir à tous.
[11:59] Ubit Umarov : et le mauvais extra " !".
Conclusion
[11:59] Michael.Christopher @cc.opensimulator.org:8002 : au revoir selby !
[12:00] Andrew Hellershanks: Bye, Selby
[12:00] Andrew Hellershanks : Une autre heure s'est écoulée. Des questions de dernière minute pour aujourd'hui ?
[12:00] Michael.Christopher @cc.opensimulator.org:8002 : pas ici.
[12:01] Kayaker Magic : Pas pour moi !
[12:01] Andrew Hellershanks : ok. Je ne vois personne d'autre taper alors je vais prendre ça comme un non de la part des autres.
[12:01] Andrew Hellershanks : Merci à tous d'être venus. Nous nous reverrons la semaine prochaine.
[12:01] Michael.Christopher @cc.opensimulator.org:8002 : Bonne semaine à tous !