Lines Matching refs:screen
300 struct dri_screen *screen = dri_screen(sPriv);
367 screen->base.screen->resource_create(screen->base.screen, &templ);
374 if (screen->can_share_buffer)
379 screen->base.screen->resource_get_handle(screen->base.screen, NULL,
425 pipe->screen->fence_reference(pipe->screen, &fence, NULL);
442 struct dri_screen *screen = dri_screen(sPriv);
521 templ.target = screen->target;
584 if (!screen->auto_fake_front) {
613 if (screen->can_share_buffer)
618 screen->base.screen->resource_from_handle(screen->base.screen,
650 screen->base.screen->resource_create(screen->base.screen,
707 *zsbuf = screen->base.screen->resource_create(screen->base.screen,
777 fence_fd = pipe->screen->fence_get_fd(pipe->screen, fence);
782 pipe->screen->fence_reference(pipe->screen, &fence, NULL);
850 struct dri_screen *screen = dri_screen(_screen);
851 struct pipe_screen *pscreen = screen->base.screen;
859 if (pscreen->is_format_supported(pscreen, map->pipe_format, screen->target, 0, 0,
862 if (pscreen->is_format_supported(pscreen, map->pipe_format, screen->target, 0, 0,
869 screen->target, 0, 0, PIPE_BIND_SAMPLER_VIEW)) {
879 screen->target, 0, 0, PIPE_BIND_SAMPLER_VIEW)) {
886 screen->target, 0, 0, PIPE_BIND_SAMPLER_VIEW)) {
899 if (dri2_yuv_dma_buf_supported(screen, map))
912 templ.target = screen->target;
959 const struct driOptionCache *optionCache = &screen->dev->option_cache;
1018 struct pipe_screen *pscreen = dri_screen(_screen)->base.screen;
1115 struct dri_screen *screen = dri_screen(_screen);
1116 struct pipe_screen *pscreen = screen->base.screen;
1124 if (pscreen->is_format_supported(pscreen, map->pipe_format, screen->target,
1127 if (pscreen->is_format_supported(pscreen, map->pipe_format, screen->target,
1166 screen->base.screen
1167 ->resource_create_with_modifiers(screen->base.screen,
1173 screen->base.screen->resource_create(screen->base.screen, &templ);
1264 struct pipe_screen *pscreen = image->texture->screen;
1338 struct pipe_screen *pscreen = image->texture->screen;
1357 if (!image->texture->screen->resource_get_param)
1467 struct pipe_screen *screen = image->texture->screen;
1468 if (!screen->check_resource_capability)
1486 return screen->check_resource_capability(screen, image->texture, bind);
1490 dri2_from_names(__DRIscreen *screen, int width, int height, int format,
1512 img = dri2_create_image_from_winsys(screen, width, height, map,
1553 if (img->texture->screen->resource_changed)
1554 img->texture->screen->resource_changed(img->texture->screen,
1564 dri2_from_fds(__DRIscreen *screen, int width, int height, int fourcc,
1568 return dri2_create_image_from_fd(screen, width, height, fourcc,
1574 dri2_from_fds2(__DRIscreen *screen, int width, int height, int fourcc,
1584 return dri2_create_image_from_fd(screen, width, height, fourcc,
1594 struct dri_screen *screen = dri_screen(_screen);
1595 struct pipe_screen *pscreen = screen->base.screen;
1604 bool native_sampling = pscreen->is_format_supported(pscreen, format, screen->target, 0, 0,
1606 if (pscreen->is_format_supported(pscreen, format, screen->target, 0, 0,
1609 dri2_yuv_dma_buf_supported(screen, map)) {
1632 struct dri_screen *screen = dri_screen(_screen);
1633 struct pipe_screen *pscreen = screen->base.screen;
1652 dri2_from_dma_bufs(__DRIscreen *screen,
1665 img = dri2_create_image_from_fd(screen, width, height, fourcc,
1681 dri2_from_dma_bufs2(__DRIscreen *screen,
1694 img = dri2_create_image_from_fd(screen, width, height, fourcc,
1710 dri2_from_dma_bufs3(__DRIscreen *screen,
1724 img = dri2_create_image_from_fd(screen, width, height, fourcc,
1749 struct pipe_screen *screen;
1782 screen = dri_screen(ctx->sPriv)->base.screen;
1785 (void) screen->fence_finish(screen, NULL, fence, PIPE_TIMEOUT_INFINITE);
1786 screen->fence_reference(screen, &fence, NULL);
1841 struct dri_screen *screen = dri_screen(_screen);
1843 return (screen->can_share_buffer ? __DRI_IMAGE_CAP_GLOBAL_NAMES : 0);
1937 struct pipe_screen *screen = dri_context(_ctx)->st->pipe->screen;
1943 out->pci_segment_group = screen->get_param(screen, PIPE_CAP_PCI_GROUP);
1944 out->pci_bus = screen->get_param(screen, PIPE_CAP_PCI_BUS);
1945 out->pci_device = screen->get_param(screen, PIPE_CAP_PCI_DEVICE);
1946 out->pci_function = screen->get_param(screen, PIPE_CAP_PCI_FUNCTION);
1948 out->vendor_id = screen->get_param(screen, PIPE_CAP_VENDOR_ID);
1949 out->device_id = screen->get_param(screen, PIPE_CAP_DEVICE_ID);
1963 struct pipe_screen *screen = st->pipe->screen;
2174 success = screen->resource_get_handle(screen, st->pipe, res, &whandle,
2227 struct pipe_screen *screen = drawable->screen->base.screen;
2235 screen->set_damage_region(screen, resource,
2252 struct dri_screen *screen = dri_screen(sPriv);
2254 if (!driCheckOption(&screen->dev->option_cache, var, DRI_BOOL))
2257 *val = driQueryOptionb(&screen->dev->option_cache, var);
2268 struct dri_screen *screen = dri_screen(sPriv);
2270 if (!driCheckOption(&screen->dev->option_cache, var, DRI_INT) &&
2271 !driCheckOption(&screen->dev->option_cache, var, DRI_ENUM))
2274 *val = driQueryOptioni(&screen->dev->option_cache, var);
2285 struct dri_screen *screen = dri_screen(sPriv);
2287 if (!driCheckOption(&screen->dev->option_cache, var, DRI_FLOAT))
2290 *val = driQueryOptionf(&screen->dev->option_cache, var);
2301 struct dri_screen *screen = dri_screen(sPriv);
2303 if (!driCheckOption(&screen->dev->option_cache, var, DRI_STRING))
2306 *val = driQueryOptionstr(&screen->dev->option_cache, var);
2332 struct dri_screen *screen = dri_screen(sPriv);
2333 struct pipe_screen *pscreen = screen->base.screen;
2373 * Set up the DRI extension list for this screen based on its underlying
2374 * gallium screen's capabilities.
2377 dri2_init_screen_extensions(struct dri_screen *screen,
2383 STATIC_ASSERT(sizeof(screen->screen_extensions) >=
2385 memcpy(&screen->screen_extensions, dri_screen_extensions_base,
2387 screen->sPriv->extensions = screen->screen_extensions;
2390 nExt = &screen->screen_extensions[ARRAY_SIZE(dri_screen_extensions_base)];
2392 screen->image_extension = dri2ImageExtensionTempl;
2394 screen->image_extension.createImageWithModifiers =
2396 screen->image_extension.createImageWithModifiers2 =
2401 screen->image_extension.setInFenceFd = dri2_set_in_fence_fd;
2407 if (drmGetCap(screen->sPriv->fd, DRM_CAP_PRIME, &cap) == 0 &&
2409 screen->image_extension.createImageFromFds = dri2_from_fds;
2410 screen->image_extension.createImageFromFds2 = dri2_from_fds2;
2411 screen->image_extension.createImageFromDmaBufs = dri2_from_dma_bufs;
2412 screen->image_extension.createImageFromDmaBufs2 = dri2_from_dma_bufs2;
2413 screen->image_extension.createImageFromDmaBufs3 = dri2_from_dma_bufs3;
2414 screen->image_extension.queryDmaBufFormats =
2416 screen->image_extension.queryDmaBufModifiers =
2419 screen->image_extension.queryDmaBufFormatModifierAttribs =
2424 *nExt++ = &screen->image_extension.base;
2427 screen->buffer_damage_extension = dri2BufferDamageExtensionTempl;
2429 screen->buffer_damage_extension.set_damage_region =
2431 *nExt++ = &screen->buffer_damage_extension.base;
2435 screen->has_reset_status_query = true;
2441 assert(nExt - screen->screen_extensions <=
2442 ARRAY_SIZE(screen->screen_extensions) - 1);
2455 struct dri_screen *screen;
2458 screen = CALLOC_STRUCT(dri_screen);
2459 if (!screen)
2462 screen->sPriv = sPriv;
2463 screen->fd = sPriv->fd;
2464 (void) mtx_init(&screen->opencl_func_mutex, mtx_plain);
2466 sPriv->driverPrivate = (void *)screen;
2468 if (pipe_loader_drm_probe_fd(&screen->dev, screen->fd)) {
2469 pscreen = pipe_loader_create_screen(screen->dev);
2470 dri_init_options(screen);
2476 screen->throttle = pscreen->get_param(pscreen, PIPE_CAP_THROTTLE);
2478 dri2_init_screen_extensions(screen, pscreen, false);
2480 configs = dri_init_screen_helper(screen, pscreen);
2484 screen->can_share_buffer = true;
2485 screen->auto_fake_front = dri_with_format(sPriv);
2486 screen->lookup_egl_image = dri2_lookup_egl_image;
2493 screen->validate_egl_image = dri2_validate_egl_image;
2494 screen->lookup_egl_image_validated = dri2_lookup_egl_image_validated;
2500 dri_destroy_screen_helper(screen);
2503 if (screen->dev)
2504 pipe_loader_release(&screen->dev, 1);
2506 FREE(screen);
2520 struct dri_screen *screen;
2523 screen = CALLOC_STRUCT(dri_screen);
2524 if (!screen)
2527 screen->sPriv = sPriv;
2528 screen->fd = sPriv->fd;
2530 sPriv->driverPrivate = (void *)screen;
2533 if (pipe_loader_sw_probe_kms(&screen->dev, screen->fd)) {
2534 pscreen = pipe_loader_create_screen(screen->dev);
2535 dri_init_options(screen);
2542 dri2_init_screen_extensions(screen, pscreen, true);
2544 configs = dri_init_screen_helper(screen, pscreen);
2548 screen->can_share_buffer = false;
2549 screen->auto_fake_front = dri_with_format(sPriv);
2550 screen->lookup_egl_image = dri2_lookup_egl_image;
2557 screen->validate_egl_image = dri2_validate_egl_image;
2558 screen->lookup_egl_image_validated = dri2_lookup_egl_image_validated;
2564 dri_destroy_screen_helper(screen);
2567 if (screen->dev)
2568 pipe_loader_release(&screen->dev, 1);
2570 FREE(screen);