summaryrefslogtreecommitdiff
path: root/libs/graphicsenv/IGpuService.cpp
diff options
context:
space:
mode:
author Tim Van Patten <timvp@google.com> 2025-01-13 14:03:59 -0700
committer Tim Van Patten <timvp@google.com> 2025-02-13 09:28:37 -0700
commit04502468c44452c6eadaf59fdf5e2e8e79b36171 (patch)
treed27cad2b154d7c5cb4e8a38c42b1ad4026955f7e /libs/graphicsenv/IGpuService.cpp
parent4a5fd7e262df85180d9e6bd247cdb40c65f2ea85 (diff)
IGpuService: Add getFeatureOverrides()
Add getFeatureOverrides() to the IGpuService interface. This function returns the list of feature overrides parsed by GpuService to the caller. This list of feature overrides will be stored by GraphicsEnv, so it can later be used to override features when creating the ANGLE EGL display. Bug: 372694741 Test: CQ Flag: com.android.graphics.graphicsenv.flags.feature_overrides Change-Id: Idb727e23306c3deb2b8f98e6db3d9906bb63598f
Diffstat (limited to 'libs/graphicsenv/IGpuService.cpp')
-rw-r--r--libs/graphicsenv/IGpuService.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/libs/graphicsenv/IGpuService.cpp b/libs/graphicsenv/IGpuService.cpp
index 42e7c378a9..9a34aff299 100644
--- a/libs/graphicsenv/IGpuService.cpp
+++ b/libs/graphicsenv/IGpuService.cpp
@@ -119,6 +119,21 @@ public:
}
return driverPath;
}
+
+ FeatureOverrides getFeatureOverrides() override {
+ Parcel data, reply;
+ data.writeInterfaceToken(IGpuService::getInterfaceDescriptor());
+
+ FeatureOverrides featureOverrides;
+ status_t error =
+ remote()->transact(BnGpuService::GET_FEATURE_CONFIG_OVERRIDES, data, &reply);
+ if (error != OK) {
+ return featureOverrides;
+ }
+
+ featureOverrides.readFromParcel(&reply);
+ return featureOverrides;
+ }
};
IMPLEMENT_META_INTERFACE(GpuService, "android.graphicsenv.IGpuService");
@@ -271,6 +286,15 @@ status_t BnGpuService::onTransact(uint32_t code, const Parcel& data, Parcel* rep
toggleAngleAsSystemDriver(enableAngleAsSystemDriver);
return OK;
}
+ case GET_FEATURE_CONFIG_OVERRIDES: {
+ CHECK_INTERFACE(IGpuService, data, reply);
+
+ // Get the FeatureOverrides from gpuservice, which implements the IGpuService interface
+ // with GpuService::getFeatureOverrides().
+ FeatureOverrides featureOverrides = getFeatureOverrides();
+ featureOverrides.writeToParcel(reply);
+ return OK;
+ }
default:
return BBinder::onTransact(code, data, reply, flags);
}