mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -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
|
||||
* Fix issues with certain Cg shader inputs in DX9
|
||||
* Support uint8 index buffers in DX9
|
||||
* Fix occasional frame lag when loading a big model asynchronously
|
||||
|
||||
------------------------ RELEASE 1.9.2 ------------------------
|
||||
|
||||
|
@ -321,13 +321,24 @@ emergency_read_only() {
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void BamCache::
|
||||
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) {
|
||||
int elapsed = (int)time(NULL) - (int)_index_stale_since;
|
||||
if (elapsed > _flush_time) {
|
||||
flush_index();
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(HAVE_THREADS) || defined(DEBUG_THREADS)
|
||||
_lock.release();
|
||||
#endif
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user