Home | History | Annotate | Download | only in dri

Lines Matching defs:dri

56    struct gbm_dri_device *dri = data;
58 if (dri->lookup_image == NULL)
61 return dri->lookup_image(screen, image, dri->lookup_user_data);
71 struct gbm_dri_device *dri = gbm_dri_device(surf->base.gbm);
73 if (dri->get_buffers == NULL)
76 return dri->get_buffers(driDrawable, width, height, attachments,
84 struct gbm_dri_device *dri = gbm_dri_device(surf->base.gbm);
86 if (dri->flush_front_buffer != NULL)
87 dri->flush_front_buffer(driDrawable, surf->dri_private);
97 struct gbm_dri_device *dri = gbm_dri_device(surf->base.gbm);
99 if (dri->get_buffers_with_format == NULL)
103 dri->get_buffers_with_format(driDrawable, width, height, attachments,
142 dri_bind_extensions(struct gbm_dri_device *dri,
153 field = ((char *) dri + matches[j].offset);
160 field = ((char *) dri + matches[j].offset);
170 dri_load_driver(struct gbm_dri_device *dri)
183 dri->driver = NULL;
185 for (p = search_paths; p < end && dri->driver == NULL; p = next + 1) {
194 "%.*s/tls/%s_dri.so", len, p, dri->base.driver_name);
195 dri->driver = dlopen(path, RTLD_NOW | RTLD_GLOBAL);
197 if (dri->driver == NULL) {
199 "%.*s/%s_dri.so", len, p, dri->base.driver_name);
200 dri->driver = dlopen(path, RTLD_NOW | RTLD_GLOBAL);
201 if (dri->driver == NULL)
206 if (dri->driver == NULL) {
212 extensions = dlsym(dri->driver, __DRI_DRIVER_EXTENSIONS);
215 dlclose(dri->driver);
220 if (dri_bind_extensions(dri, gbm_dri_device_extensions, extensions) < 0) {
221 dlclose(dri->driver);
230 dri_screen_create(struct gbm_dri_device *dri)
235 dri->base.driver_name = dri_fd_get_driver_name(dri->base.base.fd);
236 if (dri->base.driver_name == NULL)
239 ret = dri_load_driver(dri);
241 fprintf(stderr, "failed to load driver: %s\n", dri->base.driver_name);
245 dri->extensions[0] = &image_lookup_extension.base;
246 dri->extensions[1] = &use_invalidate.base;
247 dri->extensions[2] = &dri2_loader_extension.base;
248 dri->extensions[3] = NULL;
250 if (dri->dri2 == NULL)
253 dri->screen = dri->dri2->createNewScreen(0, dri->base.base.fd,
254 dri->extensions,
255 &dri->driver_configs, dri);
256 if (dri->screen == NULL)
259 extensions = dri->core->getExtensions(dri->screen);
260 if (dri_bind_extensions(dri, dri_core_extensions, extensions) < 0) {
265 dri->lookup_image = NULL;
266 dri->lookup_user_data = NULL;
271 dri->core->destroyScreen(dri->screen);
317 struct gbm_dri_device *dri = gbm_dri_device(_bo->gbm);
322 dri->image->destroyImage(bo->image);
327 drmIoctl(dri->base.base.fd, DRM_IOCTL_MODE_DESTROY_DUMB, &arg);
363 struct gbm_dri_device *dri = gbm_dri_device(gbm);
370 if (dri->image->base.version < 4)
404 if (dri->lookup_image == NULL)
407 image = dri->lookup_image(dri->screen, buffer, dri->lookup_user_data);
408 dri->image->queryImage(image, __DRI_IMAGE_ATTRIB_FORMAT, &dri_format);
424 bo->image = dri->image->dupImage(image, NULL);
430 if (dri->image->base.version >= 2 &&
431 !dri->image->validateUsage(bo->image, dri_use)) {
439 dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_WIDTH,
441 dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HEIGHT,
443 dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
445 dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
456 struct gbm_dri_device *dri = gbm_dri_device(gbm);
476 ret = drmIoctl(dri->base.base.fd, DRM_IOCTL_MODE_CREATE_DUMB, &create_arg);
491 ret = drmIoctl(dri->base.base.fd, DRM_IOCTL_MODE_MAP_DUMB, &map_arg);
496 MAP_SHARED, dri->base.base.fd, map_arg.offset);
505 drmIoctl(dri->base.base.fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy_arg);
517 struct gbm_dri_device *dri = gbm_dri_device(gbm);
561 dri->image->createImage(dri->screen,
568 dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
570 dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
607 struct gbm_dri_device *dri = gbm_dri_device(gbm);
609 dri->core->destroyScreen(dri->screen);
610 free(dri->driver_configs);
611 dlclose(dri->driver);
612 free(dri->base.driver_name);
614 free(dri);
620 struct gbm_dri_device *dri;
623 dri = calloc(1, sizeof *dri);
625 dri->base.base.fd = fd;
626 dri->base.base.bo_create = gbm_dri_bo_create;
627 dri->base.base.bo_import = gbm_dri_bo_import;
628 dri->base.base.is_format_supported = gbm_dri_is_format_supported;
629 dri->base.base.bo_write = gbm_dri_bo_write;
630 dri->base.base.bo_destroy = gbm_dri_bo_destroy;
631 dri->base.base.destroy = dri_destroy;
632 dri->base.base.surface_create = gbm_dri_surface_create;
633 dri->base.base.surface_destroy = gbm_dri_surface_destroy;
635 dri->base.type = GBM_DRM_DRIVER_TYPE_DRI;
636 dri->base.base.name = "drm";
638 ret = dri_screen_create(dri);
642 return &dri->base.base;
645 free(dri);
651 .backend_name = "dri",