Sunday, August 4, 2013

Adventures in Laptop Hybrid Graphics

Getting hybrid graphics to work on a laptop isn't the most intuitive thing to do. I found this out the hard way when I tried running FFXIV benchmark on my laptop containing a built-in Intel HD 4000 and a discrete AMD Radeon HD 7730M.

I've had my laptop for a months now, but have never seriously tried playing games on it. I ran Diablo 3 a couple times, but only for a brief amount of time. In Diablo 3, the settings do not tell you what GPU you're running at that moment, so I'd assume it was switching to the discrete card and never thought anything of it. That changed when FFXIV benchmark 2.0 came out, and I started to question which GPU  was being used.

When you launch the benchmark, it displays your system specs and for me, it was displaying my Intel HD  4000 instead of my Radeon HD 7730M. There wasn't even an option to select the 7730M, as if it didn't exist.

The combo box only lists the HD 4000

But I'm POSITIVE my laptop has a Radeon HD 7730M

DirectX Diagnostic was displaying the HD 4000 too. WTH!

This got me uber paranoid that something was up and my laptop wasn't working the way I thought it should. I started to do some research and sure enough, a Google search showed that others had similar problems with their hybrid setups. However, based on the make and model of the laptop and type of discrete graphics, there were solutions, and they varied. 
I started to experiment with the different methods and none of them seemed to work for me. Benchmark and dxdiag were still both telling me "Screw you! You don't have discrete graphics!" AMD drivers wouldn't install and kept saying they were not compatible with my setup. So I decided to force install the drivers anyways using a round-about method. That didn't work and made things worse. Every time it booted up, the screen flickered between a black and gray screen and never got into Windows.

After a few hours of getting rid of the drivers and doing Windows reinstall, I was back to square one. At this point I was exhausted and decided to just run the benchmark anyways. One of the things I read was that even though settings only shows the HD 4000, if the AMD Catalyst Control Center is configured correctly, the program should use the correct GPU. I've tried almost all other options, why not. So I made sure that the Switchable Graphics settings were set.


Option to control switchable graphics

Set all benchmark related executables to High Performance. Apparently the benchmark launches 4 different .exe files

I ran the benchmark and got the results. They seemed pretty decent for a laptop setup, giving me a warm and fuzzy that maybe the 7730M was being used. I then changed the CCC settings to use the HD 4000 and reran the benchmark.

Score of "Very High" although the graphics detect is Intel HD 4000

Set all benchmark related executables to Power Saving. In theory, this means "Use the HD 4000 instead of discrete graphics"

Lower score than before, but still displays Intel HD 4000

After all that, it seems that behind the scenes my laptop and programs are selecting the appropriate graphics card. I'm still a little confused as to why that's happening, but at least I feel better seeing the benchmark results. I'll chalk it up to space magic and not waste any more time with figuring out why.

3 comments:

Ascule said...

xD Looks like you were fooling around with graphics settings and the benchmark program as well... I just did a blog post on tuning the benchmark for my setup.

Laptop GPUs have changed due to the introduction of the HD4000 on the Intel Core i-series of CPUs. Basically what you're seeing is that the discrete GPU won't turn on during normal Windows usage unless there's a program (like a game) that can benefit from it. For that scenario, it will automatically switch to the card unless you are running on battery mode. This is supposed to happen seamlessly so you won't even know there's a change.

In theory, if you have your power options set correctly, if you unplug your laptop and run on battery mode before you start your benchmark, it'll simply run on the HD4000 and not activate your discrete GPU.

If you really, REALLY want to run with the latest drivers and be running only on your discrete GPU, you should be able to turn off the HD4000 in your laptop's BIOS. This is a bloody pain to do though, and really saps the battery life of your laptop. I tried it once with a laptop with a Nvidia GPU and got maybe 5% performance increase. I don't think it's worth it

Vanh said...

For my laptop, I think I'll be sticking to the standard/lower settings. It's not a gamer laptop, so I don't expect it to work like one.

As far as the GPU goes, so yeah... it does switch between the two and it's seemless, but it's not intuitive when everything within Windows says HD 4000. You just gotta trust Windows /shrug

I set my laptop to performance while on battery. Went from 96% battery to 90% after running the benchmark once!

My laptop does not support disabling HD4000 in bios. It was one of the first things I tried. I'm at the mercy of Samsung. Only their flavor of Radeon drivers will work.

Ascule said...

I made that mistake of thinking I could play games on a laptop... was a stupid idea xD I'm at the mercy of Sony drivers, and they just don't update ~.~

Since then I've just gone with a desktop. Much cheaper and can go direct to the vendors for drivers!