• Home
  • History
  • Annotate
  • only in /frameworks/native/vulkan/
History log of /frameworks/native/vulkan/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c2f184d9d8e1a29a8468fc73d991056468562aa2 17-Jun-2016 Jesse Hall <jessehall@google.com> vulkan: Updated IHV documentation

Also deleted DevelopersGuide.pdf, which was very out of date and has
been superceded by public documentation on developer.android.com.

Change-Id: I7e47177191a773eea6db3ee2af0a287877cb8532
oc/DevelopersGuide.pdf
oc/implementors_guide/implementors_guide.adoc
oc/implementors_guide/implementors_guide.html
42a9eecb23c0b72bbee1eb2ef6b0d6586159d1c3 03-Jun-2016 Jesse Hall <jessehall@google.com> libvulkan: reduce log level for swapchain usage errors

Bug: 26927424
Change-Id: Id9346356436663db83a2d6fa8fefc4ea24d7854b
ibvulkan/swapchain.cpp
b2dcc3a1220ea5ef6acb5a63659da3c34b1a295a 03-Jun-2016 Jesse Hall <jessehall@google.com> Merge "libvulkan: Slightly better handling of swapchain re-creation" into nyc-dev
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
ibvulkan/driver.cpp
ibvulkan/driver.h
ibvulkan/swapchain.cpp
dbd33bcca26a38d24a1ae25d894175ea9ad1033a 02-Jun-2016 Chia-I Wu <olv@google.com> vulkan: remove EnumerateDeviceLayerProperties internally

We never use it. Since it is also deprecated, we will never need it.

Bug: 27910383
Change-Id: If4e556bb69890153be2987b165482e43ab06a890
ibvulkan/api_gen.cpp
ibvulkan/api_gen.h
ibvulkan/code-generator.tmpl
ibvulkan/driver_gen.cpp
ibvulkan/driver_gen.h
61b25fdffc360ab70e1f33be0bb43c911150277b 27-May-2016 Chia-I Wu <olv@google.com> vulkan: fix crash when only non-global layers are enabled

We fail to set up get_instance_proc_addr_ and get_device_proc_addr_ when
there are layers but only non-global ones.

Bug: 28990561
Change-Id: I82704f946deb5a76640f9dfb792e6fd118c78aa7
ibvulkan/api.cpp
319382517afe913285df5bbf76a8a484e6adfbd0 23-May-2016 Chia-I Wu <olv@google.com> vulkan: advertise VK_EXT_debug_report

We use VK_EXT_debug_report to report most messages and we should always
advertise the extension. This is complicated however because the HAL may
also advertise the extension.

Do the minimal and cache whether the HAL supports VK_EXT_debug_report in
class Hal. More refactorings will be required if we want to be more
flexible.

Bug: 28753291
Change-Id: I0298b2c3024e2ed059411128dbbe264c0b289a4b
ibvulkan/driver.cpp
31b2e4f01d31aae107340cbc4221b8d49fb42767 23-May-2016 Chia-I Wu <olv@google.com> vulkan: add a wrapper for hwvulkan_device_t

Add class Hal as a wrapper for hwvulkan_device_t.

Bug: 28753291
Change-Id: I9612ee5515c7f2266cfc1ef0c8583fa98c82dd86
ibvulkan/driver.cpp
e6759c3d886491f01dd2295f71d22609b3b9b259 24-May-2016 Chia-I Wu <olv@google.com> Merge "vulkan: do not use exported functions internally" into nyc-dev
3e654dc68a954b150c141c4a2e96418883bd7c9b 20-May-2016 Chia-I Wu <olv@google.com> vulkan: do not use exported functions internally

Our vkGet*ProcAddr uses the exported functions. They will break when any
of the exported functions are overridden (e.g., through LD_PRELOAD).

Unexport and move all exported functions to vulkan::api namespace.
Re-export them by having vkFoo as a wrapper to vulkan::api::Foo.

Another option is to re-export vulkan::api::Foo by having vkFoo as an
alias using __attribute__((alias)). That results in smaller binaries.
But we will not be able to catch mismatches between vulkan.h and
vulkan.api.

To avoid future breakage, define VK_NO_PROTOTYPES for all files except
api_gen.cpp.

Bug: 28886971
Change-Id: I08fde7ebb247f8c7e040ccf812b40b02094d3c7f
ibvulkan/Android.mk
ibvulkan/api_gen.cpp
ibvulkan/code-generator.tmpl
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
pi/vulkan.api
nclude/vulkan/vk_platform.h
nclude/vulkan/vulkan.h
ibvulkan/debug_report.cpp
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ools/vkinfo.cpp
8c6c10e20d40066468bf4350b64703e11d5bff10 19-May-2016 Jesse Hall <jessehall@google.com> libvulkan: Don't try to load compressed/unaligned libraries from APK

Bug: 28825642
Change-Id: I46ea3a54010cccf9e23696a4aff52a42a31d92b1
ibvulkan/layers_extensions.cpp
ed93ea39891341b4396ad9eb59cd98aa74e5d6c3 18-May-2016 Chia-I Wu <olv@google.com> vulkan: fix double dlopen for layer libraries

Bug: 28826014
Change-Id: I10693426f987e63bb490ac8d1f4445ce2d195d8d
ibvulkan/layers_extensions.cpp
ede02ac245b5f2aa1139d6cb0e2dc7c0f8f290d2 13-May-2016 Chia-I Wu <olv@google.com> vulkan: check flags for early debug report callbacks

We have a different path to invoke early (that is, vkCreateInstance) debug
report callbacks. Check for "flags" in this path as well.

Bug: 28753666
Change-Id: I49b5f2920b38ffdf69036f352166ae3b0aca62c5
ibvulkan/debug_report.cpp
40c07a1d002561fc8db987ec30d890b041fb6336 12-May-2016 Jesse Hall <jessehall@google.com> libvulkan: Load layer libraries into the app namespace

Bug: 28213888
Change-Id: I79901693c30f0e69730643b424e504a8d3628624
nclude/vulkan/vulkan_loader_data.h
ibvulkan/layers_extensions.cpp
ibvulkan/vulkan_loader_data.cpp
1a7eb59c2a7907ea4c4925c6d13d66e53fb60339 01-May-2016 Jesse Hall <jessehall@google.com> libvulkan: Discover layer libraries in entire search path

Previously we only searched the unpacked native library path for layer
libraries. Now we search all directories in the dynamic linker's
search path, including unpacked libraries in the APK itself.

Bug: 28213888
Change-Id: I37772fd90f705592ae1725c7c8603b0174e6b133
ibvulkan/Android.mk
ibvulkan/layers_extensions.cpp
e201c3f782f0d3e2ec508fb8093e506145614c06 03-May-2016 Chia-I Wu <olv@google.com> vulkan: improve vulkan::driver logcat messages

Make it clear the errors are generated from internal vkGet*ProcAddr calls.
Log a message whenever stubhal is used.

Bug: 28120066
Change-Id: Iabf88757c3cb20b7ddcbe3c1d201f3d23dd3ed0b
ibvulkan/driver.cpp
a4a0555a168efd2e93f6d8b63de7cdc7aeb61a11 05-May-2016 Chia-I Wu <olv@google.com> vulkan: use Logger in vulkan::api

Use debug report logger for actionable application errors (but not other
errors).

Bug: 28120066
Change-Id: Ia9a3b568e415555bf42c8a76d1df6279835a710c
ibvulkan/api.cpp
5beb2ac5e0b676e55be9f0b768ba3fd3697f3216 04-May-2016 Chia-I Wu <olv@google.com> vulkan: use Logger in the generated code

Except for INIT_PROC, where ALOGE is still used for layer/HAL bugs.

Bug: 28120066
Change-Id: Icd9ce99b6bfb77816b11c05f6c8b197a6782b7cd
ibvulkan/api_gen.cpp
ibvulkan/code-generator.tmpl
ibvulkan/driver_gen.cpp
bc011fc4d78442d1f0167b04aea3484c62e0a92b 02-May-2016 Chia-I Wu <olv@google.com> vulkan: add DebugReportLogger

Add DebugReportLogger that can be used during vkCreateInstance and other
commands. Add vulkan::driver::Logger to create a temporary
DebugReportLogger from a dispatchable object. With them, we can log to
debug report by, for example,

Logger(instance).Warn(obj, "failed with %s", err);

Bug: 28120066
Change-Id: If059d38d3cfcfe591031ca135695d08cad42e0a4
ibvulkan/debug_report.cpp
ibvulkan/debug_report.h
ibvulkan/driver.h
950d6e1102077d6a3905eb77268800002e792fb0 03-May-2016 Chia-I Wu <olv@google.com> vulkan: make debug report callbacks available in DeviceData

This allows device commands to send messages to debug report.

Bug: 28120066
Change-Id: I43d217fc23799b06fd3fda73e1876d8773c723fc
ibvulkan/driver.cpp
ibvulkan/driver.h
2e6736699471dbe7ec185667240089dcbccdd9bd 02-May-2016 Chia-I Wu <olv@google.com> vulkan: avoid duplicated app messages

When vkDebugReportMessageEXT is called, every component (layer,
vulkan::driver, or hal) supporting the extension knows how to handle it.
But only one of them should handle it.

Bug: 28120066
Change-Id: I4e746b80e0920c2c63f0aceceba1601536c6236d
ibvulkan/debug_report.cpp
b3055f34650cd066a349e1e8cba294b05513ef2e 02-May-2016 Chia-I Wu <olv@google.com> vulkan: constify DebugReportCallbackList::Message

Sending a message should not modify the state of DebugReportCallbackList,
conceptually.

Bug: 28120066
Change-Id: I7b30b4a41492b4e670408f34a6bffe8b56295afd
ibvulkan/debug_report.cpp
ibvulkan/debug_report.h
a0d40aaf12435fe82bc9c1612dbe97ea2a60da31 04-May-2016 Chia-I Wu <olv@google.com> vulkan: refactor DebugReportCallbackList

Simplify DebugReportCallbackList to be a thread-safe list with three
methods:

- AddCallback adds a node to the list
- RemoveCallback removes a node from the list
- Message invokes each of the nodes on the list

Add some static methods for Node* and VkDebugReportCallbackEXT
conversions.

Bug: 28120066
Change-Id: I109c6eff368cacb37508e2549dbd0b5dfa23bcb3
ibvulkan/debug_report.cpp
ibvulkan/debug_report.h
c3a28913b6a95d2faee0db537c48557e04267511 14-Apr-2016 Chia-I Wu <olv@google.com> vulkan: deprecate device layers

Allow instance layers to intercept all commands and enumerate device
extensions. Ignore application device layers. Enumerate all enabled
instance layers in vkEnumerateDeviceLayerProperties.

Bug: 27911856
Change-Id: I6e89439ab10835dd1a43732c2333a92201e52550
ibvulkan/api.cpp
ibvulkan/driver.h
6184b20d8e2301ecc21f815e1f9c2676c43878d1 27-Apr-2016 Chia-I Wu <olv@google.com> vulkan: detect errors in VkEnumerate*ExtensionProperties

Return VK_ERROR_LAYER_NOT_PRESENT when the layer is not available.

Change-Id: I9d9aafe6e40c2ca49e58bc7c70114d0f11de2f81
ibvulkan/api.cpp
dab25658fb17ec76569b8e91dfed801855027f08 28-Apr-2016 Chia-I Wu <olv@google.com> vulkan: do not distinguish instance or device LayerRef

Merge Get*LayerRef into GetLayerRef and remove LayerRef::is_instance_.
With the removal, LayerRef::SupportsExtension becomes ambiguous. Replace
it with FindLayer*Extension. Remove unused LayerRef::GetName and
LayerRef::GetSpecName while at it.

There should be no user-visible change.

Bug: 27911856
Change-Id: I38340654b52338e9ed46d1c4462a6b254b0cab64
ibvulkan/api.cpp
ibvulkan/layers_extensions.cpp
ibvulkan/layers_extensions.h
d6e6f51426c566cd67ed765e5c4b206a063aaa30 28-Apr-2016 Chia-I Wu <olv@google.com> vulkan: make Get*LayerRef take a Layer

The only user-visible change should be improved error messages.

Bug: 27911856
Change-Id: Ie50a9d37f07b590026176642f2c67270225f9280
ibvulkan/api.cpp
ibvulkan/layers_extensions.cpp
ibvulkan/layers_extensions.h
04c6551eb812a7efe38fa74e6ac67c17aab3df2d 27-Apr-2016 Chia-I Wu <olv@google.com> vulkan: refactor layer extension enumeration

Replace Get*LayerExtensions by a set of new functions that do not
distinguish instance and device layers.

There should be no user-visible change.

Bug: 27911856
Change-Id: Icd98abf51a936769f8f2f218794043b5e2611c5c
ibvulkan/api.cpp
ibvulkan/layers_extensions.cpp
ibvulkan/layers_extensions.h
25700b452535ce7ae838bfe832392b46ed555ed2 28-Apr-2016 Chia-I Wu <olv@google.com> vulkan: refactor layer enumeration

Replace Enumerate*Layers by a set of new functions that do not distinguish
instance and device layers. The new functions are also careful not to
pollute the rest of the loader with std containers.

There should be no user-visible change.

Bug: 27911856
Change-Id: I4790fadc1aa2ea934a4628bce55dd45892f15e0b
ibvulkan/api.cpp
ibvulkan/layers_extensions.cpp
ibvulkan/layers_extensions.h
6cfb89c0bfe11c2ee513fe4df339ad753d4ad4ff 27-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I97efd6c9,I6460f8f0,Ic67e4290,I16214514,Ieaa4e463, ... into nyc-dev

* changes:
vulkan: remove g_device_layers
vulkan: ignore device-only layers
vulkan: ignore layer libraries without instance layers
vulkan: add FindLayer helper
vulkan: constify LayerRef members
vulkan: make g_library_mutex per-LayerLibrary
vulkan: make LayerLibrary a class
vulkan: refactor GetLayerGetProcAddr
vulkan: refactor AddLayerLibrary
vulkan: refactor LayerRef::~LayerRef
vulkan: refactor GetLayerRef
vulkan: add a constructor for LayerLibrary
bea09db9c2165f06771f3a3da423f4f85ac6347e 22-Apr-2016 Chia-I Wu <olv@google.com> vulkan: remove g_device_layers

All device layers are now instance layers. We do not need to maintain two
vectors.

Change-Id: I97efd6c92395f00ac41aae6862e5607dfa678156
ibvulkan/layers_extensions.cpp
ibvulkan/layers_extensions.h
279ccc0048d5bc7105af02538e33946814c68dc7 18-Apr-2016 Chia-I Wu <olv@google.com> vulkan: ignore device-only layers

Ignore device layers that have no matching instance layers.

Change-Id: I6460f8f0c3c1288c23843e0875fa6a90f7f6cb8d
ibvulkan/layers_extensions.cpp
5f093bf18120a5cbf18d0f3e255b2178f524e438 18-Apr-2016 Chia-I Wu <olv@google.com> vulkan: ignore layer libraries without instance layers

Make vkEnumerateInstanceLayerProperties and
vkEnumerateInstanceExtensionProperties mandatory for layer libraries. If
vkEnumerateInstanceLayerProperties enumerates no instance layer, ignore
the layer library.

Change-Id: Ic67e4290f0cd5f9098bd02d9d01cc0194398424a
ibvulkan/layers_extensions.cpp
50db9035b034385a27fb557e4da3c48b51a0e3eb 22-Apr-2016 Chia-I Wu <olv@google.com> vulkan: add FindLayer helper

It finds a Layer using the layer name.

Change-Id: I16214514fcdef09f9016dc2c71fcd5c1f3d0fa6b
ibvulkan/layers_extensions.cpp
83506d84d00bbb35ecebb44261b2139bc40ef3e2 19-Apr-2016 Chia-I Wu <olv@google.com> vulkan: constify LayerRef members

Consitfy GetSpecVersion and layer_.

Change-Id: Ieaa4e463ca4666fc9f81b9904fe0783c55e98d03
ibvulkan/layers_extensions.cpp
ibvulkan/layers_extensions.h
a6229749aeef225803c6a5411be9e8a40637454d 26-Apr-2016 Chia-I Wu <olv@google.com> vulkan: make g_library_mutex per-LayerLibrary

All that need to be protected are LayerLibrary::Open and
LayerLibrary::Close.

Change-Id: I81b2e7cc36d8c260ddcba69074c71a5244f5b443
ibvulkan/layers_extensions.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
ibvulkan/stubhal.cpp
ibvulkan/swapchain.cpp
6693f5cd2238fe08b382bf762e33b701312c7038 17-Apr-2016 Chia-I Wu <olv@google.com> vulkan: make LayerLibrary a class

Make all data members private and suffix them with an underscore.
Constify path_ while at it. There is no functional change.

Change-Id: I98db9bfb1cfa9a15a501a5d3c6037fe08cff5717
ibvulkan/layers_extensions.cpp
ba113275287a2293136d8737bf364651ea0b576d 18-Apr-2016 Chia-I Wu <olv@google.com> vulkan: refactor GetLayerGetProcAddr

Add and call LayerLibrary::GetGPA from GetLayerGetProcAddr. There is no
functional change.

Change-Id: Ie0ec8c16633239bd8d8e634fac7525401d73343a
ibvulkan/layers_extensions.cpp
50174ee4ff2f6537c4aa4e8aa475f0dc8d910870 18-Apr-2016 Chia-I Wu <olv@google.com> vulkan: refactor AddLayerLibrary

Add and call LayerLibrary::EnumerateLayers from AddLayerLibrary. There is
no functional change.

Change-Id: I6bb2a6fd6f78299c179c0c7af7c60b388e109734
ibvulkan/layers_extensions.cpp
d91c74f917b603d8d1dec7d27da03e580919e0a6 17-Apr-2016 Chia-I Wu <olv@google.com> vulkan: refactor LayerRef::~LayerRef

Add and call LayerLibrary::Close from LayerRef::~LayerRef. There is no
functional change.

Change-Id: I514a1631204f104293a2b75f0a6d34d8625e68b1
ibvulkan/layers_extensions.cpp
fd0389fb67298e530142566e7a5f6fb16741caba 17-Apr-2016 Chia-I Wu <olv@google.com> vulkan: refactor GetLayerRef

Add and call LayerLibrary::Open from GetLayerRef. There is no functional
change.

Change-Id: I00cff2bbc7984bb3d861eb88aea423c36b0d806f
ibvulkan/layers_extensions.cpp
743495943b1a0b6d81ac70df524f67041f116ba6 17-Apr-2016 Chia-I Wu <olv@google.com> vulkan: add a constructor for LayerLibrary

There is no functional change.

Change-Id: I77b6c7c6a697cb25cee42cda3b5683885186545a
ibvulkan/layers_extensions.cpp
109f8985ceaf746fd04b6fe81be238b3865062b7 22-Apr-2016 Chia-I Wu <olv@google.com> vulkan: silence a warning when layers are enabled

Layers always do

vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkCreateDevice")

and we should not log an error.

Change-Id: Ifeba21da73d982775edc4e6a91ce0f0f5eab191d
ibvulkan/driver.cpp
dcad39536dda5fc88aa3ae588f535fb3edee8c62 22-Apr-2016 Chia-I Wu <olv@google.com> vulkan: fix "vkinfo -validate"

Some layers were renamed/merged.

Bug: 28317797
Change-Id: Ie7982790502ad1bed3234b26129cff9e06667365
ools/vkinfo.cpp
8955f3f76dbe7d9dace2db48627672ff0d83c1f4 22-Apr-2016 Chia-I Wu <olv@google.com> vulkan: fix vkinfo with layer extensions

vkinfo enable layers only when options.validate is true. We should use
layer extensions, such as VK_EXT_debug_report, only when layers are
enabled.

Bug: 28317797
Change-Id: I02bb34b728f3f3072111444194ee97065e38e401
ools/vkinfo.cpp
d3b1450e6606cacff0d2c6e0ff6e45f1420ad5ee 21-Apr-2016 Jesse Hall <jessehall@google.com> vknulldrv: Use a default allocator when none provided

The loader used to always provide an allocator, even if the app
didn't. It no longer does that, so the null driver must be prepared to
provide its own default allocator.

Fixes bug 28303142

Change-Id: I6ab946913dc4edaf2a0b07ab9ae8c43be69b3ed6
ulldrv/null_driver.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
ibvulkan/Android.mk
ibvulkan/swapchain.cpp
36cc00a1739f7d926cc20671ae9900a5460dd6ae 13-Apr-2016 Chia-I Wu <olv@google.com> vulkan: fix vkGet*ProcAddr for un-enabled extensions

vulkan::api::InitDispatchTable no longer queries for non-enabled WSI
functions. We could now return NULL instead of ProcHook::disabled_proc.
This also matches what the spec says.

Bug: 28173232
Change-Id: I05c45303025d25e49f75c18a912fc4cc2b13979f
ibvulkan/code-generator.tmpl
ibvulkan/driver.cpp
ibvulkan/driver_gen.cpp
ibvulkan/driver_gen.h
8925efd0a87d96885834a00f3bdef220edf6d8ea 13-Apr-2016 Chia-I Wu <olv@google.com> vulkan: do not query non-enabled WSI functions

Initialize dispatch table entries for non-enabled WSI functions to stubs.
We do not want to initialize them to NULL because they may still be
invoked through the exported WSI entrypoints.

Bug: 25850852
Change-Id: I25b715700990ad7432740f031764d70396024d32
ibvulkan/api.cpp
ibvulkan/api_gen.cpp
ibvulkan/api_gen.h
ibvulkan/code-generator.tmpl
cbe07ef239121dc99a31a19b9593d76d76abb08b 13-Apr-2016 Chia-I Wu <olv@google.com> vulkan: pass hal_extensions to InitDriverTable

We only need hal_extensions to initialize the driver tables. There is no
need to save it in driver::{Instance,Device}Data.

Change-Id: I56ebc0ee9c5bc5e543e7a84412b03b842bd8ced5
ibvulkan/code-generator.tmpl
ibvulkan/driver.cpp
ibvulkan/driver.h
ibvulkan/driver_gen.cpp
ibvulkan/driver_gen.h
94a2c0ecd4537c52e6b4a3ef9d119dce44627ca8 13-Apr-2016 Chia-I Wu <olv@google.com> vulkan: pass VK_LAYER_FUNCTION_DATA_CALLBACK to layers

VK_LAYER_FUNCTION_DATA_CALLBACK effectively allows us to pass
driver::SetDataInternal to layers. It will be called on handles of
potentially unknown types. Add two internal types

VK_DEFINE_HANDLE(InstanceDispatchable)
VK_DEFINE_HANDLE(DeviceDispatchable)

in driver namespace for type safety.

Bug: 28015368
Change-Id: I7389829a7d8c374197cd7046973777b49e436961
ibvulkan/api.cpp
ibvulkan/driver.h
7fcd744c42c91eab5210df2080b0a7a6b5838f68 13-Apr-2016 Chia-I Wu <olv@google.com> vulkan: update vk_layer_interface.h

Update to match vk_layer.h in Vulkan-LoaderAndValidationLayers.
Specifically,

- VK_LAYER_FUNCTION_DEVICE is removed
- VK_LAYER_FUNCTION_INSTANCE is removed
- VK_LAYER_FUNCTION_DATA_CALLBACK is added

We do not use VK_LAYER_FUNCTION_DEVICE and VK_LAYER_FUNCTION_INSTANCE
anymore. They were internal to the desktop loader as well. Hopefully no
layer ever uses them.

Bug: 28015368
Change-Id: I4f3f91e8224eb943caca4792d74b63aef0b23ad2
nclude/vulkan/vk_layer_interface.h
c56603e0b35e31c5f1cd134d6b916a16ff710504 12-Apr-2016 Chia-I Wu <olv@google.com> vulkan: fix vkGetDeviceProcAddr for intercepted commands

This allows vulkan::api::DestroyDevice to properly unreference layers.

Bug: 28077754
Change-Id: I194925d29dee3489b63f4a44669c791d378afa39
ibvulkan/api_gen.cpp
ibvulkan/code-generator.tmpl
1600e269dbf9f2cd818886c55b3e0933dfec7a86 12-Apr-2016 Chia-I Wu <olv@google.com> vulkan: fix support for unknown extensions

Never set the bit ProcHook::EXTENSION_UNKNOWN, otherwise std::out_of_range
will be thrown.

Change-Id: I0a1343079647162bf17494acaaa69f1fa26b72f8
ibvulkan/driver.cpp
b7c4e3b7c97c952ba26f061d74d2038e6c94e689 11-Apr-2016 Jesse Hall <jessehall@google.com> libvulkan: Use a stub HAL when no real Vulkan HAL is present

This stub HAL enumerates zero VkPhysicalDevices. This allows a
VkInstane to be created and queried for physical devices successfully
even on devices without a Vulkan driver. Handling this with a stub HAL
avoids the need for NULL HAL and NULL driver function pointer checks
in many places throughout the loader, which would be more error-prone.

Fixes bug: 28100673
Change-Id: I76bea975929a85eda354730d6c815567b412b160
ibvulkan/Android.mk
ibvulkan/driver.cpp
ibvulkan/stubhal.cpp
ibvulkan/stubhal.h
3e6c2d6889d9c1bc7eb4dbd9774d861c18a21a80 11-Apr-2016 Chia-I Wu <olv@google.com> vulkan: use CamelCase() for CreateInfoWrapper

Change-Id: I33360e15dd0bfb038235d7600587d39d50cea0a8
ibvulkan/driver.cpp
eef27fa3a0c7d153603b7fd69849fee73a07af5b 11-Apr-2016 Chia-I Wu <olv@google.com> vulkan: use CamelCase() for LayerChain

Change-Id: I2f102fa97e3c976fa411b4e6bdc83dacfa243af7
ibvulkan/api.cpp
c3fa20cee7156f9393ff319e0f884705483d3bf8 11-Apr-2016 Chia-I Wu <olv@google.com> vulkan: use CamelCase() for OverrideExtensionNames

Change-Id: If44c40f87b1e3e2eb69d12543a7f3b3036291c88
ibvulkan/api.cpp
026b8facd53e2db16bb73f6dccb064f00d8e9b00 11-Apr-2016 Chia-I Wu <olv@google.com> vulkan: use CamelCase() for OverrideLayerNames

Change-Id: Ic7bc29efc1ae5b734ebfc692c441b9537134ccb2
ibvulkan/api.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
3b6b5adbddf7415bff3c3d0bc11efd5df9cc132f 26-Mar-2016 Chia-I Wu <olv@google.com> vulkan: remove unused loader.{cpp.h}

Change-Id: I21f07545cf286f7e5796d9a6c9642cfdd3001f17
ibvulkan/Android.mk
ibvulkan/loader.cpp
ibvulkan/loader.h
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
ibvulkan/code-generator.tmpl
ibvulkan/debug_report.cpp
ibvulkan/driver.cpp
ibvulkan/driver.h
ibvulkan/driver_gen.cpp
ibvulkan/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
ibvulkan/code-generator.tmpl
ibvulkan/debug_report.cpp
ibvulkan/debug_report.h
ibvulkan/driver_gen.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ibvulkan/swapchain.h
de82e27e2010b48e72103e98ba3fe6eba5152b54 26-Mar-2016 Chia-I Wu <olv@google.com> vulkan: add swapchain.h

Move everything belongs to swapchain.cpp out of loader.h to swapchain.h.

Change-Id: I4a6268d703b60e5661b09917eed129d2d227a63c
ibvulkan/loader.h
ibvulkan/swapchain.h
c96880f2cd1d34ffb9e3d10d80f0a3ddcc5579a8 25-Mar-2016 Chia-I Wu <olv@google.com> vulkan: add layers_extensions.h

Move everything for layers_extensions.cpp out of loader.h to
layers_extensions.h, and into vulkan::api namespace.

Remove now unused InstanceExtensionFromName and DeviceExtensionFromName.

Change-Id: I06be98986f40de35e9dffb5499bc1423e9eb3d48
ibvulkan/api.cpp
ibvulkan/layers_extensions.cpp
ibvulkan/layers_extensions.h
ibvulkan/loader.h
ff4a6c772aaf3ff0b71348647330031a059b1f51 24-Mar-2016 Chia-I Wu <olv@google.com> vulkan: rework CreateInstance_Bottom and related ones

The reworked driver::CreateInstance will

- call HAL's EnumerateInstanceExtensionProperties and filter out
extensions unknown to HAL, if there is any extension enabled.

We do not expect or enumerate any HAL layer yet as that requires some
works to layers_extensions.cpp.

The reworked driver::EnumerateInstanceExtensionProperties instead will
return all extensions enumerated by HAL, after prepending VK_KHR_surface
and VK_KHR_android_surface to them. This allows extensions unknown to the
loader to be enumerated.

Change-Id: I73b496582a773e06c7b79f0c5c166700737f2953
ibvulkan/code-generator.tmpl
ibvulkan/driver.cpp
ibvulkan/driver.h
ibvulkan/driver_gen.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
01cf305325f3789c573d7eff435e409f04677c66 24-Mar-2016 Chia-I Wu <olv@google.com> vulkan: rework EnumerateDeviceExtensionProperties_Bottom

The reworked driver::EnumerateDeviceExtensionProperties will simply return
all extensions enumerated by HAL, with VK_ANDROID_native_buffer replaced
by VK_KHR_swapchain. This allows extensions unknown to the loader to be
enumerated.

Change-Id: Iceed8ee3f16a968d005ae3ba42f1bd1839c2ab9f
ibvulkan/code-generator.tmpl
ibvulkan/driver.cpp
ibvulkan/driver.h
ibvulkan/driver_gen.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
4901db70b12801cf1966937a58eb7566bfdeb4ce 24-Mar-2016 Chia-I Wu <olv@google.com> vulkan: rework {Create,Destroy}Device_Bottom

The reworked driver::CreateDevice will

- use the providied pAllocator,
- call HAL's EnumerateDeviceExtensionProperties and filter out extensions
unknown to HAL, if there is any extension enabled.

We do not expect or enumerate any HAL layer yet as that requires some
works to layers_extensions.cpp.

Change-Id: I3ba4019d18dfed994d7037d95825bf54096f2a5d
ibvulkan/code-generator.tmpl
ibvulkan/driver.cpp
ibvulkan/driver.h
ibvulkan/driver_gen.cpp
ibvulkan/driver_gen.h
ibvulkan/loader.cpp
ibvulkan/loader.h
a70a4214d85dec0d27e918c977dabd488a5c20e5 11-Apr-2016 Chia-I Wu <olv@google.com> Merge "vulkan: check for unsupported extensions" into nyc-dev
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
ibvulkan/swapchain.cpp
6a58a8a7813450038cb15575e3333b83f268c972 24-Mar-2016 Chia-I Wu <olv@google.com> vulkan: move AllocateCommandBuffers_Bottom

Move it from loader.cpp to driver.cpp and rename it to
driver::AllocateCommandBuffers. No functional change.

Change-Id: I0abdca7dea128df0b313b90cfb5d5825566fc790
ibvulkan/code-generator.tmpl
ibvulkan/driver.cpp
ibvulkan/driver.h
ibvulkan/driver_gen.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ba0be41afe39dcbed0a712a32d1ab6c341797007 24-Mar-2016 Chia-I Wu <olv@google.com> vulkan: move GetDeviceQueue_Bottom

Move it from loader.cpp to driver.cpp and rename it to
driver::GetDeviceQueue. No functional change.

Change-Id: Ide8ebe044e62b8ef6fc64ac03dcc1d920f5bf9a6
ibvulkan/code-generator.tmpl
ibvulkan/driver.cpp
ibvulkan/driver.h
ibvulkan/driver_gen.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
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
ibvulkan/Android.mk
ibvulkan/code-generator.tmpl
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
ibvulkan/dispatch_gen.h
ibvulkan/driver.cpp
ibvulkan/driver.h
ibvulkan/driver_gen.cpp
ibvulkan/driver_gen.h
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
eb7db124e46da9a9210cf868353f5ea79502ffec 24-Mar-2016 Chia-I Wu <olv@google.com> vulkan: rework driver::Get*ProcAddr

Introduce driver::ProcHook which is a struct to describe an intercepted
function. Given a function name, GetProcHook returns a ProcHook if the
function is intercepted. NULL otherwise.

A ProcHook has three function pointers. ProcHook::proc points to the real
intercepting function. ProcHook::disabled_proc points to a no-op function
that logs an error. ProcHook::checked_proc points to a trampoline that
calls either ProcHook::proc or ProcHook::disabled_proc.

For core functions, driver::Get*ProcAddr simply return ProcHook::proc.
For extension functions, driver::Get*ProcAddr return ProcHook::proc when
the extension is known to be enabled. They return ProcHook::disabled_proc
when the extension is known to be disabled. Finally, they return
ProcHook::checked_proc when they do not know if the extension is enabled
or not.

All ProcHooks as well as their disabled_proc/checked_proc are generated in
driver_gen.cpp. This allows us to get rid of all hand-written "_Disabled"
functions, all no-op "_Bottom" functions, and special cases for
VK_ANDROID_native_buffer. The reworked driver::Get*ProcAddr also detects
more applications' errors and logs them.

Change-Id: I8e6f476f450688b5547fd75243c66cb603c516b5
ibvulkan/Android.mk
ibvulkan/code-generator.tmpl
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
ibvulkan/driver.cpp
ibvulkan/driver.h
ibvulkan/driver_gen.cpp
ibvulkan/driver_gen.h
ibvulkan/loader.cpp
ibvulkan/loader.h
b262ddcfaba592ca153beddb120aeb68b64e6e63 22-Mar-2016 Chia-I Wu <olv@google.com> vulkan: add VK_ANDROID_native_buffer to vulkan.api

Change-Id: I5d90918b10264b9d2cf8b73dc7a7c983b6721862
pi/platform.api
pi/vulkan.api
dbb7e9c8f950ad344eee22cc50acc67253f9f4b1 24-Mar-2016 Chia-I Wu <olv@google.com> vulkan: move driver::GetDefaultAllocator

Move it from loader.cpp to driver.cpp. No functional change.

Change-Id: I8c9bb5315c29ff69bfd971ac8e1264fb8329a811
ibvulkan/driver.cpp
ibvulkan/loader.cpp
136b8eb38e98d96009799eee59d4ea0088544b54 24-Mar-2016 Chia-I Wu <olv@google.com> vulkan: move driver::OpenHAL

Move it from loader.cpp to driver.cpp. HAL loading is now done in
driver.cpp while HAL extension queries are still done in loader.cpp.

Change-Id: I15d7ead98497adacb1bd798522f057ff6bf16909
ibvulkan/driver.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
9d51816145b008b7b4b091a8c90faf30ba0394e4 24-Mar-2016 Chia-I Wu <olv@google.com> vulkan: move driver::Debuggable

Move it from loader.cpp to driver.cpp. No functional change.

Change-Id: I455e798d6001f9719d378ae0295f2b4b181b0c09
ibvulkan/Android.mk
ibvulkan/driver.cpp
ibvulkan/loader.cpp
1f8f46bbccce0f1aabe7f12a6a26d772cd17b5b7 06-Apr-2016 Chia-I Wu <olv@google.com> vulkan: check for unsupported extensions

Return VK_ERROR_EXTENSION_NOT_PRESENT when an app attempts to enable an
unsupported extension. This fixes a regression introduced by my top
rewrite (commit 0c20324: vulkan: rewrite top of loader).

Since we do not cache HAL extensions, each vkCreateInstance or
vkCreateDevice call is preceded by two extension enumeration calls
internally.

Change-Id: I5342c1a5c9a5452dd2bc52933a5ee558db174048
ibvulkan/api.cpp
0c2032490b80178ec823bf22a7f5d08398851cc3 15-Mar-2016 Chia-I Wu <olv@google.com> vulkan: rewrite top of loader

The top is responsible for layer discovery and chaining, and the bottom is
like a regular layer that is always enabled and is inserted just before
the driver. Make the separation clear by rewriting the top and stripping
the layer managment code from loader.cpp.

Change-Id: I64e525e27bd4c297bccd94a1eb9b88e28088e85d
EADME.md
ibvulkan/Android.mk
ibvulkan/api.cpp
ibvulkan/api.h
ibvulkan/api_gen.cpp
ibvulkan/api_gen.h
ibvulkan/code-generator.tmpl
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
ibvulkan/dispatch_gen.h
ibvulkan/driver.h
ibvulkan/loader.cpp
ibvulkan/loader.h
a76e8ff83811a0f4b98278a3d518d191991d2582 22-Mar-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Install non-working WSI functions if not enabled

b/27537020
These changes make it so that WSI calls dead end if the
application hasn't explicitly enabled them.

Change-Id: I44f95244ec7fd17855daf1c46e9cb6ab4932840f
ibvulkan/loader.cpp
ibvulkan/loader.h
84cd4c29b9da12c4cd72a72946524b83d44f8a03 16-Mar-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: cache top-of-chain PhysicalDevice

Bug: 27615575
If a layer wraps the VkPhysicalDevice object the
loader would be unable to figure out what VkInstance
it was associated with since it no longer matches
the VkPhysicalDevice queried from the driver.
Now cache the VkPhysicalDevice's from the top of
the chain as well to resolve this.

Change-Id: I7d04884dc3aa8623ce2f67e4f6575f74b82e2834
ibvulkan/loader.cpp
e177d0619608d3700c9c978c362dbc804a327c46 11-Mar-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Merge "loader: Include instance where required for GIPA" into nyc-dev
4fe2d928aff6bd721cfb576ca1a39f678dba3bcd 10-Mar-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: Include instance where required for GIPA

Bug: 27579008
GetInstanceProcAddr is only speced to allow VK_NULL_HANDLE
for the instance for a few calls.

Change-Id: If350e23edc336bff3b499631ba9a68b2921c6969
ibvulkan/loader.cpp
5703683fb645a7e31ac25aaf7136013a6a9b9fbc 04-Mar-2016 Michael Lentine <mlentine@google.com> Pass system layers through chain.

Previously if any layers were activated via properties the layers did not see
those as arguments. After this the layers have a complete list of what layers
are enabled. This is then used in the layers to guarantee ordering.

Bug: 27126420

Change-Id: I3a6a923e2564abc3f7c43b110d892539e4d4bfdb
ibvulkan/layers_extensions.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
fee714302b86f0d48b417dff7b928f5b825f8e27 06-Mar-2016 Jesse Hall <jessehall@google.com> libvulkan: Fix double-free, refactor instance destruction

Fixes dEQP-VK.api.object_management.alloc_callback_fail.instance.
Since we were calling DestroyInstance_Bottom from both
CreateInstance_Bottom and CreateInstance_Top failure paths, we were
calling the driver's DestroyInstance twice.

To avoid such bugs, this change clears the driver instance handle to
VK_NULL_HANDLE after calling the driver DestroyInstance.

But the real fix in this change is to make creation and destruction
symmetric. Now DestroyInstance_Bottom only cleans up the things that
were initialized/allocated in CreateInstance_Bottom, and is only
called from CreateInstance_Bottom failure paths and from a dispatched
vkDestroyInstance. Similarly, DestroyInstance_Top and failure paths in
CreateInstance_Top call DestroyInstance (formerly TeardownInstance) to
clean up things initialized/allocated in CreateInstance_Top. The
direct calls from *_Top functions to DestroyInstance_Bottom are gone
-- *_Top functions should only reach *_Bottom functions via dispatch,
so the call goes through enabled layers.

Bug: 27493757
Change-Id: I4e9f8508297813415499dc17803fff49ce9abdcf
(cherry picked from commit 15cd1e269fd2dacef8b95006928b122b9dabbeea)
ibvulkan/loader.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
ibvulkan/swapchain.cpp
c4eee83b6eb4b4ebc67ddda2c7119988ce654101 29-Feb-2016 Jesse Hall <jessehall@google.com> libvulkan: Enable integer sanitization

This causes the compiler to add runtime checks for undefined (e.g.
shift by larger than bitwidth) or suspicious (e.g. unsigned integer
overflow) operations. The process will abort if they occur.

In particular, we do many allocations of the form pfnAllocation(n *
sizeof(T)); if 'n' is large these will overflow and we'll allocate
less memory than expected, possibly leading to exploitable buffer
overruns.

Requested during security audit in bug 27118888.

Change-Id: Id81c94595579df034b948a40270f164e38635070
ibvulkan/Android.mk
e2948d83f352b9a093252a06757f76a88f5355d3 25-Feb-2016 Jesse Hall <jessehall@google.com> vulkan: Update to vulkan.h 1.0.3

Change-Id: Ic607533768989aa65e41b9b0e459d7af170ab180
pi/templates/vulkan_h.tmpl
pi/vulkan.api
nclude/vulkan/vk_ext_debug_report.h
nclude/vulkan/vk_layer_interface.h
nclude/vulkan/vulkan.h
ibvulkan/debug_report.h
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.h
ibvulkan/loader.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.tmpl
ulldrv/null_driver_gen.h
ools/Android.mk
ools/vkinfo.cpp
dc7f6a6a8703e5dd8d11da9462528fb20aeb2bd0 25-Feb-2016 Jesse Hall <jessehall@google.com> vkinfo: Provide VkApplicationInfo

This is supposed to be optional, but the N6P/N5X driver currently
requires it.

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

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

Bug: 26927663
Change-Id: I99129b49e2be6f6dd501813185edc67f10b976bf
ibvulkan/swapchain.cpp
f63e4450a62de4d345e191a87cb6372fbb3226fd 09-Feb-2016 Jesse Hall <jessehall@google.com> vkinfo: Only print supported features by default

Printing all features with YES/NO tags is available with -v or
-unsupported_features.

Change-Id: I1ad1a024fa306a6b2a0c57f17913be2639101071
ools/vkinfo.cpp
d0bba376a4a04f5ada451090ec65ffa8641724ac 22-Feb-2016 Chia-I Wu <olv@google.com> vulkan/vkinfo: enable layers when -validate is specified

Enable layers when -validate is given, instead of unconditionally. This
is a regression fix since vkinfo fails with

vkCreateInstance failed: VK_ERROR_LAYER_NOT_PRESENT (-6)

since commit b1e7d59.

Change-Id: I42bfc474239896416e26ebf1b18cc65c9c045610
ools/vkinfo.cpp
045ef41909a1ef490e534cb3a644b15642943bea 17-Feb-2016 Chia-I Wu <olv@google.com> vulkan: remove patches for other projects

They have been applied or superceded AFAICT.

Change-Id: Ie10d34cc81daf3d908bb32871a0fd387d8949362
atches/README
atches/build-install_libvulkan/0001-Add-libvulkan-to-base-PRODUCT_PACKAGES.patch
atches/frameworks_base-apk_library_dir/0001-Adding-plumbing-for-passing-the-lib-directory.patch
1208622fe6c70c23ab1a06ef1a49cfece08bc1da 12-Feb-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: Add extension before CreateInstance chain

A developer can cause the loader to enable VK_EXT_debug_report
extension by setting a specific property. However, that check
was happening after the instance chain was called and thus
no layers saw the extension enabled.
Also fix use of AddExtensionToCreateInfo to always allocate
and insert VK_EXT_debug_report. Otherwise cannot distinguish
between the failure case and the extension is already present
case.

Change-Id: Id64bb14cb2086e94190625b4364329d634afda70
ibvulkan/loader.cpp
c2a770925da019a82e23aacacf12be3bfe691766 09-Feb-2016 Courtney Goeltzenleuchter <courtneygo@google.com> vkinfo: Add debug command line option

Really handy for loader debug to switch between
waiting and not waiting for a debugger to attach.

Change-Id: I47fb1475d8aa62b8f4b2b7e6a156793f108a83ed
ools/vkinfo.cpp
b1e7d59f53f794c566857784c5629ae423792ecb 09-Feb-2016 Courtney Goeltzenleuchter <courtneygo@google.com> vkinfo: Add validation layers

Change-Id: Iefd17b622f0d91219b81bd1df09ffeb3397f9553
ools/vkinfo.cpp
26d394b868bc89405d4135523214bf2358adf840 07-Feb-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: Fix enumerate device extension properties

Same as device layer property issue.
Loader needs to provide aggregate data rather
than send to instance chain.

Change-Id: Ib0e963e8d1780e4870110c556051da921f94353b
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
1cc0d37b0f32305e254af01ccba5e93e0761f432 06-Feb-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: Fix enumerate device layer properties

Loader was calling down the chain when is needs to
respond with aggregate data. This patch fixes
https://buganizer.corp.google.com/u/0/issues/26982782

Change-Id: I236183d5d781a6efc3d84db4a51376b8cc29664f
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
ibvulkan/dispatch_gen.h
ibvulkan/loader.cpp
ibvulkan/loader.h
e6e6968345e12f633bed0add4fa4600e7ccb7542 29-Jan-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: Can't dlclose until all done with the layers

The loader was freeing the layers (dlclose) at the
bottom of the DestroyInstance chain. Would get a
segfault when returning from DestroyInstance_Bottom
as layers would try to run that are no longer in memory.

Change-Id: I25cc611fed9d8b3a90fd2652e53cd450daefa08c
(cherry picked from commit 3160835e44fcb0c5367d2f50b132e41c789998d5)
ibvulkan/loader.cpp
a90ce61c1a4c0eae79b117f2137e9fe7ed41aa6d 09-Feb-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: Implement new layer initialization

We now call down the instance and device chains
as part of the creation process. The loader puts
together "LinkInfo" structures that each layer
uses to reference the next layer down in the stack.
These info structures are attached to the CreateInfo
pNext structure. Also have an info structure that
the loader terminator functions (CreateInstance_Bottom
and CreateDevice_Bottom) that includes loader state
they need.
As part of this the CreateDevice function now lives
on the device chain and it has been split into
Top and Bottom functions. Top builds the LinkInfo
structures and Bottom makes the actual call to the ICD
to create the device object.

Change-Id: I5f5a6d579c34942511cce288ba8fa51f9f89f67f
(cherry picked from commit 9091095245975597a0b2031c3b4847f780c1721e)
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
eff631189b135a9579a7f8510f9b1ccadd6fb4f9 09-Feb-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: Add GetName and GetDescription for logs

Handy to have more layer detail for logging.

Change-Id: I6933a8fcb90b9cfb70fc85a358244863aac9d702
(cherry picked from commit cf275f37b4a903b5dcc95b5100db667c906aa33f)
ibvulkan/layers_extensions.cpp
ibvulkan/loader.h
1dd712aefdc771297823b24f26d768cd8bd14d49 02-Feb-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: Layer init structures

Update to match LoaderAndTools vk_layer.h
which includes the new layer initialization structures.

Change-Id: Ie6bf2a1705373bad3c77dd0b04be1263f1c4fc46
(cherry picked from commit f7491b28bfcc47ce09b32168a5fd25b58c6aceab)
nclude/vulkan/vk_layer_interface.h
6fecdd563f3bf94dadedc78512a1b28c08c67e07 03-Feb-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: Only use driver's DebugReport if it has one

Change-Id: Ic020b9d5a95c9ddd20dd4c94fd6e7de050b83f2b
(cherry picked from commit b776ba1cff149bb724a1958cc3f470ba5c113b63)
ibvulkan/debug_report.cpp
ibvulkan/loader.cpp
ca472ab8e43efe92db30660db9997117e4b00ab9 02-Feb-2016 Courtney Goeltzenleuchter <courtneygo@google.com> tools: Need to specify pQueuePriorities

Change-Id: I689c3e8da9e8cf00705f2f90d472c1268a978f1b
(cherry picked from commit 363ac5d35ca076f419c14f14bce603d5d82553fa)
ools/vkinfo.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
45ba96e44c0d7d5dac6e86f0bfbfc44b4f2618ac 10-Feb-2016 Jesse Hall <jessehall@google.com> Merge "vknulldrv: Report physical device limits" into nyc-dev
c9456b532d83edafc997d60b2c31d67bb77ac3f9 10-Feb-2016 Jesse Hall <jessehall@google.com> Merge "libvulkan: Initialize VkSurfacePropertiesKHR::supportedCompositeAlpha" into nyc-dev
517274a29e50522a11e65107bb2c0d5b123aa7d5 10-Feb-2016 Jesse Hall <jessehall@google.com> libvulkan: Support R5G6B5_UNORM_PACK16 as a swapchain format

Change-Id: I489cf12965372d5281d200102a4632e6e8d75ede
ibvulkan/Android.mk
ibvulkan/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
ibvulkan/swapchain.cpp
c34849e83c9bdf2a1d768e621ba6304f905fba93 10-Feb-2016 Jesse Hall <jessehall@google.com> vknulldrv: Report physical device limits

Limits are set to the minimum values allowed by the spec.

Change-Id: Ib3ca99ad6d1537e2ed3fa29e15368419f2331ba7
ulldrv/null_driver.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
ibvulkan/swapchain.cpp
00f10fec7d5cb96bc980a6d272dc8d33597a1b20 09-Feb-2016 Jesse Hall <jessehall@google.com> vkinfo: Fix bytes -> megabytes conversion

Also only report 256 MiB (chosen arbitrarily) as the null driver's
memory heap size. The previous value wasn't reasonable on 64-bit
systems (2^63 + 1).

Change-Id: Id57a4895752af45d046072ae8fee386ca219e82d
ulldrv/null_driver.cpp
ools/vkinfo.cpp
c5cec281654c5dee2273ce4bebd3a749c3a1119e 18-Jan-2016 Jesse Hall <jessehall@google.com> vkinfo: Print VkPhysicalDeviceFeatures

Change-Id: Ifa045de906ce2612382f470168438f80c7188b0a
ools/vkinfo.cpp
909bed2d254e5356905ffa0843cf3f48eb8976ce 09-Feb-2016 Jesse Hall <jessehall@google.com> Merge "vkinfo: improve indentation, add verbosity parameters" into nyc-dev
8e37cf3509b211e8acd4e60437bdbda1cb9278cb 18-Jan-2016 Jesse Hall <jessehall@google.com> vknulldrv: Report valid VkPhysicalDeviceFeatures

Change-Id: I616f8e40d42abb812cc150d31b3a07d41d86b43c
ulldrv/null_driver.cpp
38cb8407b96aef348531aff3d617cc0879217ecf 18-Jan-2016 Jesse Hall <jessehall@google.com> vkinfo: improve indentation, add verbosity parameters

Change-Id: I23b4a08a24d6fb1463db55dbbb342eca866fc228
ools/vkinfo.cpp
0a402094986739a2ce1942363370f8e097305933 01-Feb-2016 Jesse Hall <jessehall@google.com> vulkan: Document codegen instructions and code style

Change-Id: I7565506a866b72f4ce31ac6bdd3d97e357497ab0
(cherry picked from commit e0d27bb1f3671401c2f6d84a60111f5c695c97d3)
EADME.md
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
ibvulkan/dispatch_gen.h
ulldrv/null_driver.tmpl
ulldrv/null_driver_gen.cpp
ulldrv/null_driver_gen.h
aa6c8727ac49610eb1b94e06ecd1c319edabc792 29-Jan-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: Test for valid ICD before init dispatch

Test that the Instance object returned by the ICD
is valid before initializing the loader's instance
dispatch table. Not a huge deal since that test
should never fail in production, but flows better.

Change-Id: I7063fb797038e05ea2d0cf9b0794f668b3510cde
ibvulkan/loader.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.
ibvulkan/swapchain.cpp
33faaad096afbd0b103bd1284ce5b78cce74aa01 25-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Update from version 1.0.1 to 1.0.2

Change-Id: Ie45b097cfcca9e150b24b2b8a74ae2c55cccd42d
(cherry picked from commit 59fd75e53f3931265aca122bff33ce36fb69918d)
pi/vulkan.api
nclude/vulkan/vulkan.h
9f763498058756b2c202d917075533142f86cdf0 22-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Fix dEQP-VK.api.object_management.alloc_callback_fail.device

In vkCreateDevice, we were using the app-provided allocator if available,
otherwise the instance allocator. (The code also fell back to the
default allocator if the instance didn't have an allocator, but it
always does, so the fallback was dead code.) That's all as it should
be.

However, we don't store the app-provided allocator, and everywhere
else just uses the instance allocator. In particular, vkDestroyDevice
ignores the app-provided allocator, and just uses the instance
allocator to free the Device structure. That causes the test to fail,
since we use the app-provided device allocator to allocate, but the
instance allocator to free.

Getting this right will require some possibly large restructuring and
careful review of the code. In the short term, this change just
ignores the app-provided allocator in vkCreateDevice and uses the
instance allocator instead, so that at least we use the same allocator
for alloc and free. Bug 26732122 filed to do this properly.

Change-Id: I4ed4c12dfa255bb58a33dca1a89946255276c791
(cherry picked from commit 58579313664f5d72706f8e3df50b4e7217f7326b)
ibvulkan/loader.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)
ibvulkan/Android.mk
ibvulkan/loader.cpp
ibvulkan/swapchain.cpp
4b62e4fd280d4f7a24f906a83ff16f5cd74bf171 21-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Fix dEQP-VK.api.device_init.create_instance_unsupported_extensions

The existing check was only executed if the driver reported at least
one instance extension, because it was part of filtering the extension
list down to just the ones supported by the driver. Now do it
separately, and before we do anything else.

Also changed the null driver to not report any extensions; reporting
an extension masked the bug for me when I ran this test before.

Change-Id: I2b62229c6acbc9406c036f1f1b766a21c03922d4
(cherry picked from commit 1f7e9e0e771ac4045c5f669290dc01b01dd01342)
ibvulkan/loader.cpp
ulldrv/null_driver.cpp
54e6f086a6b373a0f496343451a76dde8aa86238 20-Jan-2016 Michael Lentine <mlentine@google.com> Fix ref count.

Modify the move constructor to zero out the other pointer so that it doesn't
get decremented when the ref goes out of scope.

Change-Id: Ieb81c64b760dc69e262a76335039c9c7f9050780
(cherry picked from commit 22440b22bbce1fe7b5411e6641156661e25a2865)
ibvulkan/layers_extensions.cpp
d0b7cb566288a4f6646e356a17188b7922ba5740 19-Jan-2016 Michael Lentine <mlentine@google.com> Activate layers when the strings match.

Change-Id: I7bf6ba2bfe215b2dad671b3996f421313d72d3a2
(cherry picked from commit 90c828766ae8d560ed254fd434ad872cd6b21eb0)
ibvulkan/layers_extensions.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)
ibvulkan/swapchain.cpp
993849ce2f3ebc7f39ed360f10b6874a0b897157 18-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Really only write vkCreateInstance out parameter on success

Change-Id: I7efc7dba420565781f15610bbfa7dfd1be1cf84d
(cherry picked from commit 92707024c23b737cad16366ee7380a00e88a797e)
ibvulkan/loader.cpp
ae3b70dea59236780aa909338de1ba5201603439 18-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Return error if an unsupported instance extension is requested

Change-Id: I93d4a2a0b991682160c0ffe401f2b2b19f6e2be3
(cherry picked from commit 8a69c0845de6884377da2221ae3272b8dac03d55)
ibvulkan/loader.cpp
ools/vkinfo.cpp
c55fa944f9882621cd1005fcae5e3076c68b0d1d 18-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Only write vkCreateInstance out parameter on succes

Change-Id: If9f2924caa1c9da4d12eb2d4730e03ea4af0d113
(cherry picked from commit 7adb6e70a83be579e7059ca9fd3b1a2f25d58390)
ibvulkan/loader.cpp
b147127b06c1ce6443839e8102d1ed2631a57b07 18-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Driver device extension enumeration and filtering

- Return VK_ERROR_EXTENSION_NOT_PRESENT if a requested device
extension is not supported by the loader, driver, or any enabled
device layer.
- Filter out device extensions not supported by the driver when
creating the driver device.
- Enumerate device extensions supported by the driver or loader.

Change-Id: I538e37bc74cc7f0eb27b1211b9324fb3b8a06e14
(cherry picked from commit 35873021f4f79ded0f584e433076c2675c6aed69)
ibvulkan/layers_extensions.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ulldrv/null_driver.cpp
ools/vkinfo.cpp
57f7f8c140c4b665f05c17866ebf201e9f4f46a4 18-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Enumerate device layer extensions

Change-Id: I453d815ffd910fd56103f1c624cca63ac2014df8
(cherry picked from commit 82a2b6626286610f417df3d48b8e9a56e3726f38)
ibvulkan/loader.cpp
ulldrv/null_driver.cpp
aa410941d29cba4a3a56e90cb3f0be3f03c76cea 17-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Enumerate device layers

Change-Id: I7623eab3d8bb958470437998ba603ac1171d764c
(cherry picked from commit eab7505b0741dc5c062df889a7ca5db1a9e619e8)
ibvulkan/layers_extensions.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ools/vkinfo.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)
pi/vulkan.api
nclude/vulkan/vk_debug_report_lunarg.h
nclude/vulkan/vk_ext_debug_report.h
ibvulkan/Android.mk
ibvulkan/debug_report.cpp
ibvulkan/debug_report.h
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
ibvulkan/dispatch_gen.h
ibvulkan/layers_extensions.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/Android.mk
ulldrv/null_driver.cpp
ulldrv/null_driver.tmpl
ulldrv/null_driver_gen.cpp
ulldrv/null_driver_gen.h
6bd5dfa9b94d1f1b2d9b6bae52979502c44c2847 17-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Only load driver functions for enabled extensions

Change-Id: I4105291bd42583a10420681b729f03ecd7a91724
(cherry picked from commit 1c77ae2acda376b791932beffcb931c378e8ee36)
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
ibvulkan/layers_extensions.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
bb1b06e52e74dd7f5bad953b9327360d9f4e9a90 16-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Add current vk_ext_debug_report.h from upstream

Change-Id: I18faa0a6fd7c87274d2bf81ad1d0af213e33d09e
(cherry picked from commit 02efa91fd7fa5b3952209e4d78319d268f042d44)
nclude/vulkan/vk_ext_debug_report.h
563380d389732337a84e7455caa01ec955ebee30 16-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Update to version 1.0.1

Change-Id: Ib5d538bbcdf61f96bcfc0270b0e461927dd0b15b
(cherry picked from commit bfdbddcaf74d05966cde0f260a3d7da5a5b2d591)
pi/templates/vulkan_h.tmpl
pi/vulkan.api
nclude/vulkan/vk_android_native_buffer.h
nclude/vulkan/vulkan.h
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.h
ulldrv/null_driver.tmpl
ulldrv/null_driver_gen.h
ools/vkinfo.cpp
4da3bd68ab085b1e07304e64d3deada3dac994e0 17-Jan-2016 Jesse Hall <jessehall@google.com> vkinfo: Enable VK_EXT_debug_report if available

Change-Id: I58ba2f0be075b14286198d66eb7acb00c37b75e1
(cherry picked from commit 36783b098580b7f590a117e97dccf66bb11e44fd)
ools/vkinfo.cpp
8966bf4149947dfc6d8ee0251efffc3a75663543 17-Jan-2016 Jesse Hall <jessehall@google.com> vkinfo: improve formatting

Change-Id: I30f43d730f3181c27e8f6fb5aeb8a9bae7500f22
(cherry picked from commit 43123c167e5f089196da6aaaf8230b075d95748f)
ools/vkinfo.cpp
504db7fc09f9a6716dbc1b9849760283d94c9d60 15-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Disable accidentally-enabled verbose logging

Change-Id: Iab25e06607b173d9ea04fca79b0e8e8386dd0f0d
(cherry picked from commit 4b31dcd677ee868d99ef07890af425e10fd5bf0c)
ibvulkan/layers_extensions.cpp
ibvulkan/loader.cpp
d913282acf5c689cf5297a93604c6c10007bf6e9 15-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Load vkGetSwapchainGrallocUsageFlagsANDROID from driver

Change-Id: I1def2505024e4c6f13534820079662be9e8658ce
(cherry picked from commit ac9e053e639a9279d36b4bfbaa24fcc3b29b36c9)
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
30ac78b43ce408eb6d666c8667d184b8e44ed9e6 12-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Fix 64-bit compilation errors

Change-Id: I5f76ae6bb517d39c3461e95421444121a093b7da
(cherry picked from commit 9f434d3bbe473d93c7801f2f618ae02aa2318950)
ibvulkan/layers_extensions.cpp
ools/vkinfo.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)
oc/implementors_guide/implementors_guide.adoc
oc/implementors_guide/implementors_guide.html
nclude/vulkan/vk_android_native_buffer.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.tmpl
ulldrv/null_driver_gen.h
a7ac76df54c30e771ecfd05cdd2b52209af71470 09-Jan-2016 Jesse Hall <jessehall@google.com> libvulkan: Filter layer and extension lists passed to drivers

This change removes the layer and extension lists requested by the app
before passing the instance/device create info to the driver. For
device creation, it adds the VK_ANDROID_native_buffer extension. There
are several new TODOs describing the work left to do here: mostly,
when we properly enumerate instance and device extensions supported by
the driver, we need to use those same lists to filter the extensions
requested by the app.

Change-Id: I27c528d7bbbcb281d1bf6afec2318394831154a0
(cherry picked from commit 258cdce2c0e28b13c887c3d0ad5734a007393368)
ibvulkan/layers_extensions.cpp
ibvulkan/loader.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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/dispatch_gen.cpp
ibvulkan/loader.cpp
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver_gen.h
543a7ffb9845637b4dc0d40898bf5b1057dbc3ea 09-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.213.0 to 0.221.0

Change-Id: I872fcb4a020c9b9326cec0a8217a68d822d0a6e9
(cherry picked from commit 20e04407f51b6525eded4fbc3404e36a61e1b464)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/loader.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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/dispatch_gen.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver_gen.h
6e4ab316ba910c70a25c5264b3edabb759819098 08-Jan-2016 Jesse Hall <jessehall@google.com> vkinfo: print device layers and extensions

Change-Id: Iddc28080cf80f59c5c0c34572597ff4cd586cac5
(cherry picked from commit a7b9870e22472403e6b858bdf18383365ddc904f)
ools/vkinfo.cpp
09559b53a83342ee8b4c5ae3e29bb252a02908db 08-Jan-2016 Jesse Hall <jessehall@google.com> vkinfo: Refactor to separate info gather from print stages

Change-Id: If8041fb10975edb1e9e6bd827d9aeaa0f7a07e3f
(cherry picked from commit 1ae28dbbe57c89b8c6c9a1a9cb3482115a119256)
ools/vkinfo.cpp
80523e2e39c29b06ab40573468dde43a9867f487 07-Jan-2016 Jesse Hall <jessehall@google.com> vulkan: Implement layer and extension enumeration

Change-Id: I485ebbe3e57da396d361f772793e1e89850c334c
(cherry picked from commit 4bee2c3f2fdff04f1eb437f24a7bcf841364d5b3)
ibvulkan/Android.mk
ibvulkan/layers_extensions.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
c1ab303f6fc8339d386d6cf127534677929fddfb 04-Jan-2016 Jesse Hall <jessehall@google.com> vkinfo: print instance layers and extensions

Change-Id: I3206cd579f0f189ae4831a3e47785661ee06a6b7
(cherry picked from commit 1610a07f91669577fd35ba14396c9dce0b2306f9)
ools/vkinfo.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)
pi/templates/vulkan_common.tmpl
ibvulkan/Android.mk
ibvulkan/dispatch.tmpl
ibvulkan/dispatch_gen.cpp
ibvulkan/dispatch_gen.h
ibvulkan/entry.cpp
ibvulkan/entry.cpp.tmpl
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver.tmpl
ulldrv/null_driver_gen.cpp
ulldrv/null_driver_gen.cpp.tmpl
ulldrv/null_driver_gen.h
ools/vkinfo.cpp
21597661b5cabc73f8d14bd0091eea7bddafdcbe 18-Dec-2015 Jesse Hall <jessehall@google.com> libvulkan: Update global layer loading rules

* Look for layers in /data/local/debug/vulkan instead of
/data/local/tmp/vulkan.
* Only enumerate global layers in debuggable processes.
* Only allow force-enabling layers and callbacks in debuggable
processes.

Change-Id: I1f41a03ecbb0cc159e7dbb0b424005559996c196
(cherry picked from commit e784c114bbdc32361096cce8f59eb9513390e2d6)
ibvulkan/loader.cpp
55cb98da0d4aab8ed9d7698371f263d1e5c58eae 09-Dec-2015 Jesse Hall <jessehall@google.com> vknulldrv: Change module name to not clash with real drivers

Change-Id: I3135943894f83fd906c6835552ec93ea5f7c7dfe
(cherry picked from commit 2b000b984027932679cc6aa145fc11e9ef1b11fa)
ulldrv/Android.mk
4e89bf211e668a4e47c9a70d10d03c4b9dd5b97d 08-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: Update DevelopersGuide for SDK 0.10

Change-Id: Ic42cd9aa749417d783ac47546ab1e0bebcc617ac
(cherry picked from commit 81e0c1645f330bc9f8eb68925523814614aa0a3b)
oc/DevelopersGuide.pdf
5236f32ec510f34b5176f383a85ae6c3b9c1ea49 05-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: remove patches/frameworks_native-sdk_0.10

Change-Id: I60597847ca8c8a006f20e474320ac872d9ea12b0
(cherry picked from commit dd45da17053d5140fa0e201ef1039ffd25643e02)
atches/README
atches/frameworks_native-sdk_0.10/0001-vulkan-Update-from-version-0.172.2-to-0.174.0.patch
atches/frameworks_native-sdk_0.10/0002-vulkan-Update-from-version-0.174.0-to-0.177.0.patch
atches/frameworks_native-sdk_0.10/0003-vulkan-Update-from-version-0.177.0-to-0.179.0.patch
atches/frameworks_native-sdk_0.10/0004-vulkan-Update-from-version-0.179.0-to-0.180.0.patch
atches/frameworks_native-sdk_0.10/0005-vulkan-Update-from-version-0.180.0-to-0.181.0.patch
atches/frameworks_native-sdk_0.10/0006-vulkan-Update-from-version-0.181.0-to-0.183.0.patch
atches/frameworks_native-sdk_0.10/0007-vulkan-Implement-VkSurfaceKHR-and-use-vulkanext.h.patch
atches/frameworks_native-sdk_0.10/0008-vulkan-Update-from-version-0.183.0-to-0.184.0.patch
atches/frameworks_native-sdk_0.10/0009-vulkan.api-Distinguish-Vk-Flags-from-Vk-FlagBits.patch
atches/frameworks_native-sdk_0.10/0010-vulkan-Update-from-version-0.184.0-to-0.185.0.patch
atches/frameworks_native-sdk_0.10/0011-vulkan-Update-from-version-0.185.0-to-0.186.0.patch
atches/frameworks_native-sdk_0.10/0012-vulkan-Update-from-version-0.186.0-to-0.188.0.patch
atches/frameworks_native-sdk_0.10/0013-vulkan-Update-from-version-0.188.0-to-0.189.0.patch
atches/frameworks_native-sdk_0.10/0014-vulkan-Update-from-version-0.189.0-to-0.190.0.patch
atches/frameworks_native-sdk_0.10/0015-vulkan-Update-from-version-0.190.0-to-0.192.0.patch
atches/frameworks_native-sdk_0.10/0016-vulkan-Update-from-version-0.192.0-to-0.193.0.patch
atches/frameworks_native-sdk_0.10/0017-vulkan-Update-from-version-0.193.0-to-0.194.0.patch
atches/frameworks_native-sdk_0.10/0018-vulkan-Update-from-version-0.194.0-to-0.196.0.patch
atches/frameworks_native-sdk_0.10/0019-vulkan-Update-from-version-0.196.0-to-0.197.0.patch
atches/frameworks_native-sdk_0.10/0020-vulkan-Update-from-version-0.197.0-to-0.198.0.patch
atches/frameworks_native-sdk_0.10/0021-vulkan-Update-from-version-0.198.0-to-0.200.0.patch
atches/frameworks_native-sdk_0.10/0022-vulkan-Update-from-version-0.200.0-to-0.202.0.patch
atches/frameworks_native-sdk_0.10/0023-vulkan-Update-from-version-0.202.0-to-0.203.0.patch
atches/frameworks_native-sdk_0.10/0024-vulkan-Update-from-version-0.203.0-to-0.204.0.patch
atches/frameworks_native-sdk_0.10/0025-vulkan-Update-from-version-0.204.0-to-0.205.0.patch
atches/frameworks_native-sdk_0.10/0026-vulkan-Update-from-version-0.205.0-to-0.206.0.patch
atches/frameworks_native-sdk_0.10/0027-vulkan-Update-from-version-0.206.0-to-0.209.0.patch
atches/frameworks_native-sdk_0.10/0028-vulkan-Update-from-version-0.209.0-to-0.210.0.patch
atches/frameworks_native-sdk_0.10/0029-vulkan-Assign-enums-to-the-correct-extension.patch
atches/frameworks_native-sdk_0.10/0030-vulkan-Update-from-version-0.210.0-to-0.210.1.patch
atches/frameworks_native-sdk_0.10/0031-libvulkan-Fix-missed-vkAllocateCommandBuffers-rename.patch
atches/frameworks_native-sdk_0.10/0032-libvulkan-Implement-new-VkFence-parameter-in-vkAcqui.patch
c838b08ddbf8fea8bb1e541bf0453d1858d064ba 05-Dec-2015 Jesse Hall <jessehall@google.com> libvulkan: Add missing instance entry point dispatch init

Change-Id: Ib7db123ce91b0f488230988d66e6b627f0ac8645
(cherry picked from commit c00a23cb61f64a7c82cfab2b2c19ab15b5805348)
ibvulkan/loader.cpp
ibvulkan/loader.h
3fec89ea37127fe292a6766b5320fcbf9574c0ed 05-Dec-2015 Michael Lentine <mlentine@google.com> vknulldrv: Fix 64-bit build

Change-Id: I5dad7520ab513d230ba4af0ce2a4feb18b43bc82
(cherry picked from commit 1eb7f719d235708420898cdf4c18bc4cd46e19be)
ulldrv/null_driver.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)
oc/implementors_guide/implementors_guide.adoc
oc/implementors_guide/implementors_guide.html
nclude/vulkan/vk_android_native_buffer.h
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
40f7bf6b212d2a10da1f1531d17ed2d5622ca36b 04-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: Add acquire fence fix to sdk-0.10 patch stack

Change-Id: I1cd113fd9f534ead89cc68ae35615d260c43df9c
(cherry picked from commit ed10d8ff02ae068d39ebde2b47b030790b0f3ffa)
atches/frameworks_native-sdk_0.10/0032-libvulkan-Implement-new-VkFence-parameter-in-vkAcqui.patch
04be18e4aca1ce931f31b235e907f45d8c216305 03-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: Add vkAllocateCommandBuffers fix to sdk-0.10 patch stack

Change-Id: I3e8fba17eeb95d8d1d58ba84b06b09c204e57f19
(cherry picked from commit 846b281e644ba22ea4e38aed3126b5359daad71c)
atches/frameworks_native-sdk_0.10/0001-vulkan-Update-from-version-0.172.2-to-0.174.0.patch
atches/frameworks_native-sdk_0.10/0002-vulkan-Update-from-version-0.174.0-to-0.177.0.patch
atches/frameworks_native-sdk_0.10/0003-vulkan-Update-from-version-0.177.0-to-0.179.0.patch
atches/frameworks_native-sdk_0.10/0004-vulkan-Update-from-version-0.179.0-to-0.180.0.patch
atches/frameworks_native-sdk_0.10/0005-vulkan-Update-from-version-0.180.0-to-0.181.0.patch
atches/frameworks_native-sdk_0.10/0006-vulkan-Update-from-version-0.181.0-to-0.183.0.patch
atches/frameworks_native-sdk_0.10/0007-vulkan-Implement-VkSurfaceKHR-and-use-vulkanext.h.patch
atches/frameworks_native-sdk_0.10/0008-vulkan-Update-from-version-0.183.0-to-0.184.0.patch
atches/frameworks_native-sdk_0.10/0009-vulkan.api-Distinguish-Vk-Flags-from-Vk-FlagBits.patch
atches/frameworks_native-sdk_0.10/0010-vulkan-Update-from-version-0.184.0-to-0.185.0.patch
atches/frameworks_native-sdk_0.10/0011-vulkan-Update-from-version-0.185.0-to-0.186.0.patch
atches/frameworks_native-sdk_0.10/0012-vulkan-Update-from-version-0.186.0-to-0.188.0.patch
atches/frameworks_native-sdk_0.10/0013-vulkan-Update-from-version-0.188.0-to-0.189.0.patch
atches/frameworks_native-sdk_0.10/0014-vulkan-Update-from-version-0.189.0-to-0.190.0.patch
atches/frameworks_native-sdk_0.10/0015-vulkan-Update-from-version-0.190.0-to-0.192.0.patch
atches/frameworks_native-sdk_0.10/0016-vulkan-Update-from-version-0.192.0-to-0.193.0.patch
atches/frameworks_native-sdk_0.10/0017-vulkan-Update-from-version-0.193.0-to-0.194.0.patch
atches/frameworks_native-sdk_0.10/0018-vulkan-Update-from-version-0.194.0-to-0.196.0.patch
atches/frameworks_native-sdk_0.10/0019-vulkan-Update-from-version-0.196.0-to-0.197.0.patch
atches/frameworks_native-sdk_0.10/0020-vulkan-Update-from-version-0.197.0-to-0.198.0.patch
atches/frameworks_native-sdk_0.10/0021-vulkan-Update-from-version-0.198.0-to-0.200.0.patch
atches/frameworks_native-sdk_0.10/0022-vulkan-Update-from-version-0.200.0-to-0.202.0.patch
atches/frameworks_native-sdk_0.10/0023-vulkan-Update-from-version-0.202.0-to-0.203.0.patch
atches/frameworks_native-sdk_0.10/0024-vulkan-Update-from-version-0.203.0-to-0.204.0.patch
atches/frameworks_native-sdk_0.10/0025-vulkan-Update-from-version-0.204.0-to-0.205.0.patch
atches/frameworks_native-sdk_0.10/0026-vulkan-Update-from-version-0.205.0-to-0.206.0.patch
atches/frameworks_native-sdk_0.10/0027-vulkan-Update-from-version-0.206.0-to-0.209.0.patch
atches/frameworks_native-sdk_0.10/0028-vulkan-Update-from-version-0.209.0-to-0.210.0.patch
atches/frameworks_native-sdk_0.10/0029-vulkan-Assign-enums-to-the-correct-extension.patch
atches/frameworks_native-sdk_0.10/0030-vulkan-Update-from-version-0.210.0-to-0.210.1.patch
atches/frameworks_native-sdk_0.10/0031-libvulkan-Fix-missed-vkAllocateCommandBuffers-rename.patch
2ca1bd55bc4f2320e16ea3553117252017921008 03-Dec-2015 Jesse Hall <jessehall@google.com> libvulkan: Fix missed vkAllocateCommandBuffers renames

Change-Id: Ic3fee0d565009327f524084b14da498c8412155f
(cherry picked from commit 3b8513e831673417af2ad79baa6c73710742fa0f)
ibvulkan/entry.cpp
ibvulkan/entry.cpp.tmpl
ibvulkan/loader.cpp
ibvulkan/loader.h
e6839555def32ba50cff1cd3184db76bd9c02bdb 02-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: Fixes to the SDK-0.9->0.10 patch stack

Change-Id: I08374f21103f807722615313f0250afd7b842949
(cherry picked from commit c0f080e191bdf34ac6455d132724b47892c630f6)
atches/frameworks_native-sdk_0.10/0001-vulkan-Update-from-version-0.172.2-to-0.174.0.patch
atches/frameworks_native-sdk_0.10/0002-vulkan-Update-from-version-0.174.0-to-0.177.0.patch
atches/frameworks_native-sdk_0.10/0003-vulkan-Update-from-version-0.177.0-to-0.179.0.patch
atches/frameworks_native-sdk_0.10/0004-vulkan-Update-from-version-0.179.0-to-0.180.0.patch
atches/frameworks_native-sdk_0.10/0005-vulkan-Update-from-version-0.180.0-to-0.181.0.patch
atches/frameworks_native-sdk_0.10/0006-vulkan-Update-from-version-0.181.0-to-0.183.0.patch
atches/frameworks_native-sdk_0.10/0007-vulkan-Implement-VkSurfaceKHR-and-use-vulkanext.h.patch
atches/frameworks_native-sdk_0.10/0008-vulkan-Update-from-version-0.183.0-to-0.184.0.patch
atches/frameworks_native-sdk_0.10/0009-vulkan.api-Distinguish-Vk-Flags-from-Vk-FlagBits.patch
atches/frameworks_native-sdk_0.10/0010-vulkan-Update-from-version-0.184.0-to-0.185.0.patch
atches/frameworks_native-sdk_0.10/0011-vulkan-Update-from-version-0.185.0-to-0.186.0.patch
atches/frameworks_native-sdk_0.10/0012-vulkan-Update-from-version-0.186.0-to-0.188.0.patch
atches/frameworks_native-sdk_0.10/0013-vulkan-Update-from-version-0.188.0-to-0.189.0.patch
atches/frameworks_native-sdk_0.10/0014-vulkan-Update-from-version-0.189.0-to-0.190.0.patch
atches/frameworks_native-sdk_0.10/0015-vulkan-Update-from-version-0.190.0-to-0.192.0.patch
atches/frameworks_native-sdk_0.10/0016-vulkan-Update-from-version-0.192.0-to-0.193.0.patch
atches/frameworks_native-sdk_0.10/0017-vulkan-Update-from-version-0.193.0-to-0.194.0.patch
atches/frameworks_native-sdk_0.10/0018-vulkan-Update-from-version-0.194.0-to-0.196.0.patch
atches/frameworks_native-sdk_0.10/0019-vulkan-Update-from-version-0.196.0-to-0.197.0.patch
atches/frameworks_native-sdk_0.10/0020-vulkan-Update-from-version-0.197.0-to-0.198.0.patch
atches/frameworks_native-sdk_0.10/0021-vulkan-Update-from-version-0.198.0-to-0.200.0.patch
atches/frameworks_native-sdk_0.10/0022-vulkan-Update-from-version-0.200.0-to-0.202.0.patch
atches/frameworks_native-sdk_0.10/0023-vulkan-Update-from-version-0.202.0-to-0.203.0.patch
atches/frameworks_native-sdk_0.10/0024-vulkan-Update-from-version-0.203.0-to-0.204.0.patch
atches/frameworks_native-sdk_0.10/0025-vulkan-Update-from-version-0.204.0-to-0.205.0.patch
atches/frameworks_native-sdk_0.10/0026-vulkan-Update-from-version-0.205.0-to-0.206.0.patch
atches/frameworks_native-sdk_0.10/0027-vulkan-Update-from-version-0.206.0-to-0.209.0.patch
atches/frameworks_native-sdk_0.10/0028-vulkan-Update-from-version-0.209.0-to-0.210.0.patch
atches/frameworks_native-sdk_0.10/0029-vulkan-Assign-enums-to-the-correct-extension.patch
atches/frameworks_native-sdk_0.10/0030-vulkan-Update-from-version-0.210.0-to-0.210.1.patch
bd88884111a3ef38322741c15de9bd215f7a7eb9 01-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.210.0 to 0.210.1

Change-Id: I9adf217587a8b666bcf04818004dce4e97b87fd1
(cherry picked from commit 871aab516eafee2ede88b095dad6670b06ab6f8a)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/Android.mk
ools/Android.mk
523db34c1308c066ff9fe0a301ba6ed09f82b8ae 01-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: Assign enums to the correct extension

Change-Id: I9ba61b9bfe349f7079833de89d66aa4a2e993e2f
(cherry picked from commit 727391c1b5b3de78128cd204373d14ecdab34801)
pi/vulkan.api
9ba8bc8d8769cd4d7b56b44222323b7f06783b11 01-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.209.0 to 0.210.0

Change-Id: Ic5791cf1193de1e5d2ce355d9dcc4450b0def85a
(cherry picked from commit 5fa30181e473f9055884404545e7345c75440e64)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/get_proc_addr.cpp.tmpl
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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/loader.h
ibvulkan/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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/Android.mk
ibvulkan/swapchain.cpp
ools/Android.mk
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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/loader.h
ibvulkan/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)
pi/vulkan.api
nclude/vulkan/vk_android_native_buffer.h
nclude/vulkan/vk_debug_report_lunarg.h
nclude/vulkan/vk_platform.h
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/entry.cpp.tmpl
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/loader.cpp
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/loader.cpp
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
3e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.198.0 to 0.200.0

Change-Id: I071a9143332dd8b8c2ef899105073ed8791fc5db
(cherry picked from commit 9568691bea351152b340c0cbb3d31e5246ac469b)
pi/vulkan.api
nclude/vulkan/vk_android_native_buffer.h
nclude/vulkan/vk_ext_android_native_buffer.h
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/entry.cpp.tmpl
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.h
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.cpp
65ab552c18df3e94c5d275294a20dd4d20dda119 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.197.0 to 0.198.0

Change-Id: I182b21c68374e8eae962b2ae391bb283f07d5517
(cherry picked from commit ef5b7de781a9d803be4fba7ba243e6e96dd61851)
pi/vulkan.api
nclude/vulkan/vk_platform.h
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ools/vkinfo.cpp
d1af812f20e0793d94702817d441ab799bf46df7 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.196.0 to 0.197.0

Change-Id: I1c7aecd276cb8d831b8d7bf7eef58b5c6ad8b82c
(cherry picked from commit bef4966ad22d7690626b3dc048c59cb9e9eab870)
pi/vulkan.api
nclude/vulkan/vulkan.h
ulldrv/null_driver.cpp
ools/vkinfo.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)
pi/templates/vulkan_common.tmpl
pi/vulkan.api
nclude/vulkan/vk_debug_report_lunarg.h
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/entry.cpp.tmpl
ibvulkan/get_proc_addr.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.cpp
ools/vkinfo.cpp
c7467b74d3411eb7b9fde67368fad1052eb51c8d 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.193.0 to 0.194.0

Change-Id: I6a4508a61414375112bae3ffd16b0490ce3e4294
(cherry picked from commit 83c7f0486d495e9e7ab6f901ddeed931fff9ebad)
pi/vulkan.api
nclude/vulkan/vulkan.h
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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/get_proc_addr.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ools/vkinfo.cpp
dc6d36cb7f1d35059ae8153168e379fc925cb468 30-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.190.0 to 0.192.0

Change-Id: I5d38543a4ae1c522cacb45a3c011ceab62d2e1d5
(cherry picked from commit c10af6dde1e91deb70ef055838f1b51240fc66f2)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
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)
pi/platform.api
pi/vulkan.api
nclude/vulkan/vk_platform.h
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.cpp
23ff73fe377acb99b5ea1824d5a11320bdaee745 29-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.188.0 to 0.189.0

Change-Id: Ib8171ce1d3f804f9a866e1c216db0911043056c6
(cherry picked from commit 48c1928e091dd7eb6ca4fc6564e0be072028c38a)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ools/vkinfo.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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ools/vkinfo.cpp
6f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666 24-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.184.0 to 0.185.0

Change-Id: I1d6012db32441fe3a99480bfed0e41dfce068980
(cherry picked from commit 8b07f118b46ae01f709e7bfd92e29c6f6df5d7c0)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/get_proc_addr.cpp
ibvulkan/loader.h
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.cpp
d8bade009decc9e5bcc21396993d7a2e572a38f9 24-Nov-2015 Jesse Hall <jessehall@google.com> vulkan.api: Distinguish Vk*Flags from Vk*FlagBits

Previously Vulkan never used the *FlagBits enums directly as the type
of a parameter or field, only ever using the *Flags typedef. For cases
when a variable should have exactl one of the options, a separate enum
was used. Now Vulkan is switching to using the *FlagBits enum for such
variables, to avoid needing two separate enums for the same thing.

The API file didn't distinguish between these before, it only had one
type for the bitfield, and the vulkan_h.tmpl template synthesized the
*FlagBits name from the *Flags name during generation. Now that we
have cases where some variables need the *FlagBits type and some need
the *Flags type, we need to distinguish them in the API file. This
change does that.

This required some ugly casting in a few places to get around apic's
strict operand type compatibility rules. Most of these can go away
once b/25863296 is fixed.

Change-Id: Ia153d4b0c91abe80e4c34a284ca9d721cc770795
(cherry picked from commit 9f9678461ec3fdefa9c29e84c329cbdd243d7f80)
pi/vulkan.api
a9bb62b44be381292b893055cd01cdc89ba55c97 22-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.183.0 to 0.184.0

Change-Id: I11802010d9171877e3fc8cc6e0931f8c746660c4
(cherry picked from commit 821c3aebdbac594a9b977e8183a863bed7419132)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/get_proc_addr.cpp
ibvulkan/loader.h
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.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)
pi/platform.api
pi/vulkan.api
nclude/vulkan/vk_ext_khr_device_swapchain.h
nclude/vulkan/vk_ext_khr_swapchain.h
nclude/vulkan/vk_platform.h
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/entry.cpp.tmpl
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
fbf97b0e5e25349b951dce1016b263ec3acbf376 20-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.181.0 to 0.183.0

Change-Id: I721bfc6891974e2bab7dce7e92e7884de360412a
(cherry picked from commit 85009ebe92a71d3c707efad6387118b186cca0c9)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/get_proc_addr.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ools/vkinfo.cpp
a366a5186ea941c5653cbdb8df18dc19318912b6 20-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.179.0 to 0.180.0

Change-Id: I2cbf4a8b065e8150734d76d614ab0850bc8324dc
(cherry picked from commit 2b2221bd4c5cbc2580bf7b4e487bffe36fd25c4a)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
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)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.cpp
ools/vkinfo.cpp
acfa53409aa45de2c12f10617222e0d593e8f2df 20-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.174.0 to 0.177.0

Change-Id: I4b837c0bdb4fd6120688e8389ab8591178d370fb
(cherry picked from commit 5804cbcdb3c6444c7bb6904578ed339d9339de83)
pi/templates/vulkan_h.tmpl
pi/vulkan.api
nclude/vulkan/vulkan.h
ulldrv/null_driver.cpp
ools/vkinfo.cpp
ae38f7355fd03b777313e13586585a74e0dee05b 20-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update from version 0.172.2 to 0.174.0

Change-Id: If89614476735e5fb83cbeb4cf473e32e6f0cc386
(cherry picked from commit 18896311f868ab1b2b8a9a6ca34de4c0de6cf0d7)
pi/vulkan.api
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/get_proc_addr.cpp
ibvulkan/loader.h
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.cpp
4648d9c1abac2c0b9074c3743e54f2a7cc0d19b3 01-Dec-2015 Jesse Hall <jessehall@google.com> vulkan: Add SDK 0.9 to 0.10 patch stack

Change-Id: I7aaae7966b7a64c2d56f0933b811400a7c892cd6
(cherry picked from commit 7f8155bd9e394073415bc565efca3cd6e2969d5b)
atches/README
atches/frameworks_native-sdk_0.10/0001-vulkan-Update-from-version-0.172.2-to-0.174.0.patch
atches/frameworks_native-sdk_0.10/0002-vulkan-Update-from-version-0.174.0-to-0.177.0.patch
atches/frameworks_native-sdk_0.10/0003-vulkan-Update-from-version-0.177.0-to-0.179.0.patch
atches/frameworks_native-sdk_0.10/0004-vulkan-Update-from-version-0.179.0-to-0.180.0.patch
atches/frameworks_native-sdk_0.10/0005-vulkan-Update-from-version-0.180.0-to-0.181.0.patch
atches/frameworks_native-sdk_0.10/0006-vulkan-Update-from-version-0.181.0-to-0.183.0.patch
atches/frameworks_native-sdk_0.10/0007-vulkan-Implement-VkSurfaceKHR-and-use-vulkanext.h.patch
atches/frameworks_native-sdk_0.10/0008-vulkan-Update-from-version-0.183.0-to-0.184.0.patch
atches/frameworks_native-sdk_0.10/0009-vulkan.api-Distinguish-Vk-Flags-from-Vk-FlagBits.patch
atches/frameworks_native-sdk_0.10/0010-vulkan-Update-from-version-0.184.0-to-0.185.0.patch
atches/frameworks_native-sdk_0.10/0011-vulkan-Update-from-version-0.185.0-to-0.186.0.patch
atches/frameworks_native-sdk_0.10/0012-vulkan-Update-from-version-0.186.0-to-0.188.0.patch
atches/frameworks_native-sdk_0.10/0013-vulkan-Update-from-version-0.188.0-to-0.189.0.patch
atches/frameworks_native-sdk_0.10/0014-vulkan-Update-from-version-0.189.0-to-0.190.0.patch
atches/frameworks_native-sdk_0.10/0015-vulkan-Update-from-version-0.190.0-to-0.192.0.patch
atches/frameworks_native-sdk_0.10/0016-vulkan-Update-from-version-0.192.0-to-0.193.0.patch
atches/frameworks_native-sdk_0.10/0017-vulkan-Update-from-version-0.193.0-to-0.194.0.patch
atches/frameworks_native-sdk_0.10/0018-vulkan-Update-from-version-0.194.0-to-0.196.0.patch
atches/frameworks_native-sdk_0.10/0019-vulkan-Update-from-version-0.196.0-to-0.197.0.patch
atches/frameworks_native-sdk_0.10/0020-vulkan-Update-from-version-0.197.0-to-0.198.0.patch
atches/frameworks_native-sdk_0.10/0021-vulkan-Update-from-version-0.198.0-to-0.200.0.patch
atches/frameworks_native-sdk_0.10/0022-vulkan-Update-from-version-0.200.0-to-0.202.0.patch
atches/frameworks_native-sdk_0.10/0023-vulkan-Update-from-version-0.202.0-to-0.203.0.patch
atches/frameworks_native-sdk_0.10/0024-vulkan-Update-from-version-0.203.0-to-0.204.0.patch
atches/frameworks_native-sdk_0.10/0025-vulkan-Update-from-version-0.204.0-to-0.205.0.patch
atches/frameworks_native-sdk_0.10/0026-vulkan-Update-from-version-0.205.0-to-0.206.0.patch
atches/frameworks_native-sdk_0.10/0027-vulkan-Update-from-version-0.206.0-to-0.209.0.patch
atches/frameworks_native-sdk_0.10/0028-vulkan-Update-from-version-0.209.0-to-0.210.0.patch
atches/frameworks_native-sdk_0.10/0029-vulkan-Assign-enums-to-the-correct-extension.patch
atches/frameworks_native-sdk_0.10/0030-vulkan-Update-from-version-0.210.0-to-0.210.1.patch
9a86ad29160baaeb0efca60d4f554b25d8ff4787 21-Nov-2015 Jesse Hall <jessehall@google.com> libvulkan: Remove dead special cases in GetDeviceProcAddr

Change-Id: I58c5cad288f3d96acc9903a2323ec9fcf21798fd
(cherry picked from commit 18f7ae3776050529c3c244e639eb5095808963d9)
ibvulkan/loader.cpp
2818f93c5bc8b186d3455a1ea2fce900e7403465 20-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Update templates for generated extensions

When the swapchain extensions were added to the API file, only
the libvulkan/get_proc_addr.cpp template was updated. This change
updates the remaining templates, so that when used they generate the
appropriate output with the new API file:

- libvulkan/entry.cpp: Remove hardcoded extension entry points, now
that they're autogenerated.
- nulldrv/null_driver_gen.cpp: Exclude all extension entry points;
this only works because the API currently only includes entry points
implemented by the loader. Eventually we'll want to replace this
with an extension blacklist.

Change-Id: Id6ea11fb739390d8262fa5ce77c213fbbdeb0148
(cherry picked from commit 1d40de6ecdd74c47ebd40fadd5926cc2984cc91c)
pi/vulkan.api
ibvulkan/entry.cpp.tmpl
ulldrv/null_driver_gen.cpp.tmpl
1d1e65fabaf087d4a42157e376de792e8a60e4b5 19-Nov-2015 Michael Lentine <mlentine@google.com> Don't remove elements while iterating through active_layers.

Change-Id: I595e51aea635dad13b6e919dee2229defc4da55a
(cherry picked from commit b735b6d52dad4d72e16968aa66a8282df2c733ea)
ibvulkan/loader.cpp
233ac731b66da49e2f6611ed8c4ffcdcf893066b 19-Nov-2015 Michael Lentine <mlentine@google.com> Don't assume layers exist when prop is set

Previously we assumed that layers were valid when set via adb
shellprop but instead we should make sure they exist first. If they
don't ignore it and continue.

Change-Id: I161b7afa58e747080a9eeb112f933976a381b4c0
(cherry picked from commit c9625127034ab237da69d7da766e20d666545b13)
ibvulkan/loader.cpp
3f8524e0d0bc20286484b2d81fddae4fe27fb64b 13-Nov-2015 Jesse Hall <jessehall@google.com> vulkan: Add DevelopersGuide.pdf

Change-Id: I25b547e8704f78db39f4bcfeb5172439952b870d
(cherry picked from commit 296fd43d133871d7b6c9bacba67cd24ebe509e22)
oc/DevelopersGuide.pdf
oc/implementors_guide-docinfo.adoc
oc/implementors_guide.adoc
oc/implementors_guide.conf
oc/implementors_guide.html
oc/implementors_guide/implementors_guide-docinfo.adoc
oc/implementors_guide/implementors_guide.adoc
oc/implementors_guide/implementors_guide.conf
oc/implementors_guide/implementors_guide.html
88594d744093a8429030cf4f4a9ec22f25dfd500 12-Nov-2015 Michael Lentine <mlentine@google.com> Add WSI functions to the loader.

Modify vulkan.api to include the WSI functions.
Add new wsi functions to generation in get_proc_addr.cpp.tmpl
Add bottom entry points because the WSI functions are not exposed in the
driver.

Change-Id: I63c3a099a489496205b0a9eb82c005a5a48642a1
(cherry picked from commit 23b68ac9fcd2df06ffcc25cf8c4f794dd447bbd1)
pi/vulkan.api
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.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)
oc/implementors_guide.adoc
oc/implementors_guide.html
nclude/vulkan/vk_ext_android_native_buffer.h
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
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)
oc/implementors_guide.adoc
oc/implementors_guide.html
nclude/vulkan/vk_ext_android_native_buffer.h
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
f64ca1209c4b67baf36d6f489d3c73067113d419 04-Nov-2015 Jesse Hall <jessehall@google.com> libvulkan: enable scaling for all Vulkan swapchains

Change-Id: I0abe28a06dd24c317ed87270996d308411cb6fa1
(cherry picked from commit 6780552a6f17ee809ecf9b3538bbf9b666d5a160)
ibvulkan/swapchain.cpp
d1d5e5eb4c8314c05ac31d3be0baafbcb8175913 03-Nov-2015 Michael Lentine <mlentine@google.com> Remove Noop and move message removal.

Previously there were two Noop functions when only one is needed.
Additionally, the debug message was getting removed after the
layer was removed which is incorrect.

Change-Id: Ibee29b5395a8756c5a3e5c70df8e4723abb63e2b
(cherry picked from commit 262b1bddd775510584b50921e007d9eb6d8029c4)
ibvulkan/loader.cpp
cf25c4174dca708032ea83ac7ae2baad9e575b29 30-Oct-2015 Jesse Hall <jessehall@google.com> vknulldrv: Fix several entry point prototypes

Entry point implementations were never used where the appropriate
PFN_vk* type was expected, so when the prototypes were wrong the
compiler wouldn't know or be able to tell us. Of course, this means
several of them were wrong after the update to header 0.170.2.

This change adds an explicit static_cast to the appropriate function
pointer type for each function so the compiler will issue an error
when the prototype is wrong. It also fixes all of the resulting
errors.

Change-Id: I44211353476b56c8b429ee5d7ca7a669e8a95afd
(cherry picked from commit 90018472e9c4eed2fae226bd64f29da065d4b1e7)
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.cpp
ulldrv/null_driver_gen.cpp.tmpl
0ecdd3ed24fa0a55bad81f31a3d3480e8745d6ef 29-Oct-2015 Jesse Hall <jessehall@google.com> libvulkan: Don't log error if layer dir doesn't exist

It's normal for the global layer dir to not exist, and would be a
serious system bug if the APK native library dir didn't exist. Either
way, a VERBOSE message will be seen by the appropriate people, without
spamming the log during normal operation.

Change-Id: I7419b46304bb98b4dbb6d02effff0a4062c6de79
(cherry picked from commit e0059ade3836ec778f16a7c8998d056a21d2a7ab)
ibvulkan/loader.cpp
74f28ddb5e9812c2f13bed4e9856ccba8d8e0d3b 30-Oct-2015 Jesse Hall <jessehall@google.com> libvulkan: Fix check for redundant vkDeviceQueue calls

dEQP test sets typically create a device once, but call
vkGetDeviceQueue in each test case. Due to this bug we were failing
all but the first call.

Change-Id: If5a07ae23d630e64d06b7028b7e62f389533da43
(cherry picked from commit 8be3d02cb116d82aac0e2c8f50168d816bfec4a0)
ibvulkan/loader.cpp
9a16f975921e48bf1f6ccbfb5b5e225f84182b22 28-Oct-2015 Jesse Hall <jessehall@google.com> libvulkan: Fail instance/device creation if requested layer not present

Change-Id: I27177597e1aa8f22fa97ee60c5ff8dea6a7dde95
(cherry picked from commit 4113c6571109e03cc99dfb6a073e742c30478abd)
ibvulkan/loader.cpp
6614a5776d4ed9d3ed952b08669a09a671bd358a 23-Oct-2015 Jesse Hall <jessehall@google.com> vulkan: Fix GetSpecific*ProcAddr for extension functions

Change-Id: Ib19e08b9e057affe348e0da5e6840e139d4ec292
(cherry picked from commit b7f5ef5d5fee72fc16fb3e883b0d1725f2c7feed)
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
e2fd788b7ce5f64ee640c82ffe9fda332a8719a8 16-Oct-2015 Jesse Hall <jessehall@google.com> vulkan: add recursive f/n/vulkan/Android.mk

This allows using 'mm' to build everything under this dir, instead of
needing to build in each subdir separately.

Change-Id: I0c7692a7be54899b40f1cacdab3bea0e74d80174
(cherry picked from commit ba85347fc30649a17b00a237d81e8861097baeb9)
ndroid.mk
619157c63bf5faba94321623d32bcc949985ea8e 16-Oct-2015 Jesse Hall <jessehall@google.com> vulkan: Use the same dispatch magic value as LunarG

Change-Id: I3ac0d3953bd395ffb459aa7b8c7c08914b49008b
(cherry picked from commit 6a4503c5b8d01cc89e1ebde747c162ee326ebbff)
nclude/hardware/hwvulkan.h
eb97086a28f78a32e2615f6a399617c31651c3b1 15-Oct-2015 Michael Lentine <mlentine@google.com> Update DEBUG_REPORT extension and callback for v170.2

Change-Id: Ica7bb0fb738804c48f165409882086d0300bc294
(cherry picked from commit 647626135721fc28d36364031f04a1541719fb5e)
nclude/vulkan/vk_debug_report_lunarg.h
ibvulkan/loader.cpp
f860bcb9efb47b1ef5a86ced9345a51bfa4bca56 15-Oct-2015 Jesse Hall <jessehall@google.com> vulkan: Add build-install_libvulkan virtual branch

Change-Id: I8f028c6aedf6bcc44d1da25cf9b0e16b95f3c10b
(cherry picked from commit d25223b2a824b8b78d6e0783069aecb8981d9428)
atches/README
atches/build-install_libvulkan/0001-Add-libvulkan-to-base-PRODUCT_PACKAGES.patch
ebb651fad209201ba6c32ea461423d5e41f4525a 15-Oct-2015 Jesse Hall <jessehall@google.com> vulkan: Remove sdk-0.9 virtual branch, has been merged

Change-Id: I67e15c1d5fdd3364232051ab94e24e91a826c6a2
(cherry picked from commit e8faab3a100346438f43178e2c902642f57a0841)
atches/README
atches/sdk-0.9/0001-vulkan-Update-from-header-0.138.2-to-0.170.2.patch
431a8c9fda2b9c5569f6e8cbfe737d0dde0d9a71 14-Oct-2015 Jesse Hall <jessehall@google.com> vulkan: Update to SDK-0.9 version of vk_ext_khr_device_swapchain.h

Change-Id: I16c1505accd01831ddfcb5c9d047175f1982e3bf
(cherry picked from commit 0316a4ec28abedf4ad2cbfc3fa7464f5b70699e0)
nclude/vulkan/vk_ext_khr_device_swapchain.h
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)
pi/platform.api
pi/templates/vk_xml.tmpl
pi/templates/vulkan_common.tmpl
pi/templates/vulkan_h.tmpl
pi/vulkan.api
nclude/hardware/hwvulkan.h
nclude/vulkan/vk_platform.h
nclude/vulkan/vulkan.h
ibvulkan/entry.cpp
ibvulkan/get_proc_addr.cpp
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.cpp
ools/Android.mk
ools/vkinfo.cpp
9da191b8be6cabf24640cc4fc360bafaaccc615b 13-Oct-2015 Michael Lentine <mlentine@google.com> Add support for longer than 12 character layers.

Change-Id: Ic2bf1c21a962e0921a68ec58946817518468c8b0
(cherry picked from commit 17d4cf3b87c688ec35320d3061e26862a891233b)
ibvulkan/loader.cpp
9dbe67ff98cb63c9150d76e16cced51c5d241139 16-Sep-2015 Michael Lentine <mlentine@google.com> Allow for different layers to be active per device

Change-Id: I947ec25bc44072bec825a78fa6ddda3121e1f818
(cherry picked from commit dd12a76d6a89e0fcab4a4adcaec190d8b50909c5)
ibvulkan/loader.cpp
e37373b033612ca795ac725fec81726bf57bd298 09-Oct-2015 Jesse Hall <jessehall@google.com> vulkan: Add sdk-0.9 virtual branch

Change-Id: If339b10e9a0cb07cf4bcdeedceaf71b5f609da15
(cherry picked from commit d202e3c7049df2df60828aedaeeb99eae762df58)
atches/README
atches/sdk-0.9/0001-vulkan-Update-from-header-0.138.2-to-0.170.2.patch
89bf27765387942e0662fcf1e1efd5b43b22c210 09-Oct-2015 Jesse Hall <jessehall@google.com> vulkan: Add apk_library_dir virtual branch

Change-Id: Idf479bedf2e8e49612818a816084f91f074c5397
(cherry picked from commit c28bf8bf2c8514cb983fec090c90ddbf0ba43b37)
atches/README
atches/frameworks_base-apk_library_dir/0001-Adding-plumbing-for-passing-the-lib-directory.patch
1c69b9e33e34c6aef571b8383bdb7e2b3a5e0849 14-Sep-2015 Michael Lentine <mlentine@google.com> Add support for loading layers from the apk.

Added the vulkan_layer_path interface which is used to set the path from
ThreadedRenderer. The vulkan loader then uses this path to search for layer
libraries that come preinstalled with the app.

Change-Id: Iee7d56c1950296ba5ece3a119741406d705479a8
(cherry picked from commit 1f920c1e52bbd59405761e5403def5dbc22e331b)
nclude/vulkan/vulkan_loader_data.h
ibvulkan/Android.mk
ibvulkan/loader.cpp
ibvulkan/vulkan_loader_data.cpp
cd6cabf0e28e2246d94207dc7ef449049cd4d9f6 15-Sep-2015 Michael Lentine <mlentine@google.com> Add default callbacks in the loader.

Change-Id: I23d7945efb0fd372e614f895278fc86a853fe429
(cherry picked from commit 9b9938127d1c68cda9b709524aea44ffb0de77b9)
nclude/vulkan/vk_debug_report_lunarg.h
ibvulkan/loader.cpp
b467c0d6de04f2dbac598cf1bba999ce9da69bbf 14-Sep-2015 Michael Lentine <mlentine@google.com> Add support for arbitrary number of layers

Add a static string in vulkan_layer_path that is set by the loader.
This path is then searched inside the loader for layers to load.

Change-Id: Ibd6fa87579d6fd39bba0814935be2bd38a416848
(cherry picked from commit 1dd0ae574084204bbbb614e551125ee84dc5cf3d)
ibvulkan/loader.cpp
950bb4fb86a67997791f4565680421fb07cdbf2b 14-Sep-2015 Michael Lentine <mlentine@google.com> Add support for autoloading callback extension.

This works by checking for the property vulkan.enableLayerCallback. If the
property doesn't exist, is false, or the app has explicitly loaded the callback
extension the change does nothing. If the property is enabled and the app
has not loaded the extension this change forces the loader to enable it.

Change-Id: I52f7afb4136358a360aaf62188d98b34b563778a
(cherry picked from commit adeac8e46bd0034321ea348132d3f9db967b72e9)
ibvulkan/loader.cpp
1f0f539dbf9df78932e2d5d27ea24e9f347643f3 11-Sep-2015 Michael Lentine <mlentine@google.com> Add support for multiple layers in the same so

Change-Id: Iec30d8b969665473e24f5ac24a62aa930339f7d5
(cherry picked from commit 6dee80d5c552d16c2e5fc44290c057b43515fa52)
ibvulkan/loader.cpp
03c64b0b525a2f259456a220c51bbc8438ae2c03 27-Aug-2015 Michael Lentine <mlentine@google.com> Add layer loading to android vulkan loader.

Change-Id: I500d248f03a14db82ce725e600aef82c115b9b35
(cherry picked from commit ad17ac2e5bec7a65e3170043eb958e5a97107bd4)
ibvulkan/Android.mk
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.cpp
ibvulkan/loader.h
ulldrv/null_driver.cpp
622701679d3a4636846ad63834685f7008980fef 15-Sep-2015 Michael Lentine <mlentine@google.com> Fix GetSpecific*ProcAddr.

Change GetSpeicific*ProcAddr to cast to return the value inside of the table
instead of the table itself.

Change-Id: Ib693274cd5c0869d79f0869a6d99a78c31a63b08
(cherry picked from commit 0c8fe76496e1fe6fe63e4e6179f53a98561a7748)
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
d7b994a0cfb9054aafc1dadc85085a7d0ef8789a 07-Sep-2015 Jesse Hall <jessehall@google.com> vulkan: Implement vk_ext_khr_*swapchain extensions

Change-Id: I46312c9ba1332e0a5b8ac4c1b5608f0465c3962c
(cherry picked from commit e5ca41cb11212bbfbd608eddb92d794e12e1528e)
ibvulkan/Android.mk
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.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)
nclude/vulkan/vk_ext_android_native_buffer.h
nclude/vulkan/vk_ext_khr_device_swapchain.h
nclude/vulkan/vk_ext_khr_swapchain.h
ibvulkan/Android.mk
ibvulkan/entry.cpp
ibvulkan/entry.cpp.tmpl
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.cpp
ibvulkan/loader.h
ibvulkan/swapchain.cpp
ulldrv/null_driver.cpp
ulldrv/null_driver.h
d02edcbb40d476b6d3b5ae279a6ccef786be8848 08-Sep-2015 Jesse Hall <jessehall@google.com> vulkan: add copyright notices

Change-Id: I62ec6d02a052c9e9cee9753057d55c165dfc9713
(cherry picked from commit b7f416a9cc3d136ffe4a60b5f6fb2dc8b92a623b)
ibvulkan/Android.mk
ibvulkan/entry.cpp.tmpl
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.cpp
ibvulkan/loader.h
ulldrv/Android.mk
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.cpp.tmpl
ools/Android.mk
ools/vkinfo.cpp
85c05b60435ef61e833bcedced9ff0699e829f7c 02-Sep-2015 Jesse Hall <jessehall@google.com> vknulldrv: Implement VkImage

Change-Id: Ief50f433fc9b1ad4f4b0ee28912993d59d9df411
(cherry picked from commit cd1a7c4312ac5828682e580fdbbad7b10dbf5a45)
ulldrv/null_driver.cpp
bde8ee3037ed1e26d4e603332137c88e6c6d55cb 02-Sep-2015 Jesse Hall <jessehall@google.com> vulkan: warn on bogus CreateBuffer args

Change-Id: I415a367f3952ef08f8b659d15ce4278da8c4b70a
(cherry picked from commit f96997afd168a31582217d19fc237163c963dad0)
ulldrv/null_driver.cpp
c7a6eb56a2c967685f70d30c643f899b0425c0ea 31-Aug-2015 Jesse Hall <jessehall@google.com> vulkan: Set up VkCmdBuffer dispatching

Change-Id: Ifb3cea05dab8828c2c00b8ed60c5ad991cdcbea7
(cherry picked from commit 10bf73e13b6904afa606fdcdc05bcc510c605180)
ibvulkan/entry.cpp
ibvulkan/entry.cpp.tmpl
ibvulkan/loader.cpp
ibvulkan/loader.h
ulldrv/null_driver.cpp
f8faf0ce17a6435e58c7d2744d9e0e84f3b25bd7 31-Aug-2015 Jesse Hall <jessehall@google.com> vknulldrv: Implement creation of no-op object types

Change-Id: If093f4c0775415608851b9c0ce356d4916e16ee8
(cherry picked from commit d1a9e4154cdacdba0f84054688f3b2c8d530e073)
ulldrv/null_driver.cpp
2077ce0c0d7ca716c408826449314ac799eda650 29-Aug-2015 Jesse Hall <jessehall@google.com> vknulldrv: implement VkDeviceMemory objects

Change-Id: If9c22b3800058877c7854d59622b7205b79cf731
(cherry picked from commit 4ff851997ef2972b3b846656d93a06e44858259e)
ulldrv/Android.mk
ulldrv/null_driver.cpp
f6578743278da9b55d96a4984f4fcaa9d73eda8d 29-Aug-2015 Jesse Hall <jessehall@google.com> vknulldrv: implement VkBuffer objects

Change-Id: Idda564392cf8daae6ea8c3a9809e6df990433a33
(cherry picked from commit aee62ea7ff379dde787344e1377b51fefb2385d6)
ulldrv/null_driver.cpp
73ab0acc1990326b4e51b675f4b2b44b6366c0a7 25-Aug-2015 Jesse Hall <jessehall@google.com> vulkan: add memory property queries to nulldrv and vkinfo

Change-Id: Ib3ceb46ff4e46a25787d8c980b8339328b471925
(cherry picked from commit 6c5ee23b92f420387f46da97714780f9ce12681a)
ulldrv/Android.mk
ulldrv/null_driver.cpp
ools/vkinfo.cpp
04f4f4746481571148eaf3aaf768ee5c6dccec9d 17-Aug-2015 Jesse Hall <jessehall@google.com> vulkan: initial loader and null driver

Change-Id: Id5ebb5f01e61e9b114990f49c64c88fbbb7b730e
(cherry picked from commit 4df205cdfc61e66de774ba50be9ef59a08cf88bb)
clang-format
pi/templates/vulkan_common.tmpl
nclude/hardware/hwvulkan.h
nclude/vulkan/vk_platform.h
nclude/vulkan/vulkan.h
ibvulkan/Android.mk
ibvulkan/entry.cpp
ibvulkan/entry.cpp.tmpl
ibvulkan/get_proc_addr.cpp
ibvulkan/get_proc_addr.cpp.tmpl
ibvulkan/loader.cpp
ibvulkan/loader.h
ulldrv/Android.mk
ulldrv/null_driver.cpp
ulldrv/null_driver.h
ulldrv/null_driver_gen.cpp
ulldrv/null_driver_gen.cpp.tmpl
ools/Android.mk
ools/vkinfo.cpp
f09c6b1fe893f0d378cfd3228b10df6a448e3a1c 16-Aug-2015 Jesse Hall <jessehall@google.com> vulkan: apply 138.0..v138.2 changes to api file

Change-Id: Icdadba710a2990e26ca13472f0efad55f66a403e
(cherry picked from commit 38347619f9d99bb4756ccde83389242e0f3d8986)
pi/templates/vulkan_h.tmpl
pi/vulkan.api
d27f6aad91e6cdb7a867c432f66a852acc077897 16-Aug-2015 Jesse Hall <jessehall@google.com> vulkan: import api from upstream

Imported from 74e25b28dc0e198a69add358d541b25291bcde82, which
corresponds to header version 0.138.0.

Change-Id: Ia9bde11a213527b1c366eb4b82aec8650ca13666
(cherry picked from commit 4e262baf54382c455c191a4c1417dec8d17e8926)
pi/platform.api
pi/templates/asciidoc.tmpl
pi/templates/vk_xml.tmpl
pi/templates/vulkan_common.tmpl
pi/templates/vulkan_h.tmpl
pi/vulkan.api
83321be7d27894e4ecb849e90aa28ecbf13dcf6a 17-Aug-2015 Jesse Hall <jessehall@google.com> vulkan: several updates to implementor's guide

Change-Id: I1ec78e993da16fe9e0b3c86abc2c67f68e634823
(cherry picked from commit d3e348755504a1a32953b61e88d31478fa82eea2)
oc/implementors_guide-docinfo.adoc
oc/implementors_guide.adoc
oc/implementors_guide.conf
oc/implementors_guide.html
oc/vkandroid-docinfo.html
oc/vkandroid.adoc
oc/vkandroid.conf
oc/vkandroid.html
bbd4c103e7e196ba2456294c2f62395b4990bad7 16-Aug-2015 Jesse Hall <jessehall@google.com> vulkan: add initial vkandroid doc

Change-Id: I40aa41941bfbe0f33f30446e83ef62f5358e47d4
(cherry picked from commit 64b41615ead7f7ba1df309889cbbc7aee60cb3f4)
oc/vkandroid-docinfo.html
oc/vkandroid.adoc
oc/vkandroid.conf
oc/vkandroid.html