diff options
Diffstat (limited to '')
-rw-r--r-- | gfx/skia/skia/src/gpu/GrUtil.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/gfx/skia/skia/src/gpu/GrUtil.h b/gfx/skia/skia/src/gpu/GrUtil.h new file mode 100644 index 0000000000..5412f0b292 --- /dev/null +++ b/gfx/skia/skia/src/gpu/GrUtil.h @@ -0,0 +1,90 @@ +/* + * 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, +}; + +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 |