static void wait_rsx_idle() { rsxSetWriteBackendLabel(context, GCM_LABEL_INDEX, sLabelVal); rsxSetWaitLabel(context, GCM_LABEL_INDEX, sLabelVal); ++sLabelVal; wait_finish(); }
static void waitRSXIdle(gcmContextData *context){ u32 sLabelVal = 1; rsxSetWriteBackendLabel(context, GCM_LABEL_INDEX, sLabelVal); rsxSetWaitLabel(context, GCM_LABEL_INDEX, sLabelVal); sLabelVal++; waitFinish(context, sLabelVal); }
static void waitFinish(gcmContextData *context, u32 sLabelVal){ rsxSetWriteBackendLabel(context, GCM_LABEL_INDEX, sLabelVal); rsxFlushBuffer(context); while(*(vu32 *) gcmGetLabelAddress(GCM_LABEL_INDEX) != sLabelVal) usleep(30); sLabelVal++; }
static void wait_finish() { rsxSetWriteBackendLabel(context, GCM_LABEL_INDEX, sLabelVal); rsxFlushBuffer(context); while (*(vu32 *) gcmGetLabelAddress(GCM_LABEL_INDEX) != sLabelVal) usleep(30); ++sLabelVal; }