History log of /frameworks/native/vulkan/libvulkan/driver_gen.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2452cf7e653c425191791a4fb546106d6a277654 16-Mar-2017 Chris Forbes <chrisforbes@google.com> vulkan: Implement KHR_get_surface_capabilities2

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

Change-Id: I0f1cc83cfc885955a39fc02d4a15609e83d36798
Test: dEQP-VK.wsi.android.surface.*2
/frameworks/native/vulkan/libvulkan/driver_gen.h
e2d3ee180a2521c8db03a9702cb2669735f239ac 16-Mar-2017 Chris Forbes <chrisforbes@google.com> vulkan: Update header for KHR_get_surface_capabilities2

.. and new struct added to latest version of
KHR_shared_presentable_image.

Test: build
Change-Id: I653d0d8ad384c256e9a5c4cb79554360a5b2606e
/frameworks/native/vulkan/libvulkan/driver_gen.h
e278daf850a664a1f15c760c64a74d3649b6f812 03-Feb-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Use Surface::GetWideColorSupport in VK_EXT_swapchain_colorspace

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

Test: compile Vulkan CTS test TBD
Change-Id: I85dbe9617b8eba8b89c3ad788d5ffc9f0d66f935
/frameworks/native/vulkan/libvulkan/driver_gen.h
6aa30db7a9bbe06b59fddd554d797c6e466ca891 20-Feb-2017 Chris Forbes <chrisforbes@google.com> vulkan: Split known/intercepted extension lists

We need to do some work in the loader based on whether gpdp2 is present
and enabled, and we'd like to /not/ filter gpdp2 out of extension lists.

However, we don't need or want to generate full forwarding stubs.

All extensions in driver.KnownExtensions will have enums and matching
infrastructure generated, but only extensions in
driver.InterceptedExtensions will have g_hook_procs populated for their
entrypoints.

V3: Define driver.KnownExtensions in terms of
driver.InterceptedExtensions as always a superset.

Change-Id: If0fdabad99fa4637d7c6fc1e9a7e5e3908b53aca
Test: build
/frameworks/native/vulkan/libvulkan/driver_gen.h
d634c483bcbd564acd81dcf5d15fc5fa8ab410f4 05-Jan-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Add HDR Metadata extension

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

Test: CTS dEQP-VK.wsi.android.hdr_metadata.scale_none.fifo.*
Change-Id: I5de639ef87a988e02d194a2bd91d16ffe6102c6e
/frameworks/native/vulkan/libvulkan/driver_gen.h
85bb0c5a57be2b456079c14448127fa9bb8cff66 10-Feb-2017 Jesse Hall <jessehall@google.com> vulkan: Temporarily hack around loader/driver mismatch

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

Test: vulkanGears on affected device
Change-Id: I5a8bb16f0f9563e32314cff2a2a7a45760cfc356
/frameworks/native/vulkan/libvulkan/driver_gen.h
1d5f68c10560a82fd3278e17e934ee3bff328374 30-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: KHR_swapchain_front_buffered -> KHR_shared_presentable_image

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

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

Test: build
Change-Id: I6ea2e33e708067f11069bda19c4b5ea167158913
/frameworks/native/vulkan/libvulkan/driver_gen.h
48853713e328ee23884d2127ca763352e0681944 12-Jan-2017 Chris Forbes <chrisforbes@google.com> vulkan: Fix vulkan.api for Ian's changes & regen

Various problems: uint32_t vs u32, a dropped }, function body with
semantics that crash the generator, etc ...

V2: don't export Ian's extensions from libvulkan.

Change-Id: I1dceb4d4fc21ad5d38255c4979d9ef372ea2a28b
Test: build
/frameworks/native/vulkan/libvulkan/driver_gen.h
4c8bb2a95d7849c79dea889f1be59281f4e374bf 29-Dec-2016 Ian Elliott <ianelliott@google.com> Stubbed implementation of VK_GOOGLE_display_timing extension.

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

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

Change-Id: Iec46b1cab4b2561702ebac9a4ae7587584793192
/frameworks/native/vulkan/libvulkan/driver_gen.h
8e4438b9cd82e911ed8de6aca15f11816187df3f 07-Dec-2016 Chris Forbes <chrisforbes@google.com> frontbuffer enhancements to ANDROID_vulkan_native_buffer

Since VK_KHR_swapchain is implemented entirely in libvulkan, we need an
image-level mechanism to inform the driver that a swapchain image will
be used for front-buffered rendering. This is implemented by chaining
another structure off of the VkImageCreateInfo passed to the driver when
creating swapchain images.

V2: Don't foul up api file. Rerun code generators.
V3: Rename VkNativeBuffer2ANDROID structure to
VkSwapchainImageCreateInfoANDROID
V4: Provide nulldrv stub for new function
V5: rebase.

Change-Id: I4447400cb1782440638e4c8816b081dd8923ddb9
Test: compile
/frameworks/native/vulkan/libvulkan/driver_gen.h
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
/frameworks/native/vulkan/libvulkan/driver_gen.h
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
/frameworks/native/vulkan/libvulkan/driver_gen.h
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
/frameworks/native/vulkan/libvulkan/driver_gen.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
/frameworks/native/vulkan/libvulkan/driver_gen.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
/frameworks/native/vulkan/libvulkan/driver_gen.h
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
/frameworks/native/vulkan/libvulkan/driver_gen.h