- For TP10 Venus UBWC format, the Venus macro returns the
stride, which is 4/3 times the width.
- Need to store the pixel width instead of stride
in the private handle hence * 3/4
Change-Id: I2c1348c6b90f141ecef6cabf493780325f17db77
Crs-fixed: 1059165
While allocating output buffers for writeback display, check MDP
support for writeback UBWC format before assigning the format.
Change-Id: I97bb320ec89d60453c4c7e3dc5a2b5c2a18394dd
- querySDEInfo queries MDP caps to check if UBWC is supported on H/W.
- Gralloc calls querySDEInfo api to check if UBWC feature is enabled
by MDP driver.
CRs-Fixed: 1013911
Change-Id: I9114c4d8286842f19619302484ee4690c59fcb29
Many case reading the same mdp capability multiple times from
sys file causing delay in operation. Hence reading only once.
Change-Id: I1b94ca63074aba2f078fe6add5a8de628ca87740
Compute YUV plane info using buffer width and height from metadata for
UPDATE_BUFFER_GEOMETRY use case.
CRs-Fixed: 994771
Change-Id: Idb42b56be970942a79c07ceb337afa2f966e4fbc
check for target specific system property "video.disable.ubwc"
to disable UBWC for the targets where encoder doesn't
support UBWC color-format.
Change-Id: Ifd050c3b44768870fc74a16e941e8286e3ea0c13
- Define new format in gralloc_priv.h header
- Add support for HAL_PIXEL_FORMAT_BGR_565 while allocating buffers
CRs-fixed: 904907
Change-Id: I2cf3cdcfc5c89b11abc4ceb4daba77a5123ecf67
The previous check for RGB formats skipped certain formats and hence
the alignment was incorrect.
Add a check for all non-compressed RGB formats before calling
getGpuAlignedWidthHeight
CRs-fixed: 888733
Change-Id: Icae4cfb92ceae5e593fd6c5658999fc90ef97ea1
Use adreno_utils api to get stride alignment requirement by GPU for
NV21 & NV12 formats. It is required to keep Camera & Gralloc in sync.
CRs-Fixed: 880927
Change-Id: Ie71f864c975e38fe4aa58735cc8ffe9dd0734f4f
Allow UBWC, if an OpenGL client sets UBWC usage flag and GPU plus MDP
support the format. OR if a non-OpenGL client like Rotator, sets UBWC
usage flag and MDP supports the format. It de-couples the UBWC decision
for Rotator output buffer format from GPU.
Change-Id: I5e78b615f71c1781a40b8c137a37b111eb786323
Return aligned width and height in case meta operation is
UPDATE_BUFFER_GEOMETRY.
CRs-Fixed: 880373
Change-Id: I3b263518d509f4de68c93692eace3cb0b2c69808
1. Define LINEAR_FORMAT operation in MetaData.
2. VENUS ouput buffer is linear for NV12_UBWC Interlaced video playback.
So Video module performs LINEAR_FORMAT operation to set "linearFormat"
metadata member to NV12 linear format in case of Interlaced video.
3. Handle LINEAR_FORMAT metadata operation in HWC wrapper and gralloc.
CRs-Fixed: 855474
Change-Id: I77dd72bec26f225de75adb6c214ccd90db239e3e
1. Remove unused libraries libhdmi, liboverlay and libhwcomposer.
2. Remove unused functions and files from libqdutils.
2. Add querySDEInfo() function in qdutisl to query SDE capability.
Change-Id: Ibea2dd2d22fecb420079e3b7cbbcc57d10f75d49
1. Fix the missed ALIGN in getUBwcMetaBufferSize api.
2. Fix de-reference of data address pointer in getRgbDataAddress api.
Change-Id: I5dae2b6f449bb9a5b0dcc23110a2efce36060a42
Make all content protection and secure display heaps and flags
backward compatible. Honor the different requirements for master
side and slave side content protection and secure display.
Change-Id: I21a5170f2ae7ffd9c447e8af795e3665e673248f
This patch adds a new debug property
that can be used to disable UBWC compilant
allocations for graphics stack by gralloc.
Change-Id: I59e5994700730c73d62eec9f74ab6ded60c2d256
A client can call GRALLOC_MODULE_PERFORM_GET_RGB_DATA_ADDRESS api
to get RGB data address for any linear or UBWC aligned RGB buffer.
Change-Id: I3a7d25f504b7ba1dec79cc872cafbb38ddbb6bd2
* Earlier, camera preview buffers were of NV21(YCrCb_420_SP)
and the video buffers were of NV12_VENUS(YCbCr_420_SP_VENUS)
format. Now that the video encoder has support for NV21,
both the camera and video buffers can be of
NV21_VENUS(YCrCb_420_SP_VENUS) format.
* If the preview and video buffer sizes are the same,
CPP double pass to generate video and preview buffers can be
avoided and the buffers can now be generated within a single pass
with CPP duplication thereby saving power.
* Add support in gralloc for NV12_VENUS format to achieve
the same.
Change-Id: I7001f975f2cafa21c893e7384ddbddd5f2788b1d
1. Add support for RGBX_8888 UBWC in display engine and gralloc APIs.
2. Set the appropriate rotator output format for RGB* UBWC formats.
3. Move the UBWC aligned format enums in their appropriate range.
Change-Id: I0107f10894f9edbe657fce29b99f6e909c675150
Add support for new secure system heap and corresponding flags
for all pixel buffers. Keep the old mm heap for secure display
buffers.
Change-Id: Ic0ee7783a2d1ff420c34396f7cc4bd5ac3058c44
1. Reclaim some old gralloc flags.
2. System heap allocation happens by default.
3. Remove some unused private flags.
4. Add heapid member to alloc_data to better line up with ion
header
5. Remove check for MDSS_TARGET
Change-Id: I37be0a2fcd5fd4a14bb9ca235fcae41f6f3ec19e
Add support for NV12_UBWC HAL pixel format in getYUVPlaneInfo api to
enable GRALLOC_MODULE_PERFORM_GET_YUV_PLANE_INFO for this format.
Change-Id: I94389ddc45cba94124b36fb3ecb0b947250c0681
1. It helps in checking gralloc private usage flags at compile time.
2. Define GRALLOC_MODULE_PERFORM_GET_UBWC_FLAG to enable client to
query the value of "PRIV_FLAGS_UBWC_ALIGNED" flag at run time.
3. Add ADRENO_PIXELFORMAT_NV12_EXT in defined Adreno Pixel formats
to fix NV12_UBWC HAL pixel format conversion to Adreno format.
Change-Id: I78ccac98f1bd1bfbd2aa596ceb7a293f3d2e5f6e
1. Allow UBWC allocation, if client is using an explicitly defined
UBWC HAL pixel format OR if client sets UBWC gralloc usage flag and
GPU supports the format.
2. EGL wants gralloc to set PRIV_FLAGS_UBWC_ALIGNED bit in private
handle flags, only if GPU supports UBWC for that format.
Change-Id: I4194a046217cbc4c0a8ac2b2fb4b73ebd5076fc2