Commit Graph

4051 Commits

Author SHA1 Message Date
Aleric Inglewood
bb948ce6d5 Use host:port as key for the "PerHost" request queue, instead of just the hostname.
Rationale: LL is doing all throttling per service (host:port), not per
service hostname. Also, textures and capabilities use the same host: the
sim you are connected to. Splitting the queues up on a per-service basis
will stop the textures from blocking a capability request.
2013-04-09 04:32:36 +02:00
Aleric Inglewood
3af89dd685 Temporarily add old bandwidth throttle method back. 2013-04-09 04:25:28 +02:00
Aleric Inglewood
748d339ee6 Move decision whether or not to add new HTTP request from texture fetcher to AICurl
After commit things compile again :).
The HTTP bandwidth throttling is not yet implemented. I'll put a
temporary fix back the next commit that just does it the "old way"...
2013-04-08 22:46:01 +02:00
Aleric Inglewood
8d6f5c6ffc Compile error fix.
Cannot pass non-trivially copyable type std::string through '...'.
2013-04-08 19:54:07 +02:00
Aleric Inglewood
9cc801f669 Added LLTextureFetchWorker::PerHostPtr
Points to the AIPerHostRequestQueue instance corresponding to the
hostname in LLTextureFetchWorker::mUrl. This is basically a cache as we
could of course just retrieve that instance from mUrl at any time,
everytime. Needed in a future commit.
2013-04-08 06:41:08 +02:00
Aleric Inglewood
79bcb1ec07 Print info in texture console about curl request queuing
This includes also non-texture requests (not sure if it's worth it to
explicitely separate this data for just textures).

The texture console now prints: HTTP:c/q/a/r
Where, c = number of 'add' request commands in the command queue
(minus the number of 'remove' request in the command queue and not
taking into account the command_being_processed, nor entirely being
thread-safe with regard to adding requests to 'q' or 'a' next: it is
possible that a request is no longer counted in 'c' but not yet is added
to 'q' or 'a'.
q = number of queued (throttled) requests (by the curl thread).
a = number of actually added requests (to the multi handle).
r = last returned value of 'running handles' by libcurl.

Obviously, c and q should be small (0 or 1) most of the time and a and r
should be equal and maxed out. This turns out to be the case.
2013-04-08 06:41:07 +02:00
Aleric Inglewood
c20e33c7f4 Added AIPerHostRequestQueue::queued_commands()
Returns the number of add commands minus the number of remove commands
in the command_queue for this host.
2013-04-08 06:41:07 +02:00
Aleric Inglewood
d26241c0f2 Move extract_canonical_hostname to AIPerHostRequestQueue::extract_canonical_hostname.
This to make it available to the texture fetcher.
2013-04-08 06:41:07 +02:00
Aleric Inglewood
7866c68ab2 Moved PerHostRequestQueue[Ptr] outside of AICurlPrivate.
Renamed PerHostRequestQueue and PerHostRequestQueuePtr to
AIPerHostRequestQueue and AIPerHostRequestQueuePtr respectively and
moved them to global namespace. This in preparation for using them in
the texture fetcher (as function of the hostname of the url that is
contructed there).
2013-04-08 06:41:07 +02:00
Aleric Inglewood
db7c378160 Added MultiHandle::sTotalAdded
This new variable is updated to contain the total number of requests in
MultiHandle::mAddedEasyRequests. It can be a static because MultiHandle
is a singleton (there is only one curl thread) and it has to be an
(atomic) static because we don't want to need to take the lock on
MultiHandle for accessing this variable.
2013-04-08 06:40:48 +02:00
Aleric Inglewood
6c9b136d32 Removal of HTTPRequestRate and dead code. 2013-04-08 06:39:52 +02:00
Aleric Inglewood
17455e2442 Add PerHostRequestQueue::sTotalQueued
The new variable is updated to contain the sum of the size of
PerHostRequestQueue::mQueuedRequests of every PerHostRequestQueue
object, and thus the total number of queued requests for all hosts
together.

Also added PerHostRequestQueue::host_queued_plus_added_size() which
returns the the sum of queued requests plus the requests already added
to the multi handle for this particular hostname.
2013-04-08 06:39:52 +02:00
Aleric Inglewood
f58bc148ba Add a 'size' to command_queue.
This adds a size (command_queue_st::size) to the ThreadSafe deque<Command> that was
AICurlPrivate::command_queue that is kept equal to the number of 'add'
commands in the deque minus the number of 'remove' commands in the
deque. The deque itself is now command_queue_st::commands.
2013-04-08 06:39:51 +02:00
Aleric Inglewood
07201a5cfe Add AICurlInterface::getNumHTTPRunning
Replaces LLTextureFetch::getNumHTTPRequests.
Returns AICurlInterface::Stats::running_handles.
This is work in progress that temporarily doesn't compile because
LLTextureFetch::getNumHTTPRequests is still being used somewhere.
2013-04-08 06:39:06 +02:00
Latif Khalifa
fc4fcc9450 Merge remote-tracking branch 'shyotl/master' 2013-04-06 09:26:23 +02:00
Shyotl
b16bb264cc Added an experimental new alphamask detection method(set SHUseRMSEAutoMask to TRUE to use. Adjust SHAlphaMaskMaxRMSE to tweak cutoff). Fixed per-frame sky updates hammering analyzeAlpha. 2013-04-06 02:04:46 -05:00
Latif Khalifa
5ad2e32712 Merge remote-tracking branch 'lirusaito/master' 2013-04-05 23:11:30 +02:00
Nyx Linden
987ab9c07f SH-4059 FIX other's hover parameters affects your avatar's setting
Added an additional sanity check to make sure that other avatars don't
affect your wearables.
2013-04-05 23:10:17 +02:00
Nyx Linden
1a3e2ff18e SH-4050 FIX camera goes below ground when avatar offset set to 0
Added a constraint to ensure that the avatar's height (with offset)
does not go below 0.1 meters. Camera was getting confused since the avatar's
effective height was negative.

Note the avatar is mostly underground/contorted even at 0.1 meters, but
most users setting values this low will be making ultra-tinies and would
be hiding the avatar mesh. Camera stays above ground when height is at 0.1.

Conflicts:

	indra/llappearance/llavatarappearance.cpp
2013-04-05 23:10:16 +02:00
Nyx Linden
add9bb9945 SH-4044 FIX voice dot is offset vertically if using avatar height offset
Added the height offset in one too many places. fixing.
2013-04-05 23:10:16 +02:00
Lirusaito
da55a4a51c Fix Issue 726
Instead of focusing the chat bar when the chat history floater is visible, focus it onFocusReceived
This avoids the floater grabbing focus when returning from mouselook.
2013-04-04 18:31:35 -04:00
Latif Khalifa
82ecdd1079 Merge remote-tracking branch 'lirusaito/master' 2013-04-01 17:14:56 +02:00
Latif Khalifa
1fe3bf8357 Align whitespace with upstream in hope of avoiding future merge conflicts 2013-04-01 15:19:48 +02:00
Latif Khalifa
7e11ab9e95 Merge remote-tracking branch 'shyotl/master' 2013-04-01 14:44:07 +02:00
Latif Khalifa
7c7722a049 Merge remote-tracking branch 'aleric/master' 2013-04-01 14:43:59 +02:00
Shyotl
e2255f419d Commented out a spammy llinfos message. 2013-03-30 01:26:30 -05:00
Shyotl
b07ab02f54 Added blendfunc checks when RenderDebugGL is TRUE. 2013-03-30 01:26:07 -05:00
Shyotl
03272c8875 Clamp LLMeshSkinInfo::mJointNames to a max of 64 entries. Also checking size in lldrawpoolavatar(Redundant checks added to just match similar logic LLRiggedVolume::update more closely.) 2013-03-30 01:01:53 -05:00
Shyotl
1965224912 Stabbed some blendfunc state issues. This fixes some ui flicker which popped up recently (perhaps after merging, or I just never noticed it before then) 2013-03-30 00:57:49 -05:00
Nyx Linden
2d6bc052ab SUN-57 SH-4039 FIX bake fail on non-ssb regions
We were getting the texture ID from the type,index couple, but were not
passing in index, which defaulted to 0. texture ID is available from the
texture object itself, so using that and removing the index parameter
to prevent future confusion.

Conflicts:

	indra/newview/llvoavatarself.cpp
2013-03-30 00:42:43 +01:00
Brad Payne (Vir Linden)
201647e1cf SH-4001 FIX - made local texture loading universal.
Conflicts:

	indra/newview/llvoavatarself.cpp
2013-03-30 00:37:21 +01:00
Latif Khalifa
20fe807271 First re-apply "SH-3941 SH-3954 FIX local appearance does not update properly" 2013-03-30 00:30:07 +01:00
Lirusaito
b3c78b0ca5 Fix ups for 6525ccc384
If log_path is empty, we shouldn't setChatLogsDir to it.
In fact, this may have been the cause of something Nomade Zhao brought up.

Also, InstantMessageLogPathAnyAccount was accidentally being set as a PerAccount
2013-03-29 15:53:30 -04:00
Aleric Inglewood
c14601f7c2 Avoid assertion in ~AIStateMachine upon viewer exit.
Force the state to bs_killed before clearing the list of statemachines
in AIEngine::flush().
2013-03-28 03:01:27 +01:00
Aleric Inglewood
ac84e02018 Do not use a timer for HTTP get in LLTextureFetchWorker::doWork
All HTTP timing is done by AIHTTPTimeoutPolicy.

Inside LLTextureFetchWorker::doWork when mState == SEND_HTTP_REQ,
mCanUseHTTP is true, throttling is not in effect and mURL is not empty,
mLoaded is set to FALSE, mState is set to WAIT_HTTP_REQ and
LLHTTPClient::request is called that starts the download by curl.
A call back to LLTextureFetchWorker::callbackHttpGet is guaranteed,
which causes mLoaded to be set to TRUE (HTTPGetResponder::completedRaw
calls LLTextureFetchWorker::callbackHttpGet which sets mRequestedSize to -1
(if there was an error) and mLoaded to TRUE).

Being in state WAIT_HTTP_REQ, once mLoaded == TRUE (and mRequestedSize
is -1), the different timeout errors are handled.
2013-03-27 22:37:21 +01:00
Aleric Inglewood
bbf24b4994 Indentation fix. 2013-03-27 21:45:09 +01:00
Latif Khalifa
f63286b333 Merge remote-tracking branch 'shyotl/master' 2013-03-27 10:16:30 +01:00
Shyotl
92cc65bf5e Decoupled rlva/setting based z-offset from param based z-offset. This reverts questionable changes introduced in the recent rlva merge. 2013-03-27 01:36:23 -05:00
Shyotl
60f1bada3d Undo a bit of regression in llphysicsmotion 2013-03-26 23:10:26 -05:00
Aleric Inglewood
41a0681768 Revert "Snapshot floater aesthetics"
This reverts commit 63dcd7ba32.

That commit is nonsense and only shows that Liru has no clue what he is
doing when it comes to the snapshot stuff :/.

And no, I wasn't even AWARE he made this commit, I was just happily
exploring and wanted to make a few snapshots when I suddenly noticed
that several things were BROKEN: the aspect that the fullscreen preview
was shown with was wrong, and when I wanted to limit the aspect of my
feed upload that wasn't possible anymore ?!?!??  WTF

Please don't screw up the hard work of others without at LEAST first
consulting them.
2013-03-27 02:22:48 +01:00
Aleric Inglewood
fa05647068 Compile fix 2013-03-27 00:56:28 +01:00
Latif Khalifa
303840f729 Merge remote-tracking branch 'shyotl/sunshine'
Conflicts:
	indra/llappearance/llavatarappearance.cpp
	indra/newview/character/avatar_lad.xml
	indra/newview/llagent.cpp
2013-03-26 23:54:36 +01:00
Aleric Inglewood
779f697ffb Fix yield_ms().
This fixes
https://code.google.com/p/singularity-viewer/issues/detail?id=714

The problem was a typo in AIStateMachine::sleep, >= should have been <=
which caused a state machine that uses yield_ms() to never run anymore
when next run it already should have run again. AIFilePicker is the only
state machine that currently uses yield_ms and I hadn't spotted this
because I don't have plugin messages on by default which made my viewer
just that much faster that it the yield never expired the first run
already (causing it to expire immediately).

The rest of the changes in this commit are just minor improvements /
conformation to the EXAMPLE_CODE in aistatemachine.cpp.
2013-03-26 23:30:04 +01:00
Aleric Inglewood
524fdf033d Merge remote-tracking branch 'singu/master' 2013-03-26 21:10:00 +01:00
Shyotl
441b564afe RLVa update. 2013-03-26 00:46:11 -05:00
Shyotl
1705167998 Fixed non-debug compile. 2013-03-24 23:20:40 -05:00
Aleric Inglewood
b20886a481 Allow TOS redirect. Fix upload finished detection when redirecting.
This fixes https://code.google.com/p/singularity-viewer/issues/detail?id=705

Adds 'bool redirect_status_ok(void) const { return true; }' to LLIamHere,
because it's ok to receive a 302 status there. Likewise added to LLIamHereVoice,
because that has the same comment in its error() method.

Also fixes the problem that if two redirects occur on a row, then the
upload_finished detection asserted because it would detect the third
time that libcurl turned off writing to the socket as a failure (the
second time wasn't a problem because mUploadFinished was reset upon
receiving the first 302 header, but not upon receiving the second
header).
2013-03-25 04:41:07 +01:00
Latif Khalifa
cfa3766bc7 Quick fix for the Mac build.
TODO: Make this version dependant so it works with newer Xcode too
2013-03-24 17:11:03 +01:00
Latif Khalifa
ea4f2ec7a7 Merge remote-tracking branch 'origin/sunshine2' 2013-03-24 14:23:18 +01:00
Latif Khalifa
97c340be54 Merge remote-tracking branch 'lightdrake/CupCake' 2013-03-24 14:22:44 +01:00