« Réunion du 31-10-2023 » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Balise : wikieditor
Aucun résumé des modifications
Balise : wikieditor
 
(9 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
* Aucun changement dans le code cette semaine.
* Aucun changement dans le code cette semaine.
* Le master va bientôt être  mis à jour vers dotnet6.
* Le master va bientôt être  mis à jour vers dotnet6.
 
= Avertissement =
= Noyau=
{{Avertissement_résumé|fond=pink |bord=red |message = Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux [http://opensimulator.org/wiki/Office_hours réunions du mardi] ou  sur [http://opensimulator.org/wiki/IRC le canal IRC]}}
= Base de données =
= Modules =
= Modules =
== Test sur les cartes de région ==
=== Test sur les cartes de région ===
* Génération d'une carte avec 13 niveaux de zoom ai lieux de 9 niveaux, 12000 tuiles de région en 20 minutes environ (10 tuiles par seconde).  
* Génération d'une carte avec 13 niveaux de zoom au lieux de 9 niveaux, 12000 tuiles de région en 20 minutes environ (10 tuiles par seconde).  
* Système beaucoup plus rapide que l'ancien système utilisé actuellement.  
* Système beaucoup plus rapide que l'ancien système utilisé actuellement. La tuile est chargée en mémoire et affichée directement dans le niveau de zoom choisi. Cela semble fonctionner correctement dans les tests. Les tuiles  sont  verrouillées et ajoutées ensuite pour qu'elles ne puissent pas  entrer en conflit  avec elles-mêmes comme elles le font actuellement. Lorsqu'une région s'enregistre, cela peut prendre un certain temps pour qu'elle apparaisse à tous les niveaux de zoom, mais la carte dans le viewer est lente à se mettre à jour au premier chargement, donc ce n'est pas un gros problème. Ensuite le chargement est rapide.  
* Le plus gros problème du système actuel est qu'il ne rend pas correctement les varregions.
* Le plus gros problème du système actuel est qu'il ne rend pas correctement les varregions.


= Bugs =
= Bugs =
== Non prise en compte des modifications des primitives ==
=== Non prise en compte des modifications des primitives ===
* Problème de [https://fr.wikipedia.org/wiki/S%C3%A9rialisation sérialisation ].
* Problème de [https://fr.wikipedia.org/wiki/S%C3%A9rialisation sérialisation ].
* Il serait utile d'avoir des tests pour vérifier que la suppression d'une prim d'une scène soit effective et ne laisse pas un fantôme de la prim.
* Il serait utile d'avoir des tests pour vérifier que la suppression d'une prim d'une scène soit effective et ne laisse pas un fantôme de la prim.
Ligne 22 : Ligne 21 :


= Tests =
= Tests =
== Tests unitaires ==
=== Tests unitaires ===
* '''Si quelqu'un veut aider à écrire des tests  il ou elle est  bienvenu.e.'''  
* '''Si quelqu'un veut aider à écrire des tests  il ou elle est  bienvenu.e.'''  
* Nunit et Xunit semblent être les deux solutions les plus utilisées actuellement. Xunit est recommandé pour l'utilisation de dotnet, Nunit étant le deuxième de la liste.
* Nunit et Xunit semblent être les deux solutions les plus utilisées actuellement. Xunit est recommandé pour l'utilisation de dotnet, Nunit étant le deuxième de la liste.
* La configuration pour faire fonctionner Xunit a réussi donc maintenant, il existe une écriture pour utiliser Xunit. Des test de Xunit sont en cours en cours et un  travail de préparation de la base de données a été réalisé.
* La configuration pour faire fonctionner Xunit a réussi donc maintenant, il existe une écriture pour utiliser Xunit. Des test de Xunit sont en cours et un  travail de préparation de la base de données a été réalisé.
* Voir [[Réunion_du_17-10-2023#Tests_unitaires | la réunion du 17-10-2023]]
* Voir [[Réunion_du_17-10-2023#Tests_unitaires | la réunion du 17-10-2023]]
* Certains anciens tests ne sont plus utiles mais d'autres ont signalé des bogues dans le passé, donc ils ne sont pas tous inutiles. Certains changements sur dotnet6 peuvent altérer les tests car les réultats attendus par les tests ont changé.
* Certains anciens tests ne sont plus utiles mais d'autres ont signalé des bogues dans le passé, donc ils ne sont pas tous inutiles. Certains changements sur dotnet6 peuvent altérer les tests car les réultats attendus par les tests ont changé.
Ligne 42 : Ligne 41 :
* Priorité : passer en revue les changements de dotnet à partir de master et écrire des tests pour ces changements.
* Priorité : passer en revue les changements de dotnet à partir de master et écrire des tests pour ces changements.


= Viewer =
= [http://opensimulator.org/wiki/Compatible_Viewers Viewer] =
== Demande des développeurs de viewers ==
=== Demande des développeurs de viewers ===
* Si OpenSimulator veut obtenir le support des viewers, il est essentiel que toutes les différences avec SL soient documentées. Les développeurs de viewers, ont VRAIMENT BESOIN de cela.
* Si OpenSimulator veut obtenir le support des viewers, il est essentiel que toutes les différences avec SL soient documentées. Les développeurs de viewers, ont VRAIMENT BESOIN de cela.
* C'est une chose plus facile à dire qu'à faire car SL ne documente correctement pas ses protocoles et tous le reste. Si les développeurs ont  des questions, ils peuvent les poser sur la liste de diffusion et sur irc toute la journée et toute la semaine.
* C'est une chose plus facile à dire qu'à faire car SL ne documente correctement pas ses protocoles et tous le reste. Si les développeurs ont  des questions, ils peuvent les poser sur la liste de diffusion et sur irc toute la journée et toute la semaine.
Ligne 57 : Ligne 56 :
** [https://wiki.secondlife.com/wiki/AIS AIS] V3 n'arrivera peut-être jamais. AIS : moyen pour le Second Life Viewer de récupérer la liste des articles d'inventaire.
** [https://wiki.secondlife.com/wiki/AIS AIS] V3 n'arrivera peut-être jamais. AIS : moyen pour le Second Life Viewer de récupérer la liste des articles d'inventaire.


== Nouveautés côté SL ==
=== Nouveautés côté SL ===
* Mise à jour de l'[https://wiki.secondlife.com/wiki/AIS AIS] qui est une véritable rupture pour le code des viewers et il y en aura d'autres.
* Mise à jour de l'[https://wiki.secondlife.com/wiki/AIS AIS] qui est une véritable rupture pour le code des viewers et il y en aura d'autres.
* Voir [[Réunion_du_03-10-2023#Viewers| Réunion du 03-10-2023]]


==[http://sldev.free.fr/ Cool Vl viewer] ==
===[http://sldev.free.fr/ Cool Vl viewer] ===
* supporte AIS.
* supporte AIS.


== Sharpview ==
=== Sharpview ===
Le support des varrégions fonctionne dans Sharpview. En grande partie. Les jonctions entre  régions ne fonctionnent pas encore.
Le support des varrégions fonctionne dans Sharpview. En grande partie. Les jonctions entre  régions ne fonctionnent pas encore.


= Projets en cours / Infos=
= Projets en cours / Infos=
* [https://wiki.secondlife.com/wiki/AIS AIS] V3: changements de code sur tout ce qui concerne le stockage... toutes les bases de données et l'enregistrement des régions.
* [https://wiki.secondlife.com/wiki/AIS AIS] V3: changements de code sur tout ce qui concerne le stockage... toutes les bases de données et l'enregistrement des régions pour SL.


= Source=
= Source=
* http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2023-10-31
* http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2023-10-31
<!--
[12:18 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: Current code uses fixed memory heavy functions to place each pixel, I just combined the images in memory via pointers, much faster that way, slightly unsafe tho
[12:19 PM PT]  Ubit Umarov: current code uses pointers also
[12:19 PM PT]  Ubit Umarov: i think...
[12:20 PM PT]  Andrew Hellershanks: I would take unsafe with it generating a tile that isn't 100% accurate as along as it won't cause a crash of the code.
[12:20 PM PT]  Ubit Umarov: wel or jsut calls draw things that do use pointers
[12:21 PM PT]  Ubit Umarov: those on win use fast directx things...
[12:21 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: bitmap get and set pixel is what it currently uses. I just load the tile into memory and dump it into whichever zoom level directly. It seems to work fine in my testing thus far. It's technically unsafe as pointers, but unless something internally breaks then it should be fine
[12:21 PM PT]  Ubit Umarov: and should use similar on linux
[12:21 PM PT]  Ubit Umarov: no those not actually the issues
[12:21 PM PT]  Ubit Umarov: we do not use bitmap set
[12:21 PM PT]  Ubit Umarov: ( i think )
[12:22 PM PT]  Ubit Umarov: when we do hard pixel xhanges we do use pointers
[12:22 PM PT]  Ubit Umarov: like on local region map draw
[12:22 PM PT]  Ubit Umarov: in fact that is the heavy work
[12:23 PM PT]  Ubit Umarov: grid side is mostly rescale and merge
[12:23 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: bm.SetPixel(x, y, c);
[12:24 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: vs just doing pointers for pixel to pixel
[12:24 PM PT]  Ubit Umarov: private void FillImage(Bitmap bm, Color c)
        {
            for (int x = 0; x < bm.Width; x  )
                for (int y = 0; y < bm.Height; y  )
                    bm.SetPixel(x, y, c);
        }
[12:24 PM PT]  Ubit Umarov: one function LOL
[12:24 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: Does some heavy lifting that thing
[12:25 PM PT]  Ubit Umarov: called on one place, to fill water with a fixed color if there is no def texture
[12:25 PM PT]  Ubit Umarov: guess not even used :)
[12:25 PM PT]  Ubit Umarov: but in fact bad code
[12:26 PM PT]  Ubit Umarov: bitmap creatiosn does even has a option to do that
[12:26 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: Setpixel is also in the resampled thing that writes the tiles, output.SetPixel on that
[12:26 PM PT]  Ubit Umarov: ( ofc all that bitmap code is officialy not supported by ms on dotnet )
[12:26 PM PT]  Orbert.Tatham @hg.zetaworlds.com: Ok, folks, my turn to bail out
[12:26 PM PT]  Orbert.Tatham @hg.zetaworlds.com: Srr you next week
[12:27 PM PT]  Orbert.Tatham @hg.zetaworlds.com: 8see
[12:27 PM PT]  Andrew Hellershanks: ok, Orbert. See you next week. Keep in mind the time change.
[12:27 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: Getpixel and setpixel slow, pointers fast
[12:27 PM PT]  Ubit Umarov: well yeah that is officiall very slow
[12:28 PM PT]  Ubit Umarov: hm and think bitmap has native comands do so it
[12:29 PM PT]  Ubit Umarov: wle i did change region side code mostly on warp3d
[12:29 PM PT]  Ubit Umarov: not much grid side
[12:30 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: Think once I am done with that entire setup it'll be a nice addition to speed up and more importantly fix up maptiles being less messy when regions register quickly one after the other
[12:30 PM PT]  Andrew Hellershanks nods
[12:30 PM PT]  Andrew Hellershanks: Sounds good, Vincent.
[12:30 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: Cause I lock the set of tiles robust has and then add them so it can't get into conflicts with itself as it currently does
[12:31 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: Course does mean when a region registers it might take however long the check interval is set for region to show up on all zoom levels, but map in viewer is slow to update anyhow so not a big deal
[12:31 PM PT]  Vincent.Sylvester @hg.zetaworlds.com: Anyway that's all from my side for this week
[12:31 PM PT]  Andrew Hellershanks: ty, Vincent.
[12:32 PM PT]  Andrew Hellershanks: On that note I will call this gathering to a close.
[12:32 PM PT]  Andrew Hellershanks: Thank you all for coming. See you again next week.
[12:32 PM PT]  Motoko.Karu @login.digiworldz.com:8002: Thanks everyone
[12:32 PM PT]  Gavin.Hird @grid.xmir.org:8002: map in viewer should only be slow on initial load. On subsequent accesses it is fast
-->

Dernière version du 5 novembre 2023 à 15:42

Changements du code de la semaine

  • Aucun changement dans le code cette semaine.
  • Le master va bientôt être mis à jour vers dotnet6.

Avertissement

Attention : Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux réunions du mardi ou sur le canal IRC


Modules

Test sur les cartes de région

  • Génération d'une carte avec 13 niveaux de zoom au lieux de 9 niveaux, 12000 tuiles de région en 20 minutes environ (10 tuiles par seconde).
  • Système beaucoup plus rapide que l'ancien système utilisé actuellement. La tuile est chargée en mémoire et affichée directement dans le niveau de zoom choisi. Cela semble fonctionner correctement dans les tests. Les tuiles sont verrouillées et ajoutées ensuite pour qu'elles ne puissent pas entrer en conflit avec elles-mêmes comme elles le font actuellement. Lorsqu'une région s'enregistre, cela peut prendre un certain temps pour qu'elle apparaisse à tous les niveaux de zoom, mais la carte dans le viewer est lente à se mettre à jour au premier chargement, donc ce n'est pas un gros problème. Ensuite le chargement est rapide.
  • Le plus gros problème du système actuel est qu'il ne rend pas correctement les varregions.

Bugs

Non prise en compte des modifications des primitives

  • Problème de sérialisation .
  • Il serait utile d'avoir des tests pour vérifier que la suppression d'une prim d'une scène soit effective et ne laisse pas un fantôme de la prim.
  • Mise en évidence :
    • Si vous déconnectez, reliez et supprimez rapidement certains éléments de la base de données, même si la région semble vide, redémarrez-la et les prims réapparaissent.
    • Prendre un objet lié, éditer les parties liées, délier une partie, dupliquer cette partie par shift drag, puis tout lier à nouveau et la charger dans l'inventaire. Au prochain redémarrage, la partie non liée est de nouveau sur le sol. Si on fait ça, on peut voir dans la base de données l'objet lié puis la prim non liée est ajoutée, ensuite le nouvel objet lié, l'objet lié d'origine qui est supprimé et ensuite quand on fait l'inventaire le nouvel objet lié est supprimé, la prim non liée reste par contre.
  • Explication possible: la façon asynchrone dont ces tâches sont planifiées pour ne pas retarder les choses et c'est si rapide que le résultat est perdu.
  • Solution : les mises à jour de la DB DOIVENT être retardées.

Tests

Tests unitaires

  • Si quelqu'un veut aider à écrire des tests il ou elle est bienvenu.e.
  • Nunit et Xunit semblent être les deux solutions les plus utilisées actuellement. Xunit est recommandé pour l'utilisation de dotnet, Nunit étant le deuxième de la liste.
  • La configuration pour faire fonctionner Xunit a réussi donc maintenant, il existe une écriture pour utiliser Xunit. Des test de Xunit sont en cours et un travail de préparation de la base de données a été réalisé.
  • Voir la réunion du 17-10-2023
  • Certains anciens tests ne sont plus utiles mais d'autres ont signalé des bogues dans le passé, donc ils ne sont pas tous inutiles. Certains changements sur dotnet6 peuvent altérer les tests car les réultats attendus par les tests ont changé.
  • Le but n'est pas de les réécrire un par un les tests, juste d'avoir des idées sur les parties à tester et peut-être sur les outils qui existent comme le moteur de script fictif, les aides de scène et autres.
  • Le plan est de documenter les tests qui existaient, de définir les tests les plus importants et de comprendre comment ils fonctionnaient. Cela pourrait donner une idée de ce qu'il faut encore tester comme :
    • 🔹 les connexions,
    • 🔹 l'inventaire,
    • 🔹 la sérialisation de la base de données,
    • 🔹 les téléports et
    • 🔹 les franchissements de régions.
    • 🔹 Les tests sur les permissions sont les plus récents, les règles de permissions de SL sont déroutantes. Le code de permission, l'accès aux parcelles et aux domaines sont un sac d'embouilles pour le moment, écrire des tests pour cela sera amusant.
    • 🔹 Idéalement il faudrait tester chaque module en lui envoyant des données et en vérifiant si le test réussit comme prévu ou échoue.
    • 🔹 Le problème des sensor est un peu plus difficile à tester. Un sensor qui ne fonctionne pas est ennuyeux, mais pas immédiatement dangereux. L'inventaire se corrompt à cause d'une mauvaise sérialisation, c'est un peu plus grave.
  • La prochaine chose à faire est de trouver comment enregistrer les résultats des tests et les intégrer à jenkins.
  • Jenkins peut tout à fait faire du dotnet, il suffit de changer quelques commandes, le reste est identique.
  • Priorité : passer en revue les changements de dotnet à partir de master et écrire des tests pour ces changements.

Viewer

Demande des développeurs de viewers

  • Si OpenSimulator veut obtenir le support des viewers, il est essentiel que toutes les différences avec SL soient documentées. Les développeurs de viewers, ont VRAIMENT BESOIN de cela.
  • C'est une chose plus facile à dire qu'à faire car SL ne documente correctement pas ses protocoles et tous le reste. Si les développeurs ont des questions, ils peuvent les poser sur la liste de diffusion et sur irc toute la journée et toute la semaine.
  • Les différences pour OpenSim :
    • le baking de l'avatar qui se fait côté viewer,
    • Les profils
    • Hypergrid
    • la gestion des varregions,
    • la longueur autorisée du fichier son,
    • la hauteur de construction, la taille maximale de la prim, le nombre de groupes autorisés, etc.
    • pas de limite pour la longueur des identifiants de groupe et tout le reste en dehors des limites de la taille des champs de la base de données,
    • alias d'url,
    • AIS V3 n'arrivera peut-être jamais. AIS : moyen pour le Second Life Viewer de récupérer la liste des articles d'inventaire.

Nouveautés côté SL

  • Mise à jour de l'AIS qui est une véritable rupture pour le code des viewers et il y en aura d'autres.
  • Voir Réunion du 03-10-2023

Cool Vl viewer

  • supporte AIS.

Sharpview

Le support des varrégions fonctionne dans Sharpview. En grande partie. Les jonctions entre régions ne fonctionnent pas encore.

Projets en cours / Infos

  • AIS V3: changements de code sur tout ce qui concerne le stockage... toutes les bases de données et l'enregistrement des régions pour SL.

Source