Age | Commit message (Collapse) | Author |
|
Added a couple of new nav states to LLViewerMediaImpl: MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS and MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS. These behave just like the corresponding states without the _SPURIOUS suffix, but will be used if the new navigate doesn't change the current URL of the impl. This allows us to catch cases like the repro of this issue and discard the spurious navigate events.
|
|
In LLVOVolume, added a count of LLMediaDataClientObjectImpl objects referencing each LLVOVolume object. This allows LLVOVolume::markDead() to skip the relatively expensive calls to removeFromQueue() when the LLVOVolume is known to have no active references.
Refactored LLMediaDataClient and its two child classes so that only LLObjectMediaDataClient has the round-robin queue (LLObjectMediaNavigateClient doesn't need it), and cleaned up some of the virtual function hierarchy around queue processing.
In LLMediaDataClient, added tracking for requests that aren't currently in a queue (i.e. requests that are in flight or waiting for retries) so they can be found when their objects are marked dead.
LLMediaDataClient::Request now directly keeps track of the object ID and face associated with the request.
Removed the "markedSent" concept from requests. Requests that have been sent are no longer kept in a queue.
The Retry timer now references the Request object instead of the Responder.
Replaced LLMediaDataClient::findOrRemove() with separate template functions for find and remove.
|
|
Added tags to some media-related logging in LLVOVolume.
Made LLMediaDataClient::Responder do most of its work in tick() instead of its destructor.
Added a comment to llmediadataclient.cpp that explains the idea behind the two-queue system.
Made LLMediaDataClient::sortQueue() remove requests from the queue that hold references to dead items. This should make teleporting away solve many of the pathological queueing cases.
Updated llmediadataclient test cases to reflect the change in behavior in sortQueue().
Removed some unnecessary const-ness in LLMediaDataClient::enqueue, which caused it to have to use const_cast.
|
|
|
|
"Anyone" is disabled.
reviewed by richard cc#216
|
|
|
|
|
|
Fix for shadow artifacts around split frusta.
Tweak for shadow aliasing with projectors.
Fix for crash on exit in mesh thread.
(transplanted from 6dcf09cd3e524016c8130a0c8af3d9fc95f2d411)
|
|
and Shadows are enabled.
|
|
deferred rendering)
(transplanted from 050ae2c9451a6b89374c5a10403f373e2475f23b)
|
|
|
|
|
|
This bugs me in a minor way. Did a search-and-cleanup on various swear words.
|
|
|
|
|
|
deferred mode. Deferred masked fullbrights are still broken (we fall back to blending instead of masking as a workaround), but they always have been. :/
|
|
get right.
Refactor some replicated and/or strangely-expressed logic.
|
|
actually "solid"
and its many many dupes.
In summary this does the following:
* When laying down alpha, uses the new separated color-and-alpha blend func support to suppress existing glow in proportion to the opacity of the incoming fragments
* Moves glowing-alpha support from the glow pool to the alpha pool, ensures that the glow pass for a vertex buffer happens after the alpha pass for the vertex buffer so that it doesn't suppress its *own* glow.
Tested with all shader modes, FBO on/off, and deferred rendering. Tested with every permutation of alpha/non-alpha/glow/non-glow/fullbright/waterglow/particle interaction I could contrive so far. :)
|
|
Added RenderUseStreamVBO to enable/disable usage of VBO's for streaming buffers.
Faster traversal of LLCullResult members.
Removal of llpushcallstacks from inner loops.
Sprinkling in fast timers.
|
|
|
|
|
|
|
|
for EXT-5550: Viewer locks up consistently on the same sim.
|
|
Checker: REVERSE_INULL
Function: LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup *)
File: /indra/newview/llvovolume.cpp
|
|
|
|
|
|
|
|
|
|
|
|
-- Further instrumentation of idle update
-- Removed mActiveQ from LLPipeline, instead making calm objects static during LLVOVolume::idleUpdate
-- Further instrumentation of flexible object update
-- Converted LLDynamicArray and LLMap members of LLViewerObjectList to stl counterparts
-- Increased number of update bins in LLViewerObjectList from 16 to 128 (objects will be processed every 128 frames instead of every 16, or ~ 90% fewer objects processed per frame)
-- Removed unused "renderObjectsForSelect" code.
-- Reenabled LOD updates for objects further than 24m from camera
|
|
guaranteed, duh.
|
|
|
|
perhaps make the UI hurt less.
|
|
Checker: UNINIT_CTOR
Function: LLVOVolume::LLVOVolume(const LLUUID &, unsigned char, LLViewerRegion *)
File: /indra/newview/llvovolume.cpp
|
|
Review #83
The function LLMediaEntry::checkCandidateURL() assumes the URL passed
in at least has a scheme part (i.e. a ":"). This fixes the bounceBack
code to assure that.
|
|
their media data
|
|
|
|
http://codereview.lindenlab.com/265005/show
|
|
Rendering cost calculations didn't handle the case of a face having no image
associated with it. Added in null checks before using the pointer to the image.
Crash no longer repros.
Code reviewed by Vir.
|
|
This is because I've observed that in heavy regions, media was
not getting loaded because the queue items were stuck with the
head item at interest = 1024. This is the "default" value, which
means it probably wasn't calculated yet. This forces the
calculation.
Also cleaned up some logging in mediadataclient
|
|
|
|
|
|
Backing out this merge that I pushed (prematurely) to the wrong place.
|
|
|
|
|
|
Added a couple of new nav states to LLViewerMediaImpl: MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS and MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS. These behave just like the corresponding states without the _SPURIOUS suffix, but will be used if the new navigate doesn't change the current URL of the impl. This allows us to catch cases like the repro of this issue and discard the spurious navigate events.
|
|
In LLVOVolume, added a count of LLMediaDataClientObjectImpl objects referencing each LLVOVolume object. This allows LLVOVolume::markDead() to skip the relatively expensive calls to removeFromQueue() when the LLVOVolume is known to have no active references.
Refactored LLMediaDataClient and its two child classes so that only LLObjectMediaDataClient has the round-robin queue (LLObjectMediaNavigateClient doesn't need it), and cleaned up some of the virtual function hierarchy around queue processing.
In LLMediaDataClient, added tracking for requests that aren't currently in a queue (i.e. requests that are in flight or waiting for retries) so they can be found when their objects are marked dead.
LLMediaDataClient::Request now directly keeps track of the object ID and face associated with the request.
Removed the "markedSent" concept from requests. Requests that have been sent are no longer kept in a queue.
The Retry timer now references the Request object instead of the Responder.
Replaced LLMediaDataClient::findOrRemove() with separate template functions for find and remove.
|
|
Added tags to some media-related logging in LLVOVolume.
Made LLMediaDataClient::Responder do most of its work in tick() instead of its destructor.
Added a comment to llmediadataclient.cpp that explains the idea behind the two-queue system.
Made LLMediaDataClient::sortQueue() remove requests from the queue that hold references to dead items. This should make teleporting away solve many of the pathological queueing cases.
Updated llmediadataclient test cases to reflect the change in behavior in sortQueue().
Removed some unnecessary const-ness in LLMediaDataClient::enqueue, which caused it to have to use const_cast.
|
|
|
|
|