Commit graph

202 commits

Author SHA1 Message Date
Atlante45
b3b2f98f6c Merge branch 'master' of https://github.com/highfidelity/hifi into fix/clear-atp-cache 2016-04-14 17:59:36 -07:00
Zach Pomerantz
f803ecd2e7 Merge pull request #7633 from Atlante45/fix/shared-resource
Fix raw pointers in shared resource cache items
2016-04-14 17:52:04 -07:00
Atlante45
4ed8573f74 CR 2016-04-14 17:28:24 -07:00
Zach Pomerantz
32e9c49cf0 Fix cache tallies for uncached resources 2016-04-14 17:00:20 -07:00
Zach Pomerantz
e20acb1d42 Track resources as they fall out of cache 2016-04-13 15:44:14 -07:00
Atlante45
0f62d5c997 clear ATP assets on domain change 2016-04-12 15:30:53 -07:00
Atlante45
7c652aa3ca Add lock on ResourceCache data structs 2016-04-12 15:30:39 -07:00
Atlante45
364f935b89 Allow cleanup of the old request 2016-04-12 13:51:11 -07:00
Atlante45
05895f628a Revert to using a Resource 2016-04-12 13:51:11 -07:00
Atlante45
e45939d18f Make sure ResourceCacheSharedItems deals with strong refs 2016-04-12 13:51:11 -07:00
Atlante45
afdfef1482 Make sure we don't use raw resource ptr 2016-04-12 13:51:11 -07:00
Clément Brisset
680ab1e38b Merge pull request #7578 from zzmp/fix/delete-resource-later
Delete resource the Qt way
2016-04-06 17:17:47 -07:00
Zach Pomerantz
4300f2e415 Delete resource the Qt way 2016-04-06 14:43:48 -07:00
Zach Pomerantz
107cfcf10b Change Resource setBytes->setSize 2016-04-04 13:59:57 -07:00
Zach Pomerantz
f34e951c3f Make resource cache props thread-safe 2016-04-04 13:59:56 -07:00
Zach Pomerantz
3c86191a59 Add resources prop to caches 2016-04-02 17:37:51 -07:00
Zach Pomerantz
b70a4d043b Expose resource cache count props 2016-04-01 19:52:42 -07:00
Zach Pomerantz
3b45a57e1d Remove resource completely when uncached 2016-04-01 17:42:36 -07:00
Zach Pomerantz
809b489146 Don't cache 0-sized Resources 2016-03-31 17:15:20 -07:00
Zach Pomerantz
b80f0fc8a6 Add actual byte size to Resource 2016-03-31 17:02:40 -07:00
Zach Pomerantz
aad40f5de0 Drop network data after processing 2016-03-25 09:58:34 -07:00
Brad Hefta-Gaub
cd5beabf10 Revert "Drop resource data after load" 2016-03-24 20:37:16 -07:00
Zach Pomerantz
afc853572a Drop resource data after load 2016-03-24 15:50:51 -07:00
Atlante45
69c516caaf Have ATP respect request limit 2016-03-23 19:09:28 -07:00
Zach Pomerantz
17aa2845a8 Add finished signal to Resource loading 2016-03-23 13:00:02 -07:00
Andrew Meadows
f58a00f75a Merge pull request #7409 from huffman/fix-handle-reply-finished
Fix edge-case where resource can receive a signal after request deleted
2016-03-21 13:10:24 -07:00
Ryan Huffman
4f32749c17 Fix edge-case where resource can receive a signal after request deleted 2016-03-21 11:54:41 -07:00
Bradley Austin Davis
16e6d9a4f9 Make shared lists thread safe 2016-03-18 11:15:35 -07:00
Mark Johnson
b7a47d7bf2 Tabs -> Spaces 2016-03-12 17:35:57 -08:00
Mark Johnson
d868b541c4 Separate the request limit value from the active request value
Use _requestLimit as the download limit, and track active downloads using
_requestsActive.  If the limit is changes below the active count, it will
continue downloading all active requests, but not allow new requests until
the active count gets below the limit.  If the limit increases, the pending
request queue will be checked immediately to fill the available download slots.
2016-03-12 17:19:29 -08:00
Zach Pomerantz
54af58834a Mark Resource loaded after postprocessing 2016-03-09 10:34:07 -08:00
Zach Pomerantz
925ea8bcda Add Resource::isCacheable 2016-03-08 13:30:58 -08:00
Seth Alves
d243132b5c quiet some logging 2015-12-10 10:28:24 -08:00
Atlante45
b7ba99380a Pretty up loading debug 2015-10-12 15:32:44 -07:00
Sam Gateau
d0f7ddd3a6 Merge branch 'master' of https://github.com/highfidelity/hifi into orange 2015-09-18 00:03:19 -07:00
Atlante45
9678e70444 Asset caching 2015-09-16 15:17:15 +02:00
Sam Gateau
c37cdce750 Merging back with master 2015-09-10 17:53:50 -07:00
Atlante45
0de4c02e8d Add time unit in debug 2015-08-31 23:24:14 +02:00
Atlante45
3f5394281b Fix HTTPS timeout issue 2015-08-31 23:20:07 +02:00
Atlante45
8f74935e96 Don't reload on error 2015-08-31 22:34:16 +02:00
Atlante45
9a9c703a78 Some code cleanup 2015-08-31 22:31:24 +02:00
Atlante45
15e9797827 CR 2015-08-31 22:12:42 +02:00
Atlante45
729fd96539 Fix bug where _requestLimit is stuck at 0 2015-08-28 22:10:33 +02:00
Atlante45
993217491f Retry to load only on timeout 2015-08-28 20:35:39 +02:00
Ryan Huffman
c6d98f3c67 Update ResourceCache to retry an asset request when the node is unavailable 2015-08-28 10:59:38 -07:00
Atlante45
ea05fcea0c Forward AssetResourceRequest loading errors 2015-08-28 16:03:31 +02:00
Ryan Huffman
2a4b25dd76 Update names of ResourceRequest enums 2015-08-27 22:23:06 -07:00
Ryan Huffman
147fbd4b54 Update ResourceCache to only emit failure when not retrying 2015-08-27 21:11:12 -07:00
Ryan Huffman
4bbbd892bd Fix atp scheme checking in ResourceCache 2015-08-27 16:46:33 -07:00
Ryan Huffman
31bdeed396 Remove cache limit for atp urls 2015-08-27 16:43:40 -07:00
Ryan Huffman
dabea21d66 Remove unused variable 2015-08-27 14:30:48 -07:00
Ryan Huffman
b401a62d7f Disable request limiting for ATP requests in ResourceCache 2015-08-27 13:58:17 -07:00
Ryan Huffman
33d6f561eb Reintroduce request limit in ResourceCache 2015-08-27 12:52:11 -07:00
Ryan Huffman
b30a008162 Fix bug with NetworkTexture occasionally breaking on assert 2015-08-27 12:48:55 -07:00
Ryan Huffman
667db200c0 Cleanup BatchLoader 2015-08-27 09:39:12 -07:00
Ryan Huffman
269d5bb6da Resolve bugs with *Cache changes 2015-08-26 14:04:55 -07:00
Ryan Huffman
aa7d8678e1 Merge branch 'protocol' of github.com:birarda/hifi into atp-server 2015-08-26 12:26:11 -07:00
Sam Gateau
1e9fce2a61 Drafting the materials for FBXReader 2015-08-25 22:12:51 -07:00
Ryan Huffman
3959928bbb Update ResourceRequest::moveData to getData 2015-08-25 15:20:00 -07:00
Anthony J. Thibault
1b3d7fabc8 ResourceCache, NetworkGeometry and Model refactoring and optimizations.
* Removed validation logic from Resource class, Qt does this internally and is more
  standards compliant.  This should result in more accurate caching and faster resource
  fetching when cache is stale and validation fails.
* Added loaded and failed slots to Resource class, so it does not have to be polled.

* NetworkGeometry now uses multiple Resource objects to download
  the fst/mapping file and the fbx/obj models.
* NetworkGeometry is no longer a subclass of Resource
* NetworkGeometry now has signals for success and failure, you no longer
  have to poll it to determine when loading is complete (except for textures *sigh*)

Some functionality was removed

* NetworkGeometry no longer has a fallback
* NetworkGeometry no longer loads LODs or has lod logic.
* The number of FBXGeometry copies is greatly reduced.

* Model::setURL no supports fallback URL, delayLoad or retainCurrent option.
  This can result in a pop when switching avatars, and there's no longer a default
  if avatar loading fails.
2015-08-20 18:59:51 -07:00
Ryan Huffman
4827d326f4 Update ResourceCache to allow multiple downloads on the same resource 2015-08-19 12:11:47 -07:00
Ryan Huffman
ccc0000fd0 Update ResourceCache to use ResourceRequest 2015-08-03 16:26:16 -07:00
Atlante45
6c591131ba Made Animations safe for resource reload 2015-07-10 12:01:51 -07:00
Atlante45
90edf055f7 Clear unused resources before refresh 2015-07-09 18:00:07 -07:00
Atlante45
ee3a8b1b6e Clear resource caches instead of restarting 2015-07-08 18:23:16 -07:00
Howard Stearns
cdef09c9dd Add comment (and force previous change to the right branch). 2015-05-11 10:12:03 -07:00
Howard Stearns
aed165809c Use resource cache as long as it is no older than network resource.
This allows chache to be used when cdn provides different values for get-vs-head, or for cdn with different resource times in different requests of different sessions.
2015-05-11 10:01:49 -07:00
Seth Alves
e6023c59c1 if _reply is NULL, it doesn't make sense to worry about if it's finished loading or not. 2015-05-10 17:15:48 -07:00
Seth Alves
cb7ff86386 put networking library into its own QLoggingCategory 2015-04-06 15:11:48 -07:00
Brad Hefta-Gaub
d77333953e Merge pull request #4552 from sethalves/island
Fix various collision-model related bugs
2015-03-31 15:47:53 -07:00
David Rowe
154dacf791 Fix typo 2015-03-31 14:21:56 -07:00
Seth Alves
9e0118492e make sure to not leave in-use resources in UnusedResource list 2015-03-31 14:04:21 -07:00
Seth Alves
087248dffc fix locking in ResourceCache::checkAsynchronousGets 2015-03-27 13:14:20 -07:00
Seth Alves
7da87d6e15 set up a way to request ResourceCache downloads from a non-networking thread. 2015-03-26 18:37:55 -07:00
Seth Alves
069c358aa3 Work around a deadlock:
thread 15 locks Octree
thread 1 blocks waiting for Octree lock
thread 15 tries to pass a message to thread 1 with QMetaObject::invokeMethod, and hangs

thread 15 is blocked on qt message passing to thread 1
  ResourceCache::getResource                       libraries/networking/src/ResourceCache.cpp:57
  GeometryCache::getGeometry                       libraries/render-utils/src/GeometryCache.cpp:1774
  ModelEntityItem::isReadyToComputeShape           libraries/entities/src/ModelEntityItem.cpp:431
  PhysicsEngine::addEntityInternal                 libraries/physics/src/PhysicsEngine.cpp:67
  EntitySimulation::addEntity                      libraries/entities/src/EntitySimulation.cpp:129
  EntityTree::postAddEntity                        libraries/entities/src/EntityTree.cpp:91
        ^ locks simulation
  EntityTreeElement::readElementDataFromBuffer     libraries/entities/src/EntityTreeElement.cpp:773
  Octree::readElementData                          libraries/octree/src/Octree.cpp:301
  Octree::readElementData                          libraries/octree/src/Octree.cpp:354
  ...
  Octree::readBitstreamToTree                      libraries/octree/src/Octree.cpp:439
  OctreeRenderer::processDatagram                  libraries/octree/src/OctreeRenderer.cpp:136
        ^ lockForWrite Octree::_lock
  OctreePacketProcessor::processPacket             interface/src/octree/OctreePacketProcessor.cpp:91
  ReceivedPacketProcessor::process                 libraries/networking/src/ReceivedPacketProcessor.cpp:51

thread 1 is blocked on lockForWrite of Octree::_lock
  Octree::lockForWrite                             libraries/octree/src/Octree.h:292
  EntityTree::update                               libraries/entities/src/EntityTree.cpp:668
        ^ lockForWrite on Octree:_lock
  EntityTreeRenderer::update                       libraries/entities-renderer/src/EntityTreeRenderer.cpp:258
  Application::update                              interface/src/Application.cpp:2189
        ^ calls _physicsEngine.stepSimulation() before this
  Application::idle                                interface/src/Application.cpp:1535
  timer
2015-03-17 11:38:42 -07:00
Seth Alves
019ea55d24 minimize diff 2015-03-15 08:21:57 -07:00
Seth Alves
50798398ff merge from upstream 2015-03-13 18:04:55 -07:00
Atlante45
405301f861 Don't refresh if no lastModified tag in http request 2015-03-13 20:24:52 +01:00
Atlante45
691b078efc Fix the timeout crash 2015-03-13 18:43:51 +01:00
Seth Alves
89b58e2681 trying to get loaded callback for model hooked up to PhysicsEngine 2015-03-13 09:11:15 -07:00
Atlante45
1b7fdf5d16 Improve disk cache usage
Now we always load from the disk cache if the file is in there.
	Then we check the last modidied date from the network file
against the one in the cache.
	If needed, we redownload.
2015-03-05 18:49:52 +01:00
ZappoMan
698fcd8116 fix crash on shutdown 2015-02-04 13:54:14 -08:00
ZappoMan
4061e14c2d move static members of ResourceManager into DependencyManager 2015-02-04 13:24:37 -08:00
ZappoMan
ded035094a actually delete resources... even on windows 2015-02-04 10:45:04 -08:00
David Rowe
812fbc58fb Use custom User-Agent string 2015-01-23 19:13:29 -08:00
Atlante45
b6ba82653f Remove glm dependency 2015-01-12 17:00:39 -08:00
Atlante45
8415098fc2 Set different caches size depending on cache type 2015-01-12 15:36:36 -08:00
Atlante45
e70e435dcc Added Min/Max values for cache size 2015-01-12 12:45:13 -08:00
Atlante45
81bf1e4f53 Some code maintainance 2015-01-12 11:46:38 -08:00
Atlante45
bad96e0ba4 cache size getter/setter 2015-01-12 11:37:42 -08:00
Atlante45
ea0ffd0125 Introduce reserveUnusedResource 2015-01-12 11:37:00 -08:00
Atlante45
cb3f07e6f5 Remove unusedResourcesMaxCount 2015-01-12 11:18:55 -08:00
Atlante45
5cdc76ad35 Put cache max size/count as class members 2015-01-11 22:48:42 -08:00
Atlante45
441a1e4fee Turns out windows doesn't like constexpr 2015-01-08 18:35:23 -08:00
Atlante45
ea832cfd45 Added constant 2015-01-08 17:33:47 -08:00
Atlante45
77e4a2ef35 Add byte limit to chaches 2015-01-08 17:06:05 -08:00
Andrzej Kapolka
892141fe14 Fix for crash on exit due to cache references' not being cleared. 2014-12-15 16:36:26 -08:00
Stephen Birarda
e10d132f75 avoid Qt QTimer thread bug by putting SoundCache on same thread 2014-11-13 14:47:28 -08:00
Andrzej Kapolka
70847ff3f9 Allow painting boxes that aren't grid-aligned; merged color and material
tools.
2014-09-30 14:53:19 -07:00
wangyix
7a2897fb6b fixes/patches for win32/vs2013 startup and shutdown 2014-09-10 12:24:59 -07:00
barnold1953
814dd0fcb6 Fixed another crash relating to undo stack. Made script support the
VoxelViewer
2014-07-18 11:37:13 -07:00
Atlante45
15b37ec3d1 Switched ResourceCache to NetworkAccessManager 2014-07-02 11:21:07 -07:00
Renamed from libraries/shared/src/ResourceCache.cpp (Browse further)