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

Commit 59f1ff99 authored by Jeff Brown's avatar Jeff Brown
Browse files

Delete latency tracking information in the Connection.

The information gathered here will no longer be valid once we
start dispatching multiple events at a time to the same connection.
Moreover, we are more concerned with end-to-end latency, which we
can measure with sufficiently high accuracy in other ways.

This is part of a series of changes to improve input system pipelining.

Bug: 5963420

Change-Id: I49a0c9876b64af56b40e96e0d98c45f325da2a73
parent 9831d90d
Loading
Loading
Loading
Loading
+3 −12
Original line number Diff line number Diff line
@@ -1926,10 +1926,6 @@ void InputDispatcher::startDispatchCycleLocked(nsecs_t currentTime,
    }
    }

    // Record information about the newly started dispatch cycle.
    connection->lastEventTime = eventEntry->eventTime;
    connection->lastDispatchTime = currentTime;

    // Notify other system components.
    onDispatchCycleStartedLocked(currentTime, connection);
}
@@ -1937,12 +1933,8 @@ void InputDispatcher::startDispatchCycleLocked(nsecs_t currentTime,
void InputDispatcher::finishDispatchCycleLocked(nsecs_t currentTime,
        const sp<Connection>& connection, bool handled) {
#if DEBUG_DISPATCH_CYCLE
    ALOGD("channel '%s' ~ finishDispatchCycle - %01.1fms since event, "
            "%01.1fms since dispatch, handled=%s",
            connection->getInputChannelName(),
            connection->getEventLatencyMillis(currentTime),
            connection->getDispatchLatencyMillis(currentTime),
            toString(handled));
    ALOGD("channel '%s' ~ finishDispatchCycle - handled=%s",
            connection->getInputChannelName(), toString(handled));
#endif

    if (connection->status == Connection::STATUS_BROKEN
@@ -3951,8 +3943,7 @@ InputDispatcher::Connection::Connection(const sp<InputChannel>& inputChannel,
        const sp<InputWindowHandle>& inputWindowHandle, bool monitor) :
        status(STATUS_NORMAL), inputChannel(inputChannel), inputWindowHandle(inputWindowHandle),
        monitor(monitor),
        inputPublisher(inputChannel),
        lastEventTime(LONG_LONG_MAX), lastDispatchTime(LONG_LONG_MAX) {
        inputPublisher(inputChannel) {
}

InputDispatcher::Connection::~Connection() {
+0 −13
Original line number Diff line number Diff line
@@ -784,9 +784,6 @@ private:
        InputState inputState;
        Queue<DispatchEntry> outboundQueue;

        nsecs_t lastEventTime; // the time when the event was originally captured
        nsecs_t lastDispatchTime; // the time when the last event was dispatched

        explicit Connection(const sp<InputChannel>& inputChannel,
                const sp<InputWindowHandle>& inputWindowHandle, bool monitor);

@@ -797,16 +794,6 @@ private:
        // Finds a DispatchEntry in the outbound queue associated with the specified event.
        // Returns NULL if not found.
        DispatchEntry* findQueuedDispatchEntryForEvent(const EventEntry* eventEntry) const;

        // Gets the time since the current event was originally obtained from the input driver.
        inline double getEventLatencyMillis(nsecs_t currentTime) const {
            return (currentTime - lastEventTime) / 1000000.0;
        }

        // Gets the time since the current event entered the outbound dispatch queue.
        inline double getDispatchLatencyMillis(nsecs_t currentTime) const {
            return (currentTime - lastDispatchTime) / 1000000.0;
        }
    };

    enum DropReason {