flush: Reset f->task_thread.error
f->task_thread.error can be set during flushing, not resetting this can lead to c->task_thread.first being increased after having already submitted a frame post flushing. That's fine if it happens on the very first frame, but if that's the case on any subsequent frame it will incur a wrong frame ordering.
Now that a non-first frame will be considered as such, its tasks won't be able to execute (since they depend on a truly previous frame considered as being after) and c->task_thread.cur will be increased past that frame, with no way of it being reset, eventually leading to a hang.
Edited by Victorien Le Couviour--Tuffet