Closed
Bug 967300
Opened 10 years ago
Closed 9 years ago
Use atomics with gcc in cairo
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
FIXED
mozilla39
Tracking | Status | |
---|---|---|
firefox39 | --- | fixed |
People
(Reporter: jrmuizel, Unassigned)
References
Details
Attachments
(1 file, 2 obsolete files)
1.94 KB,
patch
|
mshal
:
review+
|
Details | Diff | Splinter Review |
This was an oversight.
Attachment #8369726 -
Flags: review?(mshal)
Comment 1•10 years ago
|
||
Comment on attachment 8369726 [details] [diff] [review] Use atomics with gcc in cairo jmuizelaar and I chatted on IRC a few days ago - this patch fails to compile due to the fact that the HAVE_INTEL_ATOMIC_PRIMITIVES code patch relies on SIZEOF_VOID_P, SIZEOF_INT, etc, which normally would come from cairo's configure script. One way to fix this would be to add the AC_CHECK_SIZEOF(void *) checks to the top-level configure.in, and then the defines would be picked up by cairo from mozilla-config.h. glandium: Is that an acceptible place for those? Or is there a better way to define them locally under the gfx/cairo tree?
Attachment #8369726 -
Flags: review?(mshal) → review-
Flags: needinfo?(mh+mozilla)
Comment 2•10 years ago
|
||
There's probably nothing better to do at the moment.
Flags: needinfo?(mh+mozilla)
FWIW: If we have #define HAVE_STDINT_H 1 #define HAVE_UINT64_T 1 in cairo/src/cairoint.h and cairo/cairo/src/cairo.h, we will save the call of cairo_int32x32_64_mul(), etc. It will improve performance a little bit. Probably should file another bug, but maybe we will fix it together.
Comment 4•9 years ago
|
||
This is just Jeff's original patch + the modifications suggested by mshal and reluctantly affirmed by glandium. A local build seems to confirm everything works.
Attachment #8549862 -
Flags: review?(mshal)
Comment 5•9 years ago
|
||
(In reply to Nathan Froyd [:froydnj] [:nfroyd] from comment #4) > Created attachment 8549862 [details] [diff] [review] > enable cairo's atomic support on gcc-esque compilers > > This is just Jeff's original patch + the modifications suggested by mshal and > reluctantly affirmed by glandium. A local build seems to confirm everything > works. ...well, it would have if tree-wide builds worked correctly. Looks like some media/mtransport/ goop magically triggers things off our shiny new AC_CHECK_SIZEOF results. Sigh.
Comment 6•9 years ago
|
||
Here's a better version of the patch that doesn't require running programs at configure time to determine the sizes of fundamental datatypes.
Attachment #8369726 -
Attachment is obsolete: true
Attachment #8549862 -
Attachment is obsolete: true
Attachment #8549862 -
Flags: review?(mshal)
Attachment #8549873 -
Flags: review?(mshal)
Comment 7•9 years ago
|
||
Seems sort of busted that we'll have this enabled on Linux and Mac, but not Windows...or am I ignorant about how our gfx setup works? Can we import a patch from upstream or write basic Windows-only atomic ops support?
Flags: needinfo?(jmuizelaar)
Reporter | ||
Comment 9•9 years ago
|
||
I'll write and upstream a windows implementation.
Flags: needinfo?(jmuizelaar)
Updated•9 years ago
|
Attachment #8549873 -
Flags: review?(mshal) → review+
https://hg.mozilla.org/mozilla-central/rev/70aa258394bf
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla38
Reporter | ||
Comment 11•9 years ago
|
||
This has been backed out. https://hg.mozilla.org/mozilla-central/rev/dc194ba77d7f
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment 12•9 years ago
|
||
Jeff, have you been able to look at why this causes performance regressions?
Flags: needinfo?(jmuizelaar)
Reporter | ||
Comment 13•9 years ago
|
||
Unfortunately, not yet. Let me do some sample try pushes to try to narrow things down.
Flags: needinfo?(jmuizelaar)
Reporter | ||
Comment 14•9 years ago
|
||
Before: https://treeherder.mozilla.org/#/jobs?repo=try&revision=bcc5f4aa1198 After: https://treeherder.mozilla.org/#/jobs?repo=try&revision=a394c5ce3a4c Everything but image-surface disabled: https://treeherder.mozilla.org/#/jobs?repo=try&revision=4e708c51709c Everything disabled: https://treeherder.mozilla.org/#/jobs?repo=try&revision=904cdcf39cbe image-surface disabled: https://treeherder.mozilla.org/#/jobs?repo=try&revision=7510cf422a89
Reporter | ||
Comment 15•9 years ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #14) > Everything disabled: > https://treeherder.mozilla.org/#/jobs?repo=try&revision=904cdcf39cbe https://treeherder.mozilla.org/#/jobs?repo=try&revision=51d7da1259ca
Reporter | ||
Comment 16•9 years ago
|
||
It looks like the performance regression wasn't actually a regression. I've relanded: https://hg.mozilla.org/integration/mozilla-inbound/rev/604003669a62
https://hg.mozilla.org/mozilla-central/rev/604003669a62
Status: REOPENED → RESOLVED
Closed: 9 years ago → 9 years ago
status-firefox39:
--- → fixed
Resolution: --- → FIXED
Target Milestone: mozilla38 → mozilla39
You need to log in
before you can comment on or make changes to this bug.
Description
•