Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
You may need to restart the browser before extensions become functional on slower machines such as your DLSD.
This worked for uMatrix, but Ublock Origin still does the peg the cpu at 80-90% thing. Only thing I can think of is that it might be updating all of the filter lists. At any rate, thanks! Performance is pretty good all things considered. I have experienced a few crashes on JS heavy sites while trying to watching videos, but aside from that, all is well.
 
1784177180232.png


Looking much better. To my knowledge, this is the first modern browser for 10.3 in around 16 years!
 
View attachment 2645773

Looking much better. To my knowledge, this is the first modern browser for 10.3 in around 16 years!
Wow! That is certainly not what I expected to see when I clicked onto this. Great work. Panther was actually quite a rock-solid OS, I still have it on my PowerBook G4. It would be fun to play around with this if it fully matures.

Even better if you can ever get Jaguar support even in the most unstable form, that would be worth a few medals. Put it on an unsupported 2005 Mac mini and you could have the most fubared up Mac in town.
 
Thanks for all of your work on this! I don't see where to download it though. The web site is showing 26.2.2 is the latest version?
You need to have JavaScript enabled in the browser for the website to fetch the latest release. If you are using a legacy browser, you can download the latest build listed then use PowerFox to download the actual latest build.
 
Powerfox for Panther? No freakin way! Why the heck did I upgrade my Clamshell to Tiger?
I can't wait to dig out my iBook G3 800 MHz, clamp it (800 owners know what I mean), get me Panther from somewhere and install it!
 
Exquisite work. Since almost every major optimization has now fallen into place, I think we have against all odds finally achieved the holy grail (or at least one of them) of a completely, fully optimized current browser for PPC. Thank you again @Jazzzny for assembling all of this.

Though at least on Intel Tiger, a few keyboard shortcuts still do not work (like Cmd + L), the 'redo' function seemingly does not work, UI and page elements will sometimes only highlight to the immediate left of the cursor (instead of directly underneath it), and I have noticed that after opening several tabs and / or a particularly heavy website, the browser interface may glitch out and display whitespace on the top and bottom ends. Not sure if this is already known behavior:

Picture 1.png


I am also testing on a GMA 950, so that may or may not be a factor as well.

The only further ideas I can think of at this point are to perhaps enable Quartz 2D Extreme / QuartzGL by default in the 10.4 and 10.5 builds (not sure about 10.6), use a pre-optimized prefs.js by default, set youtube.com to use the iPad user agent by default, add the KaiOS and Series60 user agents to the PowerFox settings tab, and add a few more preferences there from about:config as well.

Similarly to Pale Moon, I would also propose to add SSE3 optimizations to the 32-bit Intel builds (the earliest Core Duo Macs supported it; requiring SSE2 would be useful for Pentium M clients), and perhaps SSE4.1 optimizations to the 64-bit builds (C2D Penryn and up) as SSSE3-capable chips (C2D Merom) used between late 2006 and about mid 2007 are often limited to no more than 3 GB RAM and likely wouldn't significantly benefit from the increased resource consumption of 64-bit binaries anyway. Likewise, not leveraging SSE4.1 would leave some performance on the table for everything released in 2008 and later when 10.6 will run on most systems up to 2011.

I'm sure some of these additions could even be upstreamed and featured in Basilisk to benefit newer systems as well, perhaps helping to attract more users into the UXP platform as a whole. It's an idea.
 
Last edited:
and I have noticed that after opening several tabs and / or a particularly heavy website, the browser interface may glitch out and display whitespace on the top and bottom ends. Not sure if this is already known behavior:
This is due to Tiger's incredibly faulty OpenGL framework. Graphics acceleration will be hard-disabled on 10.4 Intel like in TenFourFox for the next release.

The only further ideas I can think of at this point are to perhaps enable Quartz 2D Extreme / QuartzGL by default in the 10.4 and 10.5 builds
This will not materially improve performance, which is why Apple never shipped it in the first place. All browser rendering is already done using a highly optimized library that utilizes OpenGL.

I would also propose to add SSE3 optimizations to the 32-bit Intel builds
This is already done, check about:buildconfig.

perhaps SSE4.1 optimizations to the 64-bit builds
This will not be done as all 64-bit Macs deserve the ability to run the 64-bit build. As such, 64-bit builds are optimized for the Conroe microarchitecture, check about:buildconfig.

Likewise, not leveraging SSE4.1 would leave some performance on the table
This isn't really true, there would only really be a minimal performance increase (if one were to happen at all) and the slowest parts of the browser don't depend on SIMD either way.

I'm sure some of these additions could even be upstreamed and featured in Basilisk
Everything that can benefit newer architectures has been upstreamed already.
 
  • Like
Reactions: Yumiko Noua
This will not materially improve performance, which is why Apple never shipped it in the first place. All browser rendering is already done using a highly optimized library that already utilizes OpenGL.

No, it will not necessarily decrease loading times or rendering throughput, but some did notice a minor improvement in graphical smoothness in the TenFourFox-based browsers, at least on weaker systems, and anecdotally, I also observed a moderate reduction in graphical stuttering and I think slightly less resource consumption after the flag was enabled. And particularly if hardware acceleration is to be disabled on 10.4 going forward, it could be a valuable addition to offset the increased load on the CPU.

I merely thought to raise the suggestion since Aquafox also used it by default (alongside some other tweaks, like the custom prefs file) and was in most cases the relative fastest / smoothest fork of TenFourFox yet despite the chronic absence of GPU support. But of course, that was all on the FF45 codebase rather than UXP. Indeed perhaps more granular A/B testing on broader configurations would be prudent before shipping it as a default here.

And for the record, Apple did ship QuartzGL selectively in certain graphics-centered applications in at least 10.5 to smooth out UI animations, including Grab, Preview, and System Preferences; case in point the latter of which will heavily stutter between preference pane transitions if QuartzGL has been disabled in Info.plist (if memory serves). What they did not do is enable it system-wide and market it as a new feature but rather used it sparingly as a stopgap measure and later replaced it altogether as the capabilities of Core Image, et al became more deeply integrated to the OS.

This is already done, check about:buildconfig.

My apologies, I should have rephrased this. I understand that the sse3 flag is present in the build config, but the issue is that about:support is seemingly only honoring the CPU's capabilities as limited to SSE2. Is it because the target CPU has been set to pentium-m rather than something else like core? Or is this the expected behavior?

This will not be done as all 64-bit Macs deserve the ability to run the 64-bit build. As such, 64-bit builds are optimized for the Conroe microarchitecture, check about:buildconfig. ... This isn't really true, there would only really be a minimal performance increase (if one were to happen at all) and the slowest parts of the browser don't depend on SIMD either way.

Fair enough. I simply figured it might consolidate the number of builds if that's any easier.

Lastly, I was wondering if any of the other compiler optimizations used in Thorium would be applicable to UXP as well? I recall Cameron Kaiser discussing adding LTO and PGO optimizations to older builds of Firefox several years back, so maybe a few of them could be used here also.

Just wanted to contribute some areas of potential improvement, that's all.
 
Last edited:
about:support is seemingly only honoring the CPU's capabilities as limited to SSE2. Maybe it is because the target CPU has been set to pentium-m rather than something else like core?
The information reported there is only used for UXP analytics (which PowerFox doesn't use) and is not indicative of how the browser is compiled. In fact, it is only able to report SSE2, AVX, and AVX2. The PowerFox binary is compiled with pentium-m optimization and SSE3 enabled as that is the only way the compiler can be configured to target the Yonah microarchitecture. The other option is to target Pentium 4/Prescott, but that has completely different instruction scheduling.

some did notice a minor improvement in graphical smoothness in the TenFourFox-based browsers
Without proper benchmarking, I will not adopt it, as word of mouth is not a good metric. Additionally, the latest release uses Skia which does not heavily rely on Quartz drawing APIs like TenFourFox.

I was wondering if any of the other compiler optimizations used in Thorium
You are comparing apples to oranges, I cannot adopt any Chromium optimizations. Regarding LTO, it cannot be done, as the linker is too antiquated to handle it.
 
Last edited:
The information reported there is only used for UXP analytics (which PowerFox doesn't use) and is not indicative of how the browser is compiled. The PowerFox binary is compiled with pentium-m optimization and SSE3 enabled as that is the only way the compiler can be configured to target the Yonah microarchitecture. The other option is to target Pentium 4/Prescott, but that has completely different instruction scheduling.

Ah, I see. Thanks for the explanation, that makes total sense.

Without proper benchmarking, I will not adopt it, as word of mouth is not a good metric.

That's perfectly reasonable. Thank you for your time.

You are comparing apples to oranges, I cannot adopt any Chromium optimizations. Regarding LTO, it cannot be done, as the linker is too antiquated to handle it.

I was asking a question that would have required clicking the link to gain the full context of said question. To someone who does not regularly build software, PGO, AES, CFLAGS/LDFLAGS, import_instr_limit, and LLVM LOOP don't seem to be Chromium-specific optimizations since another Firefox fork uses them as well (and provides before / after benchmarks of their enhancements to performance), and the Thorium Optimizations page moreover does not mention that any of them cannot be used on pre-2011 CPUs, unlike AVX.

But if the linker is too old to leverage any of them, then indeed that is a completely different limitation. Although if that's the case, then why not just explain so rather than instantly dismiss it and leave everything else to interpretation?

Really not sure why your tone is so combative. I think highly of PowerFox and was only attempting to help improve the user experience even further throughout future updates.
 
Last edited:
@Jazzzny I haven't looked forward to any browser release on any platform in the past 10 years as much as I have this version of PowerFox! This fixed a few of the forums I use that use Captcha to verifiy logins. My now aircooled G5 quad just got a good bit more useful to me! Thank you very much!
 
  • Love
Reactions: Jazzzny
Really not sure why your tone is so combative. I think highly of PowerFox and was only attempting to help improve the user experience even further throughout future updates.
I apologize if I come off this way, I've been wrestling with performance recently as upstream UXP made several changes that actually degraded performance by around 35% that I had to track down and revert, so its just an area that I'm quite frustrated with. Sorry!

Regarding compiler flags, all builds for 10.4 and 10.5 are built with GCC and not Clang/LLVM, so many of the techniques mentioned there are inapplicable. I have experimented with LTO in the past, and it did not even build on Clang + 10.6, so I doubt it would work with 10.4/10.5 + GCC. PGO isn't supported in the codebase, and I'm not sure if I have the resources to implement it and continually maintain it for every single release.
 
I apologize if I come off this way, I've been wrestling with performance recently as upstream UXP made several changes that actually degraded performance by around 35% that I had to track down and revert, so its just an area that I'm quite frustrated with. Sorry!

Don't you just love the message boards, where misunderstanding runs rampant and expressions rely solely on outlined logic rather than audible / visible nuance?

Anyway, that does sound frustrating; I hope they're not doing this on a regular basis. Thank you for catching them in time.

Regarding compiler flags, all builds for 10.4 and 10.5 are built with GCC and not Clang/LLVM, so many of the techniques mentioned there are inapplicable. I have experimented with LTO in the past, and it did not even build on Clang + 10.6, so I doubt it would work with 10.4/10.5 + GCC. PGO isn't supported in the codebase, and I'm not sure if I have the resources to implement it and continually maintain it for every single release.

These factors were not at all apparent at first, but once again that makes perfect sense. Thank you greatly for clearing this up.

Looking forward to the next release!
 
Last edited:
  • Like
Reactions: Jazzzny
I've been running the latest version on a PowerBook and it's working well! It's down to about 40 threads now. I found that script test that you posted and tried that too:
 

Attachments

  • octanePB.png
    octanePB.png
    133.2 KB · Views: 22
  • Like
Reactions: Yumiko Noua
@Jazzzny
WebGL aquarium requires WebGL 2.0 in PowerFox, which requires OpenGL 3.
Perhaps this can fix it?

Code:
    // On Mac OS X 10.6 (Snow Leopard), NSOpenGLProfileVersion3_2Core is a
    // 10.7+ symbol and is compiled out when targeting the 10.6 SDK. CGL then
    // silently hands back a Legacy (GL <= 2.1) context, but the provider may
    // still have recorded ContextProfile::OpenGLCore based on the requested
    // attributes. OpenGL core profile did not exist prior to GL 3.2, so if
    // the actual version is below 3.2 demote the recorded profile to
    // Compatibility. Otherwise WebGL's AddLegacyFormats_LA8 sees IsCoreProfile()
    // == true, requires ARB_texture_swizzle to emulate L/A/LA formats, and
    // fails with "Failed to create mFormatUsage." / "Exhausted GL driver
    // options." on pre-3.3 GPUs (e.g. GeForce FX, Radeon X1000).
    if (mProfile == ContextProfile::OpenGLCore && version < 320) {
        if (ShouldSpew()) {
            printf_stderr("Demoting GL profile from OpenGLCore to "
                          "OpenGLCompatibility (actual GL version %u < 3.2)\n",
                          version);
        }
        mProfile = ContextProfile::OpenGLCompatibility;
    }

I can't test it as I can't find powerfox-sdk. Is this open source?
 
This is not enough to enable it. WebGL 2 in the Mozilla codebase requires several OpenGL 3.0/3.1/3.2 features and extensions that 10.6 does not expose, such as advanced buffer operations and ARB_texture_storage.
See if any of these can be integrated. They work fine for the Webkit.
File: 16-webgl-blacklist.patch
What it does: Defines kCGLRendererIDMatchingMask (0x00FF) and kCGLCPSupportSeparateAddressSpace (135) missing from 10.6 SDK; skips
NSRegularExpression-based OS-build parsing on <1070
The 3.2→2.1 drop happens in 05 + 06 (ANGLE CGL) and 09 (WebCore CGL). The aquarium runs because 10 + 13 + 14 replace IOSurface presentation with
GL_TEXTURE_2D FBO + copyTexImage → CGImage → CALayer.contents, which 10.6 CoreAnimation accepts.
 

Attachments

Last edited:
I also tried the G3 build on a PowerBook "firewire" model. It works pretty well, even loading all the extra crud on most sites. This URL has the downloads:

github.com/Jazzzny/powerfox-browser/releases/expanded_assets/26.3.0
 

Attachments

  • octanePB3.png
    octanePB3.png
    134.8 KB · Views: 22
  • octanePB4.png
    octanePB4.png
    212.2 KB · Views: 20
I also tried the G3 build on a PowerBook "firewire" model. It works pretty well, even loading all the extra crud on most sites. This URL has the downloads:

github.com/Jazzzny/powerfox-browser/releases/expanded_assets/26.3.0
Hi, is your Pismo powerbook CPU upgraded? The stock is maxed out at 500mhz G3. Your Octane score seems very good (or perhaps too good) for a 500mhz cpu...
 
Yes, it has a CPU upgrade. It looks like I should max out its RAM too.

I get a "Refresh Powerfox..." popup every time I start Powerfox. Is there a way to remove it?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.