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:

committed by
Marge Bot

parent
f85488ab82
commit
d50e8554b9
@@ -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
|
||||
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
|
||||
---------
|
||||
|
||||
@@ -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
|
||||
questions, don't hesitate to visit `#zink on FreeNode
|
||||
<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
|
||||
|
Reference in New Issue
Block a user