Commit Graph

4254 Commits

Author SHA1 Message Date
Aleric Inglewood
e3fec7c715 AIPerService improvements.
* Removed the 'RequestQueue' from other PerServiceRequestQueue occurances
  in the code.
* Made wantsMoreHTTPRequestsFor and checkBandwidthUsage threadsafe (by
  grouping the static variables of AIPerService into thread ThreadSafe
  groups.
2013-05-07 16:10:09 +02:00
Aleric Inglewood
410f9d92a5 Minor improvemnt of coding style. 2013-05-07 02:01:31 +02:00
Aleric Inglewood
84e7f15dc5 Fix initialization list order (compiler warnings) 2013-05-06 03:26:22 +02:00
Aleric Inglewood
1d629438c0 Add HTTP bandwidth throttling for every other responder.
Most notably getMesh (the only one possibly using any significant
bandwidth), but in general every type of requests that just have to
happen anyway and in the order they are requested: they are just passed
to the curl thread, but now the curl thread will queue them and hold
back if the (general) service they use is loaded too heavily.
2013-05-06 02:54:10 +02:00
Aleric Inglewood
75a45f501e Moved a part of AIPerService::wantsMoreHTTPRequestsFor to a new function.
The new function is AIPerService::checkBandwidthUsage.
No functional changes were made.
2013-05-06 02:54:10 +02:00
Aleric Inglewood
fd3e8e4a23 Preparation for AIPerService::checkBandwidthUsage.
Don't pass arguments to wantsMoreHTTPRequestsFor, but use globals in
llmessage: AIPerService::sHTTPThrottleBandwidth125 and
AIPerService::sNoHTTPBandwidthThrottling instead.

This is needed later on.
2013-05-06 02:54:03 +02:00
Aleric Inglewood
32a5494c79 Limit sMaxPipelinedRequests changes to once per 40ms, plus code clean up.
Mostly renaming stuff and moving static variables to class AIPerSerive.
2013-05-04 20:02:21 +02:00
Aleric Inglewood
4cc42cd5bd Fix for file-5.14 2013-05-03 19:05:31 +02:00
Aleric Inglewood
4983fd6ab6 Allow switching between HTTP and UDP inventory without relogging.
This also makes the viewer immune for grids that send the FetchInventory2 et al
capabilities regardsless of whether we requested them (in fact, we always
request them now: we need them when someone switches in the middle of a session).

Note that (I tested that) textures could already be switched between
HTTP and UDP without relogging.
2013-05-03 18:24:33 +02:00
Aleric Inglewood
673e96e829 Linux script fix at exit viewer. 2013-05-03 00:06:32 +02:00
Aleric Inglewood
13e246611d Make refresh_desktop_app_entry.sh executable. 2013-04-30 22:48:32 +02:00
Aleric Inglewood
873b61c39d Fix comment. 2013-04-30 22:16:29 +02:00
Aleric Inglewood
60a47b8915 Merge remote-tracking branch 'singu/master' 2013-04-30 20:43:40 +02:00
Aleric Inglewood
0c7e62ab59 Add throttling to HTTP inventory (bulk) fetching.
Call AIPerService::wantsMoreHTTPRequestsFor in
LLInventoryModelBackgroundFetch::bulkFetch to determine if curl is ready
for the next batch or not, instead of using inaccurate heuristic code
that is just guessing a bit.
2013-04-30 20:36:00 +02:00
Aleric Inglewood
a1a019d319 Don't call LLInventoryModelBackgroundFetch::backgroundFetchCB unnecessarily
Remove LLInventoryModelBackgroundFetch::backgroundFetchCB from
gIdleCallbacks when we don't need it anymore.
2013-04-30 20:34:01 +02:00
Aleric Inglewood
3cedc7bb81 Stats floater fix up.
Add '(UDP)' after Objects, to show that this is UDP bandwidth.
Do not add the received HTTP texture bytes to gTextureList.sTextureBits,
making it (and the 'UDP Textures' graph) indeed pure UDP.
2013-04-30 20:30:46 +02:00
Aleric Inglewood
74023d5303 Compile fix.
Move the destructor (and copy constructor while I was at it) to the .cpp
file in order to avoid instantiating the destructor of
boost::intrusive_ptr<ThreadSafeBufferedCurlEasyRequest> from a header,
which would require the class ThreadSafeBufferedCurlEasyRequest
to be defined in that header, which is unnecessary. In other words,
this avoid the need to include "aicurl.h" in headers using
AIPerService[Ptr].

Also fixed indentation of a comment.
2013-04-30 20:23:42 +02:00
Aleric Inglewood
2a9c48d8d3 Add debug function 'is_single_threaded'
Usage:

AIThreadID foo(AIThreadID::none);

...

  llassert(is_single_threaded(foo));
...
  llassert(is_single_threaded(foo));
...
etc

The first call to is_single_threaded(foo) remembers the thread,
and after that it is enforced that any call from anywhere that uses foo
is done by the same thread.

If AIThreadID::none is omitted then the thread is enforced to the thread
that creates the AIThreadID.
2013-04-30 20:22:38 +02:00
Aleric Inglewood
19e16240d4 Less overshoot in HTTP bandwidth graph for higher values. 2013-04-30 19:13:06 +02:00
Latif Khalifa
e1df1b98f7 Merge remote-tracking branch 'aleric/master' 2013-04-28 23:35:30 +02:00
Melanie
c1e31c403e Make sure we only do a show in inventory if a sinle item is given. Enything else makes no sense or bombs 2013-04-28 23:32:17 +02:00
Melanie
2cfafadbcd Merge branch 'master' of github.com:singularity-viewer/SingularityViewer
Conflicts:
	indra/newview/hippogridmanager.cpp
	indra/newview/hippogridmanager.h
2013-04-28 20:32:58 +02:00
Melanie
aa996a3a1b Finally allow a very small communicate window to be saved and restored properly at the size the user set it. 2013-04-28 19:42:18 +02:00
Aleric Inglewood
1d2b3d3dc9 Derived classes may access this. 2013-04-28 03:31:16 +02:00
Melanie
77fdb895e6 Add CURRECY_TEXT definition and handling for internationalization 2013-04-27 02:39:39 +02:00
Aleric Inglewood
ebfb76c284 Renamed AIPerServiceRequestQueue[Ptr] to AIPerService[Ptr]
This because AIPerService now contains a lot more than just the request
queue.
2013-04-26 19:20:10 +02:00
Aleric Inglewood
6c1335af50 Moved connect limits per service to AIPerServiceRequestQueue.
Added AIPerServiceRequestQueue::mConcurrectConnections and
AIPerServiceRequestQueue::mMaxPipelinedRequests.
2013-04-26 19:13:18 +02:00
Aleric Inglewood
304e2b4958 Pass LLControlGroup* to AICurlInterface::startCurlThread instead of each Debug Setting separately. 2013-04-26 16:47:22 +02:00
Aleric Inglewood
fb2f0dd164 Add support for uploading .anim files.
Mostly works, but
indra/newview/skins/default/xui/en-us/floater_animation_anim_preview.xml
needs work (the 'Name:' should be at the top, not the bottom).

Also, it asks if you want to upload this as temporary. It shouldn't do
that.
2013-04-25 19:05:52 +02:00
Latif Khalifa
b1ffc5b349 Merge remote-tracking branch 'lirusaito/master' 2013-04-25 07:27:13 +02:00
Latif Khalifa
dc4d458e87 Merge remote-tracking branch 'aleric/master' 2013-04-25 07:26:45 +02:00
Aleric Inglewood
e422a89de8 Bring back "Refresh Grid Info" button in grid manager.
If you clicked on 'Add' and then filled in the fields that say
'<required>'.. and then click on OK... Then all the URL's stay blank and
there is no way to fix that anymore (short of deleting the entry first
and NOT filling in the required name?!).

I added the button back to get the URL, at any time. Much more clear.
While at it, I added some tool tips and renamed 'Add' to 'Create'
because it confused the hell out of me to have a grid selected and then
needing to press 'Add' below that.. as if you add something to the
selected grid (Better would be to have the Add button above the
selector, or even be part of the selector drop down).
2013-04-25 03:32:48 +02:00
Aleric Inglewood
45e6b7975f First version of HTTP bandwidth throttling.
Adds throttling based on on average bandwidth usage per HTTP service.
Since only HTTP textures are using this, they are still starved by other
services like inventory and mesh dowloads. Also, it will be needed to
move the maximum number of connections per service the to the PerService
class, and dynamically tune them: reducing the number of connections is
the first thing to do when using too much bandwidth.

I also added a graph for HTTP texture bandwidth to the stats floater.
For some reason the average bandwidth (over 1 second) look almost like
scattered noise... weird for something that is averaged...
2013-04-24 22:04:21 +02:00
Lirusaito
b0c331266d Merge branch 'Frosting' of git://github.com/Lirusaito/SingularityViewer 2013-04-24 14:22:35 -04:00
Lirusaito
0aeafdcca7 French Translation Update! 2013-04-24 14:17:31 -04:00
Lirusaito
bca8f830f2 Group Feature Request: Optionally display indicator over typing avatar's heads.
Adds Debug Setting UseTypingBubbles
Adds "Use overhead typing indicator bubbles" to Adv. Chat-> Chat/IM
Thanks to Firestorm for this simple addition
2013-04-24 14:15:00 -04:00
Lirusaito
3a4714edb1 File Menu Frosting~
Adds Minimize All, and Change Local Textures options
People keep adding how to do Local Textures, here's an easy way right where it'd be expected!
2013-04-24 14:09:04 -04:00
Lirusaito
464b1890f5 Update to linux_tools
Modernizes viewer_manifest.py
adds install.sh and refresh_desktop_app_entry.sh for those who want to "install" Singularity to their applications.
Updates client-readme-voice.txt to explain about Multi-Voice
2013-04-24 11:37:26 -04:00
Latif Khalifa
ec8212f472 Merge remote-tracking branch 'aleric/master' 2013-04-24 04:56:19 +02:00
Latif Khalifa
891417d0a5 Merge remote-tracking branch 'lirusaito/master' 2013-04-24 04:56:05 +02:00
Lirusaito
b60ee67b0c Make GCC 4.8 a little happier by removing a copy pasted pointless line 2013-04-23 22:14:56 -04:00
Melanie
9cd9fcdfbe Allow the export check box to show for rezzed objects in opensim - fixes a copypasta error 2013-04-24 02:47:07 +02:00
Aleric Inglewood
dc5e94812c Inline accessors of HippoGridInfo. 2013-04-23 21:50:51 +02:00
Aleric Inglewood
bbee0bfdd5 Add -Wno-sign-compare back. 2013-04-23 21:37:22 +02:00
Aleric Inglewood
27549584aa Merge remote-tracking branch 'singu/master' 2013-04-23 19:41:11 +02:00
Aleric Inglewood
96d8380099 Remove -Wno-sign-compare and fix DISABLE_FATAL_WARNINGS
Turn on sign-compare warnings and allow fatal warnings when
using -DDISABLE_FATAL_WARNINGS:BOOL=OFF during configuration.
The default is no -Werror.
2013-04-23 19:37:53 +02:00
Lirusaito
c7a9bd0f4f Translation updates 2013-04-23 09:23:23 -04:00
Latif Khalifa
1f58d1250f Merge remote-tracking branch 'lirusaito/master' 2013-04-23 12:57:33 +02:00
Latif Khalifa
f1ce3c89c3 Silence warnings 2013-04-23 12:57:02 +02:00
Latif Khalifa
a5bb6114b7 Merge remote-tracking branch 'siana/master' 2013-04-23 12:19:09 +02:00