Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c7502618 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove gpumemtracer bloat"

parents 918221f3 aa51651e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ cc_test {
    ],
    static_libs: [
        "libgmock",
        "libperfetto_client_experimental",
        "perfetto_trace_protos",
    ],
    require_root: true,
+18 −2
Original line number Diff line number Diff line
@@ -75,6 +75,22 @@ public:

    int getTracerThreadCount() { return mGpuMemTracer->tracerThreadCount; }

    std::vector<perfetto::protos::TracePacket> readGpuMemTotalPacketsBlocking(
            perfetto::TracingSession* tracingSession) {
        std::vector<char> raw_trace = tracingSession->ReadTraceBlocking();
        perfetto::protos::Trace trace;
        trace.ParseFromArray(raw_trace.data(), int(raw_trace.size()));

        std::vector<perfetto::protos::TracePacket> packets;
        for (const auto& packet : trace.packet()) {
            if (!packet.has_gpu_mem_total_event()) {
                continue;
            }
            packets.emplace_back(packet);
        }
        return packets;
    }

    std::shared_ptr<GpuMem> mGpuMem;
    TestableGpuMem mTestableGpuMem;
    std::unique_ptr<GpuMemTracer> mGpuMemTracer;
@@ -125,7 +141,7 @@ TEST_F(GpuMemTracerTest, traceInitialCountersAfterGpuMemInitialize) {
    // The test tracer thread should have finished its execution by now.
    EXPECT_EQ(getTracerThreadCount(), 0);

    auto packets = mGpuMemTracer->readGpuMemTotalPacketsForTestBlocking(tracingSession.get());
    auto packets = readGpuMemTotalPacketsBlocking(tracingSession.get());
    EXPECT_EQ(packets.size(), 3);

    const auto& packet0 = packets[0];
@@ -176,7 +192,7 @@ TEST_F(GpuMemTracerTest, noTracingWithoutGpuMemInitialize) {
    // The test tracer thread should have finished its execution by now.
    EXPECT_EQ(getTracerThreadCount(), 0);

    auto packets = mGpuMemTracer->readGpuMemTotalPacketsForTestBlocking(tracingSession.get());
    auto packets = readGpuMemTotalPacketsBlocking(tracingSession.get());
    EXPECT_EQ(packets.size(), 0);
}
} // namespace android
+0 −3
Original line number Diff line number Diff line
@@ -21,13 +21,10 @@ cc_library_shared {
        "libgpumem",
        "libbase",
        "liblog",
        "libprotobuf-cpp-lite",
        "libprotoutil",
        "libutils",
    ],
    static_libs: [
        "libperfetto_client_experimental",
        "perfetto_trace_protos",
    ],
    export_include_dirs: ["include"],
    export_static_lib_headers: [
+0 −17
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@

#include <gpumem/GpuMem.h>
#include <perfetto/trace/android/gpu_mem_event.pbzero.h>
#include <perfetto/trace/trace.pb.h>
#include <unistd.h>

#include <thread>
@@ -63,22 +62,6 @@ void GpuMemTracer::initializeForTest(std::shared_ptr<GpuMem> gpuMem) {
    tracerThreadCount++;
}

std::vector<perfetto::protos::TracePacket> GpuMemTracer::readGpuMemTotalPacketsForTestBlocking(
        perfetto::TracingSession* tracingSession) {
    std::vector<char> raw_trace = tracingSession->ReadTraceBlocking();
    perfetto::protos::Trace trace;
    trace.ParseFromArray(raw_trace.data(), int(raw_trace.size()));

    std::vector<perfetto::protos::TracePacket> packets;
    for (const auto& packet : trace.packet()) {
        if (!packet.has_gpu_mem_total_event()) {
            continue;
        }
        packets.emplace_back(packet);
    }
    return packets;
}

// Each tracing session can be used for a single block of Start -> Stop.
std::unique_ptr<perfetto::TracingSession> GpuMemTracer::getTracingSessionForTest() {
    perfetto::TraceConfig cfg;