Resource config communicates with scalar library to configure the
Scale data structure. Then HWFrameBuffer populates the Scale data
structure to mdp_scale_data structure of MDP input layer.
Change-Id: Ibdfea2d3ef38ca381b14ceccb65df583407fda02
Currently HWC integerizes float source co-ordinates (l, t, b, r) in
the inward direction, mimicking SF from pre-HWC-1.4. In case of
upscale where we need to create more destination pixels than incoming
ones, this chopping off can lead to quality issues, especially given
that the error magnification can be as much as 20x.
This change integerizes the source rectangle in the outward direction
which will help magnification cases. Downscale cases should be
unaffected since reduction hides errors, unlike magnification.
Change-Id: Ib72a1f8d52f4ec800387bfe2b91c9d3a65e6f557
MDP3 can't handle one line worm hole region.
Hence passing full FB to clear and disabling the
swap rect if presents.
Change-Id: Iba4c7c0a08625dad8ebe700d71df83e37cc50797
API to allow the video decoder to set the S3D format.
The supported format definitions have moved to qdMetadata.h
for uniformity.
Change-Id: I2b313bf72df97ae948e7efc7faf4a4441c0ef5ce
1. Compose the first animating frame using GPU on external display.
2. Set composition type of subsequent animating frames as SDE
composition and update cached framebuffer to external display.
3. Close the releasefence fd of framebuffer target during animation.
Change-Id: I674efa1821c8fc2fa0c3f9ccee88e25b70f75f9d
If rotator downscale is able to reduce output dimensions below
MDP's pipe limits, then use only 1 pipe if possible in source split
cases.
Change-Id: I6739a1fcd32b1047ce266d60c0123961c9daa657
1. When non-primary displays are registered, set composition mode to
safe mode until resources for the added display is configured
properly.
2. Fix HDMI mirroring issue on framework reboot.
It could be possible that HPD is on during framework reboot.
HDMI driver needs HPD toggling to send uevent to userspace.
Disable HPD at start if HDMI is external, it will be enabled later
when the primary display powers on.
Change-Id: I27f27af3f6d525bd3697f5d5edd838f04003ff61
Camera sends IMPLEMENTATION_DEFINED format, so if UBWC gralloc usage
flag is set, it expects gralloc to set the pixel format as NV12_UBWC
instead of use-case specific pixel formats.
Change-Id: Id0a11893401d1338f4f123ca8df029ed96b18ab9
1. Add support to dump the input layers for all displays or each
display separately.
2. Add support to dump output layer for virtual display.
3. Add binder support to enable dump on each display, to enable dump
for input/output layers, and to set number of frames to be dumped.
Syntax:
adb shell "service call display.qservice 21 i32 <FRAME_COUNT> i32
<DISPLAY_TYPE> i32 <LAYER_TYPE>"
FRAME_COUNT = Number of frames to be dumped.
DISPLAY_TYPE = 1 -> To enable dump on primary display
2 -> To enable dump on hdmi display
4 -> To enable dump on virtual display
LAYER_TYPE = 1 -> To enable input layer dump
2 -> To enable output layer dump
To dump 2 frames of input and output layers on virtual display:
adb shell "service call display.qservice 21 i32 2 i32 4 i32 3"
Change-Id: Ifb3e6a7554e0012495f6f5858d6e32ff8fee6bec
In case of one pipe having a new request and pipe types being
different, a condition check for comparison was missing. This
change adds that.
Change-Id: Ie58e297405a5ba911485d3f1e2e34cfbf538d2d7
Now that multiple events are handled by the vsync thread,
the data read from the driver needs to be null terminated.
Also memset vdata string to zero to ensure that data from a
previously read event isn't considered part of the current
event with a shorter data string.
Change-Id: Iff63e3a817c289ebca8a735ec2484c067b3ff3cf
1. Lock prepare() and set() APIs using sequence entry and sequence
exit lock respectively to prevent the critical section being
accessed by other threads.
2. Wait for sequence wait lock on HotPlugEvent thread or any other
binder threads(Eg. dumpsys), before it accesses the critical region.
3. Prevent deadlock during multiple prepare() calls before a set().
Change-Id: I5443675c870ed2967615ec383dd2d59ded30b52b
Use swapRect feature for use-cases with one updating layer
and updating layer is overlapping with other layers
Change-Id: I1a48926c941ef3e8184e1a6f80134f4e688741eb
No need to clear a non updating region in case of swapRect.
Use dirtyRect value of updating layer to achieve this.
Before using dirtyRect value map it to respective displayFrame,
as dirtyRect is with respect to sourceCrop.
Change-Id: Ie5782a039f7075396e30405070f12ce2443c0a82