| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 import sys | 4 import sys |
| 5 from telemetry.story import story_set as story_set_module | 5 from telemetry.story import story_set as story_set_module |
| 6 from telemetry.page import page_test | 6 from telemetry.page import page_test |
| 7 | 7 |
| 8 from gpu_tests import gpu_test_base | 8 from gpu_tests import gpu_test_base |
| 9 | 9 |
| 10 class GpuProcessSharedPageState(gpu_test_base.GpuSharedPageState): | 10 class GpuProcessSharedPageState(gpu_test_base.GpuSharedPageState): |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 name='GpuProcess.identify_active_gpu4', | 360 name='GpuProcess.identify_active_gpu4', |
| 361 page_set=story_set, | 361 page_set=story_set, |
| 362 shared_page_state_class=IdentifyActiveGpuSharedPageState4, | 362 shared_page_state_class=IdentifyActiveGpuSharedPageState4, |
| 363 expectations=expectations, | 363 expectations=expectations, |
| 364 active_gpu=active_gpu, | 364 active_gpu=active_gpu, |
| 365 inactive_gpus=inactive_gpus) | 365 inactive_gpus=inactive_gpus) |
| 366 | 366 |
| 367 def Validate(self, tab, results): | 367 def Validate(self, tab, results): |
| 368 super(IdentifyActiveGpuPage4, self).Validate(tab, results) | 368 super(IdentifyActiveGpuPage4, self).Validate(tab, results) |
| 369 | 369 |
| 370 |
| 371 class ReadbackWebGLGpuProcessSharedPageState(GpuProcessSharedPageState): |
| 372 def __init__(self, test, finder_options, story_set): |
| 373 super(ReadbackWebGLGpuProcessSharedPageState, self).__init__( |
| 374 test, finder_options, story_set) |
| 375 options = finder_options.browser_options |
| 376 |
| 377 if sys.platform.startswith('linux'): |
| 378 # Hit id 110 from kSoftwareRenderingListJson. |
| 379 options.AppendExtraBrowserArgs('--gpu-testing-vendor-id=0x10de') |
| 380 options.AppendExtraBrowserArgs('--gpu-testing-device-id=0x0de1') |
| 381 options.AppendExtraBrowserArgs('--gpu-testing-gl-vendor=VMware') |
| 382 options.AppendExtraBrowserArgs('--gpu-testing-gl-renderer=Gallium 0.4 ' \ |
| 383 'on llvmpipe (LLVM 3.4, 256 bits)') |
| 384 options.AppendExtraBrowserArgs('--gpu-testing-gl-version="3.0 Mesa 11.2"') |
| 385 |
| 386 class ReadbackWebGLGpuProcessPage(gpu_test_base.PageBase): |
| 387 def __init__(self, story_set, expectations): |
| 388 super(ReadbackWebGLGpuProcessPage, self).__init__( |
| 389 url='chrome:gpu', |
| 390 name='GpuProcess.readback_webgl_gpu_process', |
| 391 page_set=story_set, |
| 392 shared_page_state_class=ReadbackWebGLGpuProcessSharedPageState, |
| 393 expectations=expectations) |
| 394 |
| 395 def Validate(self, tab, results): |
| 396 if sys.platform.startswith('linux'): |
| 397 feature_status_js = 'browserBridge.gpuInfo.featureStatus.featureStatus' |
| 398 feature_status_list = tab.EvaluateJavaScript(feature_status_js) |
| 399 result = True |
| 400 for name, status in feature_status_list.items(): |
| 401 if name == 'multiple_raster_threads': |
| 402 result = result and status == 'enabled_on' |
| 403 elif name == 'native_gpu_memory_buffers': |
| 404 result = result and status == 'disabled_software' |
| 405 elif name == 'webgl': |
| 406 result = result and status == 'enabled_readback' |
| 407 else: |
| 408 result = result and status == 'unavailable_software' |
| 409 if not result: |
| 410 raise page_test.Failure('WebGL readback setup failed: %s' \ |
| 411 % feature_status_list) |
| 412 |
| 370 class GpuProcessTestsStorySet(story_set_module.StorySet): | 413 class GpuProcessTestsStorySet(story_set_module.StorySet): |
| 371 | 414 |
| 372 """ Tests that accelerated content triggers the creation of a GPU process """ | 415 """ Tests that accelerated content triggers the creation of a GPU process """ |
| 373 | 416 |
| 374 def __init__(self, expectations): | 417 def __init__(self, expectations): |
| 375 super(GpuProcessTestsStorySet, self).__init__( | 418 super(GpuProcessTestsStorySet, self).__init__( |
| 376 serving_dirs=set(['../../../../content/test/data'])) | 419 serving_dirs=set(['../../../../content/test/data'])) |
| 377 | 420 |
| 378 urls_and_names_list = [ | 421 urls_and_names_list = [ |
| 379 ('file://../../data/gpu/functional_canvas_demo.html', | 422 ('file://../../data/gpu/functional_canvas_demo.html', |
| (...skipping 10 matching lines...) Expand all Loading... |
| 390 self.AddStory(FunctionalVideoPage(self, expectations)) | 433 self.AddStory(FunctionalVideoPage(self, expectations)) |
| 391 self.AddStory(GpuInfoCompletePage(self, expectations)) | 434 self.AddStory(GpuInfoCompletePage(self, expectations)) |
| 392 self.AddStory(NoGpuProcessPage(self, expectations)) | 435 self.AddStory(NoGpuProcessPage(self, expectations)) |
| 393 self.AddStory(SoftwareGpuProcessPage(self, expectations)) | 436 self.AddStory(SoftwareGpuProcessPage(self, expectations)) |
| 394 self.AddStory(SkipGpuProcessPage(self, expectations)) | 437 self.AddStory(SkipGpuProcessPage(self, expectations)) |
| 395 self.AddStory(DriverBugWorkaroundsInGpuProcessPage(self, expectations)) | 438 self.AddStory(DriverBugWorkaroundsInGpuProcessPage(self, expectations)) |
| 396 self.AddStory(IdentifyActiveGpuPage1(self, expectations)) | 439 self.AddStory(IdentifyActiveGpuPage1(self, expectations)) |
| 397 self.AddStory(IdentifyActiveGpuPage2(self, expectations)) | 440 self.AddStory(IdentifyActiveGpuPage2(self, expectations)) |
| 398 self.AddStory(IdentifyActiveGpuPage3(self, expectations)) | 441 self.AddStory(IdentifyActiveGpuPage3(self, expectations)) |
| 399 self.AddStory(IdentifyActiveGpuPage4(self, expectations)) | 442 self.AddStory(IdentifyActiveGpuPage4(self, expectations)) |
| 443 self.AddStory(ReadbackWebGLGpuProcessPage(self, expectations)) |
| 400 | 444 |
| 401 @property | 445 @property |
| 402 def allow_mixed_story_states(self): | 446 def allow_mixed_story_states(self): |
| 403 # Return True here in order to be able to run pages with different browser | 447 # Return True here in order to be able to run pages with different browser |
| 404 # command line arguments. | 448 # command line arguments. |
| 405 return True | 449 return True |
| OLD | NEW |