qdutils : Read max mixer width from drivers.
Read the maximum width mixer can output from drivers and consider this in identifying if dual pipes are required to support a layer. So far above 2K dimensions we are using dual pipes, but 8x39 mixer output can be upto 2560. So there is no need of dual pipes as long as pipe data is less than this limit. Compare layer/panel resolutions against this limit to deduce if there is a need for dual pipes or split. Change-Id: I52e1d28e381327d4f0b00f5ea8547c1e6157313c
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
parent
e6a8d2aaef
commit
5bae9f5d35
@@ -78,7 +78,7 @@ namespace qhwc {
|
||||
|
||||
bool isValidResolution(hwc_context_t *ctx, uint32_t xres, uint32_t yres)
|
||||
{
|
||||
return !((xres > qdutils::MAX_DISPLAY_DIM &&
|
||||
return !((xres > qdutils::MDPVersion::getInstance().getMaxMixerWidth() &&
|
||||
!isDisplaySplit(ctx, HWC_DISPLAY_PRIMARY)) ||
|
||||
(xres < MIN_DISPLAY_XRES || yres < MIN_DISPLAY_YRES));
|
||||
}
|
||||
@@ -2034,12 +2034,12 @@ int getLeftSplit(hwc_context_t *ctx, const int& dpy) {
|
||||
}
|
||||
|
||||
bool isDisplaySplit(hwc_context_t* ctx, int dpy) {
|
||||
if(ctx->dpyAttr[dpy].xres > qdutils::MAX_DISPLAY_DIM) {
|
||||
qdutils::MDPVersion& mdpHw = qdutils::MDPVersion::getInstance();
|
||||
if(ctx->dpyAttr[dpy].xres > mdpHw.getMaxMixerWidth()) {
|
||||
return true;
|
||||
}
|
||||
//For testing we could split primary via device tree values
|
||||
if(dpy == HWC_DISPLAY_PRIMARY &&
|
||||
qdutils::MDPVersion::getInstance().getRightSplit()) {
|
||||
if(dpy == HWC_DISPLAY_PRIMARY && mdpHw.getRightSplit()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -2173,7 +2173,8 @@ void BwcPM::setBwc(const hwc_rect_t& crop,
|
||||
const hwc_rect_t& dst, const int& transform,
|
||||
ovutils::eMdpFlags& mdpFlags) {
|
||||
//Target doesnt support Bwc
|
||||
if(!qdutils::MDPVersion::getInstance().supportsBWC()) {
|
||||
qdutils::MDPVersion& mdpHw = qdutils::MDPVersion::getInstance();
|
||||
if(!mdpHw.supportsBWC()) {
|
||||
return;
|
||||
}
|
||||
int src_w = crop.right - crop.left;
|
||||
@@ -2184,7 +2185,7 @@ void BwcPM::setBwc(const hwc_rect_t& crop,
|
||||
swap(src_w, src_h);
|
||||
}
|
||||
//src width > MAX mixer supported dim
|
||||
if(src_w > qdutils::MAX_DISPLAY_DIM) {
|
||||
if(src_w > qdutils::MDPVersion::getInstance().getMaxMixerWidth()) {
|
||||
return;
|
||||
}
|
||||
//Decimation necessary, cannot use BWC. H/W requirement.
|
||||
|
||||
Reference in New Issue
Block a user