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

Commit 2b42fa7f authored by Mathias Agopian's avatar Mathias Agopian
Browse files

fix 1803886 android15 Translucent GLSurfaceView demo does not display properly

parent 4c9ff468
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -573,7 +573,11 @@ void GPUHardware::binderDied(const wp<IBinder>& who)

sp<GPUHardwareInterface> GPUFactory::getGPU()
{
    return new GPUHardware();
    sp<GPUHardwareInterface> gpu;
    if (access("/dev/hw3d", F_OK) == 0) {
        gpu = new GPUHardware();
    }
    return gpu;
}

// ---------------------------------------------------------------------------
+1 −1
Original line number Diff line number Diff line
@@ -108,7 +108,7 @@ status_t Layer::setBuffers( Client* client,
    // we always force a 4-byte aligned bpr.
    uint32_t alignment = 1;

    if (flags & ISurfaceComposer::eGPU) {
    if ((flags & ISurfaceComposer::eGPU) && (mFlinger->getGPU() != 0)) {
        // FIXME: this value should come from the h/w
        alignment = 8; 
        // FIXME: this is msm7201A specific, as its GPU only supports
+12 −2
Original line number Diff line number Diff line
@@ -241,6 +241,9 @@ sp<IMemory> SurfaceFlinger::getCblk() const
status_t SurfaceFlinger::requestGPU(const sp<IGPUCallback>& callback,
        gpu_info_t* gpu)
{
    if (mGPU == 0)
        return INVALID_OPERATION;

    IPCThreadState* ipc = IPCThreadState::self();
    const int pid = ipc->getCallingPid();
    status_t err = mGPU->request(pid, callback, gpu);
@@ -249,6 +252,9 @@ status_t SurfaceFlinger::requestGPU(const sp<IGPUCallback>& callback,

status_t SurfaceFlinger::revokeGPU()
{
    if (mGPU == 0)
        return INVALID_OPERATION;

    return mGPU->friendlyRevoke();
}

@@ -1600,10 +1606,14 @@ status_t SurfaceFlinger::onTransact(
            }
            return NO_ERROR;
            case 1005: // ask GPU revoke
                if (mGPU != 0) {
                    mGPU->friendlyRevoke();
                }
                return NO_ERROR;
            case 1006: // revoke GPU
                if (mGPU != 0) {
                    mGPU->unconditionalRevoke();
                }
                return NO_ERROR;
            case 1007: // set mFreezeCount
                mFreezeCount = data.readInt32();
+1 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ sp<MemoryDealer> SurfaceHeapManager::createHeap(
        }
    }

    if (flags & ISurfaceComposer::eGPU) {
    if ((flags & ISurfaceComposer::eGPU) && (mFlinger->getGPU() != 0)) {
        // FIXME: this is msm7201A specific, where gpu surfaces may not be secure
        if (!(flags & ISurfaceComposer::eSecure)) {
            // if GPU doesn't work, we try eHardware