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

Reply via email to