Commit Graph

53 Commits

Author SHA1 Message Date
Anjaneya Prasad Musunuri
cd30d49ee2 gralloc1: Get color space from metadata handle
Get color space from metadata handle when color metadata
is not defined

Change-Id: Ibeb0ce187e6c5b59d626345cf4d0d275c67df034
CRs-Fixed: 2160262
2017-12-18 01:42:35 -08:00
Mathew Joseph Karimpanal
a73082e5cb sdm: Add support for P010 Venus format
Add support for P010 Venus video format in SDM. Handle Qualcomm Venus
h/w video decoder aligned P010 buffer format.

Change-Id: I3edf21a5c3d90556c69c9944558398b65e4ed1e5
CRs-Fixed: 2149780
2017-11-30 10:03:33 -08:00
Saurabh Shah
3cc87edaf1 hwc/gralloc: Add missing formats
Add missing formats FP16, 1010102, P010 variants.

Change-Id: I2710a0aff7f87381afb8ec6ee7cb74ecf008f0ae
CRs-fixed: 2129663 2128978 2127406
2017-10-25 12:09:46 -07:00
Saurabh Shah
e50372c7ce gralloc: Add missing BT601_6_625 handing
Add missing BT601_6_625 handing

Change-Id: I10034f38c8ab2283f13556ddf37bea51e7356a79
CRs-fixed: 2129768
2017-10-25 12:07:36 -07:00
Naseer Ahmed
7aff26123e display: metadata fixes
* Do not log error on invalid metadata fds, such usages are
possible in some scenarios
* Correct usage of metadata API for some cases.

CRs-Fixed: 2122143
Change-Id: Id9cc7f4d27ef1890668f414d92b96cd419b6a066
2017-10-12 18:27:08 -04:00
Linux Build Service Account
b850ac7b5c Merge "gralloc1: Check input addresses for null" 2017-10-07 03:42:10 -07:00
Linux Build Service Account
40853a8793 Merge "gralloc1: update aligned size of buffer in native handle" 2017-10-04 18:26:25 -07:00
Saurabh Shah
6e4b37640a gralloc1: Check input addresses for null
Change-Id: Iddfcc07e50d3503a69b3604e5bd7f025f2b20534
CRs-Fixed: 2114346
2017-10-03 14:33:09 -07:00
Ramkumar Radhakrishnan
4f12b50bf0 hwc2: Use GRALLOC1_PFN_ALLOCATE to allocate buffer
1. Define gralloc1 function pointers needed to allocate buffer
2. Use the gralloc1 function pointers to allocate buffer instead of
   perform function to avoid any synchronization issues.
3. Remove functionality to allocate buffer from perform function

Change-Id: If686181409a179d3d911dfbd0f0c0eab7a7ffa99
CRs-Fixed: 2115331
2017-09-26 15:29:47 -07:00
Nirmal Abraham
6f3dcf80f0 gralloc1: update aligned size of buffer in native handle
During buffer allocation, the aligned size of the buffer should
be updated in newly allocated native handle (private_handle_t)
before returning the native handle to the caller. Secure
playback has strict requirement like 1M aligned size, so
secure playback fails if the aligned size of buffer is not
updated in handle before returning to the caller.

Change-Id: I8d8da13048b8423c07ebb3a3923fb331e06e3db1
2017-09-25 23:48:42 -07:00
Linux Build Service Account
db6ab83c87 Merge "gralloc1: Use implementation defined format at allocate" 2017-08-30 00:06:07 -07:00
Linux Build Service Account
4945a10962 Merge " gralloc1: Add proper check for linear format" 2017-08-23 13:02:38 -07:00
Linux Build Service Account
1c0e1bffdd Merge "gralloc1: Do not do early validation on Release" 2017-08-18 17:52:45 -07:00
Linux Build Service Account
8601aea9ee Merge "gralloc1: Do not map buffer in retain" 2017-08-18 17:52:42 -07:00
Ramakant Singh
d3dfe4b0bc gralloc1: Add proper check for linear format
CRs-Fixed: 2079563

Change-Id: I05a400bda32562810fe8d35ee816f151a2665ec2
2017-08-17 23:52:38 -07:00
Naseer Ahmed
95dc2884f5 gralloc1: Use implementation defined format at allocate
Make sure allocate always uses implementation defined format for
all cases

Change-Id: Ifea89fb8d300364c49ce39eaf68be868b0a21278
2017-08-17 15:19:21 -04:00
Linux Build Service Account
a189349297 Merge "gralloc1: Check linear format" 2017-08-11 21:31:17 -07:00
Naseer Ahmed
4662dc8b7c gralloc1: Do not map buffer in retain
Change-Id: I31319a763b21f7460a3f4e22c3fa69f34018e319
2017-08-10 04:19:39 -07:00
Naseer Ahmed
a186b47650 gralloc1: Do not do early validation on Release
Check if handle exists in map first.
CRs-Fixed: 2074655
Change-Id: Ia928f1f09578b9ab21479ce237a56555f29ca9c5
2017-08-09 14:10:29 -07:00
Prabhanjan Kandula
9e3df62a97 hwc2: Fix ubwc flags for fb target
- Use right property to disable ubwc for fb target.
- Remove unused property from gralloc1.

Change-Id: I4235d8898bcae1e16d7dbcc92d8d7a021ef9a052
CRs-fixed: 2073135
2017-08-03 12:11:06 -07:00
Ramakant Singh
c7d077937e gralloc1: Check linear format
--add check for LINEAR_FORMAT.
--use getMetaData API to access value(s).

CRs-Fixed: 2079563

Change-Id: I4e9375ab0778b97ca305ba3acd134391bdced266
2017-08-03 21:38:22 +05:30
Naseer Ahmed
193be6bf01 gralloc1: Do not map metadata in gralloc
Metadata map is handled dynamically in qdutils and mapping here
causes a double mmap.

Change-Id: I502ab61f8a3cff8782bf7e92c0218f7f7e307a5b
2017-08-01 01:41:50 -07:00
Linux Build Service Account
539b96c24b Merge "gralloc1: Deprecate usage flags for internal/external only" 2017-07-17 21:29:05 -07:00
Ramkumar Radhakrishnan
0574753d8d libgralloc1: Initialize stride and height from handle by default
Initialize stride/height with width/height of handle by default to
avoid returning invalid values to the client.

Change-Id: Iefa488fb50bbbb6aa9c6daf86af3f64092e56344
CRs-Fixed: 2073298
2017-07-10 17:46:56 -07:00
Naseer Ahmed
2f8f8d4338 gralloc1: Update client allocated handle behaviour
Client allocated handles give us a dup'd fd so we can
retain/release normally.

Change-Id: I0ec7cb6b86cbf23c160a81750144b5ca751c4104
Bug: 62470929
CRs-Fixed: 2060697
2017-07-04 12:50:19 -07:00
Rohit Kulkarni
04adc91d2c gralloc1: Deprecate usage flags for internal/external only
Deprecate internal/external only usage flags that are no
longer needed.

Change-Id: Id4fc6d780ac98327befbd723b9e48356b834fb7f
CRs-Fixed: 2070081
2017-06-30 14:33:36 -07:00
Linux Build Service Account
0b1ad3537b Merge "gralloc1: Get aligned width and height for ubwc interlaced layout" 2017-06-29 11:40:43 -07:00
Rohit Kulkarni
70537e0b89 gralloc1: Get aligned width and height for ubwc interlaced layout
The get custom stride and height perform api is updated to
calculate aligned width and height for ubwc interlaced layout.

Change-Id: Ibb595ae6bc3bea7dd6abcc6ed6f80ba7c7577fba
CRs-Fixed: 2062852
2017-06-22 12:30:59 -07:00
Naseer Ahmed
f8e9c43ca2 gralloc1: Align buffer size for each layer
Align the per layer buffer size instead of the total size.

Change-Id: I114fe6b9e0b40ce6cf92fcb32559ed01b94527e4
2017-06-19 11:07:43 -07:00
Linux Build Service Account
7a19b45ed7 Merge "gralloc1: Add support to provide interlace info" 2017-06-13 14:07:11 -07:00
Linux Build Service Account
0457725072 Merge "gralloc: Add support for Y16 and Y8 color formats" 2017-06-10 02:25:43 -07:00
Rohit Kulkarni
a152c31938 gralloc1: Add support to provide interlace info
Add new perform operation to indicate if the buffer is
interlaced. Update get yuv plane info operation to provide
info for ubwc interlaced layout.

Change-Id: I025ace1928d35e053a0cf32eafe51ee2dd4ac537
CRs-fixed: 2055788
2017-06-08 17:21:11 -07:00
Naseer Ahmed
67330707d4 gralloc1: Support GRALLOC1_CAPABILITY_RELEASE_IMPLY_DELETE
v2: Handle buffers allocated outside gralloc with flag
PRIV_FLAGS_CLIENT_ALLOCATED.

CRs-Fixed: 2041607
Bug: 36355756
Change-Id: Icb0c4b724f7bf7097812f6306fb0b9a56bb790a9
2017-05-31 13:46:45 -04:00
Anjaneya Prasad Musunuri
b165414438 gralloc: Add support for Y16 and Y8 color formats
Add support for buffer allocation with y16 and Y8
color formats.

Change-Id: If167e32c82fa1c89f205b191e8a118acff923c0b
CRs-Fixed: 2048886
2017-05-20 23:04:55 -07:00
Naseer Ahmed
fe6342e5bc gralloc1: Support GPU_DATA_BUFFER and SENSOR_DIRECT_DATA
* These buffers can have any RGB format
* Should not use UBWC
* Should be uncached
* 4k aligned

CRs-Fixed: 2037674
Change-Id: I49c88b1914f8a4247137ae5b64276f0346977a71
2017-04-24 12:45:39 -04:00
Naseer Ahmed
378d858eaf gralloc1: Locking fixes
* Separate buffer lock and descriptor lock
* Add lock for allocation as we touch the handles_map

Change-Id: I2baf7a65f55b04f1bbbfbf78a19c0e288040fab7
CRs-Fixed: 2037173
2017-04-21 17:19:45 -04:00
Saurabh Shah
14c8e5ba8a hwc2/gralloc1: Create libgrallocutils
--For gralloc1, create a libgrallocutils that provides helpers to
calculate various buffer related info
--Make hwc2/gralloc1 structures independent of libdrmutils
and fb_id / gemhandles
--Implement GetBufferLayout API from BufferAllocator that can be called
by DAL before creating fb_id

Change-Id: I0aede7d1ea87302ecda593047728d381383484b9
CRs-fixed: 1114808
2017-04-14 10:16:22 -07:00
Naseer Ahmed
baa39c5774 gralloc1: Add support for layered buffers
Implements the gralloc1 capability GRALLOC1_CAPABILITY_LAYERED_BUFFERS.

CRs-Fixed: 2025988
Change-Id: I80c8ef6aa18844e33ecd8b019c6f4cf08872afb5
2017-03-28 21:14:10 -04:00
Naseer Ahmed
4c0eec9ccb gralloc1: Refactor AllocateBuffer
Remove local function that passes the full set of arguments and
always use the BufferDescriptor function instead.

CRs-Fixed: 2025984
Change-Id: Ia27885ee57cd0a5a1643420c893042f90be588cd
2017-03-28 21:11:37 -04:00
Naseer Ahmed
49f2e9c72e gralloc1: Fix for buffer mapping and metadata access
- Don't mmap in the allocator process as it is unnecessary
- Fix MetaData access through getMetaData API
- Eventually we need to remove the MapBuffer in RetainBuffer to
fix 35955598.

Acked-by: Prabhanjan Kandula <pkandula@codeaurora.org>
CRs-Fixed: 2025987
Change-Id: I3d3a0edcf6ec93e827582010f6936361cb3790dd
2017-03-28 21:10:43 -04:00
Naseer Ahmed
92998628b7 gralloc1: Add RAW12 format
CRs-Fixed: 2022067
Change-Id: I628387ead990d08e4f7cf61908ee13490d9af982
2017-03-21 17:34:09 -07:00
Naseer Ahmed
29a86ddd3e gralloc1: Work around handle delete by hidl wrapper
This works around bug 36355756. Initializing the fds in the
handle to -1 before deleting is probably good practice anyway.
The handle delete needs to move to gralloc1 FreeBuffer() but
currently the client does it.

CRs-Fixed: 2022058
Change-Id: I4ae51e4cd90adb709287a01d66138df51924af8c
2017-03-20 12:26:56 -04:00
Naseer Ahmed
3a9d53a1ac gralloc1: Import ion handle into registering process
Importing the ion handle when retain() is called validates the
incoming ion fd and holds the client process accountable for
releasing the handle once it's done.

CRs-Fixed: 2020175
Change-Id: I3a169983b6d6b201d044e1c777a631aa16f9cb9a
2017-03-20 12:19:54 -04:00
Naseer Ahmed
699b45750b gralloc1: Add additional debug logging
CRs-Fixed: 2018334
Change-Id: I4ef2613ec69ca98818ed9c4f8d2408c4df2d039e
2017-03-13 17:50:57 -04:00
Naseer Ahmed
ef287dc13d gralloc1: Use handle as map key
The handle map is process local and the id may not be unique for
a given process

Bug: 36135145
CRs-Fixed: 2018333
Change-Id: Ic2bba13107787fd54121c978bff7e507eeb7dd64
2017-03-13 17:50:57 -04:00
Naseer Ahmed
dc918136ae gralloc1: Add Dump() in buffer manager
CRs-Fixed: 2016226
Change-Id: Ia09de175b6b0c837ae9d66deb6f08615a7cf6baa
2017-03-11 23:59:06 -05:00
Naseer Ahmed
e69031e9c7 gralloc1: Add remaining functionality
* Use private_0 flag
* Add some legacy flags to be used during transition
* Fix gralloc module version
* Adjust makefiles for gralloc1
* Add support for dump, num flex planes and lock flex.
* Use a unique ID for buffer descriptors
* Do not delete buffer handle, fix after verifying framework fix.
* Current gralloc1 clients do not conform to the lock() requirement
in the gralloc1 header. Tracked in b/33588773
* Add perform APIs to get the buffer size  and allocate a buffer
for use by SDM
* Fix reference counting
* Add a unique buffer ID
* Some cleanup in private_handle
* Create a wrapper class of private_handle to do refcounting
* Resolve implementation defined formats At allocation time, update buffer
descriptors to replace implementation defined formats with the ones we mean
to allocate
* Defer ion handle release
* Remove unused drm code.
* Add legacy constructor for private_handle_t used by some
clients

CRs-Fixed: 2007391
Change-Id: Ia9e816cec35ba45483a5b75d99f256325a010138
2017-02-17 09:19:23 -08:00
Saurabh Shah
7d476edfb3 sdm: drm: Add support for default non-atomic mode
Add support for booting up with default non-atomic mode
Add libdrmutils that currently has:
DRMMaster:
    Creates a master DRM session
    Converts ION handles to DRM FB_ID
DRMResMgr:
    Enables a default display path by providing APIs for
    connector id, crtc id, mode etc

Change-Id: I1dc697d2cc5e3fa744c99e2c9ddd57bf06e78c4f
CRs-fixed: 1114808
2017-02-07 14:37:24 -08:00
Saurabh Shah
c5b2b70479 gralloc/qdutils: Remove unused gralloc code, add driver type check
Remove unused code related to macro tiling from galloc and qdutils.
Add API to check for driver type and query caps based on driver.

Change-Id: I36cfa5529395c69deb886080be1c904ff5c9ad15
CRs-fixed: 1109207
2017-01-28 07:23:10 -08:00
Arun Kumar K.R
b2771bff77 display: Add color Metadata
- Add color aspects and HDR10 related static metadata
  which will be used in the existing metadata structure.
- Clients can use COLOR_METADATA to update the CSC
  information
- UPDATE_COLOR_SPACE is legacy and will be used when
  COLOR_METADATA is not set.
- Update gralloc to return color space when set from
  COLOR_METADATA
- Gaurd the usage with USE_COLOR_METADATA for cobalt.

Change-Id: I460accf6cd2bb7a305c7e93284955e566a5b7532
Crs-fixed: 1074172
2016-11-14 02:16:36 -08:00