diff options
author | Yongqin Liu <yongqin.liu@linaro.org> | 2018-05-17 19:31:52 +0800 |
---|---|---|
committer | Yongqin Liu <yongqin.liu@linaro.org> | 2018-05-17 19:31:52 +0800 |
commit | 50e0b935cd3c2f51e78d619549123e42fb52b8fc (patch) | |
tree | 7b6aa3d6db0b127d4a0aae516849d0a6526a3bd6 | |
parent | efa089e9435eacf202eeffe76b008e8e687585da (diff) |
update with upstream
Change-Id: I62ba6c882a8eb5044c677daf54174f52057c46da
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
61 files changed, 4356 insertions, 489 deletions
diff --git a/automated/COPYING b/automated/COPYING deleted file mode 100644 index 6d45519..0000000 --- a/automated/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/automated/README b/automated/README index 6c05d67..2852ef6 100644 --- a/automated/README +++ b/automated/README @@ -45,6 +45,8 @@ single test run: running test plan: # Run a set of tests defined in agenda file. test-runner -p ./plans/linux-example.yaml + # Apply test plan overlay to skip, amend or add tests. + test-runner -p ./plans/linux-example.yaml -O test-plan-overlay-example.yaml Collecting result ================= diff --git a/automated/android/apk-automation/common/__init__.py b/automated/android/apk-automation/common/__init__.py index 980e5a8..33814f0 100755 --- a/automated/android/apk-automation/common/__init__.py +++ b/automated/android/apk-automation/common/__init__.py @@ -68,7 +68,7 @@ class ApkTestRunner(object): except Exception as e: self.take_screencap() self.report_result(self.config['name'], 'fail') - self.logger.error(e) + self.logger.error(e, exc_info=True) sys.exit(1) self.collect_log() @@ -158,6 +158,7 @@ class ApkTestRunner(object): success = False while not success: try: + time.sleep(5) self.vc.dump() success = True except RuntimeError: @@ -229,7 +230,6 @@ class ApkTestRunner(object): else: self.logger.info('APK file already exists: %s' % apk_name) - def install_apk(self, apk_name): apk_path = os.path.join(os.path.abspath(self.config['apk_dir']), apk_name) self.logger.info('Installing %s' % os.path.basename(apk_path)) @@ -304,6 +304,7 @@ class ApkTestRunner(object): # Start intent. self.logger.info('Starting %s' % self.config['apk_package']) self.call_adb("shell am start -W -S %s" % self.config['activity']) + time.sleep(5) def execute(self): raise NotImplementedError diff --git a/automated/android/apk-automation/geekbench3.py b/automated/android/apk-automation/geekbench3.py index 658c662..ce99533 100755 --- a/automated/android/apk-automation/geekbench3.py +++ b/automated/android/apk-automation/geekbench3.py @@ -32,26 +32,21 @@ class ApkRunnerImpl(ApkTestRunner): self.all_fail() sys.exit(1) - time.sleep(10) - self.dump_always() - - try: - self.vc.findViewByIdOrRaise("android:id/progress") - except ViewNotFoundException: - self.logger.error("Something goes wrong! It is unusual that the test has not been started after 10+ seconds! Please manually check it!") - self.all_fail() - sys.exit(1) - finished = False while (not finished): - time.sleep(45) + time.sleep(10) self.dump_always() flag = self.vc.findViewWithText("RESULT") + in_progress = self.vc.findViewById("android:id/progress") if flag is not None: self.logger.info("Geekbench 3 Test Finished!") finished = True - else: + elif in_progress: self.logger.info("Geekbench 3 Test is still in progress...") + else: + self.logger.error("Something goes wrong! It is unusual that the test has not been started after 10+ seconds! Please manually check it!") + #self.all_fail() + #sys.exit(1) # Generate the .gb3 file self.device.press('KEYCODE_MENU') diff --git a/automated/android/apk-automation/glbenchmark25.py b/automated/android/apk-automation/glbenchmark25.py index 6b7299e..e5bb116 100755 --- a/automated/android/apk-automation/glbenchmark25.py +++ b/automated/android/apk-automation/glbenchmark25.py @@ -36,42 +36,37 @@ class ApkRunnerImpl(ApkTestRunner): self.call_adb("shell am start -W -S %s" % self.config['activity']) def execute(self): - time.sleep(2) - - self.vc.dump(window='-1') - test_type = self.vc.findViewWithText("Performance Tests") - if test_type: - test_type.touch() - time.sleep(2) - - # By some reason in order to select all test, a back step is required - self.dump_always() - test_selection = self.vc.findViewByIdOrRaise("com.glbenchmark.glbenchmark25:id/buttonAll") - self.device.press('KEYCODE_BACK') - time.sleep(3) - - test_type.touch() - time.sleep(2) - test_selection.touch() - self.logger.info("All selected!") - time.sleep(3) + selected_all = False + while not selected_all: + self.dump_always() + select_all_btn = self.vc.findViewWithText("All") + display_tests_menu = self.vc.findViewWithText("Performance Tests") + if select_all_btn: + select_all_btn.touch() + self.logger.info("All selected!") + selected_all = True + elif display_tests_menu: + display_tests_menu.touch() + self.logger.info("Display all tests to select all") + else: + # continue + pass # Disable crashed test suites - self.vc.dump(window='-1') + self.dump_always() crashed_test_name = "C24Z24MS4" self.logger.info('Test suite %s is going to be disabled!' % crashed_test_name) crashed_test = self.vc.findViewWithText(crashed_test_name) if crashed_test is not None: crashed_test.touch() self.logger.info('Test suite %s has been excluded!' % crashed_test_name) - time.sleep(2) else: self.logger.info('Can not find test suite %s, please check the screen!' % crashed_test_name) # Start selected test suites + self.dump_always() start_button = self.vc.findViewByIdOrRaise("com.glbenchmark.glbenchmark25:id/buttonStart") start_button.touch() - time.sleep(2) finished = False while not finished: diff --git a/automated/android/apk-automation/quadrantpro.py b/automated/android/apk-automation/quadrantpro.py index 8ca7b0d..3360a2b 100755 --- a/automated/android/apk-automation/quadrantpro.py +++ b/automated/android/apk-automation/quadrantpro.py @@ -19,29 +19,39 @@ class ApkRunnerImpl(ApkTestRunner): super(ApkRunnerImpl, self).tearDown() def execute(self): - self.dump_always() - view_license_btn = self.vc.findViewWithText("View license") - if view_license_btn: - ok_button = self.vc.findViewWithTextOrRaise("OK") - ok_button.touch() - - self.dump_always() - run_full_item = self.vc.findViewWithTextOrRaise(u'Run full benchmark') - run_full_item.touch() + need_continue = True + while need_continue: + self.dump_always() + view_license_btn = self.vc.findViewWithText("View license") + run_full_item = self.vc.findViewWithText(u'Run full benchmark') + if view_license_btn: + ok_button = self.vc.findViewWithTextOrRaise("OK") + ok_button.touch() + elif run_full_item: + run_full_item.touch() + need_continue = False + else: + # continue check + pass # Hack workaround to kill the first time start up # then it will work from 2nd time self.call_adb("shell am force-stop %s" % self.config['apk_package']) self.call_adb("shell am start -W -S %s" % self.config['activity']) - self.dump_always() - view_license_btn = self.vc.findViewWithText("View license") - if view_license_btn: - ok_button = self.vc.findViewWithTextOrRaise("OK") - ok_button.touch() - - self.dump_always() - run_full_item = self.vc.findViewWithTextOrRaise(u'Run full benchmark') - run_full_item.touch() + need_continue = True + while need_continue: + self.dump_always() + view_license_btn = self.vc.findViewWithText("View license") + run_full_item = self.vc.findViewWithText(u'Run full benchmark') + if view_license_btn: + ok_button = self.vc.findViewWithTextOrRaise("OK") + ok_button.touch() + elif run_full_item: + run_full_item.touch() + need_continue = False + else: + # continue check + pass finished = False while not finished: diff --git a/automated/android/apk-automation/rl-sqlite.py b/automated/android/apk-automation/rl-sqlite.py index 48ff4a8..10929b2 100755 --- a/automated/android/apk-automation/rl-sqlite.py +++ b/automated/android/apk-automation/rl-sqlite.py @@ -31,7 +31,7 @@ class ApkRunnerImpl(ApkTestRunner): subitem = self.vc.findViewWithText(text, ch) if subitem: subitem_result = self.vc.findViewByIdOrRaise("com.redlicense.benchmark.sqlite:id/test_result", ch) - score = subitem_result.getText().replace("sec", "").strip() + score = subitem_result.getText().replace("sec", "").replace("Running", "").strip() score_in_ms = float(score) * 1000 self.report_result("RL-sqlite-" + text.replace(" ", "-"), 'pass', str(score_in_ms), "ms") found_score_view = True diff --git a/automated/android/apk-automation/test.py b/automated/android/apk-automation/test.py new file mode 100755 index 0000000..28b7df2 --- /dev/null +++ b/automated/android/apk-automation/test.py @@ -0,0 +1,68 @@ +import re +import sys +import os +import time +from subprocess import call + +from com.dtmilano.android.viewclient import ViewClient, ViewNotFoundException + + +kwargs1 = {'verbose': False, 'ignoresecuredevice': False} +device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1) +kwargs2 = {'startviewserver': True, 'forceviewserveruse': False, 'autodump': False, 'ignoreuiautomatorkilled': True, 'compresseddump': False} +vc = ViewClient(device, serialno, **kwargs2) + +def dump_always(): + success = False + while not success: + try: + vc.dump() + success = True + except RuntimeError: + print("Got RuntimeError when call vc.dump()") + time.sleep(5) + except ValueError: + print("Got ValueError when call vc.dump()") + time.sleep(5) + + +def get_score_with_text(vc, text): + found_score_view = False + + while not found_score_view: + linear_layout = vc.findViewByIdOrRaise("com.redlicense.benchmark.sqlite:id/stats") + for ch in linear_layout.children: + subitem = vc.findViewWithText(text, ch) + if subitem: + subitem_result = vc.findViewByIdOrRaise("com.redlicense.benchmark.sqlite:id/test_result", ch) + score = subitem_result.getText().replace("sec", "").strip() + score_in_ms = float(score) * 1000 + print "RL_sqlite_%s %s %s ms" % (text.replace(" ", "_"), 'pass', str(score_in_ms)) + found_score_view = True + break + else: + print("%s not found, need to pageup" % text) + dump_always() + device.press('DPAD_UP') + time.sleep(2) + dump_always() + device.press('DPAD_UP') + time.sleep(2) + dump_always() + +dump_always() +vc.findViewWithTextOrRaise(u'Overall').touch() +get_score_with_text(vc, "Overall") +get_score_with_text(vc, "DROP TABLE") +get_score_with_text(vc, "DELETE with an index") +get_score_with_text(vc, "DELETE without an index") +get_score_with_text(vc, "INSERTs from a SELECT") +get_score_with_text(vc, "25000 UPDATEs with an index") +get_score_with_text(vc, "1000 UPDATEs without an index") +get_score_with_text(vc, "5000 SELECTs with an index") +get_score_with_text(vc, "Creating an index") +get_score_with_text(vc, "100 SELECTs on a string comparison") +get_score_with_text(vc, "100 SELECTs without an index") +get_score_with_text(vc, "25000 INSERTs into an indexed table in a transaction") +get_score_with_text(vc, "25000 INSERTs in a transaction") +get_score_with_text(vc, "1000 INSERTs") diff --git a/automated/android/apk-automation/vellamo3.py b/automated/android/apk-automation/vellamo3.py index d9719a7..413ee61 100755 --- a/automated/android/apk-automation/vellamo3.py +++ b/automated/android/apk-automation/vellamo3.py @@ -42,24 +42,28 @@ class ApkRunnerImpl(ApkTestRunner): break def execute(self): - self.dump_always() - # Accept Vellamo EULA - btn_setup_1 = self.vc.findViewByIdOrRaise("android:id/button1") - btn_setup_1.touch() - - # Open settings - self.dump_always() - btn_settings = self.vc.findViewByIdOrRaise('com.quicinc.vellamo:id/main_toolbar_wheel') - btn_settings.touch() - - # Disable animations - self.dump_always() - btn_animations = self.vc.findViewWithTextOrRaise(u'Make Vellamo even more beautiful') - btn_animations.touch() + need_continue = True + while need_continue: + self.dump_always() + btn_setup_1 = self.vc.findViewById("android:id/button1") + btn_settings = self.vc.findViewById('com.quicinc.vellamo:id/main_toolbar_wheel') + btn_animations = self.vc.findViewWithText(u'Make Vellamo even more beautiful') + if btn_setup_1: + # Accept Vellamo EULA + btn_setup_1.touch() + elif btn_settings: + # Open settings + btn_settings.touch() + elif btn_animations: + # Disable animations + btn_animations.touch() + need_continue = False # Back to the home screen self.device.press("KEYCODE_BACK") + self.logger.info("Benchmark started now") + chapters = ['Browser', 'Multicore', 'Metal'] for chapter in chapters: self.choose_chapter(chapter) @@ -67,9 +71,9 @@ class ApkRunnerImpl(ApkTestRunner): # Start benchmark self.dump_always() try: - btn_start = self.vc.findViewById("com.quicinc.vellamo:id/main_toolbar_operation_button") - if btn_start: - btn_start.touch() + gotit_button = self.vc.findViewWithText(u'GOT IT') + if gotit_button: + gotit_button.touch() except ViewNotFoundException: self.report_result('vellamo3-%s' % chapter, 'fail') self.logger.error('Start button for chapter %s NOT found, moving to the next chapter...') @@ -81,11 +85,10 @@ class ApkRunnerImpl(ApkTestRunner): time.sleep(1) try: self.dump_always() - goback_title = self.vc.findViewById("com.quicinc.vellamo:id/main_toolbar_goback_title") goback_btn = self.vc.findViewById("com.quicinc.vellamo:id/main_toolbar_goback_button") - if goback_btn or goback_title: - btn_no = self.vc.findViewByIdOrRaise("com.quicinc.vellamo:id/button_no") - btn_no.touch() + if goback_btn: + goback_btn.touch() + time.sleep(5) finished = True except ViewNotFoundException: pass @@ -96,6 +99,7 @@ class ApkRunnerImpl(ApkTestRunner): self.logger.info("Benchmark finished: %s" % chapter) self.device.press("KEYCODE_BACK") + time.sleep(5) self.device.press("KEYCODE_BACK") def parseResult(self): diff --git a/automated/android/apk-automation/x15-antutu6.log b/automated/android/apk-automation/x15-antutu6.log new file mode 100644 index 0000000..c85b016 --- /dev/null +++ b/automated/android/apk-automation/x15-antutu6.log @@ -0,0 +1,2283 @@ +--------- beginning of main +11-01 17:32:22.832 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:22.832 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:22.832 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 48000,format 1, channels 3, flags 4 +11-01 17:32:22.832 295 382 E AudioTrack: Could not get audio output for session 121, stream type -1, usage 13, sample rate 48000, format 0x1, channel mask 0x3, flags 0x4 +11-01 17:32:22.833 295 382 E SoundPool: Error creating AudioTrack +11-01 17:32:23.015 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:23.015 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:23.015 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 48000,format 1, channels 3, flags 4 +11-01 17:32:23.015 295 382 E AudioTrack: Could not get audio output for session 129, stream type -1, usage 13, sample rate 48000, format 0x1, channel mask 0x3, flags 0x4 +11-01 17:32:23.015 295 382 E SoundPool: Error creating AudioTrack +11-01 17:32:26.674 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:26.674 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +--------- beginning of system +11-01 17:32:26.675 295 1253 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.antutu.ABenchMark/.ABenchMarkStart bnds=[182,70][291,152]} from uid 10012 +11-01 17:32:26.675 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 48000,format 1, channels 3, flags 4 +11-01 17:32:26.675 295 382 E AudioTrack: Could not get audio output for session 137, stream type -1, usage 13, sample rate 48000, format 0x1, channel mask 0x3, flags 0x4 +11-01 17:32:26.676 295 382 E SoundPool: Error creating AudioTrack +11-01 17:32:26.738 2344 2344 I tutu.ABenchMark: type=1400 audit(0.0:103): avc: denied { read } for name="u:object_r:serialno_prop:s0" dev="tmpfs" ino=8209 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:serialno_prop:s0 tclass=file permissive=1 +11-01 17:32:26.738 2344 2344 I tutu.ABenchMark: type=1400 audit(0.0:104): avc: denied { open } for path="/dev/__properties__/u:object_r:serialno_prop:s0" dev="tmpfs" ino=8209 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:serialno_prop:s0 tclass=file permissive=1 +11-01 17:32:26.738 2344 2344 I tutu.ABenchMark: type=1400 audit(0.0:105): avc: denied { getattr } for path="/dev/__properties__/u:object_r:serialno_prop:s0" dev="tmpfs" ino=8209 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:serialno_prop:s0 tclass=file permissive=1 +11-01 17:32:26.865 295 1319 E DatabaseUtils: Writing exception to parcel +11-01 17:32:26.865 295 1319 E DatabaseUtils: java.lang.SecurityException: com.antutu.ABenchMark was not granted this permission: android.permission.WRITE_SETTINGS. +11-01 17:32:26.865 295 1319 E DatabaseUtils: at android.provider.Settings.isCallingPackageAllowedToPerformAppOpsProtectedOperation(Settings.java:10936) +11-01 17:32:26.865 295 1319 E DatabaseUtils: at android.provider.Settings.checkAndNoteWriteSettingsOperation(Settings.java:10818) +11-01 17:32:26.865 295 1319 E DatabaseUtils: at com.android.providers.settings.SettingsProvider.mutateSystemSetting(SettingsProvider.java:1382) +11-01 17:32:26.865 295 1319 E DatabaseUtils: at com.android.providers.settings.SettingsProvider.insertSystemSetting(SettingsProvider.java:1357) +11-01 17:32:26.865 295 1319 E DatabaseUtils: at com.android.providers.settings.SettingsProvider.call(SettingsProvider.java:375) +11-01 17:32:26.865 295 1319 E DatabaseUtils: at android.content.ContentProvider$Transport.call(ContentProvider.java:403) +11-01 17:32:26.865 295 1319 E DatabaseUtils: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:272) +11-01 17:32:26.865 295 1319 E DatabaseUtils: at android.os.Binder.execTransact(Binder.java:674) +11-01 17:32:26.928 2344 2344 I Thread-3: type=1400 audit(0.0:106): avc: denied { ioctl } for path="socket:[233616]" dev="sockfs" ino=233616 ioctlcmd=8927 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:r:untrusted_app_25:s0:c512,c768 tclass=udp_socket permissive=1 +11-01 17:32:26.947 2344 7302 D NetworkSecurityConfig: No Network Security Config specified, using platform default +11-01 17:32:27.040 2344 7313 D OpenGLRenderer: HWUI GL Pipeline +11-01 17:32:27.083 2344 7313 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:27.093 2344 7313 E IMGSRV : :0: PVRSRVOpenDCDevice: Error - 138 returned +11-01 17:32:27.098 2344 7313 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:27.098 2344 7313 I OpenGLRenderer: Initialized EGL, version 1.4 +11-01 17:32:27.098 2344 7313 D OpenGLRenderer: Swap behavior 1 +11-01 17:32:27.099 2344 7313 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... +11-01 17:32:27.099 2344 7313 D OpenGLRenderer: Swap behavior 0 +11-01 17:32:27.142 2344 7313 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:27.205 295 319 I ActivityManager: Displayed com.antutu.ABenchMark/.ABenchMarkStart: +518ms +11-01 17:32:27.238 2344 2344 I Thread-5: type=1400 audit(0.0:107): avc: denied { read } for name="version" dev="proc" ino=4026532092 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=1 +11-01 17:32:27.238 2344 2344 I Thread-5: type=1400 audit(0.0:108): avc: denied { open } for path="/proc/version" dev="proc" ino=4026532092 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=1 +11-01 17:32:27.238 2344 2344 I Thread-5: type=1400 audit(0.0:109): avc: denied { getattr } for path="/proc/version" dev="proc" ino=4026532092 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=1 +11-01 17:32:27.256 224 273 I CameraService: CameraService::connect call (PID -1 "com.antutu.ABenchMark", camera ID 0) for HAL version default and Camera API version 1 +11-01 17:32:27.257 231 1243 D NuPlayerDriver: NuPlayerDriver(0xa43b0af0) created, clientPid(224) +11-01 17:32:27.259 147 147 W /system/bin/hwservicemanager: getTransportFromManifest: Cannot find entry android.hardware.media.omx@1.0::IOmx in either framework or device manifest, using default transport. +11-01 17:32:27.353 231 7319 D NuPlayerDriver: notifyListener_l(0xa43b0af0), (1, 0, 0, -1), loop setting(0, 0) +11-01 17:32:27.374 231 1243 D NuPlayerDriver: NuPlayerDriver(0xa43b0e00) created, clientPid(224) +11-01 17:32:27.375 147 147 W /system/bin/hwservicemanager: getTransportFromManifest: Cannot find entry android.hardware.media.omx@1.0::IOmx in either framework or device manifest, using default transport. +11-01 17:32:27.381 231 7321 D NuPlayerDriver: notifyListener_l(0xa43b0e00), (1, 0, 0, -1), loop setting(0, 0) +11-01 17:32:27.396 231 1243 D NuPlayerDriver: NuPlayerDriver(0xa43b0ee0) created, clientPid(224) +11-01 17:32:27.397 147 147 W /system/bin/hwservicemanager: getTransportFromManifest: Cannot find entry android.hardware.media.omx@1.0::IOmx in either framework or device manifest, using default transport. +11-01 17:32:27.409 231 7323 D NuPlayerDriver: notifyListener_l(0xa43b0ee0), (1, 0, 0, -1), loop setting(0, 0) +11-01 17:32:27.411 224 273 I CameraHardwareInterface: Opening camera 0 +11-01 17:32:27.411 175 270 I CamDev@1.0-impl: Opening camera 0 +11-01 17:32:27.411 175 270 E CameraHal: (aea0d970) hardware/ti/dra7xx/camera/CameraHal_Module.cpp:634 camera_device_open - CameraHal_Module: ******************* 1 ******************* +11-01 17:32:27.411 175 270 I CameraHal: (aea0d970) hardware/ti/dra7xx/camera/CameraHal_Module.cpp:638 camera_device_open - camera_device open +11-01 17:32:27.411 175 270 E CameraHal: (aea0d970) hardware/ti/dra7xx/camera/CameraHal.cpp:126 getSocFamily - '/sys/board_properties/soc/family' Not Available +11-01 17:32:27.411 175 270 E CameraHal: (aea0d970) hardware/ti/dra7xx/camera/CameraHal_Module.cpp:733 camera_device_open - Couldn't initialize camera instance +11-01 17:32:27.411 175 270 E CamDev@1.0-impl: Could not open camera 0: -19 +11-01 17:32:27.411 224 273 E CameraHardwareInterface: initialize: openSession failed! Function not implemented (-38) +11-01 17:32:27.411 224 273 E CameraClient: initialize: Camera 0: unable to initialize device: Function not implemented (-38) +11-01 17:32:27.411 224 273 I CameraHardwareInterface: Destroying camera 0 +11-01 17:32:27.411 224 273 E CameraService: connectHelper: Could not initialize client from HAL. +11-01 17:32:27.411 231 1243 D NuPlayerDriver: reset(0xa43b0af0) at state 4 +11-01 17:32:27.411 231 1243 D NuPlayerDriver: notifyListener_l(0xa43b0af0), (8, 0, 0, -1), loop setting(0, 0) +11-01 17:32:27.411 231 7319 D NuPlayerDriver: notifyResetComplete(0xa43b0af0) +11-01 17:32:27.412 230 257 D MediaAnalyticsService: MediaAnalyticsService::newSummarizerSet +11-01 17:32:27.412 231 703 D NuPlayerDriver: reset(0xa43b0e00) at state 4 +11-01 17:32:27.412 231 703 D NuPlayerDriver: notifyListener_l(0xa43b0e00), (8, 0, 0, -1), loop setting(0, 0) +11-01 17:32:27.412 231 7321 D NuPlayerDriver: notifyResetComplete(0xa43b0e00) +11-01 17:32:27.413 231 703 D NuPlayerDriver: reset(0xa43b0ee0) at state 4 +11-01 17:32:27.413 231 703 D NuPlayerDriver: notifyListener_l(0xa43b0ee0), (8, 0, 0, -1), loop setting(0, 0) +11-01 17:32:27.413 231 7323 D NuPlayerDriver: notifyResetComplete(0xa43b0ee0) +11-01 17:32:27.418 224 273 I CameraService: disconnect: Disconnected client for camera 0 for PID 2344 +11-01 17:32:27.419 2344 7306 W CameraBase: An error occurred while connecting to camera 0: Status(-8): '10: connectHelper:1394: Failed to initialize camera "0": Function not implemented (-38)' +11-01 17:32:27.438 7328 7328 I df : type=1400 audit(0.0:110): avc: denied { getattr } for path="/dev/block" dev="tmpfs" ino=8278 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:block_device:s0 tclass=dir permissive=1 +11-01 17:32:27.438 7328 7328 I df : type=1400 audit(0.0:111): avc: denied { getattr } for path="/dev/block/mmcblk0p10" dev="tmpfs" ino=7809 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:system_block_device:s0 tclass=blk_file permissive=1 +11-01 17:32:27.438 7328 7328 I df : type=1400 audit(0.0:112): avc: denied { getattr } for path="/dev/block/mmcblk0p11" dev="tmpfs" ino=7813 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:block_device:s0 tclass=blk_file permissive=1 +11-01 17:32:27.438 7328 7328 I df : type=1400 audit(0.0:113): avc: denied { getattr } for path="/dev/block/mmcblk0p12" dev="tmpfs" ino=7817 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:cache_block_device:s0 tclass=blk_file permissive=1 +11-01 17:32:27.438 7328 7328 I df : type=1400 audit(0.0:114): avc: denied { getattr } for path="/dev/block/mmcblk0p15" dev="tmpfs" ino=7829 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:userdata_block_device:s0 tclass=blk_file permissive=1 +11-01 17:32:27.438 7328 7328 I df : type=1400 audit(0.0:115): avc: denied { getattr } for path="/dev/fuse" dev="tmpfs" ino=8259 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:fuse_device:s0 tclass=chr_file permissive=1 +11-01 17:32:27.596 2344 7329 D ApplicationPackageManager: Shame on you for calling the hidden API getPackageSizeInfoAsUser(). Shame! +11-01 17:32:27.597 2344 7329 I chatty : uid=10058(u0_a58) com.antutu.ABenchMark identical 14 lines +11-01 17:32:27.597 2344 7329 D ApplicationPackageManager: Shame on you for calling the hidden API getPackageSizeInfoAsUser(). Shame! +11-01 17:32:27.827 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:27.830 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:27.831 295 1701 I OpenGLRenderer: Initialized EGL, version 1.4 +11-01 17:32:27.831 295 1701 D OpenGLRenderer: Swap behavior 1 +11-01 17:32:27.831 295 1701 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... +11-01 17:32:27.831 295 1701 D OpenGLRenderer: Swap behavior 0 +11-01 17:32:28.856 295 1253 I ActivityManager: START u0 {cmp=com.antutu.ABenchMark/com.antutu.benchmark.activity.MainActivity} from uid 10058 +11-01 17:32:29.038 295 1316 I ActivityManager: START u0 {act=android.content.pm.action.REQUEST_PERMISSIONS pkg=com.android.packageinstaller cmp=com.android.packageinstaller/.permission.ui.GrantPermissionsActivity (has extras)} from uid 10058 +11-01 17:32:29.042 2344 2344 W Activity: Can reqeust only one set of permissions at a time +11-01 17:32:29.078 2344 2344 I pool-2-thread-1: type=1400 audit(0.0:116): avc: denied { read } for name="address" dev="sysfs" ino=17394 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1 +11-01 17:32:29.078 2344 2344 I pool-2-thread-1: type=1400 audit(0.0:117): avc: denied { open } for path="/sys/devices/platform/44000000.ocp/48484000.ethernet/net/eth0/address" dev="sysfs" ino=17394 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1 +11-01 17:32:29.078 2344 2344 I pool-2-thread-1: type=1400 audit(0.0:118): avc: denied { getattr } for path="/sys/devices/platform/44000000.ocp/48484000.ethernet/net/eth0/address" dev="sysfs" ino=17394 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1 +11-01 17:32:29.268 1210 1730 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:29.270 1210 1730 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:29.270 1210 1730 I OpenGLRenderer: Initialized EGL, version 1.4 +11-01 17:32:29.270 1210 1730 D OpenGLRenderer: Swap behavior 1 +11-01 17:32:29.270 1210 1730 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... +11-01 17:32:29.270 1210 1730 D OpenGLRenderer: Swap behavior 0 +11-01 17:32:29.300 2344 2355 I zygote : Background concurrent copying GC freed 15209(1596KB) AllocSpace objects, 8(208KB) LOS objects, 49% free, 2MB/5MB, paused 166us total 315.176ms +11-01 17:32:29.315 295 319 I ActivityManager: Displayed com.android.packageinstaller/.permission.ui.GrantPermissionsActivity: +153ms (total +417ms) +11-01 17:32:29.334 295 529 W ActivityManager: Unable to start service Intent { act=com.google.android.gms.ads.identifier.service.START pkg=com.google.android.gms } U=0: not found +11-01 17:32:29.366 2344 7355 W System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'android.net.NetworkInfo$State android.net.NetworkInfo.getState()' on a null object reference +11-01 17:32:29.366 2344 7355 W System.err: at a.a.gp.e(Unknown Source:70) +11-01 17:32:29.366 2344 7355 W System.err: at a.a.jj.c(Unknown Source:0) +11-01 17:32:29.366 2344 7355 W System.err: at a.a.jj.d(Unknown Source:14) +11-01 17:32:29.367 2344 7355 W System.err: at a.a.jj.a(Unknown Source:80) +11-01 17:32:29.367 2344 7355 W System.err: at a.a.iv.a(Unknown Source:62) +11-01 17:32:29.367 2344 7355 W System.err: at a.a.iv.e(Unknown Source:39) +11-01 17:32:29.367 2344 7355 W System.err: at a.a.iv.a(Unknown Source:30) +11-01 17:32:29.367 2344 7355 W System.err: at a.a.iv.a(Unknown Source:9) +11-01 17:32:29.367 2344 7355 W System.err: at a.a.iz.a(Unknown Source:8) +11-01 17:32:29.367 2344 7355 W System.err: at com.umeng.analytics.g.run(Unknown Source:0) +11-01 17:32:29.367 2344 7355 W System.err: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457) +11-01 17:32:29.367 2344 7355 W System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:266) +11-01 17:32:29.367 2344 7355 W System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) +11-01 17:32:29.367 2344 7355 W System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) +11-01 17:32:29.367 2344 7355 W System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) +11-01 17:32:29.367 2344 7355 W System.err: at java.lang.Thread.run(Thread.java:764) +11-01 17:32:29.393 295 305 I zygote : Background concurrent copying GC freed 24369(1485KB) AllocSpace objects, 21(420KB) LOS objects, 42% free, 5MB/9MB, paused 297us total 204.674ms +11-01 17:32:29.479 2344 2344 I WebViewFactory: Loading com.android.webview version 58.0.3029.125 (code 303012500) +11-01 17:32:29.511 2344 2344 I cr_LibraryLoader: Time to load native libraries: 2 ms (timestamps 1904-1906) +11-01 17:32:29.522 2344 2344 I chromium: [INFO:library_loader_hooks.cc(140)] Chromium logging enabled: level = 0, default verbosity = 0 +11-01 17:32:29.522 2344 2344 I cr_LibraryLoader: Expected native library version number "58.0.3029.125", actual native library version number "58.0.3029.125" +11-01 17:32:29.533 2344 7364 W cr_ChildProcLauncher: Create a new ChildConnectionAllocator with package name = com.android.webview, inSandbox = true +11-01 17:32:29.533 2344 2344 I cr_BrowserStartup: Initializing chromium process, singleProcess=false +11-01 17:32:29.546 7366 7366 E /system/bin/webview_zygote32: failed to make and chown /acct/uid_99001: Permission denied +11-01 17:32:29.546 7366 7366 E Zygote : createProcessGroup(99001, 0) failed: Permission denied +11-01 17:32:29.548 295 1253 I ActivityManager: Start proc 7366:com.android.webview:sandboxed_process0/u0i1 for webview_service com.antutu.ABenchMark/org.chromium.content.app.SandboxedProcessService0 +11-01 17:32:29.585 7366 7366 I SamplingProfilerIntegration: Profiling disabled. +11-01 17:32:29.611 7382 7382 E asset : setgid: Operation not permitted +11-01 17:32:29.679 7366 7366 I LoadedApk: No resource references to update in package com.android.webview +11-01 17:32:29.682 7366 7366 I cr_ChildProcessService: Creating new ChildProcessService pid=7366 +11-01 17:32:29.701 2344 7395 E BluetoothAdapter: Bluetooth binder is null +11-01 17:32:29.715 2344 2344 E SensorManager: sensor or listener is null +11-01 17:32:29.716 2344 2344 I chatty : uid=10058(u0_a58) com.antutu.ABenchMark identical 17 lines +11-01 17:32:29.716 2344 2344 E SensorManager: sensor or listener is null +11-01 17:32:29.830 2344 2344 I Choreographer: Skipped 37 frames! The application may be doing too much work on its main thread. +11-01 17:32:29.867 2344 7391 I cr_LibraryLoader: Using linker: org.chromium.base.library_loader.ModernLinker +11-01 17:32:29.871 7366 7399 I cr_LibraryLoader: Time to load native libraries: 0 ms (timestamps 2266-2266) +11-01 17:32:29.871 7366 7399 I cr_LibraryLoader: Using linker: org.chromium.base.library_loader.ModernLinker +11-01 17:32:29.874 7366 7399 I chromium: [INFO:library_loader_hooks.cc(140)] Chromium logging enabled: level = 0, default verbosity = 0 +11-01 17:32:29.874 7366 7399 I cr_LibraryLoader: Expected native library version number "58.0.3029.125", actual native library version number "58.0.3029.125" +11-01 17:32:30.018 7418 7418 I sh : type=1400 audit(0.0:119): avc: denied { read } for name="/" dev="rootfs" ino=1 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:rootfs:s0 tclass=dir permissive=1 +11-01 17:32:30.018 7418 7418 I sh : type=1400 audit(0.0:120): avc: denied { open } for path="/" dev="rootfs" ino=1 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:rootfs:s0 tclass=dir permissive=1 +11-01 17:32:30.021 7366 7399 E chromium: [ERROR:sys_info_android.cc(144)] Can't parse dalvik.vm.heapsize: +11-01 17:32:30.091 2344 2349 I zygote : Do partial code cache collection, code=31KB, data=30KB +11-01 17:32:30.092 2344 2349 I zygote : After code cache collection, code=31KB, data=30KB +11-01 17:32:30.092 2344 2349 I zygote : Increasing code cache capacity to 128KB +11-01 17:32:30.128 7439 7439 I stat : type=1400 audit(0.0:121): avc: denied { getattr } for path="/system/xbin/su" dev="mmcblk0p10" ino=1417 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:su_exec:s0 tclass=file permissive=1 +11-01 17:32:30.204 2344 7432 W VideoCapabilities: Unrecognized profile/level 1/2147483647 for video/mp4v-es +11-01 17:32:30.204 2344 7432 W VideoCapabilities: Unrecognized profile/level 32768/2147483647 for video/mp4v-es +11-01 17:32:30.205 2344 7432 W VideoCapabilities: Unrecognized profile/level 0/0 for video/mpeg2 +11-01 17:32:30.225 2344 7432 I VideoCapabilities: Unsupported profile 4 for video/mp4v-es +11-01 17:32:30.238 2344 2344 E libEGL : call to OpenGL ES API with no current context (logged once per thread) +11-01 17:32:30.239 2344 7432 W cr_MediaCodecUtil: HW encoder for video/avc is not available on this device. +11-01 17:32:30.252 2344 7432 W cr_MediaCodecUtil: HW encoder for video/avc is not available on this device. +11-01 17:32:30.342 2344 7432 E IMGSRV : :0: ComputeFrameBufferCompleteness: Switching psTex 0x89eb0300 to XBGR +11-01 17:32:30.342 2344 7432 E IMGSRV : :0: ComputeFrameBufferCompleteness: Switching psLevel 0x898f7200 to XBGR +11-01 17:32:30.343 2344 7432 E IMGSRV : :0: ComputeFrameBufferCompleteness: Switching psTex 0x89eb03a0 to XBGR +11-01 17:32:30.343 2344 7432 E IMGSRV : :0: ComputeFrameBufferCompleteness: Switching psLevel 0x898f7700 to XBGR +11-01 17:32:30.368 2344 7432 E IMGSRV : :0: ComputeFrameBufferCompleteness: Switching psTex 0x89eb06c0 to XBGR +11-01 17:32:30.368 2344 7432 E IMGSRV : :0: ComputeFrameBufferCompleteness: Switching psLevel 0x898f8600 to XBGR +11-01 17:32:30.395 2344 7432 E IMGSRV : :0: ComputeFrameBufferCompleteness: Switching psTex 0x89eb0760 to XBGR +11-01 17:32:30.395 2344 7432 E IMGSRV : :0: ComputeFrameBufferCompleteness: Switching psLevel 0x898f8b00 to XBGR +11-01 17:32:30.415 2344 2355 I zygote : Background concurrent copying GC freed 17419(1481KB) AllocSpace objects, 10(268KB) LOS objects, 49% free, 3MB/6MB, paused 2.159ms total 165.120ms +11-01 17:32:30.439 2344 2344 D SectionedAdapter: totalCount:10 +11-01 17:32:30.502 2344 2344 D SectionedAdapter: totalCount:10 +11-01 17:32:30.565 2344 2349 I zygote : Do partial code cache collection, code=56KB, data=47KB +11-01 17:32:30.567 2344 2349 I zygote : After code cache collection, code=55KB, data=47KB +11-01 17:32:30.567 2344 2349 I zygote : Increasing code cache capacity to 256KB +11-01 17:32:30.596 2344 2344 D SectionedAdapter: totalCount:10 +11-01 17:32:30.847 2344 7346 E BluetoothAdapter: Bluetooth binder is null +11-01 17:32:30.979 2344 7304 W OkHttpClient: A connection to http://info.antutu.net/ was leaked. Did you forget to close a response body? +11-01 17:32:31.361 295 395 E TaskPersister: File error accessing recents directory (directory doesn't exist?). +11-01 17:32:32.336 295 529 D VoldConnector: SND -> {36 volume remount_uid 10058 read} +11-01 17:32:32.337 150 154 D vold : Remounting 10058 as mode read +11-01 17:32:32.341 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:32.342 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:32.342 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 48000,format 1, channels 3, flags 4 +11-01 17:32:32.342 295 382 E AudioTrack: Could not get audio output for session 169, stream type -1, usage 13, sample rate 48000, format 0x1, channel mask 0x3, flags 0x4 +11-01 17:32:32.345 150 154 D vold : Found matching PID 2344 +11-01 17:32:32.346 295 382 E SoundPool: Error creating AudioTrack +11-01 17:32:32.445 150 154 D vold : Found matching PID 7418 +11-01 17:32:32.556 295 360 D VoldConnector: RCV <- {200 36 Command succeeded} +11-01 17:32:32.563 295 529 D VoldConnector: SND -> {37 volume remount_uid 10058 write} +11-01 17:32:32.563 150 154 D vold : Remounting 10058 as mode write +11-01 17:32:32.568 150 154 D vold : Found matching PID 2344 +11-01 17:32:32.665 150 154 D vold : Found matching PID 7418 +11-01 17:32:32.765 295 360 D VoldConnector: RCV <- {200 37 Command succeeded} +11-01 17:32:32.857 1210 1730 D OpenGLRenderer: endAllActiveAnimators on 0x8d9d7600 (RippleDrawable) with handle 0x9ea03e90 +11-01 17:32:34.806 2344 2344 W Settings: Setting always_finish_activities has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value. +11-01 17:32:34.807 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:34.807 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:34.808 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 48000,format 1, channels 3, flags 4 +11-01 17:32:34.808 295 382 E AudioTrack: Could not get audio output for session 177, stream type -1, usage 13, sample rate 48000, format 0x1, channel mask 0x3, flags 0x4 +11-01 17:32:34.808 295 382 E SoundPool: Error creating AudioTrack +11-01 17:32:34.810 295 1316 I ActivityManager: START u0 {flg=0x14000000 cmp=com.antutu.ABenchMark/com.antutu.benchmark.activity.ScoreBenchActivity (has extras)} from uid 10058 +11-01 17:32:34.856 2344 2344 W Notification: Use of stream types is deprecated for operations other than volume control +11-01 17:32:34.856 2344 2344 W Notification: See the documentation of setSound() for what to use instead with android.media.AudioAttributes to qualify your playback use case +11-01 17:32:34.859 295 295 D ZenLog : disable_effects: 0|com.antutu.ABenchMark|13891|null|10058,booleanState +11-01 17:32:34.926 295 319 I ActivityManager: Displayed com.antutu.ABenchMark/com.antutu.benchmark.activity.ScoreBenchActivity: +99ms +11-01 17:32:35.636 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:35.639 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:35.641 295 1701 I OpenGLRenderer: Initialized EGL, version 1.4 +11-01 17:32:35.641 295 1701 D OpenGLRenderer: Swap behavior 1 +11-01 17:32:35.641 295 1701 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... +11-01 17:32:35.641 295 1701 D OpenGLRenderer: Swap behavior 0 +11-01 17:32:36.514 295 1319 I ActivityManager: START u0 {act=com.antutu.benchmark.full.MAROONED_RUN flg=0x14000000 cmp=com.antutu.benchmark.full/.UnityPlayerActivity (has extras)} from uid 10058 +11-01 17:32:36.536 295 1316 I ActivityManager: Start proc 7493:com.antutu.benchmark.full/u0a57 for activity com.antutu.benchmark.full/.UnityPlayerActivity +11-01 17:32:36.630 295 1316 W ActivityManager: Slow operation: 65ms so far, now at attachApplicationLocked: after mServices.attachApplicationLocked +11-01 17:32:36.735 295 1253 W Binder : Outgoing transactions from this process must be FLAG_ONEWAY +11-01 17:32:36.735 295 1253 W Binder : java.lang.Throwable +11-01 17:32:36.735 295 1253 W Binder : at android.os.BinderProxy.transact(Binder.java:736) +11-01 17:32:36.735 295 1253 W Binder : at android.content.ContentProviderProxy.getType(ContentProviderNative.java:451) +11-01 17:32:36.735 295 1253 W Binder : at com.android.server.am.ActivityManagerService.getProviderMimeType(ActivityManagerService.java:12097) +11-01 17:32:36.735 295 1253 W Binder : at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:1799) +11-01 17:32:36.735 295 1253 W Binder : at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2935) +11-01 17:32:36.735 295 1253 W Binder : at android.os.Binder.execTransact(Binder.java:674) +11-01 17:32:36.791 7493 7512 D OpenGLRenderer: HWUI GL Pipeline +11-01 17:32:36.822 7493 7512 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:36.825 7493 7512 E IMGSRV : :0: PVRSRVOpenDCDevice: Error - 138 returned +11-01 17:32:36.830 7493 7512 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:36.831 7493 7512 I OpenGLRenderer: Initialized EGL, version 1.4 +11-01 17:32:36.831 7493 7512 D OpenGLRenderer: Swap behavior 1 +11-01 17:32:36.831 7493 7512 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... +11-01 17:32:36.831 7493 7512 D OpenGLRenderer: Swap behavior 0 +11-01 17:32:36.848 7493 7493 I UnityMain: type=1400 audit(0.0:122): avc: denied { read } for name="stat" dev="proc" ino=4026532090 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc_stat:s0 tclass=file permissive=1 +11-01 17:32:36.848 7493 7493 I UnityMain: type=1400 audit(0.0:123): avc: denied { open } for path="/proc/stat" dev="proc" ino=4026532090 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc_stat:s0 tclass=file permissive=1 +11-01 17:32:36.972 7493 7512 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:37.001 295 319 I ActivityManager: Displayed com.antutu.benchmark.full/.UnityPlayerActivity: +476ms +11-01 17:32:37.058 7493 7511 D Unity : GL_EXT_debug_marker GL_OES_rgb8_rgba8 GL_OES_depth24 GL_OES_vertex_half_float GL_OES_texture_float GL_OES_texture_half_float GL_OES_element_index_uint GL_OES_mapbuffer GL_OES_fragment_precision_high GL_OES_compressed_ETC1_RGB8_texture GL_OES_fbo_render_mipmap GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_required_internalformat GL_OES_depth_texture GL_OES_get_program_binary GL_OES_packed_depth_stencil GL_OES_standard_derivatives GL_OES_vertex_array_object GL_OES_egl_sync GL_OES_texture_npot GL_OES_surfaceless_context GL_EXT_discard_framebuffer GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_multisampled_render_to_texture GL_EXT_shader_texture_lod GL_EXT_texture_format_BGRA8888 GL_EXT_occlusion_query_boolean GL_EXT_texture_rg GL_EXT_draw_buffers GL_EXT_shader_framebuffer_fetch GL_IMG_shader_binary GL_IMG_texture_compression_pvrtc GL_IMG_texture_compression_pvrtc2 GL_IMG_texture_npot GL_IMG_texture_format_BGRA8888 GL_IMG_read_format GL_IMG_program_binary GL_IMG_uniform_buffer_object GL_IMG_multisampled +11-01 17:32:37.059 7493 7511 D Unity : _render_to_texture GL_KHR_debug +11-01 17:32:37.156 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:37.157 7493 7523 E AudioTrack: Unable to query output sample rate for stream type -1; status -1 +11-01 17:32:37.157 7493 7523 E AudioTrack-JNI: AudioTrack::getMinFrameCount() for sample rate 24000 failed with status -1 +11-01 17:32:37.157 7493 7523 E android.media.AudioTrack: getMinBufferSize(): error querying hardware +11-01 17:32:37.158 7493 7511 W libc : pthread_create sched_setscheduler call failed: Operation not permitted +11-01 17:32:37.158 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 24000,format 1, channels 3, flags 0 +11-01 17:32:37.158 7493 7523 E AudioTrack: Could not get audio output for session 185, stream type -1, usage 1, sample rate 24000, format 0x1, channel mask 0x3, flags 0 +11-01 17:32:37.158 7493 7523 E AudioTrack-JNI: Error -22 initializing AudioTrack +11-01 17:32:37.158 7493 7523 E android.media.AudioTrack: Error code -20 when initializing AudioTrack. +11-01 17:32:37.158 7493 7523 W AudioTrack: Use of stream types is deprecated for operations other than volume control +11-01 17:32:37.158 7493 7523 W AudioTrack: See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case +11-01 17:32:37.158 7493 7523 E FMOD : AudioTrack failed to initialize (status 0) +11-01 17:32:37.159 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:37.159 7493 7523 E AudioTrack: Unable to query output sample rate for stream type -1; status -1 +11-01 17:32:37.159 7493 7523 E AudioTrack-JNI: AudioTrack::getMinFrameCount() for sample rate 24000 failed with status -1 +11-01 17:32:37.159 7493 7523 E android.media.AudioTrack: getMinBufferSize(): error querying hardware +11-01 17:32:37.159 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 24000,format 1, channels 3, flags 0 +11-01 17:32:37.159 7493 7523 E AudioTrack: Could not get audio output for session 193, stream type -1, usage 1, sample rate 24000, format 0x1, channel mask 0x3, flags 0 +11-01 17:32:37.160 7493 7523 E AudioTrack-JNI: Error -22 initializing AudioTrack +11-01 17:32:37.160 7493 7523 E android.media.AudioTrack: Error code -20 when initializing AudioTrack. +11-01 17:32:37.160 7493 7523 W AudioTrack: Use of stream types is deprecated for operations other than volume control +11-01 17:32:37.160 7493 7523 W AudioTrack: See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case +11-01 17:32:37.160 7493 7523 E FMOD : AudioTrack failed to initialize (status 0) +11-01 17:32:37.160 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:37.160 7493 7523 E AudioTrack: Unable to query output sample rate for stream type -1; status -1 +11-01 17:32:37.160 7493 7523 E AudioTrack-JNI: AudioTrack::getMinFrameCount() for sample rate 24000 failed with status -1 +11-01 17:32:37.160 7493 7523 E android.media.AudioTrack: getMinBufferSize(): error querying hardware +11-01 17:32:37.160 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 24000,format 1, channels 3, flags 0 +11-01 17:32:37.161 7493 7523 E AudioTrack: Could not get audio output for session 201, stream type -1, usage 1, sample rate 24000, format 0x1, channel mask 0x3, flags 0 +11-01 17:32:37.161 7493 7523 E AudioTrack-JNI: Error -22 initializing AudioTrack +11-01 17:32:37.161 7493 7523 E android.media.AudioTrack: Error code -20 when initializing AudioTrack. +11-01 17:32:37.161 7493 7523 W AudioTrack: Use of stream types is deprecated for operations other than volume control +11-01 17:32:37.161 7493 7523 W AudioTrack: See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case +11-01 17:32:37.161 7493 7523 E FMOD : AudioTrack failed to initialize (status 0) +11-01 17:32:37.295 7493 7511 V MediaRouter: Adding route: RouteInfo{ name=Tablet, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null } +11-01 17:32:37.297 7493 7511 V MediaRouter: Selecting route: RouteInfo{ name=Tablet, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null } +11-01 17:32:37.311 295 295 D ZenLog : disable_effects: 0|android|40|null|1000,booleanState +11-01 17:32:37.348 409 409 W com.android.systemui: type=1400 audit(0.0:124): avc: granted { getattr } for comm=496E666C6174657254687265616420 path="/" dev="rootfs" ino=1 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:rootfs:s0 tclass=dir +11-01 17:32:37.500 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:37.526 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:32:37.545 295 1701 I OpenGLRenderer: Initialized EGL, version 1.4 +11-01 17:32:37.549 295 1701 D OpenGLRenderer: Swap behavior 1 +11-01 17:32:37.549 295 1701 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... +11-01 17:32:37.549 295 1701 D OpenGLRenderer: Swap behavior 0 +11-01 17:32:37.598 409 409 I chatty : uid=10013(u0_a13) com.android.systemui expire 16 lines +11-01 17:32:37.598 409 409 W com.android.systemui: type=1400 audit(0.0:141): avc: granted { getattr } for comm=496E666C6174657254687265616420 path="/" dev="rootfs" ino=1 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:rootfs:s0 tclass=dir +11-01 17:32:38.155 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:38.155 7493 7532 E AudioTrack: Unable to query output sample rate for stream type -1; status -1 +11-01 17:32:38.155 7493 7532 E AudioTrack-JNI: AudioTrack::getMinFrameCount() for sample rate 24000 failed with status -1 +11-01 17:32:38.155 7493 7532 E android.media.AudioTrack: getMinBufferSize(): error querying hardware +11-01 17:32:38.155 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 24000,format 1, channels 3, flags 0 +11-01 17:32:38.155 7493 7532 E AudioTrack: Could not get audio output for session 209, stream type -1, usage 1, sample rate 24000, format 0x1, channel mask 0x3, flags 0 +11-01 17:32:38.155 7493 7532 E AudioTrack-JNI: Error -22 initializing AudioTrack +11-01 17:32:38.155 7493 7532 E android.media.AudioTrack: Error code -20 when initializing AudioTrack. +11-01 17:32:38.155 7493 7532 W AudioTrack: Use of stream types is deprecated for operations other than volume control +11-01 17:32:38.155 7493 7532 W AudioTrack: See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case +11-01 17:32:38.155 7493 7532 E FMOD : AudioTrack failed to initialize (status 0) +11-01 17:32:38.156 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:38.156 7493 7532 E AudioTrack: Unable to query output sample rate for stream type -1; status -1 +11-01 17:32:38.156 7493 7532 E AudioTrack-JNI: AudioTrack::getMinFrameCount() for sample rate 24000 failed with status -1 +11-01 17:32:38.156 7493 7532 E android.media.AudioTrack: getMinBufferSize(): error querying hardware +11-01 17:32:38.156 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 24000,format 1, channels 3, flags 0 +11-01 17:32:38.156 7493 7532 E AudioTrack: Could not get audio output for session 217, stream type -1, usage 1, sample rate 24000, format 0x1, channel mask 0x3, flags 0 +11-01 17:32:38.157 7493 7532 E AudioTrack-JNI: Error -22 initializing AudioTrack +11-01 17:32:38.157 7493 7532 E android.media.AudioTrack: Error code -20 when initializing AudioTrack. +11-01 17:32:38.157 7493 7532 W AudioTrack: Use of stream types is deprecated for operations other than volume control +11-01 17:32:38.157 7493 7532 W AudioTrack: See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case +11-01 17:32:38.157 7493 7532 E FMOD : AudioTrack failed to initialize (status 0) +11-01 17:32:38.157 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:32:38.157 7493 7532 E AudioTrack: Unable to query output sample rate for stream type -1; status -1 +11-01 17:32:38.157 7493 7532 E AudioTrack-JNI: AudioTrack::getMinFrameCount() for sample rate 24000 failed with status -1 +11-01 17:32:38.157 7493 7532 E android.media.AudioTrack: getMinBufferSize(): error querying hardware +11-01 17:32:38.157 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 3, samplingRate 24000,format 1, channels 3, flags 0 +11-01 17:32:38.157 7493 7532 E AudioTrack: Could not get audio output for session 225, stream type -1, usage 1, sample rate 24000, format 0x1, channel mask 0x3, flags 0 +11-01 17:32:38.162 7493 7532 E AudioTrack-JNI: Error -22 initializing AudioTrack +11-01 17:32:38.162 7493 7532 E android.media.AudioTrack: Error code -20 when initializing AudioTrack. +11-01 17:32:38.165 7493 7532 W AudioTrack: Use of stream types is deprecated for operations other than volume control +11-01 17:32:38.166 7493 7532 W AudioTrack: See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case +11-01 17:32:38.166 7493 7532 E FMOD : AudioTrack failed to initialize (status 0) +11-01 17:32:38.412 295 312 W Looper : Dispatch took 848ms on android.ui, h=Handler (com.android.server.policy.ImmersiveModeConfirmation$H) {27e1a27} cb=null msg=1 +11-01 17:32:38.533 7493 7511 W Unity : Hardware resolution scaling not supported, falling back to software scaling (blit). +11-01 17:32:38.533 7493 7511 W Unity : +11-01 17:32:38.533 7493 7511 W Unity : (Filename: Line: 467) +11-01 17:32:38.533 7493 7511 W Unity : +11-01 17:32:39.515 295 395 E TaskPersister: File error accessing recents directory (directory doesn't exist?). +11-01 17:32:42.254 7493 7519 E Unity : -------- GLSL link error: +11-01 17:32:42.254 7493 7519 E Unity : +11-01 17:32:42.254 7493 7519 E Unity : +11-01 17:32:42.254 7493 7519 E Unity : +11-01 17:32:42.254 7493 7519 E Unity : (Filename: Line: 582) +11-01 17:32:42.254 7493 7519 E Unity : +11-01 17:32:42.306 7493 7519 D Unity : #version 100 +11-01 17:32:42.306 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:42.306 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:42.306 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:42.306 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:42.306 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:42.306 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:42.306 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:42.306 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:42.306 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:42.306 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:42.306 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:42.306 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:42.306 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:42.306 7493 7519 D Unity : uniform highp mat4 unity_World2Shadow[4]; +11-01 17:32:42.306 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:42.306 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:42.306 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:42.306 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:42.306 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:42.306 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:42.306 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:42.306 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:42.306 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:42.307 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:42.307 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:42.307 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:42.307 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:42.307 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD6; +11-01 17:32:42.307 7493 7519 D Unity : void main () +11-01 17:32:42.307 7493 7519 D Unity : { +11-01 17:32:42.307 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:42.307 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:42.307 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:42.307 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:42.307 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:42.307 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:42.307 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:42.307 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:42.307 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:42.307 7493 7519 D Unity : mediump vec4 tmpvar_10; +11-01 17:32:42.307 7493 7519 D Unity : highp vec4 tmpvar_11; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_11 = (_Object2World * _glesVertex); +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:42.307 7493 7519 D Unity : highp vec4 texcoord_12; +11-01 17:32:42.307 7493 7519 D Unity : texcoord_12.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:42.307 7493 7519 D Unity : highp vec2 tmpvar_13; +11-01 17:32:42.307 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_13 = tmpvar_2; +11-01 17:32:42.307 7493 7519 D Unity : } else { +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_13 = tmpvar_3; +11-01 17:32:42.307 7493 7519 D Unity : }; +11-01 17:32:42.307 7493 7519 D Unity : texcoord_12.zw = ((tmpvar_13 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:42.307 7493 7519 D Unity : mediump vec3 n_14; +11-01 17:32:42.307 7493 7519 D Unity : n_14 = (tmpvar_11.xyz - _WorldSpaceCameraPos); +11-01 17:32:42.307 7493 7519 D Unity : highp vec3 norm_15; +11-01 17:32:42.307 7493 7519 D Unity : norm_15 = tmpvar_1; +11-01 17:32:42.307 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:42.307 7493 7519 D Unity : v_16.x = _World2Object[0].x; +11-01 17:32:42.307 7493 7519 D Unity : v_16.y = _World2Object[1].x; +11-01 17:32:42.307 7493 7519 D Unity : v_16.z = _World2Object[2].x; +11-01 17:32:42.307 7493 7519 D Unity : v_16.w = _World2Object[3].x; +11-01 17:32:42.307 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:42.307 7493 7519 D Unity : v_17.x = _World2Object[0].y; +11-01 17:32:42.307 7493 7519 D Unity : v_17.y = _World2Object[1].y; +11-01 17:32:42.307 7493 7519 D Unity : v_17.z = _World2Object[2].y; +11-01 17:32:42.307 7493 7519 D Unity : v_17.w = _World2Object[3].y; +11-01 17:32:42.307 7493 7519 D Unity : highp vec4 v_18; +11-01 17:32:42.307 7493 7519 D Unity : v_18.x = _World2Object[0].z; +11-01 17:32:42.307 7493 7519 D Unity : v_18.y = _World2Object[1].z; +11-01 17:32:42.307 7493 7519 D Unity : v_18.z = _World2Object[2].z; +11-01 17:32:42.307 7493 7519 D Unity : v_18.w = _World2Object[3].z; +11-01 17:32:42.307 7493 7519 D Unity : highp vec3 tmpvar_19; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_19 = normalize((( +11-01 17:32:42.307 7493 7519 D Unity : (v_16.xyz * norm_15.x) +11-01 17:32:42.307 7493 7519 D Unity : + +11-01 17:32:42.307 7493 7519 D Unity : (v_17.xyz * norm_15.y) +11-01 17:32:42.307 7493 7519 D Unity : ) + (v_18.xyz * norm_15.z))); +11-01 17:32:42.307 7493 7519 D Unity : highp vec3 dir_20; +11-01 17:32:42.307 7493 7519 D Unity : dir_20 = tmpvar_4.xyz; +11-01 17:32:42.307 7493 7519 D Unity : highp mat3 tmpvar_21; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_21[0] = _Object2World[0].xyz; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_21[1] = _Object2World[1].xyz; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_21[2] = _Object2World[2].xyz; +11-01 17:32:42.307 7493 7519 D Unity : highp vec4 tmpvar_22; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_22.xyz = normalize((tmpvar_21 * dir_20)); +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_22.w = tmpvar_4.w; +11-01 17:32:42.307 7493 7519 D Unity : mediump vec3 normal_23; +11-01 17:32:42.307 7493 7519 D Unity : normal_23 = tmpvar_19; +11-01 17:32:42.307 7493 7519 D Unity : mediump vec3 tangent_24; +11-01 17:32:42.307 7493 7519 D Unity : tangent_24 = tmpvar_22.xyz; +11-01 17:32:42.307 7493 7519 D Unity : mediump float tangentSign_25; +11-01 17:32:42.307 7493 7519 D Unity : tangentSign_25 = tmpvar_22.w; +11-01 17:32:42.307 7493 7519 D Unity : mediump float sign_26; +11-01 17:32:42.307 7493 7519 D Unity : highp float tmpvar_27; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_27 = (tangentSign_25 * unity_WorldTransformParams.w); +11-01 17:32:42.307 7493 7519 D Unity : sign_26 = tmpvar_27; +11-01 17:32:42.307 7493 7519 D Unity : mediump vec3 tmpvar_28; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_28 = (((normal_23.yzx * tangent_24.zxy) - (normal_23.zxy * tangent_24.yzx)) * sign_26); +11-01 17:32:42.307 7493 7519 D Unity : mediump mat3 tmpvar_29; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_29[0].x = tangent_24.x; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_29[0].y = tmpvar_28.x; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_29[0].z = normal_23.x; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_29[1].x = tangent_24.y; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_29[1].y = tmpvar_28.y; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_29[1].z = normal_23.y; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_29[2].x = tangent_24.z; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_29[2].y = tmpvar_28.z; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_29[2].z = normal_23.z; +11-01 17:32:42.307 7493 7519 D Unity : tangentToWorld_5 = tmpvar_29; +11-01 17:32:42.307 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:42.307 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].x; +11-01 17:32:42.307 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].x; +11-01 17:32:42.307 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].x; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_7.xyz = v_30; +11-01 17:32:42.307 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:42.307 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].y; +11-01 17:32:42.307 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].y; +11-01 17:32:42.307 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].y; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_8.xyz = v_31; +11-01 17:32:42.307 7493 7519 D Unity : highp vec3 v_32; +11-01 17:32:42.307 7493 7519 D Unity : v_32.x = tangentToWorld_5[0].z; +11-01 17:32:42.307 7493 7519 D Unity : v_32.y = tangentToWorld_5[1].z; +11-01 17:32:42.307 7493 7519 D Unity : v_32.z = tangentToWorld_5[2].z; +11-01 17:32:42.307 7493 7519 D Unity : tmpvar_9.xyz = v_32; +11-01 17:32:42.308 7493 7519 D Unity : tmpvar_10 = (unity_World2Shadow[0] * (_Object2World * _glesVertex)); +11-01 17:32:42.308 7493 7519 D Unity : mediump vec3 normalWorld_33; +11-01 17:32:42.308 7493 7519 D Unity : normalWorld_33 = tmpvar_19; +11-01 17:32:42.308 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_34; +11-01 17:32:42.308 7493 7519 D Unity : ambientOrLightmapUV_34.w = 0.0; +11-01 17:32:42.308 7493 7519 D Unity : mediump vec4 tmpvar_35; +11-01 17:32:42.308 7493 7519 D Unity : tmpvar_35.w = 1.0; +11-01 17:32:42.308 7493 7519 D Unity : tmpvar_35.xyz = normalWorld_33; +11-01 17:32:42.308 7493 7519 D Unity : mediump vec3 x2_36; +11-01 17:32:42.308 7493 7519 D Unity : mediump vec3 x1_37; +11-01 17:32:42.308 7493 7519 D Unity : x1_37.x = dot (unity_SHAr, tmpvar_35); +11-01 17:32:42.308 7493 7519 D Unity : x1_37.y = dot (unity_SHAg, tmpvar_35); +11-01 17:32:42.308 7493 7519 D Unity : x1_37.z = dot (unity_SHAb, tmpvar_35); +11-01 17:32:42.308 7493 7519 D Unity : mediump vec4 tmpvar_38; +11-01 17:32:42.308 7493 7519 D Unity : tmpvar_38 = (normalWorld_33.xyzz * normalWorld_33.yzzx); +11-01 17:32:42.308 7493 7519 D Unity : x2_36.x = dot (unity_SHBr, tmpvar_38); +11-01 17:32:42.308 7493 7519 D Unity : x2_36.y = dot (unity_SHBg, tmpvar_38); +11-01 17:32:42.308 7493 7519 D Unity : x2_36.z = dot (unity_SHBb, tmpvar_38); +11-01 17:32:42.308 7493 7519 D Unity : ambientOrLightmapUV_34.xyz = ((x2_36 + (unity_SHC.xyz * +11-01 17:32:42.308 7493 7519 D Unity : ((normalWorld_33.x * normalWorld_33.x) - (normalWorld_33.y * normalWorld_33.y)) +11-01 17:32:42.308 7493 7519 D Unity : )) + x1_37); +11-01 17:32:42.308 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:42.308 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_12; +11-01 17:32:42.308 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_14); +11-01 17:32:42.308 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:42.308 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:42.308 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:42.308 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_34; +11-01 17:32:42.308 7493 7519 D Unity : xlv_TEXCOORD6 = tmpvar_10; +11-01 17:32:42.308 7493 7519 D Unity : } +11-01 17:32:42.308 7493 7519 D Unity : vertex shader +11-01 17:32:42.308 7493 7519 D Unity : Compile failed. +11-01 17:32:42.330 7493 7519 D Unity : #version 100 +11-01 17:32:42.330 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:42.330 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:42.330 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:42.330 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:42.330 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:42.330 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:42.330 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:42.330 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:42.330 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:42.330 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:42.330 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:42.330 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:42.330 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:42.330 7493 7519 D Unity : uniform highp mat4 unity_World2Shadow[4]; +11-01 17:32:42.330 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:42.330 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:42.330 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:42.330 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:42.330 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:42.330 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:42.330 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:42.330 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:42.330 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:42.330 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:42.330 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:42.330 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:42.330 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:42.330 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD6; +11-01 17:32:42.330 7493 7519 D Unity : void main () +11-01 17:32:42.330 7493 7519 D Unity : { +11-01 17:32:42.330 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:42.330 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:42.330 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:42.330 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:42.330 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:42.330 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:42.330 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:42.330 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:42.330 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:42.330 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:42.330 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:42.330 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:42.330 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:42.330 7493 7519 D Unity : mediump vec4 tmpvar_10; +11-01 17:32:42.330 7493 7519 D Unity : highp vec4 tmpvar_11; +11-01 17:32:42.330 7493 7519 D Unity : tmpvar_11 = (_Object2World * _glesVertex); +11-01 17:32:42.330 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:42.330 7493 7519 D Unity : highp vec4 texcoord_12; +11-01 17:32:42.330 7493 7519 D Unity : texcoord_12.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:42.330 7493 7519 D Unity : highp vec2 tmpvar_13; +11-01 17:32:42.330 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:42.330 7493 7519 D Unity : tmpvar_13 = tmpvar_2; +11-01 17:32:42.330 7493 7519 D Unity : } else { +11-01 17:32:42.330 7493 7519 D Unity : tmpvar_13 = tmpvar_3; +11-01 17:32:42.330 7493 7519 D Unity : }; +11-01 17:32:42.331 7493 7519 D Unity : texcoord_12.zw = ((tmpvar_13 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:42.331 7493 7519 D Unity : mediump vec3 n_14; +11-01 17:32:42.331 7493 7519 D Unity : n_14 = (tmpvar_11.xyz - _WorldSpaceCameraPos); +11-01 17:32:42.331 7493 7519 D Unity : highp vec3 norm_15; +11-01 17:32:42.331 7493 7519 D Unity : norm_15 = tmpvar_1; +11-01 17:32:42.331 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:42.331 7493 7519 D Unity : v_16.x = _World2Object[0].x; +11-01 17:32:42.331 7493 7519 D Unity : v_16.y = _World2Object[1].x; +11-01 17:32:42.331 7493 7519 D Unity : v_16.z = _World2Object[2].x; +11-01 17:32:42.331 7493 7519 D Unity : v_16.w = _World2Object[3].x; +11-01 17:32:42.331 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:42.331 7493 7519 D Unity : v_17.x = _World2Object[0].y; +11-01 17:32:42.331 7493 7519 D Unity : v_17.y = _World2Object[1].y; +11-01 17:32:42.331 7493 7519 D Unity : v_17.z = _World2Object[2].y; +11-01 17:32:42.331 7493 7519 D Unity : v_17.w = _World2Object[3].y; +11-01 17:32:42.331 7493 7519 D Unity : highp vec4 v_18; +11-01 17:32:42.331 7493 7519 D Unity : v_18.x = _World2Object[0].z; +11-01 17:32:42.331 7493 7519 D Unity : v_18.y = _World2Object[1].z; +11-01 17:32:42.331 7493 7519 D Unity : v_18.z = _World2Object[2].z; +11-01 17:32:42.331 7493 7519 D Unity : v_18.w = _World2Object[3].z; +11-01 17:32:42.331 7493 7519 D Unity : highp vec3 tmpvar_19; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_19 = normalize((( +11-01 17:32:42.331 7493 7519 D Unity : (v_16.xyz * norm_15.x) +11-01 17:32:42.331 7493 7519 D Unity : + +11-01 17:32:42.331 7493 7519 D Unity : (v_17.xyz * norm_15.y) +11-01 17:32:42.331 7493 7519 D Unity : ) + (v_18.xyz * norm_15.z))); +11-01 17:32:42.331 7493 7519 D Unity : highp vec3 dir_20; +11-01 17:32:42.331 7493 7519 D Unity : dir_20 = tmpvar_4.xyz; +11-01 17:32:42.331 7493 7519 D Unity : highp mat3 tmpvar_21; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_21[0] = _Object2World[0].xyz; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_21[1] = _Object2World[1].xyz; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_21[2] = _Object2World[2].xyz; +11-01 17:32:42.331 7493 7519 D Unity : highp vec4 tmpvar_22; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_22.xyz = normalize((tmpvar_21 * dir_20)); +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_22.w = tmpvar_4.w; +11-01 17:32:42.331 7493 7519 D Unity : mediump vec3 normal_23; +11-01 17:32:42.331 7493 7519 D Unity : normal_23 = tmpvar_19; +11-01 17:32:42.331 7493 7519 D Unity : mediump vec3 tangent_24; +11-01 17:32:42.331 7493 7519 D Unity : tangent_24 = tmpvar_22.xyz; +11-01 17:32:42.331 7493 7519 D Unity : mediump float tangentSign_25; +11-01 17:32:42.331 7493 7519 D Unity : tangentSign_25 = tmpvar_22.w; +11-01 17:32:42.331 7493 7519 D Unity : mediump float sign_26; +11-01 17:32:42.331 7493 7519 D Unity : highp float tmpvar_27; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_27 = (tangentSign_25 * unity_WorldTransformParams.w); +11-01 17:32:42.331 7493 7519 D Unity : sign_26 = tmpvar_27; +11-01 17:32:42.331 7493 7519 D Unity : mediump vec3 tmpvar_28; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_28 = (((normal_23.yzx * tangent_24.zxy) - (normal_23.zxy * tangent_24.yzx)) * sign_26); +11-01 17:32:42.331 7493 7519 D Unity : mediump mat3 tmpvar_29; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_29[0].x = tangent_24.x; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_29[0].y = tmpvar_28.x; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_29[0].z = normal_23.x; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_29[1].x = tangent_24.y; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_29[1].y = tmpvar_28.y; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_29[1].z = normal_23.y; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_29[2].x = tangent_24.z; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_29[2].y = tmpvar_28.z; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_29[2].z = normal_23.z; +11-01 17:32:42.331 7493 7519 D Unity : tangentToWorld_5 = tmpvar_29; +11-01 17:32:42.331 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:42.331 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].x; +11-01 17:32:42.331 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].x; +11-01 17:32:42.331 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].x; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_7.xyz = v_30; +11-01 17:32:42.331 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:42.331 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].y; +11-01 17:32:42.331 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].y; +11-01 17:32:42.331 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].y; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_8.xyz = v_31; +11-01 17:32:42.331 7493 7519 D Unity : highp vec3 v_32; +11-01 17:32:42.331 7493 7519 D Unity : v_32.x = tangentToWorld_5[0].z; +11-01 17:32:42.331 7493 7519 D Unity : v_32.y = tangentToWorld_5[1].z; +11-01 17:32:42.331 7493 7519 D Unity : v_32.z = tangentToWorld_5[2].z; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_9.xyz = v_32; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_10 = (unity_World2Shadow[0] * (_Object2World * _glesVertex)); +11-01 17:32:42.331 7493 7519 D Unity : mediump vec3 normalWorld_33; +11-01 17:32:42.331 7493 7519 D Unity : normalWorld_33 = tmpvar_19; +11-01 17:32:42.331 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_34; +11-01 17:32:42.331 7493 7519 D Unity : ambientOrLightmapUV_34.w = 0.0; +11-01 17:32:42.331 7493 7519 D Unity : mediump vec4 tmpvar_35; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_35.w = 1.0; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_35.xyz = normalWorld_33; +11-01 17:32:42.331 7493 7519 D Unity : mediump vec3 x2_36; +11-01 17:32:42.331 7493 7519 D Unity : mediump vec3 x1_37; +11-01 17:32:42.331 7493 7519 D Unity : x1_37.x = dot (unity_SHAr, tmpvar_35); +11-01 17:32:42.331 7493 7519 D Unity : x1_37.y = dot (unity_SHAg, tmpvar_35); +11-01 17:32:42.331 7493 7519 D Unity : x1_37.z = dot (unity_SHAb, tmpvar_35); +11-01 17:32:42.331 7493 7519 D Unity : mediump vec4 tmpvar_38; +11-01 17:32:42.331 7493 7519 D Unity : tmpvar_38 = (normalWorld_33.xyzz * normalWorld_33.yzzx); +11-01 17:32:42.331 7493 7519 D Unity : x2_36.x = dot (unity_SHBr, tmpvar_38); +11-01 17:32:42.331 7493 7519 D Unity : x2_36.y = dot (unity_SHBg, tmpvar_38); +11-01 17:32:42.331 7493 7519 D Unity : x2_36.z = dot (unity_SHBb, tmpvar_38); +11-01 17:32:42.331 7493 7519 D Unity : ambientOrLightmapUV_34.xyz = ((x2_36 + (unity_SHC.xyz * +11-01 17:32:42.331 7493 7519 D Unity : ((normalWorld_33.x * normalWorld_33.x) - (normalWorld_33.y * normalWorld_33.y)) +11-01 17:32:42.331 7493 7519 D Unity : )) + x1_37); +11-01 17:32:42.331 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:42.331 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_12; +11-01 17:32:42.331 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_14); +11-01 17:32:42.331 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:42.331 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:42.331 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:42.331 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_34; +11-01 17:32:42.331 7493 7519 D Unity : xlv_TEXCOORD6 = tmpvar_10; +11-01 17:32:42.331 7493 7519 D Unity : } +11-01 17:32:42.331 7493 7519 D Unity : vertex shader +11-01 17:32:42.331 7493 7519 D Unity : Compile failed. +11-01 17:32:42.354 7493 7519 D Unity : #version 100 +11-01 17:32:42.355 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:42.355 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:42.355 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:42.355 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:42.355 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:42.355 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:42.355 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:42.355 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:42.355 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:42.355 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:42.355 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:42.355 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:42.355 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:42.355 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:42.355 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:42.355 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:42.355 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:42.355 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:42.355 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:42.355 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:42.355 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:42.355 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:42.355 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:42.355 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:42.355 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:42.355 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:42.355 7493 7519 D Unity : void main () +11-01 17:32:42.355 7493 7519 D Unity : { +11-01 17:32:42.355 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:42.355 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:42.355 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:42.355 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:42.355 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:42.355 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:42.355 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:42.355 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:42.355 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:42.355 7493 7519 D Unity : highp vec4 tmpvar_10; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_10 = (_Object2World * _glesVertex); +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:42.355 7493 7519 D Unity : highp vec4 texcoord_11; +11-01 17:32:42.355 7493 7519 D Unity : texcoord_11.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:42.355 7493 7519 D Unity : highp vec2 tmpvar_12; +11-01 17:32:42.355 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_12 = tmpvar_2; +11-01 17:32:42.355 7493 7519 D Unity : } else { +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_12 = tmpvar_3; +11-01 17:32:42.355 7493 7519 D Unity : }; +11-01 17:32:42.355 7493 7519 D Unity : texcoord_11.zw = ((tmpvar_12 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:42.355 7493 7519 D Unity : mediump vec3 n_13; +11-01 17:32:42.355 7493 7519 D Unity : n_13 = (tmpvar_10.xyz - _WorldSpaceCameraPos); +11-01 17:32:42.355 7493 7519 D Unity : highp vec3 norm_14; +11-01 17:32:42.355 7493 7519 D Unity : norm_14 = tmpvar_1; +11-01 17:32:42.355 7493 7519 D Unity : highp vec4 v_15; +11-01 17:32:42.355 7493 7519 D Unity : v_15.x = _World2Object[0].x; +11-01 17:32:42.355 7493 7519 D Unity : v_15.y = _World2Object[1].x; +11-01 17:32:42.355 7493 7519 D Unity : v_15.z = _World2Object[2].x; +11-01 17:32:42.355 7493 7519 D Unity : v_15.w = _World2Object[3].x; +11-01 17:32:42.355 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:42.355 7493 7519 D Unity : v_16.x = _World2Object[0].y; +11-01 17:32:42.355 7493 7519 D Unity : v_16.y = _World2Object[1].y; +11-01 17:32:42.355 7493 7519 D Unity : v_16.z = _World2Object[2].y; +11-01 17:32:42.355 7493 7519 D Unity : v_16.w = _World2Object[3].y; +11-01 17:32:42.355 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:42.355 7493 7519 D Unity : v_17.x = _World2Object[0].z; +11-01 17:32:42.355 7493 7519 D Unity : v_17.y = _World2Object[1].z; +11-01 17:32:42.355 7493 7519 D Unity : v_17.z = _World2Object[2].z; +11-01 17:32:42.355 7493 7519 D Unity : v_17.w = _World2Object[3].z; +11-01 17:32:42.355 7493 7519 D Unity : highp vec3 tmpvar_18; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_18 = normalize((( +11-01 17:32:42.355 7493 7519 D Unity : (v_15.xyz * norm_14.x) +11-01 17:32:42.355 7493 7519 D Unity : + +11-01 17:32:42.355 7493 7519 D Unity : (v_16.xyz * norm_14.y) +11-01 17:32:42.355 7493 7519 D Unity : ) + (v_17.xyz * norm_14.z))); +11-01 17:32:42.355 7493 7519 D Unity : highp vec3 dir_19; +11-01 17:32:42.355 7493 7519 D Unity : dir_19 = tmpvar_4.xyz; +11-01 17:32:42.355 7493 7519 D Unity : highp mat3 tmpvar_20; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_20[0] = _Object2World[0].xyz; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_20[1] = _Object2World[1].xyz; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_20[2] = _Object2World[2].xyz; +11-01 17:32:42.355 7493 7519 D Unity : highp vec4 tmpvar_21; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_21.xyz = normalize((tmpvar_20 * dir_19)); +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_21.w = tmpvar_4.w; +11-01 17:32:42.355 7493 7519 D Unity : mediump vec3 normal_22; +11-01 17:32:42.355 7493 7519 D Unity : normal_22 = tmpvar_18; +11-01 17:32:42.355 7493 7519 D Unity : mediump vec3 tangent_23; +11-01 17:32:42.355 7493 7519 D Unity : tangent_23 = tmpvar_21.xyz; +11-01 17:32:42.355 7493 7519 D Unity : mediump float tangentSign_24; +11-01 17:32:42.355 7493 7519 D Unity : tangentSign_24 = tmpvar_21.w; +11-01 17:32:42.355 7493 7519 D Unity : mediump float sign_25; +11-01 17:32:42.355 7493 7519 D Unity : highp float tmpvar_26; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_26 = (tangentSign_24 * unity_WorldTransformParams.w); +11-01 17:32:42.355 7493 7519 D Unity : sign_25 = tmpvar_26; +11-01 17:32:42.355 7493 7519 D Unity : mediump vec3 tmpvar_27; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_27 = (((normal_22.yzx * tangent_23.zxy) - (normal_22.zxy * tangent_23.yzx)) * sign_25); +11-01 17:32:42.355 7493 7519 D Unity : mediump mat3 tmpvar_28; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_28[0].x = tangent_23.x; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_28[0].y = tmpvar_27.x; +11-01 17:32:42.355 7493 7519 D Unity : tmpvar_28[0].z = normal_22.x; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_28[1].x = tangent_23.y; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_28[1].y = tmpvar_27.y; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_28[1].z = normal_22.y; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_28[2].x = tangent_23.z; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_28[2].y = tmpvar_27.z; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_28[2].z = normal_22.z; +11-01 17:32:42.356 7493 7519 D Unity : tangentToWorld_5 = tmpvar_28; +11-01 17:32:42.356 7493 7519 D Unity : highp vec3 v_29; +11-01 17:32:42.356 7493 7519 D Unity : v_29.x = tangentToWorld_5[0].x; +11-01 17:32:42.356 7493 7519 D Unity : v_29.y = tangentToWorld_5[1].x; +11-01 17:32:42.356 7493 7519 D Unity : v_29.z = tangentToWorld_5[2].x; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_7.xyz = v_29; +11-01 17:32:42.356 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:42.356 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].y; +11-01 17:32:42.356 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].y; +11-01 17:32:42.356 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].y; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_8.xyz = v_30; +11-01 17:32:42.356 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:42.356 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].z; +11-01 17:32:42.356 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].z; +11-01 17:32:42.356 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].z; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_9.xyz = v_31; +11-01 17:32:42.356 7493 7519 D Unity : mediump vec3 normalWorld_32; +11-01 17:32:42.356 7493 7519 D Unity : normalWorld_32 = tmpvar_18; +11-01 17:32:42.356 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_33; +11-01 17:32:42.356 7493 7519 D Unity : ambientOrLightmapUV_33.w = 0.0; +11-01 17:32:42.356 7493 7519 D Unity : mediump vec4 tmpvar_34; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_34.w = 1.0; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_34.xyz = normalWorld_32; +11-01 17:32:42.356 7493 7519 D Unity : mediump vec3 x2_35; +11-01 17:32:42.356 7493 7519 D Unity : mediump vec3 x1_36; +11-01 17:32:42.356 7493 7519 D Unity : x1_36.x = dot (unity_SHAr, tmpvar_34); +11-01 17:32:42.356 7493 7519 D Unity : x1_36.y = dot (unity_SHAg, tmpvar_34); +11-01 17:32:42.356 7493 7519 D Unity : x1_36.z = dot (unity_SHAb, tmpvar_34); +11-01 17:32:42.356 7493 7519 D Unity : mediump vec4 tmpvar_37; +11-01 17:32:42.356 7493 7519 D Unity : tmpvar_37 = (normalWorld_32.xyzz * normalWorld_32.yzzx); +11-01 17:32:42.356 7493 7519 D Unity : x2_35.x = dot (unity_SHBr, tmpvar_37); +11-01 17:32:42.356 7493 7519 D Unity : x2_35.y = dot (unity_SHBg, tmpvar_37); +11-01 17:32:42.356 7493 7519 D Unity : x2_35.z = dot (unity_SHBb, tmpvar_37); +11-01 17:32:42.356 7493 7519 D Unity : ambientOrLightmapUV_33.xyz = ((x2_35 + (unity_SHC.xyz * +11-01 17:32:42.356 7493 7519 D Unity : ((normalWorld_32.x * normalWorld_32.x) - (normalWorld_32.y * normalWorld_32.y)) +11-01 17:32:42.356 7493 7519 D Unity : )) + x1_36); +11-01 17:32:42.356 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:42.356 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_11; +11-01 17:32:42.356 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_13); +11-01 17:32:42.356 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:42.356 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:42.356 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:42.356 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_33; +11-01 17:32:42.356 7493 7519 D Unity : } +11-01 17:32:42.356 7493 7519 D Unity : vertex shader +11-01 17:32:42.356 7493 7519 D Unity : Compile failed. +11-01 17:32:42.379 7493 7519 D Unity : #version 100 +11-01 17:32:42.379 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:42.379 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:42.379 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:42.379 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:42.379 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:42.379 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:42.379 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:42.379 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:42.379 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:42.379 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:42.379 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:42.379 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:42.379 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:42.379 7493 7519 D Unity : uniform highp mat4 unity_World2Shadow[4]; +11-01 17:32:42.379 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:42.379 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:42.379 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:42.379 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:42.379 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:42.379 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:42.379 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:42.379 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:42.379 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:42.379 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:42.379 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:42.379 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:42.379 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:42.379 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD6; +11-01 17:32:42.379 7493 7519 D Unity : void main () +11-01 17:32:42.379 7493 7519 D Unity : { +11-01 17:32:42.379 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:42.379 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:42.379 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:42.379 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:42.379 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:42.379 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:42.379 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:42.379 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:42.379 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:42.379 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:42.379 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:42.379 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:42.379 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:42.379 7493 7519 D Unity : mediump vec4 tmpvar_10; +11-01 17:32:42.379 7493 7519 D Unity : highp vec4 tmpvar_11; +11-01 17:32:42.379 7493 7519 D Unity : tmpvar_11 = (_Object2World * _glesVertex); +11-01 17:32:42.379 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:42.379 7493 7519 D Unity : highp vec4 texcoord_12; +11-01 17:32:42.379 7493 7519 D Unity : texcoord_12.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:42.379 7493 7519 D Unity : highp vec2 tmpvar_13; +11-01 17:32:42.379 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:42.379 7493 7519 D Unity : tmpvar_13 = tmpvar_2; +11-01 17:32:42.379 7493 7519 D Unity : } else { +11-01 17:32:42.379 7493 7519 D Unity : tmpvar_13 = tmpvar_3; +11-01 17:32:42.379 7493 7519 D Unity : }; +11-01 17:32:42.379 7493 7519 D Unity : texcoord_12.zw = ((tmpvar_13 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:42.380 7493 7519 D Unity : mediump vec3 n_14; +11-01 17:32:42.380 7493 7519 D Unity : n_14 = (tmpvar_11.xyz - _WorldSpaceCameraPos); +11-01 17:32:42.380 7493 7519 D Unity : highp vec3 norm_15; +11-01 17:32:42.380 7493 7519 D Unity : norm_15 = tmpvar_1; +11-01 17:32:42.380 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:42.380 7493 7519 D Unity : v_16.x = _World2Object[0].x; +11-01 17:32:42.380 7493 7519 D Unity : v_16.y = _World2Object[1].x; +11-01 17:32:42.380 7493 7519 D Unity : v_16.z = _World2Object[2].x; +11-01 17:32:42.380 7493 7519 D Unity : v_16.w = _World2Object[3].x; +11-01 17:32:42.380 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:42.380 7493 7519 D Unity : v_17.x = _World2Object[0].y; +11-01 17:32:42.380 7493 7519 D Unity : v_17.y = _World2Object[1].y; +11-01 17:32:42.380 7493 7519 D Unity : v_17.z = _World2Object[2].y; +11-01 17:32:42.380 7493 7519 D Unity : v_17.w = _World2Object[3].y; +11-01 17:32:42.380 7493 7519 D Unity : highp vec4 v_18; +11-01 17:32:42.380 7493 7519 D Unity : v_18.x = _World2Object[0].z; +11-01 17:32:42.380 7493 7519 D Unity : v_18.y = _World2Object[1].z; +11-01 17:32:42.380 7493 7519 D Unity : v_18.z = _World2Object[2].z; +11-01 17:32:42.380 7493 7519 D Unity : v_18.w = _World2Object[3].z; +11-01 17:32:42.380 7493 7519 D Unity : highp vec3 tmpvar_19; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_19 = normalize((( +11-01 17:32:42.380 7493 7519 D Unity : (v_16.xyz * norm_15.x) +11-01 17:32:42.380 7493 7519 D Unity : + +11-01 17:32:42.380 7493 7519 D Unity : (v_17.xyz * norm_15.y) +11-01 17:32:42.380 7493 7519 D Unity : ) + (v_18.xyz * norm_15.z))); +11-01 17:32:42.380 7493 7519 D Unity : highp vec3 dir_20; +11-01 17:32:42.380 7493 7519 D Unity : dir_20 = tmpvar_4.xyz; +11-01 17:32:42.380 7493 7519 D Unity : highp mat3 tmpvar_21; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_21[0] = _Object2World[0].xyz; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_21[1] = _Object2World[1].xyz; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_21[2] = _Object2World[2].xyz; +11-01 17:32:42.380 7493 7519 D Unity : highp vec4 tmpvar_22; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_22.xyz = normalize((tmpvar_21 * dir_20)); +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_22.w = tmpvar_4.w; +11-01 17:32:42.380 7493 7519 D Unity : mediump vec3 normal_23; +11-01 17:32:42.380 7493 7519 D Unity : normal_23 = tmpvar_19; +11-01 17:32:42.380 7493 7519 D Unity : mediump vec3 tangent_24; +11-01 17:32:42.380 7493 7519 D Unity : tangent_24 = tmpvar_22.xyz; +11-01 17:32:42.380 7493 7519 D Unity : mediump float tangentSign_25; +11-01 17:32:42.380 7493 7519 D Unity : tangentSign_25 = tmpvar_22.w; +11-01 17:32:42.380 7493 7519 D Unity : mediump float sign_26; +11-01 17:32:42.380 7493 7519 D Unity : highp float tmpvar_27; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_27 = (tangentSign_25 * unity_WorldTransformParams.w); +11-01 17:32:42.380 7493 7519 D Unity : sign_26 = tmpvar_27; +11-01 17:32:42.380 7493 7519 D Unity : mediump vec3 tmpvar_28; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_28 = (((normal_23.yzx * tangent_24.zxy) - (normal_23.zxy * tangent_24.yzx)) * sign_26); +11-01 17:32:42.380 7493 7519 D Unity : mediump mat3 tmpvar_29; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_29[0].x = tangent_24.x; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_29[0].y = tmpvar_28.x; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_29[0].z = normal_23.x; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_29[1].x = tangent_24.y; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_29[1].y = tmpvar_28.y; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_29[1].z = normal_23.y; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_29[2].x = tangent_24.z; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_29[2].y = tmpvar_28.z; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_29[2].z = normal_23.z; +11-01 17:32:42.380 7493 7519 D Unity : tangentToWorld_5 = tmpvar_29; +11-01 17:32:42.380 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:42.380 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].x; +11-01 17:32:42.380 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].x; +11-01 17:32:42.380 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].x; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_7.xyz = v_30; +11-01 17:32:42.380 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:42.380 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].y; +11-01 17:32:42.380 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].y; +11-01 17:32:42.380 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].y; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_8.xyz = v_31; +11-01 17:32:42.380 7493 7519 D Unity : highp vec3 v_32; +11-01 17:32:42.380 7493 7519 D Unity : v_32.x = tangentToWorld_5[0].z; +11-01 17:32:42.380 7493 7519 D Unity : v_32.y = tangentToWorld_5[1].z; +11-01 17:32:42.380 7493 7519 D Unity : v_32.z = tangentToWorld_5[2].z; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_9.xyz = v_32; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_10 = (unity_World2Shadow[0] * (_Object2World * _glesVertex)); +11-01 17:32:42.380 7493 7519 D Unity : mediump vec3 normalWorld_33; +11-01 17:32:42.380 7493 7519 D Unity : normalWorld_33 = tmpvar_19; +11-01 17:32:42.380 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_34; +11-01 17:32:42.380 7493 7519 D Unity : ambientOrLightmapUV_34.w = 0.0; +11-01 17:32:42.380 7493 7519 D Unity : mediump vec4 tmpvar_35; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_35.w = 1.0; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_35.xyz = normalWorld_33; +11-01 17:32:42.380 7493 7519 D Unity : mediump vec3 x2_36; +11-01 17:32:42.380 7493 7519 D Unity : mediump vec3 x1_37; +11-01 17:32:42.380 7493 7519 D Unity : x1_37.x = dot (unity_SHAr, tmpvar_35); +11-01 17:32:42.380 7493 7519 D Unity : x1_37.y = dot (unity_SHAg, tmpvar_35); +11-01 17:32:42.380 7493 7519 D Unity : x1_37.z = dot (unity_SHAb, tmpvar_35); +11-01 17:32:42.380 7493 7519 D Unity : mediump vec4 tmpvar_38; +11-01 17:32:42.380 7493 7519 D Unity : tmpvar_38 = (normalWorld_33.xyzz * normalWorld_33.yzzx); +11-01 17:32:42.380 7493 7519 D Unity : x2_36.x = dot (unity_SHBr, tmpvar_38); +11-01 17:32:42.380 7493 7519 D Unity : x2_36.y = dot (unity_SHBg, tmpvar_38); +11-01 17:32:42.380 7493 7519 D Unity : x2_36.z = dot (unity_SHBb, tmpvar_38); +11-01 17:32:42.380 7493 7519 D Unity : ambientOrLightmapUV_34.xyz = ((x2_36 + (unity_SHC.xyz * +11-01 17:32:42.380 7493 7519 D Unity : ((normalWorld_33.x * normalWorld_33.x) - (normalWorld_33.y * normalWorld_33.y)) +11-01 17:32:42.380 7493 7519 D Unity : )) + x1_37); +11-01 17:32:42.380 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:42.380 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_12; +11-01 17:32:42.380 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_14); +11-01 17:32:42.380 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:42.380 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:42.380 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:42.380 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_34; +11-01 17:32:42.380 7493 7519 D Unity : xlv_TEXCOORD6 = tmpvar_10; +11-01 17:32:42.380 7493 7519 D Unity : } +11-01 17:32:42.380 7493 7519 D Unity : vertex shader +11-01 17:32:42.380 7493 7519 D Unity : Compile failed. +11-01 17:32:42.402 7493 7519 D Unity : #version 100 +11-01 17:32:42.402 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:42.402 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:42.402 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:42.402 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:42.402 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:42.402 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:42.402 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:42.402 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:42.402 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:42.402 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:42.402 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:42.402 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:42.402 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:42.402 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:42.402 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:42.402 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:42.402 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:42.402 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:42.402 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:42.402 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:42.402 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:42.402 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:42.402 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:42.402 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:42.402 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:42.402 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:42.402 7493 7519 D Unity : void main () +11-01 17:32:42.402 7493 7519 D Unity : { +11-01 17:32:42.402 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:42.402 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:42.402 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:42.402 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:42.402 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:42.402 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:42.402 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:42.402 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:42.402 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:42.402 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:42.402 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:42.402 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:42.402 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:42.402 7493 7519 D Unity : highp vec4 tmpvar_10; +11-01 17:32:42.402 7493 7519 D Unity : tmpvar_10 = (_Object2World * _glesVertex); +11-01 17:32:42.402 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:42.402 7493 7519 D Unity : highp vec4 texcoord_11; +11-01 17:32:42.402 7493 7519 D Unity : texcoord_11.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:42.402 7493 7519 D Unity : highp vec2 tmpvar_12; +11-01 17:32:42.402 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:42.402 7493 7519 D Unity : tmpvar_12 = tmpvar_2; +11-01 17:32:42.402 7493 7519 D Unity : } else { +11-01 17:32:42.402 7493 7519 D Unity : tmpvar_12 = tmpvar_3; +11-01 17:32:42.402 7493 7519 D Unity : }; +11-01 17:32:42.402 7493 7519 D Unity : texcoord_11.zw = ((tmpvar_12 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:42.402 7493 7519 D Unity : mediump vec3 n_13; +11-01 17:32:42.402 7493 7519 D Unity : n_13 = (tmpvar_10.xyz - _WorldSpaceCameraPos); +11-01 17:32:42.402 7493 7519 D Unity : highp vec3 norm_14; +11-01 17:32:42.402 7493 7519 D Unity : norm_14 = tmpvar_1; +11-01 17:32:42.402 7493 7519 D Unity : highp vec4 v_15; +11-01 17:32:42.402 7493 7519 D Unity : v_15.x = _World2Object[0].x; +11-01 17:32:42.402 7493 7519 D Unity : v_15.y = _World2Object[1].x; +11-01 17:32:42.402 7493 7519 D Unity : v_15.z = _World2Object[2].x; +11-01 17:32:42.402 7493 7519 D Unity : v_15.w = _World2Object[3].x; +11-01 17:32:42.402 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:42.402 7493 7519 D Unity : v_16.x = _World2Object[0].y; +11-01 17:32:42.402 7493 7519 D Unity : v_16.y = _World2Object[1].y; +11-01 17:32:42.402 7493 7519 D Unity : v_16.z = _World2Object[2].y; +11-01 17:32:42.402 7493 7519 D Unity : v_16.w = _World2Object[3].y; +11-01 17:32:42.402 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:42.402 7493 7519 D Unity : v_17.x = _World2Object[0].z; +11-01 17:32:42.402 7493 7519 D Unity : v_17.y = _World2Object[1].z; +11-01 17:32:42.402 7493 7519 D Unity : v_17.z = _World2Object[2].z; +11-01 17:32:42.402 7493 7519 D Unity : v_17.w = _World2Object[3].z; +11-01 17:32:42.402 7493 7519 D Unity : highp vec3 tmpvar_18; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_18 = normalize((( +11-01 17:32:42.403 7493 7519 D Unity : (v_15.xyz * norm_14.x) +11-01 17:32:42.403 7493 7519 D Unity : + +11-01 17:32:42.403 7493 7519 D Unity : (v_16.xyz * norm_14.y) +11-01 17:32:42.403 7493 7519 D Unity : ) + (v_17.xyz * norm_14.z))); +11-01 17:32:42.403 7493 7519 D Unity : highp vec3 dir_19; +11-01 17:32:42.403 7493 7519 D Unity : dir_19 = tmpvar_4.xyz; +11-01 17:32:42.403 7493 7519 D Unity : highp mat3 tmpvar_20; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_20[0] = _Object2World[0].xyz; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_20[1] = _Object2World[1].xyz; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_20[2] = _Object2World[2].xyz; +11-01 17:32:42.403 7493 7519 D Unity : highp vec4 tmpvar_21; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_21.xyz = normalize((tmpvar_20 * dir_19)); +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_21.w = tmpvar_4.w; +11-01 17:32:42.403 7493 7519 D Unity : mediump vec3 normal_22; +11-01 17:32:42.403 7493 7519 D Unity : normal_22 = tmpvar_18; +11-01 17:32:42.403 7493 7519 D Unity : mediump vec3 tangent_23; +11-01 17:32:42.403 7493 7519 D Unity : tangent_23 = tmpvar_21.xyz; +11-01 17:32:42.403 7493 7519 D Unity : mediump float tangentSign_24; +11-01 17:32:42.403 7493 7519 D Unity : tangentSign_24 = tmpvar_21.w; +11-01 17:32:42.403 7493 7519 D Unity : mediump float sign_25; +11-01 17:32:42.403 7493 7519 D Unity : highp float tmpvar_26; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_26 = (tangentSign_24 * unity_WorldTransformParams.w); +11-01 17:32:42.403 7493 7519 D Unity : sign_25 = tmpvar_26; +11-01 17:32:42.403 7493 7519 D Unity : mediump vec3 tmpvar_27; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_27 = (((normal_22.yzx * tangent_23.zxy) - (normal_22.zxy * tangent_23.yzx)) * sign_25); +11-01 17:32:42.403 7493 7519 D Unity : mediump mat3 tmpvar_28; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_28[0].x = tangent_23.x; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_28[0].y = tmpvar_27.x; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_28[0].z = normal_22.x; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_28[1].x = tangent_23.y; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_28[1].y = tmpvar_27.y; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_28[1].z = normal_22.y; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_28[2].x = tangent_23.z; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_28[2].y = tmpvar_27.z; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_28[2].z = normal_22.z; +11-01 17:32:42.403 7493 7519 D Unity : tangentToWorld_5 = tmpvar_28; +11-01 17:32:42.403 7493 7519 D Unity : highp vec3 v_29; +11-01 17:32:42.403 7493 7519 D Unity : v_29.x = tangentToWorld_5[0].x; +11-01 17:32:42.403 7493 7519 D Unity : v_29.y = tangentToWorld_5[1].x; +11-01 17:32:42.403 7493 7519 D Unity : v_29.z = tangentToWorld_5[2].x; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_7.xyz = v_29; +11-01 17:32:42.403 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:42.403 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].y; +11-01 17:32:42.403 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].y; +11-01 17:32:42.403 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].y; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_8.xyz = v_30; +11-01 17:32:42.403 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:42.403 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].z; +11-01 17:32:42.403 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].z; +11-01 17:32:42.403 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].z; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_9.xyz = v_31; +11-01 17:32:42.403 7493 7519 D Unity : mediump vec3 normalWorld_32; +11-01 17:32:42.403 7493 7519 D Unity : normalWorld_32 = tmpvar_18; +11-01 17:32:42.403 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_33; +11-01 17:32:42.403 7493 7519 D Unity : ambientOrLightmapUV_33.w = 0.0; +11-01 17:32:42.403 7493 7519 D Unity : mediump vec4 tmpvar_34; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_34.w = 1.0; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_34.xyz = normalWorld_32; +11-01 17:32:42.403 7493 7519 D Unity : mediump vec3 x2_35; +11-01 17:32:42.403 7493 7519 D Unity : mediump vec3 x1_36; +11-01 17:32:42.403 7493 7519 D Unity : x1_36.x = dot (unity_SHAr, tmpvar_34); +11-01 17:32:42.403 7493 7519 D Unity : x1_36.y = dot (unity_SHAg, tmpvar_34); +11-01 17:32:42.403 7493 7519 D Unity : x1_36.z = dot (unity_SHAb, tmpvar_34); +11-01 17:32:42.403 7493 7519 D Unity : mediump vec4 tmpvar_37; +11-01 17:32:42.403 7493 7519 D Unity : tmpvar_37 = (normalWorld_32.xyzz * normalWorld_32.yzzx); +11-01 17:32:42.403 7493 7519 D Unity : x2_35.x = dot (unity_SHBr, tmpvar_37); +11-01 17:32:42.403 7493 7519 D Unity : x2_35.y = dot (unity_SHBg, tmpvar_37); +11-01 17:32:42.403 7493 7519 D Unity : x2_35.z = dot (unity_SHBb, tmpvar_37); +11-01 17:32:42.403 7493 7519 D Unity : ambientOrLightmapUV_33.xyz = ((x2_35 + (unity_SHC.xyz * +11-01 17:32:42.403 7493 7519 D Unity : ((normalWorld_32.x * normalWorld_32.x) - (normalWorld_32.y * normalWorld_32.y)) +11-01 17:32:42.403 7493 7519 D Unity : )) + x1_36); +11-01 17:32:42.403 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:42.403 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_11; +11-01 17:32:42.403 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_13); +11-01 17:32:42.403 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:42.403 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:42.403 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:42.403 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_33; +11-01 17:32:42.403 7493 7519 D Unity : } +11-01 17:32:42.403 7493 7519 D Unity : vertex shader +11-01 17:32:42.403 7493 7519 D Unity : Compile failed. +11-01 17:32:42.424 7493 7519 D Unity : #version 100 +11-01 17:32:42.424 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:42.424 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:42.424 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:42.424 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:42.424 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:42.424 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:42.424 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:42.424 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:42.424 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:42.424 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:42.424 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:42.424 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:42.425 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:42.425 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:42.425 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:42.425 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:42.425 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:42.425 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:42.425 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:42.425 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:42.425 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:42.425 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:42.425 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:42.425 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:42.425 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:42.425 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:42.425 7493 7519 D Unity : void main () +11-01 17:32:42.425 7493 7519 D Unity : { +11-01 17:32:42.425 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:42.425 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:42.425 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:42.425 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:42.425 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:42.425 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:42.425 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:42.425 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:42.425 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:42.425 7493 7519 D Unity : highp vec4 tmpvar_10; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_10 = (_Object2World * _glesVertex); +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:42.425 7493 7519 D Unity : highp vec4 texcoord_11; +11-01 17:32:42.425 7493 7519 D Unity : texcoord_11.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:42.425 7493 7519 D Unity : highp vec2 tmpvar_12; +11-01 17:32:42.425 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_12 = tmpvar_2; +11-01 17:32:42.425 7493 7519 D Unity : } else { +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_12 = tmpvar_3; +11-01 17:32:42.425 7493 7519 D Unity : }; +11-01 17:32:42.425 7493 7519 D Unity : texcoord_11.zw = ((tmpvar_12 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:42.425 7493 7519 D Unity : mediump vec3 n_13; +11-01 17:32:42.425 7493 7519 D Unity : n_13 = (tmpvar_10.xyz - _WorldSpaceCameraPos); +11-01 17:32:42.425 7493 7519 D Unity : highp vec3 norm_14; +11-01 17:32:42.425 7493 7519 D Unity : norm_14 = tmpvar_1; +11-01 17:32:42.425 7493 7519 D Unity : highp vec4 v_15; +11-01 17:32:42.425 7493 7519 D Unity : v_15.x = _World2Object[0].x; +11-01 17:32:42.425 7493 7519 D Unity : v_15.y = _World2Object[1].x; +11-01 17:32:42.425 7493 7519 D Unity : v_15.z = _World2Object[2].x; +11-01 17:32:42.425 7493 7519 D Unity : v_15.w = _World2Object[3].x; +11-01 17:32:42.425 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:42.425 7493 7519 D Unity : v_16.x = _World2Object[0].y; +11-01 17:32:42.425 7493 7519 D Unity : v_16.y = _World2Object[1].y; +11-01 17:32:42.425 7493 7519 D Unity : v_16.z = _World2Object[2].y; +11-01 17:32:42.425 7493 7519 D Unity : v_16.w = _World2Object[3].y; +11-01 17:32:42.425 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:42.425 7493 7519 D Unity : v_17.x = _World2Object[0].z; +11-01 17:32:42.425 7493 7519 D Unity : v_17.y = _World2Object[1].z; +11-01 17:32:42.425 7493 7519 D Unity : v_17.z = _World2Object[2].z; +11-01 17:32:42.425 7493 7519 D Unity : v_17.w = _World2Object[3].z; +11-01 17:32:42.425 7493 7519 D Unity : highp vec3 tmpvar_18; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_18 = normalize((( +11-01 17:32:42.425 7493 7519 D Unity : (v_15.xyz * norm_14.x) +11-01 17:32:42.425 7493 7519 D Unity : + +11-01 17:32:42.425 7493 7519 D Unity : (v_16.xyz * norm_14.y) +11-01 17:32:42.425 7493 7519 D Unity : ) + (v_17.xyz * norm_14.z))); +11-01 17:32:42.425 7493 7519 D Unity : highp vec3 dir_19; +11-01 17:32:42.425 7493 7519 D Unity : dir_19 = tmpvar_4.xyz; +11-01 17:32:42.425 7493 7519 D Unity : highp mat3 tmpvar_20; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_20[0] = _Object2World[0].xyz; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_20[1] = _Object2World[1].xyz; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_20[2] = _Object2World[2].xyz; +11-01 17:32:42.425 7493 7519 D Unity : highp vec4 tmpvar_21; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_21.xyz = normalize((tmpvar_20 * dir_19)); +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_21.w = tmpvar_4.w; +11-01 17:32:42.425 7493 7519 D Unity : mediump vec3 normal_22; +11-01 17:32:42.425 7493 7519 D Unity : normal_22 = tmpvar_18; +11-01 17:32:42.425 7493 7519 D Unity : mediump vec3 tangent_23; +11-01 17:32:42.425 7493 7519 D Unity : tangent_23 = tmpvar_21.xyz; +11-01 17:32:42.425 7493 7519 D Unity : mediump float tangentSign_24; +11-01 17:32:42.425 7493 7519 D Unity : tangentSign_24 = tmpvar_21.w; +11-01 17:32:42.425 7493 7519 D Unity : mediump float sign_25; +11-01 17:32:42.425 7493 7519 D Unity : highp float tmpvar_26; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_26 = (tangentSign_24 * unity_WorldTransformParams.w); +11-01 17:32:42.425 7493 7519 D Unity : sign_25 = tmpvar_26; +11-01 17:32:42.425 7493 7519 D Unity : mediump vec3 tmpvar_27; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_27 = (((normal_22.yzx * tangent_23.zxy) - (normal_22.zxy * tangent_23.yzx)) * sign_25); +11-01 17:32:42.425 7493 7519 D Unity : mediump mat3 tmpvar_28; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_28[0].x = tangent_23.x; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_28[0].y = tmpvar_27.x; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_28[0].z = normal_22.x; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_28[1].x = tangent_23.y; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_28[1].y = tmpvar_27.y; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_28[1].z = normal_22.y; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_28[2].x = tangent_23.z; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_28[2].y = tmpvar_27.z; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_28[2].z = normal_22.z; +11-01 17:32:42.425 7493 7519 D Unity : tangentToWorld_5 = tmpvar_28; +11-01 17:32:42.425 7493 7519 D Unity : highp vec3 v_29; +11-01 17:32:42.425 7493 7519 D Unity : v_29.x = tangentToWorld_5[0].x; +11-01 17:32:42.425 7493 7519 D Unity : v_29.y = tangentToWorld_5[1].x; +11-01 17:32:42.425 7493 7519 D Unity : v_29.z = tangentToWorld_5[2].x; +11-01 17:32:42.425 7493 7519 D Unity : tmpvar_7.xyz = v_29; +11-01 17:32:42.425 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:42.425 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].y; +11-01 17:32:42.425 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].y; +11-01 17:32:42.425 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].y; +11-01 17:32:42.426 7493 7519 D Unity : tmpvar_8.xyz = v_30; +11-01 17:32:42.426 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:42.426 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].z; +11-01 17:32:42.426 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].z; +11-01 17:32:42.426 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].z; +11-01 17:32:42.426 7493 7519 D Unity : tmpvar_9.xyz = v_31; +11-01 17:32:42.426 7493 7519 D Unity : mediump vec3 normalWorld_32; +11-01 17:32:42.426 7493 7519 D Unity : normalWorld_32 = tmpvar_18; +11-01 17:32:42.426 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_33; +11-01 17:32:42.426 7493 7519 D Unity : ambientOrLightmapUV_33.w = 0.0; +11-01 17:32:42.426 7493 7519 D Unity : mediump vec4 tmpvar_34; +11-01 17:32:42.426 7493 7519 D Unity : tmpvar_34.w = 1.0; +11-01 17:32:42.426 7493 7519 D Unity : tmpvar_34.xyz = normalWorld_32; +11-01 17:32:42.426 7493 7519 D Unity : mediump vec3 x2_35; +11-01 17:32:42.426 7493 7519 D Unity : mediump vec3 x1_36; +11-01 17:32:42.426 7493 7519 D Unity : x1_36.x = dot (unity_SHAr, tmpvar_34); +11-01 17:32:42.426 7493 7519 D Unity : x1_36.y = dot (unity_SHAg, tmpvar_34); +11-01 17:32:42.426 7493 7519 D Unity : x1_36.z = dot (unity_SHAb, tmpvar_34); +11-01 17:32:42.426 7493 7519 D Unity : mediump vec4 tmpvar_37; +11-01 17:32:42.426 7493 7519 D Unity : tmpvar_37 = (normalWorld_32.xyzz * normalWorld_32.yzzx); +11-01 17:32:42.426 7493 7519 D Unity : x2_35.x = dot (unity_SHBr, tmpvar_37); +11-01 17:32:42.426 7493 7519 D Unity : x2_35.y = dot (unity_SHBg, tmpvar_37); +11-01 17:32:42.426 7493 7519 D Unity : x2_35.z = dot (unity_SHBb, tmpvar_37); +11-01 17:32:42.426 7493 7519 D Unity : ambientOrLightmapUV_33.xyz = ((x2_35 + (unity_SHC.xyz * +11-01 17:32:42.426 7493 7519 D Unity : ((normalWorld_32.x * normalWorld_32.x) - (normalWorld_32.y * normalWorld_32.y)) +11-01 17:32:42.426 7493 7519 D Unity : )) + x1_36); +11-01 17:32:42.426 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:42.426 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_11; +11-01 17:32:42.426 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_13); +11-01 17:32:42.426 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:42.426 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:42.426 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:42.426 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_33; +11-01 17:32:42.426 7493 7519 D Unity : } +11-01 17:32:42.426 7493 7519 D Unity : vertex shader +11-01 17:32:42.426 7493 7519 D Unity : Compile failed. +11-01 17:32:42.488 7493 7519 D Unity : #version 100 +11-01 17:32:42.488 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:42.488 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:42.488 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:42.488 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:42.488 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:42.488 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:42.488 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:42.488 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:42.488 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:42.488 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:42.488 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:42.488 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:42.488 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:42.488 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:42.488 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:42.488 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:42.488 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:42.488 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:42.488 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:42.488 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:42.488 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:42.488 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:42.488 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:42.488 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:42.488 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:42.488 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:42.488 7493 7519 D Unity : void main () +11-01 17:32:42.488 7493 7519 D Unity : { +11-01 17:32:42.488 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:42.488 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:42.488 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:42.488 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:42.488 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:42.489 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:42.489 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:42.489 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:42.489 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:42.489 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:42.489 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:42.489 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:42.489 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:42.489 7493 7519 D Unity : highp vec4 tmpvar_10; +11-01 17:32:42.489 7493 7519 D Unity : tmpvar_10 = (_Object2World * _glesVertex); +11-01 17:32:42.489 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:42.489 7493 7519 D Unity : highp vec4 texcoord_11; +11-01 17:32:42.489 7493 7519 D Unity : texcoord_11.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:42.489 7493 7519 D Unity : highp vec2 tmpvar_12; +11-01 17:32:42.489 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:42.489 7493 7519 D Unity : tmpvar_12 = tmpvar_2; +11-01 17:32:42.489 7493 7519 D Unity : } else { +11-01 17:32:42.489 7493 7519 D Unity : tmpvar_12 = tmpvar_3; +11-01 17:32:42.489 7493 7519 D Unity : }; +11-01 17:32:42.489 7493 7519 D Unity : texcoord_11.zw = ((tmpvar_12 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:42.489 7493 7519 D Unity : mediump vec3 n_13; +11-01 17:32:42.489 7493 7519 D Unity : n_13 = (tmpvar_10.xyz - _WorldSpaceCameraPos); +11-01 17:32:42.489 7493 7519 D Unity : highp vec3 norm_14; +11-01 17:32:42.489 7493 7519 D Unity : norm_14 = tmpvar_1; +11-01 17:32:42.489 7493 7519 D Unity : highp vec4 v_15; +11-01 17:32:42.489 7493 7519 D Unity : v_15.x = _World2Object[0].x; +11-01 17:32:42.489 7493 7519 D Unity : v_15.y = _World2Object[1].x; +11-01 17:32:42.489 7493 7519 D Unity : v_15.z = _World2Object[2].x; +11-01 17:32:42.489 7493 7519 D Unity : v_15.w = _World2Object[3].x; +11-01 17:32:42.489 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:42.489 7493 7519 D Unity : v_16.x = _World2Object[0].y; +11-01 17:32:42.489 7493 7519 D Unity : v_16.y = _World2Object[1].y; +11-01 17:32:42.489 7493 7519 D Unity : v_16.z = _World2Object[2].y; +11-01 17:32:42.489 7493 7519 D Unity : v_16.w = _World2Object[3].y; +11-01 17:32:42.489 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:42.489 7493 7519 D Unity : v_17.x = _World2Object[0].z; +11-01 17:32:42.489 7493 7519 D Unity : v_17.y = _World2Object[1].z; +11-01 17:32:42.489 7493 7519 D Unity : v_17.z = _World2Object[2].z; +11-01 17:32:42.489 7493 7519 D Unity : v_17.w = _World2Object[3].z; +11-01 17:32:42.489 7493 7519 D Unity : highp vec3 tmpvar_18; +11-01 17:32:42.489 7493 7519 D Unity : tmpvar_18 = normalize((( +11-01 17:32:42.489 7493 7519 D Unity : (v_15.xyz * norm_14.x) +11-01 17:32:42.489 7493 7519 D Unity : + +11-01 17:32:42.489 7493 7519 D Unity : (v_16.xyz * norm_14.y) +11-01 17:32:42.489 7493 7519 D Unity : ) + (v_17.xyz * norm_14.z))); +11-01 17:32:42.489 7493 7519 D Unity : highp vec3 dir_19; +11-01 17:32:42.489 7493 7519 D Unity : dir_19 = tmpvar_4.xyz; +11-01 17:32:42.489 7493 7519 D Unity : highp mat3 tmpvar_20; +11-01 17:32:42.489 7493 7519 D Unity : tmpvar_20[0] = _Object2World[0].xyz; +11-01 17:32:42.489 7493 7519 D Unity : tmpvar_20[1] = _Object2World[1].xyz; +11-01 17:32:42.489 7493 7519 D Unity : tmpvar_20[2] = _Object2World[2].xyz; +11-01 17:32:42.489 7493 7519 D Unity : highp vec4 tmpvar_21; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_21.xyz = normalize((tmpvar_20 * dir_19)); +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_21.w = tmpvar_4.w; +11-01 17:32:42.490 7493 7519 D Unity : mediump vec3 normal_22; +11-01 17:32:42.490 7493 7519 D Unity : normal_22 = tmpvar_18; +11-01 17:32:42.490 7493 7519 D Unity : mediump vec3 tangent_23; +11-01 17:32:42.490 7493 7519 D Unity : tangent_23 = tmpvar_21.xyz; +11-01 17:32:42.490 7493 7519 D Unity : mediump float tangentSign_24; +11-01 17:32:42.490 7493 7519 D Unity : tangentSign_24 = tmpvar_21.w; +11-01 17:32:42.490 7493 7519 D Unity : mediump float sign_25; +11-01 17:32:42.490 7493 7519 D Unity : highp float tmpvar_26; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_26 = (tangentSign_24 * unity_WorldTransformParams.w); +11-01 17:32:42.490 7493 7519 D Unity : sign_25 = tmpvar_26; +11-01 17:32:42.490 7493 7519 D Unity : mediump vec3 tmpvar_27; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_27 = (((normal_22.yzx * tangent_23.zxy) - (normal_22.zxy * tangent_23.yzx)) * sign_25); +11-01 17:32:42.490 7493 7519 D Unity : mediump mat3 tmpvar_28; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_28[0].x = tangent_23.x; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_28[0].y = tmpvar_27.x; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_28[0].z = normal_22.x; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_28[1].x = tangent_23.y; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_28[1].y = tmpvar_27.y; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_28[1].z = normal_22.y; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_28[2].x = tangent_23.z; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_28[2].y = tmpvar_27.z; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_28[2].z = normal_22.z; +11-01 17:32:42.490 7493 7519 D Unity : tangentToWorld_5 = tmpvar_28; +11-01 17:32:42.490 7493 7519 D Unity : highp vec3 v_29; +11-01 17:32:42.490 7493 7519 D Unity : v_29.x = tangentToWorld_5[0].x; +11-01 17:32:42.490 7493 7519 D Unity : v_29.y = tangentToWorld_5[1].x; +11-01 17:32:42.490 7493 7519 D Unity : v_29.z = tangentToWorld_5[2].x; +11-01 17:32:42.490 7493 7519 D Unity : tmpvar_7.xyz = v_29; +11-01 17:32:42.490 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:42.490 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].y; +11-01 17:32:42.491 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].y; +11-01 17:32:42.491 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].y; +11-01 17:32:42.491 7493 7519 D Unity : tmpvar_8.xyz = v_30; +11-01 17:32:42.491 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:42.491 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].z; +11-01 17:32:42.491 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].z; +11-01 17:32:42.491 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].z; +11-01 17:32:42.491 7493 7519 D Unity : tmpvar_9.xyz = v_31; +11-01 17:32:42.491 7493 7519 D Unity : mediump vec3 normalWorld_32; +11-01 17:32:42.491 7493 7519 D Unity : normalWorld_32 = tmpvar_18; +11-01 17:32:42.491 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_33; +11-01 17:32:42.491 7493 7519 D Unity : ambientOrLightmapUV_33.w = 0.0; +11-01 17:32:42.491 7493 7519 D Unity : mediump vec4 tmpvar_34; +11-01 17:32:42.491 7493 7519 D Unity : tmpvar_34.w = 1.0; +11-01 17:32:42.491 7493 7519 D Unity : tmpvar_34.xyz = normalWorld_32; +11-01 17:32:42.491 7493 7519 D Unity : mediump vec3 x2_35; +11-01 17:32:42.491 7493 7519 D Unity : mediump vec3 x1_36; +11-01 17:32:42.491 7493 7519 D Unity : x1_36.x = dot (unity_SHAr, tmpvar_34); +11-01 17:32:42.491 7493 7519 D Unity : x1_36.y = dot (unity_SHAg, tmpvar_34); +11-01 17:32:42.491 7493 7519 D Unity : x1_36.z = dot (unity_SHAb, tmpvar_34); +11-01 17:32:42.491 7493 7519 D Unity : mediump vec4 tmpvar_37; +11-01 17:32:42.491 7493 7519 D Unity : tmpvar_37 = (normalWorld_32.xyzz * normalWorld_32.yzzx); +11-01 17:32:42.491 7493 7519 D Unity : x2_35.x = dot (unity_SHBr, tmpvar_37); +11-01 17:32:42.491 7493 7519 D Unity : x2_35.y = dot (unity_SHBg, tmpvar_37); +11-01 17:32:42.491 7493 7519 D Unity : x2_35.z = dot (unity_SHBb, tmpvar_37); +11-01 17:32:42.491 7493 7519 D Unity : ambientOrLightmapUV_33.xyz = ((x2_35 + (unity_SHC.xyz * +11-01 17:32:42.491 7493 7519 D Unity : ((normalWorld_32.x * normalWorld_32.x) - (normalWorld_32.y * normalWorld_32.y)) +11-01 17:32:42.491 7493 7519 D Unity : )) + x1_36); +11-01 17:32:42.491 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:42.491 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_11; +11-01 17:32:42.491 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_13); +11-01 17:32:42.491 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:42.491 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:42.491 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:42.491 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_33; +11-01 17:32:42.491 7493 7519 D Unity : } +11-01 17:32:42.491 7493 7519 D Unity : vertex shader +11-01 17:32:42.491 7493 7519 D Unity : Compile failed. +11-01 17:32:43.885 7493 7519 D Unity : #version 100 +11-01 17:32:43.885 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:43.885 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:43.885 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:43.885 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:43.885 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:43.885 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:43.885 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:43.885 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:43.885 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:43.885 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:43.885 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:43.885 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:43.885 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:43.885 7493 7519 D Unity : uniform highp mat4 unity_World2Shadow[4]; +11-01 17:32:43.885 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:43.885 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:43.885 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:43.885 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:43.885 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:43.885 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:43.885 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:43.885 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:43.885 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:43.885 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:43.885 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:43.885 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:43.885 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:43.885 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD6; +11-01 17:32:43.885 7493 7519 D Unity : void main () +11-01 17:32:43.885 7493 7519 D Unity : { +11-01 17:32:43.885 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:43.885 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:43.885 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:43.885 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:43.885 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:43.885 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:43.885 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:43.885 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:43.885 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:43.885 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:43.885 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:43.885 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:43.885 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:43.885 7493 7519 D Unity : mediump vec4 tmpvar_10; +11-01 17:32:43.885 7493 7519 D Unity : highp vec4 tmpvar_11; +11-01 17:32:43.885 7493 7519 D Unity : tmpvar_11 = (_Object2World * _glesVertex); +11-01 17:32:43.885 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:43.885 7493 7519 D Unity : highp vec4 texcoord_12; +11-01 17:32:43.885 7493 7519 D Unity : texcoord_12.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:43.885 7493 7519 D Unity : highp vec2 tmpvar_13; +11-01 17:32:43.885 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:43.885 7493 7519 D Unity : tmpvar_13 = tmpvar_2; +11-01 17:32:43.885 7493 7519 D Unity : } else { +11-01 17:32:43.885 7493 7519 D Unity : tmpvar_13 = tmpvar_3; +11-01 17:32:43.885 7493 7519 D Unity : }; +11-01 17:32:43.885 7493 7519 D Unity : texcoord_12.zw = ((tmpvar_13 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:43.885 7493 7519 D Unity : mediump vec3 n_14; +11-01 17:32:43.885 7493 7519 D Unity : n_14 = (tmpvar_11.xyz - _WorldSpaceCameraPos); +11-01 17:32:43.885 7493 7519 D Unity : highp vec3 norm_15; +11-01 17:32:43.885 7493 7519 D Unity : norm_15 = tmpvar_1; +11-01 17:32:43.885 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:43.885 7493 7519 D Unity : v_16.x = _World2Object[0].x; +11-01 17:32:43.885 7493 7519 D Unity : v_16.y = _World2Object[1].x; +11-01 17:32:43.886 7493 7519 D Unity : v_16.z = _World2Object[2].x; +11-01 17:32:43.886 7493 7519 D Unity : v_16.w = _World2Object[3].x; +11-01 17:32:43.886 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:43.886 7493 7519 D Unity : v_17.x = _World2Object[0].y; +11-01 17:32:43.886 7493 7519 D Unity : v_17.y = _World2Object[1].y; +11-01 17:32:43.886 7493 7519 D Unity : v_17.z = _World2Object[2].y; +11-01 17:32:43.886 7493 7519 D Unity : v_17.w = _World2Object[3].y; +11-01 17:32:43.886 7493 7519 D Unity : highp vec4 v_18; +11-01 17:32:43.886 7493 7519 D Unity : v_18.x = _World2Object[0].z; +11-01 17:32:43.886 7493 7519 D Unity : v_18.y = _World2Object[1].z; +11-01 17:32:43.886 7493 7519 D Unity : v_18.z = _World2Object[2].z; +11-01 17:32:43.886 7493 7519 D Unity : v_18.w = _World2Object[3].z; +11-01 17:32:43.886 7493 7519 D Unity : highp vec3 tmpvar_19; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_19 = normalize((( +11-01 17:32:43.886 7493 7519 D Unity : (v_16.xyz * norm_15.x) +11-01 17:32:43.886 7493 7519 D Unity : + +11-01 17:32:43.886 7493 7519 D Unity : (v_17.xyz * norm_15.y) +11-01 17:32:43.886 7493 7519 D Unity : ) + (v_18.xyz * norm_15.z))); +11-01 17:32:43.886 7493 7519 D Unity : highp vec3 dir_20; +11-01 17:32:43.886 7493 7519 D Unity : dir_20 = tmpvar_4.xyz; +11-01 17:32:43.886 7493 7519 D Unity : highp mat3 tmpvar_21; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_21[0] = _Object2World[0].xyz; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_21[1] = _Object2World[1].xyz; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_21[2] = _Object2World[2].xyz; +11-01 17:32:43.886 7493 7519 D Unity : highp vec4 tmpvar_22; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_22.xyz = normalize((tmpvar_21 * dir_20)); +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_22.w = tmpvar_4.w; +11-01 17:32:43.886 7493 7519 D Unity : mediump vec3 normal_23; +11-01 17:32:43.886 7493 7519 D Unity : normal_23 = tmpvar_19; +11-01 17:32:43.886 7493 7519 D Unity : mediump vec3 tangent_24; +11-01 17:32:43.886 7493 7519 D Unity : tangent_24 = tmpvar_22.xyz; +11-01 17:32:43.886 7493 7519 D Unity : mediump float tangentSign_25; +11-01 17:32:43.886 7493 7519 D Unity : tangentSign_25 = tmpvar_22.w; +11-01 17:32:43.886 7493 7519 D Unity : mediump float sign_26; +11-01 17:32:43.886 7493 7519 D Unity : highp float tmpvar_27; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_27 = (tangentSign_25 * unity_WorldTransformParams.w); +11-01 17:32:43.886 7493 7519 D Unity : sign_26 = tmpvar_27; +11-01 17:32:43.886 7493 7519 D Unity : mediump vec3 tmpvar_28; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_28 = (((normal_23.yzx * tangent_24.zxy) - (normal_23.zxy * tangent_24.yzx)) * sign_26); +11-01 17:32:43.886 7493 7519 D Unity : mediump mat3 tmpvar_29; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_29[0].x = tangent_24.x; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_29[0].y = tmpvar_28.x; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_29[0].z = normal_23.x; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_29[1].x = tangent_24.y; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_29[1].y = tmpvar_28.y; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_29[1].z = normal_23.y; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_29[2].x = tangent_24.z; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_29[2].y = tmpvar_28.z; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_29[2].z = normal_23.z; +11-01 17:32:43.886 7493 7519 D Unity : tangentToWorld_5 = tmpvar_29; +11-01 17:32:43.886 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:43.886 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].x; +11-01 17:32:43.886 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].x; +11-01 17:32:43.886 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].x; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_7.xyz = v_30; +11-01 17:32:43.886 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:43.886 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].y; +11-01 17:32:43.886 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].y; +11-01 17:32:43.886 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].y; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_8.xyz = v_31; +11-01 17:32:43.886 7493 7519 D Unity : highp vec3 v_32; +11-01 17:32:43.886 7493 7519 D Unity : v_32.x = tangentToWorld_5[0].z; +11-01 17:32:43.886 7493 7519 D Unity : v_32.y = tangentToWorld_5[1].z; +11-01 17:32:43.886 7493 7519 D Unity : v_32.z = tangentToWorld_5[2].z; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_9.xyz = v_32; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_10 = (unity_World2Shadow[0] * (_Object2World * _glesVertex)); +11-01 17:32:43.886 7493 7519 D Unity : mediump vec3 normalWorld_33; +11-01 17:32:43.886 7493 7519 D Unity : normalWorld_33 = tmpvar_19; +11-01 17:32:43.886 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_34; +11-01 17:32:43.886 7493 7519 D Unity : ambientOrLightmapUV_34.w = 0.0; +11-01 17:32:43.886 7493 7519 D Unity : mediump vec4 tmpvar_35; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_35.w = 1.0; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_35.xyz = normalWorld_33; +11-01 17:32:43.886 7493 7519 D Unity : mediump vec3 x2_36; +11-01 17:32:43.886 7493 7519 D Unity : mediump vec3 x1_37; +11-01 17:32:43.886 7493 7519 D Unity : x1_37.x = dot (unity_SHAr, tmpvar_35); +11-01 17:32:43.886 7493 7519 D Unity : x1_37.y = dot (unity_SHAg, tmpvar_35); +11-01 17:32:43.886 7493 7519 D Unity : x1_37.z = dot (unity_SHAb, tmpvar_35); +11-01 17:32:43.886 7493 7519 D Unity : mediump vec4 tmpvar_38; +11-01 17:32:43.886 7493 7519 D Unity : tmpvar_38 = (normalWorld_33.xyzz * normalWorld_33.yzzx); +11-01 17:32:43.886 7493 7519 D Unity : x2_36.x = dot (unity_SHBr, tmpvar_38); +11-01 17:32:43.886 7493 7519 D Unity : x2_36.y = dot (unity_SHBg, tmpvar_38); +11-01 17:32:43.886 7493 7519 D Unity : x2_36.z = dot (unity_SHBb, tmpvar_38); +11-01 17:32:43.886 7493 7519 D Unity : ambientOrLightmapUV_34.xyz = ((x2_36 + (unity_SHC.xyz * +11-01 17:32:43.886 7493 7519 D Unity : ((normalWorld_33.x * normalWorld_33.x) - (normalWorld_33.y * normalWorld_33.y)) +11-01 17:32:43.886 7493 7519 D Unity : )) + x1_37); +11-01 17:32:43.886 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:43.886 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_12; +11-01 17:32:43.886 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_14); +11-01 17:32:43.886 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:43.886 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:43.886 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:43.886 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_34; +11-01 17:32:43.886 7493 7519 D Unity : xlv_TEXCOORD6 = tmpvar_10; +11-01 17:32:43.886 7493 7519 D Unity : } +11-01 17:32:43.886 7493 7519 D Unity : vertex shader +11-01 17:32:43.886 7493 7519 D Unity : Compile failed. +11-01 17:32:47.768 295 368 E HalDeviceManager: Should have at least 1 chip! +11-01 17:32:47.768 295 368 E HalDeviceManager: getSupportedIfaceTypesInternal: no chip info found +11-01 17:32:47.768 295 314 E BluetoothAdapter: Bluetooth binder is null +11-01 17:32:47.769 295 314 E BatteryStatsService: no controller energy info supplied +11-01 17:32:47.770 483 483 E PhoneInterfaceManager: [PhoneIntfMgr] queryModemActivityInfo: Empty response +11-01 17:32:47.774 295 314 E BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0} +11-01 17:32:59.385 7493 7519 E Unity : -------- GLSL link error: +11-01 17:32:59.385 7493 7519 E Unity : +11-01 17:32:59.385 7493 7519 E Unity : +11-01 17:32:59.385 7493 7519 E Unity : +11-01 17:32:59.385 7493 7519 E Unity : (Filename: Line: 582) +11-01 17:32:59.385 7493 7519 E Unity : +11-01 17:32:59.482 7493 7519 D Unity : #version 100 +11-01 17:32:59.482 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:59.482 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:59.482 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:59.482 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:59.482 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:59.482 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:59.482 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:59.482 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:59.482 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:59.482 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:59.482 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:59.482 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:59.482 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:59.482 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:59.482 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:59.482 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:59.482 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:59.482 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:59.482 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:59.482 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:59.482 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:59.482 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:59.482 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:59.482 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:59.482 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:59.482 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:59.482 7493 7519 D Unity : void main () +11-01 17:32:59.482 7493 7519 D Unity : { +11-01 17:32:59.482 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:59.482 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:59.482 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:59.482 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:59.482 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:59.482 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:59.482 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:59.482 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:59.482 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:59.482 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:59.483 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:59.483 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:59.483 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:59.483 7493 7519 D Unity : highp vec4 tmpvar_10; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_10 = (_Object2World * _glesVertex); +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:59.483 7493 7519 D Unity : highp vec4 texcoord_11; +11-01 17:32:59.483 7493 7519 D Unity : texcoord_11.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:59.483 7493 7519 D Unity : highp vec2 tmpvar_12; +11-01 17:32:59.483 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_12 = tmpvar_2; +11-01 17:32:59.483 7493 7519 D Unity : } else { +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_12 = tmpvar_3; +11-01 17:32:59.483 7493 7519 D Unity : }; +11-01 17:32:59.483 7493 7519 D Unity : texcoord_11.zw = ((tmpvar_12 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:59.483 7493 7519 D Unity : mediump vec3 n_13; +11-01 17:32:59.483 7493 7519 D Unity : n_13 = (tmpvar_10.xyz - _WorldSpaceCameraPos); +11-01 17:32:59.483 7493 7519 D Unity : highp vec3 norm_14; +11-01 17:32:59.483 7493 7519 D Unity : norm_14 = tmpvar_1; +11-01 17:32:59.483 7493 7519 D Unity : highp vec4 v_15; +11-01 17:32:59.483 7493 7519 D Unity : v_15.x = _World2Object[0].x; +11-01 17:32:59.483 7493 7519 D Unity : v_15.y = _World2Object[1].x; +11-01 17:32:59.483 7493 7519 D Unity : v_15.z = _World2Object[2].x; +11-01 17:32:59.483 7493 7519 D Unity : v_15.w = _World2Object[3].x; +11-01 17:32:59.483 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:59.483 7493 7519 D Unity : v_16.x = _World2Object[0].y; +11-01 17:32:59.483 7493 7519 D Unity : v_16.y = _World2Object[1].y; +11-01 17:32:59.483 7493 7519 D Unity : v_16.z = _World2Object[2].y; +11-01 17:32:59.483 7493 7519 D Unity : v_16.w = _World2Object[3].y; +11-01 17:32:59.483 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:59.483 7493 7519 D Unity : v_17.x = _World2Object[0].z; +11-01 17:32:59.483 7493 7519 D Unity : v_17.y = _World2Object[1].z; +11-01 17:32:59.483 7493 7519 D Unity : v_17.z = _World2Object[2].z; +11-01 17:32:59.483 7493 7519 D Unity : v_17.w = _World2Object[3].z; +11-01 17:32:59.483 7493 7519 D Unity : highp vec3 tmpvar_18; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_18 = normalize((( +11-01 17:32:59.483 7493 7519 D Unity : (v_15.xyz * norm_14.x) +11-01 17:32:59.483 7493 7519 D Unity : + +11-01 17:32:59.483 7493 7519 D Unity : (v_16.xyz * norm_14.y) +11-01 17:32:59.483 7493 7519 D Unity : ) + (v_17.xyz * norm_14.z))); +11-01 17:32:59.483 7493 7519 D Unity : highp vec3 dir_19; +11-01 17:32:59.483 7493 7519 D Unity : dir_19 = tmpvar_4.xyz; +11-01 17:32:59.483 7493 7519 D Unity : highp mat3 tmpvar_20; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_20[0] = _Object2World[0].xyz; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_20[1] = _Object2World[1].xyz; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_20[2] = _Object2World[2].xyz; +11-01 17:32:59.483 7493 7519 D Unity : highp vec4 tmpvar_21; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_21.xyz = normalize((tmpvar_20 * dir_19)); +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_21.w = tmpvar_4.w; +11-01 17:32:59.483 7493 7519 D Unity : mediump vec3 normal_22; +11-01 17:32:59.483 7493 7519 D Unity : normal_22 = tmpvar_18; +11-01 17:32:59.483 7493 7519 D Unity : mediump vec3 tangent_23; +11-01 17:32:59.483 7493 7519 D Unity : tangent_23 = tmpvar_21.xyz; +11-01 17:32:59.483 7493 7519 D Unity : mediump float tangentSign_24; +11-01 17:32:59.483 7493 7519 D Unity : tangentSign_24 = tmpvar_21.w; +11-01 17:32:59.483 7493 7519 D Unity : mediump float sign_25; +11-01 17:32:59.483 7493 7519 D Unity : highp float tmpvar_26; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_26 = (tangentSign_24 * unity_WorldTransformParams.w); +11-01 17:32:59.483 7493 7519 D Unity : sign_25 = tmpvar_26; +11-01 17:32:59.483 7493 7519 D Unity : mediump vec3 tmpvar_27; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_27 = (((normal_22.yzx * tangent_23.zxy) - (normal_22.zxy * tangent_23.yzx)) * sign_25); +11-01 17:32:59.483 7493 7519 D Unity : mediump mat3 tmpvar_28; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_28[0].x = tangent_23.x; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_28[0].y = tmpvar_27.x; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_28[0].z = normal_22.x; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_28[1].x = tangent_23.y; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_28[1].y = tmpvar_27.y; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_28[1].z = normal_22.y; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_28[2].x = tangent_23.z; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_28[2].y = tmpvar_27.z; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_28[2].z = normal_22.z; +11-01 17:32:59.483 7493 7519 D Unity : tangentToWorld_5 = tmpvar_28; +11-01 17:32:59.483 7493 7519 D Unity : highp vec3 v_29; +11-01 17:32:59.483 7493 7519 D Unity : v_29.x = tangentToWorld_5[0].x; +11-01 17:32:59.483 7493 7519 D Unity : v_29.y = tangentToWorld_5[1].x; +11-01 17:32:59.483 7493 7519 D Unity : v_29.z = tangentToWorld_5[2].x; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_7.xyz = v_29; +11-01 17:32:59.483 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:59.483 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].y; +11-01 17:32:59.483 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].y; +11-01 17:32:59.483 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].y; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_8.xyz = v_30; +11-01 17:32:59.483 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:59.483 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].z; +11-01 17:32:59.483 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].z; +11-01 17:32:59.483 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].z; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_9.xyz = v_31; +11-01 17:32:59.483 7493 7519 D Unity : mediump vec3 normalWorld_32; +11-01 17:32:59.483 7493 7519 D Unity : normalWorld_32 = tmpvar_18; +11-01 17:32:59.483 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_33; +11-01 17:32:59.483 7493 7519 D Unity : ambientOrLightmapUV_33.w = 0.0; +11-01 17:32:59.483 7493 7519 D Unity : mediump vec4 tmpvar_34; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_34.w = 1.0; +11-01 17:32:59.483 7493 7519 D Unity : tmpvar_34.xyz = normalWorld_32; +11-01 17:32:59.484 7493 7519 D Unity : mediump vec3 x2_35; +11-01 17:32:59.484 7493 7519 D Unity : mediump vec3 x1_36; +11-01 17:32:59.484 7493 7519 D Unity : x1_36.x = dot (unity_SHAr, tmpvar_34); +11-01 17:32:59.484 7493 7519 D Unity : x1_36.y = dot (unity_SHAg, tmpvar_34); +11-01 17:32:59.484 7493 7519 D Unity : x1_36.z = dot (unity_SHAb, tmpvar_34); +11-01 17:32:59.484 7493 7519 D Unity : mediump vec4 tmpvar_37; +11-01 17:32:59.484 7493 7519 D Unity : tmpvar_37 = (normalWorld_32.xyzz * normalWorld_32.yzzx); +11-01 17:32:59.484 7493 7519 D Unity : x2_35.x = dot (unity_SHBr, tmpvar_37); +11-01 17:32:59.484 7493 7519 D Unity : x2_35.y = dot (unity_SHBg, tmpvar_37); +11-01 17:32:59.484 7493 7519 D Unity : x2_35.z = dot (unity_SHBb, tmpvar_37); +11-01 17:32:59.484 7493 7519 D Unity : ambientOrLightmapUV_33.xyz = ((x2_35 + (unity_SHC.xyz * +11-01 17:32:59.484 7493 7519 D Unity : ((normalWorld_32.x * normalWorld_32.x) - (normalWorld_32.y * normalWorld_32.y)) +11-01 17:32:59.484 7493 7519 D Unity : )) + x1_36); +11-01 17:32:59.484 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:59.484 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_11; +11-01 17:32:59.484 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_13); +11-01 17:32:59.484 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:59.484 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:59.484 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:59.484 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_33; +11-01 17:32:59.484 7493 7519 D Unity : } +11-01 17:32:59.484 7493 7519 D Unity : vertex shader +11-01 17:32:59.484 7493 7519 D Unity : Compile failed. +11-01 17:32:59.526 7493 7519 D Unity : #version 100 +11-01 17:32:59.526 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:59.526 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:59.526 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:59.526 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:59.526 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:59.526 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:59.526 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:59.526 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:59.526 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:59.526 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:59.526 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:59.526 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:59.526 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:59.526 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:59.526 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:59.526 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:59.526 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:59.526 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:59.526 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:59.526 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:59.526 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:59.526 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:59.526 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:59.526 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:59.526 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:59.526 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:59.526 7493 7519 D Unity : void main () +11-01 17:32:59.526 7493 7519 D Unity : { +11-01 17:32:59.526 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:59.526 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:59.526 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:59.526 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:59.526 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:59.526 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:59.526 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:59.526 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:59.526 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:59.526 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:59.526 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:59.526 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:59.526 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:59.526 7493 7519 D Unity : highp vec4 tmpvar_10; +11-01 17:32:59.526 7493 7519 D Unity : tmpvar_10 = (_Object2World * _glesVertex); +11-01 17:32:59.526 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:59.526 7493 7519 D Unity : highp vec4 texcoord_11; +11-01 17:32:59.526 7493 7519 D Unity : texcoord_11.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:59.526 7493 7519 D Unity : highp vec2 tmpvar_12; +11-01 17:32:59.526 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:59.526 7493 7519 D Unity : tmpvar_12 = tmpvar_2; +11-01 17:32:59.526 7493 7519 D Unity : } else { +11-01 17:32:59.526 7493 7519 D Unity : tmpvar_12 = tmpvar_3; +11-01 17:32:59.526 7493 7519 D Unity : }; +11-01 17:32:59.526 7493 7519 D Unity : texcoord_11.zw = ((tmpvar_12 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:59.526 7493 7519 D Unity : mediump vec3 n_13; +11-01 17:32:59.526 7493 7519 D Unity : n_13 = (tmpvar_10.xyz - _WorldSpaceCameraPos); +11-01 17:32:59.526 7493 7519 D Unity : highp vec3 norm_14; +11-01 17:32:59.526 7493 7519 D Unity : norm_14 = tmpvar_1; +11-01 17:32:59.526 7493 7519 D Unity : highp vec4 v_15; +11-01 17:32:59.526 7493 7519 D Unity : v_15.x = _World2Object[0].x; +11-01 17:32:59.526 7493 7519 D Unity : v_15.y = _World2Object[1].x; +11-01 17:32:59.526 7493 7519 D Unity : v_15.z = _World2Object[2].x; +11-01 17:32:59.527 7493 7519 D Unity : v_15.w = _World2Object[3].x; +11-01 17:32:59.527 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:59.527 7493 7519 D Unity : v_16.x = _World2Object[0].y; +11-01 17:32:59.527 7493 7519 D Unity : v_16.y = _World2Object[1].y; +11-01 17:32:59.527 7493 7519 D Unity : v_16.z = _World2Object[2].y; +11-01 17:32:59.527 7493 7519 D Unity : v_16.w = _World2Object[3].y; +11-01 17:32:59.527 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:59.527 7493 7519 D Unity : v_17.x = _World2Object[0].z; +11-01 17:32:59.527 7493 7519 D Unity : v_17.y = _World2Object[1].z; +11-01 17:32:59.527 7493 7519 D Unity : v_17.z = _World2Object[2].z; +11-01 17:32:59.527 7493 7519 D Unity : v_17.w = _World2Object[3].z; +11-01 17:32:59.527 7493 7519 D Unity : highp vec3 tmpvar_18; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_18 = normalize((( +11-01 17:32:59.527 7493 7519 D Unity : (v_15.xyz * norm_14.x) +11-01 17:32:59.527 7493 7519 D Unity : + +11-01 17:32:59.527 7493 7519 D Unity : (v_16.xyz * norm_14.y) +11-01 17:32:59.527 7493 7519 D Unity : ) + (v_17.xyz * norm_14.z))); +11-01 17:32:59.527 7493 7519 D Unity : highp vec3 dir_19; +11-01 17:32:59.527 7493 7519 D Unity : dir_19 = tmpvar_4.xyz; +11-01 17:32:59.527 7493 7519 D Unity : highp mat3 tmpvar_20; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_20[0] = _Object2World[0].xyz; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_20[1] = _Object2World[1].xyz; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_20[2] = _Object2World[2].xyz; +11-01 17:32:59.527 7493 7519 D Unity : highp vec4 tmpvar_21; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_21.xyz = normalize((tmpvar_20 * dir_19)); +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_21.w = tmpvar_4.w; +11-01 17:32:59.527 7493 7519 D Unity : mediump vec3 normal_22; +11-01 17:32:59.527 7493 7519 D Unity : normal_22 = tmpvar_18; +11-01 17:32:59.527 7493 7519 D Unity : mediump vec3 tangent_23; +11-01 17:32:59.527 7493 7519 D Unity : tangent_23 = tmpvar_21.xyz; +11-01 17:32:59.527 7493 7519 D Unity : mediump float tangentSign_24; +11-01 17:32:59.527 7493 7519 D Unity : tangentSign_24 = tmpvar_21.w; +11-01 17:32:59.527 7493 7519 D Unity : mediump float sign_25; +11-01 17:32:59.527 7493 7519 D Unity : highp float tmpvar_26; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_26 = (tangentSign_24 * unity_WorldTransformParams.w); +11-01 17:32:59.527 7493 7519 D Unity : sign_25 = tmpvar_26; +11-01 17:32:59.527 7493 7519 D Unity : mediump vec3 tmpvar_27; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_27 = (((normal_22.yzx * tangent_23.zxy) - (normal_22.zxy * tangent_23.yzx)) * sign_25); +11-01 17:32:59.527 7493 7519 D Unity : mediump mat3 tmpvar_28; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_28[0].x = tangent_23.x; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_28[0].y = tmpvar_27.x; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_28[0].z = normal_22.x; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_28[1].x = tangent_23.y; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_28[1].y = tmpvar_27.y; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_28[1].z = normal_22.y; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_28[2].x = tangent_23.z; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_28[2].y = tmpvar_27.z; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_28[2].z = normal_22.z; +11-01 17:32:59.527 7493 7519 D Unity : tangentToWorld_5 = tmpvar_28; +11-01 17:32:59.527 7493 7519 D Unity : highp vec3 v_29; +11-01 17:32:59.527 7493 7519 D Unity : v_29.x = tangentToWorld_5[0].x; +11-01 17:32:59.527 7493 7519 D Unity : v_29.y = tangentToWorld_5[1].x; +11-01 17:32:59.527 7493 7519 D Unity : v_29.z = tangentToWorld_5[2].x; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_7.xyz = v_29; +11-01 17:32:59.527 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:59.527 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].y; +11-01 17:32:59.527 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].y; +11-01 17:32:59.527 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].y; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_8.xyz = v_30; +11-01 17:32:59.527 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:59.527 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].z; +11-01 17:32:59.527 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].z; +11-01 17:32:59.527 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].z; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_9.xyz = v_31; +11-01 17:32:59.527 7493 7519 D Unity : mediump vec3 normalWorld_32; +11-01 17:32:59.527 7493 7519 D Unity : normalWorld_32 = tmpvar_18; +11-01 17:32:59.527 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_33; +11-01 17:32:59.527 7493 7519 D Unity : ambientOrLightmapUV_33.w = 0.0; +11-01 17:32:59.527 7493 7519 D Unity : mediump vec4 tmpvar_34; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_34.w = 1.0; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_34.xyz = normalWorld_32; +11-01 17:32:59.527 7493 7519 D Unity : mediump vec3 x2_35; +11-01 17:32:59.527 7493 7519 D Unity : mediump vec3 x1_36; +11-01 17:32:59.527 7493 7519 D Unity : x1_36.x = dot (unity_SHAr, tmpvar_34); +11-01 17:32:59.527 7493 7519 D Unity : x1_36.y = dot (unity_SHAg, tmpvar_34); +11-01 17:32:59.527 7493 7519 D Unity : x1_36.z = dot (unity_SHAb, tmpvar_34); +11-01 17:32:59.527 7493 7519 D Unity : mediump vec4 tmpvar_37; +11-01 17:32:59.527 7493 7519 D Unity : tmpvar_37 = (normalWorld_32.xyzz * normalWorld_32.yzzx); +11-01 17:32:59.527 7493 7519 D Unity : x2_35.x = dot (unity_SHBr, tmpvar_37); +11-01 17:32:59.527 7493 7519 D Unity : x2_35.y = dot (unity_SHBg, tmpvar_37); +11-01 17:32:59.527 7493 7519 D Unity : x2_35.z = dot (unity_SHBb, tmpvar_37); +11-01 17:32:59.527 7493 7519 D Unity : ambientOrLightmapUV_33.xyz = ((x2_35 + (unity_SHC.xyz * +11-01 17:32:59.527 7493 7519 D Unity : ((normalWorld_32.x * normalWorld_32.x) - (normalWorld_32.y * normalWorld_32.y)) +11-01 17:32:59.527 7493 7519 D Unity : )) + x1_36); +11-01 17:32:59.527 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:59.527 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_11; +11-01 17:32:59.527 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_13); +11-01 17:32:59.527 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:59.527 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:59.527 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:59.527 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_33; +11-01 17:32:59.527 7493 7519 D Unity : } +11-01 17:32:59.527 7493 7519 D Unity : vertex shader +11-01 17:32:59.527 7493 7519 D Unity : Compile failed. +11-01 17:32:59.547 7493 7519 D Unity : #version 100 +11-01 17:32:59.547 7493 7519 D Unity : attribute vec4 _glesTANGENT; +11-01 17:32:59.547 7493 7519 D Unity : attribute vec4 _glesVertex; +11-01 17:32:59.547 7493 7519 D Unity : attribute vec3 _glesNormal; +11-01 17:32:59.547 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord0; +11-01 17:32:59.547 7493 7519 D Unity : attribute vec4 _glesMultiTexCoord1; +11-01 17:32:59.547 7493 7519 D Unity : uniform highp vec3 _WorldSpaceCameraPos; +11-01 17:32:59.547 7493 7519 D Unity : uniform mediump vec4 unity_SHAr; +11-01 17:32:59.547 7493 7519 D Unity : uniform mediump vec4 unity_SHAg; +11-01 17:32:59.547 7493 7519 D Unity : uniform mediump vec4 unity_SHAb; +11-01 17:32:59.547 7493 7519 D Unity : uniform mediump vec4 unity_SHBr; +11-01 17:32:59.547 7493 7519 D Unity : uniform mediump vec4 unity_SHBg; +11-01 17:32:59.547 7493 7519 D Unity : uniform mediump vec4 unity_SHBb; +11-01 17:32:59.547 7493 7519 D Unity : uniform mediump vec4 unity_SHC; +11-01 17:32:59.547 7493 7519 D Unity : uniform highp mat4 glstate_matrix_mvp; +11-01 17:32:59.547 7493 7519 D Unity : uniform highp mat4 _Object2World; +11-01 17:32:59.547 7493 7519 D Unity : uniform highp mat4 _World2Object; +11-01 17:32:59.547 7493 7519 D Unity : uniform highp vec4 unity_WorldTransformParams; +11-01 17:32:59.547 7493 7519 D Unity : uniform highp vec4 _MainTex_ST; +11-01 17:32:59.547 7493 7519 D Unity : uniform highp vec4 _DetailAlbedoMap_ST; +11-01 17:32:59.547 7493 7519 D Unity : uniform mediump float _UVSec; +11-01 17:32:59.547 7493 7519 D Unity : varying highp vec4 xlv_TEXCOORD0; +11-01 17:32:59.547 7493 7519 D Unity : varying mediump vec3 xlv_TEXCOORD1; +11-01 17:32:59.547 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2; +11-01 17:32:59.547 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_1; +11-01 17:32:59.547 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD2_2; +11-01 17:32:59.547 7493 7519 D Unity : varying mediump vec4 xlv_TEXCOORD5; +11-01 17:32:59.547 7493 7519 D Unity : void main () +11-01 17:32:59.547 7493 7519 D Unity : { +11-01 17:32:59.547 7493 7519 D Unity : mediump vec3 tmpvar_1; +11-01 17:32:59.547 7493 7519 D Unity : tmpvar_1 = _glesNormal; +11-01 17:32:59.547 7493 7519 D Unity : highp vec2 tmpvar_2; +11-01 17:32:59.547 7493 7519 D Unity : tmpvar_2 = _glesMultiTexCoord0.xy; +11-01 17:32:59.547 7493 7519 D Unity : highp vec2 tmpvar_3; +11-01 17:32:59.547 7493 7519 D Unity : tmpvar_3 = _glesMultiTexCoord1.xy; +11-01 17:32:59.547 7493 7519 D Unity : mediump vec4 tmpvar_4; +11-01 17:32:59.547 7493 7519 D Unity : tmpvar_4 = _glesTANGENT; +11-01 17:32:59.547 7493 7519 D Unity : highp mat3 tangentToWorld_5; +11-01 17:32:59.547 7493 7519 D Unity : highp vec4 tmpvar_6; +11-01 17:32:59.547 7493 7519 D Unity : mediump vec4 tmpvar_7; +11-01 17:32:59.547 7493 7519 D Unity : mediump vec4 tmpvar_8; +11-01 17:32:59.547 7493 7519 D Unity : mediump vec4 tmpvar_9; +11-01 17:32:59.547 7493 7519 D Unity : highp vec4 tmpvar_10; +11-01 17:32:59.547 7493 7519 D Unity : tmpvar_10 = (_Object2World * _glesVertex); +11-01 17:32:59.547 7493 7519 D Unity : tmpvar_6 = (glstate_matrix_mvp * _glesVertex); +11-01 17:32:59.547 7493 7519 D Unity : highp vec4 texcoord_11; +11-01 17:32:59.547 7493 7519 D Unity : texcoord_11.xy = ((_glesMultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw); +11-01 17:32:59.547 7493 7519 D Unity : highp vec2 tmpvar_12; +11-01 17:32:59.547 7493 7519 D Unity : if ((_UVSec == 0.0)) { +11-01 17:32:59.547 7493 7519 D Unity : tmpvar_12 = tmpvar_2; +11-01 17:32:59.547 7493 7519 D Unity : } else { +11-01 17:32:59.547 7493 7519 D Unity : tmpvar_12 = tmpvar_3; +11-01 17:32:59.547 7493 7519 D Unity : }; +11-01 17:32:59.547 7493 7519 D Unity : texcoord_11.zw = ((tmpvar_12 * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); +11-01 17:32:59.547 7493 7519 D Unity : mediump vec3 n_13; +11-01 17:32:59.547 7493 7519 D Unity : n_13 = (tmpvar_10.xyz - _WorldSpaceCameraPos); +11-01 17:32:59.547 7493 7519 D Unity : highp vec3 norm_14; +11-01 17:32:59.547 7493 7519 D Unity : norm_14 = tmpvar_1; +11-01 17:32:59.547 7493 7519 D Unity : highp vec4 v_15; +11-01 17:32:59.547 7493 7519 D Unity : v_15.x = _World2Object[0].x; +11-01 17:32:59.547 7493 7519 D Unity : v_15.y = _World2Object[1].x; +11-01 17:32:59.547 7493 7519 D Unity : v_15.z = _World2Object[2].x; +11-01 17:32:59.547 7493 7519 D Unity : v_15.w = _World2Object[3].x; +11-01 17:32:59.547 7493 7519 D Unity : highp vec4 v_16; +11-01 17:32:59.547 7493 7519 D Unity : v_16.x = _World2Object[0].y; +11-01 17:32:59.547 7493 7519 D Unity : v_16.y = _World2Object[1].y; +11-01 17:32:59.547 7493 7519 D Unity : v_16.z = _World2Object[2].y; +11-01 17:32:59.547 7493 7519 D Unity : v_16.w = _World2Object[3].y; +11-01 17:32:59.548 7493 7519 D Unity : highp vec4 v_17; +11-01 17:32:59.548 7493 7519 D Unity : v_17.x = _World2Object[0].z; +11-01 17:32:59.548 7493 7519 D Unity : v_17.y = _World2Object[1].z; +11-01 17:32:59.548 7493 7519 D Unity : v_17.z = _World2Object[2].z; +11-01 17:32:59.548 7493 7519 D Unity : v_17.w = _World2Object[3].z; +11-01 17:32:59.548 7493 7519 D Unity : highp vec3 tmpvar_18; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_18 = normalize((( +11-01 17:32:59.548 7493 7519 D Unity : (v_15.xyz * norm_14.x) +11-01 17:32:59.548 7493 7519 D Unity : + +11-01 17:32:59.548 7493 7519 D Unity : (v_16.xyz * norm_14.y) +11-01 17:32:59.548 7493 7519 D Unity : ) + (v_17.xyz * norm_14.z))); +11-01 17:32:59.548 7493 7519 D Unity : highp vec3 dir_19; +11-01 17:32:59.548 7493 7519 D Unity : dir_19 = tmpvar_4.xyz; +11-01 17:32:59.548 7493 7519 D Unity : highp mat3 tmpvar_20; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_20[0] = _Object2World[0].xyz; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_20[1] = _Object2World[1].xyz; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_20[2] = _Object2World[2].xyz; +11-01 17:32:59.548 7493 7519 D Unity : highp vec4 tmpvar_21; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_21.xyz = normalize((tmpvar_20 * dir_19)); +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_21.w = tmpvar_4.w; +11-01 17:32:59.548 7493 7519 D Unity : mediump vec3 normal_22; +11-01 17:32:59.548 7493 7519 D Unity : normal_22 = tmpvar_18; +11-01 17:32:59.548 7493 7519 D Unity : mediump vec3 tangent_23; +11-01 17:32:59.548 7493 7519 D Unity : tangent_23 = tmpvar_21.xyz; +11-01 17:32:59.548 7493 7519 D Unity : mediump float tangentSign_24; +11-01 17:32:59.548 7493 7519 D Unity : tangentSign_24 = tmpvar_21.w; +11-01 17:32:59.548 7493 7519 D Unity : mediump float sign_25; +11-01 17:32:59.548 7493 7519 D Unity : highp float tmpvar_26; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_26 = (tangentSign_24 * unity_WorldTransformParams.w); +11-01 17:32:59.548 7493 7519 D Unity : sign_25 = tmpvar_26; +11-01 17:32:59.548 7493 7519 D Unity : mediump vec3 tmpvar_27; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_27 = (((normal_22.yzx * tangent_23.zxy) - (normal_22.zxy * tangent_23.yzx)) * sign_25); +11-01 17:32:59.548 7493 7519 D Unity : mediump mat3 tmpvar_28; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_28[0].x = tangent_23.x; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_28[0].y = tmpvar_27.x; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_28[0].z = normal_22.x; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_28[1].x = tangent_23.y; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_28[1].y = tmpvar_27.y; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_28[1].z = normal_22.y; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_28[2].x = tangent_23.z; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_28[2].y = tmpvar_27.z; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_28[2].z = normal_22.z; +11-01 17:32:59.548 7493 7519 D Unity : tangentToWorld_5 = tmpvar_28; +11-01 17:32:59.548 7493 7519 D Unity : highp vec3 v_29; +11-01 17:32:59.548 7493 7519 D Unity : v_29.x = tangentToWorld_5[0].x; +11-01 17:32:59.548 7493 7519 D Unity : v_29.y = tangentToWorld_5[1].x; +11-01 17:32:59.548 7493 7519 D Unity : v_29.z = tangentToWorld_5[2].x; +11-01 17:32:59.548 7493 7519 D Unity : tmpvar_7.xyz = v_29; +11-01 17:32:59.548 7493 7519 D Unity : highp vec3 v_30; +11-01 17:32:59.548 7493 7519 D Unity : v_30.x = tangentToWorld_5[0].y; +11-01 17:32:59.550 7493 7519 D Unity : v_30.y = tangentToWorld_5[1].y; +11-01 17:32:59.550 7493 7519 D Unity : v_30.z = tangentToWorld_5[2].y; +11-01 17:32:59.550 7493 7519 D Unity : tmpvar_8.xyz = v_30; +11-01 17:32:59.550 7493 7519 D Unity : highp vec3 v_31; +11-01 17:32:59.550 7493 7519 D Unity : v_31.x = tangentToWorld_5[0].z; +11-01 17:32:59.550 7493 7519 D Unity : v_31.y = tangentToWorld_5[1].z; +11-01 17:32:59.550 7493 7519 D Unity : v_31.z = tangentToWorld_5[2].z; +11-01 17:32:59.550 7493 7519 D Unity : tmpvar_9.xyz = v_31; +11-01 17:32:59.550 7493 7519 D Unity : mediump vec3 normalWorld_32; +11-01 17:32:59.550 7493 7519 D Unity : normalWorld_32 = tmpvar_18; +11-01 17:32:59.550 7493 7519 D Unity : mediump vec4 ambientOrLightmapUV_33; +11-01 17:32:59.550 7493 7519 D Unity : ambientOrLightmapUV_33.w = 0.0; +11-01 17:32:59.550 7493 7519 D Unity : mediump vec4 tmpvar_34; +11-01 17:32:59.550 7493 7519 D Unity : tmpvar_34.w = 1.0; +11-01 17:32:59.550 7493 7519 D Unity : tmpvar_34.xyz = normalWorld_32; +11-01 17:32:59.550 7493 7519 D Unity : mediump vec3 x2_35; +11-01 17:32:59.550 7493 7519 D Unity : mediump vec3 x1_36; +11-01 17:32:59.550 7493 7519 D Unity : x1_36.x = dot (unity_SHAr, tmpvar_34); +11-01 17:32:59.550 7493 7519 D Unity : x1_36.y = dot (unity_SHAg, tmpvar_34); +11-01 17:32:59.550 7493 7519 D Unity : x1_36.z = dot (unity_SHAb, tmpvar_34); +11-01 17:32:59.550 7493 7519 D Unity : mediump vec4 tmpvar_37; +11-01 17:32:59.550 7493 7519 D Unity : tmpvar_37 = (normalWorld_32.xyzz * normalWorld_32.yzzx); +11-01 17:32:59.550 7493 7519 D Unity : x2_35.x = dot (unity_SHBr, tmpvar_37); +11-01 17:32:59.550 7493 7519 D Unity : x2_35.y = dot (unity_SHBg, tmpvar_37); +11-01 17:32:59.550 7493 7519 D Unity : x2_35.z = dot (unity_SHBb, tmpvar_37); +11-01 17:32:59.550 7493 7519 D Unity : ambientOrLightmapUV_33.xyz = ((x2_35 + (unity_SHC.xyz * +11-01 17:32:59.550 7493 7519 D Unity : ((normalWorld_32.x * normalWorld_32.x) - (normalWorld_32.y * normalWorld_32.y)) +11-01 17:32:59.550 7493 7519 D Unity : )) + x1_36); +11-01 17:32:59.550 7493 7519 D Unity : gl_Position = tmpvar_6; +11-01 17:32:59.550 7493 7519 D Unity : xlv_TEXCOORD0 = texcoord_11; +11-01 17:32:59.550 7493 7519 D Unity : xlv_TEXCOORD1 = normalize(n_13); +11-01 17:32:59.550 7493 7519 D Unity : xlv_TEXCOORD2 = tmpvar_7; +11-01 17:32:59.550 7493 7519 D Unity : xlv_TEXCOORD2_1 = tmpvar_8; +11-01 17:32:59.550 7493 7519 D Unity : xlv_TEXCOORD2_2 = tmpvar_9; +11-01 17:32:59.550 7493 7519 D Unity : xlv_TEXCOORD5 = ambientOrLightmapUV_33; +11-01 17:32:59.550 7493 7519 D Unity : } +11-01 17:32:59.550 7493 7519 D Unity : vertex shader +11-01 17:32:59.550 7493 7519 D Unity : Compile failed. +11-01 17:33:07.093 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:33:07.093 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 0,format 0, channels 3, flags 0 +11-01 17:33:07.094 223 2143 W APM_AudioPolicyManager: getOutput() could not find output for stream 1, samplingRate 48000,format 1, channels 3, flags 4 +11-01 17:33:07.094 295 382 E AudioTrack: Could not get audio output for session 233, stream type -1, usage 13, sample rate 48000, format 0x1, channel mask 0x3, flags 0x4 +11-01 17:33:07.094 295 382 E SoundPool: Error creating AudioTrack +11-01 17:33:07.218 295 312 W Looper : Dispatch took 125ms on android.ui, h=Handler (android.view.ViewRootImpl$ViewRootHandler) {5294093} cb=android.view.View$PerformClick@8ef78d0 msg=0 +11-01 17:33:13.855 295 364 D SntpClient: request time failed: java.net.SocketTimeoutException: Poll timed out +11-01 17:33:18.869 295 365 D SntpClient: request time failed: java.net.SocketTimeoutException: Poll timed out +11-01 17:33:33.271 7493 7511 D RenderScript HIDL Adaptation: IRenderScriptDevice::getService() +11-01 17:33:33.271 147 147 W /system/bin/hwservicemanager: getTransportFromManifest: Cannot find entry android.hardware.renderscript@1.0::IDevice in either framework or device manifest, using default transport. +11-01 17:33:33.273 7493 7511 D RenderScript HIDL Adaptation: IRenderScriptDevice::getService() returned 0x0 +11-01 17:33:33.273 7493 7511 D RenderScript HIDL Adaptation: Using Fallback Path. +11-01 17:33:33.289 7493 7511 D RenderScript: Successfully queried cache dir: /data/user_de/0/com.antutu.benchmark.full/code_cache +11-01 17:33:33.290 7493 7511 D RenderScript: Setting cache dir: /data/user_de/0/com.antutu.benchmark.full/code_cache +11-01 17:33:33.337 7493 7511 I zygote : Starting a blocking GC NativeAlloc +11-01 17:33:33.410 7493 7511 I zygote : Waiting for a blocking GC NativeAlloc +11-01 17:33:33.411 7493 7511 I zygote : Starting a blocking GC NativeAlloc +11-01 17:33:33.421 7493 7511 I zygote : Starting a blocking GC NativeAlloc +11-01 17:33:39.790 7493 7511 D RenderScript: Setting cache dir: /data/user_de/0/com.antutu.benchmark.full/code_cache +11-01 17:33:39.838 7493 7511 I zygote : Starting a blocking GC NativeAlloc +11-01 17:33:39.913 7493 7511 I zygote : Waiting for a blocking GC NativeAlloc +11-01 17:33:39.913 7493 7511 I zygote : Starting a blocking GC NativeAlloc +11-01 17:33:54.581 7493 7511 E Unity : RenderTexture warning: Destroying active render texture. Switching to main context. +11-01 17:33:54.581 7493 7511 E Unity : +11-01 17:33:54.581 7493 7511 E Unity : (Filename: Line: 509) +11-01 17:33:54.581 7493 7511 E Unity : +11-01 17:33:54.597 7493 7511 E libEGL : call to OpenGL ES API with no current context (logged once per thread) +11-01 17:33:54.619 295 1319 W ActivityManager: Finishing task with all activities already finished +11-01 17:33:54.619 295 1319 W ActivityManager: Duplicate finish request for ActivityRecord{d28a06a u0 com.antutu.benchmark.full/.UnityPlayerActivity t8 f} +11-01 17:33:54.627 2344 2344 I pool-2-thread-1: type=1400 audit(0.0:142): avc: denied { read } for name="address" dev="sysfs" ino=17394 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1 +11-01 17:33:55.661 7493 7493 I Process : Sending signal. PID: 7493 SIG: 9 +11-01 17:33:55.672 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:33:55.685 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:33:55.686 295 1701 I OpenGLRenderer: Initialized EGL, version 1.4 +11-01 17:33:55.686 295 1701 D OpenGLRenderer: Swap behavior 1 +11-01 17:33:55.687 295 1701 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... +11-01 17:33:55.687 295 1701 D OpenGLRenderer: Swap behavior 0 +11-01 17:33:55.735 295 357 W InputDispatcher: channel 'c6a721f com.antutu.benchmark.full/com.antutu.benchmark.full.UnityPlayerActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 +11-01 17:33:55.735 295 357 E InputDispatcher: channel 'c6a721f com.antutu.benchmark.full/com.antutu.benchmark.full.UnityPlayerActivity (server)' ~ Channel is unrecoverably broken and will be disposed! +11-01 17:33:55.842 295 1320 I ActivityManager: Process com.antutu.benchmark.full (pid 7493) has died: cch CEM +11-01 17:33:55.844 295 629 I WindowManager: WIN DEATH: Window{c6a721f u0 com.antutu.benchmark.full/com.antutu.benchmark.full.UnityPlayerActivity} +11-01 17:33:55.844 295 629 W InputDispatcher: Attempted to unregister already unregistered input channel 'c6a721f com.antutu.benchmark.full/com.antutu.benchmark.full.UnityPlayerActivity (server)' +11-01 17:33:55.852 295 319 W ActivityManager: setHasOverlayUi called on unknown pid: 7493 +11-01 17:33:55.855 295 7566 I zygote : Starting a blocking GC Alloc +11-01 17:33:55.855 295 7566 I zygote : Starting a blocking GC Alloc +11-01 17:33:55.860 295 343 I zygote : Waiting for a blocking GC Alloc +11-01 17:33:55.877 295 391 I zygote : Waiting for a blocking GC Alloc +11-01 17:33:55.915 295 7566 I zygote : Alloc concurrent copying GC freed 31454(2MB) AllocSpace objects, 18(396KB) LOS objects, 42% free, 5MB/9MB, paused 273us total 60.322ms +11-01 17:33:55.915 295 343 I zygote : WaitForGcToComplete blocked for 55.434ms for cause Alloc +11-01 17:33:55.915 295 343 I zygote : Starting a blocking GC Alloc +11-01 17:33:55.916 295 391 I zygote : WaitForGcToComplete blocked for 38.481ms for cause Alloc +11-01 17:33:55.916 295 391 I zygote : Starting a blocking GC Alloc +11-01 17:33:58.275 295 395 E TaskPersister: File error accessing recents directory (directory doesn't exist?). +11-01 17:35:39.575 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:39.575 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:39.598 2344 7485 I zygote : Alloc concurrent copying GC freed 112(31KB) AllocSpace objects, 6(6MB) LOS objects, 43% free, 7MB/13MB, paused 219us total 21.836ms +11-01 17:35:39.686 2344 7485 I zygote : Waiting for a blocking GC Alloc +11-01 17:35:39.708 2344 7485 I zygote : WaitForGcToComplete blocked for 21.981ms for cause Alloc +11-01 17:35:39.708 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:39.777 2344 7485 I zygote : Waiting for a blocking GC Alloc +11-01 17:35:39.797 2344 7485 I zygote : WaitForGcToComplete blocked for 19.635ms for cause Alloc +11-01 17:35:39.797 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:39.874 2344 7485 I chatty : uid=10058(u0_a58) Thread-44 identical 1 line +11-01 17:35:39.874 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:39.897 2344 7485 I zygote : Alloc concurrent copying GC freed 3343(143KB) AllocSpace objects, 8(10MB) LOS objects, 49% free, 4MB/9MB, paused 215us total 23.515ms +11-01 17:35:40.023 2344 7485 I zygote : Waiting for a blocking GC Alloc +11-01 17:35:40.026 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:40.091 2344 2355 I zygote : Clamp target GC heap from 16MB to 16MB +11-01 17:35:40.123 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:40.123 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:40.146 2344 7485 I zygote : Alloc concurrent copying GC freed 290(36KB) AllocSpace objects, 6(6MB) LOS objects, 43% free, 7MB/13MB, paused 225us total 23.354ms +11-01 17:35:40.227 2344 7485 I zygote : Waiting for a blocking GC Alloc +11-01 17:35:40.248 2344 7485 I zygote : WaitForGcToComplete blocked for 21.087ms for cause Alloc +11-01 17:35:40.248 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:40.317 2344 7485 I zygote : Waiting for a blocking GC Alloc +11-01 17:35:40.338 2344 7485 I zygote : WaitForGcToComplete blocked for 20.558ms for cause Alloc +11-01 17:35:40.338 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:40.414 2344 7485 I chatty : uid=10058(u0_a58) Thread-44 identical 1 line +11-01 17:35:40.414 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:40.437 2344 7485 I zygote : Alloc concurrent copying GC freed 3343(143KB) AllocSpace objects, 8(10MB) LOS objects, 49% free, 4MB/9MB, paused 174us total 22.337ms +11-01 17:35:40.562 2344 7485 I zygote : Waiting for a blocking GC Alloc +11-01 17:35:40.564 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:40.669 2344 7485 I chatty : uid=10058(u0_a58) Thread-44 identical 1 line +11-01 17:35:40.669 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:40.691 2344 7485 I zygote : Alloc concurrent copying GC freed 290(36KB) AllocSpace objects, 6(6MB) LOS objects, 43% free, 7MB/13MB, paused 186us total 21.991ms +11-01 17:35:40.777 2344 7485 I zygote : Waiting for a blocking GC Alloc +11-01 17:35:40.795 2344 7485 I zygote : WaitForGcToComplete blocked for 17.497ms for cause Alloc +11-01 17:35:40.795 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:40.861 2344 7485 I zygote : Waiting for a blocking GC Alloc +11-01 17:35:40.883 2344 7485 I zygote : WaitForGcToComplete blocked for 21.489ms for cause Alloc +11-01 17:35:40.883 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:35:46.060 2344 7613 I zygote : Deoptimizing void org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(org.kxml2.io.KXmlParser, org.apache.harmony.xml.dom.DocumentImpl, org.w3c.dom.Node, int) due to JIT inline cache +11-01 17:36:14.334 157 193 D MDnsDS : MDnsSdListener::Monitor poll timed out +11-01 17:36:14.334 157 193 D MDnsDS : Going to poll with pollCount 1 +11-01 17:36:30.243 2344 2355 I zygote : Background concurrent copying GC freed 123933(4MB) AllocSpace objects, 0(0B) LOS objects, 43% free, 7MB/13MB, paused 184us total 109.310ms +11-01 17:36:31.041 295 7616 D NetworkMonitor/NetworkAgentInfo [Ethernet () - 100]: PROBE_DNS connectivitycheck.gstatic.com 6ms OK 203.208.39.207 +11-01 17:36:31.046 295 7615 D NetworkMonitor/NetworkAgentInfo [Ethernet () - 100]: PROBE_DNS www.google.com 10ms OK 66.220.147.44 +11-01 17:36:31.068 295 7616 D NetworkMonitor/NetworkAgentInfo [Ethernet () - 100]: PROBE_HTTP http://connectivitycheck.gstatic.com/generate_204 time=27ms ret=204 request={User-Agent=[Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36]} headers={null=[HTTP/1.1 204 No Content], Content-Length=[0], Date=[Tue, 07 Nov 2017 12:51:17 GMT], X-Android-Received-Millis=[1509557791068], X-Android-Response-Source=[NETWORK 204], X-Android-Selected-Protocol=[http/1.1], X-Android-Sent-Millis=[1509557791056]} +11-01 17:36:31.092 295 7615 D NetworkMonitor/NetworkAgentInfo [Ethernet () - 100]: PROBE_HTTPS https://www.google.com/generate_204 Probably not a portal: exception java.net.ConnectException: Failed to connect to www.google.com/66.220.147.44:443 +11-01 17:36:31.978 2344 2355 I zygote : Background concurrent copying GC freed 171758(6MB) AllocSpace objects, 0(0B) LOS objects, 43% free, 7MB/13MB, paused 183us total 119.498ms +11-01 17:36:41.105 295 1014 D NetworkMonitor/NetworkAgentInfo [Ethernet () - 100]: PROBE_FALLBACK http://www.google.com/gen_204 Probably not a portal: exception java.net.SocketTimeoutException: failed to connect to www.google.com/66.220.147.44 (port 80) from /192.168.0.109 (port 51016) after 10000ms +11-01 17:36:41.105 295 375 D ConnectivityService: NetworkAgentInfo [Ethernet () - 100] validation failed +11-01 17:36:42.553 2344 2349 I zygote : Do full code cache collection, code=125KB, data=94KB +11-01 17:36:42.555 2344 2349 I zygote : After code cache collection, code=82KB, data=55KB +11-01 17:36:42.672 2344 7485 I zygote : Waiting for a blocking GC Alloc +11-01 17:36:42.704 2344 7485 I zygote : WaitForGcToComplete blocked for 32.140ms for cause Alloc +11-01 17:36:42.704 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:36:50.392 2344 2349 I zygote : Do partial code cache collection, code=117KB, data=70KB +11-01 17:36:50.393 2344 2349 I zygote : After code cache collection, code=117KB, data=70KB +11-01 17:36:50.393 2344 2349 I zygote : Increasing code cache capacity to 512KB +11-01 17:36:57.203 2344 2355 I zygote : Clamp target GC heap from 16MB to 16MB +11-01 17:36:57.252 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:36:57.252 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:36:57.273 2344 7485 I zygote : Clamp target GC heap from 18MB to 16MB +11-01 17:36:57.273 2344 7485 I zygote : Alloc concurrent copying GC freed 115(90KB) AllocSpace objects, 7(2MB) LOS objects, 20% free, 12MB/16MB, paused 180us total 21.326ms +11-01 17:36:57.273 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:36:57.296 2344 7485 I zygote : Clamp target GC heap from 18MB to 16MB +11-01 17:36:57.296 2344 7485 I zygote : Alloc concurrent copying GC freed 5(152B) AllocSpace objects, 0(0B) LOS objects, 20% free, 12MB/16MB, paused 218us total 22.072ms +11-01 17:36:57.296 2344 7485 I zygote : Forcing collection of SoftReferences for 4MB allocation +11-01 17:36:57.296 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:36:57.328 2344 7485 I zygote : Clamp target GC heap from 18MB to 16MB +11-01 17:36:57.328 2344 7485 I zygote : Alloc concurrent copying GC freed 4692(225KB) AllocSpace objects, 0(0B) LOS objects, 21% free, 12MB/16MB, paused 177us total 32.137ms +11-01 17:36:57.328 2344 7485 W zygote : Throwing OutOfMemoryError "Failed to allocate a 4194316 byte allocation with 3581416 free bytes and 3MB until OOM, max allowed footprint 16777216, growth limit 16777216" +11-01 17:36:57.328 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:36:57.328 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:36:57.348 2344 7485 I zygote : Clamp target GC heap from 18MB to 16MB +11-01 17:36:57.348 2344 7485 I zygote : Alloc concurrent copying GC freed 4(31KB) AllocSpace objects, 0(0B) LOS objects, 21% free, 12MB/16MB, paused 208us total 20.056ms +11-01 17:36:57.348 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:36:57.370 2344 7485 I zygote : Clamp target GC heap from 18MB to 16MB +11-01 17:36:57.370 2344 7485 I zygote : Alloc concurrent copying GC freed 4(16KB) AllocSpace objects, 0(0B) LOS objects, 21% free, 12MB/16MB, paused 201us total 20.960ms +11-01 17:36:57.370 2344 7485 I zygote : Forcing collection of SoftReferences for 4MB allocation +11-01 17:36:57.370 2344 7485 I zygote : Starting a blocking GC Alloc +11-01 17:36:57.402 2344 7485 I zygote : Clamp target GC heap from 18MB to 16MB +11-01 17:36:57.402 2344 7485 I zygote : Alloc concurrent copying GC freed 5(16KB) AllocSpace objects, 0(0B) LOS objects, 21% free, 12MB/16MB, paused 199us total 31.772ms +11-01 17:36:57.402 2344 7485 W zygote : Throwing OutOfMemoryError "Failed to allocate a 4194320 byte allocation with 3581416 free bytes and 3MB until OOM, max allowed footprint 16777216, growth limit 16777216" +--------- beginning of crash +11-01 17:36:57.402 2344 7485 E AndroidRuntime: FATAL EXCEPTION: Thread-44 +11-01 17:36:57.402 2344 7485 E AndroidRuntime: Process: com.antutu.ABenchMark, PID: 2344 +11-01 17:36:57.402 2344 7485 E AndroidRuntime: java.lang.OutOfMemoryError: Failed to allocate a 4194320 byte allocation with 3581416 free bytes and 3MB until OOM, max allowed footprint 16777216, growth limit 16777216 +11-01 17:36:57.402 2344 7485 E AndroidRuntime: at java.util.Arrays.copyOf(Arrays.java:3164) +11-01 17:36:57.402 2344 7485 E AndroidRuntime: at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118) +11-01 17:36:57.402 2344 7485 E AndroidRuntime: at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93) +11-01 17:36:57.402 2344 7485 E AndroidRuntime: at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153) +11-01 17:36:57.402 2344 7485 E AndroidRuntime: at com.antutu.benchmark.platform.a.a.a(Unknown Source:23) +11-01 17:36:57.402 2344 7485 E AndroidRuntime: at com.antutu.benchmark.platform.a.a.b(Unknown Source:62) +11-01 17:36:57.402 2344 7485 E AndroidRuntime: at com.antutu.benchmark.platform.f.c(Unknown Source:8) +11-01 17:36:57.402 2344 7485 E AndroidRuntime: at com.antutu.benchmark.BenchmarkService.e(Unknown Source:508) +11-01 17:36:57.402 2344 7485 E AndroidRuntime: at com.antutu.benchmark.c.run(Unknown Source:2) +11-01 17:36:57.782 2344 7485 D SharedPreferencesImpl: Time required to fsync /data/user/0/com.antutu.ABenchMark/shared_prefs/umeng_general_config.xml: [<1: 0, <2: 0, <4: 1, <8: 12, <16: 5, <32: 1, <64: 0, <128: 0, <256: 0, <512: 1, <1024: 0, <2048: 0, <4096: 0, <8192: 0, <16384: 0, >=16384: 0] +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: Failed to allocate a 4194320 byte allocation with 3581416 free bytes and 3MB until OOM, max allowed footprint 16777216, growth limit 16777216 +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: java.lang.OutOfMemoryError: Failed to allocate a 4194320 byte allocation with 3581416 free bytes and 3MB until OOM, max allowed footprint 16777216, growth limit 16777216 +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: at java.util.Arrays.copyOf(Arrays.java:3164) +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118) +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93) +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153) +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: at com.antutu.benchmark.platform.a.a.a(Unknown Source:23) +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: at com.antutu.benchmark.platform.a.a.b(Unknown Source:62) +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: at com.antutu.benchmark.platform.f.c(Unknown Source:8) +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: at com.antutu.benchmark.BenchmarkService.e(Unknown Source:508) +11-01 17:36:57.803 2344 7485 E MobUncaughtExceptionHandler: at com.antutu.benchmark.c.run(Unknown Source:2) +11-01 17:36:57.809 295 1320 W ActivityManager: Force finishing activity com.antutu.ABenchMark/com.antutu.benchmark.activity.ScoreBenchActivity +11-01 17:36:57.820 295 312 I ActivityManager: Showing crash dialog for package com.antutu.ABenchMark u0 +11-01 17:36:57.910 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:36:57.913 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:36:57.915 295 1701 I OpenGLRenderer: Initialized EGL, version 1.4 +11-01 17:36:57.915 295 1701 D OpenGLRenderer: Swap behavior 1 +11-01 17:36:57.915 295 1701 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... +11-01 17:36:57.915 295 1701 D OpenGLRenderer: Swap behavior 0 +11-01 17:36:58.011 2344 7304 W OkHttpClient: A connection to http://certtime.antutu.net/ was leaked. Did you forget to close a response body? +11-01 17:36:58.034 2344 7336 I Process : Sending signal. PID: 2344 SIG: 9 +11-01 17:36:58.069 295 357 W InputDispatcher: channel 'a6f2a57 com.antutu.ABenchMark/com.antutu.benchmark.activity.ScoreBenchActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 +11-01 17:36:58.069 295 357 E InputDispatcher: channel 'a6f2a57 com.antutu.ABenchMark/com.antutu.benchmark.activity.ScoreBenchActivity (server)' ~ Channel is unrecoverably broken and will be disposed! +11-01 17:36:58.071 295 357 W InputDispatcher: channel '4c6ad5 com.antutu.ABenchMark/com.antutu.benchmark.activity.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 +11-01 17:36:58.071 295 357 E InputDispatcher: channel '4c6ad5 com.antutu.ABenchMark/com.antutu.benchmark.activity.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed! +11-01 17:36:58.096 295 7566 I ActivityManager: Process com.android.webview:sandboxed_process0 (pid 7366) has died: fore TOP +11-01 17:36:58.096 295 7566 W ActivityManager: Scheduling restart of crashed service com.antutu.ABenchMark/org.chromium.content.app.SandboxedProcessService0 in 1000ms +11-01 17:36:58.096 295 313 W system_server: failed to open /acct/uid_99001/pid_7366/cgroup.procs: No such file or directory +11-01 17:36:58.217 295 7566 D ConnectivityService: ConnectivityService NetworkRequestInfo binderDied(NetworkRequest [ LISTEN id=8, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&FOREGROUND] ], android.os.BinderProxy@b2e1e89) +11-01 17:36:58.221 295 311 W InputDispatcher: Attempted to unregister already unregistered input channel 'a6f2a57 com.antutu.ABenchMark/com.antutu.benchmark.activity.ScoreBenchActivity (server)' +11-01 17:36:58.226 295 7566 D ConnectivityService: ConnectivityService NetworkRequestInfo binderDied(NetworkRequest [ LISTEN id=7, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&FOREGROUND] ], android.os.BinderProxy@6e6ee8e) +11-01 17:36:58.228 295 375 E ConnectivityService: RemoteException caught trying to send a callback msg for NetworkRequest [ LISTEN id=8, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&FOREGROUND] ] +11-01 17:36:58.237 295 375 E ConnectivityService: RemoteException caught trying to send a callback msg for NetworkRequest [ LISTEN id=7, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&FOREGROUND] ] +11-01 17:36:58.242 295 7566 I WindowManager: WIN DEATH: Window{4c6ad5 u0 com.antutu.ABenchMark/com.antutu.benchmark.activity.MainActivity} +11-01 17:36:58.242 295 7566 W InputDispatcher: Attempted to unregister already unregistered input channel '4c6ad5 com.antutu.ABenchMark/com.antutu.benchmark.activity.MainActivity (server)' +11-01 17:36:58.276 295 1316 I ActivityManager: Process com.antutu.ABenchMark (pid 2344) has died: fore TOP +11-01 17:36:58.277 295 1316 W ActivityManager: Service crashed 2 times, stopping: ServiceRecord{e356708 u0 com.antutu.ABenchMark/com.antutu.benchmark.BenchmarkService} +11-01 17:36:58.280 295 1316 W ActivityManager: Force removing ActivityRecord{bc93d06 u0 com.antutu.ABenchMark/com.antutu.benchmark.activity.MainActivity t7}: app died, no saved state +11-01 17:36:58.309 295 1320 W ActivityManager: Ignoring remove of inactive process: ProcessRecord{3af8a9a 0:com.antutu.ABenchMark/u0a58} +11-01 17:36:58.310 295 319 W ActivityManager: setHasOverlayUi called on unknown pid: 2344 +11-01 17:36:58.379 853 950 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:36:58.381 853 950 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:36:58.382 853 950 I OpenGLRenderer: Initialized EGL, version 1.4 +11-01 17:36:58.382 853 950 D OpenGLRenderer: Swap behavior 1 +11-01 17:36:58.382 853 950 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... +11-01 17:36:58.382 853 950 D OpenGLRenderer: Swap behavior 0 +11-01 17:36:58.418 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:36:58.422 295 1701 I vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib/hw/gralloc.am57x.so from the current namespace instead. +11-01 17:36:58.423 295 1701 I OpenGLRenderer: Initialized EGL, version 1.4 +11-01 17:36:58.423 295 1701 D OpenGLRenderer: Swap behavior 1 +11-01 17:36:58.423 295 1701 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... +11-01 17:36:58.423 295 1701 D OpenGLRenderer: Swap behavior 0 +11-01 17:36:58.491 295 343 W AppOps : Finishing op nesting under-run: uid 1000 pkg android code 24 time=0 duration=0 nesting=0 +11-01 17:36:58.898 853 950 W OpenGLRenderer: Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer... +11-01 17:37:01.836 295 395 E TaskPersister: File error accessing recents directory (directory doesn't exist?). diff --git a/automated/android/boottime/boottime.sh b/automated/android/boottime/boottime.sh index 18b8d68..93b6f4d 100755 --- a/automated/android/boottime/boottime.sh +++ b/automated/android/boottime/boottime.sh @@ -6,12 +6,13 @@ BOOT_TIMEOUT="300" OPERATION="COLLECT" COLLECT_NO="1" OUTPUT="$(pwd)/output" +SKIP_INSTALL='true' . ../../lib/sh-test-lib . ../../lib/android-test-lib usage() { - echo "Usage: $0 [-S <skip_install>] [-s <android_serial>] [-t <boot_timeout>] [-o <COLLECT|ANALYZE>] [-n <collect_no>]" 1>&2 + echo "Usage: $0 [-S skip_install <true|false>] [-s <android_serial>] [-t <boot_timeout>] [-o <COLLECT|ANALYZE>] [-n <collect_no>]" 1>&2 exit 1 } diff --git a/automated/android/boottime/boottime.yaml b/automated/android/boottime/boottime.yaml index 14f7154..58f4a3d 100644 --- a/automated/android/boottime/boottime.yaml +++ b/automated/android/boottime/boottime.yaml @@ -18,6 +18,8 @@ metadata: - hi6220-hikey params: + # specify true or false to skip or not the installation of lxc packages + SKIP_INSTALL: "false" # Specify device serial no. when more than one device connected. ANDROID_SERIAL: "" # Specify timeout in seconds for wait_boot_completed. @@ -32,6 +34,6 @@ params: run: steps: - cd ./automated/android/boottime - - ./boottime.sh -s "${ANDROID_SERIAL}" -t "${BOOT_TIMEOUT}" -o "${OPERATION}" -n "${COLLECT_NO}" + - ./boottime.sh -S "${SKIP_INSTALL}" -s "${ANDROID_SERIAL}" -t "${BOOT_TIMEOUT}" -o "${OPERATION}" -n "${COLLECT_NO}" - if [ "${OPERATION}" = "ANALYZE" ]; then ../../utils/upload-to-artifactorial.sh -a "output/boottime.tgz" -u "${URL}" -t "${TOKEN}"; fi - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/android/boottime/device-script.sh b/automated/android/boottime/device-script.sh index ce78a35..d2d74d7 100755 --- a/automated/android/boottime/device-script.sh +++ b/automated/android/boottime/device-script.sh @@ -418,7 +418,7 @@ elif [ "X${OPERATION}" = "XANALYZE" ]; then ## Check if there is any case that the surfaceflinger service ## was started several times - if [ ${count} -eq 0 ]; then + if [ "${count}" -eq 0 ]; then i=0 else i=1 @@ -477,7 +477,7 @@ elif [ "X${OPERATION}" = "XANALYZE" ]; then fi if ${no_checking_problem}; then - if [ ${count} -eq 0 ]; then + if [ "${count}" -eq 0 ]; then i=0 else i=1 diff --git a/automated/android/libc-bench/libc-bench.sh b/automated/android/libc-bench/libc-bench.sh index 594bb28..6397330 100755 --- a/automated/android/libc-bench/libc-bench.sh +++ b/automated/android/libc-bench/libc-bench.sh @@ -60,6 +60,11 @@ parse_log() { done < "${logfile}" } +if ! adb_shell_which "libcbench" && ! adb_shell_which "libcbench64"; then + report_fail "check_cmd_existence" + exit 1 +fi + for test in libcbench libcbench64; do if ! adb_shell_which "${test}"; then continue diff --git a/automated/android/microbenchmarks/microbenchmarks.sh b/automated/android/microbenchmarks/microbenchmarks.sh index 4d8339d..28be5fb 100755 --- a/automated/android/microbenchmarks/microbenchmarks.sh +++ b/automated/android/microbenchmarks/microbenchmarks.sh @@ -1,6 +1,5 @@ #!/bin/sh -x # shellcheck source=/<job-id>-0/secrets -. "${SECRETS_FILE}" export SOURCE_PROJECT_NAME export SOURCE_BUILD_NUMBER export SOURCE_BUILD_URL @@ -12,6 +11,11 @@ export SOURCE_GERRIT_CHANGE_ID export ART_URL set +x +lava_test_dir="$(find /lava-* -maxdepth 0 -type d -regex '/lava-[0-9]+' 2>/dev/null | sort | tail -1)" +if test -f "${lava_test_dir}/secrets" && grep -q "ART_TOKEN" "${lava_test_dir}/secrets"; then + # shellcheck disable=SC1090 + . "${lava_test_dir}/secrets" +fi export ART_TOKEN set -x @@ -49,7 +53,8 @@ wget -q "${SNAPSHOTS_URL}"/"${BUILD_TARBALL}" [ -z "$HOME" ] && export HOME="/" git config --global user.email "ci_notify@linaro.org" git config --global user.name "Linaro CI" -tar -xvf "${BUILD_TARBALL}" +git config --global --add color.ui auto +tar -xf "${BUILD_TARBALL}" export PATH=${PWD}/out/host/linux-x86/bin/:${PATH} # FIXME removing latest adb from build since it is not working well from container @@ -58,9 +63,13 @@ initialize_adb adb_root curl https://storage.googleapis.com/git-repo-downloads/repo > "${PWD}"/out/host/linux-x86/bin/repo chmod a+x "${PWD}"/out/host/linux-x86/bin/repo -repo init -u https://android.googlesource.com/platform/manifest +repo init -q -u https://android.googlesource.com/platform/manifest cp ../manifest.xml .repo/manifest.xml -repo sync -j16 -c +repo sync -j16 -c -q --no-tags +which lava-test-case && lava-test-case "test-progress" --result pass +sed -i "s| /data/local/tmp/system| /data/local/tmp/system > /dev/null|g" scripts/benchmarks/benchmarks_run_target.sh +sed -i "s| /data/art-test| /data/art-test > /dev/null|g" scripts/benchmarks/benchmarks_run_target.sh +sed -i "s|mode \"\$1\"|mode \"\$1\" --noverbose|g" scripts/benchmarks/benchmarks_run_target.sh export OUT=${PWD}/out/target/product/${LUNCH_TARGET}/ ./scripts/benchmarks/benchmarks_run_target.sh --skip-build true --iterations "${ITERATIONS}" --mode "${MODE}" git clone https://git.linaro.org/people/vishal.bhoj/pbr.git; mkdir -p pbr/artifacts/ diff --git a/automated/android/microbenchmarks/microbenchmarks.yaml b/automated/android/microbenchmarks/microbenchmarks.yaml index 39ff292..af58902 100644 --- a/automated/android/microbenchmarks/microbenchmarks.yaml +++ b/automated/android/microbenchmarks/microbenchmarks.yaml @@ -35,7 +35,6 @@ params: run: steps: - - export SECRETS_FILE=${PWD}/../../../secrets - cd ./automated/android/microbenchmarks - . ./microbenchmarks.sh -s false - tar -cJf artifacts.txz artifacts/ diff --git a/automated/android/monkey.bak/monkey.sh b/automated/android/monkey.bak/monkey.sh new file mode 100755 index 0000000..c7707d2 --- /dev/null +++ b/automated/android/monkey.bak/monkey.sh @@ -0,0 +1,93 @@ +#!/bin/sh +# shellcheck disable=SC1090 + +TEST_DIR=$(dirname "$(realpath "$0")") +HOST_OUTPUT="${TEST_DIR}/output" +LOGFILE="${HOST_OUTPUT}/monkey-test-output.txt" +BLACKLIST_FILE="${HOST_OUTPUT}/blacklist.txt" +RESULT_FILE="${HOST_OUTPUT}/result.txt" +export RESULT_FILE + +usage() { + echo "Usage: $0 [-s <android_serial>] [-t <boot_timeout>] [-p <monkey_params>] [-b <blacklist>] [-e <event_count>] [-t <throttle>]" 1>&2 + echo "You can input no parameter and use the default value:" 1>&2 + echo "black_list: setting" 1>&2 + echo "monkey_params: --ignore-timeouts --ignore-security-exceptions --kill-process-after-error -v -v -v" 1>&2 + echo "event_count: 500" 1>&2 + echo "throttle: 200" 1>&2 + exit 1 +} + +# Some default parameters +ANDROID_SERIAL="" +BOOT_TIMEOUT="300" +BLACKLIST="" +MONKEY_PARAMS="-s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20" +EVENT_COUNT="1000" +# default as it is in monkey command +THROTTLE="0" + +while getopts ":s:t:b:p:e:T:h" opt; do + case "$opt" in + s) ANDROID_SERIAL="${OPTARG}" ;; + t) BOOT_TIMEOUT="${OPTARG}" ;; + b) BLACKLIST="${OPTARG}" ;; + p) MONKEY_PARAMS="${OPTARG}" ;; + e) EVENT_COUNT="${OPTARG}" ;; + T) THROTTLE="${OPTARG}" ;; + *) usage ;; + esac +done + +. "${TEST_DIR}/../../lib/sh-test-lib" +. "${TEST_DIR}/../../lib/android-test-lib" + +initialize_adb +wait_boot_completed "${BOOT_TIMEOUT}" +create_out_dir "${HOST_OUTPUT}" + +if [ -n "$BLACKLIST" ]; then + # Read blacklist and write to blacklist.txt + arr=$(echo "$BLACKLIST" | tr "," " ") + info_msg "--- blacklist ---" + for s in $arr + do + echo "$s" + echo "$s" >> "$BLACKLIST_FILE" + done + + adb_push "$BLACKLIST_FILE" "/data/local/tmp/" + BLACKLIST_OPT="--pkg-blacklist-file /data/local/tmp/blacklist.txt" +else + BLACKLIST_OPT="" +fi + +if [ -n "$THROTTLE" ]; then + THROTTLE_OPT="--throttle ${THROTTLE}" +else + THROTTLE_OPT="" +fi + +info_msg "device-${ANDROID_SERIAL}: About to run monkey..." +adb shell monkey "${MONKEY_PARAMS}" ${BLACKLIST_OPT} ${THROTTLE_OPT} "${EVENT_COUNT}" 2>&1 \ + | tee "${LOGFILE}" + +# Parse test log. +grep "Events injected: ${EVENT_COUNT}" "${LOGFILE}" +check_return "monkey-test-run" + +if grep -q "Network stats: elapsed time=" "${LOGFILE}"; then + grep "Network stats: elapsed time=" "${LOGFILE}" \ + | awk -F'=' '{print $2}' \ + | awk '{print $1}' \ + | sed 's/ms//g' \ + | awk '{printf("monkey-network-stats pass %s ms\n", $1)}' \ + | tee -a "${RESULT_FILE}" +else + report_fail "monkey-network-stats" +fi + +if ! grep "Events injected: ${EVENT_COUNT}" "${LOGFILE}"; then + ## output the logcat information for debug when failed to run inject all the events + adb logcat -d -b all +fi diff --git a/automated/android/monkey.bak/monkey.yaml b/automated/android/monkey.bak/monkey.yaml new file mode 100755 index 0000000..42bd0c1 --- /dev/null +++ b/automated/android/monkey.bak/monkey.yaml @@ -0,0 +1,42 @@ +metadata: + name: monkey + format: "Lava-Test-Shell Test Definition 1.0" + description: "Monkey performs stress testing for stability using monkey + command which generates pesudo-random streams of user events + such as clicks, touches, or gestures as well as some system + level events." + maintainer: + - erin.liu@linaro.org + - chase.qi@linaro.org + os: + - android + devices: + - hi6220-hikey + - apq8016-sbc + - juno + scope: + - functional + - performance + environment: + - lava-test-shell + - local-test-runner + +params: + # Specify device serial no. when more than one device connected. + ANDROID_SERIAL: "" + # Specify timeout in seconds for wait_boot_completed. + BOOT_TIMEOUT: "300" + # Blacklist packages known to crash. + BLACKLIST: "" + # Basic monkey comand parameters. + MONKEY_PARAMS: "-s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20" + # The number of monkey event. + EVENT_COUNT: "1000" + # The interval of monkey event. + THROTTLE: "0" + +run: + steps: + - cd ./automated/android/monkey + - ./monkey.sh -s "${ANDROID_SERIAL}" -t "${BOOT_TIMEOUT}" -b "${BLACKLIST}" -p "${MONKEY_PARAMS}" -e "${EVENT_COUNT}" -T "${THROTTLE}" + - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/android/monkey/monkey.sh b/automated/android/monkey/monkey.sh index 80130cd..b865f8f 100755 --- a/automated/android/monkey/monkey.sh +++ b/automated/android/monkey/monkey.sh @@ -21,15 +21,16 @@ usage() { # Some default parameters ANDROID_SERIAL="" BOOT_TIMEOUT="300" -BLACKLIST="com.android.development_settings com.android.music com.android.deskclock" +BLACKLIST="" MONKEY_PARAMS="-s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20" EVENT_COUNT="1000" -THROTTLE="200" +# default as it is in monkey command +THROTTLE="0" while getopts ":s:t:b:p:e:T:h" opt; do case "$opt" in - s) ANDROID_SERIAL="${OPTARG}" ;; - t) BOOT_TIMEOUT="${OPTARG}" ;; + s) ANDROID_SERIAL="${OPTARG}" ;; + t) BOOT_TIMEOUT="${OPTARG}" ;; b) BLACKLIST="${OPTARG}" ;; p) MONKEY_PARAMS="${OPTARG}" ;; e) EVENT_COUNT="${OPTARG}" ;; @@ -45,20 +46,30 @@ initialize_adb wait_boot_completed "${BOOT_TIMEOUT}" create_out_dir "${HOST_OUTPUT}" -# Read blacklist and write to blacklist.txt -arr=$(echo "$BLACKLIST" | tr "," " ") -info_msg "--- blacklist ---" -for s in $arr -do - echo "$s" - echo "$s" >> "$BLACKLIST_FILE" -done +if [ -n "$BLACKLIST" ]; then + # Read blacklist and write to blacklist.txt + arr=$(echo "$BLACKLIST" | tr "," " ") + info_msg "--- blacklist ---" + for s in $arr + do + echo "$s" + echo "$s" >> "$BLACKLIST_FILE" + done + + adb_push "$BLACKLIST_FILE" "/data/local/tmp/" + BLACKLIST_OPT="--pkg-blacklist-file /data/local/tmp/blacklist.txt" +else + BLACKLIST_OPT="" +fi -adb_push "$BLACKLIST_FILE" "/data/local/tmp/" -BLACKLIST="/data/local/tmp/blacklist.txt" +if [ -n "$THROTTLE" ]; then + THROTTLE_OPT="--throttle ${THROTTLE}" +else + THROTTLE_OPT="" +fi info_msg "device-${ANDROID_SERIAL}: About to run monkey..." -adb shell monkey "${MONKEY_PARAMS}" --pkg-blacklist-file "${BLACKLIST}" --throttle "${THROTTLE}" "${EVENT_COUNT}" 2>&1 \ +adb shell monkey "${MONKEY_PARAMS}" ${BLACKLIST_OPT} ${THROTTLE_OPT} "${EVENT_COUNT}" 2>&1 \ | tee "${LOGFILE}" # Parse test log. diff --git a/automated/android/monkey/monkey.yaml b/automated/android/monkey/monkey.yaml index d5aab2c..42bd0c1 100755 --- a/automated/android/monkey/monkey.yaml +++ b/automated/android/monkey/monkey.yaml @@ -27,13 +27,13 @@ params: # Specify timeout in seconds for wait_boot_completed. BOOT_TIMEOUT: "300" # Blacklist packages known to crash. - BLACKLIST: "com.android.development_settings com.android.music com.android.deskclock" + BLACKLIST: "" # Basic monkey comand parameters. MONKEY_PARAMS: "-s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20" # The number of monkey event. EVENT_COUNT: "1000" # The interval of monkey event. - THROTTLE: "200" + THROTTLE: "0" run: steps: diff --git a/automated/android/stringbench/stringbench.sh b/automated/android/stringbench/stringbench.sh index 6d4f821..4512884 100755 --- a/automated/android/stringbench/stringbench.sh +++ b/automated/android/stringbench/stringbench.sh @@ -45,6 +45,11 @@ parser() { done < "${logfile}" } +if ! adb_shell_which "stringbench" && ! adb_shell_which "stringbench64"; then + report_fail "check_cmd_existence" + exit 1 +fi + for test in stringbench stringbench64; do info_msg "device-${ANDROID_SERIAL}: About to run ${test}" if ! adb_shell_which "${test}"; then diff --git a/automated/android/tjbench/nightshot_iso_100.ppm b/automated/android/tjbench/nightshot_iso_100.ppm Binary files differnew file mode 100644 index 0000000..97b7f90 --- /dev/null +++ b/automated/android/tjbench/nightshot_iso_100.ppm diff --git a/automated/android/tjbench/tjbench.sh b/automated/android/tjbench/tjbench.sh index ba56b4d..255291c 100755 --- a/automated/android/tjbench/tjbench.sh +++ b/automated/android/tjbench/tjbench.sh @@ -42,7 +42,7 @@ parse_log() { '{ gsub(":", "", $3); printf("%s_%s_comp_perf pass %s Mpixels/sec\n", prefix, $3, $7); - printf("%s_%s_comp_ratio pass %s %\n", prefix, $3, $8); + printf("%s_%s_comp_ratio pass %s percent\n", prefix, $3, $8); printf("%s_%s_decomp_perf pass %s Mpixels/sec\n", prefix, $3, $9); }' \ | tee -a "${RESULT_FILE}" diff --git a/automated/android/workload-automation/aep-energy-config.sh b/automated/android/workload-automation/aep-energy-config.sh new file mode 100755 index 0000000..79ce07b --- /dev/null +++ b/automated/android/workload-automation/aep-energy-config.sh @@ -0,0 +1,44 @@ +#!/bin/sh -ex +# shellcheck disable=SC1090 + +TEST_DIR=$(dirname "$(realpath "$0")") +OUTPUT="${TEST_DIR}/output" +SKIP_INSTALL="false" +AEP_CONFIG_REPOSITORY="https://git.linaro.org/power/energy-probe-ext.git" +AEP_CONFIG_REF="master" +AEP_CONFIG_TARGET_PATH="/root/energy-probe-ext" + +usage() { + echo "Usage: $0 [-t <aep_config_repository_ref>] [-r <aep_config_repository>] [-p <aep_config_target_path>]" 1>&2 + exit 1 +} + +while getopts ":t:r:p:" opt; do + case "${opt}" in + t) AEP_CONFIG_REF="${OPTARG}" ;; + r) AEP_CONFIG_REPOSITORY="${OPTARG}" ;; + p) AEP_CONFIG_TARGET_PATH="${OPTARG}" ;; + *) usage ;; + esac +done + +. "${TEST_DIR}/../../lib/sh-test-lib" + +! check_root && error_msg "Please run this test as root." +cd "${TEST_DIR}" +create_out_dir "${OUTPUT}" +RESULT_FILE="${OUTPUT}/result.txt" +export RESULT_FILE + +if [ "${SKIP_INSTALL}" = "true" ] || [ "${SKIP_INSTALL}" = "True" ]; then + info_msg "Dependency installation skipped" +else + PKGS="git" + install_deps "${PKGS}" +fi +create_out_dir "${AEP_CONFIG_TARGET_PATH}" +git clone "${AEP_CONFIG_REPOSITORY}" energy-probe-ext +cd energy-probe-ext +git checkout "${AEP_CONFIG_REF}" +cp -r ./* "${AEP_CONFIG_TARGET_PATH}" +report_pass "AEP config installed" diff --git a/automated/android/workload-automation/aep-install.sh b/automated/android/workload-automation/aep-install.sh new file mode 100755 index 0000000..5cb4104 --- /dev/null +++ b/automated/android/workload-automation/aep-install.sh @@ -0,0 +1,44 @@ +#!/bin/sh -ex +# shellcheck disable=SC1090 + +TEST_DIR=$(dirname "$(realpath "$0")") +OUTPUT="${TEST_DIR}/output" +SKIP_INSTALL="false" +AEP_REPOSITORY="https://git.linaro.org/tools/arm-probe.git" +AEP_REF="master" + +usage() { + echo "Usage: $0 [-t <aep_repository_ref>] [-r <aep_repository>]" 1>&2 + exit 1 +} + +while getopts ":t:r:" opt; do + case "${opt}" in + t) AEP_REF="${OPTARG}" ;; + r) AEP_REPOSITORY="${OPTARG}" ;; + *) usage ;; + esac +done + +. "${TEST_DIR}/../../lib/sh-test-lib" + +! check_root && error_msg "Please run this test as root." +cd "${TEST_DIR}" +create_out_dir "${OUTPUT}" +RESULT_FILE="${OUTPUT}/result.txt" +export RESULT_FILE + +if [ "${SKIP_INSTALL}" = "true" ] || [ "${SKIP_INSTALL}" = "True" ]; then + info_msg "Dependency installation skipped" +else + PKGS="git autoconf libtool cmake zlib1g-dev libssl-dev python" + install_deps "${PKGS}" +fi +git clone "${AEP_REPOSITORY}" arm-probe +cd arm-probe +git checkout "${AEP_REF}" +./autogen.sh +./configure --prefix=/usr +make +make install +report_pass "AEP installed" diff --git a/automated/android/workload-automation/aep-install.yaml b/automated/android/workload-automation/aep-install.yaml new file mode 100644 index 0000000..a8ed990 --- /dev/null +++ b/automated/android/workload-automation/aep-install.yaml @@ -0,0 +1,30 @@ +metadata: + format: Lava-Test Test Definition 1.0 + name: arm-probe-install + description: "Install arm-probe tool on devices that have ARM + energy probes connected to them. + It also installs configuration files for the probe" + maintainer: + - lisa.nguyen@linaro.org + - milosz.wasilewski@linaro.org + os: + - ubuntu + devices: + - hi6220-hikey + - hi960-hikey + - juno + +params: + AEP_REPOSITORY: https://git.linaro.org/tools/arm-probe.git + AEP_REF: master + AEP_CONFIG_REPOSITORY: https://git.linaro.org/power/energy-probe-ext.git + AEP_CONFIG_REF: master + # path should be absolute + AEP_CONFIG_TARGET_PATH: /root/energy-probe-ext + +run: + steps: + - cd ./automated/android/workload-automation + - ./aep-install.sh -r "${AEP_REPOSITORY}" -t "${AEP_REF}" + - ./aep-energy-config.sh -r "${AEP_CONFIG_REPOSITORY}" -t "${AEP_CONFIG_REF}" -p "${AEP_CONFIG_TARGET_PATH}" + - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/android/workload-automation/workload-automation.sh b/automated/android/workload-automation/workload-automation.sh index 327b4db..eac7ad0 100755 --- a/automated/android/workload-automation/workload-automation.sh +++ b/automated/android/workload-automation/workload-automation.sh @@ -3,26 +3,27 @@ TEST_DIR=$(dirname "$(realpath "$0")") OUTPUT="${TEST_DIR}/output" -RESULT_FILE="${OUTPUT}/result.txt" -export RESULT_FILE SKIP_INSTALL="false" ANDROID_SERIAL="" BOOT_TIMEOUT="300" - +PROBE="" WA_TAG="master" +WA_GIT_REPO="https://github.com/ARM-software/workload-automation" WA_TEMPLATES_REPO="https://git.linaro.org/qa/wa2-lava.git" TEMPLATES_BRANCH="wa-templates" CONFIG="config/generic-android.py" AGENDA="agenda/generic-linpack.yaml" BUILD_TOOLS_URL="http://testdata.validation.linaro.org/apks/workload-automation/build-tools.tar.gz" WA_HOME_URL="http://testdata.validation.linaro.org/apks/workload-automation/workload_automation_home.tar.gz" +DEVLIB_REPO="https://github.com/ARM-software/devlib.git" +DEVLIB_TAG="master" usage() { - echo "Usage: $0 [-s <true|false>] [-S <android_serial>] [-t <boot_timeout>] [-T <wa_tag>] [-r <wa_templates_repo>] [-g <templates_branch>] [-c <config>] [-a <agenda>] [-b <build_tools_url>] [-w <wa_home_url>]" 1>&2 + echo "Usage: $0 [-s <true|false>] [-S <android_serial>] [-t <boot_timeout>] [-T <wa_tag>] [-r <wa_templates_repo>] [-g <templates_branch>] [-c <config>] [-a <agenda>] [-b <build_tools_url>] [-w <wa_home_url>] [-p <aep_path>] [-o <output_dir>] [-R <wa_git_repository>] [-d <devlib_repo>] [-D <devlib_tag>]" 1>&2 exit 1 } -while getopts ":s:S:t:T:r:g:c:a:b:w:" opt; do +while getopts ":s:S:t:T:r:g:c:a:b:w:p:o:R:D:d:" opt; do case "${opt}" in s) SKIP_INSTALL="${OPTARG}" ;; S) ANDROID_SERIAL="${OPTARG}" ;; @@ -34,6 +35,11 @@ while getopts ":s:S:t:T:r:g:c:a:b:w:" opt; do a) AGENDA="${OPTARG}" ;; b) BUILD_TOOLS_URL="${OPTARG}" ;; w) WA_HOME_URL="${OPTARG}" ;; + R) WA_GIT_REPO="${OPTARG}" ;; + p) PROBE="${OPTARG}" ;; + o) NEW_OUTPUT="${OPTARG}" ;; + D) DEVLIB_TAG="${OPTARG}" ;; + d) DEVLIB_REPO="${OPTARG}" ;; *) usage ;; esac done @@ -42,26 +48,42 @@ done . "${TEST_DIR}/../../lib/android-test-lib" cd "${TEST_DIR}" +if [ ! -z "${NEW_OUTPUT}" ]; then + OUTPUT="${NEW_OUTPUT}" +fi create_out_dir "${OUTPUT}" +RESULT_FILE="${OUTPUT}/result.txt" +export RESULT_FILE if [ "${SKIP_INSTALL}" = "true" ] || [ "${SKIP_INSTALL}" = "True" ]; then info_msg "WA installation skipped" else - PKGS="git wget zip tar xz-utils python python-yaml python-lxml python-setuptools python-numpy python-colorama python-pip sqlite3 libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386 aapt android-tools-adb time sysstat python-jinja2 curl" + PKGS="git wget zip tar xz-utils python python-yaml python-lxml python-setuptools python-numpy python-colorama python-pip sqlite3 lib32stdc++6 lib32z1 lib32gcc1 lib32ncurses5 aapt time sysstat python-jinja2 curl" ! check_root && error_msg "Please run this test as root." dpkg --add-architecture i386 + apt-get update -q install_deps "${PKGS}" - pip install --upgrade pip && hash -r - pip install --upgrade setuptools - pip install pexpect pyserial pyyaml docutils python-dateutil + # only install adb if it's not already available + which adb || install_deps adb + pip install --upgrade --quiet pip && hash -r + pip install --upgrade --quiet setuptools + pip install --quiet pexpect pyserial pyyaml docutils python-dateutil + info_msg "Installing devlib..." + rm -rf devlib + git clone "${DEVLIB_REPO}" devlib + ( + cd devlib + git checkout "${DEVLIB_TAG}" + ) + pip2 install --quiet ./devlib info_msg "Installing workload-automation..." rm -rf workload-automation - git clone https://github.com/ARM-software/workload-automation + git clone "${WA_GIT_REPO}" workload-automation ( cd workload-automation - git checkout -b test-branch "${WA_TAG}" + git checkout "${WA_TAG}" ) - pip2 install ./workload-automation + pip2 install --quiet ./workload-automation export PATH=$PATH:/usr/local/bin which wa @@ -77,9 +99,11 @@ else ( cd /root/ # Copy workload_automation_home.tar.gz to /root for local run. - test -f workload_automation_home.tar.gz || wget -S --progress=dot:giga "${WA_HOME_URL}" + test -f workload_automation_home.tar.gz || wget -S --progress=dot:giga "${WA_HOME_URL}" -O workload_automation_home.tar.gz tar -xf workload_automation_home.tar.gz ) + wa --version + wa list instruments fi initialize_adb @@ -102,6 +126,29 @@ if ! awk '/result_processors = [[]/,/[]]/' ./config.py | grep -q 'csv'; then sed -i "s/result_processors = [[]/result_processors = [\n 'csv',/" ./config.py fi +if [ -z "${PROBE}" ]; then + # LAVA supports one probe per device for now. + PROBE=$(find /dev/serial/by-id/ -name "usb-NXP_SEMICOND_ARM_Energy_Probe*" | head -n 1) +fi + +# If AEP exists, find the correct AEP config file and update the AEP config path in the agenda. +if [ -n "${PROBE}" ]; then +( + cd "${WA_EXTENSION_PATHS}" + # find config file with matching probe ID + CONFIG_FILE=$(basename "$(grep -rl "${PROBE}" .)") + cd - + # update AEP config path on agenda + sed -i "s|\$WA_EXTENSION_PATHS/*.*|${WA_EXTENSION_PATHS}/${CONFIG_FILE}\"|" agenda.yaml + sed -i "s|\$WA_PLUGIN_PATHS/*.*|${WA_EXTENSION_PATHS}/${CONFIG_FILE}\"|" agenda.yaml + # update AEP config path on config.yaml + if [ -f /root/.workload_automation/config.yaml ]; then + sed -i "s|\$WA_EXTENSION_PATHS/*.*|${WA_EXTENSION_PATHS}/${CONFIG_FILE}\"|" /root/.workload_automation/config.yaml + sed -i "s|\$WA_PLUGIN_PATHS/*.*|${WA_EXTENSION_PATHS}/${CONFIG_FILE}\"|" /root/.workload_automation/config.yaml + fi +) +fi + info_msg "device-${ANDROID_SERIAL}: About to run WA with ${AGENDA}..." wa run ./agenda.yaml -v -f -d "${OUTPUT}/wa" -c ./config.py || report_fail "wa-test-run" diff --git a/automated/android/workload-automation/workload-automation.yaml b/automated/android/workload-automation/workload-automation.yaml index ccecb07..f706299 100644 --- a/automated/android/workload-automation/workload-automation.yaml +++ b/automated/android/workload-automation/workload-automation.yaml @@ -23,12 +23,22 @@ params: ANDROID_SERIAL: "" # Params for WA test run. WA_TAG: "master" + WA_GIT_REPO: "https://github.com/ARM-software/workload-automation" + # Install devlib, which is WA depenency + DEVLIB_REPO: "https://github.com/ARM-software/devlib.git" + DEVLIB_TAG: "master" BUILD_TOOLS_URL: "http://testdata.validation.linaro.org/apks/workload-automation/build-tools.tar.gz" WA_HOME_URL: "http://testdata.validation.linaro.org/apks/workload-automation/workload_automation_home.tar.gz" WA_TEMPLATES_REPO: "https://git.linaro.org/qa/wa2-lava.git" TEMPLATES_BRANCH: "wa-templates" CONFIG: "config/generic-android.py" AGENDA: "agenda/android-linpack.yaml" + # allow extra extenstions for WA + WA_EXTENSION_PATHS: "" + PROBE: "" + # directory where the WA results are stored + # defaults to {TEST_DIR}/output + OUTPUT: "" # Specify url and token for publishing artifacts. # For safety reasons, please set 'ARTIFACTORIAL_TOKEN' variable in job definition with # 'secrets' dictionary, and set job visibility to personal or group. @@ -38,11 +48,16 @@ params: run: steps: + - export WA_EXTENSION_PATHS=$WA_EXTENSION_PATHS + - export WA_PLUGIN_PATHS=$WA_EXTENSION_PATHS - cd ./automated/android/workload-automation + - echo ${OUTPUT} + - if [ -z "${OUTPUT}" ]; then OUTPUT="./output"; fi + - echo ${OUTPUT} # Test run. - - ./workload-automation.sh -s "${SKIP_INSTALL}" -t "${BOOT_TIMEOUT}" -S "${ANDROID_SERIAL}" -T "${WA_TAG}" -r "${WA_TEMPLATES_REPO}" -g "${TEMPLATES_BRANCH}" -c "${CONFIG}" -a "${AGENDA}" -b "${BUILD_TOOLS_URL}" -w "${WA_HOME_URL}" + - ./workload-automation.sh -s "${SKIP_INSTALL}" -t "${BOOT_TIMEOUT}" -S "${ANDROID_SERIAL}" -T "${WA_TAG}" -r "${WA_TEMPLATES_REPO}" -g "${TEMPLATES_BRANCH}" -c "${CONFIG}" -a "${AGENDA}" -b "${BUILD_TOOLS_URL}" -w "${WA_HOME_URL}" -p "${PROBE}" -R "${WA_GIT_REPO}" -d "${DEVLIB_REPO}" -D "${DEVLIB_TAG}" -o "${OUTPUT}" # Upload test output to artifactorial. - - tar caf "wa-output.tar.xz" "./output" + - tar caf "wa-output.tar.xz" "${OUTPUT}" - ../../utils/upload-to-artifactorial.sh -a "wa-output.tar.xz" -u "${ARTIFACTORIAL_URL}" -t "${ARTIFACTORIAL_TOKEN}" # Send test result to LAVA. - - ../../utils/send-to-lava.sh "./output/result.txt" + - ../../utils/send-to-lava.sh "${OUTPUT}/result.txt" diff --git a/automated/bin/arm64/skipgen b/automated/bin/arm64/skipgen Binary files differnew file mode 100755 index 0000000..6b5e300 --- /dev/null +++ b/automated/bin/arm64/skipgen diff --git a/automated/bin/armeabi/skipgen b/automated/bin/armeabi/skipgen Binary files differnew file mode 100755 index 0000000..1e94bdd --- /dev/null +++ b/automated/bin/armeabi/skipgen diff --git a/automated/bin/fetch_skipgen.sh b/automated/bin/fetch_skipgen.sh new file mode 100755 index 0000000..3a13b38 --- /dev/null +++ b/automated/bin/fetch_skipgen.sh @@ -0,0 +1,50 @@ +#!/bin/sh +set -e + +# Retrieve a given version of skipgen from +# https://github.com/Linaro/skipgen/releases and copy to the +# arm64/armeabi/x86_64 directories. + +if [ -z "$1" ]; then + echo "Usage: ${0} <skipgen_version_number>" + echo "For example:" + echo " ${0} 0.2.1" + echo "" + echo "Be sure to not include the leaving 'v'." + echo "" + exit 1 +fi + +SKIPGEN_VERSION=$1 +ROOT_PATH=$(dirname "$0") +ARCHS="arm64 armeabi x86_64" + +for arch in ${ARCHS}; do + + # Translate test-definition arch names to skipgen arch names + skipgen_arch="" + case ${arch} in + arm64) + skipgen_arch="arm64" + ;; + armeabi) + skipgen_arch="armv7" + ;; + x86_64) + skipgen_arch="amd64" + ;; + *) + echo "Unknown architecture ${arch}" + exit 1 + ;; + esac + + # Fetch tar file, save in /tmp + wget -O "/tmp/skipgen_${SKIPGEN_VERSION}_linux_${skipgen_arch}.tar.gz" \ + "https://github.com/Linaro/skipgen/releases/download/v${SKIPGEN_VERSION}/skipgen_${SKIPGEN_VERSION}_linux_${skipgen_arch}.tar.gz" + # Extract skipgen binary from tar, save in the local arch folder + tar xvzf "/tmp/skipgen_${SKIPGEN_VERSION}_linux_${skipgen_arch}.tar.gz" -C "${ROOT_PATH}/${arch}/" skipgen + # Remove tmp file + rm -f "/tmp/skipgen_${SKIPGEN_VERSION}_linux_${skipgen_arch}.tar.gz" + +done diff --git a/automated/bin/x86_64/skipgen b/automated/bin/x86_64/skipgen Binary files differnew file mode 100755 index 0000000..1e4cb7c --- /dev/null +++ b/automated/bin/x86_64/skipgen diff --git a/automated/lib/android-test-lib b/automated/lib/android-test-lib index 087256c..bad964f 100755 --- a/automated/lib/android-test-lib +++ b/automated/lib/android-test-lib @@ -23,8 +23,13 @@ adb_debug_info() { else info_msg "usbutils not installed, unable to get device information with 'lsusb'." info_msg "Listing 'find /dev/bus/usb' output directly..." - find /dev/bus/usb + # avoid returning 1 when 'find' doesn't work + find /dev/bus/usb || true fi + info_msg "===== list fastboot devices start =========" + fastboot devices + info_msg "===== list fastboot devices end =========" + info_msg "===== default ANDROID_SERIAL=${ANDROID_SERIAL} =========" } initialize_adb() { @@ -32,7 +37,7 @@ initialize_adb() { set -x adb_debug_info adb start-server - timeout 600 adb wait-for-device || error_msg "Device NOT found!" + timeout 600 adb wait-for-device || error_fatal "Device NOT found!" adb devices if [ -z "${ANDROID_SERIAL}" ]; then @@ -59,7 +64,7 @@ initialize_adb() { adb_root() { if [ "$(adb shell whoami)" = "root" ]; then - info_msg "DUT already has adbd running as root" + echo "DUT already has adbd running as root" else adb root timeout 600 adb wait-for-device || error_msg "Device NOT found!" @@ -226,3 +231,28 @@ parse_common_args() { esac done } + +# Try to find the WIFI AP info and connect to it +# depends on WIFI AP information specified by lava job like following: +# secrets: +# AP_SSID: "${AP_SSID}" +# AP_KEY: "${AP_KEY}" +adb_join_wifi() { + AP_SSID=$1 + AP_KEY=$2 + if [ -z "${AP_SSID}" ] || [ -z "${AP_KEY}" ]; then + # Try to find the WIFI AP information specified by the job definition if not specified via command line + lava_test_dir="$(find /lava-* -maxdepth 0 -type d -regex '/lava-[0-9]+' 2>/dev/null | sort | tail -1)" + if test -f "${lava_test_dir}/secrets"; then + # shellcheck disable=SC1090 + . "${lava_test_dir}/secrets" + fi + fi + + # Try to connect to wifi if found the WIFI AP information + if [ ! -z "${AP_SSID}" ] && [ ! -z "${AP_KEY}" ]; then + wget http://testdata.validation.linaro.org/apks/wifi/wifi.apk + adb install wifi.apk + adb shell am start -n com.steinwurf.adbjoinwifi/.MainActivity -e ssid "${AP_SSID}" -e password_type WPA -e password "${AP_KEY}" + fi +} diff --git a/automated/lib/py_test_lib.pyc b/automated/lib/py_test_lib.pyc Binary files differnew file mode 100644 index 0000000..c473eff --- /dev/null +++ b/automated/lib/py_test_lib.pyc diff --git a/automated/lib/sh-test-lib b/automated/lib/sh-test-lib index ed0d96e..1e02795 100755 --- a/automated/lib/sh-test-lib +++ b/automated/lib/sh-test-lib @@ -3,6 +3,17 @@ LANG=C export LANG +error_fatal() { + msg="$1" + [ -z "${msg}" ] && msg="Unknown error" + if which lava-test-raise;then + lava-test-raise "${msg}" + else + printf "FATAL ERROR: %s\n" "${msg}" >&2 + fi + exit 1 +} + error_msg() { msg="$1" [ -z "${msg}" ] && msg="Unknown error" @@ -146,7 +157,7 @@ detect_abi() { case "${abi}" in armv7|armv7l|armv7el|armv7lh) abi="armeabi" ;; arm64|armv8|arm64-v8a|aarch64) abi="arm64" ;; - x86_64) abi="x86" ;; + x86_64) abi="x86_64" ;; *) error_msg "Unsupported architecture: ${abi}" ;; esac } @@ -193,8 +204,13 @@ install_deps() { dist_name case "${dist}" in debian|ubuntu) - # Use the default answers for all questions. - DEBIAN_FRONTEND=noninteractive apt-get update -q -y + last_apt_time=/tmp/apt-get-updated.last + apt_cache_time=21600 # 6 hours + # Only run apt-get update if it hasn't been run in $apt_cache_time seconds + if [ ! -e ${last_apt_time} ] || \ + [ "$(stat --format=%Y ${last_apt_time})" -lt $(( $(date +%s) - apt_cache_time )) ]; then + DEBIAN_FRONTEND=noninteractive apt-get update -q -y && touch ${last_apt_time} + fi # shellcheck disable=SC2086 DEBIAN_FRONTEND=noninteractive apt-get install -q -y ${pkgs} ;; @@ -252,7 +268,7 @@ validate_check_sum() { convert_to_mb() { [ "$#" -ne 2 ] && error_msg "Usage: convert_to_mb value units" - if ! echo "$1" | egrep -q "^[0-9.]+$"; then + if ! echo "$1" | grep -E -q "^[0-9.]+$"; then error_msg "The first argument isn't a number" fi value="$1" @@ -340,3 +356,28 @@ create_out_dir() { mkdir -p "${OUTPUT}" [ -d "${OUTPUT}" ] || error_msg "Could not create output directory ${OUTPUT}" } + +generate_skipfile() { + # Generate a skipfile and set the SKIPFILE variable based on SKIPFILE_YAML, + # BOARD, BRANCH, and ENVIRONMENT. + # + # In: + # SKIPFILE_YAML: (required) skipgen/yaml formatted skipfile + # SKIPFILE_PATH: (required) destination file for generated skipfile + # BOARD: (optional) board name to pass to skipgen + # BRANCH: (optional) branch name to pass to skipgen + # ENVIRONMENT: (optional) environment name to pass to skipgen + # + info_msg "Generating a skipfile based on ${SKIPFILE_YAML}" + detect_abi + SKIPGEN_ARGS="" + test -n "${BOARD}" && SKIPGEN_ARGS="${SKIPGEN_ARGS} --board ${BOARD}" + test -n "${BRANCH}" && SKIPGEN_ARGS="${SKIPGEN_ARGS} --branch ${BRANCH}" + test -n "${ENVIRONMENT}" && SKIPGEN_ARGS="${SKIPGEN_ARGS} --environment ${ENVIRONMENT}" + # shellcheck disable=SC2086 + ../../bin/${abi}/skipgen ${SKIPGEN_ARGS} "${SKIPFILE_YAML}" > "${SKIPFILE_PATH}" + test $? -eq 0 || error_msg "skipgen failed to generate a skipfile" + info_msg "Using the following generated skipfile contents (until EOF):" + cat "${SKIPFILE_PATH}" + info_msg "EOF" +} diff --git a/automated/linux/aep-pre-post/lisa-postprocessing.yaml b/automated/linux/aep-pre-post/lisa-postprocessing.yaml new file mode 100644 index 0000000..8dbc108 --- /dev/null +++ b/automated/linux/aep-pre-post/lisa-postprocessing.yaml @@ -0,0 +1,29 @@ +metadata: + format: Lava-Test Test Definition 1.0 + name: lisa-postprocessing + description: "Post-processing of results generated by + Workload Automation v3." + maintainer: + - lisa.nguyen@linaro.org + - milosz.wasilewski@linaro.org + os: + - ubuntu + devices: + - hi6220-hikey + - hi960-hikey + - juno + +params: + LISA_REPOSITORY: https://github.com/ARM-software/lisa + LISA_REF: master + # LISA_SCRIPT is a path relative to LISA top directory + LISA_SCRIPT: ipynb/wltests/sched-evaluation-full.py + SKIP_INSTALL: false + +run: + steps: + - cd ./automated/linux/aep-pre-post + - export LISA_SHELL_DISABLE_COLORS=true + - export TERM=xterm + - ./lisa.sh -r "${LISA_REPOSITORY}" -t "${LISA_REF}" -s "${LISA_SCRIPT}" -S "${SKIP_INSTALL}" + - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/linux/aep-pre-post/lisa.sh b/automated/linux/aep-pre-post/lisa.sh new file mode 100755 index 0000000..a592ec1 --- /dev/null +++ b/automated/linux/aep-pre-post/lisa.sh @@ -0,0 +1,57 @@ +#!/bin/bash -ex +# shellcheck disable=SC1090 + +TEST_DIR=$(dirname "$(realpath "$0")") +OUTPUT="${TEST_DIR}/output" +SKIP_INSTALL="false" +LISA_REPOSITORY="https://github.com/ARM-software/lisa" +LISA_REF="master" +LISA_SCRIPT="ipynb/wltests/sched-evaluation-full.py" + +usage() { + echo "Usage: $0 [-t <lisa_repository_ref>] [-r <lisa_repository>] [-s <lisa_script>] [-S <skip_install>]" 1>&2 + exit 1 +} + +while getopts ":t:r:s:S:" opt; do + case "${opt}" in + t) LISA_REF="${OPTARG}" ;; + r) LISA_REPOSITORY="${OPTARG}" ;; + s) LISA_SCRIPT="${OPTARG}" ;; + S) SKIP_INSTALL="${OPTARG}" ;; + *) usage ;; + esac +done + +. "${TEST_DIR}/../../lib/sh-test-lib" + +! check_root && error_msg "Please run this test as root." +cd "${TEST_DIR}" +create_out_dir "${OUTPUT}" +RESULT_FILE="${OUTPUT}/result.txt" +export RESULT_FILE + +if [ "${SKIP_INSTALL}" = "true" ] || [ "${SKIP_INSTALL}" = "True" ]; then + info_msg "Dependency installation skipped" +else + PKGS="build-essential autoconf automake libtool pkg-config trace-cmd sshpass kernelshark nmap net-tools tree libfreetype6-dev libpng12-dev python-pip python-dev python-tk" + install_deps "${PKGS}" + pip install --upgrade --quiet pip && hash -r + pip install --upgrade --quiet setuptools + pip install --upgrade --quiet matplotlib numpy nose Cython trappy bart-py devlib psutil wrapt scipy IPython + git clone "${LISA_REPOSITORY}" lisa + ( + cd lisa + git checkout "${LISA_REF}" + ) +fi +# TODO: check if lisa directory exists +cd lisa +. init_env +lisa-update submodules +python "${LISA_SCRIPT}" +ls +for FILE in *.csv +do + python "${TEST_DIR}/postprocess_lisa_results.py" -f "${FILE}" -o "${RESULT_FILE}" +done diff --git a/automated/linux/aep-pre-post/postprocess_lisa_results.py b/automated/linux/aep-pre-post/postprocess_lisa_results.py new file mode 100644 index 0000000..c0426c5 --- /dev/null +++ b/automated/linux/aep-pre-post/postprocess_lisa_results.py @@ -0,0 +1,48 @@ +import argparse +import csv + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("-f", + "--file", + help="CSV file for postprocessing", + dest="source_filename") + parser.add_argument("-o", + "--output-file", + help="Results file", + dest="results_filename") + args = parser.parse_args() + + row_index = 0 + headers = [] + measurements = {} + with open(args.source_filename, "rb") as f: + reader = csv.reader(f) + for row in reader: + if row_index == 0: + headers = row + elif row_index > 0 and row_index <= 2: + item_index = 0 + for item in row: + if len(item) > 0: + headers[item_index] = headers[item_index] + "_" + item + item_index = item_index + 1 + else: + # concatenate first 3 cells + name = row[0] + "_" + row[1] + "_" + row[2] + item_index = 3 + for item in row[item_index:]: + if item != "": + measurement_name = name + "_" + headers[item_index] + measurements.update({measurement_name: item}) + item_index = item_index + 1 + row_index = row_index + 1 + with open(args.results_filename, "a") as results: + for key, value in measurements.items(): + # key is test name + # value is measurement to be recorded + results.write("%s pass %s _\r\n" % (key, value)) + +if __name__ == "__main__": + main() diff --git a/automated/linux/badblocks/badblocks.sh b/automated/linux/badblocks/badblocks.sh new file mode 100755 index 0000000..0698df1 --- /dev/null +++ b/automated/linux/badblocks/badblocks.sh @@ -0,0 +1,53 @@ +#!/bin/sh + +# shellcheck disable=SC1091 +. ../../lib/sh-test-lib +OUTPUT="$(pwd)/output" +RESULT_FILE="${OUTPUT}/result.txt" +export RESULT_FILE +TEST_SUITE="badblocks" +BLOCK_DEVICE="default" + +usage() { + echo "Usage: $0 [-b <block device>] [-p <badblocks params>] [-s <skip install: true|false]" 1>&2 + exit 1 +} + +while getopts "b:h:p:s:" o; do + case "$o" in + b) BLOCK_DEVICE="${OPTARG}" ;; + p) BADBLOCKS_PARAMS="${OPTARG}" ;; + s) SKIP_INSTALL="${OPTARG}" ;; + h|*) usage ;; + esac +done + +install() { + dist_name + # shellcheck disable=SC2154 + case "${dist}" in + debian|ubuntu) install_deps "e2fsprogs" "${SKIP_INSTALL}";; + unknown) warn_msg "Unsupported distro: package install skipped" ;; + esac +} + +if [ "${BLOCK_DEVICE}" = "default" ]; then + BLOCK_DEVICE=$(mount | grep "on \/ type" | cut -d' ' -f 1) +fi + +create_out_dir "${OUTPUT}" +install + +command -v badblocks +exit_on_fail "badblocks-existence-check" + +if [ ! -z "${BLOCK_DEVICE}" ] && [ -e "${BLOCK_DEVICE}" ]; then + info_msg "Running ${TEST_SUITE} test on ${BLOCK_DEVICE}" + LOG_FILE="${OUTPUT}/${TEST_SUITE}-output.txt" + test_cmd="badblocks -v ${BADBLOCKS_PARAMS} ${BLOCK_DEVICE} 2>&1" + pipe0_status "${test_cmd}" "tee ${LOG_FILE}" + check_return "${TEST_SUITE}" +else + info_msg "Skipping ${TEST_SUITE} test on ${BLOCK_DEVICE}" + echo "${TEST_SUITE} skip" | tee -a "${RESULT_FILE}" +fi diff --git a/automated/linux/badblocks/badblocks.yaml b/automated/linux/badblocks/badblocks.yaml new file mode 100644 index 0000000..99eec2f --- /dev/null +++ b/automated/linux/badblocks/badblocks.yaml @@ -0,0 +1,25 @@ +metadata: + name: badblocks + format: "Lava-Test-Shell Test Definition 1.0" + description: "Run a read-only test for bad blocks" + maintainer: + - ryan.harkin@linaro.org + os: + - openembedded + - debian + scope: + - functional + devices: + - imx7s-warp + - sun8i-h2-plus-bananapi-m2-zero + +parameters: + BLOCK_DEVICE: 'default' + BADBLOCKS_PARAMS: '' + SKIP_INSTALL: "False" + +run: + steps: + - cd ./automated/linux/badblocks/ + - ./badblocks.sh -b "${BLOCK_DEVICE}" -p "${BADBLOCKS_PARAMS}" -s "${SKIP_INSTALL}" + - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/linux/gst-validate/README b/automated/linux/gst-validate/README new file mode 100644 index 0000000..78941d2 --- /dev/null +++ b/automated/linux/gst-validate/README @@ -0,0 +1,17 @@ +The gst-validate-launcher uses a set of test cases and media files, the gstreamer +team provides gst-integration-testsuites [1] but you could provide your own. + +To get gst-integration-testsuites uses git-annex to get media: + +$ git clone git://anongit.freedesktop.org/gstreamer/gst-integration-testsuites +$ cd gst-integration-testsuites +$ git checkout 1.12 +$ git annex get + +The gst-integration-testsuites needs to be pre-populated into the rootfs inside +/gst-validate folder, + +$ mkdir /ROOTFS_PATH/gst-validate +$ cp -rf gst-integration-testsuites /ROOTFS_PATH/gst-validate + +[1] https://cgit.freedesktop.org/gstreamer/gst-integration-testsuites diff --git a/automated/linux/gst-validate/gst-validate.yaml b/automated/linux/gst-validate/gst-validate.yaml new file mode 100644 index 0000000..75dfe77 --- /dev/null +++ b/automated/linux/gst-validate/gst-validate.yaml @@ -0,0 +1,47 @@ +metadata: + format: Lava-Test Test Definition 1.0 + name: gst-validate + description: "A suite of tools to run integration tests for Gstreamer, + For more information: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-validate/html/" + maintainer: + - anibal.limon@linaro.org + os: + - openembedded + scope: + - functional + devices: + - dragonboard410c + +# MAIN_DIR: +# * Directory where gst-validate will run, needs to contain gst-integration-testsuites, +# https://cgit.freedesktop.org/gstreamer/gst-integration-testsuites +# OPTIONS: +# * -nd: To execute without display attached required Xvfb +# * -v: Verbose mode +# * -j: To execute only one job a time, avoid OOM +# GST_INTEGRATION_SUITES: +# * URL with the tarball of Gstreamer integration suites (cases, media), +# https://github.com/GStreamer/gst-integration-testsuites +params: + MAIN_DIR: "/gst-validate" + OPTIONS: "-nd -v -j 1" + GST_INTEGRATION_SUITES: "http://testdata.validation.linaro.org/gst-validate/gst-integration-testsuites_1.12.tar.gz" + GST_IGNORE_TESTS_REPO: "" + GST_IGNORE_TESTS_BRANCH: "master" + GST_IGNORE_TESTS_FILE: "" + +run: + steps: + - . ./automated/lib/sh-test-lib + - cd ./automated/linux/gst-validate + - wget ${GST_INTEGRATION_SUITES} + - tar -xzf $(basename ${GST_INTEGRATION_SUITES}) -C / + - IGNORE_FILE="" + - if [ ! -z "${GST_IGNORE_TESTS_REPO}" ] && [ ! -z "${GST_IGNORE_TESTS_FILE}" ]; then + - repo_path=${PWD}/$(basename ${GST_IGNORE_TESTS_REPO}) + - git clone -b ${GST_IGNORE_TESTS_BRANCH} ${GST_IGNORE_TESTS_REPO} $repo_path + - IGNORE_FILE=${repo_path}/${GST_IGNORE_TESTS_FILE} + - fi + - gst-validate-launcher -M ${MAIN_DIR} ${OPTIONS} > ./gst-validate-raw.log || true + - ./gst_validate_lava_parse.py ./gst-validate-raw.log ${IGNORE_FILE} > ./result.txt + - ../../utils/send-to-lava.sh ./result.txt diff --git a/automated/linux/gst-validate/gst_validate_lava_parse.py b/automated/linux/gst-validate/gst_validate_lava_parse.py new file mode 100755 index 0000000..8845fe6 --- /dev/null +++ b/automated/linux/gst-validate/gst_validate_lava_parse.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 + +# LAVA/OE gst-validate results parse script +# +# Copyright (C) 2018, Linaro Limited. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Author: Aníbal Limón <anibal.limon@linaro.org> +# + +import json +import os +import re +import sys + + +def map_result_to_lava(result): + if result == 'Passed': + result = 'pass' + elif result == 'Failed': + result = 'fail' + elif result == 'Skipped': + result = 'skip' + elif result == 'Timeout': + result = 'fail' + + return result + + +if __name__ == '__main__': + if len(sys.argv) < 2: + print("Usage: %s <result_file> [ignore_file]" % sys.argv[0]) + sys.exit(1) + + ignore_tests = [] + if len(sys.argv) == 3: + with open(sys.argv[2], 'r') as f: + ignore_tests = f.read().split() + + rex = re.compile('^(?P<test_case_id>validate\..*):\s+(?P<result>(Failed|Passed|Skipped|Timeout))') + with open(sys.argv[1], 'r') as f: + for line in f.readlines(): + s = rex.search(line) + if s: + test_case_id = s.group('test_case_id') + result = s.group('result') + + if test_case_id not in ignore_tests: + print("%s %s" % (test_case_id, map_result_to_lava(result))) diff --git a/automated/linux/hci-smoke/hci-smoke-test.sh b/automated/linux/hci-smoke/hci-smoke-test.sh new file mode 100755 index 0000000..454d4fa --- /dev/null +++ b/automated/linux/hci-smoke/hci-smoke-test.sh @@ -0,0 +1,107 @@ +#!/bin/sh +# +# HCI smoke tests +# +# Copyright (C) 2017, Linaro Limited. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Author: Nicolas Dechesne <nicolas.dechesne@linaro.org> +# + +# shellcheck disable=SC1091 +. ../../lib/sh-test-lib +OUTPUT="$(pwd)/output" +RESULT_FILE="${OUTPUT}/result.txt" +export RESULT_FILE +DEVICE="hci0" +BOOT="enabled" + +usage() { + echo "Usage: $0 [-b <enabled|disabled>] [-d <device>]" 1>&2 + exit 1 +} + +while getopts "d:b:" o; do + case "$o" in + d) DEVICE="${OPTARG}" ;; + b) BOOT="${OPTARG}" ;; + *) usage ;; + esac +done + +# sanity test hciconfig config +test_hciconfig() { + info_msg "Running hciconfig test..." + hciconfig "${DEVICE}" + exit_on_fail "hciconfig" +} + +# test HCI device is $BOOT at boot +test_hciconfig_boot() { + info_msg "Running hciconfig_boot test..." + + # rely on distro policy for AutoEnable + if [ "${BOOT}" = "auto" ]; then + # get rid of spaces and comments + sed 's/\s\+//g;/^#/d' /etc/bluetooth/main.conf | grep "^AutoEnable=true" + if [ "$?" -eq 0 ]; then + BOOT="enabled" + else + BOOT="disabled" + fi + fi + + if [ "${BOOT}" = "enabled" ]; then + hciconfig "${DEVICE}" | grep "UP RUNNING" + else + hciconfig "${DEVICE}" | grep "DOWN" + fi + check_return "hciconfig-boot-${BOOT}" +} + +# test HCI device is up +test_hciconfig_up() { + info_msg "Running hciconfig-up test..." + hciconfig "${DEVICE}" up + sleep 1 + hciconfig "${DEVICE}" | grep "UP RUNNING" + check_return "hciconfig-up" +} + +test_hciconfig_down() { + info_msg "Running hciconfig-down test..." + hciconfig "${DEVICE}" down + sleep 1 + hciconfig "${DEVICE}" | grep DOWN + check_return "hciconfig-down" +} + +# Test run. +! check_root && error_msg "This script must be run as root" +create_out_dir "${OUTPUT}" + +info_msg "About to run HCI smoke test..." +info_msg "Output directory: ${OUTPUT}" + +# ensure that device is available at boot +test_hciconfig +test_hciconfig_boot +test_hciconfig_down +test_hciconfig_up + + + + diff --git a/automated/linux/hci-smoke/hci-smoke.yaml b/automated/linux/hci-smoke/hci-smoke.yaml new file mode 100644 index 0000000..47716de --- /dev/null +++ b/automated/linux/hci-smoke/hci-smoke.yaml @@ -0,0 +1,26 @@ +metadata: + format: Lava-Test Test Definition 1.0 + name: hci-smoke + description: "Basic HCI smoke tests" + maintainer: + - nicolas.dechesne@linaro.org + os: + - debian + - ubuntu + - centos + - fedora + scope: + - functional + devices: + - dragonboard410c + +params: + DEVICE: hci0 + # expected state on first boot: <enabled> or <disabled> or <auto> + BOOT: enabled + +run: + steps: + - cd ./automated/linux/hci-smoke + - ./hci-smoke-test.sh -d "${DEVICE}" -b "${BOOT}" + - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/linux/iozone/iozone.sh b/automated/linux/iozone/iozone.sh new file mode 100755 index 0000000..6c9c005 --- /dev/null +++ b/automated/linux/iozone/iozone.sh @@ -0,0 +1,62 @@ +#!/bin/sh -ex +# shellcheck disable=SC1090 +# shellcheck disable=SC2154 + +TEST_DIR=$(dirname "$(realpath "$0")") +OUTPUT="${TEST_DIR}/output" +LOGFILE="${OUTPUT}/iozone-stdout.txt" +RESULT_FILE="${OUTPUT}/result.txt" + +SKIP_INSTALL="false" +VERSION="3_458" + +usage() { + echo "Usage: $0 [-s <skip_install>] [-v <version>]" 1>&2 + exit 1 +} + +while getopts "s:v:h" opt; do + case "$opt" in + s) SKIP_INSTALL="${OPTARG}" ;; + v) VERSION="${OPTARG}" ;; + *) usage ;; + esac +done + +. "${TEST_DIR}/../../lib/sh-test-lib" +create_out_dir "${OUTPUT}" +cd "${OUTPUT}" + +if [ "$SKIP_INSTALL" = 'true' ] || [ "$SKIP_INSTALL" = 'True' ]; then + warn_msg "Dependencies and iozone installation skipped!" +else + install_deps "wget gcc make" + # Download, compile and install iozone. + wget "http://www.iozone.org/src/stable/iozone${VERSION}.tar" + tar xf "iozone${VERSION}.tar" + cd "iozone${VERSION}/src/current" + detect_abi + case "$abi" in + armeabi|arm64) make linux-arm ;; + x86_64) make linux ;; + *) warn_msg "Unsupported architecture" ;; + esac + export PATH=$PWD:$PATH +fi + +which iozone || error_msg "'iozone' not found, exiting..." +# -a: Auto mode +# -I: Use VxFS VX_DIRECT, O_DIRECT,or O_DIRECTIO for all file operations +iozone -a -I | tee "$LOGFILE" + +# Parse iozone stdout. +field_number=3 +for test in "write" "rewrite" "read" "reread" "random-read" "random-write" "bkwd-read" \ + "record-rewrite" "stride-read" "fwrite" "frewrite" "fread" "freread"; do + awk "/kB reclen/{flag=1; next} /iozone test complete/{flag=0} flag" "$LOGFILE" \ + | sed '/^$/d' \ + | awk -v tc="$test" -v field_number="$field_number" \ + '{printf("%s-%skB-%sreclen pass %s kBytes/sec\n",tc,$1,$2,$field_number)}' \ + | tee -a "$RESULT_FILE" + field_number=$(( field_number + 1 )) +done diff --git a/automated/linux/iozone/iozone.yaml b/automated/linux/iozone/iozone.yaml new file mode 100644 index 0000000..d03561f --- /dev/null +++ b/automated/linux/iozone/iozone.yaml @@ -0,0 +1,38 @@ +metadata: + name: iozone + format: "Lava-Test-Shell Test Definition 1.0" + description: "IOzone is a filesystem benchmark tool. The benchmark generates and + measures a variety of file operations." + maintainer: + - chase.qi@linaro.org + os: + - ubuntu + - debian + - centos + - fedora + - openembedded + devices: + - d03 + - d05 + - juno + - beaglebone-black + - hi6220-hikey + - apq8016-sbc + - mustang + - moonshot + - thunderX + - x15 + - x86 + + scope: + - performance + +params: + SKIP_INSTALL: "false" + VERSION: "3_458" + +run: + steps: + - cd automated/linux/iozone + - ./iozone.sh -s "${SKIP_INSTALL}" -v "${VERSION}" + - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/linux/memtester/memtester.sh b/automated/linux/memtester/memtester.sh new file mode 100755 index 0000000..54e80a1 --- /dev/null +++ b/automated/linux/memtester/memtester.sh @@ -0,0 +1,63 @@ +#!/bin/sh -e + +# shellcheck disable=SC1091 +. ../../lib/sh-test-lib +OUTPUT="$(pwd)/output" +RESULT_FILE="${OUTPUT}/result.txt" +export RESULT_FILE +MEMORY='1M' +ITERATIONS=1 + +usage() { + echo "Usage: $0 [-s <true|false>] [-m memory] [-i iterations]" 1>&2 + exit 1 +} + +while getopts "s:m:i:h" o; do + case "$o" in + s) SKIP_INSTALL="${OPTARG}" ;; + m) MEMORY="${OPTARG}" ;; + i) ITERATIONS="${OPTARG}" ;; + *) usage ;; + esac +done + +install() { + dist_name + # shellcheck disable=SC2154 + case "${dist}" in + debian|ubuntu) install_deps "memtester" "${SKIP_INSTALL}";; + unknown) warn_msg "Unsupported distro: package install skipped" ;; + esac +} + +parser() { + test_log="$1" + if [ "${ITERATIONS}" -gt 1 ]; then + suffix="-iter$2" + else + suffix="" + fi + + # The follow lines: + # Remove redundant spaces. + # Replace ok with pass. + # Replace spaces in test case name with minus. + # Save test results like 'Stuck-Address pass' to result file. + grep ': ok' "${test_log}" \ + | sed 's/^ *//g; s/ *: ok/:pass/g; s/ /-/g' \ + | awk -v suffix="${suffix}" -F':' '{printf("%s%s %s\n",$1,suffix,$2)}' \ + | tee -a "$RESULT_FILE" +} + +create_out_dir "${OUTPUT}" +install +for i in $(seq "${ITERATIONS}"); do + output="${OUTPUT}/memtester-iter$i.txt" + + memtester "${MEMORY}" 1 \ + | sed 's/:.*ok/: ok/g' \ + | tee "${output}" + + parser "${output}" "$i" +done diff --git a/automated/linux/memtester/memtester.yaml b/automated/linux/memtester/memtester.yaml new file mode 100644 index 0000000..d5407e7 --- /dev/null +++ b/automated/linux/memtester/memtester.yaml @@ -0,0 +1,29 @@ +metadata: + format: "Lava-Test Test Definition 1.0" + name: memtester + description: "Stress test to find memory subsystem faults" + maintainer: + - chase.qi@linaro.org + os: + - debian + - ubuntu + - openembedded + scope: + - functional + - stress + devices: + - hi6220-hikey + - apq8016-sbc + +parameters: + SKIP_INSTALL: "False" + # The amount of memory to allocate and test. + MEMORY: "1M" + # Number of loops to iterate through. + ITERATIONS: 1 + +run: + steps: + - cd ./automated/linux/memtester/ + - ./memtester.sh -s "${SKIP_INSTALL}" -m "${MEMORY}" -i "${ITERATIONS}" + - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/linux/overlayfs/overlayfs.sh b/automated/linux/overlayfs/overlayfs.sh new file mode 100755 index 0000000..d871cbe --- /dev/null +++ b/automated/linux/overlayfs/overlayfs.sh @@ -0,0 +1,48 @@ +#!/bin/sh -ex + +TEST_DIR=$(dirname "$(realpath "$0")") +OUTPUT="${TEST_DIR}/output" +export RESULT_FILE="${OUTPUT}/result.txt" + +# shellcheck disable=SC1090 +. "${TEST_DIR}/../../lib/sh-test-lib" +create_out_dir "${OUTPUT}" +cd "${OUTPUT}" +# PKG install will be skipped on unsupported distro. +install_deps "git" +git clone http://git.linaro.org/qa/unionmount-testsuite.git +cd unionmount-testsuite + +tests="open-plain open-trunc open-creat open-creat-trunc open-creat-excl + open-creat-excl-trunc noent-plain noent-trunc noent-creat + noent-creat-trunc noent-creat-excl noent-creat-excl-trunc sym1-plain + sym1-trunc sym1-creat sym1-creat-excl sym2-plain sym2-trunc sym2-creat + sym2-creat-excl symx-plain symx-trunc symx-creat symx-creat-excl + symx-creat-trunc truncate dir-open dir-weird-open dir-open-dir + dir-weird-open-dir dir-sym1-open dir-sym1-weird-open dir-sym2-open + dir-sym2-weird-open readlink mkdir rmdir hard-link hard-link-dir + hard-link-sym unlink rename-file rename-empty-dir rename-new-dir + rename-pop-dir rename-new-pop-dir rename-move-dir rename-mass + rename-mass-2 rename-mass-3 rename-mass-4 rename-mass-5 rename-mass-dir + rename-mass-sym impermissible" + +if which python3; then + py_cmd="python3" +else + py_cmd="python2" +fi + +for test in ${tests}; do + for term_slash in 0 1; do + if [ "${term_slash}" -eq 1 ]; then + suffix="-termslash" + else + suffix="" + fi + + test_cmd="${py_cmd} ./run --ov --ts=${term_slash} ${test}" + info_msg "Running $test with command: ${test_cmd}" + # run_test_case() usage: run_test_case test_cmd test_case_id + run_test_case "${test_cmd}" "${test}${suffix}" + done +done diff --git a/automated/linux/overlayfs/overlayfs.yaml b/automated/linux/overlayfs/overlayfs.yaml new file mode 100644 index 0000000..f3d8918 --- /dev/null +++ b/automated/linux/overlayfs/overlayfs.yaml @@ -0,0 +1,35 @@ +metadata: + name: overlayfs + format: "Lava-Test-Shell Test Definition 1.0" + description: "Run overlay filesystem test from unionmount testsuite. Kernel config + CONFIG_OVERLAY_FS=y is required for this test." + maintainer: + - milosz.wasilewski@linaro.org + - chase.qi@linaro.org + os: + - ubuntu + - debian + - centos + - fedora + - openembedded + devices: + - d03 + - d05 + - juno + - beaglebone-black + - hi6220-hikey + - apq8016-sbc + - mustang + - moonshot + - thunderX + - x15 + - x86 + + scope: + - functional + +run: + steps: + - cd automated/linux/overlayfs + - ./overlayfs.sh + - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/linux/piglit/piglit.yaml b/automated/linux/piglit/piglit.yaml new file mode 100644 index 0000000..8b87b7c --- /dev/null +++ b/automated/linux/piglit/piglit.yaml @@ -0,0 +1,58 @@ +metadata: + format: Lava-Test Test Definition 1.0 + name: piglit + description: "Piglit is an open-source test suite for OpenGL implementations. + For more information: https://piglit.freedesktop.org/" + maintainer: + - anibal.limon@linaro.org + os: + - debian + - ubuntu + - centos + - fedora + - openembedded + scope: + - functional + devices: + - dragonboard410c + +# Exclude via OPTIONS: +# * glx, because those are driver specific +# * streaming-texture-leak, because it needs swap, not readily available +params: + DISPLAY: ":0" + PIGLIT_SOURCE_DIR: "/usr/lib64/piglit" + OPTIONS: "-x streaming-texture-leak -x glx" + SUITE: "tests/quick.py" + USE_XVFB: "False" + IGNORE_TESTS_REPO: "" + IGNORE_TESTS_BRANCH: "master" + IGNORE_TESTS_FILE: "" + +run: + steps: + - . ./automated/lib/sh-test-lib + - install_deps piglit + - if [ "${USE_XVFB}" = "True" ]; then + - install_deps xvfb + - export DISPLAY=:9 + - Xvfb ${DISPLAY} -screen 0 1920x1080x24 & + - else + - export DISPLAY=${DISPLAY} + - fi + - export PIGLIT_SOURCE_DIR=${PIGLIT_SOURCE_DIR} + - cd ./automated/linux/piglit + - IGNORE_FILE="" + - if [ ! -z "${IGNORE_TESTS_REPO}" ] && [ ! -z "${IGNORE_TESTS_FILE}" ]; then + - repo_path=${PWD}/$(basename ${IGNORE_TESTS_REPO}) + - git clone -b ${IGNORE_TESTS_BRANCH} ${IGNORE_TESTS_REPO} ${repo_path} + - IGNORE_FILE=${repo_path}/${IGNORE_TESTS_FILE} + - fi + - piglit run ${OPTIONS} ${PIGLIT_SOURCE_DIR}/${SUITE} ./results + - if [ -f ./results/results.json.bz2 ]; then + - bzip2 -d ./results/results.json.bz2 + - ./piglit_lava_parse.py ./results/results.json ${IGNORE_FILE} > ./result.txt + - else + - ./piglit_lava_parse.py ./results/tests ${IGNORE_FILE} > ./result.txt + - fi + - ../../utils/send-to-lava.sh ./result.txt diff --git a/automated/linux/piglit/piglit_lava_parse.py b/automated/linux/piglit/piglit_lava_parse.py new file mode 100755 index 0000000..1e780fa --- /dev/null +++ b/automated/linux/piglit/piglit_lava_parse.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 + +# LAVA/OE piglit results parse script +# +# Copyright (C) 2018, Linaro Limited. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Author: Aníbal Limón <anibal.limon@linaro.org> +# + +import json +import os +import re +import sys + + +def map_result_to_lava(result): + if result == 'warn': + result = 'pass' + elif result == 'crash': + result = 'fail' + elif result == 'incomplete': + result = 'fail' + + return result + + +def natural_keys(text): + m = re.search('(\d+)', text) + if m: + return int(m.group(1)) + else: + return text + + +if __name__ == '__main__': + if len(sys.argv) < 2: + print("Usage: %s <result_dir|result_file> [ignore_file]" % sys.argv[0]) + sys.exit(1) + + ignore_tests = [] + if len(sys.argv) == 3: + with open(sys.argv[2], 'r') as f: + ignore_tests = f.read().split() + + if os.path.isdir(sys.argv[1]): + for root, dirs, files in os.walk(sys.argv[1]): + result_types = {} + for name in sorted(files, key=natural_keys): + if name.endswith('.tmp'): + continue + piglit_result = None + full_f = os.path.join(root, name) + with open(full_f, 'r') as f: + piglit_results = json.loads(f.read()) + for test in piglit_results.keys(): + if test in ignore_tests: + continue + result = map_result_to_lava(piglit_results[test]['result']) + print("%s %s" % (test, result)) + else: + with open(sys.argv[1], 'r') as f: + piglit_results = json.loads(f.read()) + for test in sorted(piglit_results['tests'].keys()): + if test in ignore_tests: + continue + result = map_result_to_lava(piglit_results['tests'][test]['result']) + print("%s %s" % (test, result)) diff --git a/automated/linux/ptest/ptest.py b/automated/linux/ptest/ptest.py new file mode 100755 index 0000000..13feb4d --- /dev/null +++ b/automated/linux/ptest/ptest.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python3 + +# LAVA/OE ptest script +# +# Copyright (C) 2017, Linaro Limited. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Author: Aníbal Limón <anibal.limon@linaro.org> +# + +import sys +import argparse +import subprocess +import re +import os + +OUTPUT_LOG = os.path.join(os.getcwd(), 'result.txt') + + +def get_ptest_dir(): + ptest_dirs = ['/usr/lib', '/usr/lib64', '/usr/lib32'] + + for pdir in ptest_dirs: + try: + ptests = subprocess.check_output('ptest-runner -l -d %s' % + pdir, shell=True, + stderr=subprocess.STDOUT) + except subprocess.CalledProcessError: + continue + + return pdir + + return None + + +def get_available_ptests(ptest_dir): + output = subprocess.check_output('ptest-runner -l -d %s' % + ptest_dir, shell=True, + stderr=subprocess.STDOUT) + + ptests = [] + ptest_rex = re.compile("^(?P<ptest_name>.*)\t") + for line in output.decode('utf-8').split('\n'): + m = ptest_rex.search(line) + if m: + ptests.append(m.group('ptest_name')) + + return ptests + + +def filter_ptests(ptests, requested_ptests, exclude): + filter_ptests = [] + + for ptest in exclude: + if ptest in ptests: + ptests.remove(ptest) + + if not requested_ptests: + return ptests + + for ptest_name in ptests: + if ptest_name in requested_ptests: + requested_ptests[ptest_name] = True + filter_ptests.append(ptest_name) + + for request_ptest in requested_ptests.keys(): + if not requested_ptests[request_ptest]: + print("ERROR: Ptest %s was requested and isn't available" % + request_ptest) + sys.exit(1) + + return filter_ptests + + +def check_ptest(ptest_dir, ptest_name, output_log): + status = 'pass' + + try: + output = subprocess.check_call('ptest-runner -d %s %s' % + (ptest_dir, ptest_name), shell=True, + stderr=subprocess.STDOUT) + except subprocess.CalledProcessError: + status = 'fail' + + with open(output_log, 'a+') as f: + f.write("%s %s\n" % (ptest_name, status)) + + +def main(): + parser = argparse.ArgumentParser(description="LAVA/OE ptest script", + add_help=False) + parser.add_argument('-t', '--tests', action='store', nargs='*', + help='Ptests to run') + parser.add_argument('-e', '--exclude', action='store', nargs='*', + help='Ptests to exclude') + parser.add_argument('-d', '--ptest-dir', + help='Directory where ptests are stored (optional)', + action='store') + parser.add_argument('-o', '--output-log', + help='File to output log (optional)', action='store', + default=OUTPUT_LOG) + parser.add_argument('-h', '--help', action='help', + default=argparse.SUPPRESS, + help='show this help message and exit') + args = parser.parse_args() + + if args.ptest_dir: + ptest_dir = args.ptest_dir + else: + ptest_dir = get_ptest_dir() + if not ptest_dir: + print("ERROR: No ptest dir found\n") + return 1 + + ptests = get_available_ptests(ptest_dir) + if not ptests: + print("ERROR: No ptests found in dir: %s\n" % ptest_dir) + return 1 + + # filter empty strings caused by -t "" + tests = [] + if args.tests: + tests = [x for x in args.tests if x] + + # filter empty strings caused by -e "" + exclude = [] + if args.exclude: + exclude = [e for e in args.exclude if e] + + required_ptests = dict.fromkeys(tests, False) + ptests_to_run = filter_ptests(ptests, required_ptests, exclude) + for ptest_name in ptests_to_run: + check_ptest(ptest_dir, ptest_name, args.output_log) + + return 0 + + +if __name__ == '__main__': + try: + ret = main() + except SystemExit as e: + ret = e.code + except: + ret = 1 + import traceback + traceback.print_exc() + + sys.exit(ret) diff --git a/automated/linux/ptest/ptest.yaml b/automated/linux/ptest/ptest.yaml new file mode 100644 index 0000000..854af0b --- /dev/null +++ b/automated/linux/ptest/ptest.yaml @@ -0,0 +1,25 @@ +metadata: + format: Lava-Test Test Definition 1.0 + name: ptest + description: "OpenEmbedded Package tests support (ptest) + The pacakge tests from OpenEmbedded enables the support to run + package unittests into the target device. + For more information: https://wiki.yoctoproject.org/wiki/Ptest" + maintainer: + - anibal.limon@linaro.org + os: + - openembedded + scope: + - functional + devices: + - dragonboard410c + +params: + TESTS: "" + EXCLUDE: "" + +run: + steps: + - cd ./automated/linux/ptest + - ./ptest.py -o ./result.txt -t ${TESTS} -e ${EXCLUDE} + - ../../utils/send-to-lava.sh ./result.txt diff --git a/automated/linux/v4l2/v4l2-compliance.sh b/automated/linux/v4l2/v4l2-compliance.sh new file mode 100755 index 0000000..73a609f --- /dev/null +++ b/automated/linux/v4l2/v4l2-compliance.sh @@ -0,0 +1,60 @@ +#!/bin/sh + +. ../../lib/sh-test-lib +OUTPUT="$(pwd)/output" +RESULT_FILE="${OUTPUT}/result.txt" +TEST_SUITE="v4l2-compliance" + +usage() { + echo "Usage: $0 [-d <video device>" 1>&2 + exit 1 +} + +while getopts "d:h:m:" o; do + case "$o" in + d) VIDEO_DEVICE="${OPTARG}" ;; + m) MEDIA_DEVICE_NUM="${OPTARG}" + MEDIA_DEVICE="/dev/media${OPTARG}" ;; + h|*) usage ;; + esac +done + +echo VIDEO_DEVICE="${VIDEO_DEVICE}" +echo MEDIA_DEVICE="${MEDIA_DEVICE}" +echo MEDIA_DEVICE_NUM="${MEDIA_DEVICE_NUM}" + +# Test run. +create_out_dir "${OUTPUT}" + +command -v v4l2-compliance +exit_on_fail "v4l2-existence-check" + +if [ ! -z "${VIDEO_DEVICE}" ] && [ -e "${VIDEO_DEVICE}" ]; then + info_msg "Running v4l2-compliance device test..." + LOG_FILE="${OUTPUT}/${TEST_SUITE}-output.txt" + test_cmd="v4l2-compliance -v -d ${VIDEO_DEVICE} 2>&1" + pipe0_status "${test_cmd}" "tee ${LOG_FILE}" + check_return "v4l2-compliance" +else + info_msg "Skipping v4l2-compliance device test..." +fi + +if [ ! -z "${MEDIA_DEVICE}" ] && [ -e "${MEDIA_DEVICE}" ]; then + info_msg "Running v4l2-compliance media test..." + LOG_FILE="${OUTPUT}/${TEST_SUITE}-output.txt" + test_cmd="v4l2-compliance -v -m${MEDIA_DEVICE_NUM} 2>&1" + pipe0_status "${test_cmd}" "tee ${LOG_FILE}" + check_return "v4l2-compliance" +else + info_msg "Skipping v4l2-compliance media test..." +fi + +# Parse test log. +grep -e FAIL -e OK "${LOG_FILE}" | \ + sed -e 's/^[ \t]*//' \ + -e 's/test //' \ + -e 's/ (Not Supported)//' \ + -e 's/ /_/g' \ + -e 's/:_/ /' \ + -e 's/ OK/ PASS/' \ + > "${RESULT_FILE}" diff --git a/automated/linux/v4l2/v4l2-compliance.yaml b/automated/linux/v4l2/v4l2-compliance.yaml new file mode 100644 index 0000000..c386d43 --- /dev/null +++ b/automated/linux/v4l2/v4l2-compliance.yaml @@ -0,0 +1,23 @@ +metadata: + name: v4l2-compliance + format: "Lava-Test-Shell Test Definition 1.0" + description: "v4l2 Compliance test suite" + maintainer: + - ryan.harkin@linaro.org + os: + - openembedded + - debian + scope: + - functional + devices: + - imx7s-warp + +params: + VIDEO_DEVICE: "/dev/video0" + MEDIA_DEVICE_NUM: "0" + +run: + steps: + - cd ./automated/linux/v4l2/ + - ./v4l2-compliance.sh -d "${VIDEO_DEVICE}" -m "${MEDIA_DEVICE_NUM}" + - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/linux/wlan-smoke/wlan-smoke-test.sh b/automated/linux/wlan-smoke/wlan-smoke-test.sh new file mode 100755 index 0000000..8bf028a --- /dev/null +++ b/automated/linux/wlan-smoke/wlan-smoke-test.sh @@ -0,0 +1,96 @@ +#!/bin/sh +# +# WLAN smoke tests +# +# Copyright (C) 2017, Linaro Limited. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Author: Nicolas Dechesne <nicolas.dechesne@linaro.org> +# + +# shellcheck disable=SC1091 +. ../../lib/sh-test-lib +OUTPUT="$(pwd)/output" +RESULT_FILE="${OUTPUT}/result.txt" +export RESULT_FILE +DEVICE="wlan0" +BOOT="enabled" + +usage() { + echo "Usage: $0 [-b <enabled|disabled>] [-d <device>]" 1>&2 + exit 1 +} + +while getopts "d:b:" o; do + case "$o" in + d) DEVICE="${OPTARG}" ;; + b) BOOT="${OPTARG}" ;; + *) usage ;; + esac +done + +# sanity test ip command +test_iplink() { + info_msg "Running ip link test..." + ip link show "${DEVICE}" + exit_on_fail "ip-link" +} + +# test WLAN device at boot is $BOOT +test_wlan_boot() { + info_msg "Running wlan boot test..." + if [ "${BOOT}" = "enabled" ]; then + ip link show "${DEVICE}" | grep "${DEVICE}" | grep "UP" + else + ip link show "${DEVICE}" | grep "${DEVICE}" | grep -v "UP" + fi + check_return "wlan-boot" +} + +# test WLAN device is up +test_wlan_up() { + info_msg "Running wlan-up test..." + ip link set "${DEVICE}" up + sleep 1 + ip link show "${DEVICE}" | grep "${DEVICE}" | grep "UP" + check_return "wlan-up" +} + +# test WLAN device is down +test_wlan_down() { + info_msg "Running wlan-down test..." + ip link set "${DEVICE}" down + sleep 1 + ip link show "${DEVICE}" | grep "${DEVICE}" | grep -v "UP" + check_return "wlan-down" +} + +# Test run. +! check_root && error_msg "This script must be run as root" +create_out_dir "${OUTPUT}" + +info_msg "About to run wlan smoke test..." +info_msg "Output directory: ${OUTPUT}" + +# ensure that device is available at boot +test_iplink +test_wlan_boot +test_wlan_down +test_wlan_up + + + + diff --git a/automated/linux/wlan-smoke/wlan-smoke.yaml b/automated/linux/wlan-smoke/wlan-smoke.yaml new file mode 100644 index 0000000..00ade67 --- /dev/null +++ b/automated/linux/wlan-smoke/wlan-smoke.yaml @@ -0,0 +1,26 @@ +metadata: + format: Lava-Test Test Definition 1.0 + name: wlan-smoke + description: "Basic WLAN smoke tests" + maintainer: + - nicolas.dechesne@linaro.org + os: + - debian + - ubuntu + - centos + - fedora + scope: + - functional + devices: + - dragonboard410c + +params: + DEVICE: wlan0 + # expected state on first boot: <enabled> or <disabled> + BOOT: enabled + +run: + steps: + - cd ./automated/linux/wlan-smoke + - ./wlan-smoke-test.sh -d "${DEVICE}" -b "${BOOT}" + - ../../utils/send-to-lava.sh ./output/result.txt diff --git a/automated/utils/test-runner.py b/automated/utils/test-runner.py index fd4591a..16f5e30 100755 --- a/automated/utils/test-runner.py +++ b/automated/utils/test-runner.py @@ -2,6 +2,7 @@ import argparse import csv import cmd +import copy import json import logging import os @@ -13,6 +14,7 @@ import sys import textwrap import time from uuid import uuid4 +from distutils.spawn import find_executable try: @@ -34,8 +36,11 @@ class StoreDictKeyPair(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): my_dict = {} for kv in values: - k, v = kv.split("=") - my_dict[k] = v + if "=" in kv: + k, v = kv.split("=", 1) + my_dict[k] = v + else: + print("Invalid parameter: %s" % kv) setattr(namespace, self.dest, my_dict) @@ -69,6 +74,59 @@ class TestPlan(object): self.timeout = args.timeout self.skip_install = args.skip_install self.logger = logging.getLogger('RUNNER.TestPlan') + self.overlay = args.overlay + + def apply_overlay(self, test_list): + fixed_test_list = copy.deepcopy(test_list) + logger = logging.getLogger('RUNNER.TestPlan.Overlay') + with open(self.overlay) as f: + data = yaml.load(f) + + if data.get('skip'): + skip_tests = data['skip'] + for test in test_list: + for skip_test in skip_tests: + if test['path'] == skip_test['path'] and test['repository'] == skip_test['repository']: + fixed_test_list.remove(test) + logger.info("Skipped: {}".format(test)) + else: + continue + + if data.get('amend'): + amend_tests = data['amend'] + for test in fixed_test_list: + for amend_test in amend_tests: + if test['path'] == amend_test['path'] and test['repository'] == skip_test['repository']: + if amend_test.get('parameters'): + if test.get('parameters'): + test['parameters'].update(amend_test['parameters']) + else: + test['parameters'] = amend_test['parameters'] + logger.info('Updated: {}'.format(test)) + else: + logger.warning("'parameters' not found in {}, nothing to amend.".format(amend_test)) + + if data.get('add'): + add_tests = data['add'] + unique_add_tests = [] + for test in add_tests: + if test not in unique_add_tests: + unique_add_tests.append(test) + else: + logger.warning("Skipping duplicate test {}".format(test)) + + for test in test_list: + del test['uuid'] + + for add_test in unique_add_tests: + if add_test in test_list: + logger.warning("{} already included in test plan, do nothing.".format(add_test)) + else: + add_test['uuid'] = str(uuid4()) + fixed_test_list.append(add_test) + logger.info("Added: {}".format(add_test)) + + return fixed_test_list def test_list(self, kind="automated"): if self.test_def: @@ -88,22 +146,30 @@ class TestPlan(object): with open(self.test_plan, 'r') as f: test_plan = yaml.safe_load(f) try: + plan_version = test_plan['metadata'].get('format') + self.logger.info('Test plan version: {}'.format(plan_version)) + if plan_version == "Linaro Test Plan v2": + tests = test_plan['tests'][kind] + elif plan_version == "Linaro Test Plan v1" or plan_version is None: + tests = [] + for requirement in test_plan['requirements']: + if 'tests' in requirement.keys(): + if requirement['tests'] and \ + kind in requirement['tests'].keys() and \ + requirement['tests'][kind]: + for test in requirement['tests'][kind]: + tests.append(test) + test_list = [] unique_tests = [] # List of test hashes - for requirement in test_plan['requirements']: - if 'tests' in requirement.keys(): - if requirement['tests'] and \ - kind in requirement['tests'].keys() and \ - requirement['tests'][kind]: - for test in requirement['tests'][kind]: - test_hash = hash(json.dumps(test, sort_keys=True)) - if test_hash in unique_tests: - # Test is already in the test_list; don't add it again. - self.logger.warning( - "Skipping duplicate test {}".format(test)) - continue - unique_tests.append(test_hash) - test_list.append(test) + for test in tests: + test_hash = hash(json.dumps(test, sort_keys=True)) + if test_hash in unique_tests: + # Test is already in the test_list; don't add it again. + self.logger.warning("Skipping duplicate test {}".format(test)) + continue + unique_tests.append(test_hash) + test_list.append(test) for test in test_list: test['uuid'] = str(uuid4()) except KeyError as e: @@ -113,7 +179,10 @@ class TestPlan(object): self.logger.error('Plese specify a test or test plan.') sys.exit(1) - return test_list + if self.overlay is None: + return test_list + else: + return self.apply_overlay(test_list) class TestSetup(object): @@ -600,6 +669,9 @@ class ResultParser(object): self.results['name'] = self.testdef['metadata']['name'] if 'params' in self.testdef.keys(): self.results['params'] = self.testdef['params'] + if self.args.test_def_params: + for param_name, param_value in self.args.test_def_params.items(): + self.results['params'][param_name] = param_value if 'parse' in self.testdef.keys() and 'pattern' in self.testdef['parse'].keys(): self.pattern = self.testdef['parse']['pattern'] self.logger.info("Enabling log parse pattern: %s" % self.pattern) @@ -621,6 +693,10 @@ class ResultParser(object): test_version = subprocess.check_output("git rev-parse HEAD", shell=True).decode('utf-8') self.results['version'] = test_version.rstrip() os.chdir(path) + self.lava_run = args.lava_run + if self.lava_run and not find_executable('lava-test-case'): + self.logger.info("lava-test-case not found, '-l' or '--lava_run' option ignored'") + self.lava_run = False def run(self): self.parse_stdout() @@ -667,21 +743,35 @@ class ResultParser(object): self.metrics.append(data.copy()) + if self.lava_run: + self.send_to_lava(data) + def parse_pattern(self): with open('%s/stdout.log' % self.test['test_path'], 'r') as f: + rex_pattern = re.compile(r'%s' % self.pattern) for line in f: data = {} - m = re.search(r'%s' % self.pattern, line) + m = rex_pattern.search(line) if m: data = m.groupdict() for x in ['measurement', 'units']: if x not in data: data[x] = '' - if self.fixup: + if self.fixup and data['result'] in self.fixup: data['result'] = self.fixup[data['result']] self.metrics.append(data.copy()) + if self.lava_run: + self.send_to_lava(data) + + def send_to_lava(self, data): + cmd = 'lava-test-case {} --result {}'.format(data['test_case_id'], data['result']) + if data['measurement']: + cmd = '{} --measurement {} --units {}'.format(cmd, data['measurement'], data['units']) + self.logger.debug('lava-run: cmd: {}'.format(cmd)) + subprocess.call(shlex.split(cmd)) + def dict_to_json(self): # Save test results to output/test_id/result.json with open('%s/result.json' % self.test['test_path'], 'w') as f: @@ -774,21 +864,36 @@ def get_args(): parser.add_argument('-e', '--skip_environment', dest='skip_environment', default=False, action='store_true', help='skip environmental data collection (board name, distro, etc)') + parser.add_argument('-l', '--lava_run', dest='lava_run', + default=False, action='store_true', + help='send test result to LAVA with lava-test-case.') + parser.add_argument('-O', '--overlay', default=None, + dest='overlay', help=textwrap.dedent('''\ + Specify test plan ovelay file to: + * skip tests + * amend test parameters + * add new tests + ''')) + parser.add_argument('-v', '--verbose', action='store_true', dest='verbose', + default=False, help='Set log level to DEBUG.') args = parser.parse_args() return args def main(): + args = get_args() + # Setup logger. logger = logging.getLogger('RUNNER') - logger.setLevel(logging.DEBUG) + logger.setLevel(logging.INFO) + if args.verbose: + logger.setLevel(logging.DEBUG) ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s: %(levelname)s: %(message)s') ch.setFormatter(formatter) logger.addHandler(ch) - args = get_args() logger.debug('Test job arguments: %s' % args) if args.kind != "manual" and args.target is None: if os.geteuid() != 0: diff --git a/automated/utils/upload-to-artifactorial.sh b/automated/utils/upload-to-artifactorial.sh index 1cb7fcb..234c625 100755 --- a/automated/utils/upload-to-artifactorial.sh +++ b/automated/utils/upload-to-artifactorial.sh @@ -27,7 +27,7 @@ fi if which lava-test-reference; then # If 'ARTIFACTORIAL_TOKEN' defined in 'secrects' dictionary defined in job # definition file, it will be used. - lava_test_dir="$(find /lava-* -maxdepth 0 -type d 2>/dev/null | sort | tail -1)" + lava_test_dir="$(find /lava-* -maxdepth 0 -type d -regex '/lava-[0-9]+' 2>/dev/null | sort | tail -1)" if test -f "${lava_test_dir}/secrets" && grep -q "ARTIFACTORIAL_TOKEN" "${lava_test_dir}/secrets"; then # shellcheck disable=SC1090 . "${lava_test_dir}/secrets" @@ -43,7 +43,7 @@ if which lava-test-reference; then fi if echo "${return}" | grep "$(basename "${ATTACHMENT}")"; then - lava-test-reference "test-attachment" --result "pass" --reference "https://archive.validation.linaro.org/artifacts/${return}" + lava-test-reference "test-attachment" --result "pass" --reference "${return}" else echo "test-attachment fail" which lava-test-case && lava-test-case "test-attachment" --result "fail" |