Module: Mesa Branch: master Commit: d50e8554b997338d709e526a8e7c6cd7e970f68c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d50e8554b997338d709e526a8e7c6cd7e970f68c
Author: Erik Faye-Lund <[email protected]> Date: Tue Oct 13 18:09:05 2020 +0200 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 <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7116> --- docs/gallium/drivers/zink.rst | 57 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/docs/gallium/drivers/zink.rst b/docs/gallium/drivers/zink.rst index 0756c52b232..18f3d433d89 100644 --- a/docs/gallium/drivers/zink.rst +++ b/docs/gallium/drivers/zink.rst @@ -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 _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
