Merge "libhwcomposer: add dynamic thresold support for copybit."
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
commit
4705583660
@@ -93,7 +93,7 @@ bool CopyBit::canUseCopybitForRGB(hwc_context_t *ctx,
|
||||
|
||||
if (compositionType & qdutils::COMPOSITION_TYPE_DYN) {
|
||||
// DYN Composition:
|
||||
// use copybit, if (TotalRGBRenderArea < 2 * FB Area)
|
||||
// use copybit, if (TotalRGBRenderArea < threashold * FB Area)
|
||||
// this is done based on perf inputs in ICS
|
||||
// TODO: Above condition needs to be re-evaluated in JB
|
||||
int fbWidth = ctx->dpyAttr[dpy].xres;
|
||||
@@ -102,7 +102,7 @@ bool CopyBit::canUseCopybitForRGB(hwc_context_t *ctx,
|
||||
unsigned int renderArea = getRGBRenderingArea(list);
|
||||
ALOGD_IF (DEBUG_COPYBIT, "%s:renderArea %u, fbArea %u",
|
||||
__FUNCTION__, renderArea, fbArea);
|
||||
if (renderArea <= (2 * fbArea)) {
|
||||
if (renderArea < (mDynThreshold * fbArea)) {
|
||||
return true;
|
||||
}
|
||||
} else if ((compositionType & qdutils::COMPOSITION_TYPE_MDP)) {
|
||||
@@ -554,6 +554,11 @@ CopyBit::CopyBit():mIsModeOn(false), mCopyBitDraw(false),
|
||||
mRenderBuffer[i] = NULL;
|
||||
mRelFd[0] = -1;
|
||||
mRelFd[1] = -1;
|
||||
|
||||
char value[PROPERTY_VALUE_MAX];
|
||||
property_get("debug.hwc.dynThreshold", value, "2");
|
||||
mDynThreshold = atof(value);
|
||||
|
||||
if (hw_get_module(COPYBIT_HARDWARE_MODULE_ID, &module) == 0) {
|
||||
if(copybit_open(module, &mEngine) < 0) {
|
||||
ALOGE("FATAL ERROR: copybit open failed.");
|
||||
|
||||
@@ -80,6 +80,9 @@ private:
|
||||
//These are the the release FDs of the T-2 and T-1 round
|
||||
//We wait on the T-2 fence
|
||||
int mRelFd[2];
|
||||
|
||||
//Dynamic composition threshold for deciding copybit usage.
|
||||
double mDynThreshold;
|
||||
};
|
||||
|
||||
}; //namespace qhwc
|
||||
|
||||
@@ -122,7 +122,6 @@ void initContext(hwc_context_t *ctx)
|
||||
IVideoOverlay::getObject(ctx->dpyAttr[HWC_DISPLAY_PRIMARY].xres,
|
||||
HWC_DISPLAY_PRIMARY);
|
||||
|
||||
char value[PROPERTY_VALUE_MAX];
|
||||
// Check if the target supports copybit compostion (dyn/mdp/c2d) to
|
||||
// decide if we need to open the copybit module.
|
||||
int compositionType =
|
||||
|
||||
Reference in New Issue
Block a user