Chat log from the meeting on 2024-04-30

From OpenSimulator

Jump to: navigation, search
[11:06 AM PT]  Ubit Umarov: welcome
[11:06 AM PT]  Gavin.Hird thx
[11:06 AM PT]  Ubit Umarov: about last week code changes..
[11:06 AM PT]  Ubit Umarov: i  changed again some lludp processing
[11:08 AM PT]  Joe Magarac: Go on, please.
[11:08 AM PT]  Ubit Umarov: we where doing agent and session validation on each packet handler , not the packet decoder does create check methods
[11:08 AM PT]  Ubit Umarov: so they are noe just 2 or 3 lines of code and a lot earlier as part of the packet validation
[11:09 AM PT]  Ubit Umarov: another change was to turn each packet handler a static method, instead of a pre user method
[11:10 AM PT]  Ubit Umarov: we wehre creating a big "jump table" on every new user
[11:10 AM PT]  Ubit Umarov: now the table is made just once on first login
[11:11 AM PT]  Ubit Umarov: ( is it in  fact a dictionary..  but may change to a large switch/ case  that JIT may convert to jump tables..  faster that the dictionary
[11:12 AM PT]  Ubit Umarov: but not sure.. so dic will stay for now :)
[11:12 AM PT]  Gavin.Hird what was the purpose of the jump table?
[11:13 AM PT]  Ubit Umarov: this change means a few ns savings and memory on each new user
[11:13 AM PT]  Ubit Umarov: oh find the code to handle each packet type
[11:13 AM PT]  Ubit Umarov: like 220 of those
[11:13 AM PT]  Gavin.Hird oh, ok
[11:13 AM PT]  Ubit Umarov: you have those as a optimized prehash map on viewers
[11:14 AM PT]  Ubit Umarov: well im also using a new dotnet dic type that should also speedup reads
[11:15 AM PT]  Ubit Umarov: frozendictionary they call :(
[11:15 AM PT]  Ubit Umarov: it takes a normal dic as input and tries to optimize searchs
[11:16 AM PT]  Ubit Umarov: well it is working.. we are on that code :)
[11:16 AM PT]  Gavin.Hird I converted the grid to dotnet 8 at the end of last week, but have not taken your cahnges the last 3 days
[11:16 AM PT]  Lyr Lobo smiles and waves
[11:16 AM PT]  Ubit Umarov: found we had a little bug on terrain texture changes
[11:16 AM PT]  Ubit Umarov: on a change they where not sent to other ppl in region
[11:17 AM PT]  Ubit Umarov: thing is that ll uses the wrong message for it
[11:17 AM PT]  Gavin.Hird Hi Lyr
[11:17 AM PT]  Ubit Umarov: only regionhanshake message as those textures
[11:17 AM PT]  Cuga.Rajal Hi Lyr
[11:17 AM PT]  Ubit Umarov: and that should be only a login message like name implies
[11:18 AM PT]  Ubit Umarov: well it is not.. it  needed to change a few thigns about terrain...
[11:18 AM PT]  Ubit Umarov: somehow even today we had missed that and where sending regioninfo  a more reasonable packe. for that :)
[11:19 AM PT]  Ubit Umarov: htat ofc does not work..
[11:19 AM PT]  Ubit Umarov: :)
[11:20 AM PT]  Ubit Umarov: also on ludp i moved to TAP based udp communitcations code model
[11:20 AM PT]  Ubit Umarov: ie code based on tasks and a lot of compiler sugar code
[11:21 AM PT]  Ubit Umarov: that replaces the Begin / end pattern
[11:21 AM PT]  Ubit Umarov: until now the new tasks based code was jsut a wrapper on top of begin/end
[11:22 AM PT]  Ubit Umarov: now it is the main method and begin / end the wrapped methods
[11:22 AM PT]  Ubit Umarov: so i changed to it on lludp receive  and http accept and packet receive
[11:23 AM PT]  Ubit Umarov: udp send will stay as is since we are using sync methods
[11:23 AM PT]  Ubit Umarov: http server send.. will see :)
[11:25 AM PT]  Ubit Umarov: oh and i did revert to previus mysql connector from oracle..  have no reports about it :(
[11:25 AM PT]  Cuga.Rajal was there an issue with new?
[11:25 AM PT]  Ubit Umarov: yes failed on arm64
[11:25 AM PT]  Cuga.Rajal oh thats right the PI's
[11:25 AM PT]  Ubit Umarov: on rasp pis and orange ?
[11:26 AM PT]  Cuga.Rajal thx
[11:26 AM PT]  Cuga.Rajal thats a lot of stuff in one week :)
[11:26 AM PT]  Ubit Umarov: well something :)
[11:27 AM PT]  Ubit Umarov: ofc we see no effects..
[11:27 AM PT]  Jagga Meredith: is Apple M1/2/3 Arm64?
[11:27 AM PT]  Cuga.Rajal Yes, but a different type
[11:27 AM PT]  Jagga Meredith: k
[11:27 AM PT]  Cuga.Rajal and better supported on mysql
[11:27 AM PT]  Ubit Umarov: we know there is a bit less use of cpu and memory..  but well don't notice much :)
[11:28 AM PT]  Vincent.Sylvester Less cpu is always good :)
[11:29 AM PT]  Cuga.Rajal is there a user switch for the connector? or is hard coded
[11:29 AM PT]  Gavin.Hird All Apple series processors are Arm64   their own added instructions
[11:29 AM PT]  Ubit Umarov: ok..   before starting the log, you where taling about the future voice solution ll is goiung to use?
[11:30 AM PT]  Ubit Umarov: based on google (?) webrtc
[11:30 AM PT]  Vincent.Sylvester I been told it was janus on the backend, that's what I setup now
[11:31 AM PT]  Vincent.Sylvester Trying to map out the protocol and all the parts to form some form of attack plan for that project
[11:31 AM PT]  Ubit Umarov: yes they did release a lot of information about what they are using
[11:31 AM PT]  Ubit Umarov: inc links to the several tools on github
[11:32 AM PT]  Ubit Umarov: think they did not release their own changes to support 3d sound
[11:32 AM PT]  Ubit Umarov: just what is opensource
[11:32 AM PT]  Vincent.Sylvester janus actually was remarkably simple to setup, but if I understand the docs right they take the data channels it provide and process that with a custom plugin
[11:32 AM PT]  Ubit Umarov: guess data channel and sound processing...
[11:32 AM PT]  Vincent.Sylvester On the other end it seems the viewer gets the audio feed and then places the voice according to the position data
[11:33 AM PT]  Ubit Umarov: no idea how they do that..
[11:33 AM PT]  Vincent.Sylvester Unfortunately some stuff not completely documented and just snippets with the rest you have to guess
[11:33 AM PT]  Vincent.Sylvester At least we have most of the parts to reverse engineer what isn't there
[11:34 AM PT]  Ubit Umarov: dont have a TPV source code on that
[11:35 AM PT]  Ubit Umarov: and their solution is not nice..
[11:35 AM PT]  Ubit Umarov: some of that server side code they are using is linux only
[11:35 AM PT]  Ubit Umarov: bad karma :(
[11:35 AM PT]  Vincent.Sylvester The client parts are directly in the viewer, I been looking at that
[11:36 AM PT]  Vincent.Sylvester It's the data channel handler that's custom and not open
[11:36 AM PT]  Vincent.Sylvester That, I think, talks to the region, but I am not sure
[11:36 AM PT]  Ubit Umarov: only reason vivox where not was opensource/closed source issues
[11:36 AM PT]  Vincent.Sylvester There seems to be some other data as well that the viewer fetches from... somewhere on agent data
[11:36 AM PT]  Vincent.Sylvester Then you also have the voice connections across regions that changed
[11:37 AM PT]  Ubit Umarov: guess eveything changed...
[11:37 AM PT]  Vincent.Sylvester At least it is based on webrtc so not completely unknown even if I have not been getting along with that tech, good thing not the only one working on this
[11:37 AM PT]  Ubit Umarov: well that does not mean much
[11:38 AM PT]  Ubit Umarov: it is their own imp of webrtc
[11:38 AM PT]  Gavin.Hird yes
[11:38 AM PT]  Ubit Umarov: may only work with their own server side things
[11:38 AM PT]  Vincent.Sylvester There is also the matter of how to do channel switching and distribution of them on the backend
[11:38 AM PT]  Gavin.Hird if you are on the LL opensource list, Henri has posted a lot of issues
[11:39 AM PT]  Ubit Umarov: they added more caps to servers
[11:39 AM PT]  Ubit Umarov: and use some of older ones
[11:39 AM PT]  Vincent.Sylvester The base connections to webrtc are normal, it's everything after that is a bit of a mess as usual
[11:39 AM PT]  Ubit Umarov: so region servers do talk to voice oens
[11:40 AM PT]  Ubit Umarov: in fact each region gets at least one voice server for the parcels 3d voice
[11:40 AM PT]  Ubit Umarov: ( as it seems from reading the docs )
[11:41 AM PT]  Ubit Umarov: well webrtc is a mess :p
[11:41 AM PT]  Ubit Umarov: like most voice related things
[11:41 AM PT]  Ubit Umarov: a old tech that no one used because of the "details"
[11:42 AM PT]  Vincent.Sylvester You kinda have a three body problem with it too. Between the region and the potential voice server and the clients you have to figure out what to do for best latency. Ideally you want to geolocate the voice server closest to the clients, but the region is also a "client" for the data it provides so...
[11:42 AM PT]  Vincent.Sylvester You can't weigh it the same as a client so this becomes a head scratcher
[11:42 AM PT]  Vincent.Sylvester Also need to find the handoff code for switching voice servers on either ends, haven't gotten to that yet
[11:43 AM PT]  Ubit Umarov: why the old three body problem is now mentioned every where??
[11:43 AM PT]  Ubit Umarov: it is a very old thing :p
[11:43 AM PT]  Vincent.Sylvester I just like metaphors
[11:43 AM PT]  Ubit Umarov: Newton worked on it and decided that now and then God does come and fixes nature :P
[11:44 AM PT]  Ubit Umarov: ( bc the many bodies problem of solar orbits made then a lot more unstable than they look )
[11:45 AM PT]  Ubit Umarov: so esay fix..  God does fix things now and then :)
[11:45 AM PT]  Ubit Umarov: later laplace found a aproximation solution...
[11:46 AM PT]  Ubit Umarov: napoleon did not like god out of equation and asked him..
[11:46 AM PT]  Ubit Umarov: the told "Sir i had no need for the hipotesis "
[11:46 AM PT]  Vincent.Sylvester Anyways, yeah so that project is still very much in the "wtf are they doing" phase and probably will take a long time to complete
[11:46 AM PT]  Ubit Umarov: well nm
[11:47 AM PT]  Ubit Umarov: on that at least, viewers will still have both
[11:47 AM PT]  Ubit Umarov: unlike other changes they are making
[11:47 AM PT]  Ubit Umarov: like terrain pbr
[11:48 AM PT]  Ubit Umarov: without a viewer with it you see all terrain grey
[11:48 AM PT]  Gavin.Hird the dmeo was so great with very shiny rock
[11:48 AM PT]  Vincent.Sylvester So can I now turn a region into a giant mirror and nuke my framerate then?
[11:48 AM PT]  Ubit Umarov: i would like to ahd a fallback
[11:48 AM PT]  Ubit Umarov: but can't so far, bc viewers do not tell if they have pbr
[11:49 AM PT]  Vincent.Sylvester And making that assumption based on version strings is asking for trouble
[11:49 AM PT]  Ubit Umarov: and as i said only packet where we send terrain texture data is a lging handshake
[11:50 AM PT]  Ubit Umarov: its answer to region tells a few thigns about viewer caps, liek object caps
[11:50 AM PT]  Ubit Umarov: so could be a nice place to tell if they do terrain pbr
[11:50 AM PT]  Ubit Umarov: but .. 2 late lol
[11:51 AM PT]  Ubit Umarov: other way is  for them to send a fake cap
[11:51 AM PT]  Ubit Umarov: like they do in other cases...
[11:51 AM PT]  Gavin.Hird does Unity use PBR terrain?
[11:51 AM PT]  Ubit Umarov: that may also arrinve 2 late..
[11:51 AM PT]  Ubit Umarov: ofc they do
[11:51 AM PT]  Ubit Umarov: optionaly i guess
[11:52 AM PT]  Ubit Umarov: oh fs did nice changes on edit
[11:52 AM PT]  Gavin.Hird which is probablyu why the change as the owner is pushing hard on them to produce an mobile viewer, and it may need the pbr terrain to show anything at all
[11:52 AM PT]  Ubit Umarov: making easy to have the 3 kind of materials
[11:52 AM PT]  Gavin.Hird it will be a mandatory update across so no need for fallback
[11:52 AM PT]  Joe Magarac: Viewers do, apparently, tell the server if they have PBR. They request some cap and the UDP message format changes.
[11:52 AM PT]  Ubit Umarov: no they do not
[11:53 AM PT]  Ubit Umarov: i mean terrain pbr
[11:53 AM PT]  Ubit Umarov: not objects
[11:53 AM PT]  Joe Magarac: Ok, terrain PBR. Thanks.
[11:53 AM PT]  Ubit Umarov: on those..  sure..  easy to spot
[11:53 AM PT]  Joe Magarac: Objects definitely have new UDP formats and those are switched on via a cap.
[11:54 AM PT]  Ubit Umarov: thing is that on terrain they jsut send PBR asset UUIDs in place of the texture ones
[11:54 AM PT]  Ubit Umarov: so older viewers will just try to get those uuids as textures.. and find nothing
[11:55 AM PT]  Cuga.Rajal so no fallback option, the region has to be designed for one or the other
[11:55 AM PT]  Ubit Umarov: modern ones  fetch the asset and see what type it is
[11:55 AM PT]  Ubit Umarov: yeah  nonsense
[11:55 AM PT]  Ubit Umarov: many can't run the new viewers
[11:56 AM PT]  Ubit Umarov: in fact a viewer no one has still.. just a sl test one :)
[11:56 AM PT]  Ubit Umarov: that adds other things like mirrors.. whatever they are
[11:57 AM PT]  Ubit Umarov: full gltf scene import
[11:58 AM PT]  Cuga.Rajal that will be fun to implement in OS
[11:58 AM PT]  Ubit Umarov: wlel it is viewer side
[11:58 AM PT]  Vincent.Sylvester Hm now we only need a rework of the particle system to complete the bs trifecta
[11:58 AM PT]  Cuga.Rajal ahh ok
[11:58 AM PT]  Ubit Umarov: just another frontend like collada import
[11:58 AM PT]  Joe Magarac: There's a glTF import viewer from LL right now, but it's not the final format.
[11:58 AM PT]  Ubit Umarov: that is the same test viewer
[11:59 AM PT]  Vincent.Sylvester llglTF* let's be real
[11:59 AM PT]  Cuga.Rajal so likely to get added to FS at some point
[11:59 AM PT]  Ubit Umarov: they do love that crap err format
[12:00 PM PT]  Ubit Umarov: well it is colloda  in json
[12:00 PM PT]  Ubit Umarov: collada..
[12:00 PM PT]  Vincent.Sylvester most abused format of the industry
[12:00 PM PT]  Ubit Umarov: no one uses it in industy
[12:00 PM PT]  Joe Magarac: glTF isn't that bad. It beats Collada.
[12:00 PM PT]  Ubit Umarov: i mean collada
[12:01 PM PT]  Ubit Umarov: anf think no one uses gltf either
[12:01 PM PT]  Vincent.Sylvester Both are a compatibility nightmare most times, granted obj isn't much better
[12:02 PM PT]  Ubit Umarov: well they did a big mess on materials..
[12:02 PM PT]  Ubit Umarov: but what else is new? :)
[12:02 PM PT]  Vincent.Sylvester Outside of walled gardens you can't buy "game-ready" assets and import to them anything without having to touch em up or convert anyways no matter the format, problem is that is what some expect glTF to bring
[12:03 PM PT]  Vincent.Sylvester I made more progress on migrations rewrite finding more nonsense in sqlite we have been using, that's fun
[12:03 PM PT]  Ubit Umarov: yo viewr devs should try to have the materials editor similer to fs, that allows easy edit of the 2 types
[12:03 PM PT]  Ubit Umarov: or 3 considering the old old materials
[12:04 PM PT]  Ubit Umarov: actually is that one still on viewers? :)
[12:05 PM PT]  Ubit Umarov: hmm guess not :)
[12:06 PM PT]  Ubit Umarov: well time flies...
[12:06 PM PT]  Ubit Umarov: any more issues?
[12:06 PM PT]  Vincent.Sylvester I setup over 120000 16x16 regions and failed to break OpenSim
[12:07 PM PT]  Ubit Umarov: nice you did not broke any cpu :)
[12:07 PM PT]  Cuga.Rajal you can go bigger than 8x8?
[12:07 PM PT]  Ubit Umarov: you cna hack the code
[12:07 PM PT]  Vincent.Sylvester 1200 simulators each with 100 regions, so not much cpu in the end and disabled a bunch of modules
[12:07 PM PT]  Cuga.Rajal haha ok
[12:08 PM PT]  Ubit Umarov: but very BAD IDEA
[12:08 PM PT]  Ubit Umarov: larger regions will have numbers precision issues
[12:08 PM PT]  Ubit Umarov: or may have..
[12:09 PM PT]  Vincent.Sylvester I was wondering how long map tile rendering on robust would take with all that land... 3  hours with the new system
[12:09 PM PT]  Ubit Umarov: well as i said.. worse is postion resolution
[12:09 PM PT]  Ubit Umarov: go review what a floating point number is on that :p
[12:10 PM PT]  Vincent.Sylvester That already starts getting weird past 6x6 really
[12:10 PM PT]  Cuga.Rajal what gets weird?
[12:11 PM PT]  Cuga.Rajal mone has always been 8x8
[12:11 PM PT]  Vincent.Sylvester The position data starts drifting
[12:11 PM PT]  Ubit Umarov: well 4km side should still work
[12:11 PM PT]  Ubit Umarov: ( similar reason why ll does not want rex above 4km high i guess )
[12:12 PM PT]  Ubit Umarov: rez not rex :)
[12:12 PM PT]  Vincent.Sylvester It's when you go past 1500 meters when the rounding kicks in
[12:12 PM PT]  Ubit Umarov: there guess resolution is around 1mm
[12:12 PM PT]  Vincent.Sylvester It's the decision between rounding down or up that causes jitter the larger the number before the dot gets
[12:13 PM PT]  Ubit Umarov: wle its not enough bits.. period :)
[12:13 PM PT]  Cuga.Rajal So potentially some jitter when viewing objects very far away?
[12:13 PM PT]  Ubit Umarov: and to move to double would be suicida
[12:13 PM PT]  Ubit Umarov: ofc
[12:14 PM PT]  Ubit Umarov: no on any position
[12:14 PM PT]  Vincent.Sylvester Worst case I have seen is you can see your avatar move as it struggles to stay in place
[12:14 PM PT]  Vincent.Sylvester But that was like a decade ago when 32x32 regions were a thing
[12:14 PM PT]  Ubit Umarov: go review what a floating point number is :)
[12:15 PM PT]  Cuga.Rajal would that affect physics too?
[12:15 PM PT]  Ubit Umarov: wle it has a fixed part ( 24 bits) and a multiplier
[12:15 PM PT]  Cuga.Rajal or just rendering
[12:15 PM PT]  Ubit Umarov: the fix part allowd for lets say 6 decimal digits
[12:16 PM PT]  Cuga.Rajal thats not enough
[12:16 PM PT]  Ubit Umarov: near zero that means for example 6um resolution
[12:16 PM PT]  Ubit Umarov: at 1km from origin the multiplier is 1000 , so  1mm
[12:16 PM PT]  Ubit Umarov: see ?
[12:17 PM PT]  Ubit Umarov: wel simplified example... :)
[12:17 PM PT]  Cuga.Rajal so the jitter effect is worse at the corner opposite 0,0?
[12:17 PM PT]  Joe Magarac: Yes.
[12:17 PM PT]  Cuga.Rajal ah interesting
[12:18 PM PT]  Ubit Umarov: so i did limit the regions to 4km
[12:18 PM PT]  Ubit Umarov: possilble already 2 much...
[12:18 PM PT]  Cuga.Rajal someone was saying that the problem starts showing up at 6x6?
[12:18 PM PT]  Cuga.Rajal or above
[12:19 PM PT]  Ubit Umarov: wel i didn't notive much
[12:19 PM PT]  Ubit Umarov: bc our needs for resolution are not that high ( except messing with nanoprims )
[12:19 PM PT]  Ubit Umarov: and the way postion math is done, there is some mitigation of the problem
[12:20 PM PT]  Ubit Umarov: but yeah.. real
[12:20 PM PT]  Ubit Umarov: mincraft had a big blowup on that :)
[12:20 PM PT]  Vincent.Sylvester Cause a 5x5 you are still under the roll over for rounding up, with 6x6 you get to that when on the far edges so you get one less precision point
[12:20 PM PT]  Gavin.Hird sorry I need to get going
[12:20 PM PT]  Gavin.Hird cheers
[12:20 PM PT]  Cuga.Rajal good to know
[12:21 PM PT]  Joe Magarac: Me too. Bye. Thanks all!
[12:21 PM PT]  Ubit Umarov: guess 1km is a nice number
[12:21 PM PT]  Cuga.Rajal thats 4x4?
[12:21 PM PT]  Ubit Umarov: yeap
[12:21 PM PT]  Lyr Lobo: bye *smiles*
[12:21 PM PT]  Ubit Umarov: if you notice it is the map size of many games also
[12:22 PM PT]  Lyr Lobo: yes
[12:22 PM PT]  Ubit Umarov: 1km.. 2km...
[12:22 PM PT]  Cuga.Rajal I need to get going too.. take care everybody :)
[12:23 PM PT]  Ubit Umarov: global coords are actually doubles..
[12:23 PM PT]  Ubit Umarov: ( in fact a bit more )
[12:23 PM PT]  Ubit Umarov: without scaling a integer has more resolution..
[12:24 PM PT]  Ubit Umarov: 31 bits of it  versus 23 of float
[12:25 PM PT]  Lyr Lobo: Have a great day!
[12:25 PM PT]  Ubit Umarov: oh hope to see you all next week :)
[12:25 PM PT]  Ubit Umarov: if not before
Personal tools
About This Wiki