The current composition bypass implementation prevents the app frame rate from
being decoupled with vsync. As a result when a graphics application requests
EGL swap interval zero it is still limited by vsync. This change disables
composition bypass if any layers being composited for the frame are in
asynchronous mode.
CRs-Fixed: 335498
(cherry picked from commit 8e1a74ffff6a07ac9ef649347b7ac23be143f2ea)
Change-Id: Ia0b6b14fbc953b04616667a494d98fcca99932f9
- HDMI has priority over Wifi display, if HDMI is connected during
Wifi, close the session for Wifi and start one for HDMI.
- the enableHDMIOutput parameter externaltype - HDMI/WIFI/OFF
Change-Id: If2cd9143fc7a953db49f38a6c166f9425ba5266e
Conflicts:
libqcomui/qcom_ui.cpp
Add null check for incoming buffer in updateBufferS3DFormat function.
return invalid value if buffer is NULL
Change-Id: I97c535ae7291ee12648a92bff843c0c500bce4df
(cherry picked from commit e009dff7644d9b0663f3939e48ad1e955b1f76b5)
Conflicts:
libqcomui/qcom_ui.cpp
This change is done to reduce the CPU utilization by SurfaceFlinger
thread. This feature may be turned On/Off using a compile time flag
(cherry picked from commit 9691e73556e5c0b66553aa55eb504b9ebb0fd400)
Change-Id: I1cb5b5c8abef135bc520c6e39c6ccf236b2270c3
Conflicts:
libqcomui/Android.mk
Do not choose GL_EXTERNAL_TEXTURE_OES for all formats, instead,
select between GL_EXTERNAL_TEXTURE_OES, and GL_TEXTURE_2D based
on the pixel format.
This change is done to reduce composition times.
Change-Id: I17edd78cdfa051f88ed6bd4e585c7a9b0705aa3a
CRs-fixed: 328074
This is a helper function that will return false if the given format is
supported by adreno drivers but not supported in GPU HW. For these
formats, adreno will use software color conversion routines to convert
them to acceptable format by the GPU HW. This may be required if we
want to avoid creating texture for certain formats when not absolutely
necessary. Could be defaulted to return true depending on a compile
time flag.
Change-Id: Idb2200b5ed13bb8c184288d44340ed1aefeaa8df
For 2 bytes per pixel format the width might be not alligned to 4
So for such cases we need to use memset16
Change-Id: I22a6c673439c44447ce33faf2ed0615febd70a28
Implement clearRegion for C2D/MDP/CPU composition. This prevents
glClear and therefore the glFinish from being called, thus
improving performance.
Change-Id: I03d9230e03cce11d9fe7e2bd34e4df8328ad2e00
Add support for updating the qcom specific layer flags. Add support for
getting the per frame HWC flags based on the layer flags.
Change-Id: I5f7759a6a7fae6d4f70dd26f380a9b08e48e9475
Add support for updating the buffer geometry without any reallocation
of memory. The buffer geometry is updated in the GraphicBuffer as well
as in the buffer handle.
Change-Id: I3fdb4f6a737277ab63fcbdb42e9c955ea7471760
Add libQComUI which is used to perform operations specified by
SurfaceTextures.
The operation currently supported by this library is SET_BUFFER_SIZE
which deallocates and reallocates memory if the size allocated for the
buffer does not match the size requested by the client.
Change-Id: I370b94a91f5acf373f7040742aad7c2e7bb586fe