1
0
Fork 0
forked from len0rd/rockbox

quake: add a bunch more yield calls

Probably a bit too many, but good for making sound not skip.

Change-Id: I6657dcb4e8e7bb32c6550e2c5e3cee74d79b9ebe
This commit is contained in:
Franklin Wei 2019-08-05 21:00:02 -04:00 committed by Solomon Peachy
parent 54b3b6f797
commit 655d201cf3
2 changed files with 12 additions and 0 deletions

View file

@ -1018,12 +1018,15 @@ void R_RenderView_ (void)
R_SetupFrame (); R_SetupFrame ();
rb->yield(); // let sound run
#ifdef PASSAGES #ifdef PASSAGES
SetVisibilityByPassages (); SetVisibilityByPassages ();
#else #else
R_MarkLeaves (); // done here so we know if we're in water R_MarkLeaves (); // done here so we know if we're in water
#endif #endif
rb->yield(); // let sound run
// make FDIV fast. This reduces timing precision after we've been running for a // make FDIV fast. This reduces timing precision after we've been running for a
// while, so we don't do it globally. This also sets chop mode, and we do it // while, so we don't do it globally. This also sets chop mode, and we do it
// here so that setup stuff like the refresh area calculations match what's // here so that setup stuff like the refresh area calculations match what's
@ -1057,6 +1060,7 @@ SetVisibilityByPassages ();
de_time1 = se_time2; de_time1 = se_time2;
} }
rb->yield(); // let sound run
R_DrawEntitiesOnList (); R_DrawEntitiesOnList ();
if (r_dspeeds.value) if (r_dspeeds.value)
@ -1065,6 +1069,7 @@ SetVisibilityByPassages ();
dv_time1 = de_time2; dv_time1 = de_time2;
} }
rb->yield(); // let sound run
R_DrawViewModel (); R_DrawViewModel ();
if (r_dspeeds.value) if (r_dspeeds.value)
@ -1072,6 +1077,7 @@ SetVisibilityByPassages ();
dv_time2 = Sys_FloatTime (); dv_time2 = Sys_FloatTime ();
dp_time1 = Sys_FloatTime (); dp_time1 = Sys_FloatTime ();
} }
rb->yield(); // let sound run
R_DrawParticles (); R_DrawParticles ();

View file

@ -696,8 +696,14 @@ void R_DrawParticles (void)
break; break;
} }
rb->yield();
int cnt = 0;
for (p=active_particles ; p ; p=p->next) for (p=active_particles ; p ; p=p->next)
{ {
if(!(++cnt%50))
rb->yield();
for ( ;; ) for ( ;; )
{ {
kill = p->next; kill = p->next;