| Message ID | 20251003165525.440173-1-sjg@u-boot.org |
|---|---|
| Headers |
Return-Path: <concept-bounces+u-boot-concept=u-boot.org@u-boot.org> X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1759510557; bh=suAbdTEqjtwsg/9ymhq1mwa8NAbg6r+QSFNTWcbvATk=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=kGbWH4kIkCkwVagH1KSOWNhFF61Pnd2dZf40a4nAqmA9qiuXm3DguHDa3l8Z/Gd0I 8gAIfPn2Gz9M5Ru36t3OnYEX/shcu5ByIdnN6tJKt0dn0hOIqHrWzI9ST9XnurTSfO bth8jEUsNdiykLP9vlLQ4WrjcKMyL9nnYHKiZcrLSYkq2nBmcIZPifLLU8NGYuodK4 CAX4tDhZCndFoyH7ncCey/vf1Q4oap0XjW8XAYeH2vBamgIHjrGvYC+QBwj0BsmCIQ quroHyuOE10zxIpM8hCc7bbjbCxM4KFrm8n/VC7Sb1Pgg208IT2BUQdBhje5SVxyGS 70pWjWpfnxWGA== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id E7EEC67EC0 for <u-boot-concept@u-boot.org>; Fri, 3 Oct 2025 10:55:57 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id ymz7lpXYVhtR for <u-boot-concept@u-boot.org>; Fri, 3 Oct 2025 10:55:57 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1759510557; bh=suAbdTEqjtwsg/9ymhq1mwa8NAbg6r+QSFNTWcbvATk=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=kGbWH4kIkCkwVagH1KSOWNhFF61Pnd2dZf40a4nAqmA9qiuXm3DguHDa3l8Z/Gd0I 8gAIfPn2Gz9M5Ru36t3OnYEX/shcu5ByIdnN6tJKt0dn0hOIqHrWzI9ST9XnurTSfO bth8jEUsNdiykLP9vlLQ4WrjcKMyL9nnYHKiZcrLSYkq2nBmcIZPifLLU8NGYuodK4 CAX4tDhZCndFoyH7ncCey/vf1Q4oap0XjW8XAYeH2vBamgIHjrGvYC+QBwj0BsmCIQ quroHyuOE10zxIpM8hCc7bbjbCxM4KFrm8n/VC7Sb1Pgg208IT2BUQdBhje5SVxyGS 70pWjWpfnxWGA== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id D4A8067E83 for <u-boot-concept@u-boot.org>; Fri, 3 Oct 2025 10:55:57 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1759510553; bh=XnB1R8tlmBhVGQJhp0dDY1oOQ46CNA5iNxgnDxGV3Go=; h=From:To:Cc:Subject:Date:From; b=hXEcgWs0pcMJMynaVoQxCWx+gge1QZ4iUJ9afcif7S5a56UakJT//z/y+CWPWFzz2 twn7WJwBsYVUGYBEhKt9ycEJ53b+eemaWtF9rs/NdlmMrh5a3FaiAgUAaUyyeZ7JnM bCfxzUuPkESjE+hW4HuyADB/1qhUdrc6hVyRAjHzvuaWufPl+njplBYQhVoHzaeFmE LScK7XQVKAsA0+RpNwnT9X2LDxJcysEMjyr2g5rG+GY66tFCBkFWT3yyCE925zz1/4 XcJSIfHej0npukhJ006sfaZXTn31XUe7pVXfMyCJg9FH2rbv3nHE1wbCLYqXjsgFZT imtV739B0VWtg== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 98C9767E12; Fri, 3 Oct 2025 10:55:53 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id 6oxKPeYTSVr2; Fri, 3 Oct 2025 10:55:53 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1759510547; bh=ebpzoNh9AR8k9mm2FILqhQjAb8RZ3SYhPOYiq+gl17M=; h=From:To:Cc:Subject:Date:From; b=lvGhpzd9kYlR/Ymm02UfrA7PP+aiAkDS+EUeGfr7VCysqmr2LrPNDL3kFJxbB3SEt g/+OrKorEcMG2CXpJcgv0Q+wVUPwDo/JJ/QT/MltoDvdtw641tY/O+/9BqKnJNs8G5 qvxJLTniTjVAxTkdL6lTPakPryp+4L5Uniqi0UecnEeKSS4AeE2/5VfapYyZoqR0iS E7kBcjcmFc4crQ37/Q6NziW1RhOYBJWR4kyJJYI/HlKAFVqdB6S18FvivmBq/SM0d1 +bSBqouSLFV1aaH0Sum/c46Jd0uRAt9le+kWo2fH6HfPuEBkLPVSI7/iNrjnXV+VgY DCzAVF+TXwpzw== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 6BD0067E7C; Fri, 3 Oct 2025 10:55:47 -0600 (MDT) From: Simon Glass <sjg@u-boot.org> To: U-Boot Concept <concept@u-boot.org> Date: Fri, 3 Oct 2025 10:54:53 -0600 Message-ID: <20251003165525.440173-1-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Message-ID-Hash: AHRTFU7VP37X5HYNLFJ3SWMK2NM7NRUF X-Message-ID-Hash: AHRTFU7VP37X5HYNLFJ3SWMK2NM7NRUF X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Heinrich Schuchardt <xypron.glpk@gmx.de>, Simon Glass <sjg@chromium.org> X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 00/22] video: Enhancements to support a pointer List-Id: Discussion and patches related to U-Boot Concept <concept.u-boot.org> Archived-At: <https://lists.u-boot.org/archives/list/concept@u-boot.org/message/AHRTFU7VP37X5HYNLFJ3SWMK2NM7NRUF/> List-Archive: <https://lists.u-boot.org/archives/list/concept@u-boot.org/> List-Help: <mailto:concept-request@u-boot.org?subject=help> List-Owner: <mailto:concept-owner@u-boot.org> List-Post: <mailto:concept@u-boot.org> List-Subscribe: <mailto:concept-join@u-boot.org> List-Unsubscribe: <mailto:concept-leave@u-boot.org> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit |
| Series |
video: Enhancements to support a pointer
|
|
Message
Simon Glass
Oct. 3, 2025, 4:54 p.m. UTC
From: Simon Glass <sjg@chromium.org>
The video subsystem has a video_sync() function which does quite a few
things and is rather hard to predict and control:
- it may or may not actually sync, depending on a timer, etc
- it may be called when U-Boot is idle, so any time delays can cause a
sync
These two problems make it hard to test.
This series introduces a deterministic video_manual_sync() which does
exactly what it is told, using a set of flags:
VIDSYNC_FORCE - the force flag was provided (info for the driver)
VIDSYNC_FLUSH - framebuffer changes should be flushed to hardware
VIDSYNC_COPY - the copy framebuffer (if any) should be updated
The video_sync() method is renamed to sync() and is passed the flags,
so that drivers can find out what to do. This allows the
sandbox-specific code in video_sync() to move to the driver.
These features will (later) be used by expo to provide a better user
experience, e.g. to sync only part of the display, or to sync quickly
when there is mouse movement.
The pointer also needs to be drawn with transparency which is not well
supported by the BMP code. This series adds support for a simple
transparency colour for now, although an alpha channel may be
appropriate in the future.
Simon Glass (22):
doc: sandbox: Update command-line options documentation
sandbox: Add -V flag for video test delay
sandbox: Add --video_frames option to capture test frames
sandbox: Add a comment for sandbox_sdl_get_mouse_event()
video: Add a missing comment in struct video_uc_priv
video: Add a pointer image
video: Check drawing the mouse pointer
video: Move setting of cte in write_pix8() to the top
video: Support transparency in the inner bmp functions
video: Use variables for each colour component
video: Support transparency with 24bpp BMP image
video: Support transparency with BMP palette
video: Export a function to draw a BMP with transparency
video: Add a struct video_bbox for damage tracking
video: Rename video_sync() to sync() in struct video_ops
video: Tidy up the comment for sync()
video: Provide a way for expo to control video sync
video: Add flags parameter to sync() operation
video: Refactor video_sync() to use video_manual_sync()
video: sandbox: Optimise drawing based on damage
video: sandbox: Add sync() method for video
video: sandbox: Add test for sync() damage rectangle
arch/sandbox/cpu/sdl.c | 49 +++-
arch/sandbox/cpu/start.c | 32 +++
arch/sandbox/include/asm/sdl.h | 16 +-
arch/sandbox/include/asm/state.h | 3 +
doc/arch/sandbox/sandbox.rst | 21 +-
drivers/video/efi.c | 4 +-
drivers/video/images/Makefile | 3 +
drivers/video/images/riscos_arrow.bmp | Bin 0 -> 3798 bytes
drivers/video/mcde_simple.c | 4 +-
drivers/video/sandbox_sdl.c | 36 +++
drivers/video/seps525.c | 4 +-
drivers/video/video-uclass.c | 110 ++++++--
drivers/video/video_bmp.c | 121 ++++++---
include/dm/test.h | 15 +
include/video.h | 88 ++++--
include/video_defs.h | 37 +++
test/dm/video.c | 376 ++++++++++++++++++++++++--
17 files changed, 802 insertions(+), 117 deletions(-)
create mode 100644 drivers/video/images/riscos_arrow.bmp