Home | History | Annotate | Download | only in glx

Lines Matching refs:psc

125    struct dri2_screen *psc = (struct dri2_screen *) context->psc;
132 (*psc->core->destroyContext) (pcp->driContext);
142 struct dri2_screen *psc = (struct dri2_screen *) pcp->base.psc;
154 if (!(*psc->core->bindContext) (pcp->driContext,
161 pdp = (struct dri2_display *) psc->base.display;
163 dri2InvalidateBuffers(psc->base.dpy, pdraw->base.xDrawable);
165 dri2InvalidateBuffers(psc->base.dpy, pread->base.xDrawable);
175 struct dri2_screen *psc = (struct dri2_screen *) pcp->base.psc;
177 (*psc->core->unbindContext) (pcp->driContext);
186 struct dri2_screen *psc = (struct dri2_screen *) base;
207 if (!glx_context_init(&pcp->base, &psc->base, &config->base)) {
213 (*psc->dri2->createNewContext) (psc->driScreen,
236 struct dri2_screen *psc = (struct dri2_screen *) base;
248 if (psc->dri2->base.version < 3) {
272 if (!glx_context_init(&pcp->base, &psc->base, &config->base))
299 (*psc->dri2->createContextAttribs) (psc->driScreen,
325 struct dri2_screen *psc = (struct dri2_screen *) base->psc;
327 struct glx_display *dpyPriv = psc->base.display;
331 (*psc->core->destroyDrawable) (pdraw->driDrawable);
341 DRI2DestroyDrawable(psc->base.dpy, pdraw->base.xDrawable);
351 struct dri2_screen *psc = (struct dri2_screen *) base;
365 pdraw->base.psc = &psc->base;
370 if (psc->config)
371 psc->config->configQueryi(psc->driScreen,
386 DRI2CreateDrawable(psc->base.dpy, xDrawable);
388 dpyPriv = __glXInitialize(psc->base.dpy);
392 (*psc->dri2->createNewDrawable) (psc->driScreen,
396 DRI2DestroyDrawable(psc->base.dpy, xDrawable);
402 (*psc->core->destroyDrawable) (pdraw->driDrawable);
403 DRI2DestroyDrawable(psc->base.dpy, xDrawable);
415 DRI2SwapInterval(psc->base.dpy, xDrawable, pdraw->swap_interval);
424 dri2DrawableGetMSC(struct glx_screen *psc, __GLXDRIdrawable *pdraw,
430 ret = DRI2GetMSC(psc->dpy, pdraw->xDrawable,
451 ret = DRI2WaitMSC(pdraw->psc->dpy, pdraw->xDrawable, target_msc, divisor,
467 ret = DRI2WaitSBC(pdraw->psc->dpy, pdraw->xDrawable,
486 dri2Throttle(struct dri2_screen *psc,
490 if (psc->throttle) {
496 psc->throttle->throttle(ctx, draw->driDrawable, reason);
506 struct dri2_screen *psc = (struct dri2_screen *) pdraw->psc;
520 if (psc->f)
521 (*psc->f->flush) (priv->driDrawable);
524 dri2Throttle(psc, priv, reason);
526 region = XFixesCreateRegion(psc->base.dpy, &xrect, 1);
527 DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
534 DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
537 XFixesDestroyRegion(psc->base.dpy, region);
554 struct dri2_screen *psc = (struct dri2_screen *) priv->base.psc;
562 if (psc->f)
563 (*psc->f->flush) (priv->driDrawable);
566 region = XFixesCreateRegion(psc->base.dpy, &xrect, 1);
567 DRI2CopyRegion(psc->base.dpy, priv->base.xDrawable, region, dest, src);
568 XFixesDestroyRegion(psc->base.dpy, region);
603 struct dri2_screen *psc;
608 if (!pdraw->base.psc)
611 psc = (struct dri2_screen *) pdraw->base.psc;
613 priv = __glXInitialize(psc->base.dpy);
617 dri2Throttle(psc, pdraw, __DRI2_THROTTLE_FLUSHFRONT);
630 struct dri2_screen *psc = (struct dri2_screen *) base;
633 (*psc->core->destroyScreen) (psc->driScreen);
634 driDestroyConfigs(psc->driver_configs);
635 close(psc->fd);
636 Xfree(psc);
706 struct glx_display *dpyPriv = __glXInitialize(priv->base.psc->dpy);
707 struct dri2_screen *psc = (struct dri2_screen *) priv->base.psc;
723 if (psc->f) {
727 (*psc->f->flush)(priv->driDrawable);
732 dri2Throttle(psc, priv, __DRI2_THROTTLE_SWAPBUFFER);
734 DRI2SwapBuffers(psc->base.dpy, pdraw->xDrawable,
739 if (psc->show_fps) {
759 buffers = DRI2GetBuffers(pdraw->base.psc->dpy, pdraw->base.xDrawable,
782 buffers = DRI2GetBuffersWithFormat(pdraw->base.psc->dpy,
805 struct dri2_screen *psc = (struct dri2_screen *) priv->base.psc;
807 if (psc->config)
808 psc->config->configQueryi(psc->driScreen,
822 DRI2SwapInterval(priv->base.psc->dpy, priv->base.xDrawable, interval);
863 struct dri2_screen *psc;
869 psc = (struct dri2_screen *) pdraw->psc;
872 if (pdraw && psc->f && psc->f->base.version >= 3 && psc->f->invalidate)
873 psc->f->invalidate(pdp->driDrawable);
889 struct dri2_screen *psc;
892 psc = (struct dri2_screen *) base->psc;
895 if (!pdp->invalidateAvailable && psc->f &&
896 psc->f->base.version >= 3 && psc->f->invalidate)
897 psc->f->invalidate(pdraw->driDrawable);
900 if (psc->texBuffer->base.version >= 2 &&
901 psc->texBuffer->setTexBuffer2 != NULL) {
902 (*psc->texBuffer->setTexBuffer2) (pcp->driContext,
908 (*psc->texBuffer->setTexBuffer) (pcp->driContext,
926 struct dri2_screen *psc;
929 psc = (struct dri2_screen *) base->psc;
931 if (psc->texBuffer->base.version >= 3 &&
932 psc->texBuffer->releaseTexBuffer != NULL) {
933 (*psc->texBuffer->releaseTexBuffer) (pcp->driContext,
954 dri2BindExtensions(struct dri2_screen *psc, const __DRIextension **extensions,
959 __glXEnableDirectExtension(&psc->base, "GLX_SGI_video_sync");
960 __glXEnableDirectExtension(&psc->base, "GLX_SGI_swap_control");
961 __glXEnableDirectExtension(&psc->base, "GLX_MESA_swap_control");
962 __glXEnableDirectExtension(&psc->base, "GLX_SGI_make_current_read");
973 __glXEnableDirectExtension(&psc->base, "GLX_INTEL_swap_event");
976 if (psc->dri2->base.version >= 3) {
977 const unsigned mask = psc->dri2->getAPIMask(psc->driScreen);
979 __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context");
980 __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_profile");
983 __glXEnableDirectExtension(&psc->base,
989 psc->texBuffer = (__DRItexBufferExtension *) extensions[i];
990 __glXEnableDirectExtension(&psc->base, "GLX_EXT_texture_from_pixmap");
994 psc->f = (__DRI2flushExtension *) extensions[i];
999 psc->config = (__DRI2configQueryExtension *) extensions[i];
1002 psc->throttle = (__DRI2throttleExtension *) extensions[i];
1007 if (psc->dri2->base.version >= 3
1009 __glXEnableDirectExtension(&psc->base,
1026 struct dri2_screen *psc;
1033 psc = Xmalloc(sizeof *psc);
1034 if (psc == NULL)
1037 memset(psc, 0, sizeof *psc);
1038 psc->fd = -1;
1040 if (!glx_screen_init(&psc->base, screen, priv)) {
1041 Xfree(psc);
1047 glx_screen_cleanup(&psc->base);
1048 XFree(psc);
1053 psc->driver = driOpenDriver(driverName);
1054 if (psc->driver == NULL) {
1059 extensions = dlsym(psc->driver, __DRI_DRIVER_EXTENSIONS);
1067 psc->core = (__DRIcoreExtension *) extensions[i];
1069 psc->dri2 = (__DRIdri2Extension *) extensions[i];
1072 if (psc->core == NULL || psc->dri2 == NULL) {
1078 psc->fd = open(deviceName, O_RDWR | O_CLOEXEC);
1079 if (psc->fd == -1 && errno == EINVAL)
1082 psc->fd = open(deviceName, O_RDWR);
1083 if (psc->fd != -1)
1084 fcntl(psc->fd, F_SETFD, fcntl(psc->fd, F_GETFD) | FD_CLOEXEC);
1086 if (psc->fd < 0) {
1091 if (drmGetMagic(psc->fd, &magic)) {
1105 psc->driScreen =
1106 psc->dri2->createNewScreen(screen, psc->fd,
1109 &driver_configs, psc);
1111 if (psc->driScreen == NULL) {
1116 extensions = psc->core->getExtensions(psc->driScreen);
1117 dri2BindExtensions(psc, extensions, driverName);
1119 configs = driConvertConfigs(psc->core, psc->base.configs, driver_configs);
1120 visuals = driConvertConfigs(psc->core, psc->base.visuals, driver_configs);
1125 glx_config_destroy_list(psc->base.configs);
1126 psc->base.configs = configs;
1127 glx_config_destroy_list(psc->base.visuals);
1128 psc->base.visuals = visuals;
1130 psc->driver_configs = driver_configs;
1132 psc->base.vtable = &dri2_screen_vtable;
1133 psp = &psc->vtable;
1134 psc->base.driScreen = psp;
1157 __glXEnableDirectExtension(&psc->base, "GLX_OML_sync_control");
1164 __glXEnableDirectExtension(&psc->base, "GLX_MESA_copy_sub_buffer");
1170 psc->show_fps = tmp && strcmp(tmp, "1") == 0;
1172 return &psc->base;
1181 if (psc->driScreen)
1182 psc->core->destroyScreen(psc->driScreen);
1183 psc->driScreen = NULL;
1184 if (psc->fd >= 0)
1185 close(psc->fd);
1186 if (psc->driver)
1187 dlclose(psc->driver);
1191 glx_screen_cleanup(&psc->base);
1192 XFree(psc);