summaryrefslogtreecommitdiff
path: root/chromium/gpu/config
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/gpu/config')
-rw-r--r--chromium/gpu/config/gpu_control_list_jsons.h1
-rw-r--r--chromium/gpu/config/gpu_driver_bug_list_json.cc134
-rw-r--r--chromium/gpu/config/gpu_driver_bug_workaround_type.h6
-rw-r--r--chromium/gpu/config/gpu_info.cc3
-rw-r--r--chromium/gpu/config/gpu_info.h3
-rw-r--r--chromium/gpu/config/gpu_info_collector.cc2
-rw-r--r--chromium/gpu/config/gpu_info_collector_unittest.cc2
-rw-r--r--chromium/gpu/config/gpu_info_collector_win.cc11
-rw-r--r--chromium/gpu/config/software_rendering_list_json.cc115
9 files changed, 226 insertions, 51 deletions
diff --git a/chromium/gpu/config/gpu_control_list_jsons.h b/chromium/gpu/config/gpu_control_list_jsons.h
index 671aa9edefa..71d574cbe82 100644
--- a/chromium/gpu/config/gpu_control_list_jsons.h
+++ b/chromium/gpu/config/gpu_control_list_jsons.h
@@ -10,7 +10,6 @@
namespace gpu {
GPU_EXPORT extern const char kGpuDriverBugListJson[];
-GPU_EXPORT extern const char kGpuSwitchingListJson[];
GPU_EXPORT extern const char kSoftwareRenderingListJson[];
} // namespace gpu
diff --git a/chromium/gpu/config/gpu_driver_bug_list_json.cc b/chromium/gpu/config/gpu_driver_bug_list_json.cc
index 85be6b7d204..b9354a97b95 100644
--- a/chromium/gpu/config/gpu_driver_bug_list_json.cc
+++ b/chromium/gpu/config/gpu_driver_bug_list_json.cc
@@ -19,7 +19,7 @@ const char kGpuDriverBugListJson[] = LONG_STRING_CONST(
{
"name": "gpu driver bug list",
// Please update the version number whenever you change this file.
- "version": "9.24",
+ "version": "9.29",
"entries": [
{
"id": 1,
@@ -1739,7 +1739,11 @@ LONG_STRING_CONST(
"description": "Mac Drivers store texture level parameters on int16_t that overflow",
"cr_bugs": [610153],
"os": {
- "type": "macosx"
+ "type": "macosx",
+ "version": {
+ "op": "<",
+ "value": "10.12.2"
+ }
},
"features": [
"use_shadowed_tex_level_params"
@@ -2171,14 +2175,15 @@ LONG_STRING_CONST(
},
{
"id": 201,
- "cr_bugs": [659326],
+ "cr_bugs": [659326,639760],
"description": "AMD drivers in Linux require invariant qualifier to match between vertex and fragment shaders",
"os": {
"type": "linux"
},
"vendor_id": "0x1002",
"features": [
- "dont_remove_invariant_for_fragment_input"
+ "dont_remove_invariant_for_fragment_input",
+ "remove_invariant_and_centroid_for_essl3"
]
},
{
@@ -2207,6 +2212,127 @@ LONG_STRING_CONST(
"features": [
"remove_invariant_and_centroid_for_essl3"
]
+ },
+ {
+ "id": 205,
+ "description": "Adreno 5xx support for EXT_multisampled_render_to_texture is buggy on Android 7.1",
+ "cr_bugs": [663811],
+ "os": {
+ "type": "android",
+ "version": {
+ "op": "=",
+ "value": "7.1.0"
+ }
+ },
+ "gl_renderer": "Adreno \\(TM\\) 5.*",
+ "disabled_extensions": [
+ "GL_EXT_multisampled_render_to_texture"
+ ]
+ },
+ {
+ "id": 206,
+ "description": "Disable KHR_blend_equation_advanced until cc shaders are updated",
+ "cr_bugs": [661715],
+ "disabled_extensions": [
+ "GL_KHR_blend_equation_advanced",
+ "GL_KHR_blend_equation_advanced_coherent"
+ ]
+ },
+ {
+ "id": 207,
+ "description": "Decode and Encode before generateMipmap for srgb format textures on Windows",
+ "cr_bugs": [634519],
+ "os" : {
+ "type": "win"
+ },
+ "features" : [
+ "decode_encode_srgb_for_generatemipmap"
+ ]
+ },
+ {
+ "id": 208,
+ "description": "Decode and Encode before generateMipmap for srgb format textures on Linux Mesa ANGLE path",
+ "cr_bugs": [634519],
+ "os": {
+ "type": "linux"
+ },
+ "gl_renderer": "ANGLE.*",
+ "vendor_id": "0x8086",
+ "features": [
+ "decode_encode_srgb_for_generatemipmap"
+ ]
+ },
+ {
+ "id": 209,
+ "description": "Decode and Encode before generateMipmap for srgb format textures on Chromeos Intel",
+ "cr_bugs": [634519],
+ "os": {
+ "type": "chromeos"
+ },
+ "vendor_id": "0x8086",
+ "features": [
+ "decode_encode_srgb_for_generatemipmap"
+ ]
+ },
+ {
+ "id": 210,
+ "description": "Decode and Encode before generateMipmap for srgb format textures on Linux AMD",
+ "cr_bugs": [634519],
+ "os": {
+ "type": "linux"
+ },
+ "vendor_id": "0x1002",
+ "features": [
+ "decode_encode_srgb_for_generatemipmap"
+ ]
+ },
+ {
+ "id": 211,
+ "description": "Rewrite -float to 0.0 - float for Intel Mac",
+ "cr_bugs": [672380],
+ "os": {
+ "type": "macosx",
+ "version": {
+ "op": "<=",
+ "value": "10.11"
+ }
+ },
+ "vendor_id": "0x8086",
+ "features": [
+ "rewrite_float_unary_minus_operator"
+ ]
+ },
+ {
+ "id": 212,
+ "description": "Program binaries don't contain transform feedback varyings on Qualcomm GPUs",
+ "cr_bugs": [658074],
+ "os": {
+ "type": "android"
+ },
+ "gl_renderer": "Adreno.*",
+ "features": [
+ "disable_program_caching_for_transform_feedback"
+ ]
+ },
+ {
+ "id": 213,
+ "description": "The Mali-Gxx driver does not guarantee flush ordering",
+ "cr_bugs": [678508],
+ "gl_vendor": "ARM.*",
+ "gl_renderer": "Mali-G.*",
+ "features": [
+ "use_virtualized_gl_contexts"
+ ]
+ },
+ {
+ "id": 214,
+ "description": "Certain versions of Qualcomm driver don't setup scissor state correctly when FBO0 is bound.",
+ "cr_bugs": [670607],
+ "gl_vendor": "Qualcomm.*",
+ "machine_model_name": ["Nexus 7"],
+ "features": [
+ "force_update_scissor_state_when_binding_fbo0"
+ ]
}
]
// Please update the version number at beginning of this file whenever you
diff --git a/chromium/gpu/config/gpu_driver_bug_workaround_type.h b/chromium/gpu/config/gpu_driver_bug_workaround_type.h
index 1d5d4a811fe..fecb82c19a4 100644
--- a/chromium/gpu/config/gpu_driver_bug_workaround_type.h
+++ b/chromium/gpu/config/gpu_driver_bug_workaround_type.h
@@ -73,6 +73,8 @@
disable_post_sub_buffers_for_onscreen_surfaces) \
GPU_OP(DISABLE_PROGRAM_CACHE, \
disable_program_cache) \
+ GPU_OP(DISABLE_PROGRAM_CACHING_FOR_TRANSFORM_FEEDBACK, \
+ disable_program_caching_for_transform_feedback) \
GPU_OP(DISABLE_PROGRAM_DISK_CACHE, \
disable_program_disk_cache) \
GPU_OP(DISABLE_TEXTURE_CUBE_MAP_SEAMLESS, \
@@ -103,6 +105,8 @@
force_discrete_gpu) \
GPU_OP(FORCE_INTEGRATED_GPU, \
force_integrated_gpu) \
+ GPU_OP(FORCE_UPDATE_SCISSOR_STATE_WHEN_BINDING_FBO0, \
+ force_update_scissor_state_when_binding_fbo0) \
GPU_OP(GET_FRAG_DATA_INFO_BUG, \
get_frag_data_info_bug) \
GPU_OP(GL_CLEAR_BROKEN, \
@@ -153,6 +157,8 @@
reverse_point_sprite_coord_origin) \
GPU_OP(REWRITE_DO_WHILE_LOOPS, \
rewrite_do_while_loops) \
+ GPU_OP(REWRITE_FLOAT_UNARY_MINUS_OPERATOR, \
+ rewrite_float_unary_minus_operator) \
GPU_OP(REWRITE_TEXELFETCHOFFSET_TO_TEXELFETCH, \
rewrite_texelfetchoffset_to_texelfetch) \
GPU_OP(SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS, \
diff --git a/chromium/gpu/config/gpu_info.cc b/chromium/gpu/config/gpu_info.cc
index 3af11f67644..6ce2d784dcf 100644
--- a/chromium/gpu/config/gpu_info.cc
+++ b/chromium/gpu/config/gpu_info.cc
@@ -76,6 +76,7 @@ GPUInfo::GPUInfo()
sandboxed(false),
process_crash_count(0),
in_process_gpu(true),
+ passthrough_cmd_decoder(false),
basic_info_state(kCollectInfoNone),
context_info_state(kCollectInfoNone),
#if defined(OS_WIN)
@@ -125,6 +126,7 @@ void GPUInfo::EnumerateFields(Enumerator* enumerator) const {
bool sandboxed;
int process_crash_count;
bool in_process_gpu;
+ bool passthrough_cmd_decoder;
CollectInfoResult basic_info_state;
CollectInfoResult context_info_state;
#if defined(OS_WIN)
@@ -188,6 +190,7 @@ void GPUInfo::EnumerateFields(Enumerator* enumerator) const {
enumerator->AddBool("sandboxed", sandboxed);
enumerator->AddInt("processCrashCount", process_crash_count);
enumerator->AddBool("inProcessGpu", in_process_gpu);
+ enumerator->AddBool("passthroughCmdDecoder", passthrough_cmd_decoder);
enumerator->AddInt("basicInfoState", basic_info_state);
enumerator->AddInt("contextInfoState", context_info_state);
#if defined(OS_WIN)
diff --git a/chromium/gpu/config/gpu_info.h b/chromium/gpu/config/gpu_info.h
index fbb6aac4de9..86479489797 100644
--- a/chromium/gpu/config/gpu_info.h
+++ b/chromium/gpu/config/gpu_info.h
@@ -224,6 +224,9 @@ struct GPU_EXPORT GPUInfo {
// True if the GPU is running in the browser process instead of its own.
bool in_process_gpu;
+ // True if the GPU process is using the passthrough command decoder.
+ bool passthrough_cmd_decoder;
+
// The state of whether the basic/context/DxDiagnostics info is collected and
// if the collection fails or not.
CollectInfoResult basic_info_state;
diff --git a/chromium/gpu/config/gpu_info_collector.cc b/chromium/gpu/config/gpu_info_collector.cc
index 79ae1c88393..2d2dfe2db47 100644
--- a/chromium/gpu/config/gpu_info_collector.cc
+++ b/chromium/gpu/config/gpu_info_collector.cc
@@ -228,6 +228,8 @@ void MergeGPUInfoGL(GPUInfo* basic_gpu_info,
basic_gpu_info->sandboxed = context_gpu_info.sandboxed;
basic_gpu_info->direct_rendering = context_gpu_info.direct_rendering;
basic_gpu_info->in_process_gpu = context_gpu_info.in_process_gpu;
+ basic_gpu_info->passthrough_cmd_decoder =
+ context_gpu_info.passthrough_cmd_decoder;
basic_gpu_info->context_info_state = context_gpu_info.context_info_state;
basic_gpu_info->initialization_time = context_gpu_info.initialization_time;
basic_gpu_info->video_decode_accelerator_capabilities =
diff --git a/chromium/gpu/config/gpu_info_collector_unittest.cc b/chromium/gpu/config/gpu_info_collector_unittest.cc
index 7c31ce6002a..68c1ddc06fb 100644
--- a/chromium/gpu/config/gpu_info_collector_unittest.cc
+++ b/chromium/gpu/config/gpu_info_collector_unittest.cc
@@ -166,7 +166,7 @@ class GPUInfoCollectorTest
void TearDown() override {
::gl::MockGLInterface::SetGLInterface(NULL);
gl_.reset();
- gl::init::ClearGLBindings();
+ gl::init::ShutdownGL();
testing::Test::TearDown();
}
diff --git a/chromium/gpu/config/gpu_info_collector_win.cc b/chromium/gpu/config/gpu_info_collector_win.cc
index 1354f3fe5bf..f983b65a9be 100644
--- a/chromium/gpu/config/gpu_info_collector_win.cc
+++ b/chromium/gpu/config/gpu_info_collector_win.cc
@@ -365,7 +365,7 @@ CollectInfoResult CollectGpuID(uint32_t* vendor_id, uint32_t* device_id) {
*vendor_id = 0;
*device_id = 0;
- // Taken from http://developer.nvidia.com/object/device_ids.html
+ // Taken from http://www.nvidia.com/object/device_ids.html
DISPLAY_DEVICE dd;
dd.cb = sizeof(DISPLAY_DEVICE);
std::wstring id;
@@ -411,7 +411,7 @@ CollectInfoResult CollectBasicGraphicsInfo(GPUInfo* gpu_info) {
DISPLAY_LINK_INSTALLATION_STATUS_MAX);
}
- // Taken from http://developer.nvidia.com/object/device_ids.html
+ // Taken from http://www.nvidia.com/object/device_ids.html
DISPLAY_DEVICE dd;
dd.cb = sizeof(DISPLAY_DEVICE);
std::wstring id;
@@ -423,8 +423,11 @@ CollectInfoResult CollectBasicGraphicsInfo(GPUInfo* gpu_info) {
}
if (id.length() <= 20) {
- gpu_info->basic_info_state = kCollectInfoNonFatalFailure;
- return kCollectInfoNonFatalFailure;
+ // Check if it is the RDP mirror driver "RDPUDD Chained DD"
+ if (wcscmp(dd.DeviceString, L"RDPUDD Chained DD") != 0) {
+ gpu_info->basic_info_state = kCollectInfoNonFatalFailure;
+ return kCollectInfoNonFatalFailure;
+ }
}
DeviceIDToVendorAndDevice(id, &gpu_info->gpu.vendor_id,
diff --git a/chromium/gpu/config/software_rendering_list_json.cc b/chromium/gpu/config/software_rendering_list_json.cc
index ed76fd25880..79be0cedc1f 100644
--- a/chromium/gpu/config/software_rendering_list_json.cc
+++ b/chromium/gpu/config/software_rendering_list_json.cc
@@ -18,7 +18,7 @@ const char kSoftwareRenderingListJson[] = LONG_STRING_CONST(
{
"name": "software rendering list",
// Please update the version number whenever you change this file.
- "version": "12.06",
+ "version": "12.13",
"entries": [
{
"id": 1,
@@ -1070,6 +1070,7 @@ LONG_STRING_CONST(
},
"vendor_id": "0x8086",
"device_id": ["0x0116", "0x0126"],
+ "multi_gpu_category": "any",
"features": [
"all"
]
@@ -1254,7 +1255,7 @@ LONG_STRING_CONST(
},
{
"id": 122,
- "description": "GPU rasterization should only be enabled on NVIDIA Pascal and Maxwell, Intel Broadwell+, and AMD RX-R5 GPUs for now.",
+ "description": "GPU rasterization should only be enabled on NVIDIA Pascal and Maxwell, Intel Broadwell+, and AMD RX-R2 GPUs for now.",
"cr_bugs": [643850],
"os": {
"type": "win"
@@ -1291,7 +1292,7 @@ LONG_STRING_CONST(
"type": "win",
"version": {
"op": ">=",
- "value": "10.0"
+ "value": "8.1"
}
},
"vendor_id": "0x8086",
@@ -1316,34 +1317,22 @@ LONG_STRING_CONST(
"type": "win",
"version": {
"op": ">=",
- "value": "10.0"
+ "value": "8.1"
}
},
"vendor_id": "0x1002",
- "device_id": ["0x1309", "0x130a", "0x130c", "0x130d", "0x130e",
- "0x130f", "0x130f", "0x130f", "0x130f", "0x130f",
- "0x1313", "0x1313", "0x1313", "0x1313", "0x1315",
- "0x1315", "0x1315", "0x1315", "0x1315", "0x1316",
- "0x1318", "0x131c", "0x131d", "0x6600", "0x6604",
- "0x6604", "0x6605", "0x6605", "0x6610", "0x6610",
- "0x6610", "0x6611", "0x6617", "0x6640", "0x6646",
- "0x6646", "0x6647", "0x6647", "0x6658", "0x665d",
- "0x665f", "0x6660", "0x6660", "0x6663", "0x6664",
- "0x6665", "0x6665", "0x6665", "0x6667", "0x67b0",
- "0x67b0", "0x67b1", "0x67b1", "0x67b9", "0x67df",
- "0x67df", "0x67ef", "0x67ef", "0x67ef", "0x67ef",
- "0x6810", "0x6811", "0x6820", "0x6820", "0x6821",
- "0x6821", "0x682b", "0x6835", "0x6900", "0x6900",
- "0x6900", "0x6900", "0x6900", "0x6901", "0x6907",
- "0x6907", "0x6920", "0x6920", "0x6921", "0x6938",
- "0x6938", "0x6938", "0x6939", "0x6939", "0x6939",
- "0x7300", "0x7300", "0x7300", "0x7300", "0x9851",
- "0x9851", "0x9855", "0x9855", "0x9874", "0x9874",
- "0x9874", "0x9874", "0x9874", "0x9874", "0x9874",
- "0x9874", "0x9874", "0x9874", "0x9874", "0x9874",
- "0x9874", "0x9874", "0x9874", "0x9874", "0x9874",
- "0x9874", "0x9874", "0x9874", "0x9874", "0x98e4",
- "0x98e4", "0x98e4"]
+ "device_id": ["0x1309", "0x130a", "0x130b", "0x130c", "0x130d",
+ "0x130e", "0x130f", "0x1313", "0x1315", "0x1316",
+ "0x1318", "0x131b", "0x131c", "0x131d", "0x6600",
+ "0x6604", "0x6605", "0x6610", "0x6611", "0x6617",
+ "0x6640", "0x6646", "0x6647", "0x6647", "0x6658",
+ "0x665d", "0x665f", "0x6660", "0x6663", "0x6664",
+ "0x6665", "0x6667", "0x67b0", "0x67b1", "0x67b9",
+ "0x67df", "0x67ef", "0x6810", "0x6811", "0x6820",
+ "0x6821", "0x682b", "0x6835", "0x6900", "0x6901",
+ "0x6907", "0x6920", "0x6921", "0x6938", "0x6939",
+ "0x7300", "0x9851", "0x9852", "0x9853", "0x9854",
+ "0x9855", "0x9856", "0x9874", "0x98e4"]
}
]
},
@@ -1365,7 +1354,7 @@ LONG_STRING_CONST(
},
{
"id": 124,
- "description": "New AMD drivers have rendering glitches with GPU Rasterization",
+ "description": "Some AMD drivers have rendering glitches with GPU Rasterization",
"cr_bugs": [653538],
"os" : {
"type": "win"
@@ -1375,6 +1364,14 @@ LONG_STRING_CONST(
"op": ">",
"value": "16.200.1035.1001"
},
+ "exceptions": [
+ {
+ "driver_version": {
+ "op": ">=",
+ "value": "21.19.384.0"
+ }
+ }
+ ],
"features": [
"gpu_rasterization"
]
@@ -1410,18 +1407,6 @@ LONG_STRING_CONST(
]
},
{
- "id": 127,
- "description": "AMD cards have rendering issues with GPU rasterization on Windows",
- "cr_bugs": [660897],
- "os": {
- "type": "win"
- },
- "vendor_id": "0x1002",
- "features": [
- "gpu_rasterization"
- ]
- },
- {
"id": 128,
"description": "WebGL 2 is not yet ready on Android",
"cr_bugs": [295792, 641635],
@@ -1447,6 +1432,54 @@ LONG_STRING_CONST(
"features": [
"all"
]
+ },
+ {
+ "id": 130,
+ "description": "Older NVIDIA GPUs on macOS render incorrectly",
+ "cr_bugs": [676829, 676975],
+ "os": {
+ "type": "macosx"
+ },
+ "vendor_id": "0x10de",
+ "device_id": ["0x0407", "0x0647", "0x0863"],
+ "multi_gpu_category": "any",
+ "features": [
+ "all"
+ ]
+ },
+ {
+ "id": 131,
+ "description": "Mesa drivers older than 10.4.3 is crash prone on Linux Intel i965gm",
+ "cr_bugs": [462426],
+ "os": {
+ "type": "linux"
+ },
+ "driver_vendor": "Mesa",
+ "driver_version": {
+ "op": "<",
+ "value": "10.4.3"
+ },
+ "vendor_id": "8086",
+ "device_id": ["0x2a02"],
+ "features": [
+ "all"
+ ]
+ },
+ {
+ "id": 132,
+ "description": "MediaCodec on VideoCore IV HW crashes on JB",
+ "cr_bugs": [654905],
+ "os": {
+ "type": "android",
+ "version": {
+ "op": "<",
+ "value": "4.4"
+ }
+ },
+ "gl_renderer": ".*VideoCore IV.*",
+ "features": [
+ "accelerated_video_decode"
+ ]
}
]
}