From nobody Fri Sep 18 16:31:50 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hmdSD4TQjz6sgn2 for ; Fri, 18 Sep 2026 16:31:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hmdSC4qvkz3Pql for ; Fri, 18 Sep 2026 16:31:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789749115; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Zl97fTOKosqtjYSkBDy5YNpEb14A3TKw21BnJl9BNhA=; b=Yro+e9RBCaRIqB8I+JqTXqS33qdPSH4gCFBtf/OtRdNZcJVK26QU7U9PmJPTsUjDnaD3PD Qx2ObNfkMCMZDePbWU797PfiiCKnWnaYlYs+eP+WVGsMAALGQkQaetHZ+lq/8Iqloy/I6w zABYtel5AFYQZo9vWKa28CWQoHhDCHqUYty+fWr3nUSwdZxUAUiPbjODlmj6Ed1G55OsrG 9gKZcTA/08PN8BnOi1vechYogw0X5Jcsoq79bICHvsCkoPzJ9Eug3JtvqmZ3C79uvgHLFU MWdoldApKzwOWU+nOZ6BGST7hKX++iibLOj3O0NOmtmTBTOpoeym4G/GOQuvrQ== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789749115; b=UeJADtRGEANc56ltipbn5VQx7iq2B6HdQ1e3GlK1XdZPfmbzIM+SZQ1vk4ckIKar6w/lBB HJVsFlvOj404F1LZGTAF6DJt1u80SMITWgVOC5yJunqQyDO6ZRpW+JD2qdmeuDqEYt/4Hx lYmI2ADCj31LDAGv/HyqCXTzWrPqwX3z2zQY64HC9i2E6Rv2a8gXrJUXX5rb841SOhJ4CP o8IY9rhqzEa6ezY0IIa3Us80C/ATm8eLCziyS+YGokLNCT3W7iaZmf9BXJH9HJNwGvXXRW i0dVx2ebjTp7brVKmhYcGafWLop1GBpzyMqYj5WjVzmHYSXvzKK/cKVlKGVZlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789749115; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Zl97fTOKosqtjYSkBDy5YNpEb14A3TKw21BnJl9BNhA=; b=lr37/weTCd8vq0fYUjpvw/x87a5mgDAettdc8D/oBS/nfBjkJhuV9DPjsDHMcZyQYnRz9k lanSF4QnzjzjpHLGg1sVlZeCgaHhHdMCD1KR/kuMq7OJKwRxlprRJnffBgQQvPSf+XcmrB qF4uq7rqK52gghpJNwHcLEUT3jb06Rf+Dr2C3edYgiWPdiZ1yLmqq+7btmiVtGHf5F1jig RGABmFSkIg3ALZ+7wlRk6XCcq3J6W8gsquXZg7lvVpvuUKGIcHmxG4JGFUvtsvrWj3FbFz Z3tjjqygVp7zYCFj874AruHOPdnHzMScinhG473d0nmx+krfOfDMco/UYnKixQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hmdSC3pplzRMM for ; Fri, 18 Sep 2026 16:31:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22436 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 18 Sep 2026 16:31:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Quent=?utf-8?Q?in Th=C3=A9?=bault From: Ed Maste Subject: git: 1181ac708936 - main - vt: Reprogram display controller on KDSETMODE KD_TEXT for active window List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1181ac708936d054e07089de7c5b3c1de11a4367 Auto-Submitted: auto-generated Date: Fri, 18 Sep 2026 16:31:50 +0000 Message-Id: <6aad6776.22436.305aebd4@gitrepo.freebsd.org> The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=1181ac708936d054e07089de7c5b3c1de11a4367 commit 1181ac708936d054e07089de7c5b3c1de11a4367 Author: Quentin Thébault AuthorDate: 2026-07-02 14:27:10 +0000 Commit: Ed Maste CommitDate: 2026-09-18 16:30:54 +0000 vt: Reprogram display controller on KDSETMODE KD_TEXT for active window When a graphical application (X.Org display server, Wayland compositor) calls KDSETMODE to set the active VT back to KD_TEXT, vt(4) does not reset the CRTC to point to its framebuffer, leaving the last image of the graphical application visible instead of the text console until the next VT switch. Add a call to vd_postswitch to reset the CRTC, set VDF_INVALID to force a redraw and schedule the flush timer, like vt(4) does in vt_window_switch(). Sponsored by: Defenso Signed-off-by: Quentin Thébault Reviewed by: vexeduxr Pull request: https://github.com/freebsd/freebsd-src/pull/2308 --- sys/dev/vt/vt_core.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c index 81487d27a6fc..040b8ea52183 100644 --- a/sys/dev/vt/vt_core.c +++ b/sys/dev/vt/vt_core.c @@ -2923,9 +2923,31 @@ skip_thunk: switch (*(int *)data) { case KD_TEXT: case KD_TEXT1: - case KD_PIXEL: + case KD_PIXEL: { + bool restore = false; + VT_LOCK(vd); + if ((vw->vw_flags & VWF_GRAPHICS) && + vw == vd->vd_curwindow) { + /* + * When leaving graphics mode on the currently + * active window, reprogram the display + * controller back to text mode immediately. + * Without this, the CRTC retains the graphical + * state and the console stays invisible until + * the next VT switch. + */ + restore = true; + vd->vd_flags |= VDF_INVALID; + } + VT_UNLOCK(vd); + if (restore) { + if (vd->vd_driver->vd_postswitch) + vd->vd_driver->vd_postswitch(vd); + vt_resume_flush_timer(vw, 0); + } vw->vw_flags &= ~VWF_GRAPHICS; break; + } case KD_GRAPHICS: vw->vw_flags |= VWF_GRAPHICS; break;