Re: [opensource-dev] Upcoming server side avatar baking

2013-01-12 Thread Henri Beauchamp
On Sat, 12 Jan 2013 02:56:53 +0100, Latif Khalifa wrote:

 On Fri, Jan 11, 2013 at 9:13 PM, Henri Beauchamp sl...@free.fr wrote:
  Nevermind (though, having a propely built Linux Sunshine-viewer would
  still be a good thing), I figured out the bug (race condition between
  links creation in COF and rebake requests).
 
 How do you work around that? When I was implementing this in Radegast
 it seemed that the service would respond to link creation request and
 it would still sometimes fail with COF mismatch as if the baking
 service didn't get the message.

Well, my COF implementation is entirely different from LL's... For
example, it only uses 3 functions and one callback to sync the COF
(and that's because I also implemented *optional* attachments links
syncing; without the optional part, i.e. with systematic attachments
syncing, it'd take only 2 functions and one callback) and entirely
avoids LL's (ridiculously) convoluted code; so it's hard to describe
in a message...

But to avoid the race conditions, I also modified the
requestServerAppearanceUpdate() function and its callback
(RequestAgentUpdateAppearanceResponder) so that only one such callback
is active at any time (i.e. if other rebake requests are done before
the last rebake is completed (or failed), the requests are queued
(or more exactly, a mNeedsServerSideRebake flag is set and tested for
to fire a new rebake on completion of the ongoing one).
I also use a timer (gUpdateCOFTimer) that is reset each time a new
link is created and tested for before requestServerAppearanceUpdate()
is called (the latter being called in one place only, based on the
mNeedsServerSideRebake flag and on the timer value).

You'd better have a look at my code (at the end of llappearance.cpp)
for full understanding of how things work; note that I since found a
bug in it: in requestServerAppearanceUpdate(), the test for
RequestAgentUpdateAppearanceResponder::isActive() should be moved
inside the if (!responder_ptr.get()) block. The bug only affects
rebakes when a request fails and is retried within the
RequestAgentUpdateAppearanceResponder callback (which didn't seem to
happen so far on Aditi, given the very low load on the server-side
rebaker).

Note that there seem to be a server-side race condition as well:
sometimes, the rebake request succeeds (with matching COF versions)
and the viewer does recieve the UUIDs for the baked textures, but
when it attempts to fetch the corresponding textures too soon
(with 150+ FPS in the testing sims, the delay between the request
acknowlegment and the texture fetch that happens at next frame can
indeed be very short) the texture fetch fails with a 404 error: if
you retrieve it later from a browser using the failed cap, you
however do get the corresponding texture, meaning that the rebaker
replied ok to the request before the texture could be made
available by the texture server...

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Upcoming server side avatar baking

2013-01-11 Thread Henri Beauchamp
On Wed, 9 Jan 2013 17:26:51 +0100, Henri Beauchamp wrote:

 The Linux viewer available for download from Sunshine's Wiki page has
 alas been compiled with a way too new glibc end refuse to run on my
 system (Mandriva 2010.2, glibc v2.11.1), aborting with:
 bin/do-not-directly-run-secondlife-bin: /usr/lib/libstdc++.so.6:
 version `GLIBCXX_3.4.15' not found
 (required by bin/do-not-directly-run-secondlife-bin)
 
 Could we please get a viewer compiled on the same build system as the one
 used for LL's other viewers ?
 
 Thank you.
 
 Henri.
 
 PS: I'm currently testing a server-side baking compatible Cool VL Viewer
 and trying to figure out a COF version missmatch issue (which ressembles
 this one: https://jira.secondlife.com/browse/SUN-3) that could be due
 to the inventory issues on Aditi: without a known, working viewer to
 compare with, it's hard to figure out if it's a bug in my backport or
 a bug in Aditi's inventory server...

Nevermind (though, having a propely built Linux Sunshine-viewer would
still be a good thing), I figured out the bug (race condition between
links creation in COF and rebake requests).

The of the Cool VL Viewer v1.26.7.5  (experimental branch) has been
released today with server-side baking support.

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Upcoming server side avatar baking

2013-01-11 Thread Latif Khalifa
On Fri, Jan 11, 2013 at 9:13 PM, Henri Beauchamp sl...@free.fr wrote:
 Nevermind (though, having a propely built Linux Sunshine-viewer would
 still be a good thing), I figured out the bug (race condition between
 links creation in COF and rebake requests).

How do you work around that? When I was implementing this in Radegast
it seemed that the service would respond to link creation request and
it would still sometimes fail with COF mismatch as if the baking
service didn't get the message.

 The of the Cool VL Viewer v1.26.7.5  (experimental branch) has been
 released today with server-side baking support.

Great!
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Upcoming server side avatar baking

2013-01-09 Thread Henri Beauchamp
On Fri, 14 Dec 2012 16:40:58 -0500, Oz Linden (Scott Lawrence) wrote:

 For any of you developing viewers that are not in the TPV Directory and 
 so didn't get the notice there
 
 We have now made available the code for our upcoming server side baking 
 changes - you will need to update to be compatible with this in order 
 for users to see avatars correctly once the server side change is rolled 
 out to the main grid (some time  8 weeks from now, but no date has been 
 set yet).
 
 See 
 https://wiki.secondlife.com/wiki/Project_Sunshine-Server_Side_Appearance 
 for information on this new code, and watch it for updates.

The Linux viewer available for download from Sunshine's Wiki page has
alas been compiled with a way too new glibc end refuse to run on my
system (Mandriva 2010.2, glibc v2.11.1), aborting with:
bin/do-not-directly-run-secondlife-bin: /usr/lib/libstdc++.so.6:
version `GLIBCXX_3.4.15' not found
(required by bin/do-not-directly-run-secondlife-bin)

Could we please get a viewer compiled on the same build system as the one
used for LL's other viewers ?

Thank you.

Henri.

PS: I'm currently testing a server-side baking compatible Cool VL Viewer
and trying to figure out a COF version missmatch issue (which ressembles
this one: https://jira.secondlife.com/browse/SUN-3) that could be due
to the inventory issues on Aditi: without a known, working viewer to
compare with, it's hard to figure out if it's a bug in my backport or
a bug in Aditi's inventory server...
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Upcoming server side avatar baking

2012-12-17 Thread Henri Beauchamp
On Fri, 14 Dec 2012 16:40:58 -0500, Oz Linden (Scott Lawrence) wrote:

 For any of you developing viewers that are not in the TPV Directory and 
 so didn't get the notice there
 
 We have now made available the code for our upcoming server side baking 
 changes - you will need to update to be compatible with this in order 
 for users to see avatars correctly once the server side change is rolled 
 out to the main grid (some time  8 weeks from now, but no date has been 
 set yet).
 
 See 
 https://wiki.secondlife.com/wiki/Project_Sunshine-Server_Side_Appearance 
 for information on this new code, and watch it for updates.

Alas, the said repository doesn't match any of viewer-release, viewer-beta
or viewer-development code, making it impossible to get a clean diff of
the actual, related, relevant changes.

The diff I get against any of the three public branches of the viewer is
over 2Mb big and contains changes to the UI, the path finding tools, the
renderer (llrender and pipeline), the vfs, and many more cruft that seems
(but it's hard to be 100% sure for everything without carefully studying
the code) totally unrelated with the server side baking changes.

Could you please provide a repository which is the copy of the one that
was used to implement server side baking changes but that would be clean
of those changes (this way, we could create a clean diff containing only
the relevant changes, which would help immensely and prevent long trial
and error sessions figuring out what is needed or not) ?

I also deeply regret that you took the hard-coded approach (making the
baking code rely on a hard-coded inventory tree) and used the COF
directory to pick up the texture IDs to use in the bake (this should
have been provided as a list by the viewer, so that the inventory
structure is only dependent on the UI of the said viewer and on how
the users wish to arrange their own inventory). One of the flaws of
your approach is that your baking system can't detect when a change
is done to a wearable that is being worn (you admit it yourself in
the Wiki page, indicating yet another capability will be needed to
signal such a case)... A poor implementation choice, IMHO.

Regards,

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Upcoming server side avatar baking

2012-12-17 Thread Nicky Perian
Henri
I was able to merge and build and verify kokua on aditi; the top 2 commits are 
post merge tweaks. I don't know if that can help diff wise but, feel free to 
use.
The last upstream merge to kokua was viewer-release, last Monday's merge.
Nicky
https://bitbucket.org/NickyP/kokua-sunshine-external/overview





 From: Henri Beauchamp sl...@free.fr
To: Oz Linden (Scott Lawrence) o...@lindenlab.com 
Cc: opensource-dev opensource-dev@lists.secondlife.com 
Sent: Monday, December 17, 2012 2:43 AM
Subject: Re: [opensource-dev] Upcoming server side avatar baking
 
On Fri, 14 Dec 2012 16:40:58 -0500, Oz Linden (Scott Lawrence) wrote:

 For any of you developing viewers that are not in the TPV Directory and 
 so didn't get the notice there
 
 We have now made available the code for our upcoming server side baking 
 changes - you will need to update to be compatible with this in order 
 for users to see avatars correctly once the server side change is rolled 
 out to the main grid (some time  8 weeks from now, but no date has been 
 set yet).
 
 See 
 https://wiki.secondlife.com/wiki/Project_Sunshine-Server_Side_Appearance 
 for information on this new code, and watch it for updates.

Alas, the said repository doesn't match any of viewer-release, viewer-beta
or viewer-development code, making it impossible to get a clean diff of
the actual, related, relevant changes.

The diff I get against any of the three public branches of the viewer is
over 2Mb big and contains changes to the UI, the path finding tools, the
renderer (llrender and pipeline), the vfs, and many more cruft that seems
(but it's hard to be 100% sure for everything without carefully studying
the code) totally unrelated with the server side baking changes.

Could you please provide a repository which is the copy of the one that
was used to implement server side baking changes but that would be clean
of those changes (this way, we could create a clean diff containing only
the relevant changes, which would help immensely and prevent long trial
and error sessions figuring out what is needed or not) ?

I also deeply regret that you took the hard-coded approach (making the
baking code rely on a hard-coded inventory tree) and used the COF
directory to pick up the texture IDs to use in the bake (this should
have been provided as a list by the viewer, so that the inventory
structure is only dependent on the UI of the said viewer and on how
the users wish to arrange their own inventory). One of the flaws of
your approach is that your baking system can't detect when a change
is done to a wearable that is being worn (you admit it yourself in
the Wiki page, indicating yet another capability will be needed to
signal such a case)... A poor implementation choice, IMHO.

Regards,

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Re: [opensource-dev] Upcoming server side avatar baking

2012-12-17 Thread Henri Beauchamp
On Mon, 17 Dec 2012 05:35:06 -0800 (PST), Nicky Perian wrote:

 Henri
 I was able to merge and build and verify kokua on aditi; the top 2 commits 
 are post merge tweaks. I don't know if that can help diff wise but, feel free 
 to use.
 The last upstream merge to kokua was viewer-release, last Monday's merge.
 Nicky
 https://bitbucket.org/NickyP/kokua-sunshine-external/overview

I'm afraid it doesn't help. What I need to avoid wasting my little
free time in this period of the year, is a clean diff with only the
*relevant*, *minimal* changes in it.

The fact you could merge the sunshine branch with another v3-based
viewer doesn't help (you simply merged stuff that is still not
validated/adopted/committed to the viewer-development and viewer-beta
banches together the (soon) mandatory server side baking code).

Regards,

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Upcoming server side avatar baking

2012-12-17 Thread Nicky Perian
I fail to see how anyone's time (LL devs included) is more or less valuable 
during the upcoming holidays.

You can work this through to diff using hg by:

clone the sunshine repo.
find the point of first sunshine commit.
update to it
give it a sunshine bookmark or branch. doesn't matter which
update to tip and do a dummy commit (may not be needed)
clone viewer-development
pull the sunshine branch into v-d do not update or merge the branch
hg graft the beginning to end sunshine branch change sets
resolve the merges as you go
once done the sunshine branch will be re-based to the front of v-d
change the phase of all the cs, if not allready, to draft
import all to mq
un-apply all but first
fold all the un-applied to the first 
export a patch/diff.
 
this is more or less the procedure i have used to cherry pick.



 From: Henri Beauchamp sl...@free.fr
To: opensource-dev@lists.secondlife.com 
Sent: Monday, December 17, 2012 9:54 AM
Subject: Re: [opensource-dev] Upcoming server side avatar baking
 
On Mon, 17 Dec 2012 05:35:06 -0800 (PST), Nicky Perian wrote:

 Henri
 I was able to merge and build and verify kokua on aditi; the top 2 commits 
 are post merge tweaks. I don't know if that can help diff wise but, feel 
 free to use.
 The last upstream merge to kokua was viewer-release, last Monday's merge.
 Nicky
 https://bitbucket.org/NickyP/kokua-sunshine-external/overview

I'm afraid it doesn't help. What I need to avoid wasting my little
free time in this period of the year, is a clean diff with only the
*relevant*, *minimal* changes in it.

The fact you could merge the sunshine branch with another v3-based
viewer doesn't help (you simply merged stuff that is still not
validated/adopted/committed to the viewer-development and viewer-beta
banches together the (soon) mandatory server side baking code).

Regards,

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Re: [opensource-dev] Upcoming server side avatar baking

2012-12-17 Thread Henri Beauchamp
On Mon, 17 Dec 2012 09:18:04 -0800 (PST), Nicky Perian wrote:

 I fail to see how anyone's time (LL devs included) is more or less valuable 
 during the upcoming holidays.
 
 You can work this through to diff using hg by:
 
 clone the sunshine repo.
 find the point of first sunshine commit.
 update to it
 give it a sunshine bookmark or branch. doesn't matter which
 update to tip and do a dummy commit (may not be needed)
 clone viewer-development
 pull the sunshine branch into v-d do not update or merge the branch
 hg graft the beginning to end sunshine branch change sets
 resolve the merges as you go
 once done the sunshine branch will be re-based to the front of v-d
 change the phase of all the cs, if not allready, to draft
 import all to mq
 un-apply all but first
 fold all the un-applied to the first 
 export a patch/diff.
  
 this is more or less the procedure i have used to cherry pick.

Excepted that:
1.- the initial sunchine repo (from which the server baking branch was
forked: sunshine-internal ?) is not public;
2.- the first changes happened months ago and now that sunshine-external
was merged with viewer-develompent, it becomes impossible to
distinguish what commit was applied to what branch (repos are a
mess ! I always hated them !);
3.- I don't have the time to browse some 850+ pages of commits to see
when and which commit is relevant to the new code or not (it would
be simpler and faster for me to clean up by hand the diff between
viewer-develompent and sunshine-external) !

It would be MUCH simpler for LL to just clone the original repo (*they*
know when the repo was branched and what was the first commit to it),
merge the viewer-development commits into it (the same commits they
merged in the sunshine-external repo) and make the clone public.
I would then just download the sources for that clone and diff it with
sunshine-external: done !  All changes at hand in a single diff, and
all relevant to the actual task at hand.

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Upcoming server side avatar baking

2012-12-17 Thread Oz Linden (Scott Lawrence)
On 2012-12-17 03:43 , Henri Beauchamp wrote:
 On Fri, 14 Dec 2012 16:40:58 -0500, Oz Linden (Scott Lawrence) wrote:

 For any of you developing viewers that are not in the TPV Directory and
 so didn't get the notice there

 We have now made available the code for our upcoming server side baking
 changes - you will need to update to be compatible with this in order
 for users to see avatars correctly once the server side change is rolled
 out to the main grid (some time  8 weeks from now, but no date has been
 set yet).

 See
 https://wiki.secondlife.com/wiki/Project_Sunshine-Server_Side_Appearance
 for information on this new code, and watch it for updates.
 Alas, the said repository doesn't match any of viewer-release, viewer-beta
 or viewer-development code, making it impossible to get a clean diff of
 the actual, related, relevant changes.

 The diff I get against any of the three public branches of the viewer is
 over 2Mb big and contains changes to the UI, the path finding tools, the
 renderer (llrender and pipeline), the vfs, and many more cruft that seems
 (but it's hard to be 100% sure for everything without carefully studying
 the code) totally unrelated with the server side baking changes.

 Could you please provide a repository which is the copy of the one that
 was used to implement server side baking changes but that would be clean
 of those changes (this way, we could create a clean diff containing only
 the relevant changes, which would help immensely and prevent long trial
 and error sessions figuring out what is needed or not) ?

No, we can't, sorry.

That project has been in development for some months.  They have done 
very significant refactoring in order to better organize the code around 
avatar appearance, and have merged out from viewer-development a number 
of times.  The entire history is in the repository you can see, which is 
ultimately derived from an earlier version of viewer-development (you're 
just as capable of finding that fork point as anyone else is).  Yes, 
there are lots and lots of changes here.

 I also deeply regret that you took the hard-coded approach (making the
 baking code rely on a hard-coded inventory tree) and used the COF
 directory to pick up the texture IDs to use in the bake (this should
 have been provided as a list by the viewer, so that the inventory
 structure is only dependent on the UI of the said viewer and on how
 the users wish to arrange their own inventory). One of the flaws of
 your approach is that your baking system can't detect when a change
 is done to a wearable that is being worn (you admit it yourself in
 the Wiki page, indicating yet another capability will be needed to
 signal such a case)... A poor implementation choice, IMHO.

I'm sure that there were any number of fundamental design decisions that 
could have been made differently, but our purpose here is not to either 
revisit those debates or to explain why we made the choices we did.  The 
fundamental design decisions have been made, and we're going to proceed 
with the design we've got.

If you have questions about how the code works, and especially the new 
messages exchanged regarding avatar appearance, ask them here and we'll 
do what we can to help.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Upcoming server side avatar baking

2012-12-17 Thread Latif Khalifa
On Mon, Dec 17, 2012 at 10:18 PM, Oz Linden (Scott Lawrence)
o...@lindenlab.com wrote:
 I'm sure that there were any number of fundamental design decisions that
 could have been made differently, but our purpose here is not to either
 revisit those debates or to explain why we made the choices we did.  The
 fundamental design decisions have been made, and we're going to proceed
 with the design we've got.

People who don't fancy themselves to be the infallible gods of system
design often find it beneficial to hear the feedback, especially in
opensource projects. It might even lead to (gasp) more reliable system
and better customer satisfaction.

Whenever I relapse into using my time to help improve Linden Lab's
products by doing testing, filing bug reports and repro cases, Oz
Linden's attitude quickly convinces me that it's not worth it.

(This email started as my feedback about some timing issue with
network messages that could potentially cause bake fails, but then I
saw all-knowing Oz dismiss any need for it)
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


[opensource-dev] Upcoming server side avatar baking

2012-12-14 Thread Oz Linden (Scott Lawrence)
For any of you developing viewers that are not in the TPV Directory and 
so didn't get the notice there

We have now made available the code for our upcoming server side baking 
changes - you will need to update to be compatible with this in order 
for users to see avatars correctly once the server side change is rolled 
out to the main grid (some time  8 weeks from now, but no date has been 
set yet).

See 
https://wiki.secondlife.com/wiki/Project_Sunshine-Server_Side_Appearance 
for information on this new code, and watch it for updates.

___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges