2016-07-11 01:13:41 +00:00
|
|
|
// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
|
|
|
|
// Creative Commons Attribution 4.0 International License; see
|
|
|
|
// http://creativecommons.org/licenses/by/4.0/
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
vkGetInstanceProcAddr(3)
|
2016-07-11 01:13:41 +00:00
|
|
|
========================
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
Name
|
|
|
|
----
|
|
|
|
vkGetInstanceProcAddr - Return a function pointer for a command
|
|
|
|
|
|
|
|
C Specification
|
|
|
|
---------------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin vkGetInstanceProcAddr Return a function pointer for a command
|
|
|
|
|
|
|
|
Vulkan commands are not necessarily exposed statically on a platform.
|
|
|
|
Function pointers for all Vulkan commands can: be obtained with the
|
|
|
|
command:
|
|
|
|
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
include::../api/protos/vkGetInstanceProcAddr.txt[]
|
2016-02-16 09:53:44 +00:00
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Parameters
|
|
|
|
----------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
* pname:instance is the instance that the function pointer will be
|
|
|
|
compatible with.
|
|
|
|
* pname:pName is the name of the command to obtain.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
Description
|
|
|
|
-----------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
fname:vkGetInstanceProcAddr itself is obtained in a platform- and loader-
|
|
|
|
specific manner. Typically, the loader library will export this command as a
|
|
|
|
function symbol, so applications can: link against the loader library, or
|
|
|
|
load it dynamically and look up the symbol using platform-specific APIs.
|
|
|
|
Loaders are encouraged to export function symbols for all other core
|
|
|
|
Vulkan commands as well; if this is done, then applications that use only
|
|
|
|
the core Vulkan commands have no need to use fname:vkGetInstanceProcAddr.
|
|
|
|
|
|
|
|
Function pointers to commands that do not operate on a specific instance can:
|
|
|
|
be obtained by using this command with pname:instance equal to `NULL`. The
|
|
|
|
following commands can: be accessed this way:
|
|
|
|
|
|
|
|
* flink:vkEnumerateInstanceExtensionProperties
|
|
|
|
* flink:vkEnumerateInstanceLayerProperties
|
|
|
|
* flink:vkCreateInstance
|
|
|
|
|
|
|
|
The returned function pointer is of type tlink:PFN_vkVoidFunction, and must
|
|
|
|
be cast to the type of the command being queried.
|
|
|
|
|
|
|
|
If pname:instance is a valid sname:VkInstance, function pointers to any
|
|
|
|
commands that operate on pname:instance or a child of pname:instance can: be
|
|
|
|
obtained. The returned function pointer must: only be called with a
|
|
|
|
dispatchable object (the first parameter) that is a child of pname:instance.
|
|
|
|
|
|
|
|
If pname:pName is not the name of a core Vulkan command, or is an
|
|
|
|
extension command for any extension not supported by any available layer or
|
|
|
|
implementation, then fname:vkGetInstanceProcAddr will return `NULL`.
|
|
|
|
|
|
|
|
ifdef::editing-notes[]
|
|
|
|
[NOTE]
|
|
|
|
.editing-note
|
|
|
|
====
|
|
|
|
(Jon, Bug 14886 / Gitlab issue 4) The WSI group tentatively agreed that the
|
|
|
|
WSI extensions were special, and should get static entry points in link
|
|
|
|
libraries and prototypes in +vulkan.h+, while future extensions would have
|
|
|
|
to be dynamically loaded. If this decision is upheld by the group as a
|
|
|
|
whole, it would probably be encoded in the previous paragraph, in the WSI
|
|
|
|
extensions branch of the Specification.
|
|
|
|
|
|
|
|
However, this decision has not been fully signed off on by the entire Vulkan
|
|
|
|
WG yet AFAIK. Note that implementations typically will not support many of the
|
|
|
|
WSI extensions, so ``static entry points'' do not relieve apps of the
|
|
|
|
neccessity of runtime enabling and testing of each extension before using
|
|
|
|
it.
|
|
|
|
====
|
|
|
|
endif::editing-notes[]
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
include::../validity/protos/vkGetInstanceProcAddr.txt[]
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
// refEnd vkGetInstanceProcAddr PFN_vkVoidFunction
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
See Also
|
|
|
|
--------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
tlink:PFN_vkVoidFunction, slink:VkInstance
|
|
|
|
|
|
|
|
|
|
|
|
Document Notes
|
|
|
|
--------------
|
|
|
|
|
|
|
|
For more information, see the Vulkan Specification at URL
|
|
|
|
|
|
|
|
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkGetInstanceProcAddr
|
|
|
|
|
|
|
|
This page is extracted from the Vulkan Specification.
|
|
|
|
Fixes and changes should be made to the Specification,not directly.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
include::footer.txt[]
|
2016-07-11 01:13:41 +00:00
|
|
|
|