Change Implementation->Drivers

Feedback from Khronos was that "Implementation" was for the entire
set of Vulkan components underlying the application (including the
loader, layers, and drivers).  Instead, what I had been calling
implementation should be called "Driver" including software
implementations of Vulkan at that level.

Also update the LOADER_DEBUG option "implem" to take "driver" as well.
All images also updated.
This commit is contained in:
Mark Young 2021-10-20 15:50:07 -06:00
parent b35527922c
commit 0162d1648f
26 changed files with 1299 additions and 1302 deletions

View File

@ -123,7 +123,7 @@ versus the call chain of a device functions.
Remember, a [Vulkan instance is a high-level construct used to provide Vulkan
system-level information](LoaderInterfaceArchitecture.md#instance-specific).
Because of this, instance functions need to be broadcast to every available
implementation on the system.
driver on the system.
The following diagram shows an approximate view of an instance call chain with
three enabled layers:
@ -132,10 +132,10 @@ three enabled layers:
This is also how a Vulkan device function call chain looks if queried
using `vkGetInstanceProcAddr`.
On the other hand, a device function doesn't need to worry about the broadcast
because it knows specifically which associated implementation and which
associated physical device the call should terminate at.
because it knows specifically which associated driver and which associated
physical device the call should terminate at.
Because of this, the loader doesn't need to get involved between any enabled
layers and the implementation.
layers and the driver.
Thus, using a loader-exported Vulkan device function, the call chain
in the same scenario as above would look like:
@ -149,7 +149,7 @@ most scenarios:
![Application Device Call Chain](./images/loader_device_chain_app.png)
Also, notice if no layers are enabled, the application function pointers point
**directly to the implementation**.
**directly to the driver**.
With many function calls, the lack of indirection in each adds up to non-trivial
performance savings.
@ -162,8 +162,8 @@ instance call chain.
One example of a device function requiring a *terminator* is
`vkCreateSwapchainKHR`.
For that function, the loader needs to potentially convert the KHR_surface
object into an implementation-specific KHR_surface object prior to passing down
the rest of the function's information to the implementation.
object into an driver-specific KHR_surface object prior to passing down the rest
of the function's information to the driver.
Remember:
* `vkGetInstanceProcAddr` is used to query instance and physical device
@ -220,7 +220,7 @@ currently named `libvulkan.1.dylib`.
## Application Layer Usage
Applications desiring Vulkan functionality beyond what Vulkan implementations
Applications desiring Vulkan functionality beyond what Vulkan drivers
on their system already expose, may use various layers to augment the API.
A layer cannot add new Vulkan core API entry-points that are not exposed in
Vulkan.h.
@ -518,12 +518,12 @@ make to function.
## Application Usage of Extensions
Extensions are optional functionality provided by a layer, the loader, or an
implementation.
Extensions are optional functionality provided by a layer, the loader, or a
driver.
Extensions can modify the behavior of the Vulkan API and need to be specified
and registered with Khronos.
These extensions can be implemented by a Vulkan implementation, the loader, or a
layer to expose functionality not available in the core API.
These extensions can be implemented by a Vulkan driver, the loader, or a layer
to expose functionality not available in the core API.
Information about various extensions can be found in the Vulkan Spec, and
vulkan.h header file.
@ -550,7 +550,7 @@ extensions are enabled with `vkCreateDevice`.
When calling `vkEnumerateInstanceExtensionProperties` and
`vkEnumerateDeviceExtensionProperties`, the loader discovers and aggregates all
extensions of their respective type from layers (both explicit and implicit),
implementations, and the loader before reporting them to the application.
drivers, and the loader before reporting them to the application.
Looking at `vulkan.h`, both functions are very similar,
for example, the `vkEnumerateInstanceExtensionProperties` prototype looks as
@ -578,17 +578,16 @@ VkResult
The "pLayerName" parameter in these functions is used to select either a single
layer or the Vulkan platform implementation.
If "pLayerName" is NULL, extensions from Vulkan implementation components
(including loader, implicit layers, and implementations) are enumerated.
(including loader, implicit layers, and drivers) are enumerated.
If "pLayerName" is equal to a discovered layer module name then only extensions
from that layer (which may be implicit or explicit) are enumerated.
**Note:** While device layers are deprecated, the instance enabled layers are
still present in the device call-chain.
Duplicate extensions (e.g. an implicit layer and implementation might report
support for the same extension) are eliminated by the loader.
For duplicates, the implementation version is reported and the layer version is
culled.
Duplicate extensions (e.g. an implicit layer and driver might report support for
the same extension) are eliminated by the loader.
For duplicates, the driver version is reported and the layer version is culled.
Also, extensions **must be enabled** (in `vkCreateInstance` or `vkCreateDevice`)
before the functions associated with the extensions can be used.
@ -646,7 +645,7 @@ With the ability to expand Vulkan so easily, extensions will be created that
the loader knows nothing about.
If the extension is a device extension, the loader will pass the unknown
entry-point down the device call chain ending with the appropriate
implementation entry-points.
driver entry-points.
The same thing will happen if the extension is an instance extension which
takes a physical device parameter as its first component.
However, for all other instance extensions the loader will fail to load it.
@ -658,19 +657,19 @@ Let's look again at the instance call chain:
![Instance call chain](./images/loader_instance_chain.png)
Notice that for a normal instance function call, the loader has to handle
passing along the function call to the available implementations.
passing along the function call to the available drivers.
If the loader has no idea of the parameters or return value of the instance
call, it can't properly pass information along to the implementations.
call, it can't properly pass information along to the drivers.
There may be ways to do this, which will be explored in the future.
However, for now, the loader does not support instance extensions which don't
expose entry points that take a physical device as their first parameter.
Because the device call-chain does not normally pass through the loader
*terminator*, this is not a problem for device extensions.
Additionally, since a physical device is associated with one implementation, we
can use a generic *terminator* pointing to one implementation.
Additionally, since a physical device is associated with one driver, the loader
can use a generic *terminator* pointing to one driver.
This is because both of these extensions terminate directly in the
implementation they are associated with.
driver they are associated with.
*Is this a big problem?*
<br/>
@ -682,8 +681,8 @@ loader support.
### Filtering Out Unknown Instance Extension Names
In some cases, an implementation may support instance extensions that are not
supported by the loader.
In some cases, a driver may support instance extensions that are not supported
by the loader.
For the above reasons, the loader will filter out the names of these unknown
instance extensions when an application calls
`vkEnumerateInstanceExtensionProperties`.

View File

@ -16,7 +16,7 @@
* [Who Should Read This Document](#who-should-read-this-document)
* [The Loader](#the-loader)
* [Layers](#layers)
* [Implementations](#implementations)
* [Drivers](#drivers)
* [VkConfig](#vkconfig)
* [Important Vulkan Concepts](#important-vulkan-concepts)
@ -27,7 +27,7 @@
* [Application Interface to the Loader](#application-interface-to-the-loader)
* [Layer Interface with the Loader](#layer-interface-with-the-loader)
* [Implementation Interface with the Loader](#implementation-interface-with-the-loader)
* [Driver Interface with the Loader](#driver-interface-with-the-loader)
* [Table of Debug Environment Variables](#table-of-debug-environment-variables)
* [Glossary of Terms](#glossary-of-terms)
@ -38,7 +38,7 @@ Vulkan is a layered architecture, made up of the following elements:
* The Vulkan Application
* [The Vulkan Loader](#the-loader)
* [Vulkan Layers](#layers)
* [Implementations](#implementations)
* [Drivers](#drivers)
* [VkConfig](#vkconfig)
![High Level View of Loader](./images/high_level_loader.png)
@ -58,21 +58,21 @@ wanting a better understanding of the Vulkan runtime.
The application sits at the top and interfaces directly with the Vulkan
loader.
At the bottom of the stack sits the implementations.
An implementation can control one or more physical devices capable of rendering
Vulkan, implement a conversion from Vulkan into a native graphics API (like
At the bottom of the stack sits the drivers.
A driver can control one or more physical devices capable of rendering Vulkan,
implement a conversion from Vulkan into a native graphics API (like
[MoltenVk](https://github.com/KhronosGroup/MoltenVK], or implement a fully
software path that can be executed on a CPU to simulate a Vulkan device (like
[SwiftShader](https://github.com/google/swiftshader) or LavaPipe).
Remember, Vulkan-capable hardware may be graphics-based, compute-based, or
both.
Between the application and the implementations the loader can inject any
number of optional [layers](#layers) that provide special functionality.
Between the application and the drivers, the loader can inject any number of
optional [layers](#layers) that provide special functionality.
The loader is critical to managing the proper dispatching of Vulkan
functions to the appropriate set of layers and implementations.
functions to the appropriate set of layers and drivers.
The Vulkan object model allows the loader to insert layers into a call-chain
so that the layers can process Vulkan functions prior to the implementation
being called.
so that the layers can process Vulkan functions prior to the driver being
called.
This document is intended to provide an overview of the necessary interfaces
between each of these.
@ -81,8 +81,8 @@ between each of these.
#### Goals of the Loader
The loader was designed with the following goals in mind:
1. Support one or more Vulkan-capable implementations on a user's system
without them interfering with one another.
1. Support one or more Vulkan-capable drivers on a user's system without them
interfering with one another.
2. Support Vulkan Layers which are optional modules that can be enabled by an
application, developer, or standard system settings.
3. Keep the overall overhead of the loader to the minimum possible.
@ -92,14 +92,14 @@ application, developer, or standard system settings.
Layers are optional components that augment the Vulkan development environment.
They can intercept, evaluate, and modify existing Vulkan functions on their
way from the application down to the implementations and back up.
way from the application down to the drivers and back up.
Layers are implemented as libraries that can be enabled in different ways
and are loaded during CreateInstance.
Each layer can choose to hook, or intercept, Vulkan functions which in
turn can be ignored, inspected, or augmented.
Any function a layer does not hook is simply skipped for that layer and the
control flow will simply continue on to the next supporting layer or
implementation.
driver.
Because of this, a layer can choose whether to intercept all known Vulkan
functions or only a subset it is interested in.
@ -118,18 +118,16 @@ But when releasing the application, those layers are unnecessary
and thus won't be enabled, increasing the speed of the application.
### Implementations
### Drivers
The library that implements Vulkan, either through supporting a physical
hardware device directly, converting Vulkan commands into native graphics
commands, or simulating Vulkan through software, is considered
"an implementation".
The most common type of implementation is still the Installable Client Driver
(or ICD).
The loader is responsible for discovering available Vulkan implementations on
the system.
Given a list of available implementations, the loader can enumerate all the
available physical devices and provide this information for an application.
commands, or simulating Vulkan through software, is considered "a driver".
The most common type of driver is still the Installable Client Driver (or ICD).
The loader is responsible for discovering available Vulkan drivers on the
system.
Given a list of available drivers, the loader can enumerate all the available
physical devices and provide this information for an application.
#### Installable Client Drivers
@ -137,7 +135,7 @@ available physical devices and provide this information for an application.
Vulkan allows multiple ICDs each supporting one or more devices.
Each of these devices is represented by a Vulkan `VkPhysicalDevice` object.
The loader is responsible for discovering available Vulkan ICDs via the standard
implementation search on the system.
driver search on the system.
### VkConfig
@ -281,7 +279,7 @@ These will be discussed in more detail later.
A Vulkan device (`VkDevice`), on the other-hand, is a logical identifier used
to associate functions with a particular Vulkan physical device
(`VkPhysicalDevice`) through a particular implementation on a user's system.
(`VkPhysicalDevice`) through a particular driver on a user's system.
##### Device Objects
@ -358,7 +356,7 @@ These *trampoline* functions are small, simple functions that jump to the
appropriate dispatch table entry for the object they are given.
Additionally, for functions in the instance call chain, the loader has an
additional function, called a *terminator*, which is called after all enabled
layers to marshall the appropriate information to all available implementations.
layers to marshall the appropriate information to all available drivers.
#### Instance Call Chain Example
@ -368,7 +366,7 @@ For example, the diagram below represents what happens in the call chain for
After initializing the chain, the loader calls into the first layer's
`vkCreateInstance`, which will call the next layer's `vkCreateInstance
before finally terminating in the loader again where it will call
every implementation's `vkCreateInstance`.
every driver's `vkCreateInstance`.
This allows every enabled layer in the chain to set up what it needs based on
the `VkInstanceCreateInfo` structure from the application.
@ -377,7 +375,7 @@ the `VkInstanceCreateInfo` structure from the application.
This also highlights some of the complexity the loader must manage when using
instance call chains.
As shown here, the loader's *terminator* must aggregate information to and from
multiple implementations when they are present.
multiple drivers when they are present.
This implies that the loader has to be aware of any instance-level extensions
which work on a `VkInstance` to aggregate them correctly.
@ -386,8 +384,8 @@ which work on a `VkInstance` to aggregate them correctly.
Device call chains are created in `vkCreateDevice` and are generally simpler
because they deal with only a single device.
This allows for the specific implementation exposing this device to always be
the *terminator* of the chain.
This allows for the specific driver exposing this device to always be the
*terminator* of the chain.
![Loader Device Call Chain](./images/loader_device_chain_loader.png)
<br/>
@ -416,7 +414,7 @@ These behaviors also result in ignoring certain environment variables, such as:
For more information on the affected search paths, refer to
[Layer Discovery](LoaderLayerInterface.md#layer-discovery) and
[Implementation Discovery](LoaderImplementationInterface.md#implementation-discovery).
[Driver Discovery](LoadeDriverInterface.md#driver-discovery).
<br/>
<br/>
@ -439,11 +437,11 @@ directory as this file.
<br/>
## Implementation Interface With the Loader
## Driver Interface With the Loader
The Implementation interface to the Vulkan loader is detailed in the
[LoaderImplementationInterface.md](LoaderImplementationInterface.md) document
found in the same directory as this file.
The Driver interface to the Vulkan loader is detailed in the
[LoadeDriverInterface.md](LoadeDriverInterface.md) document found in the same
directory as this file.
<br/>
<br/>
@ -465,7 +463,7 @@ discovery.
<td><small><i>VK_ICD_FILENAMES</i></small></td>
<td>Force the loader to use the specific ICD JSON files.
The value contains a list of delimited full path listings to
implementation JSON Manifest files.<br/>
driver JSON Manifest files.<br/>
<b>NOTE:</b> If a global path to the JSON file is not used, issues
may be encountered.<br/>
<b>Ignored when running Vulkan application in executing with
@ -522,7 +520,7 @@ discovery.
<td>Disable the filtering out of instance extensions that the loader doesn't
know about.
This will allow applications to enable instance extensions exposed by
implementations but that the loader has no support for.<br/>
drivers but that the loader has no support for.<br/>
<b>NOTE:</b> This may cause the loader or application to crash.</td>
<td><small>export<br/>
&nbsp;&nbsp;VK_LOADER_DISABLE_INST_EXT_FILTER=1<br/><br/>
@ -539,7 +537,7 @@ discovery.
&nbsp;&nbsp;* info (only info)<br/>
&nbsp;&nbsp;* debug (only debug)<br/>
&nbsp;&nbsp;* layer (layer-specific output)<br/>
&nbsp;&nbsp;* implement (implementation-specific output)<br/>
&nbsp;&nbsp;* driver (driver-specific output)<br/>
&nbsp;&nbsp;* all (report out all messages)<br/><br/>
To enable multiple options (outside of "all") like info, warning and
error messages, set the value to "error,warn,info".
@ -590,8 +588,8 @@ discovery.
<td>The call chain of functions followed for device functions.
This call chain for a device function is usually as follows: first the
application calls into a loader trampoline, then the loader trampoline
calls enabled layers, and the final layer calls into the implementation
specific to the device. <br/>
calls enabled layers, and the final layer calls into the driver specific
to the device. <br/>
See the
<a href="#dispatch-tables-and-call-chains">Dispatch Tables and Call
Chains</a> section for more information.
@ -612,8 +610,8 @@ discovery.
</tr>
<tr>
<td>Discovery</td>
<td>The process of the loader searching for implementation and layer files
to set up the internal list of Vulkan objects available.<br/>
<td>The process of the loader searching for driver and layer files to set up
the internal list of Vulkan objects available.<br/>
On <i>Windows/Linux/macOS</i>, the discovery process typically focuses on
searching for Manifest files.<br/>
On <i>Android</i>, the process focuses on searching for library files.
@ -623,11 +621,19 @@ discovery.
<td>Dispatch Table</td>
<td>An array of function pointers (including core and possibly extension
functions) used to step to the next entity in a call chain.
The entity could be the loader, a layer or an implementation.<br/>
The entity could be the loader, a layer or a driver.<br/>
See <a href="#dispatch-tables-and-call-chains">Dispatch Tables and Call
Chains</a> for more information.
</td>
</tr>
<tr>
<td>Driver</td>
<td>The underlying library which provides support for the Vulkan API.
This support can be implemented as either an ICD, API translation
library, or pure software.<br/>
See <a href="#drivers">Drivers</a> section for more information.
</td>
</tr>
<tr>
<td>Extension</td>
<td>A concept of Vulkan used to expand the core Vulkan functionality.
@ -664,7 +670,7 @@ discovery.
<td>Acronym for "Installable Client Driver".
These are drivers that are provided by IHVs to interact with the
hardware they provide. <br/>
These are the most common type of Vulkan implementations. <br/>
These are the most common type of Vulkan drivers. <br/>
See <a href="#installable-client-drivers">Installable Client Drivers</a>
section for more information.
</td>
@ -678,15 +684,6 @@ discovery.
AMD, ARM, Imagination, Intel, Nvidia, Qualcomm
</td>
</tr>
<tr>
<td>Implementation</td>
<td>The underlying library which provides support for the Vulkan API.
This support can be implemented as either an ICD, API translation
library, or pure software.<br/>
See <a href="#implementations">Implementations</a> section for more
information.
</td>
</tr>
<tr>
<td>Instance Call Chain</td>
<td>The call chain of functions followed for instance functions.
@ -694,7 +691,7 @@ discovery.
the application calls into a loader trampoline, then the loader
trampoline calls enabled layers, the final layer calls a loader
terminator, and the loader terminator calls all available
implementations. <br/>
drivers. <br/>
See the <a href="#dispatch-tables-and-call-chains">Dispatch Tables and
Call Chains</a> section for more information.
</td>
@ -717,7 +714,7 @@ discovery.
<td>Layer</td>
<td>Layers are optional components that augment the Vulkan system.
They can intercept, evaluate, and modify existing Vulkan functions on
their way from the application down to the implementation.<br/>
their way from the application down to the driver.<br/>
See the <a href="#layers">Layers</a> section for more information.
</td>
</tr>
@ -736,7 +733,7 @@ discovery.
<tr>
<td>Loader</td>
<td>The middleware program which acts as the mediator between Vulkan
applications, Vulkan layers, and Vulkan implementations.<br/>
applications, Vulkan layers, and Vulkan drivers.<br/>
See <a href="#the-loader">The Loader</a> section for more information.
</td>
</tr>
@ -745,19 +742,19 @@ discovery.
<td>Data files in JSON format used by the desktop loader.
These files contain specific information for either a
<a href="LoaderLayerInterface.md#layer-manifest-file-format">Layer</a>
or an
<a href="LoaderImplementationInterface.md#icd-manifest-file-format">Implementation</a>
or a
<a href="LoaderDriverInterface.md#icd-manifest-file-format">Driver</a>
and define necessary information such as where to find files and default
settings.
</td>
</tr>
<tr>
<td>Terminator Function</td>
<td>The last function in the instance call chain above the implementation
and owned by the loader.
<td>The last function in the instance call chain above the driver and owned
by the loader.
This function is required in the instance call chain because all
instance functionality must be communicated to all implementations
capable of receiving the call. <br/>
instance functionality must be communicated to all drivers capable of
receiving the call. <br/>
See <a href="#dispatch-tables-and-call-chains">Dispatch Tables and Call
Chains</a> for more information.
</td>

View File

@ -261,16 +261,16 @@ variable is not defined:
<td>2</td>
<td>SYSCONFDIR</td>
<td>/etc</td>
<td>Compile-time option set to possible location of implementations
installed from non-Linux-distribution-provided packages.
<td>Compile-time option set to possible location of layers installed from
non-Linux-distribution-provided packages.
</td>
</tr>
<tr>
<td>3</td>
<td>EXTRASYSCONFDIR</td>
<td>/etc</td>
<td>Compile-time option set to possible location of implementations
installed from non-Linux-distribution-provided packages.
<td>Compile-time option set to possible location of layers installed from
non-Linux-distribution-provided packages.
Typically only set if SYSCONFDIR is set to something other than /etc
</td>
</tr>
@ -566,8 +566,7 @@ result in the following behavior:
- If it returned non-NULL, treat it as an unknown logical device command.
- This meant setting up a generic trampoline function that takes in a
VkDevice as the first parameter and adjusting the dispatch table to call the
Implementation/Layers function after getting the dispatch table from the
VkDevice.
Driver/Layer's function after getting the dispatch table from the `VkDevice`.
4. If all the above failed, the loader would return NULL to the application.
This caused problems when a layer attempted to expose new physical device
@ -634,16 +633,15 @@ The new behavior of the loader's `vkGetInstanceProcAddr` with support for the
- If it is, return the function pointer
2. Check if known instance or device extension function:
- If it is, return the function pointer
3. Call the layer/implementation `GetPhysicalDeviceProcAddr`
3. Call the layer/driver `GetPhysicalDeviceProcAddr`
- If it returns non-NULL, return a trampoline to a generic physical device
function, and set up a generic terminator which will pass it to the proper
implementation.
driver.
4. Call down using `GetInstanceProcAddr`
- If it returns non-NULL, treat it as an unknown logical device command.
This means setting up a generic trampoline function that takes in a VkDevice as
This means setting up a generic trampoline function that takes in a `VkDevice` as
the first parameter and adjusting the dispatch table to call the
implementation/layer's function after getting the dispatch table from the
VkDevice.
driver/layer's function after getting the dispatch table from the `VkDevice`.
Then, return the pointer to corresponding trampoline function.
5. Return NULL
@ -673,7 +671,7 @@ corresponding Vulkan function in the next entity.
behavior, then pass it down to the next entity.
* If a layer doesn't pass the information down, undefined behavior may occur.
* This is because the function will not be received by layers further
down the chain, or any implementations.
down the chain, or any drivers.
* One function that **must never call down the chain** is:
* `vkNegotiateLoaderLayerInterfaceVersion`
* Three common functions that **may not call down the chain** are:
@ -720,8 +718,8 @@ non-intercepted) functions.
## Layer Conventions and Rules
A layer, when inserted into an otherwise compliant Vulkan implementation,
<b>must</b> still result in a compliant Vulkan implementation.
A layer, when inserted into an otherwise compliant Vulkan driver, <b>must</b>
still result in a compliant Vulkan driver.
The intention is for layers to have a well-defined baseline behavior.
Therefore, it must follow some conventions and rules defined below.
@ -1167,7 +1165,7 @@ For functions that return object handles, each layer does not touch the value
passed down the call chain.
This is because lower items may need to use the original value.
However, when the value is returned from a lower-level layer (possibly the
implementation), the layer saves the handle and returns its own handle to the
driver), the layer saves the handle and returns its own handle to the
layer above it (possibly the application).
When a layer receives a Vulkan function using something that it previously
returned a handle for, the layer is required to unwrap the handle and pass
@ -1209,8 +1207,8 @@ If a new extension is created which has functions that take `VkImage` objects
as parameters, and if the layer does not support those new functions, an
application that uses both the layer and the new extension will have undefined
behavior when those new functions are called (e.g. the application may crash).
This is because the lower-level layers and implementations won't receive the
handle that they generated.
This is because the lower-level layers and drivers won't receive the handle that
they generated.
Instead, they will receive a handle that is only known by the layer that is
wrapping the object.
@ -1246,13 +1244,13 @@ Remember that loader *trampoline* code normally fills in the dispatch table
pointer in the newly created object.
Thus, the layer must fill in the dispatch table pointer if the loader
*trampoline* will not do so.
Common cases where a layer (or implementation) may create a dispatchable object
without loader *trampoline* code is as follows:
Common cases where a layer (or driver) may create a dispatchable object without
loader *trampoline* code is as follows:
- Layers that wrap dispatchable objects
- Layers which add extensions that create dispatchable objects
- Layers which insert extra Vulkan functions in the stream of functions they
intercept from the application
- Implementations which add extensions that create dispatchable objects
- Drivers which add extensions that create dispatchable objects
The desktop loader provides a callback that can be used for initializing a
dispatchable object.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View File

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1091.6482"
height="317.07022"
viewBox="0 0 1091.6482 317.07022"
id="svg23732"
version="1.1"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="function_device_chain.svg">
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="function_device_chain.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs23734">
<marker
@ -1831,22 +1831,23 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="627.79152"
inkscape:cy="-102.5041"
inkscape:cx="628"
inkscape:cy="-102"
inkscape:document-units="px"
inkscape:current-layer="layer2"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1901"
inkscape:window-height="1181"
inkscape:window-x="292"
inkscape:window-y="250"
inkscape:window-x="750"
inkscape:window-y="222"
inkscape:window-maximized="0"
units="px"
inkscape:document-rotation="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:pagecheckerboard="0" />
<metadata
id="metadata23737">
<rdf:RDF>
@ -1855,7 +1856,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -2363,7 +2364,7 @@
y="808.34442"
x="955.59668"
sodipodi:role="line"
id="tspan25382-1-7">Implementation</tspan></text>
id="tspan25382-1-7">Driver</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

@ -1,20 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1340.6732"
height="623.03601"
viewBox="0 0 1340.6733 623.03601"
id="svg23732"
version="1.1"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="function_instance_chain.svg">
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="function_instance_chain.svg"
inkscape:export-filename="/home/marky/dev/khronos/hub/loader/docs/images/function_instance_chain.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs23734">
<marker
@ -2111,22 +2114,23 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.70710678"
inkscape:cx="662.80579"
inkscape:cy="331.5596"
inkscape:cx="662.55906"
inkscape:cy="330.92597"
inkscape:document-units="px"
inkscape:current-layer="layer2"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="2114"
inkscape:window-height="1181"
inkscape:window-x="750"
inkscape:window-y="277"
inkscape:window-y="222"
inkscape:window-maximized="0"
units="px"
inkscape:document-rotation="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:pagecheckerboard="0" />
<metadata
id="metadata23737">
<rdf:RDF>
@ -2135,7 +2139,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -3095,7 +3099,7 @@
y="950.69391"
x="1208.207"
sodipodi:role="line"
id="tspan25382-1-7-9">Implementation</tspan></text>
id="tspan25382-1-7-9">Driver</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
@ -3268,7 +3272,7 @@
y="646.96521"
x="1208.207"
sodipodi:role="line"
id="tspan25382-1-7-9-2">Implementation</tspan></text>
id="tspan25382-1-7-9-2">Driver</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 148 KiB

View File

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1384.5461"
height="609.22845"
viewBox="0 0 1384.5461 609.22847"
id="svg11653"
version="1.1"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="high_level_loader.svg"
inkscape:export-filename="/home/marky/dev/khronos/Vulkan-Loader/loader/images/high_level_loader.png"
inkscape:export-filename="/home/marky/dev/khronos/hub/loader/docs/images/high_level_loader.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs11655">
<marker
@ -1008,14 +1008,14 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.50000001"
inkscape:cx="1007.0149"
inkscape:cy="495.28207"
inkscape:cx="1008"
inkscape:cy="493.99999"
inkscape:document-units="px"
inkscape:current-layer="layer2"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1941"
inkscape:window-height="1137"
inkscape:window-x="619"
inkscape:window-x="750"
inkscape:window-y="54"
inkscape:window-maximized="0"
showguides="false"
@ -1024,7 +1024,8 @@
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:pagecheckerboard="0" />
<metadata
id="metadata11658">
<rdf:RDF>
@ -1176,15 +1177,15 @@
style="fill:url(#linearGradient1299);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24643;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="708.56763"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="805.53418"
y="1189.4299"
id="text4811"><tspan
sodipodi:role="line"
id="tspan4813"
x="708.56763"
x="805.53418"
y="1189.4299"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,750.41316,1077.1193)"
id="g4455-3-0-2-5-6-7">
@ -1581,14 +1582,14 @@
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="708.56763"
x="764.56763"
y="1189.4299"
id="text4811-2"><tspan
sodipodi:role="line"
id="tspan4813-9"
x="708.56763"
x="764.56763"
y="1189.4299"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,750.41316,1077.1193)"
id="g4455-3-0-2-5-6-7-1">
@ -2535,14 +2536,14 @@
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="708.56763"
x="805.53418"
y="1189.4299"
id="text4811-9"><tspan
sodipodi:role="line"
id="tspan4813-2"
x="708.56763"
x="805.53418"
y="1189.4299"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,750.41316,1077.1193)"
id="g4455-3-0-2-5-6-7-5">

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 164 KiB

View File

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1088.248"
width="1022.3574"
height="110.89859"
viewBox="0 0 1088.248 110.89859"
viewBox="0 0 1022.3574 110.89859"
id="svg16410"
version="1.1"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="loader_device_chain_app.svg">
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="loader_device_chain_app.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs16412">
<marker
@ -379,7 +379,7 @@
y2="1014.3622"
gradientTransform="matrix(1.3793103,0,0,1.4285704,7.2413791,-458.15411)" />
<linearGradient
gradientTransform="matrix(0.55373504,0,0,0.4,728.17828,677.41729)"
gradientTransform="matrix(0.38627411,0,0,0.4,765.01969,677.41729)"
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient4620-0-16-5-1-0"
@ -393,7 +393,7 @@
xlink:href="#Shine-2"
id="linearGradient4815"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9094313,0,0,1.4285715,846.18069,-458.15511)"
gradientTransform="matrix(1.3319798,0,0,1.4285715,847.33573,-458.15511)"
x1="55.75"
y1="994.11218"
x2="55.75"
@ -467,14 +467,14 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="517.74214"
inkscape:cy="-66.604255"
inkscape:cx="399"
inkscape:cy="-67"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:window-width="2271"
inkscape:window-height="1253"
inkscape:window-x="129"
inkscape:window-x="750"
inkscape:window-y="95"
inkscape:window-maximized="0"
units="px"
@ -482,7 +482,8 @@
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:pagecheckerboard="0" />
<metadata
id="metadata16415">
<rdf:RDF>
@ -491,7 +492,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@ -501,13 +501,16 @@
inkscape:label="Background"
transform="translate(3.4650574,6.7620392)">
<rect
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:1.14552;stroke-miterlimit:4;stroke-dasharray:3.43655, 3.43655;stroke-dashoffset:0;stroke-opacity:1"
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:1.1103;stroke-miterlimit:4;stroke-dasharray:3.33089, 3.33089;stroke-dashoffset:0;stroke-opacity:1"
id="rect3742"
width="1088.248"
width="1022.3574"
height="110.89859"
x="-3.4650574"
y="-6.7620392"
ry="5.5910091" />
ry="5.5910091"
inkscape:export-filename="/home/marky/dev/khronos/hub/loader/docs/images/loader_device_chain_app.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
</g>
<g
inkscape:label="Layer 1"
@ -591,7 +594,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
id="polygon13-6" />
<path
style="fill:#ffffff"
@ -640,30 +643,30 @@
y="962.36218"
x="850"
height="80"
width="221.49402"
width="154.50964"
id="rect3336-9-5-9-0-5-3"
style="fill:url(#linearGradient4620-0-16-5-1-0);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.17658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient4620-0-16-5-1-0);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.982694;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="962.36218"
x="850"
height="80"
width="221.49402"
width="154.50964"
id="rect4775"
style="fill:url(#linearGradient4815);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.22252;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient4815);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.02106;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="863"
x="923.96655"
y="1025.8622"
id="text4811"><tspan
sodipodi:role="line"
id="tspan4813"
x="863"
x="923.96655"
y="1025.8622"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,911.7707,910.64132)"
transform="matrix(0.08921554,0,0,0.08921554,875.7707,910.64132)"
id="g4455-3-0-2-5-6-7">
<g
transform="translate(-72.428508,584.97477)"
@ -688,7 +691,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
points="730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 "
id="polygon13-6-7-1-6-4-3" />
<path
style="fill:#ffffff"
@ -785,7 +788,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
id="polygon13-6-0" />
<path
style="fill:#ffffff"
@ -882,7 +885,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
id="polygon13-6-9" />
<path
style="fill:#ffffff"
@ -979,7 +982,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
id="polygon13-6-6" />
<path
style="fill:#ffffff"

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1295.5498"
width="1220.1553"
height="133.5504"
viewBox="0 0 1295.5498 133.5504"
viewBox="0 0 1220.1553 133.5504"
id="svg16410"
version="1.1"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="loader_device_chain_loader.svg">
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="loader_device_chain_loader.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs16412">
<marker
@ -385,7 +385,7 @@
id="stop5705" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.55373504,0,0,0.4,940.17282,-233.06923)"
gradientTransform="matrix(0.37034179,0,0,0.4,980.51933,-233.06923)"
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient4620-0-16-5-1-0-3"
@ -399,7 +399,7 @@
xlink:href="#Shine-2"
id="linearGradient4815-5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9094313,0,0,1.4285715,1058.1752,-1368.6416)"
gradientTransform="matrix(1.2770411,0,0,1.4285715,1059.4401,-1368.6416)"
x1="55.75"
y1="994.11218"
x2="55.75"
@ -413,22 +413,23 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.0606602"
inkscape:cx="638.73554"
inkscape:cy="8.5075681"
inkscape:cx="638.75311"
inkscape:cy="8.4852811"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:window-width="2346"
inkscape:window-height="817"
inkscape:window-x="204"
inkscape:window-y="328"
inkscape:window-x="738"
inkscape:window-y="333"
inkscape:window-maximized="0"
units="px"
inkscape:document-rotation="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:pagecheckerboard="0" />
<metadata
id="metadata16415">
<rdf:RDF>
@ -437,7 +438,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@ -447,42 +447,45 @@
inkscape:label="Background"
transform="translate(0.62160975,-24.977066)">
<rect
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:1.3716;stroke-miterlimit:4;stroke-dasharray:4.11477, 4.11477;stroke-dashoffset:0;stroke-opacity:1"
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:1.33109;stroke-miterlimit:4;stroke-dasharray:3.99325, 3.99325;stroke-dashoffset:0;stroke-opacity:1"
id="rect3742"
width="1295.5498"
width="1220.1553"
height="133.5504"
x="-0.62160975"
y="24.977066"
ry="6.7330122" />
ry="6.7330122"
inkscape:export-filename="/home/marky/dev/khronos/hub/loader/docs/images/loader_device_chain_loader.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<rect
ry="13"
y="51.87566"
x="1061.9945"
height="80"
width="221.49402"
width="148.13672"
id="rect3336-9-5-9-0-5-3-6"
style="fill:url(#linearGradient4620-0-16-5-1-0-3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.17658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient4620-0-16-5-1-0-3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.962214;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="51.87566"
x="1061.9945"
height="80"
width="221.49402"
width="148.13675"
id="rect4775-2"
style="fill:url(#linearGradient4815-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.22252;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient4815-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.999784;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1074.9945"
x="1135.9611"
y="115.37566"
id="text4811-9"><tspan
sodipodi:role="line"
id="tspan4813-1"
x="1074.9945"
x="1135.9611"
y="115.37566"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,1123.7652,0.15479296)"
transform="matrix(0.08921554,0,0,0.08921554,1087.7652,0.15479296)"
id="g4455-3-0-2-5-6-7-2">
<g
transform="translate(-72.428508,584.97477)"
@ -507,7 +510,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6-7-1-6-4-3-0" />
<path
style="fill:#ffffff"
@ -640,7 +643,7 @@
</g>
<polygon
style="fill:#ffffff"
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
id="polygon13-6" />
<path
style="fill:#ffffff"
@ -737,7 +740,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
id="polygon13-6-0" />
<path
style="fill:#ffffff"
@ -834,7 +837,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
id="polygon13-6-9" />
<path
style="fill:#ffffff"
@ -931,7 +934,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
id="polygon13-6-6" />
<path
style="fill:#ffffff"
@ -1033,7 +1036,7 @@
</g>
<polygon
style="fill:#ffffff"
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
id="polygon13-6-3" />
<path
style="fill:#ffffff"

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1496.0494"
width="1418.7369"
height="130.34535"
viewBox="0 0 1496.0494 130.34535"
viewBox="0 0 1418.7369 130.34535"
id="svg16410"
version="1.1"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="loader_device_surface_chain.svg">
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="loader_device_surface_chain.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs16412">
<marker
@ -415,7 +415,7 @@
id="stop5705" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.55373504,0,0,0.4,1138.8651,-232.4172)"
gradientTransform="matrix(0.36274597,0,0,0.4,1180.8827,-232.4172)"
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient4620-0-16-5-1-0-3-2"
@ -429,7 +429,7 @@
xlink:href="#Shine-2"
id="linearGradient4815-5-5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9094313,0,0,1.4285715,1256.8674,-1367.9896)"
gradientTransform="matrix(1.2508484,0,0,1.4285715,1258.1847,-1367.9896)"
x1="55.75"
y1="994.11218"
x2="55.75"
@ -463,22 +463,23 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.0606602"
inkscape:cx="736.93241"
inkscape:cy="120.10226"
inkscape:cx="1013.0483"
inkscape:cy="119.26534"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:window-width="2377"
inkscape:window-height="1034"
inkscape:window-x="183"
inkscape:window-y="402"
inkscape:window-x="750"
inkscape:window-y="369"
inkscape:window-maximized="0"
units="px"
inkscape:document-rotation="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:pagecheckerboard="0" />
<metadata
id="metadata16415">
<rdf:RDF>
@ -487,7 +488,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@ -497,42 +497,45 @@
inkscape:label="Background"
transform="translate(0.62160975,-22.390835)">
<rect
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:1.45612;stroke-miterlimit:4;stroke-dasharray:4.36834, 4.36834;stroke-dashoffset:0;stroke-opacity:1"
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:1.418;stroke-miterlimit:4;stroke-dasharray:4.25397, 4.25397;stroke-dashoffset:0;stroke-opacity:1"
id="rect3742"
width="1496.0494"
width="1418.7369"
height="130.34535"
x="-0.62160975"
y="22.390835"
ry="6.5714278" />
ry="6.5714278"
inkscape:export-filename="/home/marky/dev/khronos/hub/loader/docs/images/loader_device_surface_chain.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<rect
ry="13"
y="52.527683"
x="1260.6868"
height="80"
width="221.49402"
width="145.09839"
id="rect3336-9-5-9-0-5-3-6-2"
style="fill:url(#linearGradient4620-0-16-5-1-0-3-2);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.17658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient4620-0-16-5-1-0-3-2);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.952296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="52.527683"
x="1260.6868"
height="80"
width="221.49402"
width="145.0984"
id="rect4775-2-8"
style="fill:url(#linearGradient4815-5-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.22252;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient4815-5-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.989478;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1273.6868"
x="1328.6533"
y="116.02768"
id="text4811-9-9"><tspan
sodipodi:role="line"
id="tspan4813-1-7"
x="1273.6868"
x="1328.6533"
y="116.02768"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,1322.4574,0.806815)"
transform="matrix(0.08921554,0,0,0.08921554,1280.4574,0.806815)"
id="g4455-3-0-2-5-6-7-2-3">
<g
transform="translate(-72.428508,584.97477)"
@ -557,7 +560,7 @@
</g>
<polygon
style="fill:#ffffff"
points="836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 "
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
id="polygon13-6-7-1-6-4-3-0-1" />
<path
style="fill:#ffffff"
@ -659,7 +662,7 @@
</g>
<polygon
style="fill:#ffffff"
points="836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 "
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
id="polygon13-6-3-2" />
<path
style="fill:#ffffff"
@ -796,7 +799,7 @@
</g>
<polygon
style="fill:#ffffff"
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
points="730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 "
id="polygon13-6" />
<path
style="fill:#ffffff"
@ -893,7 +896,7 @@
</g>
<polygon
style="fill:#ffffff"
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6-0" />
<path
style="fill:#ffffff"
@ -990,7 +993,7 @@
</g>
<polygon
style="fill:#ffffff"
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6-9" />
<path
style="fill:#ffffff"
@ -1087,7 +1090,7 @@
</g>
<polygon
style="fill:#ffffff"
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6-6" />
<path
style="fill:#ffffff"
@ -1189,7 +1192,7 @@
</g>
<polygon
style="fill:#ffffff"
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
points="730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 "
id="polygon13-6-3" />
<path
style="fill:#ffffff"

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1496.0494"
width="1412.4003"
height="288.00507"
viewBox="0 0 1496.0494 288.00507"
viewBox="0 0 1412.4002 288.00507"
id="svg16410"
version="1.1"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="loader_instance_chain.svg">
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="loader_instance_chain.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs16412">
<marker
@ -415,7 +415,7 @@
id="stop5705" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.55373504,0,0,0.4,1138.8651,-322.41721)"
gradientTransform="matrix(0.34414123,0,0,0.4,1184.9757,-322.41721)"
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient4620-0-16-5-1-0-3"
@ -429,51 +429,11 @@
xlink:href="#Shine-2"
id="linearGradient4815-5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9094313,0,0,1.4285715,1256.8674,-1457.9896)"
gradientTransform="matrix(1.1866942,0,0,1.4285715,1258.3131,-1457.9896)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
gradientTransform="matrix(0.55373504,0,0,0.4,1138.8651,-232.4172)"
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient4620-0-16-5-1-0-3-2"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient4815-5-5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9094313,0,0,1.4285715,1256.8674,-1367.9896)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient4815-5-5-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9094313,0,0,1.4285715,1256.8674,-1277.9896)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
gradientTransform="matrix(0.55373504,0,0,0.4,1138.8651,-142.41719)"
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient4620-0-16-5-1-0-3-2-3"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218"
gradientUnits="userSpaceOnUse" />
<linearGradient
gradientTransform="matrix(0.4,0,0,0.53747337,974.68676,-346.34807)"
inkscape:collect="always"
@ -494,6 +454,46 @@
y2="1014.3622"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.3793103,0,0,1.9195479,1059.9281,-1872.1979)" />
<linearGradient
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient12227"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.34414123,0,0,0.4,1184.6228,-233.76587)"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient12229"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1866942,0,0,1.4285715,1257.9602,-1369.3383)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient12336"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.34414123,0,0,0.4,1184.8205,-146.9652)"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient12338"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1866942,0,0,1.4285715,1258.1579,-1282.5376)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
</defs>
<sodipodi:namedview
id="base"
@ -503,22 +503,23 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.0606602"
inkscape:cx="736.93241"
inkscape:cy="199.39397"
inkscape:cx="988.06385"
inkscape:cy="11.313708"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:window-width="2399"
inkscape:window-height="863"
inkscape:window-x="161"
inkscape:window-y="573"
inkscape:window-x="750"
inkscape:window-y="540"
inkscape:window-maximized="0"
units="px"
inkscape:document-rotation="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:pagecheckerboard="0" />
<metadata
id="metadata16415">
<rdf:RDF>
@ -527,7 +528,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -537,42 +537,45 @@
inkscape:label="Background"
transform="translate(0.62160975,56.900871)">
<rect
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:2.16446;stroke-miterlimit:4;stroke-dasharray:6.49335, 6.49335;stroke-dashoffset:0;stroke-opacity:1"
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:2.10308;stroke-miterlimit:4;stroke-dasharray:6.30921, 6.30921;stroke-dashoffset:0;stroke-opacity:1"
id="rect3742"
width="1496.0494"
width="1412.4003"
height="288.00507"
x="-0.62160975"
y="-56.900871"
ry="14.519924" />
ry="14.519924"
inkscape:export-filename="/home/marky/dev/khronos/hub/loader/docs/images/loader_instance_chain.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<rect
ry="13"
y="-37.472317"
x="1260.6868"
height="80"
width="221.49402"
width="137.65649"
id="rect3336-9-5-9-0-5-3-6"
style="fill:url(#linearGradient4620-0-16-5-1-0-3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.17658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient4620-0-16-5-1-0-3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.927553;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="-37.472317"
x="1260.6868"
height="80"
width="221.49402"
width="137.65652"
id="rect4775-2"
style="fill:url(#linearGradient4815-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.22252;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient4815-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.96377;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1273.6868"
x="1330.6533"
y="26.027687"
id="text4811-9"><tspan
sodipodi:role="line"
id="tspan4813-1"
x="1273.6868"
x="1330.6533"
y="26.027687"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,1322.4574,-89.19318)"
transform="matrix(0.08921554,0,0,0.08921554,1278.4574,-89.19318)"
id="g4455-3-0-2-5-6-7-2">
<g
transform="translate(-72.428508,584.97477)"
@ -597,7 +600,7 @@
</g>
<polygon
style="fill:#ffffff"
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6-7-1-6-4-3-0" />
<path
style="fill:#ffffff"
@ -643,58 +646,155 @@
</g>
<rect
ry="13"
y="52.527683"
x="1260.6868"
y="51.17902"
x="1260.3339"
height="80"
width="221.49402"
id="rect3336-9-5-9-0-5-3-6-2"
style="fill:url(#linearGradient4620-0-16-5-1-0-3-2);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.17658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
width="137.65649"
id="rect3336-9-5-9-0-5-3-6-3"
style="fill:url(#linearGradient12227);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.927553;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="52.527683"
x="1260.6868"
y="51.17902"
x="1260.3339"
height="80"
width="221.49402"
id="rect4775-2-8"
style="fill:url(#linearGradient4815-5-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.22252;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
width="137.65652"
id="rect4775-2-5"
style="fill:url(#linearGradient12229);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.96377;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1273.6868"
y="116.02768"
id="text4811-9-9"><tspan
x="1330.3004"
y="114.67902"
id="text4811-9-6"><tspan
sodipodi:role="line"
id="tspan4813-1-7"
x="1273.6868"
y="116.02768"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
id="tspan4813-1-2"
x="1330.3004"
y="114.67902"
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,1322.4574,0.806815)"
id="g4455-3-0-2-5-6-7-2-3">
transform="matrix(0.08921554,0,0,0.08921554,1278.1045,-0.541843)"
id="g4455-3-0-2-5-6-7-2-9">
<g
transform="translate(-72.428508,584.97477)"
id="g3-6-6-8-0-5-8-7-6">
id="g3-6-6-8-0-5-8-7-1">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.1,385.06 h -40.57 c 0,0 0,-98.97 0,-129.66 12.96,7.22 30.09,20.54 40.57,33.32 z"
id="path5-7-2-9-3-6-6-0-1" />
id="path5-7-2-9-3-6-6-0-2" />
<g
id="g7-5-6-7-6-9-8-9-2">
id="g7-5-6-7-6-9-8-9-7">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="M 381.75,385.06 H 331.17 L 265.16,181.03 h 46.01 l 45.44,143.45 h 0.57 l 46,-143.45 h 46.29 z"
id="path9-3-1-3-1-3-8-3-9" />
id="path9-3-1-3-1-3-8-3-0" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 585.51,385.06 h -38.58 v -20.57 h -0.85 c -5.15,8.58 -11.81,14.77 -20.01,18.58 -8.19,3.81 -16.57,5.71 -25.15,5.71 -10.86,0 -19.76,-1.43 -26.72,-4.28 -6.95,-2.85 -12.43,-6.91 -16.43,-12.14 -4.01,-5.24 -6.82,-11.62 -8.44,-19.15 -1.61,-7.52 -2.42,-15.86 -2.42,-25 v -90.88 h 40.58 v 83.44 c 0,12.19 1.91,21.29 5.72,27.29 3.81,6.01 10.57,9 20.29,9 11.05,0 19.05,-3.28 24,-9.86 4.96,-6.58 7.43,-17.39 7.43,-32.44 v -77.44 h 40.59 v 147.74 z"
id="path11-5-8-6-0-7-4-6-3" />
id="path11-5-8-6-0-7-4-6-9" />
</g>
<polygon
style="fill:#ffffff"
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6-7-1-6-4-3-0-3" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 843.62,282.76 c 0.57,-9.52 2.96,-17.43 7.15,-23.72 4.19,-6.29 9.52,-11.33 16,-15.14 6.48,-3.81 13.77,-6.53 21.87,-8.14 8.09,-1.62 16.24,-2.43 24.43,-2.43 7.43,0 14.95,0.52 22.57,1.57 7.63,1.05 14.57,3.1 20.86,6.15 6.28,3.05 11.43,7.29 15.44,12.71 4,5.43 6,12.62 6,21.58 v 76.87 c 0,6.67 0.38,13.06 1.14,19.15 0.76,6.1 2.1,10.67 4.01,13.72 h -41.15 c -0.76,-2.28 -1.38,-4.62 -1.86,-7 -0.47,-2.38 -0.81,-4.8 -1,-7.29 -6.48,6.68 -14.11,11.34 -22.87,14.01 -8.76,2.66 -17.72,4 -26.86,4 -7.05,0 -13.63,-0.86 -19.71,-2.57 -6.1,-1.71 -11.44,-4.38 -16,-8 -4.58,-3.62 -8.16,-8.19 -10.72,-13.72 -2.57,-5.52 -3.86,-12.09 -3.86,-19.71 0,-8.38 1.48,-15.29 4.43,-20.72 2.96,-5.43 6.76,-9.76 11.44,-13 4.67,-3.24 10,-5.67 16,-7.29 6,-1.62 12.05,-2.91 18.14,-3.86 6.1,-0.94 12.1,-1.71 18.01,-2.28 5.91,-0.57 11.14,-1.43 15.71,-2.57 4.58,-1.15 8.19,-2.81 10.86,-5.01 2.67,-2.19 3.91,-5.38 3.72,-9.57 0,-4.38 -0.72,-7.86 -2.15,-10.43 -1.43,-2.57 -3.33,-4.57 -5.71,-6 -2.38,-1.43 -5.14,-2.38 -8.29,-2.86 -3.15,-0.48 -6.52,-0.72 -10.14,-0.72 -8,0 -14.29,1.71 -18.86,5.15 -4.57,3.43 -7.24,9.14 -8,17.15 h -40.6 z m 93.73,30.01 c -1.72,1.53 -3.86,2.71 -6.43,3.57 -2.57,0.87 -5.33,1.58 -8.29,2.15 -2.95,0.57 -6.05,1.05 -9.28,1.43 -3.24,0.38 -6.48,0.85 -9.72,1.43 -3.05,0.57 -6.05,1.34 -9,2.28 -2.95,0.96 -5.53,2.24 -7.72,3.86 -2.19,1.62 -3.95,3.67 -5.29,6.14 -1.33,2.48 -2,5.62 -2,9.43 0,3.62 0.67,6.67 2,9.14 1.34,2.48 3.15,4.43 5.43,5.86 2.29,1.43 4.95,2.43 8,3 3.05,0.57 6.19,0.85 9.43,0.85 8,0 14.2,-1.33 18.58,-3.99 4.38,-2.67 7.63,-5.86 9.71,-9.58 2.09,-3.71 3.39,-7.47 3.85,-11.28 0.48,-3.81 0.71,-6.86 0.72,-9.14 v -15.15 z"
id="path15-2-9-2-3-5-1-6-6" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1004.21,237.33 h 38.59 v 20.57 h 0.85 c 5.14,-8.57 11.81,-14.81 20,-18.71 8.19,-3.91 16.58,-5.86 25.14,-5.86 10.87,0 19.77,1.48 26.73,4.43 6.95,2.96 12.42,7.05 16.43,12.29 4,5.24 6.81,11.62 8.43,19.14 1.62,7.53 2.43,15.86 2.43,25.01 v 90.87 h -40.57 v -83.44 c 0,-12.2 -1.91,-21.29 -5.71,-27.29 -3.82,-6 -10.58,-9 -20.3,-9 -11.05,0 -19.04,3.29 -24,9.86 -4.96,6.56 -7.43,17.38 -7.43,32.43 v 77.44 h -40.58 V 237.33 Z"
id="path17-9-2-9-2-2-4-2-0" />
<g
id="g19-1-0-3-0-5-9-6-6">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 612.37,211.84 v 173.23 h 40.58 V 234.21 c -13.02,-7.98 -26.59,-15.47 -40.58,-22.37 z"
id="path21-2-2-1-6-4-2-1-2" />
</g>
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 198.43,219.21 c 23.52,-68.89 164.15,-94.16 314.15,-56.43 89.97,22.62 163.49,66.5 211.51,109.89 C 702.3,215.12 596.65,133.08 451.18,104.96 286.7,73.16 124.47,101.11 104.39,174.1 89.89,226.83 153.57,288.6 252.05,330.84 207.81,295.02 186.29,254.78 198.43,219.21 Z"
id="path23-7-3-9-1-7-0-8-6" />
<g
id="g25-0-7-4-5-4-6-7-1">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.16,247.62 v -66.59 h -40.59 v 20.22 c 17.31,15.46 31.04,31.2 40.59,46.37 z"
id="path27-9-5-7-5-4-8-9-8" />
</g>
</g>
<g
transform="translate(-72.428508,584.97477)"
id="g29-3-9-8-4-3-9-2-7">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1214.52,363.68 c 0,12.26 -9.63,21.89 -22.15,21.89 -12.4,0 -22.29,-9.63 -22.29,-21.89 0,-12 9.89,-21.63 22.29,-21.63 12.53,0.01 22.15,9.63 22.15,21.63 z m -38.9,0 c 0,9.63 7.12,17.27 16.88,17.27 9.49,0 16.48,-7.65 16.48,-17.14 0,-9.63 -6.99,-17.41 -16.62,-17.41 -9.62,0.01 -16.74,7.79 -16.74,17.28 z m 13.32,11.34 h -5.01 V 353.4 c 1.98,-0.4 4.75,-0.66 8.31,-0.66 4.09,0 5.93,0.66 7.52,1.58 1.19,0.92 2.11,2.64 2.11,4.75 0,2.37 -1.85,4.22 -4.48,5.01 v 0.26 c 2.11,0.79 3.3,2.37 3.96,5.27 0.66,3.3 1.05,4.62 1.58,5.41 h -5.41 c -0.66,-0.79 -1.05,-2.77 -1.71,-5.27 -0.4,-2.37 -1.71,-3.43 -4.48,-3.43 h -2.37 v 8.7 z m 0.13,-12.26 h 2.37 c 2.77,0 5.01,-0.92 5.01,-3.17 0,-1.98 -1.45,-3.3 -4.62,-3.3 -1.32,0 -2.24,0.13 -2.77,0.26 v 6.21 z"
id="path31-6-2-4-7-0-2-0-9" />
</g>
</g>
<rect
ry="13"
y="137.97969"
x="1260.5315"
height="80"
width="137.65649"
id="rect3336-9-5-9-0-5-3-6-7"
style="fill:url(#linearGradient12336);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.927553;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="137.97969"
x="1260.5315"
height="80"
width="137.65652"
id="rect4775-2-59"
style="fill:url(#linearGradient12338);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.96377;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1330.498"
y="201.47971"
id="text4811-9-2"><tspan
sodipodi:role="line"
id="tspan4813-1-28"
x="1330.498"
y="201.47971"
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,1278.3022,86.258831)"
id="g4455-3-0-2-5-6-7-2-97">
<g
transform="translate(-72.428508,584.97477)"
id="g3-6-6-8-0-5-8-7-3">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.1,385.06 h -40.57 c 0,0 0,-98.97 0,-129.66 12.96,7.22 30.09,20.54 40.57,33.32 z"
id="path5-7-2-9-3-6-6-0-6" />
<g
id="g7-5-6-7-6-9-8-9-1">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="M 381.75,385.06 H 331.17 L 265.16,181.03 h 46.01 l 45.44,143.45 h 0.57 l 46,-143.45 h 46.29 z"
id="path9-3-1-3-1-3-8-3-2" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 585.51,385.06 h -38.58 v -20.57 h -0.85 c -5.15,8.58 -11.81,14.77 -20.01,18.58 -8.19,3.81 -16.57,5.71 -25.15,5.71 -10.86,0 -19.76,-1.43 -26.72,-4.28 -6.95,-2.85 -12.43,-6.91 -16.43,-12.14 -4.01,-5.24 -6.82,-11.62 -8.44,-19.15 -1.61,-7.52 -2.42,-15.86 -2.42,-25 v -90.88 h 40.58 v 83.44 c 0,12.19 1.91,21.29 5.72,27.29 3.81,6.01 10.57,9 20.29,9 11.05,0 19.05,-3.28 24,-9.86 4.96,-6.58 7.43,-17.39 7.43,-32.44 v -77.44 h 40.59 v 147.74 z"
id="path11-5-8-6-0-7-4-6-93" />
</g>
<polygon
style="fill:#ffffff"
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6-7-1-6-4-3-0-1" />
<path
style="fill:#ffffff"
@ -738,103 +838,6 @@
id="path31-6-2-4-7-0-2-0-6" />
</g>
</g>
<rect
ry="13"
y="142.52768"
x="1260.6868"
height="80"
width="221.49402"
id="rect3336-9-5-9-0-5-3-6-2-6"
style="fill:url(#linearGradient4620-0-16-5-1-0-3-2-3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.17658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="142.52768"
x="1260.6868"
height="80"
width="221.49402"
id="rect4775-2-8-1"
style="fill:url(#linearGradient4815-5-5-1);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.22252;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1273.6868"
y="206.02766"
id="text4811-9-9-5"><tspan
sodipodi:role="line"
id="tspan4813-1-7-5"
x="1273.6868"
y="206.02766"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,1322.4574,90.806811)"
id="g4455-3-0-2-5-6-7-2-3-4">
<g
transform="translate(-72.428508,584.97477)"
id="g3-6-6-8-0-5-8-7-6-7">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.1,385.06 h -40.57 c 0,0 0,-98.97 0,-129.66 12.96,7.22 30.09,20.54 40.57,33.32 z"
id="path5-7-2-9-3-6-6-0-1-6" />
<g
id="g7-5-6-7-6-9-8-9-2-5">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="M 381.75,385.06 H 331.17 L 265.16,181.03 h 46.01 l 45.44,143.45 h 0.57 l 46,-143.45 h 46.29 z"
id="path9-3-1-3-1-3-8-3-9-6" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 585.51,385.06 h -38.58 v -20.57 h -0.85 c -5.15,8.58 -11.81,14.77 -20.01,18.58 -8.19,3.81 -16.57,5.71 -25.15,5.71 -10.86,0 -19.76,-1.43 -26.72,-4.28 -6.95,-2.85 -12.43,-6.91 -16.43,-12.14 -4.01,-5.24 -6.82,-11.62 -8.44,-19.15 -1.61,-7.52 -2.42,-15.86 -2.42,-25 v -90.88 h 40.58 v 83.44 c 0,12.19 1.91,21.29 5.72,27.29 3.81,6.01 10.57,9 20.29,9 11.05,0 19.05,-3.28 24,-9.86 4.96,-6.58 7.43,-17.39 7.43,-32.44 v -77.44 h 40.59 v 147.74 z"
id="path11-5-8-6-0-7-4-6-3-9" />
</g>
<polygon
style="fill:#ffffff"
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
id="polygon13-6-7-1-6-4-3-0-1-3" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 843.62,282.76 c 0.57,-9.52 2.96,-17.43 7.15,-23.72 4.19,-6.29 9.52,-11.33 16,-15.14 6.48,-3.81 13.77,-6.53 21.87,-8.14 8.09,-1.62 16.24,-2.43 24.43,-2.43 7.43,0 14.95,0.52 22.57,1.57 7.63,1.05 14.57,3.1 20.86,6.15 6.28,3.05 11.43,7.29 15.44,12.71 4,5.43 6,12.62 6,21.58 v 76.87 c 0,6.67 0.38,13.06 1.14,19.15 0.76,6.1 2.1,10.67 4.01,13.72 h -41.15 c -0.76,-2.28 -1.38,-4.62 -1.86,-7 -0.47,-2.38 -0.81,-4.8 -1,-7.29 -6.48,6.68 -14.11,11.34 -22.87,14.01 -8.76,2.66 -17.72,4 -26.86,4 -7.05,0 -13.63,-0.86 -19.71,-2.57 -6.1,-1.71 -11.44,-4.38 -16,-8 -4.58,-3.62 -8.16,-8.19 -10.72,-13.72 -2.57,-5.52 -3.86,-12.09 -3.86,-19.71 0,-8.38 1.48,-15.29 4.43,-20.72 2.96,-5.43 6.76,-9.76 11.44,-13 4.67,-3.24 10,-5.67 16,-7.29 6,-1.62 12.05,-2.91 18.14,-3.86 6.1,-0.94 12.1,-1.71 18.01,-2.28 5.91,-0.57 11.14,-1.43 15.71,-2.57 4.58,-1.15 8.19,-2.81 10.86,-5.01 2.67,-2.19 3.91,-5.38 3.72,-9.57 0,-4.38 -0.72,-7.86 -2.15,-10.43 -1.43,-2.57 -3.33,-4.57 -5.71,-6 -2.38,-1.43 -5.14,-2.38 -8.29,-2.86 -3.15,-0.48 -6.52,-0.72 -10.14,-0.72 -8,0 -14.29,1.71 -18.86,5.15 -4.57,3.43 -7.24,9.14 -8,17.15 h -40.6 z m 93.73,30.01 c -1.72,1.53 -3.86,2.71 -6.43,3.57 -2.57,0.87 -5.33,1.58 -8.29,2.15 -2.95,0.57 -6.05,1.05 -9.28,1.43 -3.24,0.38 -6.48,0.85 -9.72,1.43 -3.05,0.57 -6.05,1.34 -9,2.28 -2.95,0.96 -5.53,2.24 -7.72,3.86 -2.19,1.62 -3.95,3.67 -5.29,6.14 -1.33,2.48 -2,5.62 -2,9.43 0,3.62 0.67,6.67 2,9.14 1.34,2.48 3.15,4.43 5.43,5.86 2.29,1.43 4.95,2.43 8,3 3.05,0.57 6.19,0.85 9.43,0.85 8,0 14.2,-1.33 18.58,-3.99 4.38,-2.67 7.63,-5.86 9.71,-9.58 2.09,-3.71 3.39,-7.47 3.85,-11.28 0.48,-3.81 0.71,-6.86 0.72,-9.14 v -15.15 z"
id="path15-2-9-2-3-5-1-6-9-7" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1004.21,237.33 h 38.59 v 20.57 h 0.85 c 5.14,-8.57 11.81,-14.81 20,-18.71 8.19,-3.91 16.58,-5.86 25.14,-5.86 10.87,0 19.77,1.48 26.73,4.43 6.95,2.96 12.42,7.05 16.43,12.29 4,5.24 6.81,11.62 8.43,19.14 1.62,7.53 2.43,15.86 2.43,25.01 v 90.87 h -40.57 v -83.44 c 0,-12.2 -1.91,-21.29 -5.71,-27.29 -3.82,-6 -10.58,-9 -20.3,-9 -11.05,0 -19.04,3.29 -24,9.86 -4.96,6.56 -7.43,17.38 -7.43,32.43 v 77.44 h -40.58 V 237.33 Z"
id="path17-9-2-9-2-2-4-2-4-4" />
<g
id="g19-1-0-3-0-5-9-6-7-5">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 612.37,211.84 v 173.23 h 40.58 V 234.21 c -13.02,-7.98 -26.59,-15.47 -40.58,-22.37 z"
id="path21-2-2-1-6-4-2-1-8-2" />
</g>
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 198.43,219.21 c 23.52,-68.89 164.15,-94.16 314.15,-56.43 89.97,22.62 163.49,66.5 211.51,109.89 C 702.3,215.12 596.65,133.08 451.18,104.96 286.7,73.16 124.47,101.11 104.39,174.1 89.89,226.83 153.57,288.6 252.05,330.84 207.81,295.02 186.29,254.78 198.43,219.21 Z"
id="path23-7-3-9-1-7-0-8-4-5" />
<g
id="g25-0-7-4-5-4-6-7-5-4">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.16,247.62 v -66.59 h -40.59 v 20.22 c 17.31,15.46 31.04,31.2 40.59,46.37 z"
id="path27-9-5-7-5-4-8-9-0-7" />
</g>
</g>
<g
transform="translate(-72.428508,584.97477)"
id="g29-3-9-8-4-3-9-2-3-4">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1214.52,363.68 c 0,12.26 -9.63,21.89 -22.15,21.89 -12.4,0 -22.29,-9.63 -22.29,-21.89 0,-12 9.89,-21.63 22.29,-21.63 12.53,0.01 22.15,9.63 22.15,21.63 z m -38.9,0 c 0,9.63 7.12,17.27 16.88,17.27 9.49,0 16.48,-7.65 16.48,-17.14 0,-9.63 -6.99,-17.41 -16.62,-17.41 -9.62,0.01 -16.74,7.79 -16.74,17.28 z m 13.32,11.34 h -5.01 V 353.4 c 1.98,-0.4 4.75,-0.66 8.31,-0.66 4.09,0 5.93,0.66 7.52,1.58 1.19,0.92 2.11,2.64 2.11,4.75 0,2.37 -1.85,4.22 -4.48,5.01 v 0.26 c 2.11,0.79 3.3,2.37 3.96,5.27 0.66,3.3 1.05,4.62 1.58,5.41 h -5.41 c -0.66,-0.79 -1.05,-2.77 -1.71,-5.27 -0.4,-2.37 -1.71,-3.43 -4.48,-3.43 h -2.37 v 8.7 z m 0.13,-12.26 h 2.37 c 2.77,0 5.01,-0.92 5.01,-3.17 0,-1.98 -1.45,-3.3 -4.62,-3.3 -1.32,0 -2.24,0.13 -2.77,0.26 v 6.21 z"
id="path31-6-2-4-7-0-2-0-6-4" />
</g>
</g>
<rect
ry="17.467884"
y="36.527683"
@ -893,7 +896,7 @@
</g>
<polygon
style="fill:#ffffff"
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
points="836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 "
id="polygon13-6-3-2" />
<path
style="fill:#ffffff"
@ -943,7 +946,7 @@
id="path1535" />
<path
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1543)"
d="m 1221.9501,86.326981 h 40.1301"
d="m 1221.9501,88.326981 h 40.1301"
id="path1537" />
<path
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1553)"
@ -1038,7 +1041,7 @@
</g>
<polygon
style="fill:#ffffff"
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6" />
<path
style="fill:#ffffff"
@ -1135,7 +1138,7 @@
</g>
<polygon
style="fill:#ffffff"
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
id="polygon13-6-0" />
<path
style="fill:#ffffff"
@ -1232,7 +1235,7 @@
</g>
<polygon
style="fill:#ffffff"
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
id="polygon13-6-9" />
<path
style="fill:#ffffff"
@ -1329,7 +1332,7 @@
</g>
<polygon
style="fill:#ffffff"
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
id="polygon13-6-6" />
<path
style="fill:#ffffff"
@ -1431,7 +1434,7 @@
</g>
<polygon
style="fill:#ffffff"
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6-3" />
<path
style="fill:#ffffff"

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1184.9259"
width="1121.6842"
height="464.72107"
viewBox="0 0 1184.9259 464.72108"
viewBox="0 0 1121.6842 464.72108"
id="svg11653"
version="1.1"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="loader_layer_order.svg"
inkscape:export-filename="/home/marky/dev/khronos/hub/loader/docs/images/loader_layer_order.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs11655">
<marker
@ -452,32 +452,12 @@
x2="401"
y2="909.36218"
gradientUnits="userSpaceOnUse" />
<linearGradient
gradientTransform="matrix(0.5474222,0,0,0.42058992,576.20962,827.22783)"
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient4620-0-16-5-1-0"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient1299"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.8876627,0,0,1.5021058,692.86661,-366.7969)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient1415"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.5474222,0,0,0.42058992,576.20962,827.22783)"
gradientTransform="matrix(0.36369004,0,0,0.42058992,616.63068,827.22783)"
x1="402"
y1="711.36218"
x2="401"
@ -487,7 +467,7 @@
xlink:href="#Shine-2"
id="linearGradient1417"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.8876627,0,0,1.5021058,692.86661,-366.7969)"
gradientTransform="matrix(1.2541037,0,0,1.5021058,694.1339,-366.7969)"
x1="55.75"
y1="994.11218"
x2="55.75"
@ -572,26 +552,6 @@
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient3576"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.5474222,0,0,0.42058992,576.20962,827.22783)"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient3578"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.8876627,0,0,1.5021058,692.86661,-366.7969)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
@ -718,6 +678,46 @@
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient3337"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.36369004,0,0,0.42058992,616.63068,827.22783)"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient3339"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2541037,0,0,1.5021058,694.1339,-366.7969)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient3450"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.36369004,0,0,0.42058992,616.63068,827.22783)"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient3452"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2541037,0,0,1.5021058,694.1339,-366.7969)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
</defs>
<sodipodi:namedview
id="base"
@ -727,14 +727,14 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7071068"
inkscape:cx="606.47927"
inkscape:cy="48.339241"
inkscape:cx="605.9905"
inkscape:cy="48.08326"
inkscape:document-units="px"
inkscape:current-layer="layer3"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:window-width="2086"
inkscape:window-height="1137"
inkscape:window-x="619"
inkscape:window-x="750"
inkscape:window-y="54"
inkscape:window-maximized="0"
showguides="false"
@ -743,7 +743,8 @@
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:pagecheckerboard="0" />
<metadata
id="metadata11658">
<rdf:RDF>
@ -752,7 +753,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -762,15 +762,16 @@
inkscape:label="Background"
transform="translate(11.848806,7.6125679)">
<rect
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:2.4469;stroke-miterlimit:4;stroke-dasharray:7.34068, 7.34068;stroke-dashoffset:0;stroke-opacity:1"
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:2.38071;stroke-miterlimit:4;stroke-dasharray:7.1421, 7.1421;stroke-dashoffset:0;stroke-opacity:1"
id="rect3742"
width="1184.9259"
width="1121.6842"
height="464.72107"
x="-11.848806"
y="-7.6125679"
ry="23.42915"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
inkscape:export-ydpi="96"
inkscape:export-filename="/home/marky/dev/khronos/hub/loader/docs/images/loader_layer_order.png" />
</g>
<g
inkscape:label="Layer 1"
@ -830,7 +831,7 @@
</g>
<polygon
style="fill:#ffffff"
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
points="836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 "
id="polygon13" />
<path
style="fill:#ffffff"
@ -874,107 +875,6 @@
id="path31" />
</g>
</g>
<g
id="g1322"
transform="translate(241.70024,-329.29098)">
<rect
ry="13.669172"
y="1126.8401"
x="696.64246"
height="84.117981"
width="218.96887"
id="rect3336-9-5-9-0-5-3"
style="fill:url(#linearGradient4620-0-16-5-1-0);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.19958;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13.669162"
y="1126.8401"
x="696.64246"
height="84.11792"
width="218.96887"
id="rect4775"
style="fill:url(#linearGradient1299);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24643;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="708.56763"
y="1189.4299"
id="text4811"><tspan
sodipodi:role="line"
id="tspan4813"
x="708.56763"
y="1189.4299"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,750.41316,1077.1193)"
id="g4455-3-0-2-5-6-7">
<g
transform="translate(-72.428508,584.97477)"
id="g3-6-6-8-0-5-8">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.1,385.06 h -40.57 c 0,0 0,-98.97 0,-129.66 12.96,7.22 30.09,20.54 40.57,33.32 z"
id="path5-7-2-9-3-6-6" />
<g
id="g7-5-6-7-6-9-8">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="M 381.75,385.06 H 331.17 L 265.16,181.03 h 46.01 l 45.44,143.45 h 0.57 l 46,-143.45 h 46.29 z"
id="path9-3-1-3-1-3-8" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 585.51,385.06 h -38.58 v -20.57 h -0.85 c -5.15,8.58 -11.81,14.77 -20.01,18.58 -8.19,3.81 -16.57,5.71 -25.15,5.71 -10.86,0 -19.76,-1.43 -26.72,-4.28 -6.95,-2.85 -12.43,-6.91 -16.43,-12.14 -4.01,-5.24 -6.82,-11.62 -8.44,-19.15 -1.61,-7.52 -2.42,-15.86 -2.42,-25 v -90.88 h 40.58 v 83.44 c 0,12.19 1.91,21.29 5.72,27.29 3.81,6.01 10.57,9 20.29,9 11.05,0 19.05,-3.28 24,-9.86 4.96,-6.58 7.43,-17.39 7.43,-32.44 v -77.44 h 40.59 v 147.74 z"
id="path11-5-8-6-0-7-4" />
</g>
<polygon
style="fill:#ffffff"
points="836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 "
id="polygon13-6-7-1-6-4-3" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 843.62,282.76 c 0.57,-9.52 2.96,-17.43 7.15,-23.72 4.19,-6.29 9.52,-11.33 16,-15.14 6.48,-3.81 13.77,-6.53 21.87,-8.14 8.09,-1.62 16.24,-2.43 24.43,-2.43 7.43,0 14.95,0.52 22.57,1.57 7.63,1.05 14.57,3.1 20.86,6.15 6.28,3.05 11.43,7.29 15.44,12.71 4,5.43 6,12.62 6,21.58 v 76.87 c 0,6.67 0.38,13.06 1.14,19.15 0.76,6.1 2.1,10.67 4.01,13.72 h -41.15 c -0.76,-2.28 -1.38,-4.62 -1.86,-7 -0.47,-2.38 -0.81,-4.8 -1,-7.29 -6.48,6.68 -14.11,11.34 -22.87,14.01 -8.76,2.66 -17.72,4 -26.86,4 -7.05,0 -13.63,-0.86 -19.71,-2.57 -6.1,-1.71 -11.44,-4.38 -16,-8 -4.58,-3.62 -8.16,-8.19 -10.72,-13.72 -2.57,-5.52 -3.86,-12.09 -3.86,-19.71 0,-8.38 1.48,-15.29 4.43,-20.72 2.96,-5.43 6.76,-9.76 11.44,-13 4.67,-3.24 10,-5.67 16,-7.29 6,-1.62 12.05,-2.91 18.14,-3.86 6.1,-0.94 12.1,-1.71 18.01,-2.28 5.91,-0.57 11.14,-1.43 15.71,-2.57 4.58,-1.15 8.19,-2.81 10.86,-5.01 2.67,-2.19 3.91,-5.38 3.72,-9.57 0,-4.38 -0.72,-7.86 -2.15,-10.43 -1.43,-2.57 -3.33,-4.57 -5.71,-6 -2.38,-1.43 -5.14,-2.38 -8.29,-2.86 -3.15,-0.48 -6.52,-0.72 -10.14,-0.72 -8,0 -14.29,1.71 -18.86,5.15 -4.57,3.43 -7.24,9.14 -8,17.15 h -40.6 z m 93.73,30.01 c -1.72,1.53 -3.86,2.71 -6.43,3.57 -2.57,0.87 -5.33,1.58 -8.29,2.15 -2.95,0.57 -6.05,1.05 -9.28,1.43 -3.24,0.38 -6.48,0.85 -9.72,1.43 -3.05,0.57 -6.05,1.34 -9,2.28 -2.95,0.96 -5.53,2.24 -7.72,3.86 -2.19,1.62 -3.95,3.67 -5.29,6.14 -1.33,2.48 -2,5.62 -2,9.43 0,3.62 0.67,6.67 2,9.14 1.34,2.48 3.15,4.43 5.43,5.86 2.29,1.43 4.95,2.43 8,3 3.05,0.57 6.19,0.85 9.43,0.85 8,0 14.2,-1.33 18.58,-3.99 4.38,-2.67 7.63,-5.86 9.71,-9.58 2.09,-3.71 3.39,-7.47 3.85,-11.28 0.48,-3.81 0.71,-6.86 0.72,-9.14 v -15.15 z"
id="path15-2-9-2-3-5-1" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1004.21,237.33 h 38.59 v 20.57 h 0.85 c 5.14,-8.57 11.81,-14.81 20,-18.71 8.19,-3.91 16.58,-5.86 25.14,-5.86 10.87,0 19.77,1.48 26.73,4.43 6.95,2.96 12.42,7.05 16.43,12.29 4,5.24 6.81,11.62 8.43,19.14 1.62,7.53 2.43,15.86 2.43,25.01 v 90.87 h -40.57 v -83.44 c 0,-12.2 -1.91,-21.29 -5.71,-27.29 -3.82,-6 -10.58,-9 -20.3,-9 -11.05,0 -19.04,3.29 -24,9.86 -4.96,6.56 -7.43,17.38 -7.43,32.43 v 77.44 h -40.58 V 237.33 Z"
id="path17-9-2-9-2-2-4" />
<g
id="g19-1-0-3-0-5-9">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 612.37,211.84 v 173.23 h 40.58 V 234.21 c -13.02,-7.98 -26.59,-15.47 -40.58,-22.37 z"
id="path21-2-2-1-6-4-2" />
</g>
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 198.43,219.21 c 23.52,-68.89 164.15,-94.16 314.15,-56.43 89.97,22.62 163.49,66.5 211.51,109.89 C 702.3,215.12 596.65,133.08 451.18,104.96 286.7,73.16 124.47,101.11 104.39,174.1 89.89,226.83 153.57,288.6 252.05,330.84 207.81,295.02 186.29,254.78 198.43,219.21 Z"
id="path23-7-3-9-1-7-0" />
<g
id="g25-0-7-4-5-4-6">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.16,247.62 v -66.59 h -40.59 v 20.22 c 17.31,15.46 31.04,31.2 40.59,46.37 z"
id="path27-9-5-7-5-4-8" />
</g>
</g>
<g
transform="translate(-72.428508,584.97477)"
id="g29-3-9-8-4-3-9">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1214.52,363.68 c 0,12.26 -9.63,21.89 -22.15,21.89 -12.4,0 -22.29,-9.63 -22.29,-21.89 0,-12 9.89,-21.63 22.29,-21.63 12.53,0.01 22.15,9.63 22.15,21.63 z m -38.9,0 c 0,9.63 7.12,17.27 16.88,17.27 9.49,0 16.48,-7.65 16.48,-17.14 0,-9.63 -6.99,-17.41 -16.62,-17.41 -9.62,0.01 -16.74,7.79 -16.74,17.28 z m 13.32,11.34 h -5.01 V 353.4 c 1.98,-0.4 4.75,-0.66 8.31,-0.66 4.09,0 5.93,0.66 7.52,1.58 1.19,0.92 2.11,2.64 2.11,4.75 0,2.37 -1.85,4.22 -4.48,5.01 v 0.26 c 2.11,0.79 3.3,2.37 3.96,5.27 0.66,3.3 1.05,4.62 1.58,5.41 h -5.41 c -0.66,-0.79 -1.05,-2.77 -1.71,-5.27 -0.4,-2.37 -1.71,-3.43 -4.48,-3.43 h -2.37 v 8.7 z m 0.13,-12.26 h 2.37 c 2.77,0 5.01,-0.92 5.01,-3.17 0,-1.98 -1.45,-3.3 -4.62,-3.3 -1.32,0 -2.24,0.13 -2.77,0.26 v 6.21 z"
id="path31-6-2-4-7-0-2" />
</g>
</g>
</g>
<g
id="g1322-3"
transform="translate(240.70234,-458.672)">
@ -983,30 +883,30 @@
y="1126.8401"
x="696.64246"
height="84.117981"
width="218.96887"
width="145.47601"
id="rect3336-9-5-9-0-5-3-5"
style="fill:url(#linearGradient1415);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.19958;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient1415);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.977763;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13.669162"
y="1126.8401"
x="696.64246"
height="84.11792"
width="218.96887"
width="145.47603"
id="rect4775-6"
style="fill:url(#linearGradient1417);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24643;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient1417);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01595;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="708.56763"
y="1189.4299"
x="775.53418"
y="1193.4299"
id="text4811-2"><tspan
sodipodi:role="line"
id="tspan4813-9"
x="708.56763"
y="1189.4299"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
x="775.53418"
y="1193.4299"
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,750.41316,1077.1193)"
transform="matrix(0.08921554,0,0,0.08921554,720.41316,1081.1193)"
id="g4455-3-0-2-5-6-7-1">
<g
transform="translate(-72.428508,584.97477)"
@ -1031,7 +931,7 @@
</g>
<polygon
style="fill:#ffffff"
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
points="836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 "
id="polygon13-6-7-1-6-4-3-6" />
<path
style="fill:#ffffff"
@ -1076,6 +976,208 @@
</g>
</g>
</g>
<g
id="g1322-3-3"
transform="translate(240.4948,-342.92913)">
<rect
ry="13.669172"
y="1126.8401"
x="696.64246"
height="84.117981"
width="145.47601"
id="rect3336-9-5-9-0-5-3-5-5"
style="fill:url(#linearGradient3337);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.977763;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13.669162"
y="1126.8401"
x="696.64246"
height="84.11792"
width="145.47603"
id="rect4775-6-6"
style="fill:url(#linearGradient3339);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01595;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="775.53418"
y="1193.4299"
id="text4811-2-2"><tspan
sodipodi:role="line"
id="tspan4813-9-9"
x="775.53418"
y="1193.4299"
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,720.41316,1081.1193)"
id="g4455-3-0-2-5-6-7-1-1">
<g
transform="translate(-72.428508,584.97477)"
id="g3-6-6-8-0-5-8-2-2">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.1,385.06 h -40.57 c 0,0 0,-98.97 0,-129.66 12.96,7.22 30.09,20.54 40.57,33.32 z"
id="path5-7-2-9-3-6-6-7-7" />
<g
id="g7-5-6-7-6-9-8-0-0">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="M 381.75,385.06 H 331.17 L 265.16,181.03 h 46.01 l 45.44,143.45 h 0.57 l 46,-143.45 h 46.29 z"
id="path9-3-1-3-1-3-8-9-9" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 585.51,385.06 h -38.58 v -20.57 h -0.85 c -5.15,8.58 -11.81,14.77 -20.01,18.58 -8.19,3.81 -16.57,5.71 -25.15,5.71 -10.86,0 -19.76,-1.43 -26.72,-4.28 -6.95,-2.85 -12.43,-6.91 -16.43,-12.14 -4.01,-5.24 -6.82,-11.62 -8.44,-19.15 -1.61,-7.52 -2.42,-15.86 -2.42,-25 v -90.88 h 40.58 v 83.44 c 0,12.19 1.91,21.29 5.72,27.29 3.81,6.01 10.57,9 20.29,9 11.05,0 19.05,-3.28 24,-9.86 4.96,-6.58 7.43,-17.39 7.43,-32.44 v -77.44 h 40.59 v 147.74 z"
id="path11-5-8-6-0-7-4-3-3" />
</g>
<polygon
style="fill:#ffffff"
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
id="polygon13-6-7-1-6-4-3-6-6" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 843.62,282.76 c 0.57,-9.52 2.96,-17.43 7.15,-23.72 4.19,-6.29 9.52,-11.33 16,-15.14 6.48,-3.81 13.77,-6.53 21.87,-8.14 8.09,-1.62 16.24,-2.43 24.43,-2.43 7.43,0 14.95,0.52 22.57,1.57 7.63,1.05 14.57,3.1 20.86,6.15 6.28,3.05 11.43,7.29 15.44,12.71 4,5.43 6,12.62 6,21.58 v 76.87 c 0,6.67 0.38,13.06 1.14,19.15 0.76,6.1 2.1,10.67 4.01,13.72 h -41.15 c -0.76,-2.28 -1.38,-4.62 -1.86,-7 -0.47,-2.38 -0.81,-4.8 -1,-7.29 -6.48,6.68 -14.11,11.34 -22.87,14.01 -8.76,2.66 -17.72,4 -26.86,4 -7.05,0 -13.63,-0.86 -19.71,-2.57 -6.1,-1.71 -11.44,-4.38 -16,-8 -4.58,-3.62 -8.16,-8.19 -10.72,-13.72 -2.57,-5.52 -3.86,-12.09 -3.86,-19.71 0,-8.38 1.48,-15.29 4.43,-20.72 2.96,-5.43 6.76,-9.76 11.44,-13 4.67,-3.24 10,-5.67 16,-7.29 6,-1.62 12.05,-2.91 18.14,-3.86 6.1,-0.94 12.1,-1.71 18.01,-2.28 5.91,-0.57 11.14,-1.43 15.71,-2.57 4.58,-1.15 8.19,-2.81 10.86,-5.01 2.67,-2.19 3.91,-5.38 3.72,-9.57 0,-4.38 -0.72,-7.86 -2.15,-10.43 -1.43,-2.57 -3.33,-4.57 -5.71,-6 -2.38,-1.43 -5.14,-2.38 -8.29,-2.86 -3.15,-0.48 -6.52,-0.72 -10.14,-0.72 -8,0 -14.29,1.71 -18.86,5.15 -4.57,3.43 -7.24,9.14 -8,17.15 h -40.6 z m 93.73,30.01 c -1.72,1.53 -3.86,2.71 -6.43,3.57 -2.57,0.87 -5.33,1.58 -8.29,2.15 -2.95,0.57 -6.05,1.05 -9.28,1.43 -3.24,0.38 -6.48,0.85 -9.72,1.43 -3.05,0.57 -6.05,1.34 -9,2.28 -2.95,0.96 -5.53,2.24 -7.72,3.86 -2.19,1.62 -3.95,3.67 -5.29,6.14 -1.33,2.48 -2,5.62 -2,9.43 0,3.62 0.67,6.67 2,9.14 1.34,2.48 3.15,4.43 5.43,5.86 2.29,1.43 4.95,2.43 8,3 3.05,0.57 6.19,0.85 9.43,0.85 8,0 14.2,-1.33 18.58,-3.99 4.38,-2.67 7.63,-5.86 9.71,-9.58 2.09,-3.71 3.39,-7.47 3.85,-11.28 0.48,-3.81 0.71,-6.86 0.72,-9.14 v -15.15 z"
id="path15-2-9-2-3-5-1-0-0" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1004.21,237.33 h 38.59 v 20.57 h 0.85 c 5.14,-8.57 11.81,-14.81 20,-18.71 8.19,-3.91 16.58,-5.86 25.14,-5.86 10.87,0 19.77,1.48 26.73,4.43 6.95,2.96 12.42,7.05 16.43,12.29 4,5.24 6.81,11.62 8.43,19.14 1.62,7.53 2.43,15.86 2.43,25.01 v 90.87 h -40.57 v -83.44 c 0,-12.2 -1.91,-21.29 -5.71,-27.29 -3.82,-6 -10.58,-9 -20.3,-9 -11.05,0 -19.04,3.29 -24,9.86 -4.96,6.56 -7.43,17.38 -7.43,32.43 v 77.44 h -40.58 V 237.33 Z"
id="path17-9-2-9-2-2-4-6-6" />
<g
id="g19-1-0-3-0-5-9-2-2">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 612.37,211.84 v 173.23 h 40.58 V 234.21 c -13.02,-7.98 -26.59,-15.47 -40.58,-22.37 z"
id="path21-2-2-1-6-4-2-6-6" />
</g>
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 198.43,219.21 c 23.52,-68.89 164.15,-94.16 314.15,-56.43 89.97,22.62 163.49,66.5 211.51,109.89 C 702.3,215.12 596.65,133.08 451.18,104.96 286.7,73.16 124.47,101.11 104.39,174.1 89.89,226.83 153.57,288.6 252.05,330.84 207.81,295.02 186.29,254.78 198.43,219.21 Z"
id="path23-7-3-9-1-7-0-1-1" />
<g
id="g25-0-7-4-5-4-6-8-8">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.16,247.62 v -66.59 h -40.59 v 20.22 c 17.31,15.46 31.04,31.2 40.59,46.37 z"
id="path27-9-5-7-5-4-8-7-7" />
</g>
</g>
<g
transform="translate(-72.428508,584.97477)"
id="g29-3-9-8-4-3-9-9-9">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1214.52,363.68 c 0,12.26 -9.63,21.89 -22.15,21.89 -12.4,0 -22.29,-9.63 -22.29,-21.89 0,-12 9.89,-21.63 22.29,-21.63 12.53,0.01 22.15,9.63 22.15,21.63 z m -38.9,0 c 0,9.63 7.12,17.27 16.88,17.27 9.49,0 16.48,-7.65 16.48,-17.14 0,-9.63 -6.99,-17.41 -16.62,-17.41 -9.62,0.01 -16.74,7.79 -16.74,17.28 z m 13.32,11.34 h -5.01 V 353.4 c 1.98,-0.4 4.75,-0.66 8.31,-0.66 4.09,0 5.93,0.66 7.52,1.58 1.19,0.92 2.11,2.64 2.11,4.75 0,2.37 -1.85,4.22 -4.48,5.01 v 0.26 c 2.11,0.79 3.3,2.37 3.96,5.27 0.66,3.3 1.05,4.62 1.58,5.41 h -5.41 c -0.66,-0.79 -1.05,-2.77 -1.71,-5.27 -0.4,-2.37 -1.71,-3.43 -4.48,-3.43 h -2.37 v 8.7 z m 0.13,-12.26 h 2.37 c 2.77,0 5.01,-0.92 5.01,-3.17 0,-1.98 -1.45,-3.3 -4.62,-3.3 -1.32,0 -2.24,0.13 -2.77,0.26 v 6.21 z"
id="path31-6-2-4-7-0-2-2-2" />
</g>
</g>
</g>
<g
id="g1322-3-5"
transform="translate(240.4948,-230.92913)">
<rect
ry="13.669172"
y="1126.8401"
x="696.64246"
height="84.117981"
width="145.47601"
id="rect3336-9-5-9-0-5-3-5-9"
style="fill:url(#linearGradient3450);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.977763;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13.669162"
y="1126.8401"
x="696.64246"
height="84.11792"
width="145.47603"
id="rect4775-6-2"
style="fill:url(#linearGradient3452);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01595;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="775.53418"
y="1193.4299"
id="text4811-2-28"><tspan
sodipodi:role="line"
id="tspan4813-9-97"
x="775.53418"
y="1193.4299"
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,720.41316,1081.1193)"
id="g4455-3-0-2-5-6-7-1-3">
<g
transform="translate(-72.428508,584.97477)"
id="g3-6-6-8-0-5-8-2-6">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.1,385.06 h -40.57 c 0,0 0,-98.97 0,-129.66 12.96,7.22 30.09,20.54 40.57,33.32 z"
id="path5-7-2-9-3-6-6-7-1" />
<g
id="g7-5-6-7-6-9-8-0-2">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="M 381.75,385.06 H 331.17 L 265.16,181.03 h 46.01 l 45.44,143.45 h 0.57 l 46,-143.45 h 46.29 z"
id="path9-3-1-3-1-3-8-9-93" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 585.51,385.06 h -38.58 v -20.57 h -0.85 c -5.15,8.58 -11.81,14.77 -20.01,18.58 -8.19,3.81 -16.57,5.71 -25.15,5.71 -10.86,0 -19.76,-1.43 -26.72,-4.28 -6.95,-2.85 -12.43,-6.91 -16.43,-12.14 -4.01,-5.24 -6.82,-11.62 -8.44,-19.15 -1.61,-7.52 -2.42,-15.86 -2.42,-25 v -90.88 h 40.58 v 83.44 c 0,12.19 1.91,21.29 5.72,27.29 3.81,6.01 10.57,9 20.29,9 11.05,0 19.05,-3.28 24,-9.86 4.96,-6.58 7.43,-17.39 7.43,-32.44 v -77.44 h 40.59 v 147.74 z"
id="path11-5-8-6-0-7-4-3-1" />
</g>
<polygon
style="fill:#ffffff"
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
id="polygon13-6-7-1-6-4-3-6-9" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 843.62,282.76 c 0.57,-9.52 2.96,-17.43 7.15,-23.72 4.19,-6.29 9.52,-11.33 16,-15.14 6.48,-3.81 13.77,-6.53 21.87,-8.14 8.09,-1.62 16.24,-2.43 24.43,-2.43 7.43,0 14.95,0.52 22.57,1.57 7.63,1.05 14.57,3.1 20.86,6.15 6.28,3.05 11.43,7.29 15.44,12.71 4,5.43 6,12.62 6,21.58 v 76.87 c 0,6.67 0.38,13.06 1.14,19.15 0.76,6.1 2.1,10.67 4.01,13.72 h -41.15 c -0.76,-2.28 -1.38,-4.62 -1.86,-7 -0.47,-2.38 -0.81,-4.8 -1,-7.29 -6.48,6.68 -14.11,11.34 -22.87,14.01 -8.76,2.66 -17.72,4 -26.86,4 -7.05,0 -13.63,-0.86 -19.71,-2.57 -6.1,-1.71 -11.44,-4.38 -16,-8 -4.58,-3.62 -8.16,-8.19 -10.72,-13.72 -2.57,-5.52 -3.86,-12.09 -3.86,-19.71 0,-8.38 1.48,-15.29 4.43,-20.72 2.96,-5.43 6.76,-9.76 11.44,-13 4.67,-3.24 10,-5.67 16,-7.29 6,-1.62 12.05,-2.91 18.14,-3.86 6.1,-0.94 12.1,-1.71 18.01,-2.28 5.91,-0.57 11.14,-1.43 15.71,-2.57 4.58,-1.15 8.19,-2.81 10.86,-5.01 2.67,-2.19 3.91,-5.38 3.72,-9.57 0,-4.38 -0.72,-7.86 -2.15,-10.43 -1.43,-2.57 -3.33,-4.57 -5.71,-6 -2.38,-1.43 -5.14,-2.38 -8.29,-2.86 -3.15,-0.48 -6.52,-0.72 -10.14,-0.72 -8,0 -14.29,1.71 -18.86,5.15 -4.57,3.43 -7.24,9.14 -8,17.15 h -40.6 z m 93.73,30.01 c -1.72,1.53 -3.86,2.71 -6.43,3.57 -2.57,0.87 -5.33,1.58 -8.29,2.15 -2.95,0.57 -6.05,1.05 -9.28,1.43 -3.24,0.38 -6.48,0.85 -9.72,1.43 -3.05,0.57 -6.05,1.34 -9,2.28 -2.95,0.96 -5.53,2.24 -7.72,3.86 -2.19,1.62 -3.95,3.67 -5.29,6.14 -1.33,2.48 -2,5.62 -2,9.43 0,3.62 0.67,6.67 2,9.14 1.34,2.48 3.15,4.43 5.43,5.86 2.29,1.43 4.95,2.43 8,3 3.05,0.57 6.19,0.85 9.43,0.85 8,0 14.2,-1.33 18.58,-3.99 4.38,-2.67 7.63,-5.86 9.71,-9.58 2.09,-3.71 3.39,-7.47 3.85,-11.28 0.48,-3.81 0.71,-6.86 0.72,-9.14 v -15.15 z"
id="path15-2-9-2-3-5-1-0-4" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1004.21,237.33 h 38.59 v 20.57 h 0.85 c 5.14,-8.57 11.81,-14.81 20,-18.71 8.19,-3.91 16.58,-5.86 25.14,-5.86 10.87,0 19.77,1.48 26.73,4.43 6.95,2.96 12.42,7.05 16.43,12.29 4,5.24 6.81,11.62 8.43,19.14 1.62,7.53 2.43,15.86 2.43,25.01 v 90.87 h -40.57 v -83.44 c 0,-12.2 -1.91,-21.29 -5.71,-27.29 -3.82,-6 -10.58,-9 -20.3,-9 -11.05,0 -19.04,3.29 -24,9.86 -4.96,6.56 -7.43,17.38 -7.43,32.43 v 77.44 h -40.58 V 237.33 Z"
id="path17-9-2-9-2-2-4-6-7" />
<g
id="g19-1-0-3-0-5-9-2-8">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 612.37,211.84 v 173.23 h 40.58 V 234.21 c -13.02,-7.98 -26.59,-15.47 -40.58,-22.37 z"
id="path21-2-2-1-6-4-2-6-4" />
</g>
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 198.43,219.21 c 23.52,-68.89 164.15,-94.16 314.15,-56.43 89.97,22.62 163.49,66.5 211.51,109.89 C 702.3,215.12 596.65,133.08 451.18,104.96 286.7,73.16 124.47,101.11 104.39,174.1 89.89,226.83 153.57,288.6 252.05,330.84 207.81,295.02 186.29,254.78 198.43,219.21 Z"
id="path23-7-3-9-1-7-0-1-5" />
<g
id="g25-0-7-4-5-4-6-8-0">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.16,247.62 v -66.59 h -40.59 v 20.22 c 17.31,15.46 31.04,31.2 40.59,46.37 z"
id="path27-9-5-7-5-4-8-7-3" />
</g>
</g>
<g
transform="translate(-72.428508,584.97477)"
id="g29-3-9-8-4-3-9-9-6">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1214.52,363.68 c 0,12.26 -9.63,21.89 -22.15,21.89 -12.4,0 -22.29,-9.63 -22.29,-21.89 0,-12 9.89,-21.63 22.29,-21.63 12.53,0.01 22.15,9.63 22.15,21.63 z m -38.9,0 c 0,9.63 7.12,17.27 16.88,17.27 9.49,0 16.48,-7.65 16.48,-17.14 0,-9.63 -6.99,-17.41 -16.62,-17.41 -9.62,0.01 -16.74,7.79 -16.74,17.28 z m 13.32,11.34 h -5.01 V 353.4 c 1.98,-0.4 4.75,-0.66 8.31,-0.66 4.09,0 5.93,0.66 7.52,1.58 1.19,0.92 2.11,2.64 2.11,4.75 0,2.37 -1.85,4.22 -4.48,5.01 v 0.26 c 2.11,0.79 3.3,2.37 3.96,5.27 0.66,3.3 1.05,4.62 1.58,5.41 h -5.41 c -0.66,-0.79 -1.05,-2.77 -1.71,-5.27 -0.4,-2.37 -1.71,-3.43 -4.48,-3.43 h -2.37 v 8.7 z m 0.13,-12.26 h 2.37 c 2.77,0 5.01,-0.92 5.01,-3.17 0,-1.98 -1.45,-3.3 -4.62,-3.3 -1.32,0 -2.24,0.13 -2.77,0.26 v 6.21 z"
id="path31-6-2-4-7-0-2-2-1" />
</g>
</g>
</g>
<g
id="g1241"
transform="translate(134.15673,-76.742015)">
@ -1147,7 +1249,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 "
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
id="polygon13-6-7-1-6-4-7" />
<path
style="fill:#ffffff"
@ -1263,7 +1365,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 "
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
id="polygon13-6-7-1-6-6-7" />
<path
style="fill:#ffffff"
@ -1366,7 +1468,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
id="polygon13-6-7-1-6-68-5" />
<path
style="fill:#ffffff"
@ -1466,7 +1568,7 @@
</g>
<polygon
style="fill:#ffffff"
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6" />
<path
style="fill:#ffffff"
@ -1566,7 +1668,7 @@
</g>
<polygon
style="fill:#ffffff"
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
points="774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 "
id="polygon13-6-7" />
<path
style="fill:#ffffff"
@ -1611,107 +1713,6 @@
</g>
</g>
</g>
<g
id="g1322-30"
transform="translate(240.92707,-218.96562)">
<rect
ry="13.669172"
y="1126.8401"
x="696.64246"
height="84.117981"
width="218.96887"
id="rect3336-9-5-9-0-5-3-3"
style="fill:url(#linearGradient3576);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.19958;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13.669162"
y="1126.8401"
x="696.64246"
height="84.11792"
width="218.96887"
id="rect4775-0"
style="fill:url(#linearGradient3578);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24643;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="708.56763"
y="1189.4299"
id="text4811-9"><tspan
sodipodi:role="line"
id="tspan4813-2"
x="708.56763"
y="1189.4299"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,750.41316,1077.1193)"
id="g4455-3-0-2-5-6-7-5">
<g
transform="translate(-72.428508,584.97477)"
id="g3-6-6-8-0-5-8-4">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.1,385.06 h -40.57 c 0,0 0,-98.97 0,-129.66 12.96,7.22 30.09,20.54 40.57,33.32 z"
id="path5-7-2-9-3-6-6-0" />
<g
id="g7-5-6-7-6-9-8-5">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="M 381.75,385.06 H 331.17 L 265.16,181.03 h 46.01 l 45.44,143.45 h 0.57 l 46,-143.45 h 46.29 z"
id="path9-3-1-3-1-3-8-94" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 585.51,385.06 h -38.58 v -20.57 h -0.85 c -5.15,8.58 -11.81,14.77 -20.01,18.58 -8.19,3.81 -16.57,5.71 -25.15,5.71 -10.86,0 -19.76,-1.43 -26.72,-4.28 -6.95,-2.85 -12.43,-6.91 -16.43,-12.14 -4.01,-5.24 -6.82,-11.62 -8.44,-19.15 -1.61,-7.52 -2.42,-15.86 -2.42,-25 v -90.88 h 40.58 v 83.44 c 0,12.19 1.91,21.29 5.72,27.29 3.81,6.01 10.57,9 20.29,9 11.05,0 19.05,-3.28 24,-9.86 4.96,-6.58 7.43,-17.39 7.43,-32.44 v -77.44 h 40.59 v 147.74 z"
id="path11-5-8-6-0-7-4-6" />
</g>
<polygon
style="fill:#ffffff"
points="781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 "
id="polygon13-6-7-1-6-4-3-9" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 843.62,282.76 c 0.57,-9.52 2.96,-17.43 7.15,-23.72 4.19,-6.29 9.52,-11.33 16,-15.14 6.48,-3.81 13.77,-6.53 21.87,-8.14 8.09,-1.62 16.24,-2.43 24.43,-2.43 7.43,0 14.95,0.52 22.57,1.57 7.63,1.05 14.57,3.1 20.86,6.15 6.28,3.05 11.43,7.29 15.44,12.71 4,5.43 6,12.62 6,21.58 v 76.87 c 0,6.67 0.38,13.06 1.14,19.15 0.76,6.1 2.1,10.67 4.01,13.72 h -41.15 c -0.76,-2.28 -1.38,-4.62 -1.86,-7 -0.47,-2.38 -0.81,-4.8 -1,-7.29 -6.48,6.68 -14.11,11.34 -22.87,14.01 -8.76,2.66 -17.72,4 -26.86,4 -7.05,0 -13.63,-0.86 -19.71,-2.57 -6.1,-1.71 -11.44,-4.38 -16,-8 -4.58,-3.62 -8.16,-8.19 -10.72,-13.72 -2.57,-5.52 -3.86,-12.09 -3.86,-19.71 0,-8.38 1.48,-15.29 4.43,-20.72 2.96,-5.43 6.76,-9.76 11.44,-13 4.67,-3.24 10,-5.67 16,-7.29 6,-1.62 12.05,-2.91 18.14,-3.86 6.1,-0.94 12.1,-1.71 18.01,-2.28 5.91,-0.57 11.14,-1.43 15.71,-2.57 4.58,-1.15 8.19,-2.81 10.86,-5.01 2.67,-2.19 3.91,-5.38 3.72,-9.57 0,-4.38 -0.72,-7.86 -2.15,-10.43 -1.43,-2.57 -3.33,-4.57 -5.71,-6 -2.38,-1.43 -5.14,-2.38 -8.29,-2.86 -3.15,-0.48 -6.52,-0.72 -10.14,-0.72 -8,0 -14.29,1.71 -18.86,5.15 -4.57,3.43 -7.24,9.14 -8,17.15 h -40.6 z m 93.73,30.01 c -1.72,1.53 -3.86,2.71 -6.43,3.57 -2.57,0.87 -5.33,1.58 -8.29,2.15 -2.95,0.57 -6.05,1.05 -9.28,1.43 -3.24,0.38 -6.48,0.85 -9.72,1.43 -3.05,0.57 -6.05,1.34 -9,2.28 -2.95,0.96 -5.53,2.24 -7.72,3.86 -2.19,1.62 -3.95,3.67 -5.29,6.14 -1.33,2.48 -2,5.62 -2,9.43 0,3.62 0.67,6.67 2,9.14 1.34,2.48 3.15,4.43 5.43,5.86 2.29,1.43 4.95,2.43 8,3 3.05,0.57 6.19,0.85 9.43,0.85 8,0 14.2,-1.33 18.58,-3.99 4.38,-2.67 7.63,-5.86 9.71,-9.58 2.09,-3.71 3.39,-7.47 3.85,-11.28 0.48,-3.81 0.71,-6.86 0.72,-9.14 v -15.15 z"
id="path15-2-9-2-3-5-1-2" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1004.21,237.33 h 38.59 v 20.57 h 0.85 c 5.14,-8.57 11.81,-14.81 20,-18.71 8.19,-3.91 16.58,-5.86 25.14,-5.86 10.87,0 19.77,1.48 26.73,4.43 6.95,2.96 12.42,7.05 16.43,12.29 4,5.24 6.81,11.62 8.43,19.14 1.62,7.53 2.43,15.86 2.43,25.01 v 90.87 h -40.57 v -83.44 c 0,-12.2 -1.91,-21.29 -5.71,-27.29 -3.82,-6 -10.58,-9 -20.3,-9 -11.05,0 -19.04,3.29 -24,9.86 -4.96,6.56 -7.43,17.38 -7.43,32.43 v 77.44 h -40.58 V 237.33 Z"
id="path17-9-2-9-2-2-4-2" />
<g
id="g19-1-0-3-0-5-9-4">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 612.37,211.84 v 173.23 h 40.58 V 234.21 c -13.02,-7.98 -26.59,-15.47 -40.58,-22.37 z"
id="path21-2-2-1-6-4-2-7" />
</g>
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 198.43,219.21 c 23.52,-68.89 164.15,-94.16 314.15,-56.43 89.97,22.62 163.49,66.5 211.51,109.89 C 702.3,215.12 596.65,133.08 451.18,104.96 286.7,73.16 124.47,101.11 104.39,174.1 89.89,226.83 153.57,288.6 252.05,330.84 207.81,295.02 186.29,254.78 198.43,219.21 Z"
id="path23-7-3-9-1-7-0-7" />
<g
id="g25-0-7-4-5-4-6-5">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.16,247.62 v -66.59 h -40.59 v 20.22 c 17.31,15.46 31.04,31.2 40.59,46.37 z"
id="path27-9-5-7-5-4-8-4" />
</g>
</g>
<g
transform="translate(-72.428508,584.97477)"
id="g29-3-9-8-4-3-9-8">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1214.52,363.68 c 0,12.26 -9.63,21.89 -22.15,21.89 -12.4,0 -22.29,-9.63 -22.29,-21.89 0,-12 9.89,-21.63 22.29,-21.63 12.53,0.01 22.15,9.63 22.15,21.63 z m -38.9,0 c 0,9.63 7.12,17.27 16.88,17.27 9.49,0 16.48,-7.65 16.48,-17.14 0,-9.63 -6.99,-17.41 -16.62,-17.41 -9.62,0.01 -16.74,7.79 -16.74,17.28 z m 13.32,11.34 h -5.01 V 353.4 c 1.98,-0.4 4.75,-0.66 8.31,-0.66 4.09,0 5.93,0.66 7.52,1.58 1.19,0.92 2.11,2.64 2.11,4.75 0,2.37 -1.85,4.22 -4.48,5.01 v 0.26 c 2.11,0.79 3.3,2.37 3.96,5.27 0.66,3.3 1.05,4.62 1.58,5.41 h -5.41 c -0.66,-0.79 -1.05,-2.77 -1.71,-5.27 -0.4,-2.37 -1.71,-3.43 -4.48,-3.43 h -2.37 v 8.7 z m 0.13,-12.26 h 2.37 c 2.77,0 5.01,-0.92 5.01,-3.17 0,-1.98 -1.45,-3.3 -4.62,-3.3 -1.32,0 -2.24,0.13 -2.77,0.26 v 6.21 z"
id="path31-6-2-4-7-0-2-1" />
</g>
</g>
</g>
</g>
<g
inkscape:groupmode="layer"

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View File

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1704.0886"
width="1640.5771"
height="277.24231"
viewBox="0 0 1704.0886 277.24231"
viewBox="0 0 1640.5771 277.24231"
id="svg16410"
version="1.1"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="loader_layer_order_calls.svg"
inkscape:export-filename="/home/marky/dev/khronos/Vulkan-Loader/loader/images/loader_layer_order_calls.png"
inkscape:export-filename="/home/marky/dev/khronos/hub/loader/docs/images/loader_layer_order_calls.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs16412">
<marker
@ -418,7 +418,7 @@
id="stop5705" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.55373504,0,0,0.4,1352.8736,-322.41721)"
gradientTransform="matrix(0.36535919,0,0,0.4,1396.3162,-322.41721)"
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient4620-0-16-5-1-0-3"
@ -432,51 +432,11 @@
xlink:href="#Shine-2"
id="linearGradient4815-5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9094313,0,0,1.4285715,1470.8759,-1457.9896)"
gradientTransform="matrix(1.2598591,0,0,1.4285715,1474.1752,-1457.9896)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
gradientTransform="matrix(0.55373504,0,0,0.4,1352.8736,-232.4172)"
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient4620-0-16-5-1-0-3-2"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient4815-5-5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9094313,0,0,1.4285715,1470.8759,-1367.9896)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient4815-5-5-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9094313,0,0,1.4285715,1470.8759,-1277.9896)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
gradientTransform="matrix(0.55373504,0,0,0.4,1352.8736,-142.41719)"
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient4620-0-16-5-1-0-3-2-3"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218"
gradientUnits="userSpaceOnUse" />
<linearGradient
gradientTransform="matrix(0.4,0,0,0.53747337,1188.6953,-346.34807)"
inkscape:collect="always"
@ -533,6 +493,46 @@
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient2678"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.36535919,0,0,0.4,1395.2815,-235.23188)"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient2680"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2598591,0,0,1.4285715,1473.1405,-1370.8043)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
<linearGradient
inkscape:collect="always"
xlink:href="#Blue-2"
id="linearGradient2787"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.36535919,0,0,0.4,1395.2815,-147.23188)"
x1="402"
y1="711.36218"
x2="401"
y2="909.36218" />
<linearGradient
inkscape:collect="always"
xlink:href="#Shine-2"
id="linearGradient2789"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2598591,0,0,1.4285715,1473.1405,-1282.8043)"
x1="55.75"
y1="994.11218"
x2="55.75"
y2="1014.3622" />
</defs>
<sodipodi:namedview
id="base"
@ -542,22 +542,23 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.0606602"
inkscape:cx="445.73334"
inkscape:cy="188.63121"
inkscape:cx="1497.1807"
inkscape:cy="188.5618"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:window-width="2399"
inkscape:window-height="863"
inkscape:window-x="161"
inkscape:window-y="573"
inkscape:window-x="750"
inkscape:window-y="540"
inkscape:window-maximized="0"
units="px"
inkscape:document-rotation="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:pagecheckerboard="0" />
<metadata
id="metadata16415">
<rdf:RDF>
@ -566,7 +567,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@ -576,9 +576,9 @@
inkscape:label="Background"
transform="translate(0.62160975,46.138115)">
<rect
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:2.26649;stroke-miterlimit:4;stroke-dasharray:6.79942, 6.79942;stroke-dashoffset:0;stroke-opacity:1"
style="opacity:1;fill:#e2dbe3;fill-opacity:1;stroke:none;stroke-width:2.22385;stroke-miterlimit:4;stroke-dasharray:6.67151, 6.67151;stroke-dashoffset:0;stroke-opacity:1"
id="rect3742"
width="1704.0886"
width="1640.5771"
height="277.24231"
x="-0.62160975"
y="-46.138115"
@ -586,32 +586,32 @@
<rect
ry="13"
y="-37.472317"
x="1474.6952"
x="1476.6952"
height="80"
width="221.49402"
width="146.14368"
id="rect3336-9-5-9-0-5-3-6"
style="fill:url(#linearGradient4620-0-16-5-1-0-3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.17658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient4620-0-16-5-1-0-3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.95572;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="-37.472317"
x="1474.6952"
x="1476.6952"
height="80"
width="221.49402"
width="146.14365"
id="rect4775-2"
style="fill:url(#linearGradient4815-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.22252;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:url(#linearGradient4815-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.993036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1487.6952"
x="1548.6617"
y="26.027687"
id="text4811-9"><tspan
sodipodi:role="line"
id="tspan4813-1"
x="1487.6952"
x="1548.6617"
y="26.027687"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,1536.4659,-89.19318)"
transform="matrix(0.08921554,0,0,0.08921554,1500.4659,-89.19318)"
id="g4455-3-0-2-5-6-7-2">
<g
transform="translate(-72.428508,584.97477)"
@ -636,7 +636,7 @@
</g>
<polygon
style="fill:#ffffff"
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
id="polygon13-6-7-1-6-4-3-0" />
<path
style="fill:#ffffff"
@ -682,58 +682,155 @@
</g>
<rect
ry="13"
y="52.527683"
x="1474.6952"
y="49.713013"
x="1475.6605"
height="80"
width="221.49402"
id="rect3336-9-5-9-0-5-3-6-2"
style="fill:url(#linearGradient4620-0-16-5-1-0-3-2);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.17658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
width="146.14368"
id="rect3336-9-5-9-0-5-3-6-3"
style="fill:url(#linearGradient2678);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.95572;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="52.527683"
x="1474.6952"
y="49.713013"
x="1475.6605"
height="80"
width="221.49402"
id="rect4775-2-8"
style="fill:url(#linearGradient4815-5-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.22252;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
width="146.14365"
id="rect4775-2-5"
style="fill:url(#linearGradient2680);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.993036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1487.6952"
y="116.02768"
id="text4811-9-9"><tspan
x="1547.6271"
y="113.21301"
id="text4811-9-6"><tspan
sodipodi:role="line"
id="tspan4813-1-7"
x="1487.6952"
y="116.02768"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
id="tspan4813-1-2"
x="1547.6271"
y="113.21301"
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,1536.4659,0.806815)"
id="g4455-3-0-2-5-6-7-2-3">
transform="matrix(0.08921554,0,0,0.08921554,1499.4312,-2.007851)"
id="g4455-3-0-2-5-6-7-2-9">
<g
transform="translate(-72.428508,584.97477)"
id="g3-6-6-8-0-5-8-7-6">
id="g3-6-6-8-0-5-8-7-1">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.1,385.06 h -40.57 c 0,0 0,-98.97 0,-129.66 12.96,7.22 30.09,20.54 40.57,33.32 z"
id="path5-7-2-9-3-6-6-0-1" />
id="path5-7-2-9-3-6-6-0-2" />
<g
id="g7-5-6-7-6-9-8-9-2">
id="g7-5-6-7-6-9-8-9-7">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="M 381.75,385.06 H 331.17 L 265.16,181.03 h 46.01 l 45.44,143.45 h 0.57 l 46,-143.45 h 46.29 z"
id="path9-3-1-3-1-3-8-3-9" />
id="path9-3-1-3-1-3-8-3-0" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 585.51,385.06 h -38.58 v -20.57 h -0.85 c -5.15,8.58 -11.81,14.77 -20.01,18.58 -8.19,3.81 -16.57,5.71 -25.15,5.71 -10.86,0 -19.76,-1.43 -26.72,-4.28 -6.95,-2.85 -12.43,-6.91 -16.43,-12.14 -4.01,-5.24 -6.82,-11.62 -8.44,-19.15 -1.61,-7.52 -2.42,-15.86 -2.42,-25 v -90.88 h 40.58 v 83.44 c 0,12.19 1.91,21.29 5.72,27.29 3.81,6.01 10.57,9 20.29,9 11.05,0 19.05,-3.28 24,-9.86 4.96,-6.58 7.43,-17.39 7.43,-32.44 v -77.44 h 40.59 v 147.74 z"
id="path11-5-8-6-0-7-4-6-3" />
id="path11-5-8-6-0-7-4-6-9" />
</g>
<polygon
style="fill:#ffffff"
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
points="836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 "
id="polygon13-6-7-1-6-4-3-0-3" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 843.62,282.76 c 0.57,-9.52 2.96,-17.43 7.15,-23.72 4.19,-6.29 9.52,-11.33 16,-15.14 6.48,-3.81 13.77,-6.53 21.87,-8.14 8.09,-1.62 16.24,-2.43 24.43,-2.43 7.43,0 14.95,0.52 22.57,1.57 7.63,1.05 14.57,3.1 20.86,6.15 6.28,3.05 11.43,7.29 15.44,12.71 4,5.43 6,12.62 6,21.58 v 76.87 c 0,6.67 0.38,13.06 1.14,19.15 0.76,6.1 2.1,10.67 4.01,13.72 h -41.15 c -0.76,-2.28 -1.38,-4.62 -1.86,-7 -0.47,-2.38 -0.81,-4.8 -1,-7.29 -6.48,6.68 -14.11,11.34 -22.87,14.01 -8.76,2.66 -17.72,4 -26.86,4 -7.05,0 -13.63,-0.86 -19.71,-2.57 -6.1,-1.71 -11.44,-4.38 -16,-8 -4.58,-3.62 -8.16,-8.19 -10.72,-13.72 -2.57,-5.52 -3.86,-12.09 -3.86,-19.71 0,-8.38 1.48,-15.29 4.43,-20.72 2.96,-5.43 6.76,-9.76 11.44,-13 4.67,-3.24 10,-5.67 16,-7.29 6,-1.62 12.05,-2.91 18.14,-3.86 6.1,-0.94 12.1,-1.71 18.01,-2.28 5.91,-0.57 11.14,-1.43 15.71,-2.57 4.58,-1.15 8.19,-2.81 10.86,-5.01 2.67,-2.19 3.91,-5.38 3.72,-9.57 0,-4.38 -0.72,-7.86 -2.15,-10.43 -1.43,-2.57 -3.33,-4.57 -5.71,-6 -2.38,-1.43 -5.14,-2.38 -8.29,-2.86 -3.15,-0.48 -6.52,-0.72 -10.14,-0.72 -8,0 -14.29,1.71 -18.86,5.15 -4.57,3.43 -7.24,9.14 -8,17.15 h -40.6 z m 93.73,30.01 c -1.72,1.53 -3.86,2.71 -6.43,3.57 -2.57,0.87 -5.33,1.58 -8.29,2.15 -2.95,0.57 -6.05,1.05 -9.28,1.43 -3.24,0.38 -6.48,0.85 -9.72,1.43 -3.05,0.57 -6.05,1.34 -9,2.28 -2.95,0.96 -5.53,2.24 -7.72,3.86 -2.19,1.62 -3.95,3.67 -5.29,6.14 -1.33,2.48 -2,5.62 -2,9.43 0,3.62 0.67,6.67 2,9.14 1.34,2.48 3.15,4.43 5.43,5.86 2.29,1.43 4.95,2.43 8,3 3.05,0.57 6.19,0.85 9.43,0.85 8,0 14.2,-1.33 18.58,-3.99 4.38,-2.67 7.63,-5.86 9.71,-9.58 2.09,-3.71 3.39,-7.47 3.85,-11.28 0.48,-3.81 0.71,-6.86 0.72,-9.14 v -15.15 z"
id="path15-2-9-2-3-5-1-6-6" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1004.21,237.33 h 38.59 v 20.57 h 0.85 c 5.14,-8.57 11.81,-14.81 20,-18.71 8.19,-3.91 16.58,-5.86 25.14,-5.86 10.87,0 19.77,1.48 26.73,4.43 6.95,2.96 12.42,7.05 16.43,12.29 4,5.24 6.81,11.62 8.43,19.14 1.62,7.53 2.43,15.86 2.43,25.01 v 90.87 h -40.57 v -83.44 c 0,-12.2 -1.91,-21.29 -5.71,-27.29 -3.82,-6 -10.58,-9 -20.3,-9 -11.05,0 -19.04,3.29 -24,9.86 -4.96,6.56 -7.43,17.38 -7.43,32.43 v 77.44 h -40.58 V 237.33 Z"
id="path17-9-2-9-2-2-4-2-0" />
<g
id="g19-1-0-3-0-5-9-6-6">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 612.37,211.84 v 173.23 h 40.58 V 234.21 c -13.02,-7.98 -26.59,-15.47 -40.58,-22.37 z"
id="path21-2-2-1-6-4-2-1-2" />
</g>
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 198.43,219.21 c 23.52,-68.89 164.15,-94.16 314.15,-56.43 89.97,22.62 163.49,66.5 211.51,109.89 C 702.3,215.12 596.65,133.08 451.18,104.96 286.7,73.16 124.47,101.11 104.39,174.1 89.89,226.83 153.57,288.6 252.05,330.84 207.81,295.02 186.29,254.78 198.43,219.21 Z"
id="path23-7-3-9-1-7-0-8-6" />
<g
id="g25-0-7-4-5-4-6-7-1">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.16,247.62 v -66.59 h -40.59 v 20.22 c 17.31,15.46 31.04,31.2 40.59,46.37 z"
id="path27-9-5-7-5-4-8-9-8" />
</g>
</g>
<g
transform="translate(-72.428508,584.97477)"
id="g29-3-9-8-4-3-9-2-7">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1214.52,363.68 c 0,12.26 -9.63,21.89 -22.15,21.89 -12.4,0 -22.29,-9.63 -22.29,-21.89 0,-12 9.89,-21.63 22.29,-21.63 12.53,0.01 22.15,9.63 22.15,21.63 z m -38.9,0 c 0,9.63 7.12,17.27 16.88,17.27 9.49,0 16.48,-7.65 16.48,-17.14 0,-9.63 -6.99,-17.41 -16.62,-17.41 -9.62,0.01 -16.74,7.79 -16.74,17.28 z m 13.32,11.34 h -5.01 V 353.4 c 1.98,-0.4 4.75,-0.66 8.31,-0.66 4.09,0 5.93,0.66 7.52,1.58 1.19,0.92 2.11,2.64 2.11,4.75 0,2.37 -1.85,4.22 -4.48,5.01 v 0.26 c 2.11,0.79 3.3,2.37 3.96,5.27 0.66,3.3 1.05,4.62 1.58,5.41 h -5.41 c -0.66,-0.79 -1.05,-2.77 -1.71,-5.27 -0.4,-2.37 -1.71,-3.43 -4.48,-3.43 h -2.37 v 8.7 z m 0.13,-12.26 h 2.37 c 2.77,0 5.01,-0.92 5.01,-3.17 0,-1.98 -1.45,-3.3 -4.62,-3.3 -1.32,0 -2.24,0.13 -2.77,0.26 v 6.21 z"
id="path31-6-2-4-7-0-2-0-9" />
</g>
</g>
<rect
ry="13"
y="137.71301"
x="1475.6605"
height="80"
width="146.14368"
id="rect3336-9-5-9-0-5-3-6-7"
style="fill:url(#linearGradient2787);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.95572;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="137.71301"
x="1475.6605"
height="80"
width="146.14365"
id="rect4775-2-59"
style="fill:url(#linearGradient2789);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.993036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1547.6271"
y="201.21301"
id="text4811-9-2"><tspan
sodipodi:role="line"
id="tspan4813-1-28"
x="1547.6271"
y="201.21301"
style="font-size:25px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Driver</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,1499.4312,85.992149)"
id="g4455-3-0-2-5-6-7-2-97">
<g
transform="translate(-72.428508,584.97477)"
id="g3-6-6-8-0-5-8-7-3">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.1,385.06 h -40.57 c 0,0 0,-98.97 0,-129.66 12.96,7.22 30.09,20.54 40.57,33.32 z"
id="path5-7-2-9-3-6-6-0-6" />
<g
id="g7-5-6-7-6-9-8-9-1">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="M 381.75,385.06 H 331.17 L 265.16,181.03 h 46.01 l 45.44,143.45 h 0.57 l 46,-143.45 h 46.29 z"
id="path9-3-1-3-1-3-8-3-2" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 585.51,385.06 h -38.58 v -20.57 h -0.85 c -5.15,8.58 -11.81,14.77 -20.01,18.58 -8.19,3.81 -16.57,5.71 -25.15,5.71 -10.86,0 -19.76,-1.43 -26.72,-4.28 -6.95,-2.85 -12.43,-6.91 -16.43,-12.14 -4.01,-5.24 -6.82,-11.62 -8.44,-19.15 -1.61,-7.52 -2.42,-15.86 -2.42,-25 v -90.88 h 40.58 v 83.44 c 0,12.19 1.91,21.29 5.72,27.29 3.81,6.01 10.57,9 20.29,9 11.05,0 19.05,-3.28 24,-9.86 4.96,-6.58 7.43,-17.39 7.43,-32.44 v -77.44 h 40.59 v 147.74 z"
id="path11-5-8-6-0-7-4-6-93" />
</g>
<polygon
style="fill:#ffffff"
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
id="polygon13-6-7-1-6-4-3-0-1" />
<path
style="fill:#ffffff"
@ -777,103 +874,6 @@
id="path31-6-2-4-7-0-2-0-6" />
</g>
</g>
<rect
ry="13"
y="142.52768"
x="1474.6952"
height="80"
width="221.49402"
id="rect3336-9-5-9-0-5-3-6-2-6"
style="fill:url(#linearGradient4620-0-16-5-1-0-3-2-3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.17658;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="13"
y="142.52768"
x="1474.6952"
height="80"
width="221.49402"
id="rect4775-2-8-1"
style="fill:url(#linearGradient4815-5-5-1);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.22252;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1487.6952"
y="206.02766"
id="text4811-9-9-5"><tspan
sodipodi:role="line"
id="tspan4813-1-7-5"
x="1487.6952"
y="206.02766"
style="font-size:25px;line-height:1.25;fill:#ffffff;fill-opacity:1">Implementation</tspan></text>
<g
transform="matrix(0.08921554,0,0,0.08921554,1536.4659,90.806811)"
id="g4455-3-0-2-5-6-7-2-3-4">
<g
transform="translate(-72.428508,584.97477)"
id="g3-6-6-8-0-5-8-7-6-7">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.1,385.06 h -40.57 c 0,0 0,-98.97 0,-129.66 12.96,7.22 30.09,20.54 40.57,33.32 z"
id="path5-7-2-9-3-6-6-0-1-6" />
<g
id="g7-5-6-7-6-9-8-9-2-5">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="M 381.75,385.06 H 331.17 L 265.16,181.03 h 46.01 l 45.44,143.45 h 0.57 l 46,-143.45 h 46.29 z"
id="path9-3-1-3-1-3-8-3-9-6" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 585.51,385.06 h -38.58 v -20.57 h -0.85 c -5.15,8.58 -11.81,14.77 -20.01,18.58 -8.19,3.81 -16.57,5.71 -25.15,5.71 -10.86,0 -19.76,-1.43 -26.72,-4.28 -6.95,-2.85 -12.43,-6.91 -16.43,-12.14 -4.01,-5.24 -6.82,-11.62 -8.44,-19.15 -1.61,-7.52 -2.42,-15.86 -2.42,-25 v -90.88 h 40.58 v 83.44 c 0,12.19 1.91,21.29 5.72,27.29 3.81,6.01 10.57,9 20.29,9 11.05,0 19.05,-3.28 24,-9.86 4.96,-6.58 7.43,-17.39 7.43,-32.44 v -77.44 h 40.59 v 147.74 z"
id="path11-5-8-6-0-7-4-6-3-9" />
</g>
<polygon
style="fill:#ffffff"
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
id="polygon13-6-7-1-6-4-3-0-1-3" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 843.62,282.76 c 0.57,-9.52 2.96,-17.43 7.15,-23.72 4.19,-6.29 9.52,-11.33 16,-15.14 6.48,-3.81 13.77,-6.53 21.87,-8.14 8.09,-1.62 16.24,-2.43 24.43,-2.43 7.43,0 14.95,0.52 22.57,1.57 7.63,1.05 14.57,3.1 20.86,6.15 6.28,3.05 11.43,7.29 15.44,12.71 4,5.43 6,12.62 6,21.58 v 76.87 c 0,6.67 0.38,13.06 1.14,19.15 0.76,6.1 2.1,10.67 4.01,13.72 h -41.15 c -0.76,-2.28 -1.38,-4.62 -1.86,-7 -0.47,-2.38 -0.81,-4.8 -1,-7.29 -6.48,6.68 -14.11,11.34 -22.87,14.01 -8.76,2.66 -17.72,4 -26.86,4 -7.05,0 -13.63,-0.86 -19.71,-2.57 -6.1,-1.71 -11.44,-4.38 -16,-8 -4.58,-3.62 -8.16,-8.19 -10.72,-13.72 -2.57,-5.52 -3.86,-12.09 -3.86,-19.71 0,-8.38 1.48,-15.29 4.43,-20.72 2.96,-5.43 6.76,-9.76 11.44,-13 4.67,-3.24 10,-5.67 16,-7.29 6,-1.62 12.05,-2.91 18.14,-3.86 6.1,-0.94 12.1,-1.71 18.01,-2.28 5.91,-0.57 11.14,-1.43 15.71,-2.57 4.58,-1.15 8.19,-2.81 10.86,-5.01 2.67,-2.19 3.91,-5.38 3.72,-9.57 0,-4.38 -0.72,-7.86 -2.15,-10.43 -1.43,-2.57 -3.33,-4.57 -5.71,-6 -2.38,-1.43 -5.14,-2.38 -8.29,-2.86 -3.15,-0.48 -6.52,-0.72 -10.14,-0.72 -8,0 -14.29,1.71 -18.86,5.15 -4.57,3.43 -7.24,9.14 -8,17.15 h -40.6 z m 93.73,30.01 c -1.72,1.53 -3.86,2.71 -6.43,3.57 -2.57,0.87 -5.33,1.58 -8.29,2.15 -2.95,0.57 -6.05,1.05 -9.28,1.43 -3.24,0.38 -6.48,0.85 -9.72,1.43 -3.05,0.57 -6.05,1.34 -9,2.28 -2.95,0.96 -5.53,2.24 -7.72,3.86 -2.19,1.62 -3.95,3.67 -5.29,6.14 -1.33,2.48 -2,5.62 -2,9.43 0,3.62 0.67,6.67 2,9.14 1.34,2.48 3.15,4.43 5.43,5.86 2.29,1.43 4.95,2.43 8,3 3.05,0.57 6.19,0.85 9.43,0.85 8,0 14.2,-1.33 18.58,-3.99 4.38,-2.67 7.63,-5.86 9.71,-9.58 2.09,-3.71 3.39,-7.47 3.85,-11.28 0.48,-3.81 0.71,-6.86 0.72,-9.14 v -15.15 z"
id="path15-2-9-2-3-5-1-6-9-7" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1004.21,237.33 h 38.59 v 20.57 h 0.85 c 5.14,-8.57 11.81,-14.81 20,-18.71 8.19,-3.91 16.58,-5.86 25.14,-5.86 10.87,0 19.77,1.48 26.73,4.43 6.95,2.96 12.42,7.05 16.43,12.29 4,5.24 6.81,11.62 8.43,19.14 1.62,7.53 2.43,15.86 2.43,25.01 v 90.87 h -40.57 v -83.44 c 0,-12.2 -1.91,-21.29 -5.71,-27.29 -3.82,-6 -10.58,-9 -20.3,-9 -11.05,0 -19.04,3.29 -24,9.86 -4.96,6.56 -7.43,17.38 -7.43,32.43 v 77.44 h -40.58 V 237.33 Z"
id="path17-9-2-9-2-2-4-2-4-4" />
<g
id="g19-1-0-3-0-5-9-6-7-5">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 612.37,211.84 v 173.23 h 40.58 V 234.21 c -13.02,-7.98 -26.59,-15.47 -40.58,-22.37 z"
id="path21-2-2-1-6-4-2-1-8-2" />
</g>
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 198.43,219.21 c 23.52,-68.89 164.15,-94.16 314.15,-56.43 89.97,22.62 163.49,66.5 211.51,109.89 C 702.3,215.12 596.65,133.08 451.18,104.96 286.7,73.16 124.47,101.11 104.39,174.1 89.89,226.83 153.57,288.6 252.05,330.84 207.81,295.02 186.29,254.78 198.43,219.21 Z"
id="path23-7-3-9-1-7-0-8-4-5" />
<g
id="g25-0-7-4-5-4-6-7-5-4">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 724.16,247.62 v -66.59 h -40.59 v 20.22 c 17.31,15.46 31.04,31.2 40.59,46.37 z"
id="path27-9-5-7-5-4-8-9-0-7" />
</g>
</g>
<g
transform="translate(-72.428508,584.97477)"
id="g29-3-9-8-4-3-9-2-3-4">
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
d="m 1214.52,363.68 c 0,12.26 -9.63,21.89 -22.15,21.89 -12.4,0 -22.29,-9.63 -22.29,-21.89 0,-12 9.89,-21.63 22.29,-21.63 12.53,0.01 22.15,9.63 22.15,21.63 z m -38.9,0 c 0,9.63 7.12,17.27 16.88,17.27 9.49,0 16.48,-7.65 16.48,-17.14 0,-9.63 -6.99,-17.41 -16.62,-17.41 -9.62,0.01 -16.74,7.79 -16.74,17.28 z m 13.32,11.34 h -5.01 V 353.4 c 1.98,-0.4 4.75,-0.66 8.31,-0.66 4.09,0 5.93,0.66 7.52,1.58 1.19,0.92 2.11,2.64 2.11,4.75 0,2.37 -1.85,4.22 -4.48,5.01 v 0.26 c 2.11,0.79 3.3,2.37 3.96,5.27 0.66,3.3 1.05,4.62 1.58,5.41 h -5.41 c -0.66,-0.79 -1.05,-2.77 -1.71,-5.27 -0.4,-2.37 -1.71,-3.43 -4.48,-3.43 h -2.37 v 8.7 z m 0.13,-12.26 h 2.37 c 2.77,0 5.01,-0.92 5.01,-3.17 0,-1.98 -1.45,-3.3 -4.62,-3.3 -1.32,0 -2.24,0.13 -2.77,0.26 v 6.21 z"
id="path31-6-2-4-7-0-2-0-6-4" />
</g>
</g>
<rect
ry="17.467884"
y="36.527683"
@ -932,7 +932,7 @@
</g>
<polygon
style="fill:#ffffff"
points="787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 "
points="730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 "
id="polygon13-6-3-2" />
<path
style="fill:#ffffff"
@ -1077,7 +1077,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 "
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
id="polygon13-6" />
<path
style="fill:#ffffff"
@ -1179,7 +1179,7 @@
</g>
<polygon
style="fill:#ffffff"
points="836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 "
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
id="polygon13-6-0" />
<path
style="fill:#ffffff"
@ -1291,7 +1291,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 "
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
id="polygon13-6-9" />
<path
style="fill:#ffffff"
@ -1403,7 +1403,7 @@
</g>
<polygon
style="fill:#ffffff"
points="836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 "
points="730.84,296.19 730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 "
id="polygon13-6-6" />
<path
style="fill:#ffffff"
@ -1505,7 +1505,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 "
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
id="polygon13-6-3" />
<path
style="fill:#ffffff"
@ -1613,7 +1613,7 @@
</g>
<polygon
style="fill:#ffffff"
points="730.74,290.47 781.89,237.33 829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 "
points="829.91,237.33 774.18,291.62 836.19,385.06 787.04,385.06 730.84,296.19 730.74,290.47 781.89,237.33 "
id="polygon13-6-0-1" />
<path
style="fill:#ffffff"

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

@ -3142,8 +3142,8 @@ static VkResult read_data_files_in_search_paths(const struct loader_instance *in
strncpy(tmp_search_path, search_path, search_path_size);
tmp_search_path[search_path_size] = '\0';
if (data_file_type == LOADER_DATA_FILE_MANIFEST_ICD) {
log_flags = VULKAN_LOADER_IMPLEMENTATION_BIT;
loader_log(inst, VULKAN_LOADER_IMPLEMENTATION_BIT, 0, "Searching for implementation manifest files");
log_flags = VULKAN_LOADER_DRIVER_BIT;
loader_log(inst, VULKAN_LOADER_DRIVER_BIT, 0, "Searching for driver manifest files");
} else {
log_flags = VULKAN_LOADER_LAYER_BIT;
loader_log(inst, VULKAN_LOADER_LAYER_BIT, 0, "Searching for layer manifest files");
@ -3365,7 +3365,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_t
if (num_good_icds == 0) {
res = VK_ERROR_INITIALIZATION_FAILED;
}
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"loader_icd_scan: ICD JSON %s does not have a \'file_format_version\' field. Skipping ICD JSON.", file_str);
cJSON_Delete(inst, json);
json = NULL;
@ -3378,7 +3378,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_t
if (num_good_icds == 0) {
res = VK_ERROR_OUT_OF_HOST_MEMORY;
}
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"loader_icd_scan: Failed retrieving ICD JSON %s \'file_format_version\' field. Skipping ICD JSON",
file_str);
cJSON_Delete(inst, json);
@ -3402,7 +3402,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_t
}
if (file_major_vers != 1 || file_minor_vers != 0 || file_patch_vers > 1) {
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"loader_icd_scan: Unexpected manifest file version (expected 1.0.0 or 1.0.1), may cause errors");
}
cJSON_Free(inst, file_vers);
@ -3416,7 +3416,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_t
if (num_good_icds == 0) {
res = VK_ERROR_OUT_OF_HOST_MEMORY;
}
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"loader_icd_scan: Failed retrieving ICD JSON %s \'library_path\' field. Skipping ICD JSON.",
file_str);
cJSON_Free(inst, temp);
@ -3441,7 +3441,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_t
strcpy(library_path, &temp[1]);
cJSON_Free(inst, temp);
if (strlen(library_path) == 0) {
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"loader_icd_scan: ICD JSON %s \'library_path\' field is empty. Skipping ICD JSON.", file_str);
cJSON_Delete(inst, json);
json = NULL;
@ -3471,7 +3471,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_t
if (item != NULL) {
temp = cJSON_Print(inst, item);
if (NULL == temp) {
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"loader_icd_scan: Failed retrieving ICD JSON %s \'api_version\' field. Skipping ICD JSON.",
file_str);
@ -3489,7 +3489,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_t
vers = loader_make_version(temp);
cJSON_Free(inst, temp);
} else {
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"loader_icd_scan: ICD JSON %s does not have an \'api_version\' field.", file_str);
}
VkResult icd_add_res = VK_SUCCESS;
@ -3498,7 +3498,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_t
res = icd_add_res;
goto out;
} else if (VK_SUCCESS != icd_add_res) {
loader_log(inst, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"loader_icd_scan: Failed to add ICD JSON %s. Skipping ICD JSON.", fullpath);
cJSON_Delete(inst, json);
json = NULL;
@ -3506,12 +3506,12 @@ VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_t
}
num_good_icds++;
} else {
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"loader_icd_scan: Failed to find \'library_path\' object in ICD JSON file %s. Skipping ICD JSON.",
file_str);
}
} else {
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"loader_icd_scan: Can not find \'ICD\' object in ICD JSON file %s. Skipping ICD JSON", file_str);
}
@ -4934,7 +4934,7 @@ VkResult loader_create_instance_chain(const VkInstanceCreateInfo *pCreateInfo, c
loader_log(inst, VULKAN_LOADER_LAYER_BIT, 0, " Library: %s", activated_layers[index].library);
loader_log(inst, VULKAN_LOADER_LAYER_BIT, 0, " ||");
}
loader_log(inst, VULKAN_LOADER_LAYER_BIT, 0, " <Implementations>\n");
loader_log(inst, VULKAN_LOADER_LAYER_BIT, 0, " <Drivers>\n");
}
res = fpCreateInstance(&loader_create_info, pAllocator, created_instance);
@ -5446,7 +5446,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateInstance(const VkInstanceCreateI
icd_result = icd_enumerate_instance_version(&icd_version);
if (icd_result != VK_SUCCESS) {
icd_version = VK_API_VERSION_1_0;
loader_log(ptr_instance, VULKAN_LOADER_DEBUG_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(ptr_instance, VULKAN_LOADER_DEBUG_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"terminator_CreateInstance: ICD \"%s\" vkEnumerateInstanceVersion returned error. The ICD will be "
"treated as a 1.0 ICD",
icd_term->scanned_icd->lib_name);
@ -5604,7 +5604,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDevice(VkPhysicalDevice physical
icd_exts.list = NULL;
if (fpCreateDevice == NULL) {
loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"terminator_CreateDevice: No vkCreateDevice command exposed by ICD %s", icd_term->scanned_icd->lib_name);
res = VK_ERROR_INITIALIZATION_FAILED;
goto out;
@ -5652,7 +5652,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDevice(VkPhysicalDevice physical
filtered_extension_names[localCreateInfo.enabledExtensionCount] = (char *)extension_name;
localCreateInfo.enabledExtensionCount++;
} else {
loader_log(icd_term->this_instance, VULKAN_LOADER_DEBUG_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(icd_term->this_instance, VULKAN_LOADER_DEBUG_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"vkCreateDevice extension %s not available for devices associated with ICD %s", extension_name,
icd_term->scanned_icd->lib_name);
}
@ -5800,7 +5800,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDevice(VkPhysicalDevice physical
res = fpCreateDevice(phys_dev_term->phys_dev, &localCreateInfo, pAllocator, &dev->icd_device);
if (res != VK_SUCCESS) {
loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"terminator_CreateDevice: Failed in ICD %s vkCreateDevice call", icd_term->scanned_icd->lib_name);
goto out;
}

View File

@ -695,10 +695,10 @@ VkResult windows_read_data_files_in_registry(const struct loader_instance *inst,
char *search_path = NULL;
if (data_file_type == LOADER_DATA_FILE_MANIFEST_ICD) {
loader_log(inst, VULKAN_LOADER_IMPLEMENTATION_BIT, 0, "Checking for Implementation Manifest files in Registry at %s",
loader_log(inst, VULKAN_LOADER_DRIVER_BIT, 0, "Checking for Driver Manifest files in Registry at %s",
registry_location);
} else {
loader_log(inst, VULKAN_LOADER_LAYER_BIT, 0, "Checking for Implementation Manifest files in Registry at %s",
loader_log(inst, VULKAN_LOADER_LAYER_BIT, 0, "Checking for Driver Manifest files in Registry at %s",
registry_location);
}
@ -738,7 +738,7 @@ VkResult windows_read_data_files_in_registry(const struct loader_instance *inst,
if ((VK_SUCCESS != reg_result && VK_SUCCESS != regHKR_result) || NULL == search_path) {
if (data_file_type == LOADER_DATA_FILE_MANIFEST_ICD) {
loader_log(inst, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"windows_read_data_files_in_registry: Registry lookup failed to get ICD manifest files. Possibly missing "
"Vulkan driver?");
vk_result = VK_ERROR_INCOMPATIBLE_DRIVER;
@ -746,11 +746,11 @@ VkResult windows_read_data_files_in_registry(const struct loader_instance *inst,
if (warn_if_not_present) {
if (data_file_type == LOADER_DATA_FILE_MANIFEST_LAYER) {
// This is only a warning for layers
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.");
} else {
// This is only a warning for general data files
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_IMPLEMENTATION_BIT, 0,
loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
"windows_read_data_files_in_registry: Registry lookup failed to get data files.");
}
}

View File

@ -70,8 +70,8 @@ void loader_debug_init(void) {
g_loader_debug |= VULKAN_LOADER_DEBUG_BIT;
} else if (strncmp(env, "layer", len) == 0) {
g_loader_debug |= VULKAN_LOADER_LAYER_BIT;
} else if (strncmp(env, "implem", len) == 0 || strncmp(env, "icd", len) == 0) {
g_loader_debug |= VULKAN_LOADER_IMPLEMENTATION_BIT;
} else if (strncmp(env, "driver", len) == 0 || strncmp(env, "implem", len) == 0 || strncmp(env, "icd", len) == 0) {
g_loader_debug |= VULKAN_LOADER_DRIVER_BIT;
}
}
@ -106,7 +106,7 @@ void loader_log(const struct loader_instance *inst, VkFlags msg_type, int32_t ms
VkDebugUtilsObjectNameInfoEXT object_name;
if ((msg_type & VULKAN_LOADER_INFO_BIT) != 0 || (msg_type & VULKAN_LOADER_LAYER_BIT) != 0 ||
(msg_type & VULKAN_LOADER_IMPLEMENTATION_BIT) != 0) {
(msg_type & VULKAN_LOADER_DRIVER_BIT) != 0) {
severity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT;
} else if ((msg_type & VULKAN_LOADER_WARN_BIT) != 0) {
severity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT;
@ -171,12 +171,12 @@ void loader_log(const struct loader_instance *inst, VkFlags msg_type, int32_t ms
strncat(cmd_line_msg, "LAYER", cmd_line_size);
cmd_line_size -= 5;
}
if ((msg_type & VULKAN_LOADER_IMPLEMENTATION_BIT) != 0) {
if ((msg_type & VULKAN_LOADER_DRIVER_BIT) != 0) {
if (cmd_line_size != original_size) {
strncat(cmd_line_msg, " | ", cmd_line_size);
cmd_line_size -= 3;
}
strncat(cmd_line_msg, "IMPLEM", cmd_line_size);
strncat(cmd_line_msg, "DRIVER", cmd_line_size);
cmd_line_size -= 6;
}
if ((msg_type & VULKAN_LOADER_PERF_BIT) != 0) {

View File

@ -35,7 +35,7 @@ enum vulkan_loader_debug_flags {
VULKAN_LOADER_ERROR_BIT = 0x08,
VULKAN_LOADER_DEBUG_BIT = 0x10,
VULKAN_LOADER_LAYER_BIT = 0x20,
VULKAN_LOADER_IMPLEMENTATION_BIT = 0x40,
VULKAN_LOADER_DRIVER_BIT = 0x40,
};
// Checks for the environment variable VK_LOADER_DEBUG and sets up the current debug level accordingly