ANGLE Vulkan needs to set the proper CWD for the layers to load |
||||
Issue descriptionLooking at the new angle_end2end_tests failure on this bot: https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%20GeForce%20730%29?numbuilds=200 Example failure: https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%20GeForce%20730%29/builds/2742 This is failing the new Vulkan tests: RendererTest.RequestedRendererCreated/ES2_VULKAN RendererTest.SimpleOperation/ES2_VULKAN VulkanEXTTest.ValidationLayersAvaialable/ES2_VULKAN [ RUN ] RendererTest.RequestedRendererCreated/ES2_VULKAN e:\b\c\b\win\src\third_party\angle\src\tests\test_utils\angletest.cpp(68): error: Failed Vulkan standard validation layers are missing. The layers are accessed through specific paths. Downloading and testing the isolate locally confirms things work as expected. C:\src\chromium\src\tools\swarming_client>python isolateserver.py download -s 2dde8ecab3487874f28aa6a3e75829c7cf141ac7 -I https://isolateserver.appspot.com -t test5 To run this test please run from the directory C:\src\chromium\src\tools\swarming_client\test5\out\Release: .\angle_end2end_tests.exe C:\src\chromium\src\tools\swarming_client\test5\out\Release>angle_end2end_tests.exe --gtest_filter=*VULKAN <all tests pass> My suspicion based on this failure and prior ones is that in this bot config we're not setting cwd to the one specified in the isolate. Looking at the test output: https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%20GeForce%20730%29/builds/2742/steps/angle_end2end_tests/logs/stdio cmd: ['python', '-u', 'C:\\b\\c\\b\\Win7_Release__NVIDIA_GeForce_730_\\src\\infra\\scripts\\runtest_wrapper.py', '--', '--target', 'Release', '--factory-properties', '{"$recipe_engine": {"mode_flags": {"use_subprocess42": true}}, "blamelist": ["drott@chromium.org", "gambard@chromium.org", "mattcary@chromium.org", "mlippautz@chromium.org", "msarda@chromium.org", "olivierrobin@chromium.org", "perkj@chromium.org", "sigbjornf@opera.com", "v8-autoroll@chromium.org"], "branch": "master", "build_config": "Release", "build_data_dir": "C:\\\\b\\\\rr\\\\tmplrvjzc", "buildername": "Win7 Release (NVIDIA GeForce 730)", "buildnumber": 2742, "generate_gtest_json": true, "git_revision": "8d86b413cc000d9f411b9d27636b1435bd9cc0dd", "mastername": "chromium.gpu.fyi", "parent_buildername": "GPU Win Builder", "parent_buildnumber": 62019, "parent_got_angle_revision": "d7c5b0aa8f3cc8d948f6f2e88509d7952ce5ce5e", "parent_got_buildtools_revision": "0ef801087682b271e9ace93cfa93e9d3dea98079", "parent_got_nacl_revision": "cb27d1fd35d71dce84de1458243f19ef23868f75", "parent_got_revision": "8d86b413cc000d9f411b9d27636b1435bd9cc0dd", "parent_got_revision_cp": "refs/heads/master@{#441061}", "parent_got_swarming_client_revision": "ebc8dab6f8b8d79ec221c94de39a921145abd404", "parent_got_v8_revision": "f3a8df7a2fa2d17d445da114b882b923091a4373", "parent_got_v8_revision_cp": "refs/heads/5.7.371@{#1}", "parent_got_webrtc_revision": "f34307955e63d2e192e1384075bde3eadd220214", "parent_got_webrtc_revision_cp": "refs/heads/master@{#15859}", "parent_mastername": "chromium.gpu.fyi", "path_config": "kitchen", "project": "src", "recipe": "chromium", "recipe_repository": "https://chromium.googlesource.com/chromium/tools/build.git", "repository": "https://chromium.googlesource.com/chromium/src", "requestedAt": 1483350691, "revision": "8d86b413cc000d9f411b9d27636b1435bd9cc0dd", "slavename": "build71-b1", "test_results_server": "test-results.appspot.com", "use_gitiles": false, "workdir": "C:\\\\b\\\\build\\\\slave/Win7_Release__NVIDIA_GeForce_730_"}', '--build-properties', '{"$recipe_engine": {"mode_flags": {"use_subprocess42": true}}, "blamelist": ["drott@chromium.org", "gambard@chromium.org", "mattcary@chromium.org", "mlippautz@chromium.org", "msarda@chromium.org", "olivierrobin@chromium.org", "perkj@chromium.org", "sigbjornf@opera.com", "v8-autoroll@chromium.org"], "branch": "master", "build_config": "Release", "build_data_dir": "C:\\\\b\\\\rr\\\\tmplrvjzc", "buildername": "Win7 Release (NVIDIA GeForce 730)", "buildnumber": 2742, "generate_gtest_json": true, "git_revision": "8d86b413cc000d9f411b9d27636b1435bd9cc0dd", "mastername": "chromium.gpu.fyi", "parent_buildername": "GPU Win Builder", "parent_buildnumber": 62019, "parent_got_angle_revision": "d7c5b0aa8f3cc8d948f6f2e88509d7952ce5ce5e", "parent_got_buildtools_revision": "0ef801087682b271e9ace93cfa93e9d3dea98079", "parent_got_nacl_revision": "cb27d1fd35d71dce84de1458243f19ef23868f75", "parent_got_revision": "8d86b413cc000d9f411b9d27636b1435bd9cc0dd", "parent_got_revision_cp": "refs/heads/master@{#441061}", "parent_got_swarming_client_revision": "ebc8dab6f8b8d79ec221c94de39a921145abd404", "parent_got_v8_revision": "f3a8df7a2fa2d17d445da114b882b923091a4373", "parent_got_v8_revision_cp": "refs/heads/5.7.371@{#1}", "parent_got_webrtc_revision": "f34307955e63d2e192e1384075bde3eadd220214", "parent_got_webrtc_revision_cp": "refs/heads/master@{#15859}", "parent_mastername": "chromium.gpu.fyi", "path_config": "kitchen", "project": "src", "recipe": "chromium", "recipe_repository": "https://chromium.googlesource.com/chromium/tools/build.git", "repository": "https://chromium.googlesource.com/chromium/src", "requestedAt": 1483350691, "revision": "8d86b413cc000d9f411b9d27636b1435bd9cc0dd", "slavename": "build71-b1", "test_results_server": "test-results.appspot.com", "use_gitiles": false, "workdir": "C:\\\\b\\\\build\\\\slave/Win7_Release__NVIDIA_GeForce_730_"}', '--annotate=gtest', '--test-type=angle_end2end_tests', '--step-name=angle_end2end_tests', '--test-launcher-summary-output', 'c:\\users\\chrome~1.lab\\appdata\\local\\temp\\tmpik8j0i.json', '--generate-json-file', '-o', 'gtest-results/angle_end2end_tests.exe', '--builder-name=Win7 Release (NVIDIA GeForce 730)', '--slave-name=build71-b1', '--build-number=2742', 'angle_end2end_tests.exe', '--use-gpu-in-tests', '--test-launcher-retry-limit=0'] cwd: C:\b\c\b\Win7_Release__NVIDIA_GeForce_730_ Something here might be amiss, but I'm not exactly sure what. I looked at runtest_wrapper.py and runtest.py and couldn't see where the directory was set. Ken can you help here? I'd be happy to try fixing this if you could tell me what needs to be done.
,
Jan 3 2017
We discussed this briefly during today's ANGLE meeting. Essentially, the current working directory is not well guaranteed on the bots. It looks like Swarming does a good job of making it consistent, but the non-Swarmed bots set it differently. Can you change things so that the path to these DLLs is specified relatively to the executable, rather than the current working directory? This was needed for some of the resources used by other tests on these bots. Then either the application can compute the path to the resource, knowing where the executable lives on disk, or the application can set CWD before continuing. The first approach would be preferred. I don't know where exactly in the recipes the CWD is set.
,
Jan 4 2017
I can change ANGLE to set the cwd before loading the layers, or make a more extensive change to the layers to add a method to communicate a path to load from at runtime. I think the first option is preferable to me, we can set the CWD only if layers are requested via the Vulkan extension. I'll give this a go.
,
Jan 5 2017
,
Jan 5 2017
The following revision refers to this bug: https://chromium.googlesource.com/angle/angle/+/dcab56a1b8158aafc37030f09606b9e888e82663 commit dcab56a1b8158aafc37030f09606b9e888e82663 Author: Jamie Madill <jmadill@chromium.org> Date: Thu Jan 05 19:47:34 2017 Move some file utils to common. Since common is shared through all ANGLE code (libANGLE/tests/samples) this is the most general place for these utils, and will give libANGLE access to them. We'll need them to get the current executable dir for loading the Vulkan layers. This also means we'll need to fix the global static variable use when we have the ability. BUG= angleproject:1319 BUG= chromium:677841 Change-Id: I7af61920635135b28a2f02f4a8d019ee88c9dd28 Reviewed-on: https://chromium-review.googlesource.com/425440 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> [modify] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/src/tests/BUILD.gn [rename] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/src/common/system_utils_mac.cpp [modify] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/samples/samples.gyp [modify] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/util/windows/Windows_system_utils.cpp [modify] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/util/system_utils.h [modify] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/util/util.gyp [modify] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/src/tests/deqp.gypi [modify] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/BUILD.gn [modify] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/src/angle.gyp [add] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/src/common/system_utils.h [modify] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/src/libGLESv2.gypi [add] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/src/common/system_utils_win.cpp [rename] https://crrev.com/dcab56a1b8158aafc37030f09606b9e888e82663/src/common/system_utils_linux.cpp
,
Jan 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/angle/angle/+/a66779fcf2aeed8588bcc1ba6a3668d81e65bf3b commit a66779fcf2aeed8588bcc1ba6a3668d81e65bf3b Author: Jamie Madill <jmadill@chromium.org> Date: Fri Jan 06 15:43:44 2017 Vulkan: Load layers relative to executable dir. Instead of baking in a relative path and expecting the app to run from a fixed directory, we can change the CWD at runtime so the layers can load relative to the current executable directory. Future alternatives could include modifying the layers SDK to provide a path dynamically, but for now the relative paths must be baked in at compile-time. BUG= angleproject:1319 BUG= chromium:677841 Change-Id: I443b6b35d38276ea667cdf08ec2204ea280b6cec Reviewed-on: https://chromium-review.googlesource.com/425441 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> [modify] https://crrev.com/a66779fcf2aeed8588bcc1ba6a3668d81e65bf3b/src/libANGLE/renderer/vulkan/RendererVk.cpp [modify] https://crrev.com/a66779fcf2aeed8588bcc1ba6a3668d81e65bf3b/src/vulkan_support/BUILD.gn [modify] https://crrev.com/a66779fcf2aeed8588bcc1ba6a3668d81e65bf3b/src/common/system_utils_mac.cpp [modify] https://crrev.com/a66779fcf2aeed8588bcc1ba6a3668d81e65bf3b/scripts/generate_vulkan_header.py [modify] https://crrev.com/a66779fcf2aeed8588bcc1ba6a3668d81e65bf3b/src/common/system_utils.h [modify] https://crrev.com/a66779fcf2aeed8588bcc1ba6a3668d81e65bf3b/src/common/system_utils_win.cpp [modify] https://crrev.com/a66779fcf2aeed8588bcc1ba6a3668d81e65bf3b/src/common/system_utils_linux.cpp
,
Jan 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d6f9158ff62fff689993067c3273ccb7beecbc16 commit d6f9158ff62fff689993067c3273ccb7beecbc16 Author: jmadill <jmadill@chromium.org> Date: Fri Jan 06 21:10:15 2017 Roll ANGLE a818c32..a66779f https://chromium.googlesource.com/angle/angle.git/+log/a818c32..a66779f BUG= chromium:677841 , chromium:644610 TBR=geofflang@chromium.org TEST=bots CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2614063006 Cr-Commit-Position: refs/heads/master@{#442051} [modify] https://crrev.com/d6f9158ff62fff689993067c3273ccb7beecbc16/DEPS
,
Jan 16 2017
The bot has since turned green. Mark as fixed. |
||||
►
Sign in to add a comment |
||||
Comment 1 by jmad...@chromium.org
, Jan 2 2017