History log of /frameworks/native/vulkan/libvulkan/swapchain.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4744291270cc6c8d0838fab2bc1e954524dbfcbc 19-May-2017 Chris Forbes <chrisforbes@google.com> vulkan: Translate usage flags before passing to driver

Previously we just cast the 32bit flags and jammed them in the two
gralloc1 slots. Use the helper which does the correct translation.

(Yes, all these gralloc1isms are going away in favor of a single 64bit
flags field, but Vulkan HALs expect us to implement our side of
ANDROID_native_buffer correctly.)

Test: boot sailfish, run vulkan demo
Bug: 37686587
Change-Id: I806011986e8140d7f608d281798605bd9ca9a86b
/frameworks/native/vulkan/libvulkan/swapchain.cpp
dc96fdfa58260867c993fff78611220874753201 21-Mar-2017 Brian Anderson <brianderson@google.com> egl: Differentiate pending vs invalid timestamps.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: Iaa418ff1753a4339bfefaa68a6b03e8c96366a87
/frameworks/native/vulkan/libvulkan/swapchain.cpp
894780b0ac8f3cdb90e52c45f4fe34494131f70b 04-Apr-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Remove driver workaround

Appears that the workaround for bug #34177594 is no longer
necessary, so removing.
Bug: 34177594
Test: Run Vulkan app

Change-Id: Id574760bdea775ac7541a9657b5a8124eb9064ef
/frameworks/native/vulkan/libvulkan/swapchain.cpp
fca0f29e100d60163d408439f1a5750c353c9ade 30-Mar-2017 Chris Forbes <chrisforbes@google.com> vulkan: Dequeue the shared buffer again after presenting

Ensures that the shared buffer is always dequeued. This is tidier than
the previous hacky approach of dequeueing it on demand just prior to
this.

Test: build
Change-Id: I0202271a12106470329180b51a2eea19ceab31af
/frameworks/native/vulkan/libvulkan/swapchain.cpp
c88409c2b8e99be8d5f134e260c4c29b1e632b3c 30-Mar-2017 Chris Forbes <chrisforbes@google.com> vulkan: Don't dequeue in AcquireNextImageKHR if in shared mode

We've already got the shared buffer dequeued. All we need to do here
is make the semaphore and fence work.

Test: build
Change-Id: I77a49c312e91b5e0657b87ac2748428c631bdbc0
/frameworks/native/vulkan/libvulkan/swapchain.cpp
e0ced03e62565f42b3005ec34481ef2be7ae2d4b 30-Mar-2017 Chris Forbes <chrisforbes@google.com> vulkan: Only cancel buffers during swapchain creation if not shared

When a buffer queue is in shared mode, we're not allowed to cancel
buffers. Just keep the shared buffer dequeued all the time.

Test: build
Change-Id: I9ad4588ebd792ccdfee247d030579e2ef68aaef1
/frameworks/native/vulkan/libvulkan/swapchain.cpp
97ef461b1b6277f0f31f00e9c390424eb71392df 30-Mar-2017 Chris Forbes <chrisforbes@google.com> vulkan: Set shared & auto refresh modes earlier

We'd like to be able to remove the 2-buffer-minimum workaround -- but to
make that reasonable, we need the lower layers to know we're trying to
use shared mode. Set the appropriate modes before determining the buffer
counts, as a first step toward that.

Change-Id: I83a676fc1a86510abd4521cf9a5e80c0334d5941
Test: build
/frameworks/native/vulkan/libvulkan/swapchain.cpp
f883564b397bb97b793ccd04be89e4137ab1acd2 30-Mar-2017 Chris Forbes <chrisforbes@google.com> vulkan: Track whether in shared mode in Swapchain

We need to adjust our behavior in various other places if this is the
case.

Test: build
Change-Id: I749242c4c7f0b19693b6cc5bfcf2dd6e01ed0e5b
/frameworks/native/vulkan/libvulkan/swapchain.cpp
2c8fc75cca5e42b4f07b589cef6e78f3dff49ae0 16-Mar-2017 Chris Forbes <chrisforbes@google.com> vulkan: Always request at least 2 images for swapchain

For shared mode, we really only care about 1 image, but there are other
changes further down the stack that need to be made for that to really
work. For now, just tell the bufferqueue that we want 2. After that, we
still only dequeue one buffer (as in fact required by BQ in shared mode)
and construct one VkImage over it for giving back to the vulkan app.

[in V1 we were just smashing the buffer count to 2, which is messier and
observable by the app]

Change-Id: Idc0d3c232d56a5c0127f9472611d151f3605939c
Test: build
/frameworks/native/vulkan/libvulkan/swapchain.cpp
7992781a574b1c52a203e9271772da16f0f06812 23-Mar-2017 Jesse Hall <jessehall@google.com> Use gralloc usage conversion library

Converting from ..graphics.allocator@2.0 usage to gralloc0 usage isn't
quite as simple as ORing and truncating, which is what the default
implementation was doing. Switch to using library functions that do it
correctly.

Test: boot bullhead
Change-Id: Ibe644b53655e191b9bca9d619825a8918e8fc365
/frameworks/native/vulkan/libvulkan/swapchain.cpp
d8ab4396a858a9c929a1bb3cadf7705fb8061574 21-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "egl: Remove retire event."
4e606e3901b500bdd0f3ea21b8cb63734087bf0a 16-Mar-2017 Brian Anderson <brianderson@google.com> egl: Remove retire event.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: Ibf63d22e42ae52307662107eec50f80de0e703f5
/frameworks/native/vulkan/libvulkan/swapchain.cpp
c45673f8f14ecbcf49683ef7dd62dd4123a57fe5 13-Mar-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Update extension enums to match upstream.

Test: make
Change-Id: I0c48e3d7112ed009c088b0336fd974ee0dd22afe
/frameworks/native/vulkan/libvulkan/swapchain.cpp
06bc009ca14efd3869f2acf0de6ace9f9beb3c0b 16-Mar-2017 Chris Forbes <chrisforbes@google.com> vulkan: Implement usage flags query for KHR_shared_presentable_image

This was a late addition to the spec. Until we have a reason to do
otherwise, report the same set of supported usage flags for shared
present modes as for all other modes.

Test: build
Change-Id: I66c13b20a1a0f5aa9be13bc16a323f42874ba45a
/frameworks/native/vulkan/libvulkan/swapchain.cpp
2452cf7e653c425191791a4fb546106d6a277654 16-Mar-2017 Chris Forbes <chrisforbes@google.com> vulkan: Implement KHR_get_surface_capabilities2

Implemented by forwarding to the KHR_surface equivalents. This requires
a bit of rejigging in the case of GetPhysicalDeviceSurfaceFormats2KHR
to deal with the stride difference.

Change-Id: I0f1cc83cfc885955a39fc02d4a15609e83d36798
Test: dEQP-VK.wsi.android.surface.*2
/frameworks/native/vulkan/libvulkan/swapchain.cpp
f25db04cd8b2a840afae31d1f310298f8bbb65b0 15-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Make IGraphicBufferProducer a hybrid interface."
e0c320c99cb83890809fbbf0e1f68e921bdf01b7 14-Mar-2017 Steve Pfetsch <spfetsch@google.com> Merge "Revert "Extend hack to new driver version""
72957a98dcf0e373c05530e9b349ce96236e92a7 13-Mar-2017 Steve Pfetsch <spfetsch@google.com> Revert "Extend hack to new driver version"

Rolling back along with reverted driver drop

This reverts commit fc00a1d4275c9f6502d56e3e54f399e27e9a314b.

Change-Id: I58e23d7782254824d023ce4973a75ba5d0c1f367
/frameworks/native/vulkan/libvulkan/swapchain.cpp
6e1193af40c870c50013affec37c8429986b3c7b 07-Mar-2017 Pawin Vongmasa <pawin@google.com> Make IGraphicBufferProducer a hybrid interface.

android::IGraphicBufferProducer will now become a hybrid
interface on
top of the HIDL interface
android::hardware::graphics::bufferqueue::V1_0::IGraphicBufferProducer.

This CL also removes the hybrid interface mechanism from libbinder and
splits BufferQueueDefs into two parts, ui and gui.

Test: Camera, Photos, YouTube and Play Movies apps.
Bug: 35442034
Bug: 33854657
Change-Id: Idbbfdc8d9be375281b533050cea03c56fded9075
/frameworks/native/vulkan/libvulkan/swapchain.cpp
762c813cd0fdcf41760a7be9b8c73bfa246289c2 22-Feb-2017 Mike Stroyan <stroyan@google.com> Use valid libvulkan error results

Several of the error results were not valid according to spec.
Use values that are listed as possible results.

Bug: 35752097
Test: dEQP-VK.wsi.android.incremental_present.*
Change-Id: Ie7830e29b523265d62cd82638af7f6e34a36565b
/frameworks/native/vulkan/libvulkan/swapchain.cpp
1ed3d7936e1d45aff12461bd981d4f50df7ff0ba 03-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I121df86d,Ia692a5fd

* changes:
Add Vulkan to native helpers
Update color space names to match extension
df4ccdf1eeffc1066afd76c95dfd734b6b7f0ab2 03-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'colorspace_support'

* changes:
Use Surface::GetWideColorSupport in VK_EXT_swapchain_colorspace
Add plumbing for Surface::getHdrSupport
Add plumbing for Surface::getWideColorSupport
7d4a64a6ada75c773e9fc39f27a9220be32d084b 17-Feb-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Add Vulkan to native helpers

Add helpers to convert Vulkan colorspace and pixel format
to native formats. Also add more error checking when
those conversions fail.
Test: TBD CTS test.

Change-Id: I121df86dfddc3c10cbf5da1d9448d9ad01091f3d
/frameworks/native/vulkan/libvulkan/swapchain.cpp
e278daf850a664a1f15c760c64a74d3649b6f812 03-Feb-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Use Surface::GetWideColorSupport in VK_EXT_swapchain_colorspace

Use the newly added Surface::GetWideColorSupport to
add wide color SurfaceFormats when appropriate.

Test: compile Vulkan CTS test TBD
Change-Id: I85dbe9617b8eba8b89c3ad788d5ffc9f0d66f935
/frameworks/native/vulkan/libvulkan/swapchain.cpp
bca34c90fdef4e8132ca34a3f9493ab93c603ae7 17-Feb-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Update color space names to match extension

Test: make
Change-Id: Ia692a5fdc466a28c55cf0898cb0ea0bcca06aece
/frameworks/native/vulkan/libvulkan/swapchain.cpp
9b7e453d71e9c17477c097f5f28f1b9d3a134998 10-Jan-2017 Hrishikesh Manohar <hrishikeshm@nvidia.com> libvulkan : Handle VK_PRESENT_MODE_MAILBOX_KHR CASES correctly

The vulkan swapchain creation code set async mode for
VK_PRESENT_MODE_MAILBOX_KHR cases. However it goes so after
setting the buffer count for the native window being used.
This causes a mismatch between the minUndequeuedBuffers and
maxDequeuedBuffers count maintained by the libvulkan layer and
buffer queue code.
Fix this by setting the async mode correctly before the buffer
count for a native window is set.

Bug 200266758, b/32882690

Change-Id: I5d5e18e659b8d31f3d3fd9570b18a92f83a1516d
Test: dEQP-VK.wsi.android.incremental_present.*.mailbox.*
/frameworks/native/vulkan/libvulkan/swapchain.cpp
061fc6a2355d2958e60f57b3b36136746c53e29a 28-Feb-2017 Steve Pfetsch <spfetsch@google.com> Merge "Extend hack to new driver version"
e8d79a60cf5edc9ce0b025e39e3731fabcd2fdf4 21-Feb-2017 Chris Forbes <chrisforbes@google.com> vulkan: Advertise present modes based on actual capabilities

Now that all the infrastructure is in place, we can advertise
the correct set of present modes. These are:

- mailbox, always
- fifo, always (required by spec)
- shared demand refresh, if the driver can do it
- shared continuous refresh, if the driver can do it

V2: Switch from std::vector to android::Vector (thanks Ian)
V3: Single flag

Test: build
Change-Id: I4df43dd0b0067ef7ae7d5ac0535eb9f8f311dee3
/frameworks/native/vulkan/libvulkan/swapchain.cpp
fc00a1d4275c9f6502d56e3e54f399e27e9a314b 22-Feb-2017 Kalle Raita <kraita@google.com> Extend hack to new driver version

Change I5a8bb16f0f9563e32314cff2a2a7a45760cfc356 introduced a hack
to work around driver/loader version mismatch. This change adds a new
driver version to use the same path.

Test: dEQP-VK.wsi.android.swapchain.*
Change-Id: I6db889a181710239ad9b286919cfc834271c9721
/frameworks/native/vulkan/libvulkan/swapchain.cpp
d634c483bcbd564acd81dcf5d15fc5fa8ab410f4 05-Jan-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Add HDR Metadata extension

Basic framework to support HDR Metadata extension. Will
add system plumbing in separate CL.

Test: CTS dEQP-VK.wsi.android.hdr_metadata.scale_none.fifo.*
Change-Id: I5de639ef87a988e02d194a2bd91d16ffe6102c6e
/frameworks/native/vulkan/libvulkan/swapchain.cpp
b9d9e30bc769add081b3deee1d293381df674fdb 14-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Ignore VK_KHR_incremental_present hint for MAILBOX."
832b6b94684cbd8bf0fcf00bd431ee5e8de03ba7 14-Feb-2017 Brian C. Anderson <brianderson@google.com> Merge "EGL: Use frameId instead of framesAgo for frame events."
ffedb65cea7551bc689552c0bc21343f568d000e 14-Feb-2017 Ian Elliott <ianelliott@google.com> Ignore VK_KHR_incremental_present hint for MAILBOX.

Test: Using instrumented cube demo, and tmp ALOGI comments.

This code may eventually be replaced with code that constructs, stores,
and uses regions that spans multiple vkQueuePresentKHR() calls. With
VK_PRESENT_MODE_MAILBOX_KHR, any given present may not be sent to the
display. In such a case, the correct behavior is for the swapchain code
(a.k.a. acting for the "presentation engine") should build up a list of
regions across multiple vkQueuePresentKHR() calls, so that when an image
is presented, all of the updated regions will be sent to the display.
In the mean time, this code is correct (i.e. ignore the hint for
MAILBOX).

Change-Id: I413091871a9b9b7464ec941a857eea56e68f4189
/frameworks/native/vulkan/libvulkan/swapchain.cpp
85bb0c5a57be2b456079c14448127fa9bb8cff66 10-Feb-2017 Jesse Hall <jessehall@google.com> vulkan: Temporarily hack around loader/driver mismatch

A driver was built with an older declaration of
vkGetSwapchainGrallocUsage2KHR, and doesn't match what libvulkan
expects. This is a temporary workaround until the driver can be
rebuilt against the current header. When a new driver is available,
this change should be reverted.

Test: vulkanGears on affected device
Change-Id: I5a8bb16f0f9563e32314cff2a2a7a45760cfc356
/frameworks/native/vulkan/libvulkan/swapchain.cpp
d1abd7456e10f46200a90e8a0e5a1a8bef0a388a 10-Feb-2017 Jesse Hall <jessehall@google.com> vulkan: Add gralloc1 usage to VK_ANDROID_native_buffer

Replaces the gralloc0-style 'int' usage in
vkGetSwapchainGrallocUsage2ANDROID and VkNativeBufferANDROID with a
gralloc1-style pair of uint64_t usages. A later change will plumb this
to and from ANativeWindow; for now we just collapse and expand from
32-bit usage.

Test: vulkanGears
Change-Id: I4555ba9d6ca1d15ed0791dc0bda01a1443890d02
/frameworks/native/vulkan/libvulkan/swapchain.cpp
e3066e970d823845d51d08bdccefb01281be4969 07-Feb-2017 Chris Forbes <chrisforbes@google.com> vulkan: Disable shared present modes for now

This extension is not yet ratified, and we shouldn't really be
unconditionally exposing the new present modes anyway.

Test: build
Change-Id: I0a9631a5079648c0d8981f07a9f704b7f8758ce3
/frameworks/native/vulkan/libvulkan/swapchain.cpp
1049d1d0b21ee318e309f9a90098c092cb879c41 17-Dec-2016 Brian Anderson <brianderson@google.com> EGL: Use frameId instead of framesAgo for frame events.

Using a frameId allows an app to poll for timestamps
from a thread other than the swapping thread.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I3faac0513929837982a2e63f7e0d3d529bd28f10
/frameworks/native/vulkan/libvulkan/swapchain.cpp
4da65b9bea890864effb0b5bab0a258cb0c6d685 30-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: Adjust ANDROID_native_buffer to match new shared image naming

Rename the SWAPCHAIN_IMAGE_USAGE_FRONT_BUFFER_BIT to
SWAPCHAIN_IMAGE_USAGE_SHARED_BIT, to match Khronos renames.

Change-Id: I380512a66221c8cfcc650cd7e8259a185d61604d
Test: build
/frameworks/native/vulkan/libvulkan/swapchain.cpp
1d5f68c10560a82fd3278e17e934ee3bff328374 30-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: KHR_swapchain_front_buffered -> KHR_shared_presentable_image

Tracking Khronos naming churn
V2: More churn, no longer shared_image_swapchain.

Test: build
Change-Id: I88b11b47f2fd2f96e1f27f900a65b599aec470af
/frameworks/native/vulkan/libvulkan/swapchain.cpp
be833a27b36149e48f2e1b8bbb2f70dd63428419 25-Jan-2017 Ian Elliott <ianelliott@google.com> Vulkan: only report refreshDuration, not {min|max}RefreshDuration

Test: Manually tested with a modified cube demo, that reports the refresh
duration returned from this extension.

As part of discussions within Khronos, it was decided that
VK_GOOGLE_display_timing should only report one refresh duration for a display,
and assume that it's refresh rate is fixed (which is the case for our current
devices).

Change-Id: I772348281c18a36b02dcfe0519d1943e25a41f7c
/frameworks/native/vulkan/libvulkan/swapchain.cpp
62c48c931f88ec44c41621afe988c34cab1fb41d 20-Jan-2017 Ian Elliott <ianelliott@google.com> Plumb refresh cycle duration up to VK_GOOGLE_display_timing.

Test: Manually tested with a modified cube demo, that reports the refresh
duration returned from this extension.

Change-Id: Ib9499429119e910585a4ee9341c3a2d86a3bdae0
/frameworks/native/vulkan/libvulkan/swapchain.cpp
14866bbeca1ebcda93f43a3352934889a9f37c2b 20-Jan-2017 Ian Elliott <ianelliott@google.com> Fix typo in new enum, VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE

Test: build

Change-Id: I5ed26459e7ab2c358dad731025e4b83ae71b3de0
/frameworks/native/vulkan/libvulkan/swapchain.cpp
4e18ba82847bdb31504a1b005370f8df931f959d 19-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: return OUT_OF_DATE from GetSwapchainStatus if not current

We don't yet have good ways to detect other ways in which the swapchain
may have gone bad, but it's easy to detect the case where the swapchain
is not current for the surface it targets.

Test: build
Change-Id: Id882a4a699d65f323e8a5e181f0e25e903039f21
/frameworks/native/vulkan/libvulkan/swapchain.cpp
2c6355d7a54cb24db3f790e8c9e05fad897a6aec 19-Jan-2017 Ian Elliott <ianelliott@google.com> Minor tweaks to VK_GOOGLE_display_timing

Test: Manually tested with a modified cube demo, that changes its timing as a
result of the data returned from this extension.

Change-Id: I80795ae9e10e285e00382bd565f22f2bfdb37177
/frameworks/native/vulkan/libvulkan/swapchain.cpp
84b9bc0e98511fb707edb27ff0c7e885db881a7e 19-Jan-2017 Ian Elliott <ianelliott@google.com> Merge "Enumerate initial version of VK_GOOGLE_display_timing"
8a977261a012b0b02c062ac4a5a133f79ef74b62 19-Jan-2017 Ian Elliott <ianelliott@google.com> Enumerate initial version of VK_GOOGLE_display_timing

The implementation seems correct with the exception that it is not obtaining
the refresh durations from SurfaceFlinger/HAL. A maximum of 10 TimingInfo's
(containing the timing for previous presents) are stored, and timestamps are
only queried from SurfaceFlinger for presents (a.k.a. frames) that occured 5
presents/frames ago.

Test: Manually tested with a modified cube demo, that changes its timing as a
result of the data returned from this extension.

Change-Id: I199614ed58877b64eab2568a76ba517acca3bf87
/frameworks/native/vulkan/libvulkan/swapchain.cpp
b8042d26de26e9212e62518b39147008937c7729 18-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: enable shared buffer mode and auto refresh if desired

First turn these off as part of the reset process, then set them based
on the present mode.

Test: build
Change-Id: I81297d6cfcdab1a569cd0c9d57ed3fcb4c534146
/frameworks/native/vulkan/libvulkan/swapchain.cpp
b442152d5ac4c1a720ba677a11ae742cd0c7ca39 18-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: Set front buffer bit for image creation

Test: build
Change-Id: Id974ffb24c13941919be62d9a0cae2155da967d5
/frameworks/native/vulkan/libvulkan/swapchain.cpp
980ad05eb054386f62395bdf16298581d2a5b09e 18-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: Offer frontbuffered present modes

Test: build
Change-Id: I8654961f0ceb01a7015321b61472f201005a527f
/frameworks/native/vulkan/libvulkan/swapchain.cpp
0f2ac2e52d06ed171f7b888870c1c3c42b167d1a 18-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: Add function stub & plumbing for KHR_swapchain_front_buffered

Test: build
Change-Id: I6ea2e33e708067f11069bda19c4b5ea167158913
/frameworks/native/vulkan/libvulkan/swapchain.cpp
b56287ad73b9ea1c8e9d0a24dc3605e8aae06903 12-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: Chain VkSwapchainImageCreateInfoANDROID structure

This allows the hal to see the swapchain image usage flags for
gralloc-backed images, in case it needs to do something special during
VkImage creation.

Change-Id: Ie3784ba4c7fdc08d4deace2f70b7f8879ba431fb
Test: build, run cube demo
/frameworks/native/vulkan/libvulkan/swapchain.cpp
8c47dc9136aa26ee749bbe952db04f6b2fc79399 11-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: Use GetSwapchainGrallocUsage2ANDROID where available

Test: build
Change-Id: I7df711e0760593749db050c1df843e39e4275003
/frameworks/native/vulkan/libvulkan/swapchain.cpp
1030084d453335c379abc6f567b89124a3ddc7be 11-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: Remove bogus IMAGE_USAGE_GENERAL from todo note

There is no such usage. There is also no risk of bad interactions with
cpu-mapping, since gralloc-backed images do not use a VkDeviceMemory.

Test: build
Change-Id: I2d7512ec79777f796826bc2b9c8dc3626a535737
/frameworks/native/vulkan/libvulkan/swapchain.cpp
e0ea99cc4ba89452b9b6b1baa33bddcb11f3351a 12-Jan-2017 Mark Salyzyn <salyzyn@google.com> resolve merge conflicts of a2c2d11f9 to master

Test: compile
Bug: 26552300
Bug: 31289077
Change-Id: I84d0ffa430df3beca0dcc6ed205ce220d7be1f87
7823e124e00576e20e47ec717cbe8bc89f0f2bf2 29-Sep-2016 Mark Salyzyn <salyzyn@google.com> Replace cutils/log.h and rationalize log/log.h and android/log.h

- cutils/log.h treat as deprecated and lead by example
- android/log.h to be used instead of log/log.h if possible
- add system includes that are assumed as side effects
- define LOG_TAG first

Test: compile
Bug: 31289077
Bug: 30465923
Change-Id: I8d99b24c333578c9b5aa9f2a01324bd0bba268dd
/frameworks/native/vulkan/libvulkan/swapchain.cpp
4c8bb2a95d7849c79dea889f1be59281f4e374bf 29-Dec-2016 Ian Elliott <ianelliott@google.com> Stubbed implementation of VK_GOOGLE_display_timing extension.

This provides the header changes and most of the "boilerplate" changes to add
the VK_GOOGLE_display_timing extension to Vulkan. Future changes will modify
and integrate with the Surface, FrameEvents, and SurfaceFlinger code.

Test: Manually tested that existing apps won't tickle the new-extension paths.

Change-Id: Iec46b1cab4b2561702ebac9a4ae7587584793192
/frameworks/native/vulkan/libvulkan/swapchain.cpp
c03d283e8b3f830d76dd94822b2a13872c05c730 28-Dec-2016 Mark Salyzyn <salyzyn@google.com> resolve merge conflicts of 525a5f2 to master

Test: build
Change-Id: Id1c6d3d9dd158fb086b0d8ab74f7838ef0a51af1
a5e161b1207ef447a51e99856097d69d4a6111e1 29-Sep-2016 Mark Salyzyn <salyzyn@google.com> Replace cutils/log.h and rationalize log/log.h and android/log.h

- cutils/log.h treat as deprecated and lead by example
- android/log.h to be used instead of log/log.h if required
- add system includes that are assumed as side effects of log.h
- modules that use SLOG should use SLOG for all logging (installd)
- define LOG_TAG first
- remove logging infrastructure if not used

Test: build
Bug: 31289077
Change-Id: Iea147a0104c7ab7f12451304131d6500f42141e7
/frameworks/native/vulkan/libvulkan/swapchain.cpp
b31ad5e553258442246d684e112f13a275a4a49b 15-Dec-2016 Daniel Koch <dkoch@nvidia.com> Merge "libvulkan: add NULL check to DestroySwapchainKHR" am: 55e4f91258 am: f9312a168a am: c148af227a
am: ea413d2823

Change-Id: I98a8dbc94dacd987068eb6adae70fa93fec43b4b
d78c2e8a0807ff45db4cb643cc2ef38eafd22551 14-Dec-2016 Daniel Koch <dkoch@nvidia.com> libvulkan: add NULL check to DestroySwapchainKHR

vkDestroySwapchainKHR is required to silently ignore NULL handles
that are provided to it to destroy.
This adds an early return if swapchain_handle is NULL.

Test: dEQP-VK.wsi.android.swapchain.destroy.null_handle (VK 1.0.2 CTS)

Change-Id: Ic230f114a680210cb0e0de931b17e4d70fb27f44
/frameworks/native/vulkan/libvulkan/swapchain.cpp
cb35113761ae7afc26c7bffc529b590575a9f4d7 13-Dec-2016 Ian Elliott <ianelliott@google.com> Initial implementation of VK_KHR_incremental_present.

Test: Manually tested with the Vulkan cube demo, examining logcat output to
ensure that the VkRectLayerKHR data made it all the way down to HWC2.

Change-Id: I6085acfab1b9db80a4a930dc2c0008b3a3fc0277
/frameworks/native/vulkan/libvulkan/swapchain.cpp
7331e228f5089a619a517630351353e88d04c9b5 16-Sep-2016 Jesse Hall <jessehall@google.com> libvulkan: Fix count returned for incomplete wsi queries

When vkGetPhysicalDeviceSurfaceFormatsKHR,
vkGetPhysicalDevicePresentModesKHR, and vkGetSwapchainImagesKHR
returned VK_INCOMPLETE, they would overwrite the count parameter with
the number of available items, rather than the number of returned
items.

Change-Id: I6a736770f90b95ad15bfcfbe5afb4d2886817dcb
Fixes: 31490492
Test: https://gerrit.khronos.org/#/c/158/
/frameworks/native/vulkan/libvulkan/swapchain.cpp
42a9eecb23c0b72bbee1eb2ef6b0d6586159d1c3 03-Jun-2016 Jesse Hall <jessehall@google.com> libvulkan: reduce log level for swapchain usage errors

Bug: 26927424
Change-Id: Id9346356436663db83a2d6fa8fefc4ea24d7854b
/frameworks/native/vulkan/libvulkan/swapchain.cpp
dc22507e6fd6659c886aa1218f7681fd43b74598 31-May-2016 Jesse Hall <jessehall@google.com> libvulkan: Slightly better handling of swapchain re-creation

Previously we would fail vkCreateSwapchainKHR if
VkSwapchainCreateInfo::oldSwapchain was used, because we were unable
to dequeue all buffers for the new swapchain from an already-used
native window.

Now we disconnect and re-connect to the native window in order to
fully reset state, and allow us to dequeue all buffers. Additionally,
we tag the old swapchain as out-of-date, so future image acquires and
presents will fail with VK_ERROR_OUT_OF_DATE_KHR on that swapchain.
This is less than ideal, but better than what we had, and the best we
have time to do for N.

Bug: 26927424
Change-Id: Ifaa5048376f72a63ecb1dca3d1ff85dbee2c24d0
/frameworks/native/vulkan/libvulkan/swapchain.cpp
2676338dd692b7d1e1c276d82e6b0492db53ab2e 20-May-2016 Jesse Hall <jessehall@google.com> vulkan: Update vulkan.h to 1.0.13

vulkan.h and vk_platform.h imported from
github.com:KhronosGroup/Vulkan-Docs @ 2656f459333b3a1dc63619a9ebd83490eea22e93

Updated vulkan.api to reflect the changes in vulkan.h. There were no
changes to any of the code we generate. I didn't update the
vulkan_h.tmpl, since we're not currently using it and it was already
out of date.

Bug: 28878216
Change-Id: I71676683148fae7ad8799bd39386a931319aa395
/frameworks/native/vulkan/libvulkan/swapchain.cpp
3d1c82a750046f055951242bf27909ad7d9cdf52 23-Apr-2016 Jesse Hall <jessehall@google.com> libvulkan: Reset window before creating swapchain

When using one window for two consecutive swapchains, some of the
settings from the first swapchain were affecting how many buffers we
thought we needed for the second, eventually leading us to attempt to
dequeue more buffers than we actually could.

Bug: 28075694
Change-Id: I7d2cabc2365986dfcfe8a03d16bb71ca1616f144
/frameworks/native/vulkan/libvulkan/swapchain.cpp
e8e689f1190a936ebd6bf6cbe28ab8625e94c6c7 18-Apr-2016 Chia-I Wu <olv@google.com> vulkan: replace std::shared_ptr by android::sp

With the change, we do not handle exceptions anymore. Remove
-fexceptions.

Bug: 26732452
Change-Id: I2782f9b522cb25f158515fcf90312013e672225b
/frameworks/native/vulkan/libvulkan/swapchain.cpp
4ad5c1414b3cfcbe5b3c3b9f21b42f23d99bafba 11-Apr-2016 Chia-I Wu <olv@google.com> Merge changes I21f07545,I73c39cbe,I47b1639c,I4a6268d7,I06be9898, ... into nyc-dev

* changes:
vulkan: remove unused loader.{cpp.h}
vulkan: use driver::GetData everywhere
vulkan: move all _Bottom functions
vulkan: add swapchain.h
vulkan: add layers_extensions.h
vulkan: rework CreateInstance_Bottom and related ones
vulkan: rework EnumerateDeviceExtensionProperties_Bottom
vulkan: rework {Create,Destroy}Device_Bottom
vulkan: move AllocateCommandBuffers_Bottom
vulkan: move GetDeviceQueue_Bottom
vulkan: rework DriverDispatchTable
vulkan: rework driver::Get*ProcAddr
vulkan: add VK_ANDROID_native_buffer to vulkan.api
vulkan: move driver::GetDefaultAllocator
vulkan: move driver::OpenHAL
vulkan: move driver::Debuggable
4a6a91647c57abb5c06cde57c57afe944f8cefa4 26-Mar-2016 Chia-I Wu <olv@google.com> vulkan: use driver::GetData everywhere

Move away from the one-liners defined in loader.cpp.

Change-Id: I73c39cbe21aa3b2079f67590bb40f0cd55563f84
/frameworks/native/vulkan/libvulkan/swapchain.cpp
622622377a1ac71a81a88e335f170c4a08835f06 26-Mar-2016 Chia-I Wu <olv@google.com> vulkan: move all _Bottom functions

Move them to vulkan::driver namespace and drop the _Bottom suffix.

Change-Id: I47b1639c4074adb9c0658816f5f1e126df7f685b
/frameworks/native/vulkan/libvulkan/swapchain.cpp
c684560d96df39570c66b2b3e0035859bb4b25a5 07-Apr-2016 Chia-I Wu <olv@google.com> vulkan: avoid double-free in InitSharedPtr

When std::shared_ptr fails to allocate its internal data, it deletes the
managed object automatically. We should not call obj->common.decRef on
std::bad_alloc.

Bug: 28039233
Change-Id: I1fe00c16e83e426602eac96d8b86afb4fd4830e6
/frameworks/native/vulkan/libvulkan/swapchain.cpp
cc5e2765a9d56b03b69d0c3f25b94721f82d034e 24-Mar-2016 Chia-I Wu <olv@google.com> vulkan: rework DriverDispatchTable

Generate {Instance,Device}DriverTable from code-generator.tmpl to replace
dispatch.tmpl entirely. The new code avoids initializing
VK_ANDROID_native_buffer entries when the extension is not enabled. The
separation of instance and device driver tables also allows us to
initialize the device driver table with vkGetDeviceProcAddr, which is
expected to return more efficient function pointers on properly
implemented HALs.

CreateInstance_Bottom always has a potential resource leak when the
HAL-created instance does not contain HWVULKAN_DISPATCH_MAGIC.
CreateDevice_Bottom now has the same issue. Both of them will be fixed in
following commits.

Change-Id: If7800ef23098121f1fff643a2c5224c2c9be0711
/frameworks/native/vulkan/libvulkan/swapchain.cpp
e6080bf2e54aa0d548b0eb571ad2eef2c52e5fb6 29-Feb-2016 Jesse Hall <jessehall@google.com> libvulkan: Check for negative in signed -> unsigned conversion

Requested during security audit in bug 27118888.

Change-Id: Id82382258d2b6f8523b8af29f494dfc67100d190
/frameworks/native/vulkan/libvulkan/swapchain.cpp
178b69664a5f56470c143b5930162f285adc83fa 25-Feb-2016 Jesse Hall <jessehall@google.com> libvulkan: Set window transform based on swapchain preTransform

Bug: 26927663
Change-Id: I385a363dccbeae2329d25712d30dc629fdce2074
/frameworks/native/vulkan/libvulkan/swapchain.cpp
55bc09788673f8f35bfb2450028827d5ea76c1d3 24-Feb-2016 Jesse Hall <jessehall@google.com> libvulkan: Report current and supported transforms accurately

Bug: 26927663
Change-Id: I99129b49e2be6f6dd501813185edc67f10b976bf
/frameworks/native/vulkan/libvulkan/swapchain.cpp
3d92c53d99866ddd28c9ff20f610074c82f70d43 10-Feb-2016 Jesse Hall <jessehall@google.com> Merge "libvulkan: Support R5G6B5_UNORM_PACK16 as a swapchain format" into nyc-dev
148a1b45ff2c205f6aa9c46c7f039d29d877a35c 10-Feb-2016 Jesse Hall <jessehall@google.com> Merge "libvulkan: Un-revert and fix VK_PRESENT_MODE_MAILBOX_KHR" into nyc-dev
517274a29e50522a11e65107bb2c0d5b123aa7d5 10-Feb-2016 Jesse Hall <jessehall@google.com> libvulkan: Support R5G6B5_UNORM_PACK16 as a swapchain format

Change-Id: I489cf12965372d5281d200102a4632e6e8d75ede
/frameworks/native/vulkan/libvulkan/swapchain.cpp
fe2662d9e32d994346e7705c54043d8eb90a3734 09-Feb-2016 Jesse Hall <jessehall@google.com> libvulkan: Initialize VkSurfacePropertiesKHR::supportedCompositeAlpha

Also rearrange the code to set the fields of this struct in the same
order they appear in the struct, to make it easier to tell when
something is missing.

Bug: 26991609
Change-Id: I681ed42c96ac75bb1589d30ab75f760f660eacdd
/frameworks/native/vulkan/libvulkan/swapchain.cpp
0ae0dceca1fb83e095d8de6b811aa193def238a0 10-Feb-2016 Jesse Hall <jessehall@google.com> libvulkan: Un-revert and fix VK_PRESENT_MODE_MAILBOX_KHR

This reverts commit 9ec497c, which was a revert of f333922, and fixes
the problem that caused the initial revert.

MODE_MAILBOX corresponds to BufferQueue "async" mode; in that mode we
need one extra un-dequeued buffer at all times. We weren't accounting
for that, and weren't allocating enough bufers.

Bug: 26918467
Change-Id: Ice67e6d16828e50413ae453ecf3c67b8fb288f1a
/frameworks/native/vulkan/libvulkan/swapchain.cpp
9ec497c4a14cc33ed1fa88b3f920d3467ab49cc9 29-Jan-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Revert "libvulkan: Implement VK_PRESENT_MODE_MAILBOX_KHR"

This reverts commit f333922399393609f5bf022a3467b7541bd1ad0f.
Hologram demo dies with this change.
/frameworks/native/vulkan/libvulkan/swapchain.cpp
26cecff368f2edba67d136ce00d27bb55634c0f1 22-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Fix dEQP-VK.api.object_management.alloc_callback_fail.instance

The loader was crashing when a std::vector::resize() operation called
the test-provided allocator, which returned failure, and then the
vector blindly started writing into the returned pointer.

Obvious in hindsight, but stdlib containers+strings + user-provided
allocation funcs implies that the loader must be built with exceptions
enabled, and must be exception-safe at least where it uses
containers/strings. We were doing neither.

This change has the minimally invasive fix, which is to (a) throw an
exception from the stdlib Allocator when the app-provided allocation
function fails, and (b) wrap every stdlib operation that might
allocate in a try..catch and turn it into a
VK_ERROR_OUT_OF_HOST_MEMORY error.

This is pretty unsatisfying and I'm not happy with the resulting
mismash of error-handling styles, with having exceptions at all in
code that was not written to be exception-safe, or with the
fine-grained try..catch. We need to decide whether to keep using parts
of stdlib that can allocate, and rewrite a lot of code to be
exception-friendly, or we need to replace the stdlib code with manual
containers and strings. Bug 26732452 filed.

Change-Id: I6f096f25a43a0e3c5f56796c2af19f114d2edac6
(cherry picked from commit ccca46db073dfadc81a68ac1533d8859ed3e109a)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
f333922399393609f5bf022a3467b7541bd1ad0f 18-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Implement VK_PRESENT_MODE_MAILBOX_KHR

Change-Id: Ibbb11849c7a59236e27af32148ab5c5fb22d9b19
(cherry picked from commit 388e6ab8bc0067f88147e68dd20d5c2b6b1e3213)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
715b86ac7d0853131b375ff786c87d8d87a762a1 17-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Support VK_EXT_debug_report in loader and nulldrv

* Add extension to vulkan.api.
* Fix a few errors in upstream vk_ext_debug_report.h; bugs filed.
* Loader enumerates extension iff the driver supports it.
- TODO: Also enumerate if any layers that support it are implicitly
enabled.
- Note extension may still be enabled if any layer supports it.
* Add loader bottom procs for the extension functions. These will call
through to the driver version if the driver supports the extension.
* Add no-op support to nulldrv, mostly for testing the loader.

Change-Id: I092d2da56ee4c64498f8edae75e0d995478bb6f2
(cherry picked from commit a5ef7c27bc85e3628814532a32ffb9a5c33c4b73)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
275d76c8158c90ec5317b82cb10b094bca2b43cf 09-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Pass vkQueuePresentKHR wait semaphores to vkQueueSignalReleaseImageANDROID

Change-Id: I4073ced5e0e155d424699f636654ec226cd9d91c
(cherry picked from commit 69ce2beade5386111ef85382cc659a439a5a3b44)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
3dd678a6a30e2d94bfd570ec43ffd379e9c5d409 09-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.221.0 to 1.0!

Change-Id: I9453454cc47046ad9f64a72a812a4e5da694c223
(cherry picked from commit 3fc8ed14c5d6890348400bf3e6dab2870b3fbbc5)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
f9fa9a50d5e87dacce36ef2a56b392fc053cf8ce 09-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.210.1 to 0.213.0

Change-Id: I441a2ddf872298a5415b40299fc1143c879c5e86
(cherry picked from commit 842515ca8d8705627e3ce7c196405cac60707629)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
1f91d390ac013ea2514a67e12ddb083119d636d7 12-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: Implement new vkGet*ProcAddrBehavior

The primary goal of this change is to switch to the revised GPA
behavior:
- GIPA(NULL, ..) only works for non-dispatched (global) commands
- GIPA(instance, ..) returns functions for commands that dispatch on any
object type, and the function works for any object of the appropriate
type if it is a child of the instance.
- GDPA(NULL, ..) returns NULL.
- GDPA(device, ..) returns a device-specific function for the command.

This change refactors/tidies many of the things it modified. Some
notable changes:
- All the loader generated code is now in dispatch.tmpl ->
dispatch_gen.{h,cpp}, instead of two separate templates.
- Reorganization allowed generating the dispatch table structures,
eliminating one source of frequent bugs.
- Removes some error-prone macro duplication.
- Handling of extensions and special loader functions is now much
more uniform and hopefully clearer.
- Loader top- and bottom-level functions are now consistently named with
_Top and _Bottom suffixes, and are grouped by level in loader.cpp.
- The VkInstance and VkDevice implementations are no longer derived from
::VkInstance_T and ::VkDevice_T. Was more trouble than it was worth.
- Renamed 'vtbl' to 'dispatch' in most places.
- Renamed nulldrv template and generated files to match the loader
naming pattern: null_driver.tmpl -> null_driver_gen.{h,cpp}
- Now all the entry point prototypes are generated, instead of having
to be updated by hand (another source of several bugs).

Change-Id: Ic263f802d0d523b18a0f00420b3a722aa04ce299
(cherry picked from commit 3cffb8e837222f413a1fe53522e2cc33366b8eeb)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
061938022b3f5f37f7aaebf7ccc8ac20bf4dbf97 04-Dec-2015 Jesse Hall <jessehall@google.com> libvulkan: Implement new VkFence parameter in vkAcquireNextImageKHR

This parameter was added recently but wasn't hooked up. This adds a
new parameter to the vkAcquireImageANDROID extension function, and
plumbs the fence through from vkAcquireNextImageKHR to it.

This change also fixes some function signatures for API functions that
are implemented in the loader bottom rather than the driver. These
functions are only ever called through function pointers returned by
vkGet*ProcAddr, and therefore pass through a cast to
PFN_vkVoidFunction. So the compiler had no way to know they were
supposed to match a particular prototype, and couldn't issue an error
when they didn't. This change adds explicit static casts to the
expected function pointer type before reinterpret casting to the
generic function pointer type to enable compile errors.

Change-Id: I8a7e065502f783d5f2381b43c880644868234f8f
(cherry picked from commit f62f5de0c60212796b6d910cbd194c7002226264)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
f4ab2b18391ab5045b44af9ea1d5698af7c2a0cd 01-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.206.0 to 0.209.0

Change-Id: Ieaf1c4c01f3376cde407bef193a9aa33e77ca123
(cherry picked from commit 91b3c3599ea5095388c4bdeb14f09529f3fbb9cc)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
dba27f71fad236f08deae3d0b987e83700b32f94 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.205.0 to 0.206.0

Change-Id: I36370f6ec41abf235975a0c769c03c8f25851d14
(cherry picked from commit c7d7dcfffafda197458d6c4afebb486bd64e0d53)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
0e74f00af03b7e705774d0dcf69c2ba8ce7a15a8 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.204.0 to 0.205.0

Change-Id: Ic0b91f338bcddc50b4617da266347ae8b9cc29fa
(cherry picked from commit 052ac57d4c70d934d76fb5cd94278c326e623963)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
e1b12783fff0b8e2defcc94c54fac8d737e6b996 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.203.0 to 0.204.0

Change-Id: I2de0935df66b0110b566ed2025c39e0c17b98f17
(cherry picked from commit 79c20c98e47ce5a7d0608cda59b19d153455cbae)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
a9e5703e380d9d7f096d177adb792621a1e8d4ba 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.202.0 to 0.203.0

Change-Id: I21a390bd57082194f6131b118ecd6c94874d2f7f
(cherry picked from commit 5f1b8406c88d20f23e77426d4d786caca659540b)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
091ed9e69400edcc549c9b11635d1a305d6b5a83 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.200.0 to 0.202.0

Change-Id: If8eb49cd7e5516931f9900b691d6d32af2aa98b0
(cherry picked from commit 5b9c3a1af7088351d49431a496ef9f7fd078e9f6)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
3fbc856120217247c72fb5ed88500000f3881c45 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.194.0 to 0.196.0

Change-Id: Ib62cc358b1f2575daeaa2a893eb4afca458ec5c3
(cherry picked from commit 48e9a8af39134fc2e995867668e113e56931167b)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.192.0 to 0.193.0

Change-Id: I4387b28368c38c5165c1da99d8dc4e632ad2b42a
(cherry picked from commit d0534c33c98e8f0c844b37df7c764c9dbd6bbaa3)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
a64292517b1876c4bbe5d3e62c577812f40bd922 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.189.0 to 0.190.0

Change-Id: I0ac3f2797b65ef49cca90e76a47f1e6ca3a341a3
(cherry picked from commit 888efcf06fdbfa02587ffbfaa8fe6ca8e1b6e58a)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
03b6fe1b099764c6010c173c1416ea102cdfe5a4 24-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.186.0 to 0.188.0

Change-Id: Ida08d51f4e892202b594072d1e765ba5c55444db
(cherry picked from commit 2ca0449bdeecd0257c7473f663896b00d0082def)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
a3a7a1d37bdfad56245b75edac49f8aceded321d 24-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.185.0 to 0.186.0

Change-Id: I6acb7742a1d4628930bc0807adfd222bc8349c43
(cherry picked from commit 9148de67a84540aa7d70ae72fbf587e26cbd0891)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
1356b0d3179254a7a27e88abb2d2500385469f14 24-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Implement VkSurfaceKHR and use vulkanext.h

Between header version 0.183.0 and 0.184.0, a copy of vulkan.h which
includes extensions was added to the registry, called vulkanext.h. The
vulkan.h included here is actually the registry's vulkanext.h.
(In a later upstream change, the no-extensions version was removed
from the registry, and vulkanext.h was renamed vulkan.h, matching what
we're doing here.)

The version of the extensions picked up in the header file is later
than the ones used in the previous SDK, so this change also updates
our implementation to the extension versions included in the header.
The main change is replacing the VkSurfaceDescriptionKHR structure
with a VkSurfaceKHR object.

Change-Id: I18fa5a269db0fcdbdbde3e9304167bc15e456f85
(cherry picked from commit 957a59a48a8d2e81ca3bb52aacd8d08b1b43dc74)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
a15a4bf4bafd6114ae8f28c2df2fc622cb3baace 20-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.180.0 to 0.181.0

Change-Id: I4a7e216d9966f2dcf873bcb952472463dfb59f95
(cherry picked from commit 2c3539bab4b81b6e55d690c5e113d3421cc15021)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
606a54e194a5884c628130ba2eda1b3bfbc157d7 20-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.177.0 to 0.179.0

Change-Id: I4d596efec04a712d7b38323e012282fe9f98192b
(cherry picked from commit daf915168b0aea3a47401a838448d737e955c154)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
ab9aeef063119445b59166f781c464c64e3909db 04-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: allow drivers to see image acquire/release

Change-Id: I8143aeebd1f65142486cc55662c685d081ba41eb
(cherry picked from commit 58b4df743ecad9f1a0fc7cb7c0f5340dd8365308)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
70f9335d77282e34fa1cdb8d1baed89892ccd2e1 04-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Allow drivers to add private gralloc usage flags

Change-Id: Iea33990b3a85a761e27d54bb323d866267c88901
(cherry picked from commit c040fbedde52d632a7ceeef3a9266d35b22ce53f)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
f64ca1209c4b67baf36d6f489d3c73067113d419 04-Nov-2015 Jesse Hall <jessehall@google.com> libvulkan: enable scaling for all Vulkan swapchains

Change-Id: I0abe28a06dd24c317ed87270996d308411cb6fa1
(cherry picked from commit 6780552a6f17ee809ecf9b3538bbf9b666d5a160)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
5ae3abb3ca6728de04935b0c81bcdbdfc37b0d47 08-Oct-2015 Jesse Hall <jessehall@google.com> vulkan: Update from header 0.138.2 to 0.170.2

Change-Id: I011e1f27d025730d448ee5cfefc6701300b455c2
(cherry picked from commit 6761b6067555557599e8c30096614642a5223646)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
d7b994a0cfb9054aafc1dadc85085a7d0ef8789a 07-Sep-2015 Jesse Hall <jessehall@google.com> vulkan: Implement vk_ext_khr_*swapchain extensions

Change-Id: I46312c9ba1332e0a5b8ac4c1b5608f0465c3962c
(cherry picked from commit e5ca41cb11212bbfbd608eddb92d794e12e1528e)
/frameworks/native/vulkan/libvulkan/swapchain.cpp
b1352bce9cd82ceaef287b8b3cd7a5c39703a14c 05-Sep-2015 Jesse Hall <jessehall@google.com> vulkan: Add skeleton swapchain support

Loader and driver entry points exist and the call chains are hooked up
properly, but functions are just empty stubs for now.

Change-Id: I6ff95e47d1d09ebed41eda8accb71686c8249546
(cherry picked from commit 038c8a740bbda4650bec776023a26a7fcbf93864)
/frameworks/native/vulkan/libvulkan/swapchain.cpp