Граф коммитов

208 Коммитов

Автор SHA1 Сообщение Дата
Razvan Maries 90372fb9cf Backed out changeset cef722eb6583 (bug 1672309) for Windows 2012 debug BR bustages. CLOSED TREE 2020-10-22 09:01:29 +03:00
Jeff Muizelaar 6df3bcb6d8 Bug 1672309 - Port remaning gtests to Rust. r=aosmond
I've left the C++ ones for now.

Differential Revision: https://phabricator.services.mozilla.com/D94246
2020-10-22 01:30:48 +00:00
Dorel Luca 03c2fad3dc Backed out changeset 02f6caf121bb (bug 1672309) for Backout conflicts with Bug 1654103. CLOSED TREE 2020-10-22 03:50:06 +03:00
Jeff Muizelaar 577c167863 Bug 1672309 - Port remaning gtests to Rust. r=aosmond
I've left the C++ ones for now.

Differential Revision: https://phabricator.services.mozilla.com/D94246
2020-10-22 00:05:08 +00:00
Jeff Muizelaar cc1de268e5 Bug 1671311 - qcms: Make a couple of functions safe. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D93625
2020-10-15 13:02:01 +00:00
Jeff Muizelaar 3fd8898736 Bug 1670404 - Cleanup profile_create_rgb_with_table. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D93156
2020-10-14 20:46:29 +00:00
Jeff Muizelaar 253ba9aba0 Bug 1668912 - Implement Default for qcms_transform. r=aosmond
Using Default::default() to initialize qcms_tranform
instead of zero will avoid us having to rely on the particular
representation of the members which makes things more
sane once the pointer members become Option<Vec<_>>s

Once all the members use Default::default() we can switch
to deriving Default instead of implementing it manually.

Differential Revision: https://phabricator.services.mozilla.com/D92285
2020-10-03 19:16:32 +00:00
Jeff Muizelaar c78d8d9811 Bug 1668967 - qcms: Make sure we read the entire output table. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D92315
2020-10-03 13:59:28 +00:00
Jeff Muizelaar 06840cd992 Bug 1668859 - Separate out the safe part of profile_create_rgb_with_table. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D92251
2020-10-02 19:00:59 +00:00
Jeff Muizelaar e53f994944 Bug 1668708 - Make build_sRGB_gamma_table safe. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D92169
2020-10-02 15:59:39 +00:00
Jeff Muizelaar 803305dab6 Bug 1668526 - qcms: Fix v4 profiles. r=aosmond
Using floor() instead of ceil() was a typo that was introduced while
converting from the libm functions to rust builtins.

This adds a test to prevent us from breaking it in the future.

Differential Revision: https://phabricator.services.mozilla.com/D92131
2020-10-01 19:09:37 +00:00
Jeff Muizelaar 62fa39d35f Bug 1668419 - Make icc profile parsing safe. r=aosmond
This makes qcms_profile_from_memory() a wrapper
around a safe profile_from_slice() function.

Differential Revision: https://phabricator.services.mozilla.com/D92012
2020-10-01 13:18:41 +00:00
Jeff Muizelaar 079948dafe Bug 1668418 - Rustify precache. r=aosmond
Change the *mut precache_output pointers to Option<Arc<precache_output>>
These are the last fields in qcms_profile that we interact with
unsafely.

Differential Revision: https://phabricator.services.mozilla.com/D92011
2020-10-01 12:48:23 +00:00
Jeff Muizelaar f82318cd6e Bug 1667921 - qcms: Make read_tag_lutmABType safe. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D91676
2020-09-29 02:38:02 +00:00
Jeff Muizelaar 6f690d3efc Bug 1667875. Make sure that we enable the instruction set that we're using. r=aosmond
Without this the intrinsics end up as calls instead of inline

Differential Revision: https://phabricator.services.mozilla.com/D91639
2020-09-28 21:04:30 +00:00
Jeff Muizelaar 8d848ca717 Bug 1667691 - qcms: Make lutType safe. r=aosmond
Instead of using a common buffer for all lookup tables
we just use individual Vecs for each.

Differential Revision: https://phabricator.services.mozilla.com/D91534
2020-09-28 00:34:15 +00:00
Jeff Muizelaar ac8e8a021c Bug 1667689 - Make set_rgb_colorants safe. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D91533
2020-09-27 22:56:03 +00:00
Jeff Muizelaar a6bc0ef436 Bug 1667689 - Make build_RGB_to_XYZ_transfer_matrix safe. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D91532
2020-09-27 22:55:56 +00:00
Jeff Muizelaar 8f56d5e521 Bug 1667689 - Make curve_from_table safe. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D91531
2020-09-27 22:54:37 +00:00
Jeff Muizelaar 23b9ed74a2 Bug 1667687 - qcms: Make read_nested safe. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D91530
2020-09-27 22:53:13 +00:00
Jeff Muizelaar 8daf0bd825 Bug 1667686 - Use ptr::write_unaligned to properly handle unaligned accesses. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D91529
2020-09-27 22:52:55 +00:00
Jeff Muizelaar b5a1244a00 Bug 1667374 - Make curveType more Rust like. r=aosmond
Turns curveType into a enum. The change is mostly mechanical fixing of
the the code to the new structure except that for Parametrics curves
we now store the result of COUNT_TO_LENGTH as the len.
This mostly affects compute_curve_gamma_table_type_parametric where we
use the post COUNT_TO_LENGTH instead of the pre COUNT_TO_LENGTH.

Differential Revision: https://phabricator.services.mozilla.com/D91421
2020-09-27 18:57:50 +00:00
Jeff Muizelaar 70cb4bccd7 Bug 1666811. Make tag finding safe. r=aosmond
Change find_tag() to return an Option<&tag> instead of *const tag
and clean up all of the users.

Differential Revision: https://phabricator.services.mozilla.com/D91150
2020-09-25 11:45:04 +00:00
Jeff Muizelaar d679fe609a Bug 1666784. Fix qcms fuzz target. r=aosmond
qcms_profile_is_bogus() got changed to take a &mut instead of *mut
and the fuzz target never got updated

Differential Revision: https://phabricator.services.mozilla.com/D91141
2020-09-23 14:57:03 +00:00
Jeff Muizelaar a9b12a7d10 Bug 1666782. Fix GrayAlpha color conversion. r=aosmond
GrayAlpha::has_alpha was accidentally set to false.

Differential Revision: https://phabricator.services.mozilla.com/D91147
2020-09-23 14:52:19 +00:00
Jeff Muizelaar 0f0c9a9a0c Bug 1666057. Convert qcms to rust. r=aosmond
The conversion was done with c2rust and then manually cleaned up some.
There's still lots of unsafe code remaining but I'd rather do the rest
of the cleanup in-tree so that it's easier to catch and revert
regressions.

I've dropped support for SSE1 (Firefox requires SSE2) and Altivec
(not wanting to deal with fixing Rust's Altivec support).

transform_neon.rs manually implements a bunch of intrinsics, this
can be fixed when we can depend on Rust 1.48.

The fuzz target is changed to a cargo-fuzz target.

Some of the gtests are moved to Rust.

Differential Revision: https://phabricator.services.mozilla.com/D90782
2020-09-21 18:40:51 +00:00
Andrew Osmond 5ee82cb26c Bug 1615394 - Add color management support to the BMP decoder. r=tnikkel
This patch adds support for color management in BMPs added in
BITMAPV4HEADER and BITMAPV5HEADER. While display of BMPs is relatively
rare this comes in handy when interacting with the Windows clipboard.

Differential Revision: https://phabricator.services.mozilla.com/D64880

--HG--
extra : moz-landing-system : lando
2020-03-03 14:16:00 +00:00
Dorel Luca 284433eb29 Backed out changeset 388ac5609ceb (bug 1615394) for MinGW build bustage. CLOSED TREE
--HG--
extra : amend_source : cf3cec59ae1efd99b9de0d19b7a09c135138daf5
2020-03-03 13:02:04 +02:00
Andrew Osmond 97a2bca5b9 Bug 1615394 - Add color management support to the BMP decoder. r=tnikkel
This patch adds support for color management in BMPs added in
BITMAPV4HEADER and BITMAPV5HEADER. While display of BMPs is relatively
rare this comes in handy when interacting with the Windows clipboard.

Differential Revision: https://phabricator.services.mozilla.com/D64880

--HG--
extra : moz-landing-system : lando
2020-03-02 23:49:37 +00:00
Andrew Osmond bb4bf3f608 Bug 1600911 - Implement AVX variant of QCMS ICCv2 algorithm. r=jrmuizel
Our performance gtests indicate anywhere from 10-20% reduction in
execution time based on the SSE2 version. Where it fell in the range
depended on the platform, but presumably that is related to the hardware
selected by treeherder. llvm-mca suggested it should be closer to 20%
on modern hardware (skylake).

Differential Revision: https://phabricator.services.mozilla.com/D55642

--HG--
extra : moz-landing-system : lando
2019-12-17 19:22:36 +00:00
Csoregi Natalia c6abd544c4 Backed out changeset 5483da347be3 (bug 1600911) for bustage on transform-avx.cpp. CLOSED TREE 2019-12-13 21:39:14 +02:00
Andrew Osmond 9e59ec2b0d Bug 1600911 - Implement AVX variant of QCMS ICCv2 algorithm. r=jrmuizel
Our performance gtests indicate anywhere from 10-20% reduction in
execution time based on the SSE2 version. Where it fell in the range
depended on the platform, but presumably that is related to the hardware
selected by treeherder. llvm-mca suggested it should be closer to 20%
on modern hardware (skylake).

Differential Revision: https://phabricator.services.mozilla.com/D55642

--HG--
extra : moz-landing-system : lando
2019-12-13 18:26:22 +00:00
Andrew Osmond e6fe246634 Bug 1558883 - Add QCMS transform correctness and performance tests. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D34765
2019-06-25 09:45:56 -04:00
Andrew Osmond 3c03c2b472 Bug 1551844 - Implement NEON variations of QCMS ICCv2 transforms. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D34582
2019-06-14 08:46:20 -04:00
Bogdan Tara e05c286c5f Backed out changeset 331846de4391 (bug 1551844) for ccwn2c08.html and ccwn3p08.html failures a=backout 2019-06-14 12:48:16 +03:00
Andrew Osmond 3334a54347 Bug 1551844 - Implement NEON variations of QCMS ICCv2 transforms. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D34582
2019-06-13 07:55:21 -04:00
Andrew Osmond d8f7e96b8d Bug 1555329 - Fix BGRA support with ICCv4 QCMS profiles. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D33004
2019-05-30 13:21:21 -04:00
Andrew Osmond dbcc53ff29 Bug 1551084 - Part 5. Allow QCMS gray transforms to expand to add alpha. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D30822
2019-05-27 15:44:48 -04:00
Andrew Osmond 1871421d78 Bug 1551084 - Part 4. Add support for BGRA to QCMS. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D30821
2019-05-27 15:44:42 -04:00
Andrew Osmond 811c958f2b Bug 1551084 - Part 3. Use templates to reduce code duplication in QCMS. r=miko
No functional change. This allows us to support both alpha and non-alpha
variants with the same implementation, in addition to laying the ground
work for QCMS to support BGRA as an input and output.

Differential Revision: https://phabricator.services.mozilla.com/D30820
2019-05-27 15:44:32 -04:00
Andrew Osmond e4f8bc1035 Bug 1551084 - Part 2. Make QCMS transform files use C++. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D30819


--HG--
rename : gfx/qcms/transform-altivec.c => gfx/qcms/transform-altivec.cpp
rename : gfx/qcms/transform-sse1.c => gfx/qcms/transform-sse1.cpp
rename : gfx/qcms/transform-sse2.c => gfx/qcms/transform-sse2.cpp
rename : gfx/qcms/transform.c => gfx/qcms/transform.cpp
2019-05-27 15:43:59 -04:00
Andrew Osmond 244d1f67b8 Bug 1551084 - Part 1. Minor reworking of QCMS to allow C files to compile as C++. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D30818
2019-05-27 15:43:59 -04:00
Narcis Beleuzu 5b11cf9cb8 Backed out 5 changesets (bug 1551084) for build bustages on transform.cpp . CLOSED TREE
Backed out changeset af04f8907fab (bug 1551084)
Backed out changeset 2a5ae3eb40ce (bug 1551084)
Backed out changeset 99874bf89419 (bug 1551084)
Backed out changeset d73949bd98e9 (bug 1551084)
Backed out changeset cd1bb23b475a (bug 1551084)

--HG--
rename : gfx/qcms/transform-altivec.cpp => gfx/qcms/transform-altivec.c
rename : gfx/qcms/transform-sse1.cpp => gfx/qcms/transform-sse1.c
rename : gfx/qcms/transform-sse2.cpp => gfx/qcms/transform-sse2.c
rename : gfx/qcms/transform.cpp => gfx/qcms/transform.c
2019-05-27 18:52:34 +03:00
Andrew Osmond 5c3360e51e Bug 1551084 - Part 5. Allow QCMS gray transforms to expand to add alpha. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D30822
2019-05-27 11:16:46 -04:00
Andrew Osmond 8f51499c6d Bug 1551084 - Part 4. Add support for BGRA to QCMS. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D30821
2019-05-27 11:16:46 -04:00
Andrew Osmond b5eed66d2b Bug 1551084 - Part 3. Use templates to reduce code duplication in QCMS. r=miko
No functional change. This allows us to support both alpha and non-alpha
variants with the same implementation, in addition to laying the ground
work for QCMS to support BGRA as an input and output.

Differential Revision: https://phabricator.services.mozilla.com/D30820
2019-05-27 11:16:46 -04:00
Andrew Osmond 803f797714 Bug 1551084 - Part 2. Make QCMS transform files use C++. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D30819


--HG--
rename : gfx/qcms/transform-altivec.c => gfx/qcms/transform-altivec.cpp
rename : gfx/qcms/transform-sse1.c => gfx/qcms/transform-sse1.cpp
rename : gfx/qcms/transform-sse2.c => gfx/qcms/transform-sse2.cpp
rename : gfx/qcms/transform.c => gfx/qcms/transform.cpp
2019-05-27 11:16:46 -04:00
Andrew Osmond 086ae9c208 Bug 1551084 - Part 1. Minor reworking of QCMS to allow C files to compile as C++. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D30818
2019-05-27 11:16:46 -04:00
Mike Hommey ef3ad686ee Bug 1512504 - Remove support for MSVC. r=froydnj
Consequently, this removes:
- MOZ_LIBPRIO, which is now always enabled.
- non_msvc_compiler, which is now always true.
- The cl.py wrapper, since it's not used anymore.
- CL_INCLUDES_PREFIX, which was only used for the cl.py wrapper.
- NONASCII, which was only there to ensure CL_INCLUDES_PREFIX still
  worked in non-ASCII cases.

This however keeps a large part of detecting and configuring for MSVC,
because we still do need it for at least headers, libraries, and midl.

Depends on D19614

Differential Revision: https://phabricator.services.mozilla.com/D19615

--HG--
extra : moz-landing-system : lando
2019-02-14 21:45:27 +00:00
Thomas P. f33c95e66c Bug 1494222: Add source bytes to fix qcms_fuzzer coverage. r=agaynor 2018-10-07 21:21:34 +00:00