Closed Bug 1584179 Opened 6 years ago Closed 6 years ago

Incremental compilation fails to include a change in a base class header for ProgrammablePassEncoder

Categories

(Firefox Build System :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

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.

Do the same .cpp files giving the error on try also get recompiled locally when you change ProgrammablePassEncoder.h?

Flags: needinfo?(dmalyshau)

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

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.

Status: NEW → RESOLVED
Closed: 6 years ago
Flags: needinfo?(dmalyshau)
Resolution: --- → INVALID

(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.

You need to log in before you can comment on or make changes to this bug.