The assertion is due to an inappropriate test of exact floating-point values.
build_trc_table() handles this saturating case, so there's no need to assert.
Add more test coverage to be certain no fuzzing inputs will lead to crashes.
Differential Revision: https://phabricator.services.mozilla.com/D125006
There could be a race between installing the profiler hooks
and the SwCompositor threads starting up. If we install them
earlier that should help.
Differential Revision: https://phabricator.services.mozilla.com/D126000
While not enabled by default, it is openly exposed in the driver
settings and thus apparently not uncommon. Currently it causes
significant glitches for Firefox HW-WR, but also other text focused
apps (GTK 4).
While this should get fixed in the driver eventually, use the
workaround recommended by Nvidia to force-disable it for now.
Differential Revision: https://phabricator.services.mozilla.com/D125981
In practice we already only use SourceSurfaceSharedData as our
rasterized image backing. This means we no longer need to lock the data
to keep it in memory (when we used volatile memory), nor to try to
optimize the surface for the DrawTarget.
Differential Revision: https://phabricator.services.mozilla.com/D124476
On windows we first group images into 512x512 staging CPU buffers which are uploaded via glTexSubImage2D (UpdateSubResource). When something is almost as large as the staging CPU buffer, we are unlikely to be able to batch it with other items. In this situation we are better off skipping the CPU buffer and uploading off of the image data directly.
Differential Revision: https://phabricator.services.mozilla.com/D125564
The assertion is due to an inappropriate test of exact floating-point values.
build_trc_table() handles this saturating case, so there's no need to assert.
Add more test coverage to be certain no fuzzing inputs will lead to crashes.
Differential Revision: https://phabricator.services.mozilla.com/D125006
The assertion is due to an inappropriate test of exact floating-point values.
build_trc_table() handles this saturating case, so there's no need to assert.
Add more test coverage to be certain no fuzzing inputs will lead to crashes.
Differential Revision: https://phabricator.services.mozilla.com/D125006
The assertion is due to an inappropriate test of exact floating-point values.
build_trc_table() handles this saturating case, so there's no need to assert.
Add more test coverage to be certain no fuzzing inputs will lead to crashes.
Differential Revision: https://phabricator.services.mozilla.com/D125006
Previously, content processes would try to contact the X server
directly during startup to read color calibration information; with
`dom.ipc.avoid-gtk` this doesn't work because the process is in headless
mode. This patch extends the color profile IPC facility added in bug
1540776 for Windows sandboxing (win32k lockdown) to GTK under X11.
(Currently there's no support for color management under Wayland, so
there's nothing for this patch to fix in that case.)
Differential Revision: https://phabricator.services.mozilla.com/D124507
This sets the GL error status to GL_OUT_OF_MEMORY when a texture or buffer
re-allocation fails. It is then possible to check the GL error status via
glGetError after to look for the failure.
Differential Revision: https://phabricator.services.mozilla.com/D125441
The combination currently triggers crashes - not on Wayland though.
Put the code into non-shared code to not clutter `GLContextProviderEGL`.
Differential Revision: https://phabricator.services.mozilla.com/D125403
Brings a few important fixes:
- better WGSL support
- Solaris build (1729751)
- crash in "_MTLCommandEncoder dealloc" (1729648)
Differential Revision: https://phabricator.services.mozilla.com/D125103
we were doing UTF16 -> ASCII null term -> UTF8, and we were losing information on the way.
Now we go UTF16 -> UTF8 -> UTF8 null term
Also, we no longer accept SPIR-V
Differential Revision: https://phabricator.services.mozilla.com/D125123
The way the spatial tree is referenced and used during scene building
and frame building are very different.
During scene building, the spatial tree is mostly a write-only
struct being used to define spatial nodes. There are a small number
of queries related to snapping, scroll root finding etc.
During frame building, the spatial tree is mostly a read-only
struct used to query relative transforms, coordinate systems etc.
This patch splits them into two separate structs for these different
purposes. Upcoming patches will start to retain each of these structs
across display lists, and this makes it easier to incementally
implement this.
Differential Revision: https://phabricator.services.mozilla.com/D125001
This also remove `FPSCounter`, `TimedMetric`, and these prefs:
- layers.acceleration.draw-fps.print-histogram
- layers.acceleration.draw-fps.write-to-file
Differential Revision: https://phabricator.services.mozilla.com/D125110
Since spatial node indices will become opaque handles in future,
remove the last part of code outside `spatial_tree` that relies
on the index. In this case, switch the hit-testing code to use
the spatial node indices as a hash key. This is unlikely to have
any noticeable performance impact since hit-tests are relatively
rare, and generally only access a small number of spatial nodes.
Differential Revision: https://phabricator.services.mozilla.com/D124706
Previously, the GPU transform palette always stored the local ->
world transform for each spatial node with O(1) access time.
This won't be feasible in future when spatial nodes are retained
and stored with opaque handles.
Although this was previously a small optimization, it's no longer
important. With picture caching and raster roots, querying the
local -> world transform should be relatively rare (and even rarer
once all surfaces establish raster roots).
We still retain the optimization that querying an identity transform
(where the from == to spatial node) avoids a hash lookup and always
resolves to the first transform in the palette, since this is quite
common.
Differential Revision: https://phabricator.services.mozilla.com/D124595