Summary: | [PATCH] vt efifb back-end does not send display release / re-acquire signals on suspend / resume | ||
---|---|---|---|
Product: | Base System | Reporter: | Erik Kurzinger <ekurzinger> |
Component: | kern | Assignee: | Ed Maste <emaste> |
Status: | Closed FIXED | ||
Severity: | Affects Only Me | CC: | ashafer, cem, emaste |
Priority: | --- | Keywords: | patch, patch-ready |
Version: | CURRENT | ||
Hardware: | Any | ||
OS: | Any |
Description
Erik Kurzinger
2019-04-05 15:19:10 UTC
(Bug also present in CURRENT.) I have the same problem, and this patch works for me. Running 12-RELEASE (amd64) with a NVIDIA 1070. Anything preventing this from being committed? I'm happy to test if needed. A commit references this bug: Author: emaste Date: Tue May 21 18:42:36 UTC 2019 New revision: 348059 URL: https://svnweb.freebsd.org/changeset/base/348059 Log: vt efifb: add suspend/resume calls Using the latest NVIDIA driver, upon resuming from suspend with X running the display remained blank. Additionally OpenGL applications that were running triggered a number of error messages from the NVIDIA driver. This occurred because the vt efifb back-end did not signal the X server to release the display before suspending (or to re-acquire it after resuming). The NVIDIA driver includes code for smoothly shutting down and re-initializing the GPU, which was not getting called. Since the NVIDIA driver doesn't currently support framebuffer devices and vt is forced to fall back to the efifb back-end, add vd_suspend and vd_resume members to connect the suspend/resume path. This ensures the X server is properly able to re-initialize the display. PR: 237050 Submitted by: Erik Kurzinger <ekurzinger@nvidia.com> Reviewed by: markj MFC after: 2 weeks Event: Waterloo Hackathon 2019 Changes: head/sys/dev/vt/hw/efifb/efifb.c A commit references this bug: Author: emaste Date: Tue Jun 4 18:11:12 UTC 2019 New revision: 348651 URL: https://svnweb.freebsd.org/changeset/base/348651 Log: MFC r348059: vt efifb: add suspend/resume calls Using the latest NVIDIA driver, upon resuming from suspend with X running the display remained blank. Additionally OpenGL applications that were running triggered a number of error messages from the NVIDIA driver. This occurred because the vt efifb back-end did not signal the X server to release the display before suspending (or to re-acquire it after resuming). The NVIDIA driver includes code for smoothly shutting down and re-initializing the GPU, which was not getting called. Since the NVIDIA driver doesn't currently support framebuffer devices and vt is forced to fall back to the efifb back-end, add vd_suspend and vd_resume members to connect the suspend/resume path. This ensures the X server is properly able to re-initialize the display. PR: 237050 Submitted by: Erik Kurzinger <ekurzinger@nvidia.com> Changes: _U stable/12/ stable/12/sys/dev/vt/hw/efifb/efifb.c A commit references this bug: Author: emaste Date: Mon Dec 16 18:04:31 UTC 2019 New revision: 355811 URL: https://svnweb.freebsd.org/changeset/base/355811 Log: MFC r348059: vt efifb: add suspend/resume calls PR: 237050 Submitted by: Erik Kurzinger <ekurzinger@nvidia.com> Changes: _U stable/11/ stable/11/sys/dev/vt/hw/efifb/efifb.c |