1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /*
- * Copyright 2019 Google LLC
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef GrUtil_DEFINED
- #define GrUtil_DEFINED
- #include "include/core/SkTypes.h"
- enum GrIntelGpuFamily {
- kUnknown_IntelGpuFamily,
- // 6th gen
- kSandyBridge_IntelGpuFamily,
- // 7th gen
- kIvyBridge_IntelGpuFamily,
- kValleyView_IntelGpuFamily, // aka BayTrail
- kHaswell_IntelGpuFamily,
- // 8th gen
- kCherryView_IntelGpuFamily, // aka Braswell
- kBroadwell_IntelGpuFamily,
- // 9th gen
- kApolloLake_IntelGpuFamily,
- kSkyLake_IntelGpuFamily,
- kGeminiLake_IntelGpuFamily,
- kKabyLake_IntelGpuFamily,
- kCoffeeLake_IntelGpuFamily,
- // 11th gen
- kIceLake_IntelGpuFamily,
- kFirstGen9_IntelGpuFamily = kApolloLake_IntelGpuFamily,
- };
- GrIntelGpuFamily GrGetIntelGpuFamily(uint32_t deviceID) {
- // https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units
- uint32_t maskedID = deviceID & 0xFF00;
- switch (maskedID) {
- case 0x0100:
- switch (deviceID & 0xFFF0) {
- case 0x0100:
- case 0x0110:
- case 0x0120:
- return kSandyBridge_IntelGpuFamily;
- case 0x0150:
- if (deviceID == 0x0155 || deviceID == 0x0157) {
- return kValleyView_IntelGpuFamily;
- }
- if (deviceID == 0x0152 || deviceID == 0x015A) {
- return kIvyBridge_IntelGpuFamily;
- }
- break;
- case 0x0160:
- return kIvyBridge_IntelGpuFamily;
- default:
- break;
- }
- break;
- case 0x0F00:
- return kValleyView_IntelGpuFamily;
- case 0x0400:
- case 0x0A00:
- case 0x0D00:
- return kHaswell_IntelGpuFamily;
- case 0x2200:
- return kCherryView_IntelGpuFamily;
- case 0x1600:
- return kBroadwell_IntelGpuFamily;
- case 0x5A00:
- return kApolloLake_IntelGpuFamily;
- case 0x1900:
- return kSkyLake_IntelGpuFamily;
- case 0x3100:
- return kGeminiLake_IntelGpuFamily;
- case 0x5900:
- return kKabyLake_IntelGpuFamily;
- case 0x3E00:
- return kCoffeeLake_IntelGpuFamily;
- case 0x8A00:
- return kIceLake_IntelGpuFamily;
- default:
- break;
- }
- return kUnknown_IntelGpuFamily;
- }
- #endif
|