From d50d954a3c33a3066a0943082229fd763768753f Mon Sep 17 00:00:00 2001 From: Justine Tunney Date: Sat, 7 Sep 2024 17:42:15 -0700 Subject: [PATCH] Remove callback from cosmoaudio API Using callbacks is still problematic with cosmo_dlopen() due to the need to restore the TLS register. So using callbacks is even more strict than using signal handlers. We are better off introducing a cosmoaudio_poll() function. It makes the API more UNIX-like. How bad could the latency be? --- Makefile | 1 + dsp/audio/audio.c | 35 +++++ dsp/audio/cosmoaudio/Makefile.msvc | 1 + dsp/audio/cosmoaudio/cosmoaudio.c | 230 +++++++++++++++++++++------- dsp/audio/cosmoaudio/cosmoaudio.dll | Bin 300544 -> 295424 bytes dsp/audio/cosmoaudio/cosmoaudio.h | 37 ++--- dsp/audio/cosmoaudio/test.c | 76 +++++---- dsp/audio/describe.c | 31 ++-- dsp/audio/describe.h | 1 + dsp/scale/gyarados.c | 44 ++++-- tool/cosmocc/package.sh | 1 - tool/viz/lib/BUILD.mk | 1 + tool/viz/lib/ycbcr2rgb3.c | 113 ++++++++++++-- tool/viz/life.c | 2 +- tool/viz/malloc_scalability.c | 4 +- tool/viz/memzoom.c | 5 +- tool/viz/printvideo.c | 7 + 17 files changed, 432 insertions(+), 157 deletions(-) diff --git a/Makefile b/Makefile index c2fd66d40a6..181021d0101 100644 --- a/Makefile +++ b/Makefile @@ -493,6 +493,7 @@ COSMOPOLITAN_OBJECTS = \ COSMOPOLITAN_H_PKGS = \ APE \ + DSP_AUDIO \ LIBC \ LIBC_CALLS \ LIBC_ELF \ diff --git a/dsp/audio/audio.c b/dsp/audio/audio.c index a62260ac1c3..b81985ee095 100644 --- a/dsp/audio/audio.c +++ b/dsp/audio/audio.c @@ -58,7 +58,9 @@ static struct { typeof(cosmoaudio_open) *open; typeof(cosmoaudio_close) *close; typeof(cosmoaudio_write) *write; + typeof(cosmoaudio_flush) *flush; typeof(cosmoaudio_read) *read; + typeof(cosmoaudio_poll) *poll; } g_audio; static const char *cosmoaudio_tmp_dir(void) { @@ -232,7 +234,9 @@ static void cosmoaudio_setup(void) { g_audio.open = cosmo_dlsym(handle, "cosmoaudio_open"); g_audio.close = cosmo_dlsym(handle, "cosmoaudio_close"); g_audio.write = cosmo_dlsym(handle, "cosmoaudio_write"); + g_audio.flush = cosmo_dlsym(handle, "cosmoaudio_flush"); g_audio.read = cosmo_dlsym(handle, "cosmoaudio_read"); + g_audio.poll = cosmo_dlsym(handle, "cosmoaudio_poll"); } static void cosmoaudio_init(void) { @@ -295,3 +299,34 @@ COSMOAUDIO_ABI int cosmoaudio_read(struct CosmoAudio *ca, float *data, cosmoaudio_describe_status(sbuf, sizeof(sbuf), status)); return status; } + +COSMOAUDIO_ABI int cosmoaudio_flush(struct CosmoAudio *ca) { + int status; + char sbuf[32]; + if (g_audio.flush) + status = g_audio.flush(ca); + else + status = COSMOAUDIO_ELINK; + DATATRACE("cosmoaudio_flush(%p) → %s", ca, + cosmoaudio_describe_status(sbuf, sizeof(sbuf), status)); + return status; +} + +COSMOAUDIO_ABI int cosmoaudio_poll(struct CosmoAudio *ca, + int *in_out_readFrames, + int *in_out_writeFrames) { + int status; + char sbuf[32]; + char fbuf[2][20]; + if (g_audio.poll) + status = g_audio.poll(ca, in_out_readFrames, in_out_writeFrames); + else + status = COSMOAUDIO_ELINK; + DATATRACE("cosmoaudio_poll(%p, %s, %s) → %s", ca, + cosmoaudio_describe_poll_frames(fbuf[0], sizeof(fbuf[0]), + in_out_readFrames), + cosmoaudio_describe_poll_frames(fbuf[1], sizeof(fbuf[1]), + in_out_writeFrames), + cosmoaudio_describe_status(sbuf, sizeof(sbuf), status)); + return status; +} diff --git a/dsp/audio/cosmoaudio/Makefile.msvc b/dsp/audio/cosmoaudio/Makefile.msvc index 74635cf7f57..0165c5d1668 100644 --- a/dsp/audio/cosmoaudio/Makefile.msvc +++ b/dsp/audio/cosmoaudio/Makefile.msvc @@ -3,6 +3,7 @@ # nmake /f Makefile.msvc check # nmake /f Makefile.msvc MODE=debug check # +# Note: MSVC 2019 makes the DLL 64kb smaller than MSVC 2022. # Compiler and linker CC=cl diff --git a/dsp/audio/cosmoaudio/cosmoaudio.c b/dsp/audio/cosmoaudio/cosmoaudio.c index 56bf8a4e8b7..d09b7b69d8c 100644 --- a/dsp/audio/cosmoaudio/cosmoaudio.c +++ b/dsp/audio/cosmoaudio/cosmoaudio.c @@ -39,15 +39,16 @@ #endif struct CosmoAudio { + enum CosmoAudioDeviceType deviceType; + ma_uint32 outputBufferFrames; + ma_uint32 inputBufferFrames; + int sampleRate; + int channels; + int isLeft; ma_device device; - ma_pcm_rb input; ma_pcm_rb output; - ma_uint32 sampleRate; - ma_uint32 channels; - ma_uint32 periods; - enum CosmoAudioDeviceType deviceType; - cosmoaudio_data_callback_f* dataCallback; - void* argument; + ma_pcm_rb input; + ma_event event; }; static int read_ring_buffer(ma_pcm_rb* rb, float* pOutput, ma_uint32 frameCount, @@ -69,8 +70,10 @@ static int read_ring_buffer(ma_pcm_rb* rb, float* pOutput, ma_uint32 frameCount, framesToRead * channels * sizeof(float)); result = ma_pcm_rb_commit_read(rb, framesToRead); if (result != MA_SUCCESS) { - if (result == MA_AT_END) + if (result == MA_AT_END) { + framesRead += framesToRead; break; + } LOG("ma_pcm_rb_commit_read failed: %s\n", ma_result_description(result)); return COSMOAUDIO_ERROR; } @@ -99,8 +102,10 @@ static int write_ring_buffer(ma_pcm_rb* rb, const float* pInput, framesToWrite * channels * sizeof(float)); result = ma_pcm_rb_commit_write(rb, framesToWrite); if (result != MA_SUCCESS) { - if (result == MA_AT_END) + if (result == MA_AT_END) { + framesWritten += framesToWrite; break; + } LOG("ma_pcm_rb_commit_write failed: %s\n", ma_result_description(result)); return COSMOAUDIO_ERROR; } @@ -111,15 +116,38 @@ static int write_ring_buffer(ma_pcm_rb* rb, const float* pInput, static void data_callback_f32(ma_device* pDevice, float* pOutput, const float* pInput, ma_uint32 frameCount) { struct CosmoAudio* ca = (struct CosmoAudio*)pDevice->pUserData; - if (ca->dataCallback) { - ca->dataCallback(ca, pOutput, pInput, frameCount, ca->channels, - ca->argument); - } else { - if (ca->deviceType & kCosmoAudioDeviceTypePlayback) - read_ring_buffer(&ca->output, pOutput, frameCount, ca->channels); - if (ca->deviceType & kCosmoAudioDeviceTypeCapture) - write_ring_buffer(&ca->input, pInput, frameCount, ca->channels); + if (ca->deviceType & kCosmoAudioDeviceTypePlayback) { + // + // "By default, miniaudio will pre-silence the data callback's + // output buffer. If you know that you will always write valid data + // to the output buffer you can disable pre-silencing by setting + // the noPreSilence config option in the device config to true." + // + // —Quoth miniaudio documentation § 16.1. Low Level API + // + if (ca->isLeft) { + int framesCopied = + read_ring_buffer(&ca->output, pOutput, frameCount, ca->channels); + if (framesCopied < (int)frameCount) + ca->isLeft = 0; + } else { + // TODO(jart): Maybe we should stretch the audio too short? + int frameOffset; + int availableFrames = ma_pcm_rb_available_read(&ca->output); + if (availableFrames >= (int)frameCount) { + frameOffset = 0; + } else { + frameOffset = frameCount - availableFrames; + frameCount = availableFrames; + } + read_ring_buffer(&ca->output, pOutput + frameOffset * ca->channels, + frameCount, ca->channels); + ca->isLeft = 1; + } } + if (ca->deviceType & kCosmoAudioDeviceTypeCapture) + write_ring_buffer(&ca->input, pInput, frameCount, ca->channels); + ma_event_signal(&ca->event); } static void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, @@ -156,7 +184,7 @@ COSMOAUDIO_ABI int cosmoaudio_open( // return COSMOAUDIO_EINVAL; if (options->sizeofThis < (int)sizeof(struct CosmoAudioOpenOptions)) return COSMOAUDIO_EINVAL; - if (options->periods < 0) + if (options->bufferFrames < 0) return COSMOAUDIO_EINVAL; if (options->sampleRate < 8000) return COSMOAUDIO_EINVAL; @@ -170,14 +198,18 @@ COSMOAUDIO_ABI int cosmoaudio_open( // // Allocate cosmo audio object. struct CosmoAudio* ca; - if (!(ca = (struct CosmoAudio*)calloc(1, sizeof(struct CosmoAudio)))) + ca = (struct CosmoAudio*)calloc(1, sizeof(struct CosmoAudio)); + if (!ca) return COSMOAUDIO_ERROR; ca->channels = options->channels; ca->sampleRate = options->sampleRate; ca->deviceType = options->deviceType; - ca->periods = options->periods ? options->periods : 10; - ca->dataCallback = options->dataCallback; - ca->argument = options->argument; + + // Create win32-style condition variable. + if (ma_event_init(&ca->event) != MA_SUCCESS) { + free(ca); + return COSMOAUDIO_ERROR; + } // Initialize device. ma_result result; @@ -197,18 +229,26 @@ COSMOAUDIO_ABI int cosmoaudio_open( // deviceConfig.pUserData = ca; result = ma_device_init(NULL, &deviceConfig, &ca->device); if (result != MA_SUCCESS) { + ma_event_uninit(&ca->event); free(ca); return COSMOAUDIO_ERROR; } // Initialize the speaker ring buffer. - if (!ca->dataCallback && (ca->deviceType & kCosmoAudioDeviceTypePlayback)) { - result = ma_pcm_rb_init( - ma_format_f32, ca->channels, - ca->device.playback.internalPeriodSizeInFrames * ca->periods, NULL, - NULL, &ca->output); + int period = ca->device.playback.internalPeriodSizeInFrames; + if (!options->bufferFrames) { + ca->outputBufferFrames = period * 10; + } else if (options->bufferFrames < period * 2) { + ca->outputBufferFrames = period * 2; + } else { + ca->outputBufferFrames = options->bufferFrames; + } + if (ca->deviceType & kCosmoAudioDeviceTypePlayback) { + result = ma_pcm_rb_init(ma_format_f32, ca->channels, ca->outputBufferFrames, + NULL, NULL, &ca->output); if (result != MA_SUCCESS) { ma_device_uninit(&ca->device); + ma_event_uninit(&ca->event); free(ca); return COSMOAUDIO_ERROR; } @@ -216,15 +256,22 @@ COSMOAUDIO_ABI int cosmoaudio_open( // } // Initialize the microphone ring buffer. - if (!ca->dataCallback && (ca->deviceType & kCosmoAudioDeviceTypeCapture)) { - result = ma_pcm_rb_init( - ma_format_f32, ca->channels, - ca->device.capture.internalPeriodSizeInFrames * ca->periods, NULL, NULL, - &ca->input); + period = ca->device.capture.internalPeriodSizeInFrames; + if (!options->bufferFrames) { + ca->inputBufferFrames = period * 10; + } else if (options->bufferFrames < period * 2) { + ca->inputBufferFrames = period * 2; + } else { + ca->inputBufferFrames = options->bufferFrames; + } + if (ca->deviceType & kCosmoAudioDeviceTypeCapture) { + result = ma_pcm_rb_init(ma_format_f32, ca->channels, ca->inputBufferFrames, + NULL, NULL, &ca->input); if (result != MA_SUCCESS) { - if (!ca->dataCallback && (ca->deviceType & kCosmoAudioDeviceTypePlayback)) + if (ca->deviceType & kCosmoAudioDeviceTypePlayback) ma_pcm_rb_uninit(&ca->output); ma_device_uninit(&ca->device); + ma_event_uninit(&ca->event); free(ca); return COSMOAUDIO_ERROR; } @@ -233,11 +280,12 @@ COSMOAUDIO_ABI int cosmoaudio_open( // // Start audio playback. if (ma_device_start(&ca->device) != MA_SUCCESS) { - if (!ca->dataCallback && (ca->deviceType & kCosmoAudioDeviceTypeCapture)) - ma_pcm_rb_uninit(&ca->input); - if (!ca->dataCallback && (ca->deviceType & kCosmoAudioDeviceTypePlayback)) + if (ca->deviceType & kCosmoAudioDeviceTypePlayback) ma_pcm_rb_uninit(&ca->output); + if (ca->deviceType & kCosmoAudioDeviceTypeCapture) + ma_pcm_rb_uninit(&ca->input); ma_device_uninit(&ca->device); + ma_event_uninit(&ca->event); free(ca); return COSMOAUDIO_ERROR; } @@ -249,8 +297,13 @@ COSMOAUDIO_ABI int cosmoaudio_open( // /** * Closes audio device and frees all associated resources. * + * This function is non-blocking and will drop buffered audio. In + * playback mode, you need to call cosmoaudio_flush() to ensure data + * supplied by cosmoaudio_write() gets played on your speaker. + * * Calling this function twice on the same object will result in - * undefined behavior. + * undefined behavior. Even if this function fails, the `ca` will be + * freed to the greatest extent possible. * * @param ca is CosmoAudio object returned earlier by cosmoaudio_open() * @return 0 on success, or negative error code on failure @@ -258,11 +311,12 @@ COSMOAUDIO_ABI int cosmoaudio_open( // COSMOAUDIO_ABI int cosmoaudio_close(struct CosmoAudio* ca) { if (!ca) return COSMOAUDIO_EINVAL; - ma_device_uninit(&ca->device); - if (!ca->dataCallback && (ca->deviceType & kCosmoAudioDeviceTypePlayback)) + if (ca->deviceType & kCosmoAudioDeviceTypePlayback) ma_pcm_rb_uninit(&ca->output); - if (!ca->dataCallback && (ca->deviceType & kCosmoAudioDeviceTypeCapture)) + if (ca->deviceType & kCosmoAudioDeviceTypeCapture) ma_pcm_rb_uninit(&ca->input); + ma_device_uninit(&ca->device); + ma_event_uninit(&ca->event); free(ca); return COSMOAUDIO_SUCCESS; } @@ -289,10 +343,10 @@ COSMOAUDIO_ABI int cosmoaudio_write(struct CosmoAudio* ca, const float* data, return COSMOAUDIO_EINVAL; if (frames < 0) return COSMOAUDIO_EINVAL; - if (ca->dataCallback) - return COSMOAUDIO_EINVAL; if (!(ca->deviceType & kCosmoAudioDeviceTypePlayback)) return COSMOAUDIO_EINVAL; + if (1u + frames > ca->outputBufferFrames) + return COSMOAUDIO_ENOBUF; if (!frames) return 0; if (!data) @@ -322,8 +376,6 @@ COSMOAUDIO_ABI int cosmoaudio_read(struct CosmoAudio* ca, float* data, return COSMOAUDIO_EINVAL; if (frames < 0) return COSMOAUDIO_EINVAL; - if (ca->dataCallback) - return COSMOAUDIO_EINVAL; if (!(ca->deviceType & kCosmoAudioDeviceTypeCapture)) return COSMOAUDIO_EINVAL; if (!frames) @@ -333,20 +385,80 @@ COSMOAUDIO_ABI int cosmoaudio_read(struct CosmoAudio* ca, float* data, return read_ring_buffer(&ca->input, data, frames, ca->channels); } -#ifdef _MSC_VER -#include -BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved) { - switch (ul_reason_for_call) { - case DLL_PROCESS_ATTACH: - case DLL_THREAD_ATTACH: - case DLL_THREAD_DETACH: - case DLL_PROCESS_DETACH: - break; +/** + * Waits for read and/or write to become possible. + * + * @param ca is CosmoAudio object returned earlier by cosmoaudio_open() + * @param in_out_readFrames if non-NULL specifies how many frames of + * capture data be immediately readable by cosmoaudio_read() before + * this can return; it must not exceed the buffer size; on return + * this will be set to the actual number of frames in the buffer; + * if the caller supplies a zero then this call is a non-blocking + * way to query buffer sizes + * @param in_out_writeFrames if non-NULL specifies how many frames of + * capture data be immediately writable by cosmoaudio_write() before + * this can return; it must not exceed the buffer size; on return + * this will be set to the actual number of frames in the buffer; + * if the caller supplies a zero then this call is a non-blocking + * way to query buffer sizes + * @return 0 on success, or negative error code on error + */ +COSMOAUDIO_ABI int cosmoaudio_poll(struct CosmoAudio* ca, + int* in_out_readFrames, + int* in_out_writeFrames) { + if (!ca) + return COSMOAUDIO_EINVAL; + if (!in_out_readFrames && !in_out_writeFrames) + return COSMOAUDIO_EINVAL; + if (in_out_readFrames && !(ca->deviceType & kCosmoAudioDeviceTypeCapture)) + return COSMOAUDIO_EINVAL; + if (in_out_writeFrames && !(ca->deviceType & kCosmoAudioDeviceTypePlayback)) + return COSMOAUDIO_EINVAL; + if (in_out_readFrames && 1u + *in_out_readFrames > ca->inputBufferFrames) + return COSMOAUDIO_ENOBUF; + if (in_out_writeFrames && 1u + *in_out_writeFrames > ca->outputBufferFrames) + return COSMOAUDIO_ENOBUF; + for (;;) { + int done = 0; + ma_uint32 readable = 0; + ma_uint32 writable = 0; + if (in_out_readFrames) { + readable = ma_pcm_rb_available_read(&ca->input); + done |= readable >= (ma_uint32)*in_out_readFrames; + } + if (in_out_writeFrames) { + writable = ma_pcm_rb_available_write(&ca->output); + done |= writable >= (ma_uint32)*in_out_writeFrames; + } + if (done) { + if (in_out_readFrames) + *in_out_readFrames = readable; + if (in_out_writeFrames) + *in_out_writeFrames = writable; + return COSMOAUDIO_SUCCESS; + } + if (ma_event_wait(&ca->event) != MA_SUCCESS) + return COSMOAUDIO_ERROR; + } +} + +/** + * Waits for written samples to be sent to device. + * + * This function is only valid to call in playback or duplex mode. + * + * @param ca is CosmoAudio object returned earlier by cosmoaudio_open() + * @return 0 on success, or negative error code on failure + */ +COSMOAUDIO_ABI int cosmoaudio_flush(struct CosmoAudio* ca) { + if (!ca) + return COSMOAUDIO_EINVAL; + if (!(ca->deviceType & kCosmoAudioDeviceTypePlayback)) + return COSMOAUDIO_EINVAL; + for (;;) { + if (!ma_pcm_rb_available_read(&ca->output)) + return COSMOAUDIO_SUCCESS; + if (ma_event_wait(&ca->event) != MA_SUCCESS) + return COSMOAUDIO_ERROR; } - return TRUE; - (void)hModule; - (void)lpReserved; - (void)ul_reason_for_call; } -#endif diff --git a/dsp/audio/cosmoaudio/cosmoaudio.dll b/dsp/audio/cosmoaudio/cosmoaudio.dll index c5fd28f28434f40fd9b58004574c1d371c746cda..4e4d1e86361f266408a5c2e61741534991f88e00 100644 GIT binary patch delta 148417 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

6(OYac9cjuF9%7m7)Q^1PLu_rw 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�pi3DXgxuiAMRIjidJ@- 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 cTgr{^ag4?fcj$?>=I0$-3(ykOi>b>01 #include +#include #include #include "cosmoaudio.h" +#define SAMPLING_RATE 44100 +#define WAVE_INTERVAL 440 +#define CHANNELS 2 + #ifndef M_PIf #define M_PIf 3.14159265358979323846f #endif -int g_hz = 44100; -int g_channels = 2; -int g_generation = 0; -int g_freq = 440; - -void data_callback(struct CosmoAudio *ca, float *outputSamples, - const float *inputSamples, int frameCount, int channels, - void *argument) { - for (int i = 0; i < frameCount; i++) { - float t = (float)g_generation++ / g_hz; - if (g_generation == g_hz) - g_generation = 0; - float s = sinf(2 * M_PIf * g_freq * t); - for (int j = 0; j < channels; j++) - outputSamples[i * channels + j] = s; - } - (void)inputSamples; - (void)argument; - (void)ca; -} - int main() { - struct CosmoAudioOpenOptions cao = {}; + struct CosmoAudioOpenOptions cao = {0}; cao.sizeofThis = sizeof(struct CosmoAudioOpenOptions); cao.deviceType = kCosmoAudioDeviceTypePlayback; - cao.sampleRate = g_hz; - cao.channels = g_channels; - cao.dataCallback = data_callback; + cao.sampleRate = SAMPLING_RATE; + cao.channels = CHANNELS; + int status; struct CosmoAudio *ca; - if (cosmoaudio_open(&ca, &cao) != COSMOAUDIO_SUCCESS) { - fprintf(stderr, "failed to open audio\n"); + status = cosmoaudio_open(&ca, &cao); + if (status != COSMOAUDIO_SUCCESS) { + fprintf(stderr, "failed to open audio: %d\n", status); return 1; } - fgetc(stdin); + float buf[256 * CHANNELS]; + for (int g = 0; g < SAMPLING_RATE;) { + int frames = 1; + status = cosmoaudio_poll(ca, NULL, &frames); + if (status != COSMOAUDIO_SUCCESS) { + fprintf(stderr, "failed to poll output: %d\n", status); + return 2; + } + if (frames > 256) + frames = 256; + if (frames > SAMPLING_RATE - g) + frames = SAMPLING_RATE - g; + for (int f = 0; f < frames; ++f) { + float t = (float)g++ / SAMPLING_RATE; + float s = sinf(2 * M_PIf * WAVE_INTERVAL * t); + for (int c = 0; c < CHANNELS; c++) + buf[f * CHANNELS + c] = s; + } + status = cosmoaudio_write(ca, buf, frames); + if (status != frames) { + fprintf(stderr, "failed to write output: %d\n", status); + return 3; + } + } + + status = cosmoaudio_flush(ca); + if (status != COSMOAUDIO_SUCCESS) { + fprintf(stderr, "failed to flush output: %d\n", status); + return 4; + } - cosmoaudio_close(ca); + status = cosmoaudio_close(ca); + if (status != COSMOAUDIO_SUCCESS) { + fprintf(stderr, "failed to close audio: %d\n", status); + return 5; + } } diff --git a/dsp/audio/describe.c b/dsp/audio/describe.c index eba37891f7c..feb565bb40b 100644 --- a/dsp/audio/describe.c +++ b/dsp/audio/describe.c @@ -34,6 +34,8 @@ const char *cosmoaudio_describe_status(char *buf, int n, int status) { return "COSMOAUDIO_EINVAL"; case COSMOAUDIO_ELINK: return "COSMOAUDIO_ELINK"; + case COSMOAUDIO_ENOBUF: + return "COSMOAUDIO_ENOBUF"; default: ksnprintf(buf, n, "%d", status); return buf; @@ -81,24 +83,11 @@ const char *cosmoaudio_describe_open_options( gotsome = true; } - if (options->dataCallback) { + if (options->bufferFrames) { if (gotsome) append(", "); - append(".dataCallback=%t", options->dataCallback); + append(".bufferFrames=%d", options->bufferFrames); gotsome = true; - if (options->argument) { - if (gotsome) - append(", "); - append(".argument=%p", options->argument); - gotsome = true; - } - } else { - if (options->periods) { - if (gotsome) - append(", "); - append(".periods=%d", options->periods); - gotsome = true; - } } if (options->sizeofThis) { @@ -111,3 +100,15 @@ const char *cosmoaudio_describe_open_options( append("}"); return buf; } + +const char *cosmoaudio_describe_poll_frames(char *buf, int n, + int *in_out_frames) { + if (!in_out_frames) + return "NULL"; + if (kisdangerous(in_out_frames)) { + ksnprintf(buf, n, "%p", in_out_frames); + return buf; + } + ksnprintf(buf, n, "[%d]", *in_out_frames); + return buf; +} diff --git a/dsp/audio/describe.h b/dsp/audio/describe.h index 5bcc59054ec..28f614574f0 100644 --- a/dsp/audio/describe.h +++ b/dsp/audio/describe.h @@ -6,6 +6,7 @@ COSMOPOLITAN_C_START_ const char *cosmoaudio_describe_status(char *, int, int); const char *cosmoaudio_describe_open_options( char *, int, const struct CosmoAudioOpenOptions *); +const char *cosmoaudio_describe_poll_frames(char *, int, int *); COSMOPOLITAN_C_END_ #endif /* COSMOPOLITAN_DSP_AUDIO_DESCRIBE_H_ */ diff --git a/dsp/scale/gyarados.c b/dsp/scale/gyarados.c index adbf5d5d592..0785bbb0e60 100644 --- a/dsp/scale/gyarados.c +++ b/dsp/scale/gyarados.c @@ -53,11 +53,11 @@ struct SamplingSolution { static double ComputeWeight(double x) { if (-1.5 < x && x < 1.5) { if (-.5 < x && x < .5) { - return.75 - SQR(x); + return .75 - SQR(x); } else if (x < 0) { - return.5 * SQR(x + 1.5); + return .5 * SQR(x + 1.5); } else { - return.5 * SQR(x - 1.5); + return .5 * SQR(x - 1.5); } } else { return 0; @@ -164,12 +164,19 @@ static void GyaradosImpl(long dyw, long dxw, int dst[dyw][dxw], long syw, tmp0[dy][sx] = QRS(M, eax); } } - for (dy = 0; dy < dyn; ++dy) { - for (sx = 0; sx < sxn; ++sx) { - tmp1[dy][sx] = sharpen ? Sharpen(tmp0[MIN(dyn - 1, MAX(0, dy - 1))][sx], - tmp0[dy][sx], - tmp0[MIN(dyn - 1, MAX(0, dy + 1))][sx]) - : tmp0[dy][sx]; + if (sharpen) { + for (dy = 0; dy < dyn; ++dy) { + for (sx = 0; sx < sxn; ++sx) { + tmp1[dy][sx] = + Sharpen(tmp0[MIN(dyn - 1, MAX(0, dy - 1))][sx], tmp0[dy][sx], + tmp0[MIN(dyn - 1, MAX(0, dy + 1))][sx]); + } + } + } else { + for (dy = 0; dy < dyn; ++dy) { + for (sx = 0; sx < sxn; ++sx) { + tmp1[dy][sx] = tmp0[dy][sx]; + } } } for (dx = 0; dx < dxn; ++dx) { @@ -180,12 +187,19 @@ static void GyaradosImpl(long dyw, long dxw, int dst[dyw][dxw], long syw, tmp2[dy][dx] = QRS(M, eax); } } - for (dx = 0; dx < dxn; ++dx) { - for (dy = 0; dy < dyn; ++dy) { - dst[dy][dx] = sharpen ? Sharpen(tmp2[dy][MIN(dxn - 1, MAX(0, dx - 1))], - tmp2[dy][dx], - tmp2[dy][MIN(dxn - 1, MAX(0, dx + 1))]) - : tmp2[dy][dx]; + if (sharpen) { + for (dx = 0; dx < dxn; ++dx) { + for (dy = 0; dy < dyn; ++dy) { + dst[dy][dx] = + Sharpen(tmp2[dy][MIN(dxn - 1, MAX(0, dx - 1))], tmp2[dy][dx], + tmp2[dy][MIN(dxn - 1, MAX(0, dx + 1))]); + } + } + } else { + for (dx = 0; dx < dxn; ++dx) { + for (dy = 0; dy < dyn; ++dy) { + dst[dy][dx] = tmp2[dy][dx]; + } } } } diff --git a/tool/cosmocc/package.sh b/tool/cosmocc/package.sh index 6a31d538e05..0efb7623b72 100755 --- a/tool/cosmocc/package.sh +++ b/tool/cosmocc/package.sh @@ -186,7 +186,6 @@ if [ ! -x bin/x86_64-linux-cosmo-gcc ]; then rm -f x86_64-gcc.zip rm -f llvm.zip mv bin/clang-19 bin/cosmo-clang - mv bin/clang-format bin/clang-format fi rm -f bin/*-cpp rm -f bin/*-gcc-* diff --git a/tool/viz/lib/BUILD.mk b/tool/viz/lib/BUILD.mk index 92512372c15..e76dd3e01b0 100644 --- a/tool/viz/lib/BUILD.mk +++ b/tool/viz/lib/BUILD.mk @@ -36,6 +36,7 @@ TOOL_VIZ_LIB_A_DIRECTDEPS = \ LIBC_RUNTIME \ LIBC_STDIO \ LIBC_STR \ + LIBC_THREAD \ LIBC_SYSV \ LIBC_TESTLIB \ LIBC_TINYMATH \ diff --git a/tool/viz/lib/ycbcr2rgb3.c b/tool/viz/lib/ycbcr2rgb3.c index 783730ade94..b400b961b09 100644 --- a/tool/viz/lib/ycbcr2rgb3.c +++ b/tool/viz/lib/ycbcr2rgb3.c @@ -43,6 +43,7 @@ #include "libc/str/str.h" #include "libc/sysv/consts/sig.h" #include "libc/sysv/errfuns.h" +#include "libc/thread/thread.h" #include "libc/time.h" #include "libc/x/x.h" #include "tool/viz/lib/graphic.h" @@ -69,6 +70,7 @@ struct timespec magikarp_start_; struct YCbCr { bool yonly; + int cpu_count; int magnums[8][4]; int lighting[6][4]; unsigned char transfer[2][256]; @@ -165,6 +167,7 @@ void YCbCrInit(struct YCbCr **ycbcr, bool yonly, int swing, double gamma, if (!*ycbcr) *ycbcr = xcalloc(1, sizeof(struct YCbCr)); (*ycbcr)->yonly = yonly; + (*ycbcr)->cpu_count = __get_cpu_count(); bzero((*ycbcr)->magnums, sizeof((*ycbcr)->magnums)); bzero((*ycbcr)->lighting, sizeof((*ycbcr)->lighting)); YCbCrComputeCoefficients(swing, gamma, gamut, illuminant, (*ycbcr)->magnums, @@ -263,14 +266,32 @@ void YCbCrConvert(struct YCbCr *me, long yn, long xn, const unsigned char Y[restrict yys][yxs], long cys, long cxs, unsigned char Cb[restrict cys][cxs], unsigned char Cr[restrict cys][cxs]) { - struct timespec ts = timespec_real(); + struct timespec ts = timespec_mono(); if (!me->yonly) { YCbCr2Rgb(yn, xn, RGB, yys, yxs, Y, cys, cxs, Cb, Cr, me->magnums, me->lighting, me->transfer[pf10_]); } else { Y2Rgb(yn, xn, RGB, yys, yxs, Y, me->magnums, me->transfer[pf10_]); } - ycbcr2rgb_latency_ = timespec_tomicros(timespec_sub(timespec_real(), ts)); + ycbcr2rgb_latency_ = timespec_tomicros(timespec_sub(timespec_mono(), ts)); +} + +struct YCbCr2RgbScalerThreadData { + long syw, sxw, dyw, dxw, dyn, dxn, syn, sxn; + unsigned char *src; + unsigned char *dst; + int min, max; + struct SamplingSolution *cy, *cx; + bool sharpen; +}; + +static void *YCbCr2RgbScalerThread(void *arg) { + struct YCbCr2RgbScalerThreadData *data = + (struct YCbCr2RgbScalerThreadData *)arg; + GyaradosUint8(data->syw, data->sxw, data->src, data->dyw, data->dxw, + data->dst, data->dyn, data->dxn, data->syn, data->sxn, + data->min, data->max, data->cy, data->cx, data->sharpen); + return NULL; } void YCbCr2RgbScaler(struct YCbCr *me, long dyn, long dxn, @@ -297,7 +318,7 @@ void YCbCr2RgbScaler(struct YCbCr *me, long dyn, long dxn, Magkern2xY(cys, cxs, Cr, scyn, scxn), HALF(yyn), yxn, HALF(cyn), scxn, syn / 2, sxn, pry, prx); } else { - struct timespec ts = timespec_real(); + struct timespec ts = timespec_mono(); magikarp_latency_ = timespec_tomicros(timespec_sub(ts, magikarp_start_)); yry = syn / dyn; yrx = sxn / dxn; @@ -322,13 +343,83 @@ void YCbCr2RgbScaler(struct YCbCr *me, long dyn, long dxn, sharpen(1, yys, yxs, (void *)Y, yyn, yxn); if (pf9_) unsharp(1, yys, yxs, (void *)Y, yyn, yxn); - GyaradosUint8(yys, yxs, Y, yys, yxs, Y, dyn, dxn, syn, sxn, 0, 255, - me->luma.cy, me->luma.cx, true); - GyaradosUint8(cys, cxs, Cb, cys, cxs, Cb, dyn, dxn, scyn, scxn, 0, 255, - me->chroma.cy, me->chroma.cx, false); - GyaradosUint8(cys, cxs, Cr, cys, cxs, Cr, dyn, dxn, scyn, scxn, 0, 255, - me->chroma.cy, me->chroma.cx, false); - gyarados_latency_ = timespec_tomicros(timespec_sub(timespec_real(), ts)); + + if (me->cpu_count < 6) { + GyaradosUint8(yys, yxs, Y, yys, yxs, Y, dyn, dxn, syn, sxn, 0, 255, + me->luma.cy, me->luma.cx, true); + GyaradosUint8(cys, cxs, Cb, cys, cxs, Cb, dyn, dxn, scyn, scxn, 0, 255, + me->chroma.cy, me->chroma.cx, false); + GyaradosUint8(cys, cxs, Cr, cys, cxs, Cr, dyn, dxn, scyn, scxn, 0, 255, + me->chroma.cy, me->chroma.cx, false); + } else { + pthread_t threads[3]; + struct YCbCr2RgbScalerThreadData thread_data[3]; + + // Set up thread data for Y plane. + thread_data[0] = (struct YCbCr2RgbScalerThreadData){ + .syw = yys, + .sxw = yxs, + .dyw = yys, + .dxw = yxs, + .dyn = dyn, + .dxn = dxn, + .syn = syn, + .sxn = sxn, + .src = (unsigned char *)Y, + .dst = (unsigned char *)Y, + .min = 0, + .max = 255, + .cy = me->luma.cy, + .cx = me->luma.cx, + .sharpen = true, + }; + + // Set up thread data for Cb plane. + thread_data[1] = (struct YCbCr2RgbScalerThreadData){ + .syw = cys, + .sxw = cxs, + .dyw = cys, + .dxw = cxs, + .dyn = dyn, + .dxn = dxn, + .syn = scyn, + .sxn = scxn, + .src = (unsigned char *)Cb, + .dst = (unsigned char *)Cb, + .min = 0, + .max = 255, + .cy = me->chroma.cy, + .cx = me->chroma.cx, + .sharpen = false, + }; + + // Set up thread data for Cr plane. + thread_data[2] = (struct YCbCr2RgbScalerThreadData){ + .syw = cys, + .sxw = cxs, + .dyw = cys, + .dxw = cxs, + .dyn = dyn, + .dxn = dxn, + .syn = scyn, + .sxn = scxn, + .src = (unsigned char *)Cr, + .dst = (unsigned char *)Cr, + .min = 0, + .max = 255, + .cy = me->chroma.cy, + .cx = me->chroma.cx, + .sharpen = false, + }; + + // Dispatch threads. + for (int i = 0; i < 3; i++) + pthread_create(&threads[i], NULL, YCbCr2RgbScalerThread, + &thread_data[i]); + for (int i = 3; i--;) + pthread_join(threads[i], NULL); + } + gyarados_latency_ = timespec_tomicros(timespec_sub(timespec_mono(), ts)); YCbCrConvert(me, dyn, dxn, RGB, yys, yxs, Y, cys, cxs, Cb, Cr); INFOF("done"); } @@ -383,7 +474,7 @@ void *YCbCr2RgbScale(long dyn, long dxn, CHECK_LE(cyn, cys); CHECK_LE(cxn, cxs); INFOF("magikarp2x"); - magikarp_start_ = timespec_real(); + magikarp_start_ = timespec_mono(); minyys = MAX(ceil(syn), MAX(yyn, ceil(dyn * pry))); minyxs = MAX(ceil(sxn), MAX(yxn, ceil(dxn * prx))); mincys = MAX(cyn, ceil(dyn * pry)); diff --git a/tool/viz/life.c b/tool/viz/life.c index 389132dffb7..3b105eb6ba0 100644 --- a/tool/viz/life.c +++ b/tool/viz/life.c @@ -1130,7 +1130,7 @@ static bool ShouldDraw(void) { static struct timespec next; if (!isdragging) return true; - now = timespec_real(); + now = timespec_mono(); if (timespec_cmp(now, next) > 0 && !HasPendingInput()) { next = timespec_add(now, timespec_frommicros(1. / 24 * 1e6)); return true; diff --git a/tool/viz/malloc_scalability.c b/tool/viz/malloc_scalability.c index cf48d345b24..6f9c71fbf02 100644 --- a/tool/viz/malloc_scalability.c +++ b/tool/viz/malloc_scalability.c @@ -35,14 +35,14 @@ void *worker(void *arg) { } void test(int n) { - struct timespec start = timespec_real(); + struct timespec start = timespec_mono(); pthread_t *th = malloc(sizeof(pthread_t) * n); for (int i = 0; i < n; ++i) pthread_create(th + i, 0, worker, 0); for (int i = 0; i < n; ++i) pthread_join(th[i], 0); free(th); - struct timespec end = timespec_real(); + struct timespec end = timespec_mono(); printf("%2d threads * %d allocs = %ld us\n", n, ALLOCATIONS, timespec_tomicros(timespec_sub(end, start))); } diff --git a/tool/viz/memzoom.c b/tool/viz/memzoom.c index 30a8492e4f3..6481562d3c2 100644 --- a/tool/viz/memzoom.c +++ b/tool/viz/memzoom.c @@ -335,10 +335,11 @@ static long Index(long y, long x) { static void PreventBufferbloat(void) { struct timespec now, rate; static struct timespec last; - now = timespec_real(); + now = timespec_mono(); rate = timespec_frommicros(1. / fps * 1e6); if (timespec_cmp(timespec_sub(now, last), rate) < 0) { - timespec_sleep(CLOCK_REALTIME, timespec_sub(rate, timespec_sub(now, last))); + timespec_sleep(CLOCK_MONOTONIC, + timespec_sub(rate, timespec_sub(now, last))); } last = now; } diff --git a/tool/viz/printvideo.c b/tool/viz/printvideo.c index 918f94b7d24..e1fac213791 100644 --- a/tool/viz/printvideo.c +++ b/tool/viz/printvideo.c @@ -40,6 +40,7 @@ #include "libc/calls/ucontext.h" #include "libc/ctype.h" #include "libc/cxxabi.h" +#include "libc/dce.h" #include "libc/errno.h" #include "libc/fmt/conv.h" #include "libc/fmt/itoa.h" @@ -56,7 +57,9 @@ #include "libc/nexgen32e/bench.h" #include "libc/nexgen32e/x86feature.h" #include "libc/nt/console.h" +#include "libc/nt/enum/threadpriority.h" #include "libc/nt/runtime.h" +#include "libc/nt/thread.h" #include "libc/runtime/runtime.h" #include "libc/sock/sock.h" #include "libc/sock/struct/pollfd.h" @@ -1398,6 +1401,10 @@ static void TryToOpenFrameBuffer(void) { int main(int argc, char *argv[]) { sigset_t wut; ShowCrashReports(); +#ifdef __x86_64__ + if (IsWindows()) + SetThreadPriority(GetCurrentThread(), kNtThreadPriorityHighest); +#endif gamma_ = 2.4; volscale_ = 1.f; dither_ = true;