glfs/shareddeps/gfxapi/vk/introvk.xml

58 lines
2.1 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../../general.ent">
%general-entities;
]>
<sect1 id="introvk" xreflabel="Intro to Vulkan">
<?dbhtml filename="introvk.html"?>
<title>Intro to Vulkan</title>
<sect2>
<title>What is Vulkan</title>
<para>
Vulkan is a low-level, low-overhead cross-platform API and
open standard for 3D graphics and computing. It was intended
to address the shortcomings of OpenGL, and allow developers
more control over the GPU.
</para>
<para>
Thus, when well optimized, applications written with Vulkan
in mind perform better than those written in OpenGL. Most
Windows games are written in DirectX. DXVK, which is
part of <application>Steam</application>'s Proton and
<application>Wine</application>, converts DirectX instructions
to Vulkan calls and has very little overhead. It performs almost
as good as on Windows, whereas converting the DirectX instructions
to OpenGL calls has much more overhead.
</para>
</sect2>
<sect2>
<title>What do I need to install?</title>
<para>
Unlike OpenGL where it had two options to get the libraries
and possibly cause confusing and extra thought, the Vulkan
library is supplied directly from KhronosGroup.
<xref linkend="vkheaders"/> must be installed before
<xref linkend="libvk"/>. While this is the baseline for what is
needed to get Vulkan working, some applications require more software
in relation to Vulkan: <xref linkend="spirv-headers"/>,
<xref linkend="spirv-tools"/>, and <xref linkend="glslang"/>.
They are necessary to compile Vulkan shaders into bytecode which Vulkan
as an API can process, unlike OpenGL where shader code is written
as a string, OpenGL compiles it into a binary, then runs it every frame.
Using bytecode for OpenGL is possible, however, and requires extra setup.
</para>
</sect2>
</sect1>