diff options
Diffstat (limited to 'chromium/gpu/config')
-rw-r--r-- | chromium/gpu/config/gpu_control_list_jsons.h | 1 | ||||
-rw-r--r-- | chromium/gpu/config/gpu_driver_bug_list_json.cc | 134 | ||||
-rw-r--r-- | chromium/gpu/config/gpu_driver_bug_workaround_type.h | 6 | ||||
-rw-r--r-- | chromium/gpu/config/gpu_info.cc | 3 | ||||
-rw-r--r-- | chromium/gpu/config/gpu_info.h | 3 | ||||
-rw-r--r-- | chromium/gpu/config/gpu_info_collector.cc | 2 | ||||
-rw-r--r-- | chromium/gpu/config/gpu_info_collector_unittest.cc | 2 | ||||
-rw-r--r-- | chromium/gpu/config/gpu_info_collector_win.cc | 11 | ||||
-rw-r--r-- | chromium/gpu/config/software_rendering_list_json.cc | 115 |
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" + ] } ] } |