Lines Matching refs:psc
105 struct dri3_screen *psc = (struct dri3_screen *) priv->base.psc; in glx_dri3_in_current_context() local
107 return (&pcp->base != &dummyContext) && pcp->base.psc == &psc->base; in glx_dri3_in_current_context()
124 struct dri3_screen *psc = (struct dri3_screen *) pcp->base.psc; in glx_dri3_get_dri_screen() local
126 return (gc != &dummyContext && psc) ? psc->driScreen : NULL; in glx_dri3_get_dri_screen()
140 ((struct dri3_screen *) priv->base.psc)->show_fps_interval; in glx_dri3_show_fps()
175 struct dri3_screen *psc = (struct dri3_screen *) context->psc; in dri3_destroy_context() local
181 (*psc->core->destroyContext) (pcp->driContext); in dri3_destroy_context()
191 struct dri3_screen *psc = (struct dri3_screen *) pcp->base.psc; in dri3_bind_context() local
210 if (!(*psc->core->bindContext) (pcp->driContext, dri_draw, dri_read)) in dri3_bind_context()
214 psc->f->invalidate(dri_draw); in dri3_bind_context()
216 psc->f->invalidate(dri_read); in dri3_bind_context()
225 struct dri3_screen *psc = (struct dri3_screen *) pcp->base.psc; in dri3_unbind_context() local
227 (*psc->core->unbindContext) (pcp->driContext); in dri3_unbind_context()
240 struct dri3_screen *psc = (struct dri3_screen *) base; in dri3_create_context_attribs() local
281 if (!glx_context_init(&pcp->base, &psc->base, config_base)) in dri3_create_context_attribs()
316 (*psc->image_driver->createContextAttribs) (psc->driScreen, in dri3_create_context_attribs()
366 struct dri3_screen *psc = (struct dri3_screen *) base; in dri3_create_drawable() local
381 pdraw->base.psc = &psc->base; in dri3_create_drawable()
384 if ((psc->image && psc->image->base.version >= 15) && in dri3_create_drawable()
391 (void) __glXInitialize(psc->base.dpy); in dri3_create_drawable()
394 xDrawable, psc->driScreen, in dri3_create_drawable()
395 psc->is_different_gpu, has_multibuffer, in dri3_create_drawable()
397 &psc->loader_dri3_ext, &glx_dri3_vtable, in dri3_create_drawable()
429 dri3_drawable_get_msc(struct glx_screen *psc, __GLXDRIdrawable *pdraw, in dri3_drawable_get_msc() argument
491 struct dri3_screen *psc; in dri3_flush_front_buffer() local
496 if (!pdraw->base.psc) in dri3_flush_front_buffer()
499 psc = (struct dri3_screen *) pdraw->base.psc; in dri3_flush_front_buffer()
501 (void) __glXInitialize(psc->base.dpy); in dri3_flush_front_buffer()
505 psc->f->invalidate(driDrawable); in dri3_flush_front_buffer()
522 struct dri3_screen *psc; in dri3_flush_swap_buffers() local
527 if (!pdraw->base.psc) in dri3_flush_swap_buffers()
530 psc = (struct dri3_screen *) pdraw->base.psc; in dri3_flush_swap_buffers()
532 (void) __glXInitialize(psc->base.dpy); in dri3_flush_swap_buffers()
612 struct dri3_screen *psc = (struct dri3_screen *) base; in dri3_destroy_screen() local
615 loader_dri3_close_screen(psc->driScreen); in dri3_destroy_screen()
616 (*psc->core->destroyScreen) (psc->driScreen); in dri3_destroy_screen()
617 driDestroyConfigs(psc->driver_configs); in dri3_destroy_screen()
618 close(psc->fd); in dri3_destroy_screen()
619 free(psc); in dri3_destroy_screen()
633 struct dri3_screen *psc = (struct dri3_screen *) priv->base.psc; in dri3_set_swap_interval() local
635 if (psc->config) in dri3_set_swap_interval()
636 psc->config->configQueryi(psc->driScreen, in dri3_set_swap_interval()
680 struct dri3_screen *psc; in dri3_bind_tex_image() local
683 psc = (struct dri3_screen *) base->psc; in dri3_bind_tex_image()
685 psc->f->invalidate(pdraw->loader_drawable.dri_drawable); in dri3_bind_tex_image()
689 (*psc->texBuffer->setTexBuffer2) (pcp->driContext, in dri3_bind_tex_image()
703 struct dri3_screen *psc; in dri3_release_tex_image() local
706 psc = (struct dri3_screen *) base->psc; in dri3_release_tex_image()
708 if (psc->texBuffer->base.version >= 3 && in dri3_release_tex_image()
709 psc->texBuffer->releaseTexBuffer != NULL) in dri3_release_tex_image()
710 (*psc->texBuffer->releaseTexBuffer) (pcp->driContext, in dri3_release_tex_image()
735 dri3_bind_extensions(struct dri3_screen *psc, struct glx_display * priv, in dri3_bind_extensions() argument
742 extensions = psc->core->getExtensions(psc->driScreen); in dri3_bind_extensions()
744 __glXEnableDirectExtension(&psc->base, "GLX_EXT_swap_control"); in dri3_bind_extensions()
745 __glXEnableDirectExtension(&psc->base, "GLX_EXT_swap_control_tear"); in dri3_bind_extensions()
746 __glXEnableDirectExtension(&psc->base, "GLX_SGI_swap_control"); in dri3_bind_extensions()
747 __glXEnableDirectExtension(&psc->base, "GLX_MESA_swap_control"); in dri3_bind_extensions()
748 __glXEnableDirectExtension(&psc->base, "GLX_SGI_make_current_read"); in dri3_bind_extensions()
749 __glXEnableDirectExtension(&psc->base, "GLX_INTEL_swap_event"); in dri3_bind_extensions()
751 mask = psc->image_driver->getAPIMask(psc->driScreen); in dri3_bind_extensions()
753 __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context"); in dri3_bind_extensions()
754 __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_profile"); in dri3_bind_extensions()
759 __glXEnableDirectExtension(&psc->base, in dri3_bind_extensions()
761 __glXEnableDirectExtension(&psc->base, in dri3_bind_extensions()
770 if (!psc->is_different_gpu && in dri3_bind_extensions()
772 psc->texBuffer = (__DRItexBufferExtension *) extensions[i]; in dri3_bind_extensions()
773 __glXEnableDirectExtension(&psc->base, "GLX_EXT_texture_from_pixmap"); in dri3_bind_extensions()
777 psc->f = (__DRI2flushExtension *) extensions[i]; in dri3_bind_extensions()
782 psc->image = (__DRIimageExtension *) extensions[i]; in dri3_bind_extensions()
785 psc->config = (__DRI2configQueryExtension *) extensions[i]; in dri3_bind_extensions()
788 __glXEnableDirectExtension(&psc->base, in dri3_bind_extensions()
792 __glXEnableDirectExtension(&psc->base, in dri3_bind_extensions()
796 psc->rendererQuery = (__DRI2rendererQueryExtension *) extensions[i]; in dri3_bind_extensions()
797 __glXEnableDirectExtension(&psc->base, "GLX_MESA_query_renderer"); in dri3_bind_extensions()
801 psc->interop = (__DRI2interopExtension*)extensions[i]; in dri3_bind_extensions()
804 __glXEnableDirectExtension(&psc->base, in dri3_bind_extensions()
812 struct dri3_screen *psc = (struct dri3_screen *)glx_screen; in dri3_get_driver_name() local
814 return loader_get_driver_for_fd(psc->fd); in dri3_get_driver_name()
845 struct dri3_screen *psc; in dri3_create_screen() local
852 psc = calloc(1, sizeof *psc); in dri3_create_screen()
853 if (psc == NULL) in dri3_create_screen()
856 psc->fd = -1; in dri3_create_screen()
858 if (!glx_screen_init(&psc->base, screen, priv)) { in dri3_create_screen()
859 free(psc); in dri3_create_screen()
863 psc->fd = loader_dri3_open(c, RootWindow(priv->dpy, screen), None); in dri3_create_screen()
864 if (psc->fd < 0) { in dri3_create_screen()
867 glx_screen_cleanup(&psc->base); in dri3_create_screen()
868 free(psc); in dri3_create_screen()
877 psc->fd = loader_get_user_preferred_fd(psc->fd, &psc->is_different_gpu); in dri3_create_screen()
879 driverName = loader_get_driver_for_fd(psc->fd); in dri3_create_screen()
885 extensions = driOpenDriver(driverName, &psc->driver); in dri3_create_screen()
891 psc->core = (__DRIcoreExtension *) extensions[i]; in dri3_create_screen()
893 psc->image_driver = (__DRIimageDriverExtension *) extensions[i]; in dri3_create_screen()
897 if (psc->core == NULL) { in dri3_create_screen()
902 if (psc->image_driver == NULL) { in dri3_create_screen()
907 psc->driScreen = in dri3_create_screen()
908 psc->image_driver->createNewScreen2(screen, psc->fd, in dri3_create_screen()
911 &driver_configs, psc); in dri3_create_screen()
913 if (psc->driScreen == NULL) { in dri3_create_screen()
918 dri3_bind_extensions(psc, priv, driverName); in dri3_create_screen()
920 if (!psc->image || psc->image->base.version < 7 || !psc->image->createImageFromFds) { in dri3_create_screen()
925 if (!psc->f || psc->f->base.version < 4) { in dri3_create_screen()
930 if (psc->is_different_gpu && psc->image->base.version < 9) { in dri3_create_screen()
935 if (psc->is_different_gpu && !psc->image->blitImage) { in dri3_create_screen()
940 if (!psc->is_different_gpu && ( in dri3_create_screen()
941 !psc->texBuffer || psc->texBuffer->base.version < 2 || in dri3_create_screen()
942 !psc->texBuffer->setTexBuffer2 in dri3_create_screen()
948 psc->loader_dri3_ext.core = psc->core; in dri3_create_screen()
949 psc->loader_dri3_ext.image_driver = psc->image_driver; in dri3_create_screen()
950 psc->loader_dri3_ext.flush = psc->f; in dri3_create_screen()
951 psc->loader_dri3_ext.tex_buffer = psc->texBuffer; in dri3_create_screen()
952 psc->loader_dri3_ext.image = psc->image; in dri3_create_screen()
953 psc->loader_dri3_ext.config = psc->config; in dri3_create_screen()
955 configs = driConvertConfigs(psc->core, psc->base.configs, driver_configs); in dri3_create_screen()
956 visuals = driConvertConfigs(psc->core, psc->base.visuals, driver_configs); in dri3_create_screen()
963 glx_config_destroy_list(psc->base.configs); in dri3_create_screen()
964 psc->base.configs = configs; in dri3_create_screen()
965 glx_config_destroy_list(psc->base.visuals); in dri3_create_screen()
966 psc->base.visuals = visuals; in dri3_create_screen()
968 psc->driver_configs = driver_configs; in dri3_create_screen()
970 psc->base.vtable = &dri3_screen_vtable; in dri3_create_screen()
971 psp = &psc->vtable; in dri3_create_screen()
972 psc->base.driScreen = psp; in dri3_create_screen()
982 if (psc->config->configQueryb(psc->driScreen, in dri3_create_screen()
985 __glXEnableDirectExtension(&psc->base, "GLX_OML_sync_control"); in dri3_create_screen()
987 if (psc->config->configQueryb(psc->driScreen, in dri3_create_screen()
990 __glXEnableDirectExtension(&psc->base, "GLX_SGI_video_sync"); in dri3_create_screen()
993 __glXEnableDirectExtension(&psc->base, "GLX_MESA_copy_sub_buffer"); in dri3_create_screen()
996 if (psc->config->configQueryb(psc->driScreen, in dri3_create_screen()
999 __glXEnableDirectExtension(&psc->base, "GLX_EXT_buffer_age"); in dri3_create_screen()
1001 if (psc->config->base.version > 1 && in dri3_create_screen()
1002 psc->config->configQuerys(psc->driScreen, "glx_extension_override", in dri3_create_screen()
1004 __glXParseExtensionOverride(&psc->base, tmp); in dri3_create_screen()
1006 if (psc->config->base.version > 1 && in dri3_create_screen()
1007 psc->config->configQuerys(psc->driScreen, in dri3_create_screen()
1010 __IndirectGlParseExtensionOverride(&psc->base, tmp); in dri3_create_screen()
1015 psc->show_fps_interval = tmp ? atoi(tmp) : 0; in dri3_create_screen()
1016 if (psc->show_fps_interval < 0) in dri3_create_screen()
1017 psc->show_fps_interval = 0; in dri3_create_screen()
1021 return &psc->base; in dri3_create_screen()
1030 if (psc->driScreen) in dri3_create_screen()
1031 psc->core->destroyScreen(psc->driScreen); in dri3_create_screen()
1032 psc->driScreen = NULL; in dri3_create_screen()
1033 if (psc->fd >= 0) in dri3_create_screen()
1034 close(psc->fd); in dri3_create_screen()
1035 if (psc->driver) in dri3_create_screen()
1036 dlclose(psc->driver); in dri3_create_screen()
1039 glx_screen_cleanup(&psc->base); in dri3_create_screen()
1040 free(psc); in dri3_create_screen()