Lines Matching defs:surface

527  * vmw_du_plane_unpin_surf - unpins resource associated with a framebuffer surface
529 * @vps: plane state associated with the display surface
551 * vmw_du_plane_cleanup_fb - Unpins the plane surface
556 * Unpins the framebuffer surface
639 * vmw_du_cursor_plane_cleanup_fb - Unpins the plane surface
644 * Unmaps all cursor bo mappings and unpins the cursor surface
713 vps->surf = vmw_framebuffer_to_vfbs(fb)->surface;
885 struct vmw_surface *surface = NULL;
911 surface = vmw_framebuffer_to_vfbs(fb)->surface;
913 WARN_ON(!surface);
915 if (!surface ||
916 (!surface->snooper.image && !surface->res.guest_memory_bo)) {
917 DRM_ERROR("surface not suitable for cursor\n");
1226 vmw_surface_unreference(&vfbs->surface);
1278 struct vmw_surface *surface,
1308 if (unlikely(!surface->metadata.scanout))
1311 if (unlikely(surface->metadata.mip_levels[0] != 1 ||
1312 surface->metadata.num_sizes != 1 ||
1313 surface->metadata.base_size.width < mode_cmd->width ||
1314 surface->metadata.base_size.height < mode_cmd->height ||
1315 surface->metadata.base_size.depth != 1)) {
1316 DRM_ERROR("Incompatible surface dimensions "
1341 * For DX, surface format validation is done when surface->scanout
1344 if (!has_sm4_context(dev_priv) && format != surface->metadata.format) {
1345 DRM_ERROR("Invalid surface format for requested mode.\n");
1356 vfbs->surface = vmw_surface_reference(surface);
1370 vmw_surface_unreference(&surface);
1408 * vmw_create_bo_proxy - create a proxy surface for the buffer object
1411 * @mode_cmd: parameters for the new surface
1413 * @srf_out: newly created surface
1415 * When the content FB is a buffer object, we create a surface as a proxy to the
1416 * same buffer. This way we can do a surface copy rather than a surface DMA.
1544 * vmw_kms_srf_ok - check if a surface can be created
1567 * Either @bo or @surface must be NULL.
1568 * @surface: Pointer to a surface to wrap the kms framebuffer around.
1569 * Either @bo or @surface must be NULL.
1577 struct vmw_surface *surface,
1587 * therefore, wrap the buffer object in a surface so we can use the
1595 bo, &surface);
1603 if (surface) {
1604 ret = vmw_kms_new_framebuffer_surface(dev_priv, surface, &vfb,
1612 vmw_surface_unreference(&surface);
1636 struct vmw_surface *surface = NULL;
1640 /* returns either a bo or surface */
1643 &surface, &bo);
1660 vfb = vmw_kms_new_framebuffer(dev_priv, bo, surface,
1672 if (surface)
1673 vmw_surface_unreference(&surface);
1976 struct vmw_surface *surface,
1983 &surface->res, destX, destY,
1991 struct vmw_surface *surface,
2002 &surface->res, destX, destY,
2006 ret = vmw_kms_generic_present(dev_priv, file_priv, vfb, surface,
2746 * vmw_kms_update_proxy - Helper function to update a proxy surface from
2749 * @res: Pointer to the surface resource
2750 * @clips: Clip rects in framebuffer (surface) space.
2755 * This function makes sure the proxy surface is updated from its backing MOB
2756 * using the region given by @clips. The surface resource @res and its backing
2946 ret = vmw_validation_add_resource(&val_ctx, &vfbs->surface->res,