mirror of
https://github.com/servo/servo.git
synced 2025-08-01 03:30:33 +01:00
Auto merge of #13930 - shinglyu:perf-llvmpipe, r=aneeshusa
Use headless rendering for performance test <!-- Please describe your changes on the following line: --> Properly set the software rendering environment variables and use `-z` to run the performance test in headless mode. Also changed some logging format to improve the readability and reduce log size. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #13903 (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [x] These changes do not require tests because need manual test <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13930) <!-- Reviewable:end -->
This commit is contained in:
commit
f5a3d68513
4 changed files with 58 additions and 32 deletions
|
@ -162,6 +162,8 @@ class MachCommands(CommandBase):
|
|||
description='Run the page load performance test',
|
||||
category='testing')
|
||||
def test_perf(self):
|
||||
self.set_software_rendering_env(True)
|
||||
|
||||
self.ensure_bootstrapped()
|
||||
env = self.build_env()
|
||||
return call(["bash", "test_perf.sh"],
|
||||
|
@ -422,31 +424,7 @@ class MachCommands(CommandBase):
|
|||
|
||||
# Helper for test_css and test_wpt:
|
||||
def wptrunner(self, run_file, **kwargs):
|
||||
# On Linux and mac, find the OSMesa software rendering library and
|
||||
# add it to the dynamic linker search path.
|
||||
if sys.platform.startswith('linux'):
|
||||
try:
|
||||
args = [self.get_binary_path(kwargs["release"], not kwargs["release"])]
|
||||
osmesa_path = path.join(find_dep_path_newest('osmesa-src', args[0]), "out", "lib", "gallium")
|
||||
os.environ["LD_LIBRARY_PATH"] = osmesa_path
|
||||
os.environ["GALLIUM_DRIVER"] = "softpipe"
|
||||
except BuildNotFound:
|
||||
# This can occur when cross compiling (e.g. arm64), in which case
|
||||
# we won't run the tests anyway so can safely ignore this step.
|
||||
pass
|
||||
if sys.platform.startswith('darwin'):
|
||||
try:
|
||||
args = [self.get_binary_path(kwargs["release"], not kwargs["release"])]
|
||||
osmesa_path = path.join(find_dep_path_newest('osmesa-src', args[0]),
|
||||
"out", "src", "gallium", "targets", "osmesa", ".libs")
|
||||
glapi_path = path.join(find_dep_path_newest('osmesa-src', args[0]),
|
||||
"out", "src", "mapi", "shared-glapi", ".libs")
|
||||
os.environ["DYLD_LIBRARY_PATH"] = osmesa_path + ":" + glapi_path
|
||||
os.environ["GALLIUM_DRIVER"] = "softpipe"
|
||||
except BuildNotFound:
|
||||
# This can occur when cross compiling (e.g. arm64), in which case
|
||||
# we won't run the tests anyway so can safely ignore this step.
|
||||
pass
|
||||
self.set_software_rendering_env(kwargs['release'])
|
||||
|
||||
os.environ["RUST_BACKTRACE"] = "1"
|
||||
kwargs["debug"] = not kwargs["release"]
|
||||
|
@ -658,6 +636,33 @@ class MachCommands(CommandBase):
|
|||
return check_call(
|
||||
[run_file, "|".join(tests), bin_path, base_dir])
|
||||
|
||||
def set_software_rendering_env(self, use_release):
|
||||
# On Linux and mac, find the OSMesa software rendering library and
|
||||
# add it to the dynamic linker search path.
|
||||
if sys.platform.startswith('linux'):
|
||||
try:
|
||||
args = [self.get_binary_path(use_release, not use_release)]
|
||||
osmesa_path = path.join(find_dep_path_newest('osmesa-src', args[0]), "out", "lib", "gallium")
|
||||
os.environ["LD_LIBRARY_PATH"] = osmesa_path
|
||||
os.environ["GALLIUM_DRIVER"] = "softpipe"
|
||||
except BuildNotFound:
|
||||
# This can occur when cross compiling (e.g. arm64), in which case
|
||||
# we won't run the tests anyway so can safely ignore this step.
|
||||
pass
|
||||
elif sys.platform.startswith('darwin'):
|
||||
try:
|
||||
args = [self.get_binary_path(use_release, not use_release)]
|
||||
osmesa_path = path.join(find_dep_path_newest('osmesa-src', args[0]),
|
||||
"out", "src", "gallium", "targets", "osmesa", ".libs")
|
||||
glapi_path = path.join(find_dep_path_newest('osmesa-src', args[0]),
|
||||
"out", "src", "mapi", "shared-glapi", ".libs")
|
||||
os.environ["DYLD_LIBRARY_PATH"] = osmesa_path + ":" + glapi_path
|
||||
os.environ["GALLIUM_DRIVER"] = "softpipe"
|
||||
except BuildNotFound:
|
||||
# This can occur when cross compiling (e.g. arm64), in which case
|
||||
# we won't run the tests anyway so can safely ignore this step.
|
||||
pass
|
||||
|
||||
|
||||
def create_parser_create():
|
||||
import argparse
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue