New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 840035 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows
Pri: 2
Type: Bug



Sign in to add a comment

Use Intel GPU codenames in blacklisting

Project Member Reported by zmo@chromium.org, May 4 2018

Issue description

This will make a bunch of existing cases and some future cases simpler/easier

This includes:
Haswell
Broadwell
SandyBridge
IvyBridge
SkyLake
KabyLake
CoffeeLake
CherryView

Their detection can be found at https://github.com/GameTechDev/gpudetect/blob/master/DeviceId.cpp

I am not sure about CherryView though. Our driver bug list json file lists four devices for CherryView ("0x22b0", "0x22b1", "0x22b2", "0x22b3"), not sure if using 0x22__ is enough to detect CherryView.
 

Comment 1 by yang...@intel.com, May 5 2018

This will make life easier to write blacklist in future, but I'm afraid the logic might need to be more complicated. Let me bring you more details as below:
1. Actually these codenames are for platforms, which including CPU, GPU and many other components. The codenames listed here are mostly for desktop, and we have other codenames for laptops and mobiles, such as BayTrail, BrasWell, Broxton, ApolloLake, etc. 
2. Specific to GPU, we used to assign a digit to it, which means the generation. For example, IvyBridge and BayTrail are both Gen7, Haswell is Gen7.5, Broadwell and Braswell are Gen8, ApolloLake and Skylake are Gen9. Note that we had .5 generation maybe because the improvement was not big enough for a new generation. Things would be easy if different design maps to a different digit. However, now we get ride of all .5 generation (I don't know from when). For example, we call Haswell Gen7 now. But there are some features and bugs starting from Gen7.5, so we have to support logic like "gen >= 8 || is_haswell" (See Mesa code src/intel/compiler/brw_fs_generator.cpp:967). 
3. No codename spans more than 1 generation. That is, GPU generation and codename has 1:N mapping. 
4. For codename, we have a shorter 3-character naming for each one. For example, Skylake -> skl, Kabylake -> kbl, Coffeelake -> cfl. I suggest to use them in code for simplification.

As reference, you may check Mesa code for more details. include/pci_ids/i965_pci_ids.h gives a list of ID and codename, and I suggest to somehow keep a copy of this file in Chrome for future maintenance. src/intel/dev/gen_device_info.c gives a mapping to its generation, and you may also check https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units for this mapping. 

Project Member

Comment 2 by bugdroid1@chromium.org, May 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/930da6a607bda837c6bc5ddb96cfad8f2d959f8d

commit 930da6a607bda837c6bc5ddb96cfad8f2d959f8d
Author: Zhenyao Mo <zmo@chromium.org>
Date: Wed May 09 01:59:08 2018

Use Intel GPU codenames in blacklisting.

BUG= 840035 
TEST=gpu_unittests
R=kbr@chromium.org,yang.gu@intel.com

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I24164e419c78d116d7ef665345690f17381764fb
Reviewed-on: https://chromium-review.googlesource.com/1045613
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557061}
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/content/browser/gpu/gpu_data_manager_testing_autogen.cc
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/content/browser/gpu/gpu_data_manager_testing_exceptions_autogen.h
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_blacklist_unittest.cc
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_control_list.cc
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_control_list.h
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_control_list_entry_unittest.cc
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_control_list_format.txt
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_control_list_testing.json
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_control_list_testing_arrays_and_structs_autogen.h
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_control_list_testing_autogen.cc
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_control_list_testing_entry_enums_autogen.h
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_control_list_testing_exceptions_autogen.h
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/gpu_driver_bug_list.json
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/process_json.py
[modify] https://crrev.com/930da6a607bda837c6bc5ddb96cfad8f2d959f8d/gpu/config/software_rendering_list.json

Comment 3 by zmo@chromium.org, May 11 2018

Status: Fixed (was: Assigned)

Sign in to add a comment