Coverage Report

Created: 2021-08-22 09:07

/src/skia/src/gpu/GrWaitRenderTask.cpp
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2019 Google LLC
3
 *
4
 * Use of this source code is governed by a BSD-style license that can be
5
 * found in the LICENSE file.
6
 */
7
8
#include "src/gpu/GrWaitRenderTask.h"
9
10
#include "src/gpu/GrGpu.h"
11
#include "src/gpu/GrOpFlushState.h"
12
#include "src/gpu/GrResourceAllocator.h"
13
14
0
void GrWaitRenderTask::gatherProxyIntervals(GrResourceAllocator* alloc) const {
15
    // This renderTask doesn't have "normal" ops. In this case we still need to add an interval (so
16
    // fEndOfOpsTaskOpIndices will remain in sync), so we create a fake op# to capture the fact that
17
    // we manipulate our target's proxy.
18
0
    SkASSERT(0 == this->numTargets());
19
0
    auto fakeOp = alloc->curOp();
20
0
    alloc->addInterval(fWaitedOn.proxy(), fakeOp, fakeOp,
21
0
                       GrResourceAllocator::ActualUse::kYes);
22
0
    alloc->incOps();
23
0
}
Unexecuted instantiation: GrWaitRenderTask::gatherProxyIntervals(GrResourceAllocator*) const
Unexecuted instantiation: GrWaitRenderTask::gatherProxyIntervals(GrResourceAllocator*) const
24
25
0
bool GrWaitRenderTask::onExecute(GrOpFlushState* flushState) {
26
0
    for (int i = 0; i < fNumSemaphores; ++i) {
27
        // If we don't have a semaphore here it means we failed to wrap it. That happens if the
28
        // client didn't give us a valid semaphore to begin with. Therefore, it is fine to not wait
29
        // on it.
30
0
        if (fSemaphores[i]) {
31
0
            flushState->gpu()->waitSemaphore(fSemaphores[i].get());
32
0
        }
33
0
    }
34
0
    return true;
35
0
}