From e74853750b8b008f3119c9039b307b44bcec7586 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 25 Jan 2017 17:30:34 +0100 Subject: [PATCH] (audio driver) Pass is_perfcnt_enable boolean variable to audio driver write function --- audio/audio_driver.c | 3 ++- audio/audio_driver.h | 3 ++- audio/audio_thread_wrapper.c | 6 ++++-- audio/drivers/alsa.c | 3 ++- audio/drivers/alsa_qsa.c | 3 ++- audio/drivers/alsathread.c | 3 ++- audio/drivers/coreaudio.c | 3 ++- audio/drivers/ctr_csnd_audio.c | 7 ++++--- audio/drivers/ctr_dsp_audio.c | 7 ++++--- audio/drivers/dsound.c | 3 ++- audio/drivers/gx_audio.c | 3 ++- audio/drivers/jack.c | 3 ++- audio/drivers/nullaudio.c | 3 ++- audio/drivers/openal.c | 3 ++- audio/drivers/opensl.c | 3 ++- audio/drivers/oss.c | 3 ++- audio/drivers/ps3_audio.c | 3 ++- audio/drivers/psp_audio.c | 3 ++- audio/drivers/pulse.c | 3 ++- audio/drivers/roar.c | 6 ++++-- audio/drivers/rsound.c | 3 ++- audio/drivers/rwebaudio.c | 3 ++- audio/drivers/sdl_audio.c | 3 ++- audio/drivers/wiiu_audio.c | 7 ++++--- audio/drivers/xaudio.cpp | 3 ++- audio/drivers/xenon360_audio.c | 3 ++- 26 files changed, 62 insertions(+), 34 deletions(-) diff --git a/audio/audio_driver.c b/audio/audio_driver.c index a12827e48a..85012caaa4 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -633,7 +633,8 @@ static bool audio_driver_flush(const int16_t *data, size_t samples) } if (current_audio->write(audio_driver_context_audio_data, - output_data, output_frames * output_size * 2) < 0) + output_data, output_frames * output_size * 2, + is_perfcnt_enable) < 0) { audio_driver_active = false; return false; diff --git a/audio/audio_driver.h b/audio/audio_driver.h index 10ce09f044..85f4bf61d6 100644 --- a/audio/audio_driver.h +++ b/audio/audio_driver.h @@ -49,7 +49,8 @@ typedef struct audio_driver * * Write samples to audio driver. **/ - ssize_t (*write)(void *data, const void *buf, size_t size); + ssize_t (*write)(void *data, const void *buf, size_t size, + bool is_perfcnt_enable); /* Stops driver. */ bool (*stop)(void *data); diff --git a/audio/audio_thread_wrapper.c b/audio/audio_thread_wrapper.c index 7e383a112d..4e746039d9 100644 --- a/audio/audio_thread_wrapper.c +++ b/audio/audio_thread_wrapper.c @@ -228,7 +228,8 @@ static bool audio_thread_use_float(void *data) return thr->use_float; } -static ssize_t audio_thread_write(void *data, const void *buf, size_t size) +static ssize_t audio_thread_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { ssize_t ret; audio_thread_t *thr = (audio_thread_t*)data; @@ -236,7 +237,8 @@ static ssize_t audio_thread_write(void *data, const void *buf, size_t size) if (!thr) return 0; - ret = thr->driver->write(thr->driver_data, buf, size); + ret = thr->driver->write(thr->driver_data, buf, size, + is_perfcnt_enable); if (ret < 0) { diff --git a/audio/drivers/alsa.c b/audio/drivers/alsa.c index 3bdf9b41bc..770712da47 100644 --- a/audio/drivers/alsa.c +++ b/audio/drivers/alsa.c @@ -167,7 +167,8 @@ error: return NULL; } -static ssize_t alsa_write(void *data, const void *buf_, size_t size_) +static ssize_t alsa_write(void *data, const void *buf_, size_t size_, + bool is_perfcnt_enable) { alsa_t *alsa = (alsa_t*)data; const uint8_t *buf = (const uint8_t*)buf_; diff --git a/audio/drivers/alsa_qsa.c b/audio/drivers/alsa_qsa.c index ef0fbab51d..21f30abe1e 100644 --- a/audio/drivers/alsa_qsa.c +++ b/audio/drivers/alsa_qsa.c @@ -219,7 +219,8 @@ static int check_pcm_status(void *data, int channel_type) } -static ssize_t alsa_qsa_write(void *data, const void *buf, size_t size) +static ssize_t alsa_qsa_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { alsa_t *alsa = (alsa_t*)data; snd_pcm_sframes_t written = 0; diff --git a/audio/drivers/alsathread.c b/audio/drivers/alsathread.c index 5ea11f2d0d..5dc7b1e868 100644 --- a/audio/drivers/alsathread.c +++ b/audio/drivers/alsathread.c @@ -243,7 +243,8 @@ error: return NULL; } -static ssize_t alsa_thread_write(void *data, const void *buf, size_t size) +static ssize_t alsa_thread_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { alsa_thread_t *alsa = (alsa_thread_t*)data; diff --git a/audio/drivers/coreaudio.c b/audio/drivers/coreaudio.c index bac9e59d0a..95c1ab7081 100644 --- a/audio/drivers/coreaudio.c +++ b/audio/drivers/coreaudio.c @@ -332,7 +332,8 @@ error: return NULL; } -static ssize_t coreaudio_write(void *data, const void *buf_, size_t size) +static ssize_t coreaudio_write(void *data, const void *buf_, size_t size, + bool is_perfcnt_enable) { coreaudio_t *dev = (coreaudio_t*)data; const uint8_t *buf = (const uint8_t*)buf_; diff --git a/audio/drivers/ctr_csnd_audio.c b/audio/drivers/ctr_csnd_audio.c index 7b7e8452d1..ce62e7b560 100644 --- a/audio/drivers/ctr_csnd_audio.c +++ b/audio/drivers/ctr_csnd_audio.c @@ -162,7 +162,8 @@ static void ctr_csnd_audio_free(void *data) free(ctr); } -static ssize_t ctr_csnd_audio_write(void *data, const void *buf, size_t size) +static ssize_t ctr_csnd_audio_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { int i; uint32_t samples_played = 0; @@ -177,7 +178,7 @@ static ssize_t ctr_csnd_audio_write(void *data, const void *buf, size_t size) (void)current_tick; performance_counter_init(ctraudio_f, "ctraudio_f"); - performance_counter_start(ctraudio_f); + performance_counter_start_plus(is_perfcnt_enable, ctraudio_f); ctr_csnd_audio_update_playpos(ctr); @@ -209,7 +210,7 @@ static ssize_t ctr_csnd_audio_write(void *data, const void *buf, size_t size) GSPGPU_FlushDataCache(ctr->l, CTR_CSND_AUDIO_SIZE); GSPGPU_FlushDataCache(ctr->r, CTR_CSND_AUDIO_SIZE); - performance_counter_stop(ctraudio_f); + performance_counter_stop_plus(is_perfcnt_enable, ctraudio_f); return size; } diff --git a/audio/drivers/ctr_dsp_audio.c b/audio/drivers/ctr_dsp_audio.c index d04b840915..e7bbadd14a 100644 --- a/audio/drivers/ctr_dsp_audio.c +++ b/audio/drivers/ctr_dsp_audio.c @@ -93,7 +93,8 @@ static void ctr_dsp_audio_free(void *data) ndspExit(); } -static ssize_t ctr_dsp_audio_write(void *data, const void *buf, size_t size) +static ssize_t ctr_dsp_audio_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { u32 pos; static struct retro_perf_counter ctraudio_dsp_f = {0}; @@ -117,7 +118,7 @@ static ssize_t ctr_dsp_audio_write(void *data, const void *buf, size_t size) } performance_counter_init(ctraudio_dsp_f, "ctraudio_dsp_f"); - performance_counter_start(ctraudio_dsp_f); + performance_counter_start_plus(is_perfcnt_enable, ctraudio_dsp_f); pos = ctr->pos << 2; @@ -140,7 +141,7 @@ static ssize_t ctr_dsp_audio_write(void *data, const void *buf, size_t size) ctr->pos += size >> 2; ctr->pos &= CTR_DSP_AUDIO_COUNT_MASK; - performance_counter_stop(ctraudio_dsp_f); + performance_counter_stop_plus(is_perfcnt_enable, ctraudio_dsp_f); return size; } diff --git a/audio/drivers/dsound.c b/audio/drivers/dsound.c index 1af78d9c15..33faf28877 100644 --- a/audio/drivers/dsound.c +++ b/audio/drivers/dsound.c @@ -426,7 +426,8 @@ static void dsound_set_nonblock_state(void *data, bool state) ds->nonblock = state; } -static ssize_t dsound_write(void *data, const void *buf_, size_t size) +static ssize_t dsound_write(void *data, const void *buf_, size_t size, + bool is_perfcnt_enable) { size_t written = 0; dsound_t *ds = (dsound_t*)data; diff --git a/audio/drivers/gx_audio.c b/audio/drivers/gx_audio.c index 7453060881..c93c552bce 100644 --- a/audio/drivers/gx_audio.c +++ b/audio/drivers/gx_audio.c @@ -116,7 +116,8 @@ static INLINE void copy_swapped(uint32_t * restrict dst, }while(--size); } -static ssize_t gx_audio_write(void *data, const void *buf_, size_t size) +static ssize_t gx_audio_write(void *data, const void *buf_, size_t size, + bool is_perfcnt_enable) { size_t frames = size >> 2; const uint32_t *buf = buf_; diff --git a/audio/drivers/jack.c b/audio/drivers/jack.c index ee0cb78d70..f56670e0b3 100644 --- a/audio/drivers/jack.c +++ b/audio/drivers/jack.c @@ -292,7 +292,8 @@ static size_t write_buffer(jack_t *jd, const float *buf, size_t size) return written * sizeof(float) * 2; } -static ssize_t ja_write(void *data, const void *buf, size_t size) +static ssize_t ja_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { jack_t *jd = (jack_t*)data; diff --git a/audio/drivers/nullaudio.c b/audio/drivers/nullaudio.c index d0d9c0d36b..6d31387dac 100644 --- a/audio/drivers/nullaudio.c +++ b/audio/drivers/nullaudio.c @@ -35,7 +35,8 @@ static void null_audio_free(void *data) (void)data; } -static ssize_t null_audio_write(void *data, const void *buf, size_t size) +static ssize_t null_audio_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { (void)data; (void)buf; diff --git a/audio/drivers/openal.c b/audio/drivers/openal.c index fc94f78e29..6214c8a6bb 100644 --- a/audio/drivers/openal.c +++ b/audio/drivers/openal.c @@ -173,7 +173,8 @@ static size_t al_fill_internal_buf(al_t *al, const void *buf, size_t size) return read_size; } -static ssize_t al_write(void *data, const void *buf_, size_t size) +static ssize_t al_write(void *data, const void *buf_, size_t size, + bool is_perfcnt_enable) { al_t *al = (al_t*)data; const uint8_t *buf = (const uint8_t*)buf_; diff --git a/audio/drivers/opensl.c b/audio/drivers/opensl.c index 7fe162ef57..d83d081815 100644 --- a/audio/drivers/opensl.c +++ b/audio/drivers/opensl.c @@ -230,7 +230,8 @@ static bool sl_start(void *data, bool is_shutdown) } -static ssize_t sl_write(void *data, const void *buf_, size_t size) +static ssize_t sl_write(void *data, const void *buf_, size_t size, + bool is_perfcnt_enable) { sl_t *sl = (sl_t*)data; size_t written = 0; diff --git a/audio/drivers/oss.c b/audio/drivers/oss.c index c7b84bc8bf..d85f5d345d 100644 --- a/audio/drivers/oss.c +++ b/audio/drivers/oss.c @@ -97,7 +97,8 @@ error: return NULL; } -static ssize_t oss_write(void *data, const void *buf, size_t size) +static ssize_t oss_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { ssize_t ret; int *fd = (int*)data; diff --git a/audio/drivers/ps3_audio.c b/audio/drivers/ps3_audio.c index 38358babf5..530badd77a 100644 --- a/audio/drivers/ps3_audio.c +++ b/audio/drivers/ps3_audio.c @@ -146,7 +146,8 @@ static void *ps3_audio_init(const char *device, return data; } -static ssize_t ps3_audio_write(void *data, const void *buf, size_t size) +static ssize_t ps3_audio_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { ps3_audio_t *aud = data; diff --git a/audio/drivers/psp_audio.c b/audio/drivers/psp_audio.c index 0181c9614a..6dc9af8eb0 100644 --- a/audio/drivers/psp_audio.c +++ b/audio/drivers/psp_audio.c @@ -184,7 +184,8 @@ static void psp_audio_free(void *data) free(psp); } -static ssize_t psp_audio_write(void *data, const void *buf, size_t size) +static ssize_t psp_audio_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { psp_audio_t* psp = (psp_audio_t*)data; uint16_t write_pos = psp->write_pos; diff --git a/audio/drivers/pulse.c b/audio/drivers/pulse.c index 61e47fd08f..e4d0ee32a5 100644 --- a/audio/drivers/pulse.c +++ b/audio/drivers/pulse.c @@ -236,7 +236,8 @@ error: return NULL; } -static ssize_t pulse_write(void *data, const void *buf_, size_t size) +static ssize_t pulse_write(void *data, const void *buf_, size_t size, + bool is_perfcnt_enable) { pa_t *pa = (pa_t*)data; const uint8_t *buf = (const uint8_t*)buf_; diff --git a/audio/drivers/roar.c b/audio/drivers/roar.c index 374287ae10..b1a2018b7e 100644 --- a/audio/drivers/roar.c +++ b/audio/drivers/roar.c @@ -58,7 +58,8 @@ static void *ra_init(const char *device, unsigned rate, unsigned latency, return roar; } -static ssize_t ra_write(void *data, const void *buf, size_t size) +static ssize_t ra_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { int err; size_t written = 0; @@ -72,7 +73,8 @@ static ssize_t ra_write(void *data, const void *buf, size_t size) ssize_t rc; size_t write_amt = size - written; - if ((rc = roar_vs_write(roar->vss, (const char*)buf + written, write_amt, &err)) < (ssize_t)write_amt) + if ((rc = roar_vs_write(roar->vss, + (const char*)buf + written, write_amt, &err)) < (ssize_t)write_amt) { if (roar->nonblocking) return rc; diff --git a/audio/drivers/rsound.c b/audio/drivers/rsound.c index 258f42aa2a..01cae5fb5e 100644 --- a/audio/drivers/rsound.c +++ b/audio/drivers/rsound.c @@ -102,7 +102,8 @@ error: return NULL; } -static ssize_t rs_write(void *data, const void *buf, size_t size) +static ssize_t rs_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { rsd_t *rsd = (rsd_t*)data; diff --git a/audio/drivers/rwebaudio.c b/audio/drivers/rwebaudio.c index 5a90e69233..1806f02fe9 100644 --- a/audio/drivers/rwebaudio.c +++ b/audio/drivers/rwebaudio.c @@ -51,7 +51,8 @@ static void *rwebaudio_init(const char *device, unsigned rate, unsigned latency, return data; } -static ssize_t rwebaudio_write(void *data, const void *buf, size_t size) +static ssize_t rwebaudio_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { (void)data; return RWebAudioWrite(buf, size); diff --git a/audio/drivers/sdl_audio.c b/audio/drivers/sdl_audio.c index 0f36c15726..53fb490909 100644 --- a/audio/drivers/sdl_audio.c +++ b/audio/drivers/sdl_audio.c @@ -137,7 +137,8 @@ static void *sdl_audio_init(const char *device, return sdl; } -static ssize_t sdl_audio_write(void *data, const void *buf, size_t size) +static ssize_t sdl_audio_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { ssize_t ret = 0; sdl_audio_t *sdl = (sdl_audio_t*)data; diff --git a/audio/drivers/wiiu_audio.c b/audio/drivers/wiiu_audio.c index 6cdc7ab333..0e56fa211a 100644 --- a/audio/drivers/wiiu_audio.c +++ b/audio/drivers/wiiu_audio.c @@ -192,7 +192,8 @@ static bool ax_audio_start(void* data, bool is_shutdown) return true; } -static ssize_t ax_audio_write(void* data, const void* buf, size_t size) +static ssize_t ax_audio_write(void* data, const void* buf, size_t size, + bool is_perfcnt_enable) { int i; static struct retro_perf_counter ax_audio_write_perf = {0}; @@ -206,7 +207,7 @@ static ssize_t ax_audio_write(void* data, const void* buf, size_t size) /* Measure copy performance from here */ performance_counter_init(ax_audio_write_perf, "ax_audio_write"); - performance_counter_start(ax_audio_write_perf); + performance_counter_start_plus(is_perfcnt_enable, ax_audio_write_perf); if(count > AX_AUDIO_MAX_FREE) count = AX_AUDIO_MAX_FREE; @@ -286,7 +287,7 @@ static ssize_t ax_audio_write(void* data, const void* buf, size_t size) ax_audio_start(ax, false); /* Done copying new data */ - performance_counter_stop(ax_audio_write_perf); + performance_counter_stop_plus(is_perfcnt_enable, ax_audio_write_perf); /* return what was actually copied */ return (count << 2); diff --git a/audio/drivers/xaudio.cpp b/audio/drivers/xaudio.cpp index 42f6ce5944..76ad09c8fa 100644 --- a/audio/drivers/xaudio.cpp +++ b/audio/drivers/xaudio.cpp @@ -201,7 +201,8 @@ static size_t xaudio2_write_avail(xaudio2_t *handle) return handle->bufsize * (MAX_BUFFERS - handle->buffers - 1); } -static size_t xaudio2_write(xaudio2_t *handle, const void *buf, size_t bytes_) +static size_t xaudio2_write(xaudio2_t *handle, const void *buf, size_t bytes_, + bool is_perfcnt_enable) { unsigned bytes = bytes_; const uint8_t *buffer = (const uint8_t*)buf; diff --git a/audio/drivers/xenon360_audio.c b/audio/drivers/xenon360_audio.c index b72e01fc4d..6b44947b31 100644 --- a/audio/drivers/xenon360_audio.c +++ b/audio/drivers/xenon360_audio.c @@ -57,7 +57,8 @@ static INLINE uint32_t bswap_32(uint32_t val) ((val >> 8) & 0xff00) | ((val << 8) & 0xff0000); } -static ssize_t xenon360_audio_write(void *data, const void *buf, size_t size) +static ssize_t xenon360_audio_write(void *data, const void *buf, size_t size, + bool is_perfcnt_enable) { size_t written = 0, i; const uint32_t *in_buf = buf;