Any idea why Firefox is much faster with ShaderToy?

Hey Guys,

I have here attached a screenshot of a shadertoy shader running on Firefox (left) and Chrome (right).
I actually have a list of shaders I tested on both, that have Chrome working at less than 5fps but work 2-4 times faster on Firefox.

I was wondering why this is happening, and I did some research about Firefox. The only think I came to think is that Firefox’s WebRenderer is making the glsl run faster. But I checked if it was enabled, and it was not. So I’m stuck…anyone have any suggestions?

Here is my Computer System:

Google Chrome is up to date
Version 91.0.4472.101 (Official Build) (64-bit)

Firefox is up to date
89.0 (64-bit)

Windows 7 Professional
Service Pack 1

System
Processor: AMD Phenom™ II X4 B95 Processor 3.00 GHz
Installed memory (RAM): 8.00 GB (7.50 GB usable)
System type: 64-bit Operating System

maybe you need to ask on the ShaderToy forum?

Maybe Chrome has hardware acceleration disabled?

Interestingly enough, although it shows that it is enabled in the settings window, when I type “chrome://gpu/” in the URL box, the result shows that it’s using software and not GPU. This is a Chrome bug then:

Graphics Feature Status

  • Canvas: Software only, hardware acceleration unavailable
  • Compositing: Software only. Hardware acceleration disabled
  • Multiple Raster Threads: Enabled
  • Out-of-process Rasterization: Disabled
  • OpenGL: Disabled
  • Rasterization: Software only. Hardware acceleration disabled
  • Skia Renderer: Enabled
  • Video Decode: Software only. Hardware acceleration disabled
  • Vulkan: Disabled
  • WebGL: Software only, hardware acceleration unavailable
  • WebGL2: Software only, hardware acceleration unavailable

Problems Detected

  • Gpu compositing has been disabled, either via blocklist, about:flags or the command line. The browser will fall back to software compositing and hardware acceleration will be unavailable.
    Disabled Features: gpu_compositing

Tried enabling the “Override software rendering list” flag in chrome://flags?

with all due respect, you need a new computer

Thanks, it worked for my Android device. This thread can close, I’ve created a new one for the iOS case:

You respect is noted :slight_smile: The low-end devices are test cases, unfortunately I can only afford these low-end devices in large quantity to distribute with the web app.

Hey,

I’ve uses Cordova 7.0 with Xcode 11…

I built and launched the same PC project I’ve described in this thread, for iOS 9, on my iPhone 4S phone and still I get a fps of 3-4 I’m safari.

Why?
Do I need to link binaries to any ios library in the build phase of the Xcode project? I would assume it would’ve been handled.by withe Cordova or PC.

I’m stuck, any help would be appreciated because I can’t move forward in the project I am working on without having a good fps to play the game on iPhone 4S

Please note: I am producing this game for iPhone 4S because it is cheap enough to purchase myself and distribute to my customers/target audience

Is the game playable in the 4S browser? If not, you are not going to get more performance using an app wrapper because it is still use a web view?

I’m not aware of a way to natively render WebGL apps without using the webview or another webview implementation.

Edit: is the issue that hardware acceleration is disabled on iOS Safari? If so, could you add extra options in the webview in the xcode or Cordova app to force enable it?

The game is 3-4fps on the Safari Browser ios9…

You’ve asked the critical question that I don’t have an answer to. But I can tell you that using Xcode I am able to see the GPU usage on my iphone4s as it plays my pc app and it shows zero for the GPU usage, so I now know for sure it is not using GPU.

I’ve tried to research about Cordova “hardware accelerated” plug-ins for ios platform, but haven’t been able to find any. I havn’t been able to find anyone who has a solution to this iPhone4S problem, of running WebGL hardware accelerated.

G3D and GCanvas seem to be tailored to solving this issue i’ve mentioned of hardware acceleration WebGL games. But I don’t want to redo all i’ve created in PlayCanvas yet, especially if I run into this lack of hardware acceleration for WebGL on Safari ios issue.
If these guys, G3D and GCanvas claim they can do it, I’m sure you guys would be able to do it too.

Can anyone give me an example of a playcanvas game that I can use and test on XCode, if it is using GPU? XCode has the Tools to measure GPU usage on my iPhone4S ios9…

Both of these are native C++ engines so they can produce a native iOS app. They both have the option to compile out to WebGL (like Unity) and GCanvas also has a JS runtime. They aren’t native JS WebGL engine like PlayCanvas and three.js.

I would be surprised if their WebGL output managed to force the use of hardware acceleration in the browser.

1 Like

Ah ok, thank you for the clarification.So I think the answer to this problem I have is that it is not possible to use PC coded WebGL output alongside another framework (like Cordova or React Native) that will also produce hardware accelerated. Do you agree?
Basically I would like an answer to this question because the game I make using PC is uplayable at 3-4fps for the iPhone4S device I am distributing to the children who will play the game.

Do you suggest I use something like Unreal Engine or any other software, so that I can make a game playable on iPhone4S?

It’s frustrating that I cannot use the PC editor/engine, but if I have to I will have to make two versions of the game…one with PC and one with another software so that it can be played on iPhone4S

Not quite. It’s more that PlayCanvas doesn’t have control on whether hardware acceleration can be used in the WebView. I believe the WebView can be hardware accelerated, but so far it doesn’t seem to be an option in XCode or Cordova to manually set it. I honestly don’t know enough about native app development with XCode or Cordova to answer this question.

You may be better off asking on StackOverflow/Cordova forums about this specifically.

My guess is on that newer devices, the WebView would be hardware accelerated.

If it must be on iPhone 4S, then yes I would suggest using building a native app. Unity, etc.

I don’t have access to an iPhone 4S to really investigate this otherwise I would have ask to have a quick look at a build of your game.

Would you like to share a build with me (DM or here and I can take a quick look to see if there are any bottle necks on performance)?

Out of interest, how does this perform on the iPhone 4S? BMW i8

1 Like

If you would like to, I can purchase an iPhone4s for you via Ebay so see what’s going on.
if so, just send a mailing address, via my e-mail: a.gunaratnam@gmail.com
Below, I’ve added the original game I made a couple of years ago when PC had the ‘export ios’ button. On the iPhone4S, this runs at 3-4fps. Here it is:

[Water_Your_Flower_Every_Day.zip - Google Drive](https://Download the source)

Alternatively, I do have a public version of this game that is more optimized and is faster. I had to reduce vertex count of 3d assets, take away all textures, materials, text. It helped increase the gameplay to 5-12fps but there is no artistic attraction to this version of the game that I think a child would be interested in to play it:

http://demo.myguardianangel.today/

Also, a note to mention, both versions of the game does not use the PC physics engine because it was too large and it crashed the Safari browser. I replaced it with a lighterweight JS physics engine.

This game is to help protection of minors in the Catholic Churches, so the ability for me to purchase LOTS of old phones to give it with the game installed to groups of children is important. Also I expect parents to only allow their children to use low-end phones and not expensive ones. Also, I expect people will be more willing to donate their old low-end phones for free to their communities for this purpose, to protect the children from pedophilia.

The BMW i8 link you sent me stays on the loading screen and doesn’t actually load, even when it goes to 100% of the loading.

Having a quick at it and it does look like you are bottleneck on the GPU. Unless you can force WebGL hardware acceleration on the WebView, I’m afraid that you may have to use a native engine like Unity (if it still builds for iPhone 4S)

Yes, I agree. Good to know, thanks.

Thank you very much for sharing this information with us. This is really helpful. Compatibility issues with ShaderToy are quite common since it sometimes look broken or blank. There is a major problem with ShaderToy as it works on one machine but also does not work on the other which is really troublemaking.