History log of /frameworks/native/vulkan/libvulkan/api.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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
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

Bug: 28120066
Change-Id: Ia9a3b568e415555bf42c8a76d1df6279835a710c
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
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
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
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
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
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
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
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


in driver namespace for type safety.

Bug: 28015368
Change-Id: I7389829a7d8c374197cd7046973777b49e436961
eef27fa3a0c7d153603b7fd69849fee73a07af5b 11-Apr-2016 Chia-I Wu <olv@google.com> vulkan: use CamelCase() for LayerChain

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

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

Change-Id: Ic7bc29efc1ae5b734ebfc692c441b9537134ccb2
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
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
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

Change-Id: I5342c1a5c9a5452dd2bc52933a5ee558db174048
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