mirror of
https://github.com/Zeckmathederg/glfs.git
synced 2025-02-03 06:27:16 +08:00
58 lines
2.1 KiB
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>
|