Lines Matching defs:psc
106 struct dri3_screen *psc = (struct dri3_screen *) priv->base.psc;
108 return (&pcp->base != &dummyContext) && pcp->base.psc == &psc->base;
125 struct dri3_screen *psc = (struct dri3_screen *) pcp->base.psc;
127 return (gc != &dummyContext && psc) ? psc->driScreen : NULL;
141 ((struct dri3_screen *) priv->base.psc)->show_fps_interval;
176 struct dri3_screen *psc = (struct dri3_screen *) context->psc;
182 (*psc->core->destroyContext) (pcp->driContext);
192 struct dri3_screen *psc = (struct dri3_screen *) pcp->base.psc;
211 if (!(*psc->core->bindContext) (pcp->driContext, dri_draw, dri_read))
215 psc->f->invalidate(dri_draw);
217 psc->f->invalidate(dri_read);
226 struct dri3_screen *psc = (struct dri3_screen *) pcp->base.psc;
228 (*psc->core->unbindContext) (pcp->driContext);
241 struct dri3_screen *psc = (struct dri3_screen *) base;
283 if (!glx_context_init(&pcp->base, &psc->base, config_base))
319 (*psc->image_driver->createContextAttribs) (psc->driScreen,
373 struct dri3_screen *psc = (struct dri3_screen *) base;
388 pdraw->base.psc = &psc->base;
391 if ((psc->image && psc->image->base.version >= 15) &&
398 (void) __glXInitialize(psc->base.dpy);
403 psc->driScreen,
404 psc->is_different_gpu, has_multibuffer,
405 psc->prefer_back_buffer_reuse,
407 &psc->loader_dri3_ext, &glx_dri3_vtable,
413 pdraw->loader_drawable.dri_screen_display_gpu = psc->driScreenDisplayGPU;
440 dri3_drawable_get_msc(struct glx_screen *psc, __GLXDRIdrawable *pdraw,
502 struct dri3_screen *psc;
507 if (!pdraw->base.psc)
510 psc = (struct dri3_screen *) pdraw->base.psc;
512 (void) __glXInitialize(psc->base.dpy);
516 psc->f->invalidate(driDrawable);
533 struct dri3_screen *psc;
538 if (!pdraw->base.psc)
541 psc = (struct dri3_screen *) pdraw->base.psc;
543 (void) __glXInitialize(psc->base.dpy);
623 struct dri3_screen *psc = (struct dri3_screen *) base;
626 if (psc->is_different_gpu) {
627 if (psc->driScreenDisplayGPU) {
628 loader_dri3_close_screen(psc->driScreenDisplayGPU);
629 (*psc->core->destroyScreen) (psc->driScreenDisplayGPU);
631 close(psc->fd_display_gpu);
633 loader_dri3_close_screen(psc->driScreen);
634 (*psc->core->destroyScreen) (psc->driScreen);
635 driDestroyConfigs(psc->driver_configs);
636 close(psc->fd);
637 free(psc);
650 struct dri3_screen *psc = (struct dri3_screen *) priv->base.psc;
652 if (!dri_valid_swap_interval(psc->driScreen, psc->config, interval))
681 struct dri3_screen *psc;
684 psc = (struct dri3_screen *) base->psc;
686 psc->f->invalidate(pdraw->loader_drawable.dri_drawable);
690 (*psc->texBuffer->setTexBuffer2) (pcp->driContext,
703 struct dri3_screen *psc;
706 psc = (struct dri3_screen *) base->psc;
708 if (psc->texBuffer->base.version >= 3 &&
709 psc->texBuffer->releaseTexBuffer != NULL)
710 (*psc->texBuffer->releaseTexBuffer) (pcp->driContext,
731 dri3_bind_extensions(struct dri3_screen *psc, struct glx_display * priv,
738 extensions = psc->core->getExtensions(psc->driScreen);
740 __glXEnableDirectExtension(&psc->base, "GLX_EXT_swap_control");
741 __glXEnableDirectExtension(&psc->base, "GLX_EXT_swap_control_tear");
742 __glXEnableDirectExtension(&psc->base, "GLX_SGI_swap_control");
743 __glXEnableDirectExtension(&psc->base, "GLX_MESA_swap_control");
744 __glXEnableDirectExtension(&psc->base, "GLX_SGI_make_current_read");
745 __glXEnableDirectExtension(&psc->base, "GLX_INTEL_swap_event");
747 mask = psc->image_driver->getAPIMask(psc->driScreen);
749 __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context");
750 __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_profile");
751 __glXEnableDirectExtension(&psc->base, "GLX_EXT_no_config_context");
756 __glXEnableDirectExtension(&psc->base,
758 __glXEnableDirectExtension(&psc->base,
767 if (!psc->is_different_gpu &&
769 psc->texBuffer = (__DRItexBufferExtension *) extensions[i];
770 __glXEnableDirectExtension(&psc->base, "GLX_EXT_texture_from_pixmap");
774 psc->f = (__DRI2flushExtension *) extensions[i];
779 psc->image = (__DRIimageExtension *) extensions[i];
782 psc->config = (__DRI2configQueryExtension *) extensions[i];
785 __glXEnableDirectExtension(&psc->base,
789 psc->rendererQuery = (__DRI2rendererQueryExtension *) extensions[i];
790 __glXEnableDirectExtension(&psc->base, "GLX_MESA_query_renderer");
792 if (psc->rendererQuery->queryInteger(psc->driScreen,
795 __glXEnableDirectExtension(&psc->base,
800 psc->interop = (__DRI2interopExtension*)extensions[i];
803 __glXEnableDirectExtension(&psc->base,
811 struct dri3_screen *psc = (struct dri3_screen *)glx_screen;
813 return loader_get_driver_for_fd(psc->fd);
844 struct dri3_screen *psc;
850 psc = calloc(1, sizeof *psc);
851 if (psc == NULL)
854 psc->fd = -1;
855 psc->fd_display_gpu = -1;
857 if (!glx_screen_init(&psc->base, screen, priv)) {
858 free(psc);
862 psc->fd = loader_dri3_open(c, RootWindow(priv->dpy, screen), None);
863 if (psc->fd < 0) {
866 glx_screen_cleanup(&psc->base);
867 free(psc);
876 psc->fd_display_gpu = fcntl(psc->fd, F_DUPFD_CLOEXEC, 3);
877 psc->fd = loader_get_user_preferred_fd(psc->fd, &psc->is_different_gpu);
878 if (!psc->is_different_gpu) {
879 close(psc->fd_display_gpu);
880 psc->fd_display_gpu = -1;
883 driverName = loader_get_driver_for_fd(psc->fd);
889 extensions = driOpenDriver(driverName, &psc->driver);
895 psc->core = (__DRIcoreExtension *) extensions[i];
897 psc->image_driver = (__DRIimageDriverExtension *) extensions[i];
901 if (psc->core == NULL) {
906 if (psc->image_driver == NULL) {
911 if (psc->is_different_gpu) {
912 driverNameDisplayGPU = loader_get_driver_for_fd(psc->fd_display_gpu);
921 psc->driScreenDisplayGPU =
922 psc->image_driver->createNewScreen2(screen, psc->fd_display_gpu,
925 &driver_configs, psc);
932 psc->driScreen =
933 psc->image_driver->createNewScreen2(screen, psc->fd,
936 &driver_configs, psc);
938 if (psc->driScreen == NULL) {
943 dri3_bind_extensions(psc, priv, driverName);
945 if (!psc->image || psc->image->base.version < 7 || !psc->image->createImageFromFds) {
950 if (!psc->f || psc->f->base.version < 4) {
955 if (psc->is_different_gpu && psc->image->base.version < 9) {
960 if (psc->is_different_gpu && !psc->image->blitImage) {
965 if (!psc->is_different_gpu && (
966 !psc->texBuffer || psc->texBuffer->base.version < 2 ||
967 !psc->texBuffer->setTexBuffer2
973 psc->loader_dri3_ext.core = psc->core;
974 psc->loader_dri3_ext.image_driver = psc->image_driver;
975 psc->loader_dri3_ext.flush = psc->f;
976 psc->loader_dri3_ext.tex_buffer = psc->texBuffer;
977 psc->loader_dri3_ext.image = psc->image;
978 psc->loader_dri3_ext.config = psc->config;
980 configs = driConvertConfigs(psc->core, psc->base.configs, driver_configs);
981 visuals = driConvertConfigs(psc->core, psc->base.visuals, driver_configs);
988 glx_config_destroy_list(psc->base.configs);
989 psc->base.configs = configs;
990 glx_config_destroy_list(psc->base.visuals);
991 psc->base.visuals = visuals;
993 psc->driver_configs = driver_configs;
995 psc->base.vtable = &dri3_screen_vtable;
996 psc->base.context_vtable = &dri3_context_vtable;
997 psp = &psc->vtable;
998 psc->base.driScreen = psp;
1012 __glXEnableDirectExtension(&psc->base, "GLX_OML_sync_control");
1013 __glXEnableDirectExtension(&psc->base, "GLX_SGI_video_sync");
1016 __glXEnableDirectExtension(&psc->base, "GLX_MESA_copy_sub_buffer");
1019 __glXEnableDirectExtension(&psc->base, "GLX_EXT_buffer_age");
1021 if (psc->config->base.version > 1 &&
1022 psc->config->configQuerys(psc->driScreen, "glx_extension_override",
1024 __glXParseExtensionOverride(&psc->base, tmp);
1026 if (psc->config->base.version > 1 &&
1027 psc->config->configQuerys(psc->driScreen,
1030 __IndirectGlParseExtensionOverride(&psc->base, tmp);
1032 if (psc->config->base.version > 1) {
1034 if (psc->config->configQueryb(psc->driScreen, "force_direct_glx_context",
1036 psc->base.force_direct_context = force;
1040 if (psc->config->configQueryb(psc->driScreen,
1043 psc->base.allow_invalid_glx_destroy_window = invalid_glx_destroy_window;
1047 if (psc->config->configQueryb(psc->driScreen,
1050 psc->base.keep_native_window_glx_drawable = keep_native_window_glx_drawable;
1057 psc->show_fps_interval = tmp ? atoi(tmp) : 0;
1058 if (psc->show_fps_interval < 0)
1059 psc->show_fps_interval = 0;
1063 psc->prefer_back_buffer_reuse = 1;
1064 if (psc->is_different_gpu && psc->rendererQuery) {
1066 if (psc->rendererQuery->queryInteger(psc->driScreen,
1069 psc->prefer_back_buffer_reuse = value;
1072 return &psc->base;
1081 if (psc->driScreen)
1082 psc->core->destroyScreen(psc->driScreen);
1083 psc->driScreen = NULL;
1084 if (psc->driScreenDisplayGPU)
1085 psc->core->destroyScreen(psc->driScreenDisplayGPU);
1086 psc->driScreenDisplayGPU = NULL;
1087 if (psc->fd >= 0)
1088 close(psc->fd);
1089 if (psc->fd_display_gpu >= 0)
1090 close(psc->fd_display_gpu);
1091 if (psc->driver)
1092 dlclose(psc->driver);
1095 glx_screen_cleanup(&psc->base);
1096 free(psc);