Closed Bug 1469116 Opened 6 years ago Closed 6 years ago

Severe performance issues on big-endian Linux systems due to patch 5 of bug #1209812

Categories

(Core :: Graphics, defect, P5)

52 Branch
Other
Linux
defect

Tracking

()

RESOLVED WONTFIX

People

(Reporter: wyattfward, Unassigned)

References

Details

(Whiteboard: [gfx-noted])

Attachments

(2 files)

I have Firefox 52 (and SeaMonkey 2.49.3) on a PowerBook G4 running Debian Sid. What happens: A steady stream of errors are rapidly written to the terminal firefox is invoked from, for the duration of the programs' being run. This causes a severe performance drop as the terminal has to print out all of the errors. Additionally, it _may_ be responsible for visible graphical issues (though I have yet to find any): Crash Annotation GraphicsCriticalError: |[0][GFX1]: Unknown image format 1 (t=39.3687) [GFX1]: Unknown image format 1 Crash Annotation GraphicsCriticalError: |[0][GFX1]: Unknown image format 1 (t=39.3687) |[1][GFX1]: Unknown image format 0 (t=39.4296) [GFX1]: Unknown image format 0 Crash Annotation GraphicsCriticalError: |[0][GFX1]: Unknown image format 1 (t=39.3687) |[1][GFX1]: Unknown image format 0 (t=39.4296) |[2][GFX1]: Unknown image format 0 (t=39.4374) [GFX1]: Unknown image format 0 Crash Annotation GraphicsCriticalError: |[0][GFX1]: Unknown image format 1 (t=39.3687) |[1][GFX1]: Unknown image format 0 (t=39.4296) |[2][GFX1]: Unknown image format 0 (t=39.4374) |[3][GFX1]: Unknown image format 0 (t=39.4385) [GFX1]: Unknown image format 0 ...and so on until i close the program. The program appears to function properly besides these messages, but at a severe performance penalty. It appears that in the process of completing bug #1209812, a mistake was made and we accidentally worried about endian-ness somewhere we didn't need to. My patch (attached) appears to fix the problem. This bug is also reported in the Debian project as #901644: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901644 I do not believe I have reported a bug to Mozilla before, so I hope I'm doing this right. I tried to ask on #developers IRC, but got no replies to my questions about submitting reports so I decided to go ahead. I am tempted to mark this bug as higher than normal severity, but since PowerPC and HP-PA and other big endian architectures are currently not first-tier, I was hesitant to do so.
Full disclosure: I believe I found a similar patch originally from a Sparc64 or HP-PA user on some other site (maybe launchpad?) - but I cannot figure out where that was anymore. He claimed that the patched version worked on both his amd64 machines and his SPARC one.
Blocks: 1209812
Component: Untriaged → Graphics
Flags: needinfo?(n.nethercote)
Product: Firefox → Core
Comment on attachment 8985753 [details] [diff] [review] bigEndianFix-gfx-2d-Types.patch Review of attachment 8985753 [details] [diff] [review]: ----------------------------------------------------------------- Thank you for the bug report and patch. I admit the details of this stuff have fallen out of my head somewhat in the intervening 2.5 years. Also, I'm not a graphics module peer so I shouldn't review this. Nical: you reviewed this patch originally, can you take a look at this? https://hg.mozilla.org/integration/mozilla-inbound/rev/aa15cfe46e9cee89c0bca5a46c0d7ff4c0230f8b is the original patch. Thank you.
Attachment #8985753 - Flags: review?(nical.bugzilla)
Flags: needinfo?(n.nethercote)
If it helps any in getting this bug fixed, I'd like to let everyone without access to a big-endian machine know that I'm watching this bug and ready to try whatever's useful and report back with results. I can make builds, run them, make video recordings, or anything else that might be handy. I could also share my build configuration, if that would be helpful for any reason. It'd be a shame to see this end up like bug #998749 and others, where a patch was available but it was forgotten about due to being a tier 3 platform. I'm ready to help however I can.
(Sorry for double-posting.) I can also meet on IRC or similar for faster discussion, if that would be more useful.
Comment on attachment 8985753 [details] [diff] [review] bigEndianFix-gfx-2d-Types.patch I think that Lee has a clearer picture of the endianness stuff than I.
Attachment #8985753 - Flags: review?(nical.bugzilla) → review?(lsalzman)
Comment on attachment 8985753 [details] [diff] [review] bigEndianFix-gfx-2d-Types.patch This patch would break the intended meaning of the _UINT32 formats outside of Moz2D. B8G8R8A8 and A8R8G8B8 represent byte order (except inside Moz2D), and the _UINT32 variants represent bit shifts, so the alternate definitions are required.
Attachment #8985753 - Flags: review?(lsalzman) → review-
The problem arises from the fact that you are using the Cairo content backend, which we really don't support anymore. Please use the Skia content backend instead, which is actually the default on 52 ESR. If necessary, there is a patch in bug 1144632 to make this work on big-endian.
See Also: → 1144632
Lee: Hm, well in about:config, "gfx.canvas.azure.backends" is set to "skia". Isn't this all I need to use Skia?
Additional note - this happens in the Debian Sid builds of firefox, too, with fresh profiles. So unless Debian is packaging it with cairo instead of Skia, I suspect that it's not a Cairo thing.
(In reply to Wyatt Ward from comment #9) > Additional note - this happens in the Debian Sid builds of firefox, too, > with fresh profiles. So unless Debian is packaging it with cairo instead of > Skia, I suspect that it's not a Cairo thing. Could you please attach the graphics section from "about:support"? That would help diagnose.
Flags: needinfo?(wyattfward)
Priority: -- → P5
Whiteboard: [gfx-noted]
Firefox has been crashing (the error message builds longer and longer until it runs out of memory, I think) pretty quickly upon starting it without my patch, so I've been having trouble getting that screen attached. I got it today though. It appears that it is using cairo - I have no idea why, though. This is the official Debian Sid package. { "application": { "name": "Firefox", "osVersion": "Linux 4.16.0-2-powerpc", "version": "52.0.2", "buildID": "20170401214539", "userAgent": "Mozilla/5.0 (X11; Linux ppc; rv:52.0) Gecko/20100101 Firefox/52.0", "safeMode": false, "supportURL": "https://support.mozilla.org/1/firefox/52.0.2/Linux/en-US/", "numTotalWindows": 1, "numRemoteWindows": 0, "remoteAutoStart": false, "autoStartStatus": 2 }, "graphics": { "numTotalWindows": 1, "numAcceleratedWindows": 0, "windowLayerManagerType": "Basic", "windowLayerManagerRemote": true, "supportsHardwareH264": "No", "currentAudioBackend": "pulse", "numAcceleratedWindowsMessage": [ "" ], "adapterDescription": "X.Org R300 Project -- ATI RV350", "adapterVendorID": "X.Org R300 Project", "adapterDeviceID": "ATI RV350", "adapterRAM": "", "adapterDrivers": "", "driverVersion": "2.1 Mesa 18.0.5", "driverDate": "", "webglRenderer": "X.Org R300 Project -- ATI RV350", "webgl2Renderer": "WebGL creation failed: \n* Error during native OpenGL init.\n* Error during native OpenGL init.\n* Error during native OpenGL init.\n* Error during native OpenGL init.\n* Error during native OpenGL init.\n* Exhausted GL driver caps.\n* Exhausted GL driver options.", "info": { "AzureCanvasBackend": "cairo", "AzureCanvasAccelerated": 0, "AzureFallbackCanvasBackend": "none", "AzureContentBackend": "cairo", "CairoUseXRender": 0 }, "failures": [ "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 0", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 0", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 0", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 1", "[GFX1]: Unknown image format 1" ], "indices": [ 0, 181, 182, 183, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180 ], "featureLog": { "features": [ { "name": "HW_COMPOSITING", "description": "Compositing", "status": "blocked", "log": [ { "type": "default", "status": "blocked", "message": "Acceleration blocked by platform" } ] }, { "name": "OPENGL_COMPOSITING", "description": "OpenGL Compositing", "status": "unavailable", "log": [ { "type": "default", "status": "unavailable", "message": "Hardware compositing is disabled" } ] } ], "fallbacks": [] }, "crashGuards": [] } }
Flags: needinfo?(wyattfward)
(In reply to Lee Salzman [:lsalzman] from comment #7) > The problem arises from the fact that you are using the Cairo content > backend, which we really don't support anymore. Please use the Skia content > backend instead, which is actually the default on 52 ESR. If necessary, > there is a patch in bug 1144632 to make this work on big-endian. I can't get that patch in 114632 to apply to the FF 52 tree. It looks like Skia has been significantly revamped in between 52 and 62, and that patch simply gets rejected.
I'm going to be out of the country for the next week or so, so I might not be able to reply to bug reports from this coming wednesday until sometime a week or two out.
Can you try this patch? It should apply against 52 ESR.
Flags: needinfo?(wyattfward)
ESR 52 isn't maintained anymore. closing.
Status: UNCONFIRMED → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
Flags: needinfo?(wyattfward)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: