aboutsummaryrefslogtreecommitdiff
path: root/plugins/dfsound
diff options
context:
space:
mode:
authornotaz2011-02-26 23:15:43 +0200
committernotaz2011-02-28 18:36:42 +0200
commit17ed0d696a7a3649cc41dcf182e162c85002b33a (patch)
tree0a73bad9b0c59149d263dcd88957097c39741140 /plugins/dfsound
parent4cc3050c739a4967bce4efa0146916c74266aa75 (diff)
downloadpcsx_rearmed-17ed0d696a7a3649cc41dcf182e162c85002b33a.tar.gz
pcsx_rearmed-17ed0d696a7a3649cc41dcf182e162c85002b33a.tar.bz2
pcsx_rearmed-17ed0d696a7a3649cc41dcf182e162c85002b33a.zip
gte_neon: implement MVMVA, some fixes
Diffstat (limited to 'plugins/dfsound')
-rw-r--r--plugins/dfsound/oss.c5
-rw-r--r--plugins/dfsound/spu.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/plugins/dfsound/oss.c b/plugins/dfsound/oss.c
index f4dd215..929d921 100644
--- a/plugins/dfsound/oss.c
+++ b/plugins/dfsound/oss.c
@@ -65,9 +65,10 @@ void SetupSound(void)
}
// we use 64 fragments with 1024 bytes each
+ // rearmed: now using 10*4096 for better latency
- fragsize=10;
- myfrag=(63<<16)|fragsize;
+ fragsize=12;
+ myfrag=(10<<16)|fragsize;
if(ioctl(oss_audio_fd,SNDCTL_DSP_SETFRAGMENT,&myfrag)==-1)
{
diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c
index c455d3d..afd5fd6 100644
--- a/plugins/dfsound/spu.c
+++ b/plugins/dfsound/spu.c
@@ -771,7 +771,7 @@ void CALLBACK SPUasync(unsigned long cycle)
if(iSpuAsyncWait)
{
iSpuAsyncWait++;
- if(iSpuAsyncWait<=64) return;
+ if(iSpuAsyncWait<=16) return;
iSpuAsyncWait=0;
}
@@ -780,6 +780,11 @@ void CALLBACK SPUasync(unsigned long cycle)
if(!bSpuInit) return; // -> no init, no call
MAINThread(0); // -> linux high-compat mode
+
+ // abuse iSpuAsyncWait mechanism to reduce calls to above function
+ // to make it do larger chunks
+ // note: doing it less often than once per frame causes skips
+ iSpuAsyncWait=1;
}
}