« Réunion du 03-05-2022 » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 86 : Ligne 86 :


= Changements dans le code cette semaine =  
= Changements dans le code cette semaine =  
[11:15] Ubit Umarov: wel abotu code changes last week
[11:15] Ubit Umarov : bien sur les changements de code de la semaine dernière.
[11:16] Ubit Umarov: i did made ubode use own copies of the unmanaged libraries
 
[11:16] Andrew Hellershanks: I saw mostly code cleanup type changes but there were two commits referencing mantis reports.
[11:16] Ubit Umarov : j'ai fait en sorte que ubode utilise ses propres copies des bibliothèques non administrées.
[11:16] Ubit Umarov: so old ode module can stay unchanged
 
[11:16] Kayaker Magic: Yeah, I will keep trying to find a simple way to repeat the problem. But be warned: There is a way to crash Yeti that was not there before. I cannot use recent versions on my regions any more for fear that other things will trigger this.
[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: so now ubode uses ubode.dll and  old ode uses ode.dll
 
[11:17] Vincent.Sylvester @hg.zetaworlds.com:8002: Yeah that were some fun little bugs that slipped by, all resolved now, but given the changes to physics might see one or two more as more people test things
[11:16] Ubit Umarov : donc l'ancien module ode peut rester inchangé.
[11:17] Ubit Umarov: that on windows, similar for other operating systems
 
[11:18] Ubit Umarov: then updated ubode with code i had here getting dust for years now
[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: brb
[11:18] Andrew Hellershanks: brb
[11:18] Ubit Umarov: well and some i made also recently
 
[11:18] Ubit Umarov: mostly same thing, try to save cpu here and there
[11:18] Ubit Umarov : et d'autres que j'ai fait récemment.
[11:18] Ubit Umarov: in fact ODE is pretty bad code
 
[11:19] Ubit Umarov: like it is a collection of diferent libraries, all glued somehow
[11:18] Ubit Umarov : la plupart du temps c'est la même chose, j'essaie d'économiser du cpu ici et là.
[11:19] Ubit Umarov: so the typical issue..  each one has own idea of what a rotation his
 
[11:20] Ubit Umarov: and tons of code converting and copieng between thsoe diference flavours
[11:18] Ubit Umarov : en fait, ODE est un code assez mauvais.
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002: It's not all quaternions?
 
[11:20] Ubit Umarov: ofc not
[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:20] Ubit Umarov: quaternions are actually bad
 
[11:20] Michael.Christopher @cc.opensimulator.org:8002: oh?
[11:19] Ubit Umarov : le problème typique est que chacun a sa propre conception de ce qu'est une rotation.
[11:21] Ubit Umarov: all use matrices for rotations
 
[11:21] Michael.Christopher @cc.opensimulator.org:8002: that caught my attention lol. what's the better way?
[11:20] Ubit Umarov : et il y a des tonnes de code pour convertir et copier entre ces différentes versions.
[11:21] Ubit Umarov: you can understand that if i tell you that to make a rotation with a quaternion you always need to get the respective matrice
 
[11:22] Ubit Umarov: so everyone really uses matrices on low level engines
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : Ce ne sont pas tous des quaternions ?
[11:23] Ubit Umarov: quaternium only has the space advantage.. like 4 floats versus 9 of similar matrice
 
[11:23] Ubit Umarov: quaternion
[11:20] Ubit Umarov : bien sûr que non !
[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002: Difference in processing required for them?
 
[11:24] Ubit Umarov: also does not fit on SIMD instrutions moder
[11:20] Ubit Umarov : les quaternions sont en fait incorrects.
[11:24] Ubit Umarov: using SIMD on them may actually be a lot slower
 
[11:24] Ubit Umarov: well SIMD was made with matrices operations in mind
[11:20] Michael.Christopher @cc.opensimulator.org:8002 : oh ?
[11:25] Ubit Umarov: well most at least
 
[11:25] Vincent.Sylvester @hg.zetaworlds.com:8002: Conversion floating point values and applying some operations to fit 9 into 4 also doesn't sound efficient at all
[11:21] Ubit Umarov : tous utilisent des matrices pour les rotations.
[11:26] Ubit Umarov: well you can see the code on libomv for example
 
[11:26] Ubit Umarov: as i said to multiply a vector by a quat, code is basicly getting the matrice then doing the matrice multiplication
[11:21] Michael.Christopher @cc.opensimulator.org:8002 : cela a attiré mon attention lol. quelle est la meilleure façon ?
[11:27] Ubit Umarov: on matrx you can also extract more information direct
 
[11:27] Ubit Umarov: like the axis associated with the rotation.. balba
[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:27] Ubit Umarov: also a rotation can also be a scale operation
 
[11:28] Ubit Umarov: so only a few not that fast code uses quaternion as rotation representation
[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 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 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: or as long term unchanged storage, ofc
[11:28] Ubit Umarov: or as long term unchanged storage, ofc
[11:29] Andrew Hellershanks: I'm back.
[11:29] Andrew Hellershanks: I'm back.

Version du 4 mai 2022 à 15:37

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

[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 rezzer.

[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 ou un nombre faible de FPS ?

[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

[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 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: brb

[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 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.

[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : Ce ne sont pas tous des quaternions ?

[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 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 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 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: or as long term unchanged storage, ofc [11:29] Andrew Hellershanks: I'm back. [11:29] Ubit Umarov: with a quaternion a rotation is even just 3 floats [11:29] Michael.Christopher @cc.opensimulator.org:8002: wb [11:29] Ubit Umarov: because a quat must be normalized.. that meand the 4th float is 1 - Sum of squares of the others [11:29] Ubit Umarov: LLUDP uses that [11:30] Ubit Umarov: lindens used to be clever coders in tose days [11:30] Ubit Umarov: not that very low performance code mess they do today [11:30] Ubit Umarov: well by that is other story [11:31] Ubit Umarov: i actually did refuse to suport another cap viewer use [11:31] Ubit Umarov: rye or beq did mentioned it [11:32] Ubit Umarov: happens it is just moving from very compact and fast lludp to slow http using xml like encoding [11:32] Ubit Umarov: that tuns 10 bytes of information in like 200 [11:32] Ubit Umarov: ( in that case a lot more ) [11:33] Ubit Umarov: so.. code changes... [11:33] Ubit Umarov: it is possible ubode now has new issues, ofc [11:33] Ubit Umarov: nad very hard to debug [11:33] Ubit Umarov: usually we only get BUMMMMM region died [11:33] Ubit Umarov: kind of reports :P [11:34] Ubit Umarov: in windows case a BSOD is also possible :) [11:34] Michael.Christopher @cc.opensimulator.org:8002: :)) [11:34] Ubit Umarov: the last one i got was testing ode.dll changes [11:34] Ubit Umarov: :) [11:34] Michael.Christopher @cc.opensimulator.org:8002: ouch [11:35] Ubit Umarov: another changes where a few recent bug fixes [11:35] Ubit Umarov: changed some user por uuid parse by tryparse [11:35] Ubit Umarov: because parse now does stop with a error, like guid does. [11:36] Ubit Umarov: in past it did not, just did return uuid.zero, like tryparse does [11:36] Ubit Umarov: same on int, vector3 and bool parse [11:37] Ubit Umarov: ofc made a silly bug on that, found by vicent and now also fixed [11:37] Ubit Umarov: the avatars new jump code also had a small issue [11:37] Ubit Umarov: jumps on top of a mesh prim where a lot shorter than on top of a normal prim or terrain [11:38] Ubit Umarov: added some work aroudn on that.. they look similar again [11:38] Ubit Umarov: issue is how collision is detected... [11:39] Ubit Umarov: on a simulation look, a avatar collsion with any prim returns at most 2 collisions [11:39] Ubit Umarov: with a mesh can returrn like 80... [11:40] Ubit Umarov: hte overall IsColliding basicly counts collisions [11:40] Ubit Umarov: so.. well bad :) [11:40] Ubit Umarov: should be better now [11:40] Ubit Umarov: but other area of code tha tneeds revision [11:41] Ubit Umarov: still old ode code structure.. [11:41] Ubit Umarov: sadly not the best.. but still there [11:41] Ubit Umarov: i had also broken sits :p [11:42] Ubit Umarov: in same cases, depending on timing, the sit rotation could be lost due to a delayed update sent by viewers [11:42] Ubit Umarov: still with a standing rotation... [11:43] Ubit Umarov: that delayed one is again ignored... [11:44] Ubit Umarov: hope you all see others sitting right here now :) [11:44] Selby.Evans @grid.kitely.com:8002: I do [11:45] Ubit Umarov: wel was a bit random, but we coudl see wrong rotations as i told [11:46] Ubit Umarov: typical opensim... 1 improvement 2 new bugs [11:46] Ubit Umarov: oops :p [11:46] Michael.Christopher @cc.opensimulator.org:8002: lol [11:46] Ubit Umarov: ( still looking for the second bug on that :P ) [11:47] Ubit Umarov: about ubode unmaged code, i can only compile for win32, 64 and linux64 [11:47] Ubit Umarov: not mac or linux32 [11:48] Ubit Umarov: good news is that gavin told he will complie for mac in next few days [11:48] Ubit Umarov: as i did many times in past [11:48] Ubit Umarov: i mean as HE did.. [11:48] Ubit Umarov: :) [11:48] Michael.Christopher @cc.opensimulator.org:8002: ok good lol i was trying to think of a way to safely offer to use ours  :)) [11:49] Ubit Umarov: so mac users will also get the happy BSODs [11:49] Ubit Umarov: ( not sure if also blue on mac ) [11:51] Ubit Umarov: so what news do you have? [11:52] Michael.Christopher @cc.opensimulator.org:8002: done with the patent filing and supposed to have a database specialist on the way over to try ti figure out where we should start [11:52] Andrew Hellershanks: Hearing that Gavin is still working on the code is good news. [11:52] Andrew Hellershanks: Michael, what patent filing? [11:53] Michael.Christopher @cc.opensimulator.org:8002: reality integration layer [11:53] Ubit Umarov: Well and speaking of Gavin, there is a new pre-release Firestorm [11:53] Ubit Umarov: oops lol :) [11:53] Andrew Hellershanks: :) [11:53] Ubit Umarov: that includes now LL code with inventory validation [11:54] Ubit Umarov: seems some people is getting errors on that and can't use the viewer [11:54] Ubit Umarov: i have no idea still [11:54] Ubit Umarov: but that "validation" is ofc acording to current lindens idea of what a inventory should be [11:54] Ubit Umarov: would not be suprised if the also had fails at SL [11:55] Ubit Umarov: but sadly many to be expected here, with the old inventories some ppl have [11:55] Kayaker Magic: The new FS beta solves a problem with Vivox that Kitely was having with HG TPs. [11:55] Ubit Umarov: ahh the loop thing? [11:56] Kayaker Magic: I hear Vivox was hanging up on an HG TP [11:56] Ubit Umarov: seem a commi tby Beq fixing that [11:56] Ubit Umarov: seems the viewer was placed on a never ending loop :) [11:57] Kayaker Magic: Right. That has been fixed! [11:57] Michael.Christopher @cc.opensimulator.org:8002: Opensim was the original inspiration, but "the same solution" should be usable in most to all virtual environments. It's a question of use case for each company how they would best use it (end users should benefit from our platform but not have to pay for it) [11:57] Ubit Umarov: well the rebakes 2 seconds or so afatasr arrival on a region also now gone [11:58] Ubit Umarov: i did spoke about that fix on another meeting [11:58] Ubit Umarov: me rye and beq [11:59] Selby.Evans @grid.kitely.com:8002: must go -- bye all [11:59] Ubit Umarov: and the bad extra "!" [11:59] Michael.Christopher @cc.opensimulator.org:8002: bye selby! [12:00] Andrew Hellershanks: Bye, Selby [12:00] Andrew Hellershanks: Another hour has gone by. Any last minute items for today? [12:00] Michael.Christopher @cc.opensimulator.org:8002: not here [12:01] Kayaker Magic: Not from me! [12:01] Andrew Hellershanks: ok. I don't see anyone else typing so I will take that as a no from the others. [12:01] Andrew Hellershanks: Thank you all for coming. See you again next week. [12:01] Michael.Christopher @cc.opensimulator.org:8002: have a great week everyone!