PSP: Use cooperative threading for map gen

Also fix OpenAL backend not properly resetting error state before calling important functions that may set the error state
This commit is contained in:
UnknownShadow200 2024-02-08 18:26:57 +11:00
parent 7d881ad452
commit 2634c0bb12
2 changed files with 5 additions and 1 deletions

View File

@ -219,7 +219,7 @@ void Audio_Close(struct AudioContext* ctx) {
if (ctx->source) { if (ctx->source) {
Audio_Stop(ctx); Audio_Stop(ctx);
Audio_Reset(ctx); Audio_Reset(ctx);
_alGetError(); _alGetError(); /* Reset error state */
} }
ClearFree(ctx); ClearFree(ctx);
AudioBase_Clear(ctx); AudioBase_Clear(ctx);
@ -228,6 +228,7 @@ void Audio_Close(struct AudioContext* ctx) {
cc_result Audio_SetFormat(struct AudioContext* ctx, int channels, int sampleRate) { cc_result Audio_SetFormat(struct AudioContext* ctx, int channels, int sampleRate) {
ALenum i, err; ALenum i, err;
if (!ctx->source) { if (!ctx->source) {
_alGetError(); /* Reset error state */
_alGenSources(1, &ctx->source); _alGenSources(1, &ctx->source);
if ((err = _alGetError())) return err; if ((err = _alGetError())) return err;
@ -257,6 +258,7 @@ cc_result Audio_QueueChunk(struct AudioContext* ctx, void* chunk, cc_uint32 size
if (!ctx->free) return ERR_INVALID_ARGUMENT; if (!ctx->free) return ERR_INVALID_ARGUMENT;
buffer = ctx->freeIDs[--ctx->free]; buffer = ctx->freeIDs[--ctx->free];
_alGetError(); /* Reset error state */
_alBufferData(buffer, ctx->channels, chunk, size, ctx->sampleRate); _alBufferData(buffer, ctx->channels, chunk, size, ctx->sampleRate);
if ((err = _alGetError())) return err; if ((err = _alGetError())) return err;
@ -278,6 +280,7 @@ cc_result Audio_Poll(struct AudioContext* ctx, int* inUse) {
*inUse = 0; *inUse = 0;
if (!ctx->source) return 0; if (!ctx->source) return 0;
_alGetError(); /* Reset error state */
_alGetSourcei(ctx->source, AL_BUFFERS_PROCESSED, &processed); _alGetSourcei(ctx->source, AL_BUFFERS_PROCESSED, &processed);
if ((err = _alGetError())) return err; if ((err = _alGetError())) return err;

View File

@ -276,6 +276,7 @@ typedef cc_uint8 cc_bool;
#define CC_BUILD_PSP #define CC_BUILD_PSP
#define CC_BUILD_OPENAL #define CC_BUILD_OPENAL
#define CC_BUILD_HTTPCLIENT #define CC_BUILD_HTTPCLIENT
#define CC_BUILD_COOPTHREADED
#define CC_BUILD_BEARSSL #define CC_BUILD_BEARSSL
#define CC_BUILD_LOWMEM #define CC_BUILD_LOWMEM
#define CC_BUILD_CONSOLE #define CC_BUILD_CONSOLE