backends/drm: Let DrmPipeline handle null buffers
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()
Edited by Vlad Zahorodnii