Chrome on Linux with WebGL and all the hardware acceleration stuff


Want to use your Linux box to access website like:

But you are told your browser or operating system do not support hardware accelerated html5 features?

Is your graphic card correctly configured and you are sure the graphic acceleration works?

Then this post is for you.

You’ll find many website suggesting to execute chrome with options like:

–enable-webgl

–ignore-gpu-blacklist

Well.. do not do it. That’s the last resort if everything else suggested here fail..

Go on and enter your Google Chrome gpu page by writing this in the url box:

chrome://gpu

You may read something like:

See below text if you don't see this image

Chrome saying you hardware acceleration is not supported and there are detected problems

Graphics Feature Status

  • Canvas: Software only, hardware acceleration unavailable
  • Compositing: Software only, hardware acceleration unavailable
  • 3D CSS: Unavailable. Hardware acceleration unavailable
  • CSS Animation: Software only, hardware acceleration unavailable
  • WebGL: Unavailable. Hardware acceleration unavailable
  • WebGL multisampling: Unavailable. Hardware acceleration unavailable
  • Flash 3D: Unavailable. Hardware acceleration unavailable
  • Flash Stage3D: Unavailable. Hardware acceleration unavailable
  • Texture Sharing: Unavailable. Hardware acceleration unavailable
  • Video Decode: Software only, hardware acceleration unavailable
  • Video: Software only, hardware acceleration unavailable

You want to turn it into this:

See below text if you don't see this image

Below this you should see the details of your OpenGL and feature supported by your graphic card

Graphics Feature Status

  • Canvas: Hardware accelerated
  • Compositing: Hardware accelerated on all pages and threaded
  • 3D CSS: Hardware accelerated
  • CSS Animation: Accelerated and threaded
  • WebGL: Hardware accelerated
  • WebGL multisampling: Hardware accelerated
  • Flash 3D: Hardware accelerated
  • Flash Stage3D: Hardware accelerated
  • Texture Sharing: Hardware accelerated
  • Video Decode: Hardware accelerated
  • Video: Hardware accelerated

Disclaimer: I’ve everything enabled but, depending on your graphic card something may not be available for you

Just open another tab on your Google Chrome (or Chromium) and write this in the url box:

chrome://flags

Chrome Flags Window Screenshot

Chrome Flags Window Screenshot: white = enabled, gray = disabled

You can experiment, but this is what I have (only the relevant options):

  • [ON] Override software rendering list (probably the most important one if your hardware is blacklisted)
  • [ON] GPU compositing on all pages
  • [ON] Threaded compositing
  • [OFF] Disable accelerated 2D canvas
  • [OFF] Disable deferred 2D canvas
  • [OFF] Disable accelerated CSS animations
  • [ON] GPU Accelerated SVG Filters
  • [OFF] Disable GPU VSync
  • [OFF] Disable WebGL
  • [ON] Smooth Scrolling
  • (not related to graphic) [ON] Enable Encrypted Media Extensions on <video> elements
  • [ON] Enable CSS Shaders
  • (not related to graphic) [ON] Web Audio Input

HINT: this can be confusing, sometime you see “Disable WebGL” with a button below that say “Enable”, if you click “Enable” you… Disable WebGL, yes! :) you are ACTIVATING that flag and what that flag does is: “Disable WebGL”. That’s why so many options are OFF there.

Now that you know this you can go on experimenting yourself with the other options.

After modifying these options you should see a “Restart” / “Relaunch” button on the bottom, hit it to restart your browser and see the changes in effect (back to the chrome://gpu page to see if something changed)

I had to warn you, like chrome does, that messing with this flags is experimental and potentially dangerous: your browser may start to crash and things like that, it really depends on your hardware so fill free to experiment.

This has been done on Google Chrome version 23.0.1271.64 (Official Build 165188) on  Debian Linux with an Intel i945 Graphic Card, but can work on any other setup (nVidia, AMD) as long as your graphic card driver is installed and well configured. Some graphic cards are know to cause issue or not support some of the feature above, up to you to experiment; if you try and want to drop your experience as a comment make sure to specify your graphic card, driver used and what works / didn’t work ;)

Hope this helped someone

Posted in Chrome, Linux | Tagged , , , , , , , , , | 10 Comments

The worst thing about Android, in my opinion, is how they handle bug reporting from Developers


Android Developer Bug? Don't see, don't hear, don't speak...

Image gimped and android-ized by me, credits of the original image to Chris & Crec (see below)

WARNING: this is a RANT, wrote during frustration and doesn’t really apply to everything in the Android world, actually Android developers cares a lot about others developers and are doing their best to makes things better and fix things. It’s just hard to fix everything ;)

As an example I’ve sometimes seen the following pattern:
1. Developer report a bug
2. The bug is confirmed by many other used / starred
3. Google SILENTLY close it as not reproducible
4. Users complains
5. No response is given
6. Users open a new bug

At this point Google may actually fix it or close it again as duplicated, in the folowing example they ignored it leaving in state “New” the bug.

Just as a random example; today, while I was thinking looking into using the Android sharedUserId for a new application I guessed what would happen if I had to suddenly use it in an existing application, and I stumbled into this:
http://code.google.com/p/android/issues/detail?id=1227

Reported in the late Nov 8, 2008 was closed as Unreproducible in Aug 2009.

Reading comments many people actually confirmed the issue so I searched harder and… Guess what? the bug is real..
And is a big deal (back on this later), it’s been reopened after a while (2011):
http://code.google.com/p/android/issues/detail?id=14074

And currently in state “New”.

The bug is not something minor.. If you happen to release an app on Google Play and then later you add a shareUserId manifest property what actually happen is that your application data is no more accessible after upgrading.

Would you, as an Android developer, be willing to say that you can make the right choice the shared user id in all of your app and you will never need to change it?
This didn’t happened to me, yet… But if I ever found my self in the need of adding / changing a sharedUserId on some of my Apps I would be facing the issue with no proper way out of it.

And that’s a know problem since 2008!

What Google / Android is failing to do here is a simple thing: ask for more information if you can’t reproduce a bug, do not simply close it!

On the particular issue I think the best thing I can do is start using the same sharedUserId for all of my application, just in case, but I’m not sure if this is a good idea either; anyway it’s probably better than leaving the app without one.

**
Image Credits
I used this image:
http://www.flickr.com/photos/chrisandgrec/5707765312/
All rights are reserved to Chris & Crec

I modified that image using Gimp:
I added the Android background (just amatour job)
Couldn’t find the author of the Android image to give him credit / ask for permission.
**

What do you think? Similar experiences?

Posted in Android, Android Development, Development, Rant | Tagged , , | Leave a comment

Skype 4 and pulseaudio: microphone not working, speaker output is sent back instead


This post could have been named: How to loop your computer audio to the skype conference using pulseaudio; but usually people want to speak on skype, isn’t it? :D

Yesterday I rebooted and apparently some new setting from one of the last upgrade broke something.

To make a long story short my skype went mute all of a sudden. Since I work from remote and I use skype to communicate with collegues this wasn’t nice…

My collegue was able to read sounds my laptop was emitting: if I started an mp3 file they could hear it, even if I used my headset, so skype was sending them my output instead of my microphone recording.

Recording worked, executing from terminal:

arecord > speak.wav; aplay speak.wav

I was able to communicate speaking, somewhat, by recording myself and then playing it.

But the fix was easy, if you know what to do. Here we go…

Let’s install Pulseaudio Volume Control if you haven’t it already, on debian and derived system (yes ubuntu too):

sudo apt-get install pavucontrol

Now open skype and enter options: you look for Sound Devices

You need to click on Open PulseAdio Volume Control; dont see it? Don’t skip step, you have to install pavucontrol!

Go in the record tab and, in the skype option window click on Make a test call.

While the skype voice is speaking a new entry in the record tab should make his entrance, and if you are seeing Monitor of Build-in Audio Analog Stereo” change it into Build-in Audio Analog Stereo. Done. It’s working again.

Want to make your buddies listen to the music you are listening? Just change back to the “monitor” entry.

Hope this was helpful to someone.

Posted in Linux, Pulseaudio | Tagged , , | Leave a comment

Hello world… again


Hi,

my name is +Daniele Segato (@borninbronx), know in the web with the nickname mastro (long interesting boring story).

I’m an Italian developer with a degree in computer science that use Linux for fun and for work.

I’m currently developing in Android and Java and I use gentoo at home and debian at work.

This is my first post in the my english blog but I used to run an Italian one about Linux a while ago, if you know Italian or want to experiment with google translator you can give it a check here.

Run Linux, have fun.

Posted in Senza categoria | Leave a comment