Jump to content

ALM Proposal / Work


Perrie Juran
 Share

You are about to reply to a thread that has been inactive for 521 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

On 9/25/2022 at 12:47 PM, Jenna Huntsman said:

The minimum specs on the SL website have long been out-of-date. If you tried to run SL on a computer built to those exact specs, chances are the viewer wouldn't even run.

SL wouldn't run because a minimum spec PC can't even run Windows. Maybe LL should stop telling people SL will run on hardware that can't run anything anymore.

Edited by Lyssa Greymoon
  • Like 2
Link to comment
Share on other sites

18 hours ago, EliseAnne85 said:

A problem with this though is the maps.  The current normal maps will not work.  So, that's billions of dollars of content that is already created that would have to upgraded.

Old normal maps should work just fine in a PBR context. Old specular maps won't but if I understand right, they're including special "legacy" code to handle that.

 

18 hours ago, EliseAnne85 said:

Also, builders need a good light to build and some of these EEP's are too dark or surreal and for photography, not building.  We need a good building light.

Oh yes, the light settings in SL is rubbish but that's an EEP/Windlight/shaders issue and although it affects rendering negatively, it's not directly related to ALM or PBR.

 

18 hours ago, EliseAnne85 said:

It sounds like two viewers are better.  Make the PBR a premium paid for viewer and keep a good lighting viewer without EEP for building.  The premium PBR paid for viewer could be then designed for those who want to do high end things with their photography and help pay to keep SL inclusive not exclusive by having another viewer for those with less hardware capabilities.

But how is the non-PBR viewer supposed to handle objects with PBR?

 

18 hours ago, Henri Beauchamp said:

I am not ”demanding other development is held back” but simply that LL keeps the same direct rendering mode as we have now (i.e. without PBR) available. This is quite feasible, even if it involves two different sets of shaders and some branching in the render pipeline

No, it won't work that way because, as I've said earlier, an albedo map is not a texture.

There is another possible solution though, server side baked textures for lower spec computers - something like this.

Edited by ChinRey
  • Thanks 2
Link to comment
Share on other sites

50 minutes ago, Fluffy Sharkfin said:

I'm certainly not a fan of the "get a better computer!" approach either

If my memory is correct, when automobiles were first being used, they barely could beat a horse in a race (if they could). A popular saying, apocryphal of course, was "Get a horse!"

So in this analogy, the "horse computer user" is saying "get a better computer!" to the "car computer user".  (Guess it doesn't make sense, but that's expecting a lot.)

  • Haha 1
Link to comment
Share on other sites

4 minutes ago, Scylla Rhiadra said:

I actually have some faith that LL isn't so stupid (or heartless) as to decide to treat SL as though it were a high-end triple A game. They know the difference, even if some people here seem not to.

I was mostly responding to the "If you're not running SL on an up-to-date gaming computer you deserve what you get" argument, which is a poor one for . . . so many reasons.

LL does need to walk a line here, and it's always been a difficult one, between modernizing as much as possible, and not breaking old content or losing older users. It's a different problem than that facing the developers of a new gaming title, in part because access to the older titles isn't contingent on the being able to use the new one, as in SL it essentially is.

It'll annoy those who expect a high-end gaming experience from SL no end, but I'm reasonably confident that LL will find a workable solution that will both produce improvements, and not leave a substantial portion of their user baser behind.

Agreed!

While I may be a technophile at heart, in reality I'm currently using a refurbished office mini-pc that goes for around $300 on amazon and has a power supply so weak that I had to opt for a bottom of the range graphics card that doesn't even have it's own cooling fan, so I certainly don't want to see LL completely abandon those with low end hardware.

At the same time I know just enough about the technical aspects of the current forward renderer and ALM and the theory behind the new PBR system to know that the upcoming changes could potentially make a huge difference to the visual quality of SL.

I say "potentially" because some of the new features are going to rely on more than just how well LL has implemented them, they're also going to be heavily reliant on how residents use them when creating content!

As a note in one of the meetings concerning reflection probes mentions

Quote

Even so, it has been suggested that time is taken to produce a “best practices” guide to using reflection probes and to provide examples of bad probe set-ups.

I think this is one area in which LL has consistently underperformed over the years, and in regards to the new reflection probes, PBR materials system and viewer performance on low end hardware I suspect that investing time to provide creators with proper instruction on how to use the new features correctly to minimize the polygon count and texel density necessary to create detailed content would probably be quite beneficial.

As has been pointed out in the past by various forumites the poor performance of the SL viewer has less to do with limitations of certain hardware than it does the way in which certain features are implemented in the software.  That aforementioned cheap graphics card that I currently have (average price $120) is also what I use when working in 3D Coat, it tends to get a little choppy if I venture over 20 million polygons on screen but other than that it works just fine.  Even low-end modern hardware is capable of displaying detailed, high quality graphics depending on how the software is written, so until we actually see the performance of this new viewer I really don't see any reason to panic.

  • Like 3
Link to comment
Share on other sites

3 minutes ago, Love Zhaoying said:

If my memory is correct, when automobiles were first being used, they barely could beat a horse in a race (if they could). A popular saying, apocryphal of course, was "Get a horse!"

So in this analogy, the "horse computer user" is saying "get a better computer!" to the "car computer user".  (Guess it doesn't make sense, but that's expecting a lot.)

You're 100% right! ... that doesn't make sense!

But I got what you meant anyway :D 

  • Thanks 1
Link to comment
Share on other sites

7 minutes ago, ChinRey said:

Old specular maps won't but if I udnerstand right, they're including special "legacy" code to handle that.

As I understand it, the RGB specular maps will essentially be completely redundant and the only requirement will be a roughness map which, since it's basically the polar opposite of a glossiness map, could be approximated by inverting the specular exponent in the alpha channel of the normal map.

  • Thanks 1
Link to comment
Share on other sites

I imagine at least one of the reasons why LL is considering the removal of forward-rendering is because they're about to have three different ways to render the scene. One for PBR, one for legacy content, and one for forward-rendering. Maintaining these so that they're all mostly in sync takes time and slows development.

The PBR update is a huge benefit to SL, so they can't really just cancel that plan (alongside other features that are coming with PBR, like reflection probes).

99.999% of SL will be legacy content when PBR comes out, and we'll never reach a point where non-PBR content will be a small enough fraction to ignore (because a bunch of really old stuff already exists in significant quantities), so they can't just completely replace/remove legacy rendering.

Forward-rendering is the only one that could even be considered for removal, to save time developing/testing, and without breaking content. LL has still acknowledged that it might be a necessary feature for some users, hence the caveat about performance gap.

Edited by Wulfie Reanimator
  • Like 7
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Paul Hexem said:

I also compared it to my motorcycle, which is way, way more expensive than my computer that runs SL fine. If you can't afford SL, then yes- you should stick to sewing and gardening if it's cheaper.

That said, you can get a really good, brand new computer that will run SL for less than 1000 USD, especially if you already have a lot of existing hardware. You can get one refurbished or build it yourself for less than 500. You can save similar money by incremental building or upgrading. I'm looking at helping a friend totally replace their PC for SL and we're going to be spending about 350, last I checked. Plus shipping.

I'll give you that laptops are a harder sell. You will be spending more if you want a laptop that can keep up, and you'll want to add some extra cooling options to it. Although if you're on a budget, you're much better off looking for clever ways to use a much cheaper desktop solution.

 

Yes, you did.  But gardening and motorcycles are too very different things. So, I needed to ask what kind of gaming computer are you taking about here as the term gaming computer is very broad spectrum.  

This above, however, makes sense.  

If I may ask a question though, does SL use more graphics than most games where you get their avatar and their build?  SL has many triangles and giant textures.  What kind of building is done on an average "game" that you go on?  Can you tell me of some games you use and how this PBR would compare to use in SL?  Will SL still have larger textures since it's user generated content and perhaps more triangles?  

I don't game so I don't know what kind of "games" you are talking about.  What games use the standard of PBR and is that user generated content?

But, also what you wrote above clarifies a lot so thanks for sharing that info.  I may have to upgrade my desktop.  I'm not sure yet....

Edited by EliseAnne85
Link to comment
Share on other sites

5 minutes ago, Fluffy Sharkfin said:

As I understand it, the RGB specular maps will essentially be completely redundant and the only requirement will be a roughness map which, since it's basically the polar opposite of a glossiness map, could be approximated by inverting the specular exponent in the alpha channel of the normal map.

Something like that, yes, but not quite.

It's all about the color of the reflection and there are two very different PBR workflows/approaches to that, both with their pros and cons:

With an RGB specular map the color is, of course, simply encoded onto the map itself. Easy enough to understand and probably the most "human friendly" approach.

With a metalness map the color of the reflection is based on the albedo map/diffuse map/base texture and the metalness map determines how much the reflection is to be colored.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

33 minutes ago, ChinRey said:

But how is the non-PBR viewer supposed to handle objects with PBR?

Yeah, I know, ChinRey.  I understand.  That would be goofy because it couldn't.  However, some people would not care.  It's their group(s) and friends that matter most.  

I like this new FS viewer, however.  If it keeps going in this direction, I hope it's gonna be good as I still like all kinds of old stuff.  I'm eclectic.  

Link to comment
Share on other sites

24 minutes ago, ChinRey said:

Something like that, yes, but not quite.

It's all about the color of the reflection and there are two very different PBR workflows/approaches to that, both with their pros and cons:

With an RGB specular map the color is, of course, simply encoded onto the map itself. Easy enough to understand and probably the most "human friendly" approach.

With a metalness map the color of the reflection is based on the albedo map/diffuse map/base texture and the metalness map determines how much the reflection is to be colored.

Yes, I posted a link (a few pages back) to a blog that has a comparison of PBR Metallic vs PBR Specular workflows and outlines the purpose of each map.

My point was that since the specular exponent map is essentially the equivalent of a glossiness map inverting it would give you the approximate equivalent of a roughness map.  As you point out the colour component of the existing RGB specular maps will be redundant since the colour of the reflections will be dictated by the base texture so the RGB channels of existing specular maps can effectively be discarded.

As for the environment intensity map currently stored in the alpha channel of 32-bit specular maps, wouldn't that be a closer approximation to a metalness map, since it dictates how much of the environment is reflected on the surface i.e. how reflective/metallic it is?

(ETA: The environment intensity map would, like the specular exponent map, have to be inverted since in metallic maps black indicates metallic/reflective surfaces while white indicates non-metallic surfaces.)

Edited by Fluffy Sharkfin
Link to comment
Share on other sites

If people provide FPS measurements without naming the viewer and version then the Lab isn't going to put much weight to the numbers. If any...

Also, the Lab is getting metrics on how viewers perform. Its been some time since I've seen stats posted. When they were we saw OS & version, viewer brand & version, crash rates, and on and on... look through the [viewer_name].log file in Windows @

C:\Users\[win_login_ID]\AppData\Roaming\Firestorm_x64\logs\Firestorm.log

The purple text changes depending on which viewer you are using.

Search on FPS and you'll find log entries like this:

2022-09-27T21:02:56Z INFO # newview/llviewerdisplay.cpp(243) display_stats : FPS: 29.10

Every time a viewer crashes these logs are sent to the Lab.

As you search you'll find:

2022-09-27T21:02:29Z INFO #FrameWatcher# llcommon/llsys.cpp(1247) FrameWatcher::tick :  slowest framerate for last 340 seconds 15.1
2022-09-27T21:02:29Z <mem>             Avail Physical KB:     10685780
2022-09-27T21:02:29Z <mem>              Avail Virtual KB:   2147483647
2022-09-27T21:02:29Z <mem>                 Avail page KB:     18627372
2022-09-27T21:02:29Z <mem>              Page Fault Count:      5783875
2022-09-27T21:02:29Z <mem>              PagefileUsage KB:      6010112
2022-09-27T21:02:29Z <mem>          PeakPagefileUsage KB:      6164548
2022-09-27T21:02:29Z <mem>         PeakWorkingSetSize KB:      2813596
2022-09-27T21:02:29Z <mem>            Percent Memory use:            0
2022-09-27T21:02:29Z <mem>               PrivateUsage KB:      6010112
2022-09-27T21:02:29Z <mem>     QuotaNonPagedPoolUsage KB:          186
2022-09-27T21:02:29Z <mem>        QuotaPagedPoolUsage KB:          897
2022-09-27T21:02:29Z <mem> QuotaPeakNonPagedPoolUsage KB:          928
2022-09-27T21:02:29Z <mem>     QutaPeakPagedPoolUsage KB:          914
2022-09-27T21:02:29Z <mem>             Total Physical KB:     33491940
2022-09-27T21:02:29Z <mem>              Total Virtual KB:   2147483647
2022-09-27T21:02:29Z <mem>                 Total page KB:     52652716
2022-09-27T21:02:29Z <mem>             WorkingSetSize KB:      2512336
2022-09-27T21:02:29Z <mem>                     timestamp: 2022-09-27T21:02:29.49Z

They don't need to ask the few of us that participate in the forum how our viewers are performing. They have data on ALL SL USERS.

5 hours ago, Solar Legion said:

ETA: 128m (max) is more than sufficient for Mainland/Continent/Cluster use when outside. 256m is more than sufficient for isolated Private Region use when outside. If you're using a vehicle you might turn these up a tiny smidge but really ... There's no need for what was put forth (256m for Mainland/Continent/Cluster, 512m for a singular Private Region).

I typically fly a Shergood helicopter with a DD of 512m. At 80kmph that gives me enough time to dodge offline regions. If I were flying a jet on an attack run at Mach-6 it wouldn't be (I would be crossing 7 regions per second). I doubt SL could keep up. But any faster mover (Mach-1) in SL crosses 1 region per second...  and the 200 or 300kmph that SL does some times OK job of supporting requires more draw distance.

Our opinions really do not represent how people are using SL.

Edited by Nalates Urriah
  • Like 4
Link to comment
Share on other sites

1 hour ago, EliseAnne85 said:

Yes, you did.  But gardening and motorcycles are too very different things. So, I needed to ask what kind of gaming computer are you taking about here as the term gaming computer is very broad spectrum.  

This above, however, makes sense.  

If I may ask a question though, does SL use more graphics than most games where you get their avatar and their build?  SL has many triangles and giant textures.  What kind of building is done on an average "game" that you go on?  Can you tell me of some games you use and how this PBR would compare to use in SL?  Will SL still have larger textures since it's user generated content and perhaps more triangles?  

I don't game so I don't know what kind of "games" you are talking about.  What games use the standard of PBR and is that user generated content?

But, also what you wrote above clarifies a lot so thanks for sharing that info.  I may have to upgrade my desktop.  I'm not sure yet....

Normally I'd tell people they need as much PC horsepower as possible because SL is so terrible. Since the performance update though, that opens up all kinds of options. Since that update, my other friend on a modest gaming PC is seeing 60 FPS regularly. 96m draw distance and ALM on, no shadows. 

You can get a refurbished office machine and stick a 1050ti in there, maybe do the power supply (it depends), then have a perfectly acceptable SL experience. You wouldn't brag about it, but it'd be fine. And not very expensive, if you take your time and shop around for the best deal on each part. 

  • Like 2
Link to comment
Share on other sites

3 minutes ago, Paul Hexem said:

Normally I'd tell people they need as much PC horsepower as possible because SL is so terrible. Since the performance update though, that opens up all kinds of options. Since that update, my other friend on a modest gaming PC is seeing 60 FPS regularly. 96m draw distance and ALM on, no shadows. 

You can get a refurbished office machine and stick a 1050ti in there, maybe do the power supply (it depends), then have a perfectly acceptable SL experience. You wouldn't brag about it, but it'd be fine. And not very expensive, if you take your time and shop around for the best deal on each part. 

That is pretty much correct...

I think between the time I joined and now SL users have become a less technically capable group. I suspect few here can actually buy computer parts and assemble them. I now find fewer people understand when I warn them that a new computer with a 4th generation i7 CPU in a laptop is not a good choice for running SL.

The marketplace for computers has gotten overly complicated for the non-techy. And far too many places are taking advantage of non-techy people. 😢

  • Like 2
Link to comment
Share on other sites

39 minutes ago, Nalates Urriah said:

If people provide FPS measurements without naming the viewer and version then the Lab isn't going to put much weight to the numbers. If any...

Also, the Lab is getting metrics on how viewers perform. Its been some time since I've seen stats posted. When they were we saw OS & version, viewer brand & version, crash rates, and on and on...

They don't need to ask the few of us that participate in the forum how our viewers are performing. They have data on ALL SL USERS.

The thing about those crash logs is that it requires the viewer to crash, and it doesn't give any hint about the difference in ALM on/off performance. Even if a user happens to crash once with ALM on, and once with ALM off, these crashes may happen at different times/places or with other different settings.

  • Thanks 1
Link to comment
Share on other sites

1 minute ago, Wulfie Reanimator said:

The thing about those crash logs is that it requires the viewer to crash, and it doesn't give any hint about the difference in ALM on/off performance. Even if a user happens to crash once with ALM on, and once with ALM off, these crashes may happen at different times/places or with other different settings.

If that were the only time this type of data is reported, I would accept your point.

Link to comment
Share on other sites

17 minutes ago, Nalates Urriah said:

If that were the only time this type of data is reported, I would accept your point.

Well, you didn't mention other times so I just went with what you said since I don't know the specifics. 😋

I still don't imagine most people switching between ALM and off very often. There's probably some people straddling the edge of which one they want/can use, but those who have been using ALM just recently got a big performance boost, and those without ALM probably know to keep it off for the sake of comfort.

Edited by Wulfie Reanimator
  • Like 1
Link to comment
Share on other sites

56 minutes ago, Paul Hexem said:

Normally I'd tell people they need as much PC horsepower as possible because SL is so terrible.

Isn't it terrible because of 'somethings' though.  In it's simplest terms, SL was designed for the Classic avatar and the built-in shapes the viewer can make for building.   We are over those now for the most part, although a SL prim is needed here and there.  

It is terrible for the humans too.  It's like you have to keep choosing 'show friends only' when many human avatars are together.  And, it's lonely and people 'want' to see the other avatars.

Tinies and Dinkies don't have the same problems humans do.  We can have hundreds of us together and it's not laggy.  How, I'm not sure *why* because tinies can have a very high complexity while Dinkies are on the lower complexity side and can have a lower complexity more like humans.  Even with BOM and our lower complexity, it's still terrible to be a human.  Something had to be done.  I understand.  Fingers crossed it's going to be good.

Edited by EliseAnne85
  • Haha 1
Link to comment
Share on other sites

4 hours ago, EliseAnne85 said:

Isn't it terrible because of 'somethings' though.  In it's simplest terms, SL was designed for the Classic avatar and the built-in shapes the viewer can make for building.   We are over those now for the most part, although a SL prim is needed here and there.  

It is terrible for the humans too.  It's like you have to keep choosing 'show friends only' when many human avatars are together.  And, it's lonely and people 'want' to see the other avatars.

Tinies and Dinkies don't have the same problems humans do.  We can have hundreds of us together and it's not laggy.  How, I'm not sure *why* because tinies can have a very high complexity while Dinkies are on the lower complexity side and can have a lower complexity more like humans.  Even with BOM and our lower complexity, it's still terrible to be a human.  Something had to be done.  I understand.  Fingers crossed it's going to be good.

I have no idea what you're talking about, but now that weed is legal, that's okay.

Link to comment
Share on other sites

SL performance and feature improvements always seem like they just get negated half the time because SL is almost entirely user generated content.

It’s sort of like that traffic theory that widening roads lowers traffic which means more people use the road until it’s just as slow as before only wider.

I’m not sure what LL can really do at this point but what holds performance back now isn’t LL backend stuff so much as SL is literally packed with unoptimized content mostly not designed with performance in mind.  
 

It even predates mesh; remember tortured prim hairs with maxxed out linksets and added on flexiprims to boot?  
 

Peope want their avs to look nice and stores need things to look nice in giant closeup ads so people buy them.  Photographers and bloggers don’t even care about performance fps for their stuff anyway.  People want to fill up their homes with decor that looks good up close.  In the end everyone then wonders why SL runs like hot garbage compared to normal games.  

 

  • Like 1
Link to comment
Share on other sites

50 minutes ago, Ernst Osterham said:

Peope want their avs to look nice and stores need things to look nice in giant closeup ads so people buy them.  Photographers and bloggers don’t even care about performance fps for their stuff anyway.  People want to fill up their homes with decor that looks good up close.  In the end everyone then wonders why SL runs like hot garbage compared to normal games.  

It's not the stuff that's the real problem, but the amount of processing and back and forth required to get it on your screen at all, and then toss in poor handling of what needs to be processed (eg stuff you cant see).

The UGC aspect is more that SL content can easily look ugly or be poorly constructed or aggressively optimized during upload to game the Li accounting system. next to the processing overheads, bad content is negligible.

SL isn't built like a game engine, it can't run like one whatever the content.

Edited by Coffee Pancake
  • Like 1
Link to comment
Share on other sites

Couple questions about the recent "Performance Improvements" viewer codebase from the Lab:

First, do we know which TPVs have incorporated that code? I'd assume Firestorm has because they have a quite recent release, and I understand they treat the render pipeline as pretty much a black box so it shouldn't cost them much effort to pull it in (depending on dependencies, I suppose). Pretty sure Catznip couldn't have because their release cycle is so long so it's been a while. I expect Henri will claim Cool has always performed better than any Linden code could ever hope to achieve and always will forever more amen. But really, Firestorm is the 800 pound gorilla here, so if it's updated, effectively everybody has updated.

Second, was performance for both forward-rendering and direct-rendering improved?

10 hours ago, Paul Hexem said:

Since that update, my other friend on a modest gaming PC is seeing 60 FPS regularly. 96m draw distance and ALM on, no shadows. 

9 hours ago, Wulfie Reanimator said:

There's probably some people straddling the edge of which one they want/can use, but those who have been using ALM just recently got a big performance boost, and those without ALM probably know to keep it off for the sake of comfort.

These suggest that it's only the direct-rendering that's been sped up, which would reduce the perceived performance advantage of the non-ALM setting. But it was my (completely uninformed) impression that both paths are faster now, which would preserve the difference and provide a  (bogus) rationale for preserving non-ALM—even if ALM is now performing better than non-ALM did before the update.

Separate from those improvements: Yesterday, at the Landed Gentry User Group (or whatever it's called), I tried to get Lindens to comment at the most basic level about whether a mobile SL experience is still in the works, germane to that assemby's interest in expanding the userbase. Couldn't get them to take the bait: response was, basically, we won't talk about that now.

That's relevant here because a mobile SL viewer is likely to be based on some way of showing the world that doesn't use high end graphics hardware on the mobile device. As I rambled earlier, I think it's increasingly crucial to support something like that, even though graphics on smartphones and tablets keep improving with each generation. They're improving, but they'll never catch up (because physics).

Thing is, it's not only phones and tablets: the whole  "business computer" market is changing radically, with "2-in-1 notebooks" and dockable tablets simply devouring both desktop and laptop markets from the low end. (And you can see why: they're a very comfortable form factor for many people's everyday computing needs.)

So a whole bunch of folks who've been worried about whether SL will continue to run on their potatoes are going to be joined by a much larger market of folks who would follow the Wall Street Journal podcast (for example) to load up SL on their shiny Surface turnips, and it would sure be nice if there were (already) a respectable SL experience for them.

Finally, "SL is not a game" cuts both ways here. The case is made that SL doesn't need fancy gaming hardware because SL is not a game. Yeah. But consider smartphones with garbage 3D graphics, yet "casual gaming" on mobile devices is a huge market. Why? Because it's gaming, more than graphics. SL does not have that gaming appeal and instead depends on appreciating an immersive virtual world environment. It simply cannot afford to be left too far behind in delivering that graphics quality because it can't fall back on addictive finger-flicking gameplay.

(For that same reason, I think high framerates are vastly overblown, both by potato-fanciers and high-end graphics afficionados. SL needs to look good because it's not a game, but SL doesn't need to look good at 60FPS—because it's not a game.)

Edited by Qie Niangao
"their" not "they're", ffs
  • Like 3
Link to comment
Share on other sites

2 hours ago, Ernst Osterham said:

I’m not sure what LL can really do at this point but what holds performance back now isn’t LL backend stuff so much as SL is literally packed with unoptimized content mostly not designed with performance in mind.

It's both the software and the content. There's certainly a lot of room for improvement in the rendering software but as you say, "widening the road" without also adressing the inefficient content issue is only likely to increase the waste, not improve the situation. On the other hand, even though more optimized content can greatly improve the visual-quality-to-performance ratio, you hit the wall way too soon.

  • Like 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 521 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...