composer: Add speculative FB interface
Change-Id: I06ee4dba7af1ad9160a244f89c1d8eaaaeea2007
This commit is contained in:
49
display/composer/3.1/IQtiComposer.hal
Normal file
49
display/composer/3.1/IQtiComposer.hal
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (c) 2021 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation. nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package vendor.qti.hardware.display.composer@3.1;
|
||||
|
||||
import @3.0::IQtiComposer;
|
||||
import IQtiComposerClient;
|
||||
import android.hardware.graphics.composer@2.1::Error;
|
||||
|
||||
interface IQtiComposer extends @3.0::IQtiComposer {
|
||||
/**
|
||||
* Creates a v3.1 client of the composer.
|
||||
*
|
||||
* @return error is NONE upon success. Otherwise,
|
||||
* NO_RESOURCES when the client could not be created.
|
||||
* @return client is the newly created client.
|
||||
*/
|
||||
@entry
|
||||
@callflow(next="*")
|
||||
createClient_3_1() generates (Error error, IQtiComposerClient client);
|
||||
|
||||
};
|
||||
|
||||
90
display/composer/3.1/IQtiComposerClient.hal
Normal file
90
display/composer/3.1/IQtiComposerClient.hal
Normal file
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Copyright (c) 2021 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation. nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package vendor.qti.hardware.display.composer@3.1;
|
||||
|
||||
import @3.0::IQtiComposerClient;
|
||||
import android.hardware.graphics.composer@2.1::Display;
|
||||
import android.hardware.graphics.composer@2.1::Error;
|
||||
interface IQtiComposerClient extends @3.0::IQtiComposerClient {
|
||||
|
||||
/**
|
||||
* Layer flag to set compatible
|
||||
*/
|
||||
enum LayerFlag : uint32_t {
|
||||
DEFAULT = 0,
|
||||
COMPATIBLE = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* Set draw method
|
||||
*/
|
||||
enum DrawMethod : uint32_t {
|
||||
DEFAULT = 0,
|
||||
UNIFIED_DRAW = 1,
|
||||
};
|
||||
|
||||
enum Command : @3.0::IQtiComposerClient.Command {
|
||||
/**
|
||||
* SET_LAYER_FLAG has this pseudo prototype
|
||||
* setLayerFlag(uint32_t type);
|
||||
*
|
||||
* param type is the layer type.
|
||||
* 0 - DEFAULT
|
||||
* 1 - COMPATIBLE
|
||||
*/
|
||||
|
||||
SET_LAYER_FLAG_3_1 = 0x803 << IQtiComposerClient.Command:OPCODE_SHIFT,
|
||||
/**
|
||||
* SET_CLIENT_TARGET_3_1 has this pseudo prototype
|
||||
* setClientTarget_3_1(uint32_t targetSlot,
|
||||
* int32_t acquireFenceIndex,
|
||||
uint32_t dataspace,
|
||||
vec<Rect> damage);
|
||||
* @param targetSlot is input slot for FB
|
||||
* @param acquireFenceIndex is input fence for FB
|
||||
* @param dataspace is current dataspace for FB
|
||||
* @param damage is current surface damage region
|
||||
*/
|
||||
SET_CLIENT_TARGET_3_1 = 0x804 << IQtiComposerClient.Command:OPCODE_SHIFT,
|
||||
};
|
||||
|
||||
/**
|
||||
* Set draw method
|
||||
* set the draw method if the composer implementation supports specified draw method.
|
||||
* @ param DrawMethod is enum
|
||||
* @ DEFAULT = 0,
|
||||
* @ UNIFIED_DRAW = 1,
|
||||
*/
|
||||
@callflow(next="*")
|
||||
tryDrawMethod(Display display, DrawMethod drawMethod)
|
||||
generates (Error error);
|
||||
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
||||
#Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
|
||||
|
||||
#Redistribution and use in source and binary forms, with or without
|
||||
#modification, are permitted provided that the following conditions are
|
||||
@@ -73,3 +73,5 @@ c85fce19541fb31c8ce4927166a4b50da1e5d50a98594bcaae2f8b2eec12fb7d vendor.qti.hard
|
||||
f49205d41f011a96c6d238ea69f7b6c9d159809f4ecabef04ca4ccdb195d57b5 vendor.qti.hardware.display.mapper@4.0::IQtiMapper
|
||||
9f484e68c3e4faef0a0f601ff7074d0431499cfaceba43b42fbc35c8264fbddf vendor.qti.hardware.display.mapperextensions@1.2::IQtiMapperExtensions
|
||||
fa035077927f2dff68d2b1ad6e6379822d29364999aa3fd70c5d2ffe93707d9b vendor.qti.hardware.display.demura@1.0::IDemuraFileFinder
|
||||
e609d77b00158060ca222ccd13e0ba8019a42336e3b6a6a32c6396f7b7ea2077 vendor.qti.hardware.display.composer@3.1::IQtiComposer
|
||||
ee6870d17e33bf8e2365165637b75559ceffda57770b1a35f3a9a8bbf3769266 vendor.qti.hardware.display.composer@3.1::IQtiComposerClient
|
||||
|
||||
Reference in New Issue
Block a user