Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CRASH] Chromium GPU Helper uses unavailable VideoToolBox function (VTIsHardwareDecodeSupported) #210

Open
RJVB opened this issue Mar 7, 2024 · 14 comments
Labels
bug Something isn't working

Comments

@RJVB
Copy link

RJVB commented Mar 7, 2024

Describe the bug
The CPU helper process attemps to use a VideoToolBox function (VTIsHardwareDecodeSupported) that isn't available before I think 10.13 .

Desktop (please complete the following information):

  • OS: 10.9.5

Logs
Process: Chromium Helper (GPU) [6848]
Path: /Applications/Internet/Chromium.app/Contents/Frameworks/Chromium Framework.framework/Versions/121.0.6167.160.1/Helpers/Chromium Helper (GPU).app/Contents/MacOS/Chromium Helper (GPU)
Identifier: Chromium Helper (GPU)
Version: 121.0.6167.160.1 (6167.160)
Code Type: X86-64 (Native)
Parent Process: Chromium [6798]
Responsible: Chromium [6798]
User ID: 505

Date/Time: 2024-03-07 03:20:56.351 +0100
OS Version: Mac OS X 10.9.5 (13F1911)
Report Version: 11
Anonymous UUID: 64B814D9-356F-6F85-8341-E17C1354A330

Sleep/Wake UUID: 5B7AB66C-BDFC-4652-A4D9-8AB52EC30FE8

Crashed Thread: 15 ThreadPoolSingleThreadSharedForeground0

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000

Dyld Error Message:
Symbol not found: _VTIsHardwareDecodeSupported
Referenced from: /Applications/Internet/Chromium.app/Contents/Frameworks/Chromium Framework.framework/Versions/121.0.6167.160.1/Helpers/Chromium Helper (GPU).app/Contents/MacOS/../../../../Chromium Framework
Expected in: /System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox

Thread 0:: CrGpuMain Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff85423a1a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff85422d18 mach_msg + 64
2 com.apple.CoreFoundation 0x00007fff8d920f15 __CFRunLoopServiceMachPort + 181
3 com.apple.CoreFoundation 0x00007fff8d920539 __CFRunLoopRun + 1161
4 com.apple.CoreFoundation 0x00007fff8d91fe75 CFRunLoopRunSpecific + 309
5 com.apple.Foundation 0x00007fff8a0b60fc -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 253
6 org.chromium.Chromium.framework 0x00000001103f21a9 base::MessagePumpNSRunLoop::DoRun(base::MessagePump::Delegate*) + 153
7 org.chromium.Chromium.framework 0x00000001103f0f09 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 105
8 org.chromium.Chromium.framework 0x00000001103aa50c base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) + 284
9 org.chromium.Chromium.framework 0x0000000110373965 base::RunLoop::Run(base::Location const&) + 389
10 org.chromium.Chromium.framework 0x0000000116614c49 content::GpuMain(content::MainFunctionParams) + 1097
11 org.chromium.Chromium.framework 0x000000010f67ce64 content::RunOtherNamedProcessTypeMain(std::__Cr::basic_string<char, std::__Cr::char_traits, std::__Cr::allocator > const&, content::MainFunctionParams, content::ContentMainDelegate*) + 612
12 org.chromium.Chromium.framework 0x000000010f67d8d9 content::ContentMainRunnerImpl::Run() + 601
13 org.chromium.Chromium.framework 0x000000010f67c51a content::RunContentProcess(content::ContentMainParams, content::ContentMainRunner*) + 1226
14 org.chromium.Chromium.framework 0x000000010f67c602 content::ContentMain(content::ContentMainParams) + 98
15 org.chromium.Chromium.framework 0x000000010b623161 ChromeMain + 769
16 org.chromium.Chromium.helper 0x000000010b567a4b main + 363
17 org.chromium.Chromium.helper 0x000000010b5678d4 start + 52

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0 libsystem_kernel.dylib 0x00007fff85428662 kevent64 + 10
1 libdispatch.dylib 0x00007fff8ddf8421 _dispatch_mgr_invoke + 239
2 libdispatch.dylib 0x00007fff8ddf8136 _dispatch_mgr_thread + 52

Thread 2:
0 libsystem_kernel.dylib 0x00007fff85427e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff85fddf08 _pthread_wqthread + 330
2 libsystem_pthread.dylib 0x00007fff85fe0fb9 start_wqthread + 13

Thread 3:
0 libsystem_kernel.dylib 0x00007fff85427e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff85fddf08 _pthread_wqthread + 330
2 libsystem_pthread.dylib 0x00007fff85fe0fb9 start_wqthread + 13

Thread 4:
0 libsystem_kernel.dylib 0x00007fff85427e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff85fddf08 _pthread_wqthread + 330
2 libsystem_pthread.dylib 0x00007fff85fe0fb9 start_wqthread + 13

Thread 5:: StackSamplingProfiler
0 libsystem_kernel.dylib 0x00007fff85423a1a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff85422d18 mach_msg + 64
2 org.chromium.Chromium.framework 0x00000001103f5686 base::WaitableEvent::TimedWaitImpl(base::TimeDelta) + 390
3 org.chromium.Chromium.framework 0x000000011038eaf3 base::WaitableEvent::TimedWait(base::TimeDelta) + 163
4 org.chromium.Chromium.framework 0x000000011034632c base::MessagePumpDefault::Run(base::MessagePump::Delegate*) + 252
5 org.chromium.Chromium.framework 0x00000001103aa50c base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) + 284
6 org.chromium.Chromium.framework 0x0000000110373965 base::RunLoop::Run(base::Location const&) + 389
7 org.chromium.Chromium.framework 0x00000001103c9498 base::Thread::Run(base::RunLoop*) + 56
8 org.chromium.Chromium.framework 0x00000001103c95bc base::Thread::ThreadMain() + 268
9 org.chromium.Chromium.framework 0x00000001103dcfa9 base::(anonymous namespace)::ThreadFunc(void*) + 105
10 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
11 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
12 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 6:: GpuWatchdog
0 libsystem_kernel.dylib 0x00007fff85423a1a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff85422d18 mach_msg + 64
2 org.chromium.Chromium.framework 0x00000001103f5686 base::WaitableEvent::TimedWaitImpl(base::TimeDelta) + 390
3 org.chromium.Chromium.framework 0x000000011038eaf3 base::WaitableEvent::TimedWait(base::TimeDelta) + 163
4 org.chromium.Chromium.framework 0x000000011034632c base::MessagePumpDefault::Run(base::MessagePump::Delegate*) + 252
5 org.chromium.Chromium.framework 0x00000001103aa50c base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) + 284
6 org.chromium.Chromium.framework 0x0000000110373965 base::RunLoop::Run(base::Location const&) + 389
7 org.chromium.Chromium.framework 0x00000001103c9498 base::Thread::Run(base::RunLoop*) + 56
8 org.chromium.Chromium.framework 0x00000001103c95bc base::Thread::ThreadMain() + 268
9 org.chromium.Chromium.framework 0x00000001103dcfa9 base::(anonymous namespace)::ThreadFunc(void*) + 105
10 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
11 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
12 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 7:: ThreadPoolServiceThread
0 libsystem_kernel.dylib 0x00007fff85428662 kevent64 + 10
1 org.chromium.Chromium.framework 0x0000000110402ed6 base::MessagePumpKqueue::DoInternalWork(base::MessagePump::Delegate*, base::MessagePump::Delegate::NextWorkInfo*) + 374
2 org.chromium.Chromium.framework 0x0000000110402cde base::MessagePumpKqueue::RunSimplified(base::MessagePump::Delegate*) + 78
3 org.chromium.Chromium.framework 0x0000000110402bb6 base::MessagePumpKqueue::Run(base::MessagePump::Delegate*) + 70
4 org.chromium.Chromium.framework 0x00000001103aa50c base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) + 284
5 org.chromium.Chromium.framework 0x0000000110373965 base::RunLoop::Run(base::Location const&) + 389
6 org.chromium.Chromium.framework 0x00000001103c9498 base::Thread::Run(base::RunLoop*) + 56
7 org.chromium.Chromium.framework 0x00000001103b75dd base::internal::ServiceThread::Run(base::RunLoop*) + 13
8 org.chromium.Chromium.framework 0x00000001103c95bc base::Thread::ThreadMain() + 268
9 org.chromium.Chromium.framework 0x00000001103dcfa9 base::(anonymous namespace)::ThreadFunc(void*) + 105
10 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
11 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
12 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 8:: ThreadPoolForegroundWorker
0 libsystem_kernel.dylib 0x00007fff85423a1a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff85422d18 mach_msg + 64
2 org.chromium.Chromium.framework 0x00000001103f5686 base::WaitableEvent::TimedWaitImpl(base::TimeDelta) + 390
3 org.chromium.Chromium.framework 0x000000011038eaf3 base::WaitableEvent::TimedWait(base::TimeDelta) + 163
4 org.chromium.Chromium.framework 0x00000001103c059d base::internal::WorkerThreadWaitableEvent::Delegate::TimedWait(base::TimeDelta) + 13
5 org.chromium.Chromium.framework 0x00000001103bfde3 base::internal::WorkerThread::RunWorker() + 451
6 org.chromium.Chromium.framework 0x00000001103bfb9d base::internal::WorkerThread::RunPooledWorker() + 13
7 org.chromium.Chromium.framework 0x00000001103bfa90 base::internal::WorkerThread::ThreadMain() + 128
8 org.chromium.Chromium.framework 0x00000001103dcfa9 base::(anonymous namespace)::ThreadFunc(void*) + 105
9 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
10 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
11 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 9:: ThreadPoolBackgroundWorker
0 libsystem_kernel.dylib 0x00007fff85423a1a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff85422d18 mach_msg + 64
2 org.chromium.Chromium.framework 0x00000001103f5686 base::WaitableEvent::TimedWaitImpl(base::TimeDelta) + 390
3 org.chromium.Chromium.framework 0x000000011038eaf3 base::WaitableEvent::TimedWait(base::TimeDelta) + 163
4 org.chromium.Chromium.framework 0x00000001103c059d base::internal::WorkerThreadWaitableEvent::Delegate::TimedWait(base::TimeDelta) + 13
5 org.chromium.Chromium.framework 0x00000001103bfde3 base::internal::WorkerThread::RunWorker() + 451
6 org.chromium.Chromium.framework 0x00000001103bfb0d base::internal::WorkerThread::RunBackgroundPooledWorker() + 13
7 org.chromium.Chromium.framework 0x00000001103bfae6 base::internal::WorkerThread::ThreadMain() + 214
8 org.chromium.Chromium.framework 0x00000001103dcfa9 base::(anonymous namespace)::ThreadFunc(void*) + 105
9 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
10 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
11 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 10:: ThreadPoolForegroundWorker
0 libsystem_kernel.dylib 0x00007fff85423a1a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff85422d18 mach_msg + 64
2 org.chromium.Chromium.framework 0x00000001103f5686 base::WaitableEvent::TimedWaitImpl(base::TimeDelta) + 390
3 org.chromium.Chromium.framework 0x000000011038eaf3 base::WaitableEvent::TimedWait(base::TimeDelta) + 163
4 org.chromium.Chromium.framework 0x00000001103c059d base::internal::WorkerThreadWaitableEvent::Delegate::TimedWait(base::TimeDelta) + 13
5 org.chromium.Chromium.framework 0x00000001103bfde3 base::internal::WorkerThread::RunWorker() + 451
6 org.chromium.Chromium.framework 0x00000001103bfb9d base::internal::WorkerThread::RunPooledWorker() + 13
7 org.chromium.Chromium.framework 0x00000001103bfa90 base::internal::WorkerThread::ThreadMain() + 128
8 org.chromium.Chromium.framework 0x00000001103dcfa9 base::(anonymous namespace)::ThreadFunc(void*) + 105
9 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
10 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
11 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 11:: Chrome_ChildIOThread
0 libsystem_kernel.dylib 0x00007fff85428662 kevent64 + 10
1 org.chromium.Chromium.framework 0x0000000110402ed6 base::MessagePumpKqueue::DoInternalWork(base::MessagePump::Delegate*, base::MessagePump::Delegate::NextWorkInfo*) + 374
2 org.chromium.Chromium.framework 0x0000000110402cde base::MessagePumpKqueue::RunSimplified(base::MessagePump::Delegate*) + 78
3 org.chromium.Chromium.framework 0x0000000110402bb6 base::MessagePumpKqueue::Run(base::MessagePump::Delegate*) + 70
4 org.chromium.Chromium.framework 0x00000001103aa50c base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) + 284
5 org.chromium.Chromium.framework 0x0000000110373965 base::RunLoop::Run(base::Location const&) + 389
6 org.chromium.Chromium.framework 0x00000001103c9498 base::Thread::Run(base::RunLoop*) + 56
7 org.chromium.Chromium.framework 0x00000001139d2a3f content::(anonymous namespace)::ChildIOThread::Run(base::RunLoop*) + 95
8 org.chromium.Chromium.framework 0x00000001103c95bc base::Thread::ThreadMain() + 268
9 org.chromium.Chromium.framework 0x00000001103dcfa9 base::(anonymous namespace)::ThreadFunc(void*) + 105
10 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
11 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
12 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 12:: ThreadPoolForegroundWorker
0 libsystem_kernel.dylib 0x00007fff85423a1a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff85422d18 mach_msg + 64
2 org.chromium.Chromium.framework 0x00000001103f5686 base::WaitableEvent::TimedWaitImpl(base::TimeDelta) + 390
3 org.chromium.Chromium.framework 0x000000011038eaf3 base::WaitableEvent::TimedWait(base::TimeDelta) + 163
4 org.chromium.Chromium.framework 0x00000001103c059d base::internal::WorkerThreadWaitableEvent::Delegate::TimedWait(base::TimeDelta) + 13
5 org.chromium.Chromium.framework 0x00000001103bfde3 base::internal::WorkerThread::RunWorker() + 451
6 org.chromium.Chromium.framework 0x00000001103bfb9d base::internal::WorkerThread::RunPooledWorker() + 13
7 org.chromium.Chromium.framework 0x00000001103bfa90 base::internal::WorkerThread::ThreadMain() + 128
8 org.chromium.Chromium.framework 0x00000001103dcfa9 base::(anonymous namespace)::ThreadFunc(void*) + 105
9 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
10 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
11 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 13:: VizCompositorThread
0 libsystem_kernel.dylib 0x00007fff85423a1a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff85422d18 mach_msg + 64
2 org.chromium.Chromium.framework 0x00000001103f5686 base::WaitableEvent::TimedWaitImpl(base::TimeDelta) + 390
3 org.chromium.Chromium.framework 0x000000011038eaf3 base::WaitableEvent::TimedWait(base::TimeDelta) + 163
4 org.chromium.Chromium.framework 0x000000011034632c base::MessagePumpDefault::Run(base::MessagePump::Delegate*) + 252
5 org.chromium.Chromium.framework 0x00000001103aa50c base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) + 284
6 org.chromium.Chromium.framework 0x0000000110373965 base::RunLoop::Run(base::Location const&) + 389
7 org.chromium.Chromium.framework 0x00000001103c9498 base::Thread::Run(base::RunLoop*) + 56
8 org.chromium.Chromium.framework 0x00000001103c95bc base::Thread::ThreadMain() + 268
9 org.chromium.Chromium.framework 0x00000001103dcfa9 base::(anonymous namespace)::ThreadFunc(void*) + 105
10 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
11 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
12 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 14:: CVDisplayLink
0 libsystem_kernel.dylib 0x00007fff85427716 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff85fdec77 _pthread_cond_wait + 787
2 com.apple.CoreVideo 0x00007fff8a4a8464 CVDisplayLink::waitUntil(unsigned long long) + 244
3 com.apple.CoreVideo 0x00007fff8a4a7998 CVDisplayLink::runIOThread() + 496
4 com.apple.CoreVideo 0x00007fff8a4a778f startIOThread(void*) + 147
5 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
6 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
7 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 15 Crashed:: ThreadPoolSingleThreadSharedForeground0
0 dyld 0x00007fff6807c09d dyld_fatal_error + 1
1 dyld 0x00007fff6807edf6 dyld::fastBindLazySymbol(ImageLoader**, unsigned long) + 171
2 libdyld.dylib 0x00007fff8dd072dd dyld_stub_binder_ + 13
3 ??? 0x0000000117b6c000 0 + 4692819968
4 org.chromium.Chromium.framework 0x000000011287bb7d media::GetPlatformSupportedVideoDecoderConfigs(base::WeakPtrmedia::MediaGpuChannelManager, gpu::GpuDriverBugWorkarounds, gpu::GpuPreferences, gpu::GPUInfo const&, base::OnceCallback<std::__Cr::vector<media::SupportedVideoDecoderConfig, std::__Cr::allocatormedia::SupportedVideoDecoderConfig > ()>) + 77
5 org.chromium.Chromium.framework 0x000000011285c30a media::GpuMojoMediaClient::GetSupportedVideoDecoderConfigsStatic(base::WeakPtrmedia::MediaGpuChannelManager, gpu::GpuPreferences const&, gpu::GpuDriverBugWorkarounds const&, gpu::GPUInfo const&) + 218
6 org.chromium.Chromium.framework 0x000000011285c0e1 media::GpuMojoMediaClient::GetSupportedVideoDecoderConfigs() + 369
7 org.chromium.Chromium.framework 0x000000011286a014 media::MojoVideoDecoderService::GetSupportedConfigs(base::OnceCallback<void (std::__Cr::vector<media::SupportedVideoDecoderConfig, std::__Cr::allocatormedia::SupportedVideoDecoderConfig > const&, media::VideoDecoderType)>) + 84
8 org.chromium.Chromium.framework 0x000000010c100d7a media::mojom::VideoDecoderStubDispatch::AcceptWithResponder(media::mojom::VideoDecoder*, mojo::Message*, std::__Cr::unique_ptr<mojo::MessageReceiverWithStatus, std::__Cr::default_deletemojo::MessageReceiverWithStatus >) + 890
9 org.chromium.Chromium.framework 0x0000000110ae999b mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) + 683
10 org.chromium.Chromium.framework 0x0000000110aee7c7 mojo::MessageDispatcher::Accept(mojo::Message*) + 167
11 org.chromium.Chromium.framework 0x0000000110aeb48f mojo::InterfaceEndpointClient::HandleIncomingMessage(mojo::Message*) + 79
12 org.chromium.Chromium.framework 0x0000000110af177f mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) + 975
13 org.chromium.Chromium.framework 0x0000000110af0f3a mojo::internal::MultiplexRouter::Accept(mojo::Message*) + 426
14 org.chromium.Chromium.framework 0x0000000110aee7fe mojo::MessageDispatcher::Accept(mojo::Message*) + 222
15 org.chromium.Chromium.framework 0x0000000110ae6af7 mojo::Connector::DispatchMessage(mojo::ScopedHandleBasemojo::MessageHandle) + 423
16 org.chromium.Chromium.framework 0x0000000110ae752f mojo::Connector::ReadAllAvailableMessages() + 287
17 org.chromium.Chromium.framework 0x0000000110ae7347 mojo::Connector::OnWatcherHandleReady(char const*, unsigned int) + 55
18 org.chromium.Chromium.framework 0x000000010cac524b mojo::SimpleWatcher::DiscardReadyState(base::RepeatingCallback<void (unsigned int)> const&, unsigned int, mojo::HandleSignalsState const&) + 43
19 org.chromium.Chromium.framework 0x0000000110b040f7 mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) + 343
20 org.chromium.Chromium.framework 0x0000000110391cdd base::TaskAnnotator::RunTaskImpl(base::PendingTask&) + 269
21 org.chromium.Chromium.framework 0x00000001103b8c5c base::internal::TaskTracker::RunTaskImpl(base::internal::Task&, base::TaskTraits const&, base::internal::TaskSource*, base::SequenceToken const&) + 60
22 org.chromium.Chromium.framework 0x00000001103b9140 base::internal::TaskTracker::RunSkipOnShutdown(base::internal::Task&, base::TaskTraits const&, base::internal::TaskSource*, base::SequenceToken const&) + 64
23 org.chromium.Chromium.framework 0x00000001103b8a87 base::internal::TaskTracker::RunTask(base::internal::Task, base::internal::TaskSource*, base::TaskTraits const&) + 503
24 org.chromium.Chromium.framework 0x00000001103b86d5 base::internal::TaskTracker::RunAndPopNextTask(base::internal::RegisteredTaskSource) + 629
25 org.chromium.Chromium.framework 0x00000001103c0038 base::internal::WorkerThread::RunWorker() + 1048
26 org.chromium.Chromium.framework 0x00000001103bfbcd base::internal::WorkerThread::RunSharedWorker() + 13
27 org.chromium.Chromium.framework 0x00000001103bfaa4 base::internal::WorkerThread::ThreadMain() + 148
28 org.chromium.Chromium.framework 0x00000001103dcfa9 base::(anonymous namespace)::ThreadFunc(void*) + 105
29 libsystem_pthread.dylib 0x00007fff85fdc899 _pthread_body + 138
30 libsystem_pthread.dylib 0x00007fff85fdc72a _pthread_start + 137
31 libsystem_pthread.dylib 0x00007fff85fe0fc9 thread_start + 13

Thread 15 crashed with X86 Thread State (64-bit):
rax: 0x00007fff680b0db0 rbx: 0x00007f9cabd69b70 rcx: 0x0000000000000000 rdx: 0x0000000000000000
rdi: 0x00007fff680b0f20 rsi: 0x0000000000000000 rbp: 0x0000000134c1b8c0 rsp: 0x0000000134c1b8a8
r8: 0x00007fff6809bb8c r9: 0x0000000000000000 r10: 0x0000000134c1b621 r11: 0x00007fff680b0f20
r12: 0x0000000134c1bb30 r13: 0x00007f9cac9360d8 r14: 0x00007fff680b0f20 r15: 0x0000000134c1bbe4
rip: 0x00007fff6807c09d rfl: 0x0000000000000246 cr2: 0x0000000134c1ad48

Logical CPU: 2
Error Code: 0x00000000
Trap Number: 3

@RJVB RJVB added the bug Something isn't working label Mar 7, 2024
@RJVB
Copy link
Author

RJVB commented Mar 7, 2024

Regression also present in 121.0.6167.139.1 and I think it could effectively disable hw-accelerated video playback

@Wowfunhappy
Copy link

Wowfunhappy commented Mar 7, 2024

I'm on vacation in a week and a half and I'm going to go through and polyfill and stub a bunch of things to fix recent regressions without needing to actually recompile Chromium (if bluebox doesn't get to them first).

If I was to pollyfill this, should it always return true or should it call a different/older function to see if hardware decode is supported?

@RJVB
Copy link
Author

RJVB commented Mar 7, 2024 via email

@Wowfunhappy
Copy link

I've been thinking about trying to inject a VTIsHardwareDecodeSupported function via DYLD_INSERT_LIBRARIES but that tends not to work with applications that are linked the normal two-level namespace way.

See https://apple.stackexchange.com/questions/414688/how-can-i-run-newer-unity-games-on-os-x-10-9-mavericks/414689#414689 for how I usually work around this.

@RJVB
Copy link
Author

RJVB commented Mar 7, 2024 via email

@Wowfunhappy
Copy link

@RJVB Let's continue the discussion here: #211

@krackers
Copy link

krackers commented Mar 9, 2024

If I was to pollyfill this, should it always return true or should it call a different/older function to see if hardware decode is supported?

Theoretically polyfilling to true should work since chrome should fallback to swdec if videotoolbox hwdec session cannot init. If that doesn't work I guess can always whitelist the formats we know should work (H.263, H.264, MPEG-1, MPEG-2, MPEG-4 Part 2)

@RJVB
Copy link
Author

RJVB commented Mar 9, 2024 via email

@krackers
Copy link

krackers commented Mar 9, 2024

If hwdec requires setting up special memory or "viewports"

It might require allocating some gpu memory, but I don't see why that would lead to glitching? It doesn't allocate any viewport, once decoded the texture lies on the gpu and it's your job to render it.

Now the application itself might not handle it properly, e.g. it might try to reinit windows or whatever. But that's an application problem, not a fundamental hwdec limitation. A properly architected application would have separation between the two, and could even switch at runtime without any disruption. (There will of course be a necessary frame-drop as swdec picks up where hwdec left off or vice-versa)

I don't know how chrome behaves. Could always just try the simplest thing first and if there is a noticeable issue, then go to the more complex solution.

@RJVB
Copy link
Author

RJVB commented Mar 9, 2024 via email

@Wowfunhappy
Copy link

The latest version of #25 will polyfill the missing function. I went with the simple option, because it works:

#include <stdio.h>

int VTIsHardwareDecodeSupported() {
	return 1;
}

int main(int argc, char *argv[]) {}

This has an immediately noticeable impact on the stability of WebGL applications. Pre-patch, I can't get https://webglsamples.org/field/field.html to run for a significant length of time without crashing, particularly if I switch to a different tab and come back or open Chromium's developer tools.

@RJVB
Copy link
Author

RJVB commented Mar 29, 2024 via email

@Wowfunhappy
Copy link

FWIW: did you say that turning off HW accel in the settings didn't really turn off all GPU use?

No, what I probably said is that Chromium Legacy turns off most hardware acceleration by default via a hardcoded --disable-gpu-compositing flag, but this does not turn off all hardware acceleration. However, you can disable hardware acceleration in Chromium's settings UI to truly turn it all off.

A few weeks ago I noticed that disabling hardware acceleration in settings seemed to improve stability somewhat. However, this may have been entirely because of the missing VideoToolBox function!

blueboxd pushed a commit that referenced this issue May 16, 2024
Roll Chrome Win64 PGO profile from chrome-win64-6367-1711339532-b487a87910b1f5267746247dee4c711a6745cecb-86072a8a4ae2686ab42b026a94b7aeeb8ed1b235.profdata to chrome-win64-6367-1711366904-f381357a5bc11f26d62b0c884e827fe01961c9c5-c055d4ed29a25eb8dd7d7cb23be90527690440b5.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-win64-chromium-beta
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium beta branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chrome-m124.try:win64-chrome
Tbr: [email protected]
Change-Id: I9252572058727b2f68bf84ac0e77a2c8e1365d8b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5391660
Commit-Queue: Chrome Release Autoroll <[email protected]>
Bot-Commit: Chrome Release Autoroll <[email protected]>
Cr-Commit-Position: refs/branch-heads/6367@{#210}
Cr-Branched-From: d158c6d-refs/heads/main@{#1274542}
@Wowfunhappy
Copy link

I think this has been properly fixed in the latest release. 647f7a9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants