Waterfox icon indicating copy to clipboard operation
Waterfox copied to clipboard

G6 crashes at launch on Windows 7 x64

Open sergeevabc opened this issue 8 months ago • 6 comments

What happened?

G5.1.13 notified me about G6 update and applied it, then I got a crash upon launch. So I reinstalled 5.1.13 and disabled automatic updates. Also I tried to install G6.0.4 inside a Sandboxie environment to prevent any interference and got the same crash.

Hardware is Core 2 Duo T7250 + 4 GB RAM, OS is Windows 7 x64.

Reproducible?

  • [ ] I have checked that this issue cannot be reproduced on Mozilla Firefox.

Version

G6

What platform are you seeing the problem on?

Windows

Relevant log output

No response

sergeevabc avatar Oct 12 '23 02:10 sergeevabc

Hello everyone, hello Alex!

I also experiment the same app crash (Win 7 x64, Core 2 Quad Q6600, SSE3+SSSE3, no SSE4, 8 GB RAM).

I tried G6.0b1, G6.0.3 and G6.0.4 and it may be related to "mozglue.dll" (or some WF modules related to it)...

Here is the log for G6.0b1:

Nom de l’application défaillante waterfox.exe, version : 115.1.0.8607, horodatage : 0x64c13c0c Nom du module défaillant : mozglue.dll, version : 115.1.0.8607, horodatage : 0x64c13bef Code d’exception : 0xc000001d Décalage d’erreur : 0x0000000000048181 ID du processus défaillant : 0x3bd0 Heure de début de l’application défaillante : 0x01da015a3dd95b42 Chemin d’accès de l’application défaillante : C:\Program Files\Waterfox\waterfox.exe Chemin d’accès du module défaillant: C:\Program Files\Waterfox\mozglue.dll ID de rapport : 7c4f151e-6d4d-11ee-83a6-14dae9947c56

And the log for G6.0.4:

Nom de l’application défaillante waterfox.exe, version : 115.4.0.8683, horodatage : 0x6525312d Nom du module défaillant : mozglue.dll, version : 115.4.0.8683, horodatage : 0x652530fe Code d’exception : 0xc000001d Décalage d’erreur : 0x000000000002bae0 ID du processus défaillant : 0x213c Heure de début de l’application défaillante : 0x01da015aa71eaead Chemin d’accès de l’application défaillante : C:\Program Files\Waterfox\waterfox.exe Chemin d’accès du module défaillant: C:\Program Files\Waterfox\mozglue.dll ID de rapport : e4d75753-6d4d-11ee-83a6-14dae9947c56

So, there may be something in the build that is no more compatible with Win 7 (for example: Python 3.9+, but I don't know if WF uses it)...

If no fix can be made, such as no more Win 7 support for some build modules or the need of SSE4.1 that only some late Core 2 CPUs did support (Core 2 family never supported SSE 4.2, this support started with the Core i family), maybe update the Minimum System Requirements on the Download page for the G6 family?

By the way, Waterfox G5.1.13 runs very well...

EDIT: I just tried Firefox 115.3.1 ESR and it also works fine (mozglue.dll is v115.3.1.8670)... But I think that this ESR version still requires only SSE2, as lots of previous FF releases, because I can also run it on an old AMD Phenom II X4 955 BE (SSE3, no SSSE3, no SSE4.x), also with Win 7 x64.

Best regards, Johan

JohanPirlouit avatar Oct 18 '23 00:10 JohanPirlouit

I believe G6 crash is related not to OS (Windows 7), but to required CPU features. For example, my CPU is Core 2 Duo T7250. It supports MMX, SSE, SSE2, SSE3, SSSE3, EM64T, VT-x instructions, but does not support AVX and SSE41.

2023-1210-1157 cpuz

Now, let's check what Waterfox G6 requires:

$ elfx86exts.exe waterfox.exe
File format and CPU architecture: Pe, X86_64
MODE64 (push)
SSE1 (xorps)
CMOV (cmovae)
SSE2 (pcmpeqd)
SSE41 (pcmpeqq)
AVX (vmovd)
AVX2 (vpcmpeqw)
NOVLX (vpcmpeqw)
BMI (tzcnt)
Instruction set extensions used:
AVX, AVX2, BMI, CMOV, MODE64, NOVLX, SSE1, SSE2, SSE41     <--- ! ! !
CPU Generation: Unknown

Bottom line: to make G6 accessible to a broader audience with CPUs like mine the developer has to change not the code of the browser, but how it is compiled, the very command used during compilation.

For example, IceCat (FF 115 based fork) requires SSE2 only, that's why it works fine.

sergeevabc avatar Dec 10 '23 18:12 sergeevabc

Now, let's check what Waterfox G6 requires:

$ elfx86exts.exe waterfox.exe
File format and CPU architecture: Pe, X86_64
MODE64 (push)
SSE1 (xorps)
CMOV (cmovae)
SSE2 (pcmpeqd)
SSE41 (pcmpeqq)
AVX (vmovd)
AVX2 (vpcmpeqw)
NOVLX (vpcmpeqw)
BMI (tzcnt)
Instruction set extensions used:
AVX, AVX2, BMI, CMOV, MODE64, NOVLX, SSE1, SSE2, SSE41     <--- ! ! !
CPU Generation: Unknown

Bottom line: to make G6 accessible to a broader audience with CPUs like mine the developer has to change not the code of the browser, but how it is compiled, the very command used during compilation.

Hi, thank you for your answer, that's what I finally though... And I understand the bottom line ;) ....

So, for Intel Core family CPUs, it is not that easy.. Here is the support of the SSE4.1 Instruction set:

  • SSE4.1 is NOT supported by the 65 nm family > Conroe, Allendale, Merom, Kentsfield, Woodcrest, Clovertown and Tigerton.
  • SSE4.1 IS supported by the 45 nm family > Penryn, Wolfdale, Yorkfield and Harpertown.

By the way, SSE4.2 is not supported until the Core i "Nehalem" microarchitecture.

For AMD it is a bit simpler : neither SSSE3 nor SSE4.x are supported until the "heavy machines" microarchitectures based CPUs that start with Bulldozer. Like they did with the 3Dnow! set, AMD made the SSE4A set for the K10 family (Phenom / Phenom II based CPUs)... It is a very small instruction set and it seems that nobody cares of it...

The AVX set is supported starting with the Intel Sandy Bridge family and the AMD Bulldozer family.

And for AVX2, though it is not supported before the Intel Haswell family and AMD Excavator, I know that WF G6 works fine on a Sandy Bridge Core i5 2500K and Windows 7... But I don't know the exact version of WF G6...

Best regards, Johan

JohanPirlouit avatar Dec 11 '23 05:12 JohanPirlouit

Dear developer, if you're even looking here, when will you compile Waterfox G6 for all Windows 7 users, not just those with modern AVX/SSE4.1 processors?

sergeevabc avatar Feb 11 '24 12:02 sergeevabc

AVX does not seem to be a strict requirement for G6, but SSE4.1 definitely is. I ran into this same issue on a Core2 Duo E4600, and since I've upgraded to an E8600, G6 runs just fine despite the lack of AVX.

TruthInFiction avatar Apr 04 '24 23:04 TruthInFiction

Hi all,

For the next "big" release, I'll look back into dropping the minimum CPU requirements assuming there's not a drop in performance for the general pop.

For the layman's overview:

Imagine your computer's processor is like a toolbox.

When the app is built, it's like choosing the right tools for the job. The march=penryn (Penryn being the code name of Intel CPU from the past) flag was like saying "use this basic set of tools." These tools are guaranteed to be in almost any toolbox (processor). The mtune=skylake flag was like saying "but also use these newer, more advanced tools if available." These fancy tools might not be in older toolboxes (processors). In the past, some users didn't have the 'SSE4.1' tool (needed by 'march=penryn'). This meant they couldn't use the app at all.

So, for the next release, we're keeping the 'mtune=skylake' (advanced tools) for those who have them. This way, people with newer processors can still benefit from the extra speed.

But we're dropping the 'march=penryn' requirement (basic tools). This means the app should work for most users, even if they don't have the fancy new tools. They might not get the top speed, but they'll still be able to use the app.

Overall, this change should allow more people to use the app, while still giving a speed boost to those with newer processors.

This all comes with a caveat: if there's a noticeable drop in performance, then we can't approach it this way. BUT, if there isn't, then we're all good to do so.

In an ideal world, the installer and updater download the appropriately optimised version, so everyone wins with no compromise, but the infrastructure and upkeep for that would be quite hefty!

MrAlex94 avatar Apr 09 '24 21:04 MrAlex94