New issue
Advanced search Search tips

Issue 799620 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug

Blocked on:
issue 800409

Blocking:
issue angleproject:2237


Show other hotlists

Hotlists containing this issue:
Chromium-Packagers


Sign in to add a comment

ANGLE assumes .git is always present

Reported by sl1pk...@gmail.com, Jan 5 2018

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3294.5 Safari/537.36

Steps to reproduce the problem:
1. download sources of chromium-dev channel 65.0.3311.3
2. clone spirv-tools repo from https://github.com/KhronosGroup/SPIRV-Tools.git into third-party/spirv-tools-angle/src due a missing files in chromium-dev tarball (see comments)
3. start build

What is the expected behavior?
build OK

What went wrong?
fail build

[6021/35065] /usr/bin/python2 ../../third_party/spirv-tools-angle/src/utils/generate_grammar_tables.py --spirv-core-grammar=../../third_party/spirv-headers/src/include/spirv/1.0/spirv.core.grammar.json --core-insts-output=gen/third_party/angle/src/vulkan_support/angle/vulkan/core.insts-1.0.inc --operand-kinds-output=gen/third_party/angle/src/vulkan_support/angle/vulkan/operand.kinds-1.0.inc
FAILED: gen/third_party/angle/src/vulkan_support/angle/vulkan/core.insts-1.0.inc gen/third_party/angle/src/vulkan_support/angle/vulkan/operand.kinds-1.0.inc 
/usr/bin/python2 ../../third_party/spirv-tools-angle/src/utils/generate_grammar_tables.py --spirv-core-grammar=../../third_party/spirv-headers/src/include/spirv/1.0/spirv.core.grammar.json --core-insts-output=gen/third_party/angle/src/vulkan_support/angle/vulkan/core.insts-1.0.inc --operand-kinds-output=gen/third_party/angle/src/vulkan_support/angle/vulkan/operand.kinds-1.0.inc
error: --operand-kinds-output requires --spirv-core-grammar and --exinst-debuginfo-grammar

Did this work before? Yes 65.0.3298.3

Chrome version: 65.0.3294.5  Channel: n/a
OS Version: 
Flash Version: 

as say en the steps, need clone https://github.com/KhronosGroup/SPIRV-Tools.git repo into third_party/spirv-tools-angle/src directory

Done. Made 7665 targets from 1463 files in 2514ms
ninja: Entering directory `out/Release'
ninja: error: '../../third_party/spirv-tools-angle/src/.git/HEAD', needed by 'obj/third_party/angle/src/vulkan_support/spirv_tools_external_revision_generate.inputdeps.stamp', missing and no known rule to make it

then start build again and see the fail
 
Cc: thomasanderson@chromium.org jmad...@chromium.org
Status: Available (was: Unconfirmed)
+jmadill

The issue is that .git directories get removed from the tarballs, but spirv_tools_external_revision_generate [1] requires .git/HEAD and .git/index.  I see the revision is already in third_party/angle/DEPS.  Is the revision sufficient information for angle?  I would like to avoid adding an exception for spirv-tools-angle/.git, but it would be possible as a last resort.

[1] https://cs.chromium.org/chromium/src/third_party/angle/src/vulkan_support/BUILD.gn?rcl=4a66ef3d8263d980111c74e502244083c53e4d83&l=149
Owner: jmad...@chromium.org
Status: Assigned (was: Available)
Oh yes, I think we ran into this problem as well with ANGLE's commit versioning. We could make a wrapper script around external_revision_generate, or we could modify it upstream to robustly handle the absence of .git/HEAD. I can take a look at this Monday- if it's super high priority it might be easiest to force disable Vulkan in ANGLE by modifying angle.gni to set angle_enable_vulkan = false. Sorry about that.
Labels: -Via-Wizard-Other
Summary: ANGLE assumes .git is always present (was: fail build 65.0.33.11.3)
Blocking: angleproject:2237
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/949b4f07fd1ef5b208136fe38327c28c95f18928

commit 949b4f07fd1ef5b208136fe38327c28c95f18928
Author: Jamie Madill <jmadill@chromium.org>
Date: Mon Jan 08 18:13:34 2018

Vulkan: Allow for no .git directory in build.

The SPIRV-Tools 'external revision generate' script is coded such that
it assumes a .git folder is present. This causes a problem for the
tarball build. We can fix this by using the same tooling we use for
ANGLE's commit id script to check if the .git directory is present
before running the generator. If it is missing, we insert a hard-coded
dummy header. Also use the 'DEPS' file as a placeholder for .git/HEAD
to check if the current revision needs updating.

Bug:  chromium:799620 
Bug:  angleproject:2237 
Change-Id: Icea8e9c66f1600df7dca2aaa45fe449f687f5b55
Reviewed-on: https://chromium-review.googlesource.com/854255
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>

[add] https://crrev.com/949b4f07fd1ef5b208136fe38327c28c95f18928/src/vulkan_support/dummy_spirv_tools_commit_id.h
[modify] https://crrev.com/949b4f07fd1ef5b208136fe38327c28c95f18928/src/vulkan_support/BUILD.gn
[modify] https://crrev.com/949b4f07fd1ef5b208136fe38327c28c95f18928/src/commit_id.py

Owner: thomasanderson@chromium.org
This should be fixed in ToT. Can you verify Thomas?

https://chromium-review.googlesource.com/c/chromium/src/+/854638
I'll test when the new tarballs get pushed out later today
Blockedon: 800409
New tarballs aren't getting published for some reason ( bug 800409 ), but I'll test as soon as that gets fixed.
FWIW, I successfully built ubuntu packages based on the 65.0.3311.3 tarball, with an additional distro-patch containing https://chromium.googlesource.com/angle/angle/+/949b4f07fd1ef5b208136fe38327c28c95f18928.
Status: Fixed (was: Assigned)
c#9: Thanks, that's enough convincing for me :)
Great. Thanks for following up.

Sign in to add a comment