Incremental compilation fails to include a change in a base class header for ProgrammablePassEncoder
Categories
(Firefox Build System :: General, defect)
Tracking
(Not tracked)
People
(Reporter: kvark, Unassigned)
Details
In https://phabricator.services.mozilla.com/D46166, the ProgrammablePassEncoder is derived by RenderEncoderBase and ComputePassEncoder. It appears that changing the "ProgrammablePassEncoder.h" is sometimes getting broken by incremental compilation.
For example, I added "GPU_DECL_CYCLE_COLLECTION(ProgrammablePassEncoder)" at some point, which adds a mRefCnt field to this base class. Gecko compiled and linked locally (incrementally), while a try push revealed the problem with multiple mRefCnt: https://treeherder.mozilla.org/#/jobs?repo=try&author=dmalyshau%40mozilla.com&selectedJob=268507355
The "h_and_cpp" section of the "dom/webgpu/moz.build" has entries for "ProgrammablePassEncoder" and its derived classes. Did I miss any configuration steps, or is it a bug in our build system? I expect the local incremental builds to always match the try builds.
Comment 1•6 years ago
|
||
Do the same .cpp files giving the error on try also get recompiled locally when you change ProgrammablePassEncoder.h?
Comment 2•6 years ago
|
||
The error on the try push looks like this one:
error: Refcounted record 'ComputePassEncoder' has multiple mRefCnt members
This is coming from our static analysis, which is run on builds on try but does not run locally by default, unless you enable it. Specifically, it's coming from https://searchfox.org/mozilla-central/rev/f1e99da78fe6c3c68696358dac06aed90f8112d3/build/clang-plugin/NoDuplicateRefCntMemberChecker.cpp#37
| Reporter | ||
Comment 3•6 years ago
|
||
Do the same .cpp files giving the error on try also get recompiled locally when you change ProgrammablePassEncoder.h?
How do I check this? I only see "dom/webgpu" in the build output.
This is coming from our static analysis
Ok, thanks for clarifying. Since this is by design, I'm going to close this issue.
Comment 4•6 years ago
|
||
(In reply to Dzmitry Malyshau [:kvark] from comment #3)
Do the same .cpp files giving the error on try also get recompiled locally when you change ProgrammablePassEncoder.h?
How do I check this? I only see "dom/webgpu" in the build output.
Checking timestamps on the object files is one way to confirm that they got compiled. mach build -v, I think, also prints out all the compiler invocations.
Description
•