Bug 1875281 - Make CanvasTranslator::SetDataSurfaceBuffer diagnostic assert instead of release. r=bobowen

We don't want to release assert in the parent when using accelerated
canvas on Linux/OSX. This patch makes it so that we diagnostic assert on
nightly/early beta and otherwise fallback gracefully to software canvas
in the content process instead. It also now records mHeader->readerState
so that we can more easily debug this.

Differential Revision: https://phabricator.services.mozilla.com/D198952
This commit is contained in:
Andrew Osmond 2024-01-18 14:02:38 +00:00
Родитель e35f147967
Коммит 9135a8c6dd
1 изменённых файлов: 7 добавлений и 1 удалений

Просмотреть файл

@ -279,7 +279,13 @@ void CanvasTranslator::SetDataSurfaceBuffer(
return;
}
MOZ_RELEASE_ASSERT(mHeader->readerState == State::Paused);
if (mHeader->readerState != State::Paused) {
gfxCriticalNote << "CanvasTranslator::SetDataSurfaceBuffer bad state "
<< uint32_t(State(mHeader->readerState));
MOZ_DIAGNOSTIC_ASSERT(false, "mHeader->readerState == State::Paused");
Deactivate();
return;
}
if (!CreateAndMapShmem(mDataSurfaceShmem, std::move(aBufferHandle),
ipc::SharedMemory::RightsReadWrite, aBufferSize)) {