#include <sys/types.h>
#include <sys/stat.h>
-#include <fcntl.h>
#include <X11/Xlib-xcb.h>
#include <X11/extensions/dri2tokens.h>
#include "pipe/p_context.h"
#include "pipe/p_state.h"
#include "pipe-loader/pipe_loader.h"
-#include "state_tracker/drm_driver.h"
+#include "frontend/drm_driver.h"
#include "util/u_memory.h"
#include "util/crc32.h"
tex = scrn->base.pscreen->resource_from_handle(scrn->base.pscreen, &templ,
&dri2_handle,
- PIPE_HANDLE_USAGE_READ_WRITE);
+ PIPE_HANDLE_USAGE_FRAMEBUFFER_WRITE);
free(reply);
return tex;
vl_compositor_reset_dirty_area(&scrn->dirty_areas[0]);
vl_compositor_reset_dirty_area(&scrn->dirty_areas[1]);
+ /* The pipe loader duplicates the fd */
+ close(fd);
free(authenticate);
free(connect);
free(dri2_query);
return &scrn->base;
release_pipe:
- if (scrn->base.dev) {
+ if (scrn->base.dev)
pipe_loader_release(&scrn->base.dev, 1);
- fd = -1;
- }
free_authenticate:
free(authenticate);
close_fd:
- if (fd != -1)
- close(fd);
+ close(fd);
free_connect:
free(connect);
free_query:
vl_dri2_destroy_drawable(scrn);
scrn->base.pscreen->destroy(scrn->base.pscreen);
pipe_loader_release(&scrn->base.dev, 1);
+ /* There is no user provided fd */
FREE(scrn);
}