Black Mesa switchable gpu problem


The game recognizes the Intel HD 3000 instead of the AMD Radeon HD 6700m, says the hardware directx is 9, even though it should be 11. Because of this, I can’t set shadow detail to High.
Any workaround?



A common workaround for this (for Source games in general) seems to be to add [tt]-force_vendor_id 0x10DE -force_device_id 0x1180[/tt] to the game’s launch options. But that’s for NVIDIA cards. I looked up the PCI Vendor and Device IDs for you card, which were 0x1002 and 0x6740, respectively (but you should check in Device Manager just in case).

So, try adding this to the game’s launch options: [tt]-force_vendor_id 0x1002 -force_device_id 0x6740[/tt]



I can now select High detail for Shadows, but this happens:

Maybe the hardware number or whatever is wrong?



Hm, try adding [tt]-dxlevel 95[/tt] to the launch options.

Remove the [tt]-dxlevel 95[/tt] after you exit the game or your settings will reset every time (but keep the force_…_id options).

Also, did you check the vendor/device ids in Windows Device Manager? (In Device Manager, right click on the display adapter and click Properties, then click on the Details tab and select Device Instance Id from the drop down. You should see something like “PCI\VEN_1002&DEV_6740&…”. Verify that the ID numbers match those used in the launch options.)



The number is correct. Still green stuff, might be corrupted driver installation. I will reinstall and let you know.



Seems like the launch options cause the green stuff, without it it’s gone…



That’s strange.

The way I understand the problem is that the game will render on the discrete (AMD) gpu, but the Source engine’s gpu detection code only sees the intel gpu, thus the graphics settings will be limited to that gpu. The launch options was supposed to force the game to select the AMD gpu. I’m not sure why it doesn’t work for you and why you are getting the green stuff.

Those launch options work perfectly on my notebook, which has an NVIDIA GeForce 940m gpu (except the IDs are slightly different: [tt]-force_vendor_id 0x10DE -force_device_id 0x139C[/tt]). Without those options, I only get medium shadow detail, and the Hardware DirectX Level shows “DirectX 9.0” (or dxlevel 90). Launching the game with those options, I get high shadow detail and Hardware DirectX Level “DirectX 9.0+” (or dxlevel 95). (you can also type [tt]mat_dxlevel[/tt] or [tt]mat_configcurrent[/tt] on the console to see what the dxlevel currently is.)

Maybe this workaround only works with NVIDIA switchable graphics.

Or maybe you also need to configure something in the switchable graphics settings in Catalyst, like setting bms.exe, steam.exe, or steamservice.exe to “High Performance” or something. I’m not really familiar with the switchable graphics settings in Catalyst.

I’m out of ideas at this point. Sorry I couldn’t be more helpful.



You were really helpful, I appreciate it a lot, thank you. I will try to tinker with it some more… if nothing works, then it will be a trade off between medium shadows and high shadows but with green stuff, which is a no brainer, but oh well.



I need to update/clarify this a bit: While that workaround works on my notebook, as it happens, I don’t need to use it. If I add the bms.exe in the program settings in the NVIDIA control panel, and set it to use the NVIDIA gpu, the game runs with dxlevel 95 and high shadow details, without using the launch options. This is the preferred and most obvious solution to this issue and it should work (at least with newer gpus/drivers). I feel somewhat stupid for not suggesting this first (you didn’t say if you’ve tried something similar in the Catalyst control panel). If that doesn’t work, then there’s those force id launch options, which seem to work for some people, but clearly not in your case.

So, it seems that this issue all comes down to the drivers.



Yeah, both Nvidia and AMD switchable laptop graphics have a section in the control panel where you list the programs that should be running on the high-power GPU. They ship by default with a huge list of “mainstream” titles, but BMS must be added to it manually.



Thing is, it’s set to the ati/amd radeon gpu in the settings, but without the command, it selects the intel regardless.



When running the game with the command-line options, try starting a new game and see if you still get the green stuff.

Looking at the screenshot, it looks like the game also might be running in fullbright.

It’s a long shot, but maybe you could try these console commands:

mat_dxlevel 90 mat_hdr_level 2 mat_fullbright 0 r_flashlightdepthtexture 1 r_shadowrendertotexture 1By dropping down to dxlevel 90, shadow detail will go back to medium, but the last two commands are supposed to re-enable high shadow detail again, I believe (but I’m not sure if you’ll see it in the options GUI.)