Defaulting to AVX for 64-bit architectures?

Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.

This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.

Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.

What instruction set should be the minimum for Pale Moon going forward?

Poll ended at 2024-03-09, 15:33

Keep it as-is (SSE2 or later)
18
33%
AVX (Bulldozer/AMD FX/Intel Sandy Bridge)
19
35%
AVX2 (Excavator/Zen/Haswell/Core i3/5/7)
15
27%
Just show me the results
3
5%
 
Total votes: 55

User avatar
athenian200
Contributing developer
Contributing developer
Posts: 1537
Joined: 2018-10-28, 19:56
Location: Georgia

Re: Defaulting to AVX for 64-bit architectures?

Unread post by athenian200 » 2024-03-07, 18:55

ptribble wrote:
2024-03-07, 18:40
I presume that keeping to an SSE2 baseline wouldn't invalidate status as an official build?

For Tribblix, I would do just that. I know that I have users on relatively old, but still fairly capable, hardware. And in general I would try and avoid being in the situation where the OS itself would work happily on a wide range of hardware (we require 64-bit, nothing more specific than that) but a key application wouldn't.

In terms of Linux distributions, my recollection is that Ubuntu is using x86-64-v1 as a baseline, RHEL and SLES are currently x86-64-v2, withe RHEL10 mooted as x86-64-v3. So adding an AVX requirement (which means x86-64-v3) means that you're shipping something that has more stringent requirements than the OS underneath. (And, in terms of Microarchitecture Levels, AVX and AVX2 come together.) That's my perspective, but as I'm not a Linux user I have no skin in the game at all.
I think the discussion is mostly about how we'll ship the official Windows and Linux builds, I don't think it really matters as much if you're building for your own OS. I would agree with you that I don't think moving the illumos builds to AVX makes much sense, because the average illumos user has even older hardware than the average Linux user... like, the one guy in the thread who turned out to be using my illumos builds was actually the one who had a Pentium D, I think that says it all.

Also, we actually aren't doing x86-64-v3, because that would include AVX2. We're basically doing x86-64-v2 plus AVX, which means stuff like Sandy Bridge and Bulldozer would still be compatible with Pale Moon, but something like Nehalem wouldn't be. You see, MSVC doesn't care about Intel's official microarchitecture levels, and lets us target AVX as basically v2 plus AVX, and AVX2 as v3, and then doesn't provide a way to target v2 by itself at all except via undocumented flags. Moonchild primarily runs Windows and doesn't know how seriously people take Intel's microarchitecture levels on other platforms, and how people on Linux or other Unix systems think of AVX and AVX2 as such a package deal that most of them wouldn't even consider targeting the Sandy Bridge/Bulldozer level specifically.

AVX2 would be unacceptable to the community because too many people here still have Bulldozer/Sandy Bridge era hardware, but there aren't enough people on hardware earlier than that to hold things back from going with plain AVX. That's what I gathered from the poll data.

This thread about my e-mail client contains a summary up the weird mismatch between default MSVC optimization levels and default GCC optimizations levels, and why this thread's perspective on the issue likely seems so alien to Unix/Linux people:

viewtopic.php?p=249393#p249393
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35652
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Moonchild » 2024-03-08, 11:12

ptribble wrote:
2024-03-07, 18:40
I presume that keeping to an SSE2 baseline wouldn't invalidate status as an official build?
As always, if you build from source for your own distro/target platform, you always have the freedom to build specifically optimized for the platform, especially if more niche. I consider that kind of part of the redist license section 8/8a exception, although a note alongside the build letting users know the build configuration differs from official binary distributions (and the posted system requirements on the main site not applying) is requested in that case. Just be transparent about it if you deviate from what we'd be doing and you're redistributing the browser. I also didn't expect solaris/illumos to follow a move to AVX because of the implied use of much older hardware there - same rule applies: add a note and be transparent, and you're good.

I'll update the redist licence to reflect this when we move to AVX (I'm not rushing this, by the way. This discussion needed to happen, though, and better sooner than later) but for now consider this post my extemporaneous guideline for building official on targeted OSes.

For larger distros that aren't specifically catering to old hardware, I don't want to make this exception though - they can still provide community builds alongside AVX builds as-desired but mainline should follow our mainline, to keep the browser offerings uniform in expectation as much as possible for the vast majority of our audience.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
LuftWafflePilot
Fanatic
Fanatic
Posts: 225
Joined: 2021-02-19, 20:46

Re: Defaulting to AVX for 64-bit architectures?

Unread post by LuftWafflePilot » 2024-03-08, 17:28

My completely amateur opinion:
If you can't afford a PC newer than 13 years old (or what was the year first AVX-capable CPUs were released?) OR if you are a hippie who refuses to upgrade to a PC newer than 13 years old, you should go build your own damn PM with ancient junk support and leave the present be.

If the browser sticks with ancient technology, it will become ancient, and it's already a niche product as it is.
Sometimes there should be no polls, I think.

User avatar
R3n_001
Moonbather
Moonbather
Posts: 66
Joined: 2019-05-25, 20:39

Re: Defaulting to AVX for 64-bit architectures?

Unread post by R3n_001 » 2024-03-08, 18:05

LuftWafflePilot wrote:
2024-03-08, 17:28
If the browser sticks with ancient technology, it will become ancient
You could say that already. Firefox 52 fork with old GUI.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35652
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Moonchild » 2024-03-08, 18:16

R3n_001 wrote:
2024-03-08, 18:05
You could say that already. Firefox 52 fork with old GUI.
You could also say that Firefox is a Netscape fork with a bloated GUI. Or that everyone must love Windows 11 because of its new look or be irrelevant, or... ;)
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
R3n_001
Moonbather
Moonbather
Posts: 66
Joined: 2019-05-25, 20:39

Re: Defaulting to AVX for 64-bit architectures?

Unread post by R3n_001 » 2024-03-08, 18:24

Moonchild wrote:
2024-03-08, 18:16
You could also say that Firefox is a Netscape fork with a bloated GUI. Or that everyone must love Windows 11 because of its new look or be irrelevant, or... ;)
I guess looking back at my post, I probably should have worded that better. The current wording does makes sense if taken as making fun of the statement, but there's not really much that makes it look like that.

I do like the old PM GUI mostly in how themeable it is. Also it looks better than current Firefox with floating tabs and such. Old GUIs always look better. I also use Windows 7 and 8.1 (themed)

User avatar
billmcct
Keeps coming back
Keeps coming back
Posts: 959
Joined: 2012-09-04, 15:19
Location: Costa Rica & Union City Georgia USA

Re: Defaulting to AVX for 64-bit architectures?

Unread post by billmcct » 2024-03-08, 18:36

LuftWafflePilot wrote:
2024-03-08, 17:28
If the browser sticks with ancient technology, it will become ancient, and it's already a niche product as it is.
Sometimes there should be no polls, I think.
Dude, it's already sticking with ancient technology namely "XUL" and as far as I know that's never going to change.
--------------------------------------------------------------------------------------------------------------
The difference between the Impossible and the Possible lies in a man's Determination.
Tommy Lasorda

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35652
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Moonchild » 2024-03-08, 18:43

LuftWafflePilot wrote:
2024-03-08, 17:28
Sometimes there should be no polls, I think.
This wasn't one of those times though. Everyone has now taken a look at this, things got discussed, ideas tossed around. Isn't that what collaboration means?
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
LuftWafflePilot
Fanatic
Fanatic
Posts: 225
Joined: 2021-02-19, 20:46

Re: Defaulting to AVX for 64-bit architectures?

Unread post by LuftWafflePilot » 2024-03-08, 18:51

Moonchild wrote:
2024-03-08, 18:43
LuftWafflePilot wrote:
2024-03-08, 17:28
Sometimes there should be no polls, I think.
This wasn't one of those times though. Everyone has now taken a look at this, things got discussed, ideas tossed around. Isn't that what collaboration means?
Not when it goes against improvement :D

User avatar
athenian200
Contributing developer
Contributing developer
Posts: 1537
Joined: 2018-10-28, 19:56
Location: Georgia

Re: Defaulting to AVX for 64-bit architectures?

Unread post by athenian200 » 2024-03-08, 19:53

billmcct wrote:
2024-03-08, 18:36
Dude, it's already sticking with ancient technology namely "XUL" and as far as I know that's never going to change.
Well, our version of XUL will evolve with the browser over time. But that doesn't mean we're planning to "stick with ancient technology" on other fronts... if that were the case, we'd still build exclusively with GTK2 and support Windows XP. Probably wouldn't even bother with 64-bit builds in the first place, everything would be 32-bit forever, because 4GB ought to be enough for anyone, or something...

Kind of worries me that people have that expectation of the browser, honestly... it's like they don't want us to move forward at all and get offended when we do, just because we support one thing that is viewed as "legacy."

That said, I do sympathize more with people stuck on older hardware, than I do with people who insist on support for EOL operating systems or toolkits.
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind

User avatar
Massacre
Moon lover
Moon lover
Posts: 95
Joined: 2020-05-01, 13:16

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Massacre » 2024-03-08, 20:03

LuftWafflePilot wrote:
2024-03-08, 17:28
Not when it goes against improvement :D
Not much improvement but forced incompatibility with still viable hardware, including one that supports much more RAM than a 32-bit system can. It sounds more like Windows 11.

User avatar
Massacre
Moon lover
Moon lover
Posts: 95
Joined: 2020-05-01, 13:16

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Massacre » 2024-03-08, 20:08

Moonchild wrote:
2024-03-08, 18:16
You could also say that Firefox is a Netscape fork with a bloated GUI. Or that everyone must love Windows 11 because of its new look or be irrelevant, or... ;)
Well, that GUI is indeed JS-based...

User avatar
R3n_001
Moonbather
Moonbather
Posts: 66
Joined: 2019-05-25, 20:39

Re: Defaulting to AVX for 64-bit architectures?

Unread post by R3n_001 » 2024-03-08, 20:17

athenian200 wrote:
2024-03-08, 19:53
That said, I do sympathize more with people stuck on older hardware, than I do with people who insist on support for EOL operating systems or toolkits.
Well Windows 10+ is garbage, and Linux is not a viable alternative. There is no one defined Linux and compatibility suffers for it. If there was one defined Linux and everyone worked together to make things just work, then it could be viable. People who want their computer to just work without going to baby mode macOS are only really left with Windows pre-10 until BSD or whatever gets good enough to rival it. Pale Moon had no real reason to drop XP. It was even based off of the last version for XP. That's why the entire situation happened in the first place. I know people who use XP forks even on 7+ because of the entire situation.

AVX gives an actually tangible improvement, even without testing I believe it can here since it's been proven to benefit elsewhere. Switching to AVX can make sense. While basic supporting code for xyz thing has no measurable difference included or not.

User avatar
billmcct
Keeps coming back
Keeps coming back
Posts: 959
Joined: 2012-09-04, 15:19
Location: Costa Rica & Union City Georgia USA

Re: Defaulting to AVX for 64-bit architectures?

Unread post by billmcct » 2024-03-08, 20:17

athenian200 wrote:
2024-03-08, 19:53
Kind of worries me that people have that expectation of the browser, honestly... it's like they don't want us to move forward at all and get offended when we do, just because we support one thing that is viewed as "legacy."
I'm all for advancement. I am also more then happy running the x32 version so whatever MC decides has no direct effect on me. This laptop I'm using right now I've had over 12 years now and it's like Old Faithful. I could also order a top of the line Alienware, my only problem would be trying to get Win 7 or even 8.1 to run on it.
If that fails I could probably get used to Win 10 LTSB 2016 since it has a more similar look as Win 7 and supports DotNet 4.8.
--------------------------------------------------------------------------------------------------------------
The difference between the Impossible and the Possible lies in a man's Determination.
Tommy Lasorda

User avatar
Massacre
Moon lover
Moon lover
Posts: 95
Joined: 2020-05-01, 13:16

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Massacre » 2024-03-08, 20:21

billmcct wrote:
2024-03-08, 20:17
[If that fails I could probably get used to Win 10 LTSB 2016 since it has a more similar look as Win 7 and supports DotNet 4.8.
If you must use Win10, try the latest LTSC instead, because many software refuse to work on very old WIn10 builds.

User avatar
billmcct
Keeps coming back
Keeps coming back
Posts: 959
Joined: 2012-09-04, 15:19
Location: Costa Rica & Union City Georgia USA

Re: Defaulting to AVX for 64-bit architectures?

Unread post by billmcct » 2024-03-08, 20:27

Massacre wrote:
2024-03-08, 20:21
billmcct wrote:
2024-03-08, 20:17
[If that fails I could probably get used to Win 10 LTSB 2016 since it has a more similar look as Win 7 and supports DotNet 4.8.
If you must use Win10, try the latest LTSC instead, because many software refuse to work on very old WIn10 builds.
At one time I was using Enterprise LTSC in a VM however it got corrupted and I just said to hell with Win 10.
--------------------------------------------------------------------------------------------------------------
The difference between the Impossible and the Possible lies in a man's Determination.
Tommy Lasorda

User avatar
R3n_001
Moonbather
Moonbather
Posts: 66
Joined: 2019-05-25, 20:39

Re: Defaulting to AVX for 64-bit architectures?

Unread post by R3n_001 » 2024-03-08, 20:28

billmcct wrote:
2024-03-08, 20:17
I could also order a top of the line Alienware, my only problem would be trying to get Win 7 or even 8.1 to run on it.
If that fails I could probably get used to Win 10 LTSB 2016 since it has a more similar look as Win 7 and supports DotNet 4.8.
I would be curious if a top of the line P15G2 could work with 7 or 8.1. The basic hardware should work, and Optimus can be disabled. Chances are if there a modern fast laptop could work, it would be that one. Technically P16G1 can also work, but 12th gen latency sucks, and it's missing basic features like the network RJ45 in a professional business laptop like wtf.

User avatar
andyprough
Keeps coming back
Keeps coming back
Posts: 752
Joined: 2020-05-31, 04:33

Re: Defaulting to AVX for 64-bit architectures?

Unread post by andyprough » 2024-03-08, 20:28

billmcct wrote:
2024-03-08, 18:36
Dude, it's already sticking with ancient technology namely "XUL" and as far as I know that's never going to change.
Isn't XUL just a user interface markup language? It seems like if someone is calling XUL "ancient", then pretty much everything that isn't something written entirely in Rust or in Zig in the past 2 years is ancient. So nearly every program in use is ancient by that standard. C++ will turn 40 years old this year.

User avatar
Nuck-TH
Project Contributor
Project Contributor
Posts: 204
Joined: 2020-03-02, 16:04

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Nuck-TH » 2024-03-08, 20:44

R3n_001 wrote:
2024-03-08, 20:17
Pale Moon had no real reason to drop XP. It was even based off of the last version for XP. That's why the entire situation happened in the first place. I know people who use XP forks even on 7+ because of the entire situation.
Off-topic:
It did. NT5 inner workings are significantly different from NT6(and that is also different from NT6.1+(Windows 7 and up)) in many places like thread management, graphics output, hardware accelerated rendering and accelerated video decoding. Supporting three different versions of code(not counting ones for linux and other systems, mind you!) was starting to be troublesome, so Vista and XP support was dropped, not in the least because it is for a long time not safe to use them in network interaction with outside world because they don't receive security updates.

I, for one, while able to admire nostaligia value and resource lighweightness, don't think that XP is that great of a system in comparison with say 7. It's security is very lacking(in part thanks to big inconvenience of using non-administartor user account) and, at least in my experience, it is much more fragile when used by anyone lesser that power user. I had to reinstall it several times in span of two years before i installed 7. That one works fine to this day(which lasts 12 years and counting).

User avatar
R3n_001
Moonbather
Moonbather
Posts: 66
Joined: 2019-05-25, 20:39

Re: Defaulting to AVX for 64-bit architectures?

Unread post by R3n_001 » 2024-03-08, 21:35

Nuck-TH wrote:
2024-03-08, 20:44
Off-topic:
It did. NT5 inner workings are significantly different from NT6(and that is also different from NT6.1+(Windows 7 and up)) in many places like thread management, graphics output, hardware accelerated rendering and accelerated video decoding. Supporting three different versions of code(not counting ones for linux and other systems, mind you!) was starting to be troublesome, so Vista and XP support was dropped, not in the least because it is for a long time not safe to use them in network interaction with outside world because they don't receive security updates.

I, for one, while able to admire nostaligia value and resource lighweightness, don't think that XP is that great of a system in comparison with say 7. It's security is very lacking(in part thanks to big inconvenience of using non-administartor user account) and, at least in my experience, it is much more fragile when used by anyone lesser that power user. I had to reinstall it several times in span of two years before i installed 7. That one works fine to this day(which lasts 12 years and counting).
Off-topic:
I'm gonna be honest, I don't know too much outside of my experiments with backporting modern Firefox to Windows 7. For that just knowing the removal commits and reverting them has made it just work. I assume Pale Moon would be even easier to maintain compatibility since no Rust or too many major core changes.

You could say the security stuff for 7 too, but they are about as safe to use as 10 anyways. Any real worms got update backports, and anything else is on the user because they're the one that ran the malware. Can even harden it by disabling NetBIOS and other malware risks, and for Vista+, using ESU.

Also when I say XP, what I really mean is NT 5.2 or 2003/XP x64. I see that as the real XP, the real stable one. I probably couldn't actually use 2003 due to kinda needing a lot of the 7 usability improvements, but it would be cool. I have gotten it to work on really modern hardware like a 5950X with a NVMe boot drive. I actually use 8.1 but I kinda miss the classic no DWM look and I have finally figured out what broke 7 on my system, so I'm bound to switch back soon. I reinstall and switch way too often to have an install for 12 years.