Bug 151929 - LibreOffice Crashes if Video Card Changed (Win nVidia GTX 670)
Summary: LibreOffice Crashes if Video Card Changed (Win nVidia GTX 670)
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
7.3.6.2 release
Hardware: All Windows (All)
: medium enhancement
Assignee: Julien Nabet
URL:
Whiteboard: target:7.5.0 target:7.4.4
Keywords:
Depends on:
Blocks: Skia
  Show dependency treegraph
 
Reported: 2022-11-06 12:46 UTC by paul
Modified: 2022-11-11 10:17 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:
Regression By:


Attachments
LO Tools View Graphics Settings (59.29 KB, image/jpeg)
2022-11-08 11:46 UTC, paul
Details
"Force Skia software rendering" unchecked (153 bytes, text/plain)
2022-11-09 00:52 UTC, paul
Details

Note You need to log in before you can comment on or make changes to this bug.
Description paul 2022-11-06 12:46:26 UTC
Description:
I replaced my video card yesterday. Everything worked fine including Lightroom and Photoshop. However, when I opened LibreOffice, both of my screens when black. It took me a while to be able to get any response and when I was able to launch Windows Task Manager, the GPU was not showing as a resource.

I rebooted and found LibreOffice errors next to NVidia errors in the Windows Event Viewer.

I Googled LibreOffice use of Video Cards and found references to Skia. So, figuring it could be a GPU incompatibility in my current build, I ran ‘repair’ on LibreOffice and that fixed the problem.

I know this is an obscure problem but would suggest if there are resource checks performed when LibreOffice starts, checking to see if the GPU has changed should maybe be added.

Here are the related Windows 10 Event Viewer postings

Faulting application name: soffice.bin, version: 7.3.6.2, time stamp: 0x63160327
Faulting module name: ucrtbase.dll, version: 10.0.19041.789, time stamp: 0x2bd748bf
Exception code: 0xc0000409
Fault offset: 0x000000000007286e
Faulting process id: 0x4708
Faulting application start time: 0x01d8f086f2147652
Faulting application path: C:\Program Files\LibreOffice\program\soffice.bin
Faulting module path: C:\WINDOWS\System32\ucrtbase.dll
Report Id: f643a647-919d-4776-bd11-33b58f681a18
Faulting package full name: 
Faulting package-relative application ID: 

The description for Event ID 1 from source NVIDIA OpenGL Driver cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

The GPU has been disconnected and this application may become unresponsive.

Error code: 10
 (pid=16640 tid=17300 photoshop.exe 64bit)

Visit http://www.nvidia.com/page/support.html for more information.

The message resource is present but the message was not found in the message table

Steps to Reproduce:
1.Repair LibreOffice
2.Run LibreOffice to confirm
3.Replace Video Card
4.Run LibreOffice to show error and screen problems
5.Reboot
6.Repair LibreOffice

Actual Results:
LibreOffice works properly after rebuild after new Video Card

Expected Results:
If LibreOffice could have stopped with an error that the current Videocard is not compatible with the build and to run repair would have helped


Reproducible: Always


User Profile Reset: No

Additional Info:
This is the information AFTER the rebuild to correct the problem

Version: 7.3.6.2 (x64) / LibreOffice Community
Build ID: c28ca90fd6e1a19e189fc16c05f8f8924961e12e
CPU threads: 8; OS: Windows 10.0 Build 19043; UI render: Skia/Raster; VCL: win
Locale: en-CA (en_CA); UI: en-US
Calc: threaded
Comment 1 V Stuart Foote 2022-11-06 22:13:37 UTC
A change in the video GPU should require new drivers and new support/non-support of GPU based acceleration. It is these areas of LO that can become unstable with issues like yours.

To do anything, we'd need to know where your system is regards the version of the nVidia GPU (which card) and what driver you've got in place (both the marketing driver as well as the internal driver for Vulkan support).

If you get LO running in Skia rendering with Vulkan GPU acceleration, those details are in the skia.log, found at %AppData%\LibreOffice\4\cache

Copy and paste it here. But if it only shown the Skia raster mode details--raster and Compiler: Clang-- we will need you to try to enable Skia Vulkan in LibreOffice (Tools -> Options -> View -> "Use Skia for all rendering" checked, "Force Skia software rendering" unchecked) and get the Vulkan config details from the skia.log it will rewrite on restart.

Alternatively if you can not get Skia Vulkan to run, you need to get the Vulkan support details with a different 3rd party App. I find glview by realtech-VR [1] produces the correct details on Windows.

=-ref-=
[1] https://www.realtech-vr.com/home/glview
Comment 2 paul 2022-11-06 23:38:49 UTC
I'm not sure I was clear on the issue. I have no problems running LO after the repair against the new video card. The problem occurred with the version of LO I had repaired against the old card.

The contents of the log are:

RenderMethod: raster
Compiler: Clang

I am not looking for additional support on the new driver only to suggest adding a check when LO is launched to verify the video/GPU  and/or at least trap when there is an error like the one recorded in the Event Viewer
Comment 3 QA Administrators 2022-11-07 03:39:29 UTC Comment hidden (obsolete)
Comment 4 Aron Budea 2022-11-07 05:30:13 UTC
Possibly the vendor and device should also be stored in config, and be compared to current when Skia enabled status is checked, and if it's different, the initial device capability check should be performed again.

Reference is 'isVCLSkiaEnabled()' here:
https://opengrok.libreoffice.org/xref/core/vcl/skia/SkiaHelper.cxx

Marking this new tentatively, because the report seems plausible, and no one is going replace their GPU just to test it.
Comment 5 paul 2022-11-07 11:54:11 UTC
"Marking this new tentatively, because the report seems plausible, and no one is going replace their GPU just to test it."

Understood. The only reason that I raised it is because someone who is non-technical, and maybe had a service do the upgrade, would have no idea what the problem is.

As an FYI, the only reason I replaced my video card was to support the new minimum GPU memory requirements for Lightroom and Photoshop.
Comment 6 V Stuart Foote 2022-11-08 02:04:16 UTC
(In reply to paul from comment #2)
> I'm not sure I was clear on the issue. I have no problems running LO after
> the repair against the new video card. The problem occurred with the version
> of LO I had repaired against the old card.
> 
> The contents of the log are:
> 
> RenderMethod: raster
> Compiler: Clang
> 
> I am not looking for additional support on the new driver only to suggest
> adding a check when LO is launched to verify the video/GPU  and/or at least
> trap when there is an error like the one recorded in the Event Viewer

This means your "new" GPU is not running LibreOffice with Skia lib based Vulkan accelerated mode--it is in that state because of the GPU checks built in to the graphics libs.  The raster frame only rendering is a fall back.

It could be an issue with the specific nVidia GPU chipset, or a specific driver that we'll want to denylist to bypass the abortive rendering mode. We can't tell unless you provide the requested details. And then likely we'll recommend you update to current drivers (which Windows updates do not provide), or possibly we deny list the pairing.
Comment 7 paul 2022-11-08 11:46:35 UTC
Created attachment 183470 [details]
LO Tools View Graphics Settings
Comment 8 paul 2022-11-08 11:48:24 UTC
"we will need you to try to enable Skia Vulkan in LibreOffice (Tools -> Options -> View -> "Use Skia for all rendering" checked, "Force Skia software rendering" unchecked) and get the Vulkan config details from the skia.log" sorry missed this.

Those settings were already selected. See attached "LO Tools View Graphic Settings.JPG"

Log still shows the same
Comment 9 paul 2022-11-08 11:48:54 UTC
Sorry, also the drivers were a new install from Nvidia.
Comment 10 V Stuart Foote 2022-11-08 15:52:10 UTC
(In reply to paul from comment #8)
> "Force Skia software rendering" unchecked

Nope, the second Skia setting needs to be unchecked aka cleared... 

Result with just the Use Skia for all rendering checked is what activates Vulkan GPU rendering.  And would generate the log with the needed details. 

And if it still bombs out, w/fallback to Skia based raster framing, then we'll need result from a third party utility like glview.
Comment 11 paul 2022-11-09 00:52:37 UTC
Created attachment 183483 [details]
"Force Skia software rendering" unchecked
Comment 12 paul 2022-11-09 00:54:19 UTC
Sorry, I found the problem on my end between the chair and keyboard.

I've not set "Force Skia software rendering" unchecked. The SKIA.LOG is attached and listed here

RenderMethod: vulkan
Vendor: 0x10de
Device: 0x1189
API: 1.2.175
Driver: 473.324.0
DeviceType: discrete
DeviceName: NVIDIA GeForce GTX 670
Denylisted: n
Comment 13 V Stuart Foote 2022-11-09 02:38:09 UTC
(In reply to paul from comment #12)
> Sorry, I found the problem on my end between the chair and keyboard.
> 
> I've not set "Force Skia software rendering" unchecked. The SKIA.LOG is
> attached and listed here
> 
> RenderMethod: vulkan
> Vendor: 0x10de
> Device: 0x1189
> API: 1.2.175
> Driver: 473.324.0
> DeviceType: discrete
> DeviceName: NVIDIA GeForce GTX 670
> Denylisted: n

OK, thanks!

So that older GTX 670 looks to have pretty recent 473.xx nVidia drivers, but with its sketchy stability (failing the Skia Vulkan rendering tests and falling back) probably best to just add its device ID 0x1189 to the Vulkan denylist [1] and avoid any issues.  Adventuresome types can explicitly enable.

@Julien, what do you think? 

=-ref-=
[1] https://opengrok.libreoffice.org/xref/core/vcl/skia/skia_denylist_vulkan.xml?r=ce79edd7
Comment 14 paul 2022-11-09 12:19:52 UTC
"... probably best to just add its device ID 0x1189 to the Vulkan denylist [1] and avoid any issues". I take this as good news since it implies LO should be able to support a change in video cards.

Yes, the 870 is a hand-me-down to get over a 2GB memory requirement for Lightroom and Photoshop. My previous card only had 1.5GB.

And yes, I tend to hang onto working old technology until I'm forced to replace it. I'm still on an iPhone 6 ;-)
Comment 15 Julien Nabet 2022-11-09 12:58:12 UTC
patch on gerrit waiting for review here:
https://gerrit.libreoffice.org/c/core/+/142486
Comment 16 Commit Notification 2022-11-09 16:56:04 UTC
Julien Nabet committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/a0dec4bc9a48b263be182ad7bbe4ba3f8cbb27e1

tdf#151929: crash if video card changed (Win nVidia GTX 670)

It will be available in 7.5.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 17 Julien Nabet 2022-11-09 17:09:45 UTC
V Stuart: I don't know if it worths it to cherry-pick the patch for 7.4 branch but feel free to do it.
Comment 18 Commit Notification 2022-11-11 10:17:58 UTC
Julien Nabet committed a patch related to this issue.
It has been pushed to "libreoffice-7-4":

https://git.libreoffice.org/core/commit/d1080d500a6063345e887d9463c57ff0c9d61a78

tdf#151929: crash if video card changed (Win nVidia GTX 670)

It will be available in 7.4.4.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.