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

Commit c2060cb4 authored by Marin Shalamanov's avatar Marin Shalamanov
Browse files

Always send Game Content Type down to the HAL

Even if Game Content Type is not supported on the connected
display we need to propagate the requested state down
to the HAL. This is because some devices with external displays,
such as Android TV set-top boxes, use this signal to
disable/enable on-device processing.

Fixes: 202007307
Test: on a device where both ALLM and GAME content type are
      not supported, request minimal post processing from an
      app and using logs verify that setContentType(GAME)
      is called in the HAL
Change-Id: I8bc0d8de0ee54d4ff47d9979b75740aa12121190
parent 41f7c354
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -1632,14 +1632,14 @@ public final class DisplayManagerService extends SystemService {
            mDisplayModeDirector.getAppRequestObserver().setAppRequest(
                    displayId, requestedModeId, requestedMinRefreshRate, requestedMaxRefreshRate);

            if (display.getDisplayInfoLocked().minimalPostProcessingSupported) {
            // TODO(b/202378408) set minimal post-processing only if it's supported once we have a
            // separate API for disabling on-device processing.
            boolean mppRequest = mMinimalPostProcessingAllowed && preferMinimalPostProcessing;

            if (display.getRequestedMinimalPostProcessingLocked() != mppRequest) {
                display.setRequestedMinimalPostProcessingLocked(mppRequest);
                shouldScheduleTraversal = true;
            }
            }

            if (shouldScheduleTraversal) {
                scheduleTraversalLocked(inTraversal);
+6 −6
Original line number Diff line number Diff line
@@ -993,12 +993,12 @@ final class LocalDisplayAdapter extends DisplayAdapter {

            mGameContentTypeRequested = on;

            if (!mGameContentTypeSupported) {
                Slog.d(TAG, "Unable to set game content type because the connected "
                        + "display does not support game content type.");
                return;
            }

            // Even if game content type is not supported on the connected display we
            // propagate the requested state down to the HAL. This is because some devices
            // with external displays, such as Android TV set-top boxes, use this signal
            // to disable/enable on-device processing.
            // TODO(b/202378408) set game content type only if it's supported once we have a
            // separate API for disabling on-device processing.
            mSurfaceControlProxy.setGameContentType(getDisplayTokenLocked(), on);
        }