Jump to content

ArcticFoxie/NotHereToPlayGames -- 360Chrome v13.5.2036 rebuild 1


Recommended Posts

On 4/20/2023 at 10:24 PM, UCyborg said:

I've got similar score as @Anbima in Speedometer 2.0 on XP in 360Chrome 13.5, using AMD Phenom II X4 920 (over)clocked at 3 GHz. Don't recall the exact number, should be somewhere between 36 and 39. Seems simply CPU bound test.

I have read that the AMD Phenom does not return the SSE3 flag and thus some programs cannot use SSE3.
Could this be the reason that the processor is so "slow"?

How can I query whether 360Chrome uses SSE3?

https://axebase.net/blog/2022/09/05/chromium-fehlendes-sse3-flag/

Edited by Anbima
Link to comment
Share on other sites


15 hours ago, NotHereToPlayGames said:

Since 360Chrome v13.5 is forked from Chrome v86, the SSE3 flag should not be an issue.

But 360Chrome v13.5 does support SSE3.
And with SSE3 it would probably be faster.

How can I check if 360Chrome v13.5 has SSE3 active?

Link to comment
Share on other sites

It should throw a banner uner the address bar / tab bar if SSE3 is not active.

If you are not seeing this banner, then I'm not sure if the slowness is SSE3-related or not.

Is there an "emulator" or "virtual machine" program that can run XP with or without SSE3?

VirtualBox doesn't seem to support CPU flags such as emulating SSE3 or not.

Link to comment
Share on other sites

On 5/8/2023 at 8:12 PM, Anbima said:

Current Chromium source suggests SSE3 is detected by running CPUID instruction with EAX register set to 0x00000001 and inspecting if bit 0 of ECX register is set to 1, I also remember seeing trying to execute one of SSE3 instruction directly in one part of the code yesterday to verify availability, but would have to find it again. Reading /proc/cpuinfo would obviously not work on Windows.

My Phenom II says SSE3 is supported, along with MONITOR instruction, an odd instruction that is rarely, if ever used. Though executing the latter throws illegal instruction exception.

I doubt SSE3/no SSE3 has much impact on Speedometer 2.0, which I find to be a rather meaningless metric in the grand scheme of things. Also UXP browsers are much slower at it, SSE or no SSE. My smartphone with Chromium 113 engine scores about 8 points on it, doesn't make it useless for web browsing.

On 5/9/2023 at 2:57 PM, NotHereToPlayGames said:

Is there an "emulator" or "virtual machine" program that can run XP with or without SSE3?

VMware allows specifying returned feature flags when the guest uses CPUID instruction in a configuration file if I remember correctly, although I presume executing SSE3 instructions would work regardless on supported CPUs, so the program that wants them wouldn't use them only if it checks the feature flags and is programmed to not use them if feature flags say no SSE3. This is something I would have to test to be sure.

There are some programs out there emulating very old CPUs, I only remember messing with PCem. In absence of owning real SSE3less CPU, emulating is probably the only way to have the "real" CPU without SSE3.

Edited by UCyborg
Many additions
Link to comment
Share on other sites

45 minutes ago, UCyborg said:

I doubt SSE3/no SSE3 has much impact on Speedometer 2.0, which I find to be a rather meaningless metric in the grand scheme of things.

I too doubt that SSE3 vs non-SSE3 has much impact.

I actually quite like Speedometer - I can tell just by its score if YouTube is going to "stutter".  (Though I guess if that is the metric, then just go to YouTube directly, lol.)

But I am talking desktop/laptop only.  I've never ran any browser from a mobile device - why run on a 3" x 5" screen when the desktop has five widescreen monitors?  :cool:

Edited by NotHereToPlayGames
Link to comment
Share on other sites

On 5/12/2023 at 11:12 AM, NotHereToPlayGames said:

I've never ran any browser from a mobile device - why run on a 3" x 5" screen when the desktop has five widescreen monitors?  :cool:

In my case, it depends on the occasion/mood, not one versus another. With a phone, I'm not restricted to that one room to that one chair.

Link to comment
Share on other sites

JS polyfill for findLastIndex


test : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findLastIndex
implemented in chrome 97 : https://caniuse.com/mdn-javascript_builtins_array_findlastindex

// ==UserScript==
// @name Inject findLastIndex Polyfill
// @version 0.0.1
// @match *://*/*
// @run-at document-start
// @grant none
// ==/UserScript==

if (!Array.prototype.findLastIndex) {
  Object.defineProperty(Array.prototype, "findLastIndex",
    {
      value: function (predicate, thisArg) {
        let idx = this.length - 1;
        while (idx >= 0) {
          const value = this[idx];
          if (predicate.call(thisArg, value, idx, this)) {
            return idx;
          }
          idx--;
        }
        return -1;
      }
      ,
      writable: true,
      enumerable: false,
      configurable: true
    });
}

Edited by rereser
Link to comment
Share on other sites

JS polyfill for Array.at


test : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at
implemented in chrome 92 : https://caniuse.com/mdn-javascript_builtins_array_at

// ==UserScript==
// @name Inject Array.at Polyfill
// @version 0.0.1
// @match *://*/*
// @run-at document-start
// @grant none
// ==/UserScript==

if (!Array.prototype.at) {
  Object.defineProperty(Array.prototype, "at",
    {
      value: function (n) {
        // ToInteger() abstract op
        n = Math.trunc(n) || 0;
        // Allow negative indexing from the end
        if (n < 0) n += this.length;
        // OOB access is guaranteed to return undefined
        if (n < 0 || n >= this.length) return undefined;
        // Otherwise, this is just normal property access
        return this[n];
      },
      writable: true,
      enumerable: false,
      configurable: true
    });
}

Edited by rereser
Link to comment
Share on other sites

JS polyfill for findLast


test : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findLast
implemented in chrome 97 : https://caniuse.com/mdn-javascript_builtins_array_findlast

// ==UserScript==
// @name Inject findLast Polyfill
// @version 0.0.1
// @match *://*/*
// @run-at document-start
// @grant none
// ==/UserScript==

if (!Array.prototype.findLast) {
  Object.defineProperty(Array.prototype, "findLast",
    {
      value: function (predicate, thisArg) {
        let idx = this.length - 1;
        while (idx >= 0) {
          const value = this[idx];
          if (predicate.call(thisArg, value, idx, this)) {
            return value;
          }
          idx--;
        }
        return undefined;
      }
      ,
      writable: true,
      enumerable: false,
      configurable: true
    });
}

Edited by rereser
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...