spu: don't wait for irq on silent channels
authornotaz <notasas@gmail.com>
Fri, 16 Sep 2011 13:55:31 +0000 (16:55 +0300)
committernotaz <notasas@gmail.com>
Mon, 19 Sep 2011 16:01:47 +0000 (19:01 +0300)
no point to do so, breaks other chans if silent ones
interrupt often (Discworld)

plugins/dfsound/spu.c

index 36ac018..cb639b2 100644 (file)
@@ -794,7 +794,8 @@ static void *MAINThread(void *arg)
         {
          unsigned char *start=s_chan[ch].pCurr;
 
         {
          unsigned char *start=s_chan[ch].pCurr;
 
-         bIRQReturn |= skip_block(ch);
+         // no need for bIRQReturn since the channel is silent
+         iSpuAsyncWait |= skip_block(ch);
          if(start == s_chan[ch].pCurr)
           {
            // looping on self
          if(start == s_chan[ch].pCurr)
           {
            // looping on self