Lines Matching +full:vulkan +full:- +full:rules
4 This chapter attemtps to document the Vulkan dispatch infrastructure in the
5 Mesa Vulkan runtime. There are a lot of moving pieces here but the end
6 result has proven quite effective for implementing all the various Vulkan
11 ----------------
13 The Vulkan runtime defines two extension table structures, one for instance
17 .. code-block:: c
37 typically better for human-written code which needs to query for specific
43 parses the vk.xml from the `Vulkan-Docs repo
44 <https://github.com/KhronosGroup/Vulkan-docs/>`_, enumerates the
58 ------------------------------
60 Entrypoint tables contain a function pointer for every Vulkan entrypoint
62 physical device, and device-level functionality. The device entrypoint
65 .. code-block:: c
90 de-duplicated so that aliased entrypoints have only one entry in the table.
93 .. code-block:: c
110 to be able to add new aliases potentially at any Vulkan release and we want
122 .. code-block:: c
141 ---------------------------------
143 Entrypoint tables can be easily auto-generated for your driver. Simply put
146 .. code-block::
153 prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
154 '--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'drv',
160 Vulkan entrypoint, prefixed with what you passed to ``--prefix`` above.
161 For instance, if you set ``--prefix drv`` and the entrypoint name is
163 ``drv_CreateDevice()``. The ``--prefix`` flag can be specified multiple
172 rules around const struct declarations, it's not practical to generate a
178 .. code-block:: c
186 result = vk_instance_init(&instance->vk, &instance_extensions,
195 instance entrypoints from the Intel vulkan driver and then adds in the WSI
200 Common Vulkan entrypoints
201 -------------------------
203 For the Vulkan runtime itself, there is a dispatch table with the
216 .. code-block:: c
233 return device->dispatch_table.BindBufferMemory2(_device, 1, &bind);
245 -----------------
248 Vulkan 1.2 rules around exactly when they have to return ``NULL``. When a
255 2. Optionally, the index is passed to an auto-generated function that
258 rules for when an entrypoint should be exposed are per-entrypoint. For
259 instance, `vkBindImageMemory2` is available on Vulkan 1.1 and later but
279 ------------------------------------------
281 The entrypoint and dispatch tables actually live in ``src/vulkan/util``,
282 not ``src/vulkan/runtime`` so they can be used by layers and clients (such
284 dispatch tables from an underlying Vulkan implementation. This can be done
287 .. code-block:: c