Index: content/test/gpu/page_sets/gpu_process_tests.py |
diff --git a/content/test/gpu/page_sets/gpu_process_tests.py b/content/test/gpu/page_sets/gpu_process_tests.py |
index dbe8bebf270c8b0cf5c35e4f08529b5724f2308d..0e41351e210a23fa924d6aa3b25a6f2a3cb6d45e 100644 |
--- a/content/test/gpu/page_sets/gpu_process_tests.py |
+++ b/content/test/gpu/page_sets/gpu_process_tests.py |
@@ -174,7 +174,11 @@ class NoGpuProcessSharedPageState(GpuProcessSharedPageState): |
test, finder_options, story_set) |
options = finder_options.browser_options |
- if sys.platform in ('cygwin', 'win32'): |
+ if options.browser_type.startswith('android'): |
+ # Hit id 8 from kSoftwareRenderingListJson, which applies to any platform. |
+ options.AppendExtraBrowserArgs('--gpu-testing-vendor-id=0x10de') |
+ options.AppendExtraBrowserArgs('--gpu-testing-device-id=0x0324') |
+ elif sys.platform in ('cygwin', 'win32'): |
# Hit id 34 from kSoftwareRenderingListJson. |
options.AppendExtraBrowserArgs('--gpu-testing-vendor-id=0x5333') |
options.AppendExtraBrowserArgs('--gpu-testing-device-id=0x8811') |
@@ -215,6 +219,8 @@ class SoftwareGpuProcessSharedPageState(GpuProcessSharedPageState): |
super(SoftwareGpuProcessSharedPageState, self).__init__( |
test, finder_options, story_set) |
options = finder_options.browser_options |
+ |
+ # Hit exception from id 50 from kSoftwareRenderingListJson. |
options.AppendExtraBrowserArgs('--gpu-testing-vendor-id=0x10de') |
options.AppendExtraBrowserArgs('--gpu-testing-device-id=0x0de1') |
options.AppendExtraBrowserArgs('--gpu-testing-gl-vendor=VMware') |
@@ -286,7 +292,14 @@ class DriverBugWorkaroundsUponGLRendererShared(GpuProcessSharedPageState): |
super(DriverBugWorkaroundsUponGLRendererShared, self).__init__( |
test, finder_options, story_set) |
options = finder_options.browser_options |
- if sys.platform in ('cygwin', 'win32'): |
+ if options.browser_type.startswith('android'): |
+ # Hit id 108 from kGpuDriverBugListJson. |
+ options.AppendExtraBrowserArgs('--gpu-testing-gl-vendor=' \ |
+ 'NVIDIA Corporation') |
+ options.AppendExtraBrowserArgs('--gpu-testing-gl-renderer=NVIDIA Tegra') |
+ options.AppendExtraBrowserArgs('--gpu-testing-gl-version=' \ |
+ 'OpenGL ES 3.1 NVIDIA 343.00') |
+ elif sys.platform in ('cygwin', 'win32'): |
# Hit id 51 and 87 from kGpuDriverBugListJson. |
options.AppendExtraBrowserArgs('--gpu-testing-vendor-id=0x1002') |
options.AppendExtraBrowserArgs('--gpu-testing-device-id=0x6779') |
@@ -308,11 +321,14 @@ class DriverBugWorkaroundsUponGLRendererShared(GpuProcessSharedPageState): |
class DriverBugWorkaroundsUponGLRendererPage(DriverBugWorkaroundsTestsPage): |
- def __init__(self, story_set, expectations): |
+ def __init__(self, story_set, expectations, is_platform_android): |
self.expected_workaround = None |
self.unexpected_workaround = None |
- if sys.platform in ('cygwin', 'win32'): |
+ if is_platform_android: |
+ self.expected_workaround = \ |
+ "unpack_overlapping_rows_separately_unpack_buffer" |
+ elif sys.platform in ('cygwin', 'win32'): |
self.expected_workaround = "texsubimage_faster_than_teximage" |
self.unexpected_workaround = "disable_d3d11" |
elif sys.platform.startswith('linux'): |
@@ -460,8 +476,9 @@ class ReadbackWebGLGpuProcessSharedPageState(GpuProcessSharedPageState): |
super(ReadbackWebGLGpuProcessSharedPageState, self).__init__( |
test, finder_options, story_set) |
options = finder_options.browser_options |
+ is_platform_android = options.browser_type.startswith('android') |
- if sys.platform.startswith('linux'): |
+ if sys.platform.startswith('linux') and not is_platform_android: |
# Hit id 110 from kSoftwareRenderingListJson. |
options.AppendExtraBrowserArgs('--gpu-testing-vendor-id=0x10de') |
options.AppendExtraBrowserArgs('--gpu-testing-device-id=0x0de1') |
@@ -471,16 +488,17 @@ class ReadbackWebGLGpuProcessSharedPageState(GpuProcessSharedPageState): |
options.AppendExtraBrowserArgs('--gpu-testing-gl-version="3.0 Mesa 11.2"') |
class ReadbackWebGLGpuProcessPage(gpu_test_base.PageBase): |
- def __init__(self, story_set, expectations): |
+ def __init__(self, story_set, expectations, is_platform_android): |
super(ReadbackWebGLGpuProcessPage, self).__init__( |
url='chrome:gpu', |
name='GpuProcess.readback_webgl_gpu_process', |
page_set=story_set, |
shared_page_state_class=ReadbackWebGLGpuProcessSharedPageState, |
expectations=expectations) |
+ self.is_platform_android = is_platform_android |
def Validate(self, tab, results): |
- if sys.platform.startswith('linux'): |
+ if sys.platform.startswith('linux') and not self.is_platform_android: |
feature_status_js = 'browserBridge.gpuInfo.featureStatus.featureStatus' |
feature_status_list = tab.EvaluateJavaScript(feature_status_js) |
result = True |
@@ -592,14 +610,11 @@ class GpuProcessTestsStorySet(story_set_module.StorySet): |
self.AddStory(FunctionalVideoPage(self, expectations)) |
self.AddStory(GpuInfoCompletePage(self, expectations)) |
self.AddStory(NoGpuProcessPage(self, expectations)) |
- self.AddStory(SoftwareGpuProcessPage(self, expectations)) |
self.AddStory(DriverBugWorkaroundsInGpuProcessPage(self, expectations)) |
- self.AddStory(IdentifyActiveGpuPage1(self, expectations)) |
- self.AddStory(IdentifyActiveGpuPage2(self, expectations)) |
- self.AddStory(IdentifyActiveGpuPage3(self, expectations)) |
- self.AddStory(IdentifyActiveGpuPage4(self, expectations)) |
- self.AddStory(ReadbackWebGLGpuProcessPage(self, expectations)) |
- self.AddStory(DriverBugWorkaroundsUponGLRendererPage(self, expectations)) |
+ self.AddStory(ReadbackWebGLGpuProcessPage(self, expectations, |
+ is_platform_android)) |
+ self.AddStory(DriverBugWorkaroundsUponGLRendererPage(self, expectations, |
+ is_platform_android)) |
self.AddStory(EqualBugWorkaroundsInBrowserAndGpuProcessPage(self, |
expectations)) |
if not is_platform_android: |
@@ -607,6 +622,17 @@ class GpuProcessTestsStorySet(story_set_module.StorySet): |
self.AddStory(HasTransparentVisualsGpuProcessPage(self, expectations)) |
self.AddStory(NoTransparentVisualsGpuProcessPage(self, expectations)) |
+ # There is no Android multi-gpu configuration and the helper |
+ # gpu_info_collector.cc::IdentifyActiveGPU is not even called. |
+ self.AddStory(IdentifyActiveGpuPage1(self, expectations)) |
+ self.AddStory(IdentifyActiveGpuPage2(self, expectations)) |
+ self.AddStory(IdentifyActiveGpuPage3(self, expectations)) |
+ self.AddStory(IdentifyActiveGpuPage4(self, expectations)) |
+ |
+ # There is currently no entry in kSoftwareRenderingListJson that enables |
+ # a software GL driver on Android. |
+ self.AddStory(SoftwareGpuProcessPage(self, expectations)) |
+ |
@property |
def allow_mixed_story_states(self): |
# Return True here in order to be able to run pages with different browser |