SystemInfo.graphicsShaderLevel false report

On one of the test machines I get this in the output log:

Initialize engine version: 4.3.3f1 (c8ca9b6b9936)
GfxDevice: creating device client; threaded=0
Version: Direct3D 9.0c [ialmrnt5.dll]
Renderer: Intel(R) 82865G Graphics Controller
Vendor: Intel
VRAM: 64 MB (via fallback)
Caps: Shader=20 DepthRT=0 NativeDepth=0 NativeShadow=0 DF16=0 INTZ=0 RAWZ=0 NULL=0 RESZ=0 SlowINTZ=0

Notice the “Shader=20”. This chipset doesn’t support any shader model as far as I know.
Unity player says so much a bit further down the log:

PlayerInitEngineGraphics: GPU not supported; DirectX9 GPU (Shader Model 2.0) is required.
Your GPU (Intel(R) 82865G Graphics Controller)
only supports Shader Model 0.0

How come Unity knows this chipset supports 0.0, but reports 2.0 to me?
Where else can I search for this info in the program, besides SystemInfo.graphicsShaderLevel?

This a bit old, but it’s still kinda applicable today so let me answer a simple explanation of the situation.

What you got with Cap: Shader = 20 is the physical limit of the shader of the Intel GPU. That’s based on the 64MB VRAM detected. If you want an example of what kind of shaders such a card can run… Think about a range similar to the Nintendo 64.

The Support Shader Model is not the same as the Capped Shader limit. The Support Shader Model is based on 2 factors :

Installed GPU driver(s)
Basically, if the drivers, which are made by the manufacturer of the component, doesn’t have the right language library, even if the GPU is top notch it would still be incompatible with higher shaders.

The DirectX supported by the GPU & Drivers
Basically, depending on what kind of PC or device you work on, if the DirectX drivers available aren’t up to the task, the Shader Model supported will return 0 because it fails to render even the most simple shaders which, in Unity, all requires at least DirectX 9.0 to be functional.

For example, if your installed DirectX is below 9 (like 8.2 which is the one previous to 9… which dates back to 2002), it wouldn’t be able to translate the rendering data properly, hence the lowest shader compatibility of 0.0.