Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 14b6a92

Browse files
committed
Add initial overview
0 parents  commit 14b6a92

6 files changed

Lines changed: 207 additions & 0 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This website will offer a complete overview of developing applications using the new Vulkan graphics and compute API.

debugger.png

543 KB
Loading

favicon.png

2.86 KB
Loading

index.html

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>Vulkan Tutorial</title>
5+
6+
<meta name="description" content="A tutorial for using the Vulkan graphics and compute API" />
7+
<meta name="author" content="Alexander Overvoorde" />
8+
<meta name="keywords" content="vulkan, tutorial, guide, info, help, glnext, khronos, spir-v" />
9+
10+
<link rel="shortcut icon" type="image/png" href="favicon.png "/>
11+
12+
<link rel="stylesheet" href="main.css" />
13+
</head>
14+
15+
<body>
16+
<header>
17+
<img src="logo.png" alt="Vulkan logo" />
18+
</header>
19+
20+
<article>
21+
<aside>
22+
This website is a work in progress and will be updated
23+
continuously as more info is released.
24+
</aside>
25+
26+
<h1>Overview</h1>
27+
28+
Vulkan is a new open standard API by Khronos that offers low-level
29+
control of GPUs for graphics and general purpose computation. It has
30+
been designed from the ground up around the capabilities of modern
31+
hardware.
32+
33+
<ul class="features">
34+
<li>
35+
<h2>Direct GPU control with minimal driver overhead</h2>
36+
37+
<p>
38+
For example, data is written directly to GPU memory
39+
instead of using calls equivalent to glUniform.
40+
Applications can implement their own memory allocation
41+
strategies. (<a href="http://blog.imgtec.com/powervr/trying-out-the-new-vulkan-graphics-api-on-powervr-gpus">Source</a>)
42+
</p>
43+
44+
<p>
45+
Another feature is the <em>render pass</em>, which
46+
offers control over loading of render targets at the
47+
start and end of renders, which is very useful for
48+
tiling architectures.
49+
</p>
50+
</li>
51+
<li>
52+
<h2>Multi-threading friendly architecture</h2>
53+
54+
<p>
55+
Multiple threads can create and populate command buffers
56+
at the same time, which can then be submitted to the GPU
57+
by a separate thread.
58+
</p>
59+
</li>
60+
<li>
61+
<h2>Unified API for desktop, mobile and embedded platforms</h2>
62+
63+
<p>
64+
There is no equivalent of OpenGL ES, Vulkan offers the
65+
same API on all platforms.
66+
</p>
67+
</li>
68+
<li>
69+
<h2>Intermediate bytecode for shaders</h2>
70+
71+
<p>
72+
The driver accepts shaders in the <a href="https://www.khronos.org/registry/spir-v/specs/1.0/SPIRV.pdf">SPIR-V</a> bytecode
73+
format. Khronos will supply a separate compiler for GLSL
74+
that targets this intermediate format. Third-party
75+
developers will be able to write their own compilers for
76+
other languages.
77+
</p>
78+
</li>
79+
</ul>
80+
81+
All of these features lead to simpler drivers, more predictable
82+
performance, more control and less differences between vendor
83+
implementations. (<a href="https://www.khronos.org/vulkan">Source</a>)
84+
85+
<h1>API</h1>
86+
87+
Not much is known about the API yet, but the blog post linked above
88+
offers some insight. API calls have the <code>vk</code> prefix and
89+
functions take the state that they will change as their first
90+
parameter.
91+
92+
<pre>
93+
vkCmdBindDescriptorSet(cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, textureDescriptorSet[0], 0);
94+
vkQueueSubmit(graphicsQueue, 1, &cmdBuffer, 0, 0, fence);
95+
vkMapMemory(staticUniformBufferMemory, 0, (void **)&data);
96+
// ...
97+
vkUnmapMemory(staticUniformBufferMemory);
98+
</pre>
99+
100+
All hardware that supports OpenGL ES 3.1 or later can also support
101+
Vulkan.
102+
103+
<h1>Tools</h1>
104+
105+
Valve, LunarG, Codeplay and other parties are already developing
106+
tools. Displayed below is a screenshot of the Vulkan debugger being
107+
developed by Valve and LunarG.
108+
109+
<p><img src="debugger.png" /></p>
110+
111+
Khronos has announced that these utilities will be available at the
112+
same time as the first drivers. (<a href="https://www.khronos.org/assets/uploads/developers/library/overview/2015_vulkan_v1_Overview.pdf">Source</a>)
113+
114+
<h1>Demo</h1>
115+
116+
<a href="http://imgtec.com/">Imagination Technologies</a> has
117+
developed a proof-of-concept driver for Vulkan for their PowerVR
118+
GPUs. They have ported an OpenGL ES 3.0 demo to Vulkan.
119+
120+
<p>
121+
<iframe width="700" height="394" src="https://www.youtube.com/embed/KdnRI0nquKc" frameborder="0" allowfullscreen></iframe>
122+
</p>
123+
</article>
124+
125+
<a href="https://github.com/Overv/VulkanTutorial"><img style="position: absolute; top: 0; left: 0; border: 0;" src="https://camo.githubusercontent.com/567c3a48d796e2fc06ea80409cc9dd82bf714434/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f6c6566745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_left_darkblue_121621.png"></a>
126+
127+
<script>
128+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
129+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
130+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
131+
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
132+
133+
ga('create', 'UA-60335079-1', 'auto');
134+
ga('send', 'pageview');
135+
</script>
136+
</body>
137+
</html>

logo.png

14 KB
Loading

main.css

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
header {
2+
max-width: 700px;
3+
4+
margin: auto;
5+
margin-top: 50px;
6+
7+
padding-bottom: 20px;
8+
border-bottom: 1px solid #ccc;
9+
}
10+
11+
header img {
12+
display: block;
13+
14+
height: 70px;
15+
16+
margin: auto;
17+
}
18+
19+
article {
20+
max-width: 700px;
21+
22+
margin: auto;
23+
margin-top: 20px;
24+
25+
font-family: sans-serif;
26+
font-size: 14px;
27+
}
28+
29+
article img {
30+
width: 700px;
31+
}
32+
33+
aside {
34+
padding: 5px;
35+
36+
border: 1px solid #7F0200;
37+
background: #CC0600;
38+
39+
color: white;
40+
text-align: center;
41+
}
42+
43+
ul.features {
44+
list-style-type: none;
45+
}
46+
47+
.features li {
48+
border-left: 4px solid #CC0600;
49+
50+
margin-bottom: 10px;
51+
margin-right: 50px;
52+
padding: 10px;
53+
}
54+
55+
h2 {
56+
margin: 0;
57+
font-size: 16px;
58+
}
59+
60+
a {
61+
color: inherit;
62+
text-decoration: none;
63+
64+
border-bottom: 1px dotted black;
65+
}
66+
67+
a:hover {
68+
border-bottom: 1px solid black;
69+
}

0 commit comments

Comments
 (0)