summaryrefslogtreecommitdiff
path: root/indra/newview/llvovolume.h
AgeCommit message (Collapse)Author
2012-07-17pull back fixes for 3.3.4-beta4Oz Linden
2012-07-16MAINT-1223 Fix for alpha updates not triggering LoD updates.Dave Parks
2012-06-20MAINT-794 Move flexi idleUpdate and texture animation to their own update ↵Dave Parks
queues.
2012-06-19MAINT-794 Factor out a lot of CPU overhead around updating objects.Dave Parks
2012-06-08MAINT-646 Optimize LLVolumeImplFlexible::doIdleUpdate()Dave Parks
2012-05-01MAINT-775, MAINT-1022 Regression cleanup.Dave Parks
2012-04-19MAINT-775 Cleanup of some weird corner cases on animated child prims.Dave Parks
2011-11-30Automated merge with http://hg.secondlife.com/viewer-developmentRichard Linden
2011-11-28bumped up MSVC warning level to 3 to catch more stuff that gcc catchesRichard Linden
2011-11-10SH-2644 Fix debug display that shows selection triangle count and streaming costDave Parks
2011-08-22mergeBrad Payne (Vir Linden)
2011-08-16FIX SH-859, SH-1274 - added fix for determining triangle count andNyx (Neal Orman)
performance tested impact of animated textures Also did some cleanup to ensure branch built and ran properly after last merge.
2011-07-28fix for SH-2023: Brightness Bump maps don't load when shadows are enabledXiaohong Bao
2011-04-08merging mesh-development into nyx's mesh developmentNyx (Neal Orman)
2011-04-04SH-477 Scene stats console work in progress.Dave Parks
2011-03-30SH-477 Better mesh streaming cost estimation.Dave Parks
2011-03-22initial effort to enable a debug display to show render complexity.Nyx (Neal Orman)
Using for internal demo, will get it code reviewed if it merges in.
2011-03-21mergeNyx (Neal Orman)
2011-03-11SH-477 Put estimated streaming cost back in the debug display -- use ↵Dave Parks
newfangled equation.
2011-02-11re-applying render cost changes for experimentationsNyx (Neal Orman)
2011-02-07SH-930 FIX revert ARC algorithm for merge to viewer-developmentNyx (Neal Orman)
Reverting incomplete changes to ARC so that we don't change RC when we merge down.
2011-02-03SH-861 FIX update render cost algorithm to use geometry triangle countsNyx (Neal Orman)
base cost is now geometry-based, for both meshes and prims Some of the previous weights have been recalibrated based on testing. Code reviewed by davep. Deferring QA for now until the other parts of the algorithm are updated, as re-generating the test takes time each time the algorithm changes.
2011-02-01Automated merge up from viewer-development into mesh-developmentLoren Shih
2011-01-19fix for SH-730: sculpted prim attachment shapes on impostored avatars load ↵Xiaohong Bao
very slowly
2010-10-13correct licenses (fix problem with license change merge)Oz Linden
2010-09-29SH-224 Add new streaming cost algorithm debug displays to viewer.Dave Parks
Add the ability to clear LOD slots. Make triangle count UI more responsive to Generate LOD button. Add triangle count debug display for current selection. Reviewed by Nyx
2010-09-27mergeDave Parks
2010-09-21Fix for build failures - disabling tcmalloc for nowBrad Payne (Vir Linden)
2010-09-20Stop using ll_aligned_malloc/free in llvolume.Dave Parks
Fix for garbage data in vertex weight array crashing software skinning. Proper integration of picking for rigged attachhments. Optimization in LLDrawable::updateDistance (don't call updateRelativeXform, just use spatial group position).
2010-09-19Raycasting for rigged attachments now works for your own attachments while ↵Dave Parks
in edit mode.
2010-09-01CTS-231 WIP create new ARC algorithm to be more accurate and account for meshesNyx (Neal Orman)
First pass - uses the new algorithm to hopefully be more accurate of render load on low-end machines. Also accounts for mesh complexity, including if a mesh is weighted or non-weighted. Code reviewed by davep
2010-08-25mergeDave Parks
2010-08-24Backed out changeset c3d41f18ce2bTofu Linden
back-out the back-out for this branch. yay.
2010-08-24Backed out changeset a62bf7c0af21Tofu Linden
Backing out this merge that I pushed (prematurely) to the wrong place.
2010-08-24merge heads. whew.Tofu Linden
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-07-29Yet more cleanup around llmediadataclient.Monroe Linden
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.
2010-07-29Yet more cleanup around llmediadataclient.Monroe Linden
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.
2010-06-03Vectorized octree and much of llspatialpartition and lldrawable.Dave Parks
Octree driven raycast.
2010-02-09mergedavep@billy.gateway.2wire.net
2010-02-05EXT-4209 Fix for sculptie prims not updating geometry when texture is loaded.Dave Parks
2010-02-01start to abstract-out the 'is a spotlight' question so one day we can ↵Tofu Linden
perhaps make the UI hurt less.
2010-02-01start to abstract-out the 'is a spotlight' question so one day we can ↵Tofu Linden
perhaps make the UI hurt less.
2010-02-01start to abstract-out the 'is a spotlight' question so one day we can ↵Tofu Linden
perhaps make the UI hurt less.
2009-12-18Merge with viewer-2-0Dave Parks
2009-12-14Merge of my old precompiled headers dependency cleanup with tip of viewer-2-0.brad kittenbrink
2009-12-14Merging in latest viewer 2Palmer Truelson
2009-12-11Mergeskolb
2009-12-11EXT-2718 avatar render cost higher in 2.0 than in 1.23Nyx (Neal Orman)
previous fix fixed the double-counting of texture costs. resulting ARC was ~99 points higher for most avatars. This patch makes the cost shoot up again, as ARC was improperly computed in 1.23 and before. This makes the cost for an avatar increase 10 points per prim instead of per-attachment, which is how we have documented it. Also used constants to eliminate magic numbers and increased ARC limit from 1024 to 2048. Will request feedback on change from BSI:STU Code reviewed by Bigpapi --HG-- branch : avatar-pipeline
2009-12-10PARTIAL DEV-43869: LLMediaDataClient now uses two queuesRick Pasetto
This is a fairly major change that addresses the issue of an object with constantly-updating media. Before, that object would be put into our single queue and sorted to a particular spot, and since it continuously updates, it would "always be there". That means that nothing "behind" it would ever get serviced. This change introduces two queues for each MDC: one is the same "sorted" queue as before, and the other is unsorted, and "round-robins". New objects go into the sorted queue, objects whose media we already know about get put into the unsorted queue. The two queues are interleaved when serviced (one then the other is serviced -- if one is empty we try the other -- until they are both drained). The round-robin queue works a little differently: after an item is fetched from that queue (remember this would be an item we already know about), that request is marked and put back at the end of the queue. If that object gets a UDP update while in the queue, that mark is "cleared". When it gets to the front of the queue again, if it still marked, it is thrown away. If it is not marked, it is fetched, and again marked and put at the end. This makes the queue self-limiting in how big it can get. I have also made some other changes: - The sorting comparator now just delegates to the object for its "interest" calculation. A higher value = more interesting. LLVOVolume now uses its PixelArea for its "interest" calculation, which seems apparently better (the prior distance calculation was wrong anyway). - The score is cached before the sort operation is performed, so that it won't be expensive to sort - Now, the media version that is fetched is saved in the LLVOVolume, and we do not update if it is not newer (this is not very useful...yet.) - I've introduced hard limits (settable by debug settings) on the size of the queues. The sorted queue will be culled (after sort) to that count. NOTE: this will probably get removed in a later checkin, as I've already gotten feedback that this is not desirable - I've reorganized LLMediaDataClient so it makes more sense. - I've made the request object a little smaller, so the queue won't take up so much memory (more work could be done here) - Added a unit test for the two-queue case (though more tests are needed!)