OSDN Git Service
Kalyan Kondapally [Tue, 13 Mar 2018 09:33:33 +0000 (02:33 -0700)]
REVERTME: Disable usage of Media pipeline.
This is causing flicker when playing Videos.
Jira: None.
Test: No flicker seen when playing Video on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Mon, 12 Mar 2018 06:40:59 +0000 (23:40 -0700)]
Revert "Use Display Frame Rect as viewport."
Sometimes status bar is not rendered.
This reverts commit
7121ef5d1b754fc712fd862872756dab100c46b3.
Kalyan Kondapally [Mon, 12 Mar 2018 04:19:58 +0000 (21:19 -0700)]
Call HandleCommitFailure everytime commit fails.
We where calling this only in case ValidateLayers was true.
Jira: None.
Test: No new regressions on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 11 Mar 2018 23:34:01 +0000 (16:34 -0700)]
REVERTME: Disable buffer cache for now.
For some reason we are retrieving wrong buffers on Android.
Jira: None.
Test: Correct content is always shown when using app switcher.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 11 Mar 2018 21:59:55 +0000 (14:59 -0700)]
Use Display Frame Rect as viewport.
We shouldn't be rendering anything outside this rect.
Jira: None.
Test: No new rendering issues on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 11 Mar 2018 23:51:31 +0000 (16:51 -0700)]
Also check if surface is onscreen before releasing it.
Surface can have a buffer age of 0 but not in the queue to
be shown on screen. Let's check for this and release buffers
in case they are not queued to be shown on screen.
Jira: None.
Test: No new crashes seen on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Xiaosong Wei [Thu, 8 Mar 2018 08:36:17 +0000 (14:06 +0530)]
Handle layer transform in VARenderer
VA only support 90/180/270 rotation so we only handle these transforms
in VARenderer.
Jira: None.
Test: Video rotation should work
Signed-off-by: Xiaosong Wei <xiaosong.wei@intel.com>
Signed-off-by: Kishore Kadiyala <kishore.kadiyala@intel.com>
Harish Krupo [Fri, 9 Mar 2018 04:04:19 +0000 (09:34 +0530)]
travis-ci: install meson 0.43.0
Jira: None
Test: Travis ci should build successfully
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Kalyan Kondapally [Fri, 9 Mar 2018 01:44:35 +0000 (17:44 -0800)]
Fix build with ENABLE_DISPLAY_DUMP.
Jira: None.
Test: Build passes with ENABLE_DISPLAY_DUMP option.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Fri, 9 Mar 2018 01:39:34 +0000 (17:39 -0800)]
Ensure we don't release inflight surfaces.
private_data_ is shared object. We where resetting surfaces
of this object in case commit failed. We shouldn't do
that, instead just mark any new offscreen surfaces to be freed.
Jira: None.
Test: Get's to home screen without any crashes.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Thu, 8 Mar 2018 10:00:08 +0000 (02:00 -0800)]
Release un-used surface for every frame.
Instead of tracking this in multiple places, use tracker.
Jira: None.
Test: No crashes while booting up to home screen.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Wed, 7 Mar 2018 08:09:53 +0000 (00:09 -0800)]
Dont add recycled surface to dedicated layers.
We ignore all dedicated layers when calculating regions to
be rendered. We shouldn't add source layers of a recycled
surface to this list.
Jira: None.
Test: No new flicker issues seen on Android with APL.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Wed, 7 Mar 2018 07:12:05 +0000 (23:12 -0800)]
Check if a layer is better off on a separate plane.
Jira: None.
Test: No new flickers seen on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Wed, 7 Mar 2018 06:46:31 +0000 (22:46 -0800)]
Ensure top plane always cover the area of it's display frame.
We made sure of this for n and n-1 plane. However, we should
check for all the previous scanout planes and make sure the
current offscreen rendered plane covers the complete region.
Else we will be rendering invalid content.
Jira: None.
Test: No flickers seen when moving between icons on home screen.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Wed, 7 Mar 2018 06:10:30 +0000 (22:10 -0800)]
Pass layer to SetBuffer in Overlay.
We query from the layer if it's type is cursor and use that
information to do some additional booking in case of
raw pixel data.
Jira: None.
Test: Cursor shows up with Weston.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sat, 3 Mar 2018 19:28:34 +0000 (11:28 -0800)]
Ignore height while checking if downscaling is needed.
Jira: None.
Test: No new regressions on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Fri, 2 Mar 2018 05:45:11 +0000 (21:45 -0800)]
Squash planes if it doesn't full cover the underlying plane.
Jira: None.
Test: Reduced flicker when navigating between views.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Harish Krupo [Thu, 1 Mar 2018 17:11:17 +0000 (09:11 -0800)]
Enable IMG Context Priority support on APL.
Jira: None.
Test: Boots up fine on Android.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
pyn1 [Wed, 28 Feb 2018 09:16:40 +0000 (14:46 +0530)]
Added Support for 32bit RGBA format
One of the CTS test cases expects the support
to create Buffer of type HAL_PIXEL_FORMAT_RGBA_1010102
Jira: None
Tests: Buffer Created successfully for the intended format
CTS command: run cts -m CtsHardwareTestCases
Signed-off-by: Poornima <poornima.y.n@intel.com>
Kalyan Kondapally [Thu, 1 Mar 2018 04:10:53 +0000 (20:10 -0800)]
Squash planes as needed.
Earlier commit only checked if we need to squash planes in case
of rendering the layers if we where mapping it to overlay. However,
we can have cases where we are mapping the layers to last plane.
This patch handles that case too.
Jira: None.
Test: Flickers reduced when scrolling settings view.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Mon, 26 Feb 2018 00:37:07 +0000 (16:37 -0800)]
Reset cache in case layer z-order has changed.
Jira: None.
Test: Reduced grabage rendering when using task switcher.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
kalyan kondapally [Thu, 22 Feb 2018 10:10:22 +0000 (02:10 -0800)]
Merge pull request #248 from harishkrupo/master
Fix corrupted patch
Harish Krupo [Wed, 21 Feb 2018 04:47:04 +0000 (10:17 +0530)]
Fix corrupted patch
Jira: None
Test: Build should pass with travis-ci
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
biskhand [Thu, 15 Feb 2018 00:16:41 +0000 (08:16 +0800)]
Fix hwc compilation error due to libva2.0 master upgrade
Jira: None.
Test: Build passes on Android.
Signed-off-by: badiuzzaman.azzarfan.bin.iskhandar@intel.com
Harish Krupo [Tue, 20 Feb 2018 04:17:06 +0000 (09:47 +0530)]
Remove unneeded travis resources
Strip down hwc-install.tar.bz2 to include only those files
which are required.
Jira: None
Test: Should build properly in travis-ci.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Harish Krupo [Tue, 20 Feb 2018 03:49:13 +0000 (09:19 +0530)]
Fix linux build
Remove utils_android.h from nesteddisplay.cpp
Jira: None
Test: Should build properly with travis-ci
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Harish Krupo [Tue, 20 Feb 2018 01:33:51 +0000 (07:03 +0530)]
Add readme for build_script
Jira: None.
Test" None.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
xue.yifei [Sun, 11 Feb 2018 09:54:45 +0000 (01:54 -0800)]
Hyper dmabuf sharing
Add hyper dmabuf sharing feature in NestedDisplay.
Jira: None
Test: Tested on android
Signed-off-by: xue.yifei <yifei.xue@intel.com>
Harish Krupo [Mon, 19 Feb 2018 01:26:17 +0000 (06:56 +0530)]
travis-ci: Enable building linux frontend
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Kalyan Kondapally [Mon, 19 Feb 2018 04:41:28 +0000 (20:41 -0800)]
Fix damage rects when layers are removed or added.
Jira: None.
Test: No new regressions on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Harish Krupo [Mon, 19 Feb 2018 01:26:17 +0000 (06:56 +0530)]
Fix travis builds
- Install python3-pip as pip3 is required to install meson.
- Install udev, mtdev dependency
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Kalyan Kondapally [Sun, 18 Feb 2018 22:00:10 +0000 (14:00 -0800)]
Fix commit failures.
Eventhogh we where able to scanout the layer, we still
created an offscreen target for it. As Test commit used original
layer it passed but actual commit failed as it was using offscreen
surface. From Dmesg:
"[ 70.371775] [drm:drm_atomic_check_only] Invalid source coordinates 1920.000000x1080.000000+0.000000+0.000000
[ 70.371777] [drm:drm_atomic_check_only] FB: 1920+56
[ 70.371779] [drm:drm_atomic_check_only] src_w > fb_width: 0
[ 70.371781] [drm:drm_atomic_check_only] src_x > fb_width - src_w: 0
[ 70.371783] [drm:drm_atomic_check_only] src_h > fb_height: 1
[ 70.371785] [drm:drm_atomic_check_only] src_y > fb_height - src_h: 0"
This is also highlights generic problem as we always assume offscreen
surface to be same as resolution size. This limitation should be
addressed in followup patches.
Jira: None.
Test: No commit failures seen during boot up.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 18 Feb 2018 19:12:49 +0000 (11:12 -0800)]
Fix travis builds.
Jira: None.
Test: Builds pass.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Harish Krupo [Sun, 18 Feb 2018 04:39:02 +0000 (10:09 +0530)]
Build linux frontend using travis-ci
Add required scripts to build linux frontend as a part of travis.
Signed-off-by: Harish Krupo <harishkrupo@gmail.com>
Harish Krupo [Tue, 13 Feb 2018 05:43:09 +0000 (11:13 +0530)]
Add iahwc backend inside Hwcomposer.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Kalyan Kondapally [Sun, 18 Feb 2018 02:09:25 +0000 (18:09 -0800)]
Ensure we mark surfaces for recycling when planes are disabled.
This can happen in case layers of a plane are removed and we
disable it in GetCachedLayers.
Jira: None.
Test: No memory increase seen as layers are removed and added.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 18 Feb 2018 02:07:44 +0000 (18:07 -0800)]
Check if plane type is cursor before applying Cursor W/A.
Jira: None.
Test: Cursor plane shows up during bootup.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sat, 17 Feb 2018 23:43:19 +0000 (15:43 -0800)]
Remove redundant variables/functions in DisplayQueue.
Jira: None.
Test: Build passes on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sat, 17 Feb 2018 23:18:15 +0000 (15:18 -0800)]
Add log to trace wrongly disabled planes.
Jira: None.
Test: Build passes on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sat, 17 Feb 2018 22:02:46 +0000 (14:02 -0800)]
Fix garbage when minimizing windows.
Sometimes wrong rect was being rendered when minimizing windows.
This happened when layers where removed, which moved them from
one plane to another. Let's force reseting rect and plane validation
in this case.
Jira: None.
Test: We don't see flickers/grabage when windows are minimized.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sat, 17 Feb 2018 11:37:45 +0000 (03:37 -0800)]
Try scanout only if you have one layer.
Jira: None.
Test: Bottom tool bad doesn't disappear when navigating between views.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Thu, 15 Feb 2018 10:41:29 +0000 (02:41 -0800)]
Fix flicker with task switcher.
In some cases we didn't refresh the surfaces correctly as we
mixed this state with validation. Let's separate them and track
them separately.
Jira: None.
Test: No flicker seen when using app switcher on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Thu, 15 Feb 2018 09:13:43 +0000 (01:13 -0800)]
Ignore planes which have layers above threshold value.
When layers are removed, we can safely ignore the planes
which have these layers.
Jira: None.
Test: Linux tests pass.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Thu, 15 Feb 2018 08:40:28 +0000 (00:40 -0800)]
Ensure we render layers when squashing planes.
Jira: None.
Test: Build passes on Linux.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Thu, 15 Feb 2018 08:30:45 +0000 (00:30 -0800)]
Release any free surfaces even if we are ignoring the commit.
We ignore commit if no content has changed. Even in this case
let's free any unused surfaces.
Jira: None.
Test: No new regressions on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Thu, 15 Feb 2018 07:35:17 +0000 (23:35 -0800)]
Refresh planestate tracking when layer rect has changed.
Instead of taking max of current and previous region, let's
re-calculate the whole rect again. This avoids possible cases
of newer rects being smaller than newer ones.
Jira: None.
Target. No new regressions with Linux apps.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Thu, 15 Feb 2018 06:44:23 +0000 (22:44 -0800)]
Use displayframe as scissor rect for full clear.
Jira: None.
Test: Android launches to home screen.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Thu, 15 Feb 2018 05:29:05 +0000 (21:29 -0800)]
Ensure we release surfaces in case commit has failed.
In case we are doing full validation, we will allocate new
surfaces, let's make sure we delete them in case commit
has failed.
Jira: None.
Test: Memory doesn't increase with commit failures.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Tue, 13 Feb 2018 17:59:33 +0000 (09:59 -0800)]
Remove redundant opeartions.
Jira: None.
Test: Build passes on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Harish Krupo [Tue, 13 Feb 2018 10:05:26 +0000 (15:35 +0530)]
Move LayerHashGenerator to Native display
Moving the implementation of LayerHashGenerator from Physical
diplay to nativedisplay as other classes directly implement
nativedisplay.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Kalyan Kondapally [Tue, 13 Feb 2018 10:39:53 +0000 (02:39 -0800)]
Partial revert of "
ff92a05232c5c56c63b99865dd149c4c9bcf59de"
Jira: None.
Test: "Rendering Layer outside Damaged Region" warnings are not seen
when compositor trace is enabled.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Tue, 13 Feb 2018 07:48:06 +0000 (23:48 -0800)]
Ensure we dont allocate more than once for the plane in a given frame.
As we can be doing incremental validation, we dont want to allocate
buffers if it has already been allocated during GetCachedLayers.
Jira: None.
Test: No garbage seen on APL when moving around views which are 3D composited.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Mon, 12 Feb 2018 02:06:30 +0000 (18:06 -0800)]
Ensure we clear surface in case layers are replaced.
Currently, we don't track this case. Now, we ensure we take
this account before deciding if we need to do a full or partial
clear of the surface.
Jira: None.
Test: No new flickers seen on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 11 Feb 2018 09:20:22 +0000 (01:20 -0800)]
Add basic tracking to refresh surfaces within planestate.
Jira: None.
Test: No new flicker seen when navigating between different views
on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 11 Feb 2018 02:05:08 +0000 (18:05 -0800)]
Track within plane state if last plane surface can be re-used.
Instead of DisplayQueue doing this for us, we can do it within
plane state as we have all needed information here.
Jira: None.
Test: No new regressions on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 11 Feb 2018 00:40:58 +0000 (16:40 -0800)]
Replace InUse usage with SurfaceAge.
Jira: None.
Test: Build passes on Linux.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 11 Feb 2018 00:15:57 +0000 (16:15 -0800)]
No need to reset composition regions if only damage has changed.
We should be already resetting the regions if rect has updated,
or if previous scanout layers have changed.
Jira: None.
Test: No new regressions on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 11 Feb 2018 00:01:25 +0000 (16:01 -0800)]
Swapsurface implicitly in PlaneState.
Instead of tracking this in different places, let's handle this
internal to Plane state.
Jira: None.
Test: no new regressions on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Harish Krupo [Tue, 6 Feb 2018 07:42:23 +0000 (13:12 +0530)]
PixelBuffer: Align width and height of pixelbuffer
The size of the raw data for the cursor layer can be too
small sometimes. In such cases make the size of the
allocated buffer to 256,256.
Jira: None
Test: Cursor shows up with the linux backend
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Harish Krupo [Mon, 5 Feb 2018 12:46:34 +0000 (18:16 +0530)]
Makefile.am: Add wsi, common as dependency
Currently libhwcomposer_{common, wsi} are built as static libraries and
linked into libhwcomposer.so as whole archives. Linking them in this
fashion doesn't add them as a dependency for libhwcomposer.so, as a result
when these libraries are modified, they are not relinked again into
libhwcomposer.so. So, adding them in LIBADD to ensure libhwcomposer.so
is dependent on them.
Jira: None
Test: testlayers and linux_test apps should work properly.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Harish Krupo [Mon, 5 Feb 2018 08:17:04 +0000 (13:47 +0530)]
linux_frontend: Add Destroy layer API
Jira: None
Test: No regressions in linux_test app.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Harish Krupo [Mon, 5 Feb 2018 02:31:04 +0000 (08:01 +0530)]
linux_frontend: Add support for setting raw pixel data.
This is for cases where the buffer data is shared between processes
as a shared memory.
Jira: None
Test: Cursor shows up with Linux Backend.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Kalyan Kondapally [Fri, 9 Feb 2018 08:58:34 +0000 (00:58 -0800)]
Fix warnings.
Jira: None.
Test: Build passes on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Harish Krupo [Tue, 6 Feb 2018 14:20:38 +0000 (19:50 +0530)]
HwcRect: Set all members to 0 on initialization.
Jira: None
Test: No regressions in linux_test and testlayers apps
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Kalyan Kondapally [Tue, 6 Feb 2018 06:02:09 +0000 (22:02 -0800)]
Handle case where one of the rects is empty in CalculateRect.
Jira: None.
Test: No new regressions on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Tue, 6 Feb 2018 06:16:12 +0000 (22:16 -0800)]
Revert "hyper dmabuf sharing"
This reverts commit
574eff44e7caf39def6771d2d39f919f1d755278.
Lin Johnson [Tue, 6 Feb 2018 05:30:38 +0000 (21:30 -0800)]
Correct video plane damage rect caculation.
Video plane does not need combation of display
rects from layers. Instead it should use the
display rect of its source layer
Jira: None
Test: Video display frame rect is always correct.
Signed-off-by: Lin Johnson <johnson.lin@intel.com>
xue.yifei [Tue, 6 Feb 2018 05:23:39 +0000 (21:23 -0800)]
hyper dmabuf sharing
Add hyper dmabuf sharing feature in NestedDisplay which can
share buffers in an virtualized environment.
Jira: None
Test: tested on android
Signed-off-by: xue.yifei <yifei.xue@intel.com>
Kalyan Kondapally [Sun, 4 Feb 2018 11:49:17 +0000 (03:49 -0800)]
Add support for raw pixel data.
We have cases on Linux where content is CPU rendered and
needs to be scanned out or composited together with other
layers. Add support for this case. If we are unable to mmap
prime handle than we fall back to texture upload path.
Jira: None.
Test: Cursor shows up with Linux Backend.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sat, 3 Feb 2018 09:29:41 +0000 (01:29 -0800)]
Add initial support for HDCP.
We try to program the pipe if kernel exposes "Content Protection"
property.
Jira: None.
Test: On KBL, we are able to print the property and supported values in
logcat.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Harish Krupo [Fri, 17 Nov 2017 20:47:05 +0000 (02:17 +0530)]
Linux Backend Support
Jira: None.
Test: Build passes on Linux.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Yuanjun Huang [Thu, 1 Feb 2018 08:36:22 +0000 (00:36 -0800)]
Add API and functionality to query and store supported modifiers.
Jira: https://jira01.devtools.intel.com/browse/AREQ-23273
Test: Build passes and validates with hwcomposer testlayer APP.
Signed-off-by: Yuanjun Huang <yuanjun.huang@intel.com>
Harish Krupo [Wed, 31 Jan 2018 05:34:39 +0000 (11:04 +0530)]
NativeDisplay: Layer Hash Generator
The LayerHashGenerator are a set of utility methods in NativeDisplay
which can be used to get layer ids. It maintains with a pool of ids whose
initial size is determined by the size parameter passed to
InitializeLayerHashGenerator. Call AcquireId when a new id is required
and release that id with ReleaseId. The size of the pool is variable
and increases when required.
Jira: None
Test: The device should boot to homescreen.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Harish Krupo [Wed, 31 Jan 2018 12:56:36 +0000 (18:26 +0530)]
travis-ci: install all packages in same command
Install all the required packages in the same apt-get command.
Jira: None
Test: Travis should properly build hwcomposer and the build
should pass
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Kalyan Kondapally [Mon, 29 Jan 2018 02:16:08 +0000 (18:16 -0800)]
Add helper for checking down scaling factor.
Instead of having this in too many places, lets have similar
helper function as Transform and UpScaling validation.
Jira: None.
Test: Build passes on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Mon, 29 Jan 2018 01:55:17 +0000 (17:55 -0800)]
Ensure we validate Display Transform as needed.
Instead of checking this during validation of individual
layers, let's do it in FinalizeValidation. This should ensure
we are checking at plane level and rotation type in planestate
is always correct.
Jira: None.
Test: Rotated layers are always shown in right plane and don't
undergo both GPU and plane rotation.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 28 Jan 2018 20:38:40 +0000 (12:38 -0800)]
Use GPUDevice to monitor HWCLock.
We can avoid HWCLock thread as we initialize thread in
GPUDevice now. We can use that to monitor these events and
kill it once done.
Jira: None.
Test: Boots up to home screen on Android IA.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 28 Jan 2018 11:21:55 +0000 (03:21 -0800)]
Split drm and HWC specific initialization.
Goal is to make these initializations in parallel and reduce
the time consumed by HWC during boot up.
Jira: None.
Test: No isses seen during boot up on Android IA.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Harish Krupo [Sun, 28 Jan 2018 02:42:49 +0000 (18:42 -0800)]
hash_combine_hwc: get seed parameter as reference.
Jira: None.
Test: Buffers are retrieved correctly from cache.
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
Kalyan Kondapally [Tue, 23 Jan 2018 07:57:03 +0000 (23:57 -0800)]
Initial support for Downscaling as needed.
We fallback to 3D composition in case layer cannot be scanned out
directly or we don't have enough planes for all layers. In case
we fall back to 3D, we now check if we can actually downscale
the width by a given scaling factor and upscale it in display
side. We do this for offscreen surface layers only and not for
individual layer. Currently, we try to downscale only
width and not height. We ignore this in case either width or
height is less than 500 pixels. We also have a flag ENABLE_DOWNSCALING
to disable this if in case we see regressions to be fixed before
enabling this on stable.
Jira: None.
Test: No new artifacts.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Tue, 23 Jan 2018 07:18:15 +0000 (23:18 -0800)]
Validate rect even if clear_surface is true.
We ignored updating rects which resulted in us having wrong
display frame rect in the following case:
Plane had multiple layers, one of the layer was removed and
another layer display frame was updated.
Jira: None.
Test: Bottom navigation bar is always present when running
different benchmarks.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Wang,Fei [Tue, 23 Jan 2018 02:01:26 +0000 (10:01 +0800)]
Add more test case in hwcservice_test.
1. Add sharpness test case.
2. Add RestoreDefaultDeinterlace implementation
Jira: None.
Test: Set/Restore color works as expected.
Signed-off-by: Wang,Fei <fei.w.wang@intel.com>
Poornima [Mon, 22 Jan 2018 04:48:16 +0000 (10:18 +0530)]
Added Support for 64bit RGB format
One of the CTS test cases expects the support
to create Buffer of type HAL_PIXEL_FORMAT_RGBA_FP16
Jira: None
Tests: Buffer Created successfully.
CTS command: run cts -m CtsHardwareTestCases
Signed-off-by: Poornima <poornima.y.n@intel.com>
Kalyan Kondapally [Mon, 22 Jan 2018 08:15:20 +0000 (00:15 -0800)]
Take Layer Content and validate into account in OverlayLayer.
If these states are true, layer should be re-rendered.
Jira: None.
Test: No new regressions in Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 21 Jan 2018 23:08:26 +0000 (15:08 -0800)]
Take layer's state into consideration during idle frame.
If we requested for idle frame update, no layer should have
changed. We now check for this and if anything has changed, we
don't treat it as idle frame.
Jira: None.
Test: We still fall abck to single plane composition when preparing
for idle frame.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 21 Jan 2018 20:31:23 +0000 (12:31 -0800)]
Make sure we are setting display frame correctly always.
Jira: None.
Test: No new regressions on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 21 Jan 2018 19:16:42 +0000 (11:16 -0800)]
Remove unused define in make files.
Jira: None.
Test: Build passes on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 21 Jan 2018 06:54:43 +0000 (22:54 -0800)]
Re-work Idle time logic.
We increase the thresholds to 350 now. Also, idle_reset_frames_counter_
is not needed anymore and hence removed.
Jira: None.
Test: We dont toggle between validation for idle mode and normal layer
validation when running some of the gfx benchmarks.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sat, 20 Jan 2018 23:23:17 +0000 (15:23 -0800)]
Ignore Idle Frame request in case a layer has changed.
This means content has actually changed and system is not
really in idle mode. Let's ignore any idle update requests
in this case.
Jira: None.
Test: We still fall back to single plane composition when nothing
has changed for the given idle frame threshold.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sat, 20 Jan 2018 13:36:05 +0000 (05:36 -0800)]
Force render layers when force_media_composition is true.
We need to fall back to Media Renderer in this case.
Jira: None.
Test: Build passes on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sat, 20 Jan 2018 13:32:30 +0000 (05:32 -0800)]
Ignore Idleframe request in case effects state has changed.
In this case we still want to use planes and Media renderer
in case effects support is enabled.
Jira: None.
Test: We validate layers in case idle frame is requested but effects
state has changed.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kishore Kadiyala [Wed, 17 Jan 2018 09:02:06 +0000 (14:32 +0530)]
Remove the duplication of the function call
Process State is already initialized at beginning of the process,
and again calling the same is duplication.
Jira: None
Test: GPA launching 3rd party App shouldn't cause any SIGSEGV
& also HWC tests should PASS.
Signed-off-by: Kishore Kadiyala <kishore.kadiyala@intel.com>
Wang,Fei [Thu, 18 Jan 2018 22:25:57 +0000 (14:25 -0800)]
Set scaling mode through environment variable.
Jira: None.
Test: Build passes on Linux and Android.
Signed-off-by: Wang,Fei <fei.w.wang@intel.com>
Kalyan Kondapally [Tue, 16 Jan 2018 08:36:01 +0000 (00:36 -0800)]
Mark NeedsOffScreenComposition const.
Jira: None.
Test: Build passes on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Tue, 16 Jan 2018 08:12:58 +0000 (00:12 -0800)]
Check source and display frame rects separately.
Source rect changes are interesting when using display
scalar, if not display frame should be enough.
Jira: None.
Test: No new regressions when using 3D Composition for Mouse.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Tue, 16 Jan 2018 00:05:33 +0000 (16:05 -0800)]
Remove separate damage tracking in NativeSurface.
We do this tracking in hwclayer now. Instead of seprately
tracking another damage in NativeSurface, we just let it
use the newly calculated one. We make sure any new damage
is propogated to all offscreen surfaces. Layers with a
transform are forced to use their display frame rect as
their damage rect.
Jira: None.
Test: Sliders still update correctly. Moving mouse when rotated
in 90 degrees doesn't leave any garbage.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Mon, 15 Jan 2018 08:35:44 +0000 (00:35 -0800)]
Take Surface Damage into account before reseting kLayerContentChanged.
If SurfaceDamage is not empty we need to render the damaged
content in this frame. We didn't check for this earlier.
Jira: None.
Test: No partial rendered frames are shown when launching apps from
launcher.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 14 Jan 2018 21:05:40 +0000 (13:05 -0800)]
Minimize flickers when layer is replaced with another.
Let's make sure Surface Damage of current layer includes the
display frame of the replaced layer.
Jira: None.
Test: Flicker is minimized when views having VKB are launched.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 14 Jan 2018 20:29:46 +0000 (12:29 -0800)]
Ensure Media surface state is updated correctly.
GL Backend reset's clear surface state correctly, which we
relied in DisplayQueue to determine if we need to refresh
the surface in case of partial update. VA backend never
did that resulting in display frame never getting updated
after set once. Now, we ensure we refresh surfaces in case
we need partial clear.
Jira: None.
Test: Video layer scales correctly when changing between full
screen and non-fullscreen mode.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Kalyan Kondapally [Sun, 14 Jan 2018 19:03:24 +0000 (11:03 -0800)]
Skip Revalidation in case layer buffer has changed.
Revalidation has no value in case the layer is going
through 3D Composition pass, let's skip it in this
case.
Jira: None.
Test: No new test commit failures.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>