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

Commit ed40eba4 authored by Dan Stoza's avatar Dan Stoza
Browse files

HWC2: Add getHdrCapabilities stub to adapter

Adds a minimal getHdrCapabilities stub to the HWC2On1Adapter, which
always returns 0 supported HDR types (as per the HWC2 spec).

Bug: 25684127
Change-Id: I472ad9f08d1b97d5de69d044790badf3af60da72
parent 90e840f0
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -238,6 +238,11 @@ hwc2_function_pointer_t HWC2On1Adapter::doGetFunction(
            return asFP<HWC2_PFN_GET_DOZE_SUPPORT>(
                    displayHook<decltype(&Display::getDozeSupport),
                    &Display::getDozeSupport, int32_t*>);
        case FunctionDescriptor::GetHdrCapabilities:
            return asFP<HWC2_PFN_GET_HDR_CAPABILITIES>(
                    displayHook<decltype(&Display::getHdrCapabilities),
                    &Display::getHdrCapabilities, uint32_t*, int32_t*, float*,
                    float*, float*>);
        case FunctionDescriptor::GetReleaseFences:
            return asFP<HWC2_PFN_GET_RELEASE_FENCES>(
                    displayHook<decltype(&Display::getReleaseFences),
@@ -709,6 +714,15 @@ Error HWC2On1Adapter::Display::getDozeSupport(int32_t* outSupport)
    return Error::None;
}

Error HWC2On1Adapter::Display::getHdrCapabilities(uint32_t* outNumTypes,
        int32_t* /*outTypes*/, float* /*outMaxLuminance*/,
        float* /*outMaxAverageLuminance*/, float* /*outMinLuminance*/)
{
    // This isn't supported on HWC1, so per the HWC2 header, return numTypes = 0
    *outNumTypes = 0;
    return Error::None;
}

Error HWC2On1Adapter::Display::getName(uint32_t* outSize, char* outName)
{
    std::unique_lock<std::recursive_mutex> lock(mStateMutex);
+3 −0
Original line number Diff line number Diff line
@@ -194,6 +194,9 @@ private:
            HWC2::Error getConfigs(uint32_t* outNumConfigs,
                    hwc2_config_t* outConfigIds);
            HWC2::Error getDozeSupport(int32_t* outSupport);
            HWC2::Error getHdrCapabilities(uint32_t* outNumTypes,
                    int32_t* outTypes, float* outMaxLuminance,
                    float* outMaxAverageLuminance, float* outMinLuminance);
            HWC2::Error getName(uint32_t* outSize, char* outName);
            HWC2::Error getReleaseFences(uint32_t* outNumElements,
                    hwc2_layer_t* outLayers, int32_t* outFences);