**************************************************************************/
#include <assert.h>
-#include <fcntl.h>
#include "pipe/p_screen.h"
#include "pipe-loader/pipe_loader.h"
if (!vscreen)
return NULL;
- if (fd < 0 || (new_fd = fcntl(fd, F_DUPFD_CLOEXEC, 3)) < 0)
- goto free_screen;
-
- if (pipe_loader_drm_probe_fd(&vscreen->dev, new_fd))
- vscreen->pscreen = pipe_loader_create_screen(vscreen->dev, 0);
+ if (pipe_loader_drm_probe_fd(&vscreen->dev, fd))
+ vscreen->pscreen = pipe_loader_create_screen(vscreen->dev);
if (!vscreen->pscreen)
goto release_pipe;
release_pipe:
if (vscreen->dev)
pipe_loader_release(&vscreen->dev, 1);
- else
- close(new_fd);
-free_screen:
FREE(vscreen);
return NULL;
}
vscreen->pscreen->destroy(vscreen->pscreen);
pipe_loader_release(&vscreen->dev, 1);
+ /* CHECK: The VAAPI loader/user preserves ownership of the original fd */
FREE(vscreen);
}