summaryrefslogtreecommitdiffstats
path: root/gfx/skia/skia/src/gpu/GrUtil.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--gfx/skia/skia/src/gpu/GrUtil.h90
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