OSDN Git Service

loader: Implement new layer initialization
authorCourtney Goeltzenleuchter <courtneygo@google.com>
Tue, 9 Feb 2016 03:48:05 +0000 (20:48 -0700)
committerJesse Hall <jessehall@google.com>
Wed, 10 Feb 2016 22:51:23 +0000 (14:51 -0800)
commita90ce61c1a4c0eae79b117f2137e9fe7ed41aa6d
tree5ab8ce0c5343b1954804205ad0c3c538ca4f6edb
parenteff631189b135a9579a7f8510f9b1ccadd6fb4f9
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)
vulkan/libvulkan/dispatch.tmpl
vulkan/libvulkan/dispatch_gen.cpp
vulkan/libvulkan/loader.cpp
vulkan/libvulkan/loader.h