diff --git a/src/nouveau/winsys/nouveau_device.c b/src/nouveau/winsys/nouveau_device.c index a4d5083b708..ddbbbc1a11a 100644 --- a/src/nouveau/winsys/nouveau_device.c +++ b/src/nouveau/winsys/nouveau_device.c @@ -156,6 +156,12 @@ nouveau_ws_device_new(int fd) else device->local_mem_domain = NOUVEAU_GEM_DOMAIN_VRAM; + uint64_t value; + if (nouveau_getparam(dev, NOUVEAU_GETPARAM_GRAPH_UNITS, &value)) + goto out_dev; + device->base.gpc_count = value & 0x000000ff; + device->base.mp_count = value >> 8; + return &device->base; out_dev: diff --git a/src/nouveau/winsys/nouveau_device.h b/src/nouveau/winsys/nouveau_device.h index e8fecb57400..719413c51a2 100644 --- a/src/nouveau/winsys/nouveau_device.h +++ b/src/nouveau/winsys/nouveau_device.h @@ -16,6 +16,9 @@ struct nouveau_ws_device { uint64_t vram_size; uint64_t gart_size; bool is_integrated; + + uint8_t gpc_count; + uint16_t mp_count; }; /* don't use directly, gets removed once the new UAPI is here */