/openbmc/qemu/docs/interop/ |
H A D | vhost-user-gpu.rst | 20 work by setting a scanout/display configuration, before sending flush 65 | scanout-id | x | y | 68 :scanout-id: ``u32``, the scanout where the cursor is located 89 | scanout-id | w | h | 92 :scanout-id: ``u32``, the scanout configuration to set 94 :w/h: ``u32``, the scanout width/height size 100 | scanout-id | x | y | w | h | data | 103 :scanout-id: ``u32``, the scanout content to update 113 | scanout-id | x | y | w | h | fdw | fwh | stride | flags | fourcc | 116 :scanout-id: ``u32``, the scanout configuration to set [all …]
|
/openbmc/qemu/hw/display/ |
H A D | virtio-gpu.c | 87 s = &g->parent_obj.scanout[cursor->pos.scanout_id]; in update_cursor() 218 if (get_edid.scanout >= b->conf.max_outputs) { in virtio_gpu_get_edid() 223 trace_virtio_gpu_cmd_get_edid(get_edid.scanout); in virtio_gpu_get_edid() 226 virtio_gpu_base_generate_edid(VIRTIO_GPU_BASE(g), get_edid.scanout, &edid); in virtio_gpu_get_edid() 367 struct virtio_gpu_scanout *scanout = &g->parent_obj.scanout[scanout_id]; in virtio_gpu_disable_scanout() local 370 if (scanout->resource_id == 0) { in virtio_gpu_disable_scanout() 374 res = virtio_gpu_find_resource(g, scanout->resource_id); in virtio_gpu_disable_scanout() 379 dpy_gfx_replace_surface(scanout->con, NULL); in virtio_gpu_disable_scanout() 380 scanout->resource_id = 0; in virtio_gpu_disable_scanout() 381 scanout->ds = NULL; in virtio_gpu_disable_scanout() [all …]
|
H A D | virtio-gpu-base.c | 31 g->scanout[i].resource_id = 0; in virtio_gpu_base_reset() 32 g->scanout[i].width = 0; in virtio_gpu_base_reset() 33 g->scanout[i].height = 0; in virtio_gpu_base_reset() 34 g->scanout[i].x = 0; in virtio_gpu_base_reset() 35 g->scanout[i].y = 0; in virtio_gpu_base_reset() 36 g->scanout[i].ds = NULL; in virtio_gpu_base_reset() 56 virtio_gpu_base_generate_edid(VirtIOGPUBase *g, int scanout, in virtio_gpu_base_generate_edid() argument 60 .width_mm = g->req_state[scanout].width_mm, in virtio_gpu_base_generate_edid() 61 .height_mm = g->req_state[scanout].height_mm, in virtio_gpu_base_generate_edid() 62 .prefx = g->req_state[scanout].width, in virtio_gpu_base_generate_edid() [all …]
|
H A D | virtio-gpu-udmabuf.c | 162 struct virtio_gpu_scanout *scanout; in virtio_gpu_free_dmabuf() local 164 scanout = &g->parent_obj.scanout[dmabuf->scanout_id]; in virtio_gpu_free_dmabuf() 165 dpy_gl_release_dmabuf(scanout->con, dmabuf->buf); in virtio_gpu_free_dmabuf() 201 struct virtio_gpu_scanout *scanout = &g->parent_obj.scanout[scanout_id]; in virtio_gpu_update_dmabuf() local 217 qemu_console_resize(scanout->con, width, height); in virtio_gpu_update_dmabuf() 218 dpy_gl_scanout_dmabuf(scanout->con, new_primary->buf); in virtio_gpu_update_dmabuf()
|
H A D | vhost-user-gpu.c | 99 VhostUserGpuScanout scanout; member 130 s = &g->parent_obj.scanout[pos->scanout_id]; in vhost_user_gpu_handle_cursor() 218 error_report("invalid scanout: %d", m->scanout_id); in vhost_user_gpu_handle_display() 229 VhostUserGpuScanout *m = &msg->payload.scanout; in vhost_user_gpu_handle_display() 236 s = &g->parent_obj.scanout[m->scanout_id]; in vhost_user_gpu_handle_display() 256 error_report("invalid scanout: %d", m->scanout_id); in vhost_user_gpu_handle_display() 264 con = g->parent_obj.scanout[m->scanout_id].con; in vhost_user_gpu_handle_display() 299 !g->parent_obj.scanout[m->scanout_id].con) { in vhost_user_gpu_handle_display() 300 error_report("invalid scanout update: %d", m->scanout_id); in vhost_user_gpu_handle_display() 305 con = g->parent_obj.scanout[m->scanout_id].con; in vhost_user_gpu_handle_display() [all …]
|
H A D | virtio-gpu-virgl.c | 374 if (!g->parent_obj.scanout[idx].con) { in virtio_gpu_rect_update() 378 dpy_gl_update(g->parent_obj.scanout[idx].con, x, y, width, height); in virtio_gpu_rect_update() 392 if (g->parent_obj.scanout[i].resource_id != rf.resource_id) { in virgl_cmd_resource_flush() 410 qemu_log_mask(LOG_GUEST_ERROR, "%s: illegal scanout id specified %d", in virgl_cmd_set_scanout() 438 qemu_console_resize(g->parent_obj.scanout[ss.scanout_id].con, in virgl_cmd_set_scanout() 442 g->parent_obj.scanout[ss.scanout_id].con, info.tex_id, in virgl_cmd_set_scanout() 449 g->parent_obj.scanout[ss.scanout_id].con, NULL); in virgl_cmd_set_scanout() 450 dpy_gl_scanout_disable(g->parent_obj.scanout[ss.scanout_id].con); in virgl_cmd_set_scanout() 452 g->parent_obj.scanout[ss.scanout_id].resource_id = ss.resource_id; in virgl_cmd_set_scanout() 816 qemu_log_mask(LOG_GUEST_ERROR, "%s: illegal scanout id specified %d", in virgl_cmd_set_scanout_blob() [all …]
|
H A D | virtio-gpu-rutabaga.c | 239 struct virtio_gpu_scanout *scanout = NULL; in rutabaga_cmd_resource_flush() local 260 scanout = &vb->scanout[i]; in rutabaga_cmd_resource_flush() 285 dpy_gfx_update_full(scanout->con); in rutabaga_cmd_resource_flush() 292 struct virtio_gpu_scanout *scanout = NULL; in rutabaga_cmd_set_scanout() local 306 scanout = &vb->scanout[ss.scanout_id]; in rutabaga_cmd_set_scanout() 309 dpy_gfx_replace_surface(scanout->con, NULL); in rutabaga_cmd_set_scanout() 310 dpy_gl_scanout_disable(scanout->con); in rutabaga_cmd_set_scanout() 333 scanout->ds = qemu_create_displaysurface_pixman(res->image); in rutabaga_cmd_set_scanout() 334 dpy_gfx_replace_surface(scanout->con, NULL); in rutabaga_cmd_set_scanout() 335 dpy_gfx_replace_surface(scanout->con, scanout->ds); in rutabaga_cmd_set_scanout()
|
/openbmc/qemu/contrib/vhost-user-gpu/ |
H A D | vhost-user-gpu.c | 341 .scanout_id = get_edid.scanout, in vg_get_edid() 412 struct virtio_gpu_scanout *scanout = &g->scanout[scanout_id]; in vg_disable_scanout() local 415 if (scanout->resource_id == 0) { in vg_disable_scanout() 419 res = virtio_gpu_find_resource(g, scanout->resource_id); in vg_disable_scanout() 424 scanout->width = 0; in vg_disable_scanout() 425 scanout->height = 0; in vg_disable_scanout() 431 .payload.scanout.scanout_id = scanout_id, in vg_disable_scanout() 657 struct virtio_gpu_scanout *scanout; in vg_set_scanout() local 665 g_critical("%s: illegal scanout id specified %d", in vg_set_scanout() 676 /* create a surface for this scanout */ in vg_set_scanout() [all …]
|
H A D | vugpu.h | 104 VhostUserGpuScanout scanout; member 146 struct virtio_gpu_scanout scanout[VIRTIO_GPU_MAX_SCANOUTS]; member
|
/openbmc/linux/drivers/gpu/drm/i915/gem/ |
H A D | i915_gem_object_types.h | 143 * should only ever use uncached for scanout surfaces, otherwise we end 157 * Not used for scanout surfaces. 163 * scanout objects, where the display engine is not coherent with the 179 * Not used for scanout surfaces. 188 * Write-through. Used for scanout surfaces. 421 * scanout surfaces. To handle this the kernel will always flush the 422 * surface out of the CPU caches when preparing it for scanout. Also 423 * note that since scanout surfaces are only ever read by the display 429 * to the display engine not being fully coherent. As a result scanout 432 * that this is likely a scanout surface, and will set @cache_coherent [all …]
|
/openbmc/qemu/ui/ |
H A D | console.c | 282 con->scanout.kind == SCANOUT_SURFACE); in displaychangelistener_display_console() 284 if (con->scanout.kind == SCANOUT_DMABUF && in displaychangelistener_display_console() 286 dcl->ops->dpy_gl_scanout_dmabuf(dcl, con->scanout.dmabuf); in displaychangelistener_display_console() 287 } else if (con->scanout.kind == SCANOUT_TEXTURE && in displaychangelistener_display_console() 290 con->scanout.texture.backing_id, in displaychangelistener_display_console() 291 con->scanout.texture.backing_y_0_top, in displaychangelistener_display_console() 292 con->scanout.texture.backing_width, in displaychangelistener_display_console() 293 con->scanout.texture.backing_height, in displaychangelistener_display_console() 294 con->scanout.texture.x, in displaychangelistener_display_console() 295 con->scanout.texture.y, in displaychangelistener_display_console() [all …]
|
H A D | sdl2-gl.c | 33 static void sdl2_set_scanout_mode(struct sdl2_console *scon, bool scanout) in sdl2_set_scanout_mode() argument 35 if (scon->scanout_mode == scanout) { in sdl2_set_scanout_mode() 39 scon->scanout_mode = scanout; in sdl2_set_scanout_mode()
|
H A D | gtk-gl-area.c | 21 static void gtk_gl_area_set_scanout_mode(VirtualConsole *vc, bool scanout) in gtk_gl_area_set_scanout_mode() argument 23 if (vc->gfx.scanout_mode == scanout) { in gtk_gl_area_set_scanout_mode() 27 vc->gfx.scanout_mode = scanout; in gtk_gl_area_set_scanout_mode()
|
/openbmc/linux/include/drm/ |
H A D | drm_fb_helper.h | 41 * struct drm_fb_helper_surface_size - describes fbdev size and scanout surface size 44 * @surface_width: scanout buffer width 45 * @surface_height: scanout buffer height 46 * @surface_bpp: scanout buffer bpp 47 * @surface_depth: scanout buffer depth 49 * Note that the scanout surface width/height may be larger than the fbdev 50 * width/height. In case of multiple displays, the scanout surface is sized 52 * to scanout). But the fbdev width/height is sized to the minimum width/ 106 * @fb: Scanout framebuffer object
|
/openbmc/linux/drivers/gpu/drm/msm/disp/mdp5/ |
H A D | mdp5_smp.h | 19 * a scanout buffer is a SMP client. Ie. scanout of 3 plane I420 on 22 * Based on the size of the attached scanout buffer, a certain # of
|
/openbmc/qemu/include/hw/virtio/ |
H A D | virtio-gpu.h | 153 struct virtio_gpu_scanout scanout[VIRTIO_GPU_MAX_SCANOUTS]; member 302 void virtio_gpu_base_generate_edid(VirtIOGPUBase *g, int scanout, 337 * virtio_gpu_scanout_blob_to_fb() - fill out fb based on scanout data 339 * ss: the scanout blob data 340 * blob_size: size of scanout blob data
|
/openbmc/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_display.c | 566 * to avoid hang caused by placement of scanout BO in GTT on certain in amdgpu_display_supported_domains() 922 "Micro tile mode %llu not supported for scanout\n", in check_tiling_flags_gfx6() 1274 /* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */ in amdgpu_display_user_framebuffer_create() 1478 * Retrieve current video scanout position of crtc on a given gpu, and 1493 * \param *vpos Location where vertical scanout position should be stored. 1494 * \param *hpos Location where horizontal scanout position should go. 1496 * scanout position query. Can be NULL to skip timestamp. 1498 * scanout position query. Can be NULL to skip timestamp. 1500 * Returns vpos as a positive number while in active scanout area. 1503 * until start of active scanout / end of vblank." [all …]
|
/openbmc/linux/drivers/gpu/drm/meson/ |
H A D | meson_viu.c | 21 * VIU Handles the Pixel scanout and the basic Colorspace conversions 24 * - OSD1 RGB565/RGB888/xRGB8888 scanout 26 * - Progressive or Interlace buffer scanout 33 * - YUV4:2:2 Y0CbY1Cr scanout 36 * - Big endian scanout 37 * - X/Y reverse scanout
|
H A D | meson_vpp.c | 18 * VPP Handles all the Post Processing after the Scanout from the VIU 24 * use it only for interlace scanout
|
/openbmc/linux/drivers/gpu/drm/radeon/ |
H A D | radeon_display.c | 344 * scanout position we know that the current frame is in radeon_crtc_handle_vblank() 1330 /* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */ in radeon_user_framebuffer_create() 1771 * Retrieve current video scanout position of crtc on a given gpu, and 1786 * \param *vpos Location where vertical scanout position should be stored. 1787 * \param *hpos Location where horizontal scanout position should go. 1789 * scanout position query. Can be NULL to skip timestamp. 1791 * scanout position query. Can be NULL to skip timestamp. 1793 * Returns vpos as a positive number while in active scanout area. 1796 * until start of active scanout / end of vblank." 1804 * unknown small number of scanlines wrt. real scanout position. [all …]
|
/openbmc/linux/drivers/gpu/drm/ |
H A D | drm_vblank.c | 46 * a new frame the scanout engine has "scanned out" the display image 400 * This is mostly useful for hardware that can obtain the scanout position, but 600 * @mode: display mode containing the scanout timings 605 * CRTC's true scanout timing, so they take things like panel scaling or 636 * Fields of interlaced scanout modes are only half a frame duration. in drm_calc_timestamping_constants() 670 * Callback function to retrieve the scanout position. See 674 * timings and current video scanout position of a CRTC. 679 * match the scanout position reported. 711 /* Scanout position query not supported? Should not happen. */ in drm_crtc_vblank_helper_get_vblank_timestamp_internal() 732 /* Get current scanout position with system timestamp. in drm_crtc_vblank_helper_get_vblank_timestamp_internal() [all …]
|
/openbmc/linux/drivers/gpu/drm/virtio/ |
H A D | virtgpu_vq.c | 742 uint32_t scanout = le32_to_cpu(cmd->scanout); in virtio_gpu_cmd_get_edid_cb() local 746 if (scanout >= vgdev->num_scanouts) in virtio_gpu_cmd_get_edid_cb() 748 output = vgdev->outputs + scanout; in virtio_gpu_cmd_get_edid_cb() 889 int scanout; in virtio_gpu_cmd_get_edids() local 894 for (scanout = 0; scanout < vgdev->num_scanouts; scanout++) { in virtio_gpu_cmd_get_edids() 905 cmd_p->scanout = cpu_to_le32(scanout); in virtio_gpu_cmd_get_edids()
|
/openbmc/linux/drivers/gpu/drm/i915/display/ |
H A D | intel_fb_pin.c | 134 * we should always have valid PTE following the scanout preventing in intel_pin_and_fence_fb_obj() 157 * happy to scanout from anywhere within its global aperture. in intel_pin_and_fence_fb_obj() 189 * If we fail to fence the tiled scanout, then either the in intel_pin_and_fence_fb_obj()
|
/openbmc/linux/drivers/gpu/drm/tiny/ |
H A D | Kconfig | 64 by the Open Firmware before the kernel boots. Scanout buffer, size, 92 by the firmware or bootloader before the kernel boots. Scanout
|
/openbmc/linux/Documentation/devicetree/bindings/display/ |
H A D | amlogic,meson-vpu.yaml | 32 The Video Input Unit is in charge of the pixel scanout from the DDR memory. 54 tree and provides the scanout clock to the VPP and VIU.
|