diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2025-02-08 17:48:57 +0500 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2025-02-08 16:36:05 +0100 |
commit | 9735a9377b3013943e6a245b5afef57de738a0f6 (patch) | |
tree | c6a1f4acc473d0fce53b1549e1062fe16cc947d3 /embedserv/source/inc/embeddoc.hxx | |
parent | c10dbe07b7def2eebd8eed3874c3df9b9d37fa41 (diff) |
Related: tdf#164788 Force Skia software rendering after crash in test
HEADmaster
The minidumps in the bug give this call stack:
KERNELBASE.dll!RaiseException()
[Inline Frame] mergedlo.dll!SalAbort(const rtl::OUString &) Line 377
mergedlo.dll!Application::Abort(const rtl::OUString & rErrorText) Line 300
mergedlo.dll!desktop::Desktop::Exception(ExceptionCategory nCategory) Line 1237
mergedlo.dll!VCLExceptionSignal_impl(void * __formal, oslSignalInfo * pInfo) Line 176
[Inline Frame] sal3.dll!callSignalHandler(oslSignalInfo *) Line 47
sal3.dll!`anonymous namespace'::signalHandlerFunction(_EXCEPTION_POINTERS * lpEP) Line 141
KERNELBASE.dll!UnhandledExceptionFilter()
ntdll.dll!RtlUserThreadStart$filt$0()
ntdll.dll!__C_specific_handler()
ntdll.dll!RtlpExecuteHandlerForException()
ntdll.dll!RtlDispatchException()
ntdll.dll!KiUserExceptionDispatch()
skialo.dll!sk_gpu_test::FreeVulkanFeaturesStructs(const VkPhysicalDeviceFeatures2 * features) Line 885
skialo.dll!skwindow::internal::VulkanWindowContext::initializeContext() Line 83
skialo.dll!skwindow::internal::VulkanWindowContext::VulkanWindowContext(const skwindow::DisplayParams & params, std::function<VkSurfaceKHR_T *(VkInstance_T *)> createVkSurface, std::function<bool (VkInstance_T *, VkPhysicalDevice_T *, unsigned int)> canPresent, void(*)()(*)(VkInstance_T *, const char *) instProc) Line 59
skialo.dll!skwindow::MakeVulkanForWin(HWND__ * hwnd, const skwindow::DisplayParams & params) Line 72
vclplug_winlo.dll!`anonymous namespace'::createVulkanWindowContext(bool __formal) Line 571
[Inline Frame] mergedlo.dll!SkiaHelper::getTemporaryWindowContext() Line 546
mergedlo.dll!SkiaHelper::checkDeviceDenylisted(bool blockDisable) Line 253
mergedlo.dll!SkiaHelper::isVCLSkiaEnabled() Line 408
vclplug_winlo.dll!WinSalGraphics::WinSalGraphics(WinSalGraphics::Type eType, bool bScreen, HWND__ * hWnd, SalGeometryProvider * pProvider) Line 636
vclplug_winlo.dll!WinSalFrame::AcquireGraphics() Line 1063
mergedlo.dll!vcl::WindowOutputDevice::AcquireGraphics() Line 838
mergedlo.dll!vcl::Window::ImplInit(vcl::Window * pParent, __int64 nStyle, SystemParentData * pSystemParentData) Line 1100
mergedlo.dll!ImplBorderWindow::ImplInit(vcl::Window * pParent, __int64 nStyle, BorderWindowStyle nTypeStyle, SystemParentData * pSystemParentData) Line 1566
[Inline Frame] mergedlo.dll!ImplBorderWindow::{ctor}(vcl::Window *) Line 1594
[Inline Frame] mergedlo.dll!VclPtrInstance<ImplBorderWindow>::{ctor}(vcl::Window * &) Line 280
mergedlo.dll!WorkWindow::ImplInit(vcl::Window * pParent, __int64 nStyle, SystemParentData * pSystemParentData) Line 51
[Inline Frame] mergedlo.dll!IntroWindow::{ctor}() Line 35
mergedlo.dll!`anonymous namespace'::SplashScreenWindow::SplashScreenWindow(`anonymous-namespace'::SplashScreen * pSplash) Line 125
[Inline Frame] mergedlo.dll!VclPtr<`anonymous namespace'::SplashScreenWindow>::Create(`anonymous-namespace'::SplashScreen * &&) Line 129
[Inline Frame] mergedlo.dll!`anonymous-namespace'::SplashScreen::{ctor}() Line 145
mergedlo.dll!desktop_SplashScreen_get_implementation(com::sun::star::uno::XComponentContext * __formal, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> & __formal) Line 616
[Inline Frame] cppuhelper3MSC.dll!std::_Func_class<com::sun::star::uno::XInterface *,com::sun::star::uno::XComponentContext *,com::sun::star::uno::Sequence<com::sun::star::uno::Any> const &>::operator()(com::sun::star::uno::XComponentContext * <_Args_0>, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> &) Line 869
cppuhelper3MSC.dll!cppuhelper::ServiceManager::Data::Implementation::doCreateInstanceWithArguments(const com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> & context, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> & arguments) Line 717
cppuhelper3MSC.dll!cppuhelper::ServiceManager::Data::Implementation::createInstanceWithArguments(const com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> & context, bool singletonRequest, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> & arguments) Line 689
cppuhelper3MSC.dll!cppuhelper::ServiceManager::createInstanceWithArgumentsAndContext(const rtl::OUString & ServiceSpecifier, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> & Arguments, const com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> & Context) Line 1013
mergedlo.dll!desktop::Desktop::OpenSplashScreen() Line 2516
mergedlo.dll!desktop::Desktop::Main() Line 1356
mergedlo.dll!ImplSVMain() Line 228
[Inline Frame] mergedlo.dll!SVMain() Line 246
mergedlo.dll!soffice_main() Line 121
[Inline Frame] soffice.bin!sal_main() Line 51
soffice.bin!main(int argc, char * * argv) Line 49
[Inline Frame] soffice.bin!invoke_main() Line 78
soffice.bin!__scrt_common_main_seh() Line 288
kernel32.dll!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()
The crash happened inside checkDeviceDenylisted. Let's try to wrap
the dangerous code into a pair of configuration changes: first to
force software rendering in Skia - this change will stay in case
the HW check crashes for some reason; and after the check, second
to restore the original value.
If similar problems can happen also in case of Metal, then it can
be also done inside the '#ifdef SK_METAL'.
Change-Id: I163a0a16e0edc6b542dfc3e25ee862f38cffa863
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181290
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'embedserv/source/inc/embeddoc.hxx')
0 files changed, 0 insertions, 0 deletions