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

Commit 5210624e authored by Valerie Hau's avatar Valerie Hau Committed by Android (Google) Code Review
Browse files

Merge changes Ieb4d16d1,Icef95925 into qt-dev

* changes:
  Adding testing for slot generation
  Change slot generation for BufferState
parents e6aef129 64499680
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ public:
                                     const sp<IBinder>& applyToken,
                                     const InputWindowCommands& commands,
                                     int64_t desiredPresentTime,
                                     const cached_buffer_t& uncacheBuffer,
                                     const client_cache_t& uncacheBuffer,
                                     const std::vector<ListenerCallbacks>& listenerCallbacks) {
        Parcel data, reply;
        data.writeInterfaceToken(ISurfaceComposer::getInterfaceDescriptor());
@@ -88,8 +88,8 @@ public:
        data.writeStrongBinder(applyToken);
        commands.write(data);
        data.writeInt64(desiredPresentTime);
        data.writeStrongBinder(uncacheBuffer.token);
        data.writeUint64(uncacheBuffer.cacheId);
        data.writeWeakBinder(uncacheBuffer.token);
        data.writeUint64(uncacheBuffer.id);

        if (data.writeVectorSize(listenerCallbacks) == NO_ERROR) {
            for (const auto& [listener, callbackIds] : listenerCallbacks) {
@@ -991,9 +991,9 @@ status_t BnSurfaceComposer::onTransact(

            int64_t desiredPresentTime = data.readInt64();

            cached_buffer_t uncachedBuffer;
            uncachedBuffer.token = data.readStrongBinder();
            uncachedBuffer.cacheId = data.readUint64();
            client_cache_t uncachedBuffer;
            uncachedBuffer.token = data.readWeakBinder();
            uncachedBuffer.id = data.readUint64();

            std::vector<ListenerCallbacks> listenerCallbacks;
            int32_t listenersSize = data.readInt32();
+4 −4
Original line number Diff line number Diff line
@@ -87,8 +87,8 @@ status_t layer_state_t::write(Parcel& output) const
           colorTransform.asArray(), 16 * sizeof(float));
    output.writeFloat(cornerRadius);
    output.writeBool(hasListenerCallbacks);
    output.writeStrongBinder(cachedBuffer.token);
    output.writeUint64(cachedBuffer.cacheId);
    output.writeWeakBinder(cachedBuffer.token);
    output.writeUint64(cachedBuffer.id);
    output.writeParcelable(metadata);

    output.writeFloat(bgColorAlpha);
@@ -157,8 +157,8 @@ status_t layer_state_t::read(const Parcel& input)
    colorTransform = mat4(static_cast<const float*>(input.readInplace(16 * sizeof(float))));
    cornerRadius = input.readFloat();
    hasListenerCallbacks = input.readBool();
    cachedBuffer.token = input.readStrongBinder();
    cachedBuffer.cacheId = input.readUint64();
    cachedBuffer.token = input.readWeakBinder();
    cachedBuffer.id = input.readUint64();
    input.readParcelable(&metadata);

    bgColorAlpha = input.readFloat();
+3 −3
Original line number Diff line number Diff line
@@ -388,9 +388,9 @@ void SurfaceComposerClient::doDropReferenceTransaction(const sp<IBinder>& handle
void SurfaceComposerClient::doUncacheBufferTransaction(uint64_t cacheId) {
    sp<ISurfaceComposer> sf(ComposerService::getComposerService());

    cached_buffer_t uncacheBuffer;
    client_cache_t uncacheBuffer;
    uncacheBuffer.token = BufferCache::getInstance().getToken();
    uncacheBuffer.cacheId = cacheId;
    uncacheBuffer.id = cacheId;

    sp<IBinder> applyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance());
    sf->setTransactionState({}, {}, 0, applyToken, {}, -1, uncacheBuffer, {});
@@ -424,7 +424,7 @@ void SurfaceComposerClient::Transaction::cacheBuffers() {
        }
        s->what |= layer_state_t::eCachedBufferChanged;
        s->cachedBuffer.token = BufferCache::getInstance().getToken();
        s->cachedBuffer.cacheId = cacheId;
        s->cachedBuffer.id = cacheId;

        // If we have more buffers than the size of the cache, we should stop caching so we don't
        // evict other buffers in this transaction
+2 −2
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@
namespace android {
// ----------------------------------------------------------------------------

struct cached_buffer_t;
struct client_cache_t;
struct ComposerState;
struct DisplayState;
struct DisplayInfo;
@@ -137,7 +137,7 @@ public:
                                     const sp<IBinder>& applyToken,
                                     const InputWindowCommands& inputWindowCommands,
                                     int64_t desiredPresentTime,
                                     const cached_buffer_t& uncacheBuffer,
                                     const client_cache_t& uncacheBuffer,
                                     const std::vector<ListenerCallbacks>& listenerCallbacks) = 0;

    /* signal that we're done booting.
+8 −4
Original line number Diff line number Diff line
@@ -40,9 +40,13 @@ namespace android {
class Parcel;
class ISurfaceComposerClient;

struct cached_buffer_t {
    sp<IBinder> token = nullptr;
    uint64_t cacheId;
struct client_cache_t {
    wp<IBinder> token = nullptr;
    uint64_t id;

    bool operator==(const client_cache_t& other) const { return id == other.id; }

    bool isValid() const { return token != nullptr; }
};

/*
@@ -187,7 +191,7 @@ struct layer_state_t {
    InputWindowInfo inputInfo;
#endif

    cached_buffer_t cachedBuffer;
    client_cache_t cachedBuffer;

    LayerMetadata metadata;

Loading