mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
Fix frame chug when loading big model asynchronously (LP #1019599)
This commit is contained in:
parent
e098da9030
commit
7b7bf93118
@ -25,6 +25,7 @@ This issue fixes several bugs that were still found in 1.9.2.
|
|||||||
* Work around Cg bug generating invalid ASM for saturated tex loads
|
* Work around Cg bug generating invalid ASM for saturated tex loads
|
||||||
* Fix issues with certain Cg shader inputs in DX9
|
* Fix issues with certain Cg shader inputs in DX9
|
||||||
* Support uint8 index buffers in DX9
|
* Support uint8 index buffers in DX9
|
||||||
|
* Fix occasional frame lag when loading a big model asynchronously
|
||||||
|
|
||||||
------------------------ RELEASE 1.9.2 ------------------------
|
------------------------ RELEASE 1.9.2 ------------------------
|
||||||
|
|
||||||
|
@ -321,13 +321,24 @@ emergency_read_only() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void BamCache::
|
void BamCache::
|
||||||
consider_flush_index() {
|
consider_flush_index() {
|
||||||
ReMutexHolder holder(_lock);
|
#if defined(HAVE_THREADS) || defined(DEBUG_THREADS)
|
||||||
|
if (!_lock.try_acquire()) {
|
||||||
|
// If we can't grab the lock, no big deal. We don't want to hold up
|
||||||
|
// the frame waiting for a cache operation. We can try again later.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (_index_stale_since != 0) {
|
if (_index_stale_since != 0) {
|
||||||
int elapsed = (int)time(NULL) - (int)_index_stale_since;
|
int elapsed = (int)time(NULL) - (int)_index_stale_since;
|
||||||
if (elapsed > _flush_time) {
|
if (elapsed > _flush_time) {
|
||||||
flush_index();
|
flush_index();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(HAVE_THREADS) || defined(DEBUG_THREADS)
|
||||||
|
_lock.release();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
x
Reference in New Issue
Block a user