Commit Graph

31 Commits

Author SHA1 Message Date
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
Sushil Chauhan
dfe55a2036 sdm: gralloc: Add support for Secure Camera use-case
1. Add support for Secure Camera use-case in SDM and gralloc.
2. Set the appropriate ION Heap ID, secure camera/preview ION flags
   and the alignment requirement for Secure Camera use-case.

CRs-Fixed: 1065934
Change-Id: I9e80f3093d598eec7bf717ddd0e3adbbc3382d5e
2016-11-04 06:54:20 -07:00
Ramkumar Radhakrishnan
ba55eac6ae libgralloc: Store unaligned buffer resolution in private handle.
Add unaligned_width and unaligned_height in private_handle_t to store
the buffer resolution without alignment that client asked to allocate.

Change-Id: I28d757af4178f581e6a83dc06198106c85fc7262
CRs-Fixed: 1040942
2016-09-08 15:15:49 -07:00
Prabhanjan Kandula
96e9234520 gralloc1 : initial implementation
Initial implementation of the gralloc1 APIs

Change-Id: I3b01595b0f9b30d9a08d02101fe42281556bd6a2
2016-05-11 00:49:41 +05:30