Bug 143396 - nVidia GPU Skia Vulkan -- Quadro K2000 (Device: 0xffe)-- resizing floating Sidebar and dragging deck wider while crossing onto main LO window frame.
Summary: nVidia GPU Skia Vulkan -- Quadro K2000 (Device: 0xffe)-- resizing floating Si...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: graphics stack (show other bugs)
Version:
(earliest affected)
7.2.0.1 rc
Hardware: All Windows (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Skia
  Show dependency treegraph
 
Reported: 2021-07-15 22:03 UTC by V Stuart Foote
Modified: 2022-05-17 18:49 UTC (History)
4 users (show)

See Also:
Crash report or crash signature: https://crashreport.libreoffice.org/stats/signature/GrVkPipelineState::setAndBindInputAttachment(GrVkGpu%20*,GrVkRenderTarget%20*,GrVkCommandBuffer%20*)


Attachments
WinDbg stack trace of crash with nVidia GPU and Skia Vulkan rendering (34.23 KB, text/plain)
2021-07-16 20:13 UTC, V Stuart Foote
Details
GPU device IDs for nVidia product family GK107 -- 0x0fc0-0x0fff (31.75 KB, image/png)
2021-11-11 19:34 UTC, V Stuart Foote
Details

Note You need to log in before you can comment on or make changes to this bug.
Description V Stuart Foote 2021-07-15 22:03:51 UTC
With sidebar undocked, while in the Navigator deck--expanding and shrinking the width of the deck will crash.  On recovery Skia rendering falls back to Raster mode and crash no longer occurs.

Two crashreport minidump stack traces with signature

'GrVkPipelineState::setAndBindInputAttachment(GrVkGpu%20*,GrVkRenderTarget%20*,GrVkCommandBuffer%20*)'

https://crashreport.libreoffice.org/stats/crash_details/942b279a-f440-431c-935d-80b2675ca1d8

https://crashreport.libreoffice.org/stats/crash_details/3ff12c99-f054-430d-b690-5f0e2ca502b7
 

Version: 7.2.0.1 (x64) / LibreOffice Community
Build ID: 32efc3b7f3a71cfa6a7fa3f6c208333df48656cc
CPU threads: 8; OS: Windows 10.0 Build 19042; UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: CL

VulkanDriver	461.368.0
VulkanAPI	1.2.155
ProductName	LibreOffice
VulkanDeviceName	Quadro K2000
VulkanVendor	0x10de
Comment 1 V Stuart Foote 2021-07-15 22:29:45 UTC
Crash does not depend on the floating Sidebar deck active, just dragging wider and passing the edge of the main LO window frame results in crash.  Does not occur with Skia Raster rendering mode--just Vulkan for this GPU/Driver pair.
Comment 2 V Stuart Foote 2021-07-15 22:32:34 UTC
This bug was filed from the crash reporting server and is br-fe84b049-360c-481f-8e9b-29c5b035ceb9.
=========================================
Comment 3 Julien Nabet 2021-07-16 17:10:47 UTC
Luboš: since it concerns Skia, thought you might be interested in this one.
Comment 4 V Stuart Foote 2021-07-16 17:38:04 UTC
So on another system with nVidia GTX 750 Ti GPU and
Version: 7.2.0.1 (x64) / LibreOffice Community
Build ID: 32efc3b7f3a71cfa6a7fa3f6c208333df48656cc
CPU threads: 8; OS: Windows 10.0 Build 18363; UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: CL


RenderMethod: vulkan
Vendor: 0x10de
Device: 0x1380
API: 1.2.168
Driver: 465.356.0
DeviceType: discrete
DeviceName: NVIDIA GeForce GTX 750 Ti
Denylisted: no


STR (undocked sidebar and minimumwidth set false, dragging width across main frame edge) do not crash.  Will see if driver update for the Quadro K2000 has any effect.
Comment 5 V Stuart Foote 2021-07-16 20:13:17 UTC
Created attachment 173641 [details]
WinDbg stack trace of crash with nVidia GPU and Skia Vulkan rendering

updated driver to nVidia 471.11 (2021-06-21)

Still getting crash with STR and with Vulkan rendering with this GPU

RenderMethod: vulkan
Vendor: 0x10de
Device: 0xffe
API: 1.2.175
Driver: 471.44.0
DeviceType: discrete
DeviceName: Quadro K2000
Denylisted: no

Attached soffice.bin to WinDbg session and get this stack trace with LO build symbols, if it helps.

Also got slightly different signature, with this crashreport

https://crashreport.libreoffice.org/stats/crash_details/e1d41aa4-791c-4bae-99a8-8ac0749500e3
Comment 6 Xisco Faulí 2021-11-08 16:16:31 UTC
Hello V Stuart,
is this issue still reproducible in a master build ?
Comment 7 V Stuart Foote 2021-11-08 16:34:38 UTC
Yes still happens. Refinement for the STR:

1. open Writer
2. Undock Sidebar, should be floating middle of document canvas
3. Grab SideBar's left edge (i.e. changes to horizontal resize mouse cursor)
4. drag it to left passing the LO application frame left edge
5. crash with Skia/Vulkan rendering, no crash with Skia/raster mode

2021-10-29 TB77 nightly
Version: 7.3.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: e06ba31a037ea3ff192c9a00db6152179eb298a6
CPU threads: 8; OS: Windows 10.0 Build 19043; UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: CL

=-skia.log-=
RenderMethod: vulkan
Vendor: 0x10de
Device: 0xffe
API: 1.2.175
Driver: 471.272.0
DeviceType: discrete
DeviceName: Quadro K2000
Denylisted: no
Comment 8 V Stuart Foote 2021-11-08 17:11:06 UTC
STR cause crash & immediate document recovery also with

Version: 7.2.3.1 (x64) / LibreOffice Community
Build ID: 1d5dee817bde88d78dbcc0d00f88492568e131d5
CPU threads: 8; OS: Windows 10.0 Build 19043; UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: CL

and on the 2021-11-08 TB77 nightly of trunk

Version: 7.3.0.0.alpha1+ (x64) / LibreOffice Community
Build ID: 73334560b2dd2d60ac58d2cc2b1a5295490b03e1
CPU threads: 8; OS: Windows 10.0 Build 19043; UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: CL

RenderMethod: vulkan
Vendor: 0x10de
Device: 0xffe
API: 1.2.175
Driver: 471.272.0
DeviceType: discrete
DeviceName: Quadro K2000
Denylisted: no

All cases following the crash crossing the left edge of the app frame with Vulkan, the LO build will open having fallen back to Skia/raster mode.

So issue is something in the way the app frame is referenced for this nVidia Vulkan driver instance for this GPU.  Don't think we'd want to blacklist Vulkan generically for this nVidia driver.
Comment 9 V Stuart Foote 2021-11-10 18:19:05 UTC
OK, had an opportunity to test on a more modern nVidia Quadro RTX 4000

with Version: 7.2.2.2 (x64) / LibreOffice Community
Build ID: 02b2acce88a210515b4a5bb2e46cbfb63fe97d56
CPU threads: 8; OS: Windows 10.0 Build 19043; UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: CL

resize dragging width of the undocked SideBar deck across the app frame does not crash. A Geforce GTX-750 TI and this Quadro RTX 4000 have no issues with crossing the app frame.  

So, probably the best thing is to deny list the Quadro K2000 (Device: 0xffe) from Vulkan rendering.

=-skia.log-=
RenderMethod: vulkan
Vendor: 0x10de
Device: 0x1eb1
API: 1.2.155
Driver: 462.124.0
DeviceType: discrete
DeviceName: Quadro RTX 4000
Denylisted: no
Comment 10 V Stuart Foote 2021-11-11 19:34:12 UTC
Created attachment 176196 [details]
GPU device IDs for nVidia product family GK107 -- 0x0fc0-0x0fff

Luboš, *

Doing some manual edits of the share/skia/skia_denylist_vulkan.xml, and got to looking at its syntax from driverblocklist.cxx/.hxx

Seems we can now only handle individual deviceIDs with some testing of vendor and range of driver versions. 

But, would there be any utility to handling devices from a block of vendor device ids? For example, the troubled nVidia K2000 here comes from the nVidia Product GK107, device IDs in range 0x0fc0-0x0fff

I'd not be surprised if all of the GPUs in the product block have the same flawed Vulkan (or OpenGL) rendering and the range could be treated the same.

Would it be worth some effort to be able to deny list and force Skia raster rendering by vendor block of device IDs in addition to our current driver only testing?
Comment 11 Luboš Luňák 2021-11-16 10:08:06 UTC
(In reply to V Stuart Foote from comment #10)
> Would it be worth some effort to be able to deny list and force Skia raster
> rendering by vendor block of device IDs in addition to our current driver
> only testing?

Apparently the way to block several devices is to list them like this: https://cgit.freedesktop.org/libreoffice/core/tree/vcl/source/opengl/opengl_denylist_windows.xml#n33 . Is that enough here? It'll be a number of lines, but it's not that many.
Comment 12 V Stuart Foote 2022-05-17 18:49:10 UTC
Revisting this while testing work on bug 125931

The floating SB deck being dragged across the vertical edge of the LO app frame will crash LO with Skia Vulkan rendering, no issue with Skia Raster rendering. More recent Vulkan driver does not help for this Driver/GPU pair.

=-testing-=

RenderMethod: vulkan
Vendor: 0x10de
Device: 0xffe
API: 1.2.175
Driver: 473.188.0
DeviceType: discrete
DeviceName: Quadro K2000
Denylisted: no

Version: 7.4.0.0.alpha1+ (x64) / LibreOffice Community
Build ID: 817b8fe7001a83cb74910eb09b7c14a3b95b8a39
CPU threads: 8; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: CL