TextureHost::AsBufferTextureHost() already exists. The IsWrappingBufferTextureHost() is redundant.
It is preparation for Bug 1834039.
Differential Revision: https://phabricator.services.mozilla.com/D179519
DeviceManagerDx::Get()->CanUseNV12() needs D3D11Device in current process. The SupportsD3D11NV12() could be used without D3D11Device in current process.
It is preparation for Bug 1834039.
Differential Revision: https://phabricator.services.mozilla.com/D179532
OS print drivers/devices know nothing about page dimensions unless we tell
them. Previously, the physical page dimensions (including orientation) have
always been the same, so communicating their dimensions once at the start of
a print has been enough. In preparation for supporting different "physical"
page dimensions (in the immediate future only different page orientations) when
we save to PDF, we need to have the infrastructure to pass dimensions through
on a page-by-page basis. This patch adds that.
None of the PrintTarget subclasses do anything with this extra information yet,
but in a follow-up patch PrintTargetPDF will use this information to create
PDFs with mixed page orientations.
Depends on D179395
Differential Revision: https://phabricator.services.mozilla.com/D179423
Bug 1704954 disabled DirectComposition for users with NVIDIA graphics
hardware and mixed monitor refresh rates on Windows 10 and 11, as a
mitigation for bug 1638709. However, that bug is almost -- perhaps
entirely -- unknown on Windows 11 (q.v. for details), and the fallback
path it uses has been shown to cause issues there (bug 1763981).
Restrict the mitigation to only occur on Windows 10, where bug 1638709
is exhibited, but where no issues with the fallback path are known.
This also effectively reverts bug 1816001, which it obviates.
Differential Revision: https://phabricator.services.mozilla.com/D178848
By moving GetFormat() and GetYUVColorSpace() to RenderTextureHost, we could reduce cast to RenderTextureHostSWGL.
It is preparation for Bug 1834039.
Differential Revision: https://phabricator.services.mozilla.com/D179435
The old Win32 specific atomics support was accidentally removed in bug 739096.
However, we can just use the existing CXX11 atomic support because we build with
clang-cl.
Differential Revision: https://phabricator.services.mozilla.com/D179267
This patch changes KillHard() such that the IPC channel is immediately
shut down with an error after a KillHard() is performed. This is done by
fixing the previously-broken CLOSE_CHANNEL_WITH_ERROR support in
ShutDownProcess, and calling that method after KillHard().
This ensures that after the process has been killed, no further messages
will be delivered and processed, even if they were sent before the
process was killed.
In addition, the assertions and KillHard calls which are disabled for
fuzzing were changed to also shut down the channel, making fuzzing IPC
errors cause the connection to be terminated like it is in production
for these actors.
This change does not impact actors which ignore processing errors.
Differential Revision: https://phabricator.services.mozilla.com/D178383
Contrary to ld64, lld doesn't ignore libraries it's given on the command
line, and -lLLVM-14 ends up as a link error when using lld.
So instead of relying on the flags llvm-config outputs to be kind of
ignored, we replace them at the source by wrapping llvm-config itself.
Differential Revision: https://phabricator.services.mozilla.com/D178900
The old version that is currently used doesn't support lld for mac, and
tries to pass it flags for BFD ld (e.g. --as-needed).
For some reason meson checks fail because of some CFLAGS not being used
during the checks being reported as an error, so we make those errors
quiet.
Differential Revision: https://phabricator.services.mozilla.com/D178899
This patch changes KillHard() such that the IPC channel is immediately
shut down with an error after a KillHard() is performed. This is done by
fixing the previously-broken CLOSE_CHANNEL_WITH_ERROR support in
ShutDownProcess, and calling that method after KillHard().
This ensures that after the process has been killed, no further messages
will be delivered and processed, even if they were sent before the
process was killed.
In addition, the assertions and KillHard calls which are disabled for
fuzzing were changed to also shut down the channel, making fuzzing IPC
errors cause the connection to be terminated like it is in production
for these actors.
This change does not impact actors which ignore processing errors.
Differential Revision: https://phabricator.services.mozilla.com/D178383
Take care to restore only the parts of the gfxContext that we need to because saving and restoring the complete gfxContext is expensive.
Differential Revision: https://phabricator.services.mozilla.com/D178304