mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 18:10:11 +01:00
zink: add feature-documentation
This adds some documentation for the current feature-set in Zink, explaining what extensions are currently needed for what functionality. Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7116>
This commit is contained in:
parent
f85488ab82
commit
d50e8554b9
1 changed files with 57 additions and 0 deletions
|
|
@ -8,6 +8,55 @@ The Zink driver is a Gallium driver that emits Vulkan API calls instead
|
||||||
of targeting a specific GPU architecture. This can be used to get full
|
of targeting a specific GPU architecture. This can be used to get full
|
||||||
desktop OpenGL support on devices that only support Vulkan.
|
desktop OpenGL support on devices that only support Vulkan.
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
The feature-level of Zink depends on two things; what's implemented in Zink,
|
||||||
|
as well as the features of the Vulkan driver.
|
||||||
|
|
||||||
|
OpenGL 2.1
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
OpenGL 2.1 is the minimum version Zink can support, and will always be
|
||||||
|
exposed, given Vulkan support. There's a few features that are required
|
||||||
|
for correct behavior, but not all of these are validated; instead you'll
|
||||||
|
see rendering-issues and likely validation error, or even crashes.
|
||||||
|
|
||||||
|
Here's a list of those requirements:
|
||||||
|
|
||||||
|
* Vulkan 1.0
|
||||||
|
* ``VkPhysicalDeviceFeatures``:
|
||||||
|
|
||||||
|
* ``logicOp``
|
||||||
|
* ``fillModeNonSolid``
|
||||||
|
* ``wideLines``
|
||||||
|
* ``largePoints``
|
||||||
|
* ``alphaToOne``
|
||||||
|
* ``shaderClipDistance``
|
||||||
|
|
||||||
|
* ``VkPhysicalDeviceLimits``:
|
||||||
|
|
||||||
|
* ``maxClipDistances`` ≥ 6
|
||||||
|
|
||||||
|
* Instance extensions:
|
||||||
|
|
||||||
|
* `VK_KHR_get_physical_device_properties2`_
|
||||||
|
* `VK_KHR_external_memory_capabilities`_
|
||||||
|
|
||||||
|
* Device extensions:
|
||||||
|
|
||||||
|
* `VK_KHR_maintenance1`_
|
||||||
|
* `VK_KHR_external_memory`_
|
||||||
|
|
||||||
|
OpenGL 3.0
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
For OpenGL 3.0 support, the following additional device extensions are
|
||||||
|
required to be exposed and fully supported:
|
||||||
|
|
||||||
|
* `VK_EXT_transform_feedback`_
|
||||||
|
* `VK_EXT_conditional_rendering`_
|
||||||
|
|
||||||
Debugging
|
Debugging
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
|
@ -43,3 +92,11 @@ In order to make things a bit easier to follow, we have decided to create our
|
||||||
own IRC channel. If you're interested in contributing, or have any technical
|
own IRC channel. If you're interested in contributing, or have any technical
|
||||||
questions, don't hesitate to visit `#zink on FreeNode
|
questions, don't hesitate to visit `#zink on FreeNode
|
||||||
<irc://irc.freenode.net/zink>`_ and say hi!
|
<irc://irc.freenode.net/zink>`_ and say hi!
|
||||||
|
|
||||||
|
|
||||||
|
.. _VK_KHR_get_physical_device_properties2: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_get_physical_device_properties2.html
|
||||||
|
.. _VK_KHR_external_memory_capabilities: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_external_memory_capabilities.html
|
||||||
|
.. _VK_KHR_maintenance1: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_maintenance1.html
|
||||||
|
.. _VK_KHR_external_memory: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_external_memory.html
|
||||||
|
.. _VK_EXT_transform_feedback: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT_transform_feedback.html
|
||||||
|
.. _VK_EXT_conditional_rendering: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT_conditional_rendering.html
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue