backends/drm: Mark frame failed if presenting null buffer
If eglSwapBuffers() fails, there won't be a buffer and so we need to mark the frame as failed. Otherwise, the screen can be frozen. eglSwapBuffers() can fail if some effect calls makeOpenGLContext() between RenderBackend::beginFrame() and RenderBackend::endFrame(), which is the case with the zoom effect. It can set wrong draw surface in ZoomEffect::recreateTexture() BUG: 445412