Skip to content

Commit f4745cf

Browse files
Compiler Explorer example for VK_KHR_storage_buffer_storage_class (#301)
1 parent 2c1c4fd commit f4745cf

File tree

3 files changed

+33
-24
lines changed

3 files changed

+33
-24
lines changed

chapters/extensions/shader_features.adoc

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,22 +123,25 @@ If you target Vulkan 1.0 (which requires SPIR-V 1.0), using glslang `--target-en
123123

124124
[source,swift]
125125
----
126-
Decorate 7(ssbo) BufferBlock
127-
8: TypePointer Uniform 7(ssbo)
128-
9: 8(ptr) Variable Uniform
129-
12: TypePointer Uniform 6(int)
126+
OpDecorate %ssbo BufferBlock
127+
%ptr = OpTypePointer Uniform %ssbo
128+
%var = OpVariable %ptr Uniform
130129
----
131130

132131
Since `SPV_KHR_storage_buffer_storage_class` was added to SPIR-V 1.3, if you target Vulkan 1.1 (which requires SPIR-V 1.3) ,using glslang `--target-env vulkan1.1`, it will make use of the new `StorageBuffer` class.
133132

134133
[source,swift]
135134
----
136-
Decorate 7(ssbo) Block
137-
8: TypePointer StorageBuffer 7(ssbo)
138-
9: 8(ptr) Variable StorageBuffer
139-
12: TypePointer StorageBuffer 6(int)
135+
OpDecorate %ssbo Block
136+
%ptr = OpTypePointer StorageBuffer %ssbo
137+
%var = OpVariable %ptr StorageBuffer
140138
----
141139

140+
[NOTE]
141+
====
142+
link:https://godbolt.org/z/a8WMEeejs[Try Online]
143+
====
144+
142145
[[VK_KHR_variable_pointers]]
143146
== VK_KHR_variable_pointers
144147

lang/jp/chapters/extensions/shader_features.adoc

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,22 +123,25 @@ Vulkan 1.0(SPIR-V 1.0が必要)をターゲットにして、glslang の `--
123123

124124
[source,swift]
125125
----
126-
Decorate 7(ssbo) BufferBlock
127-
8: TypePointer Uniform 7(ssbo)
128-
9: 8(ptr) Variable Uniform
129-
12: TypePointer Uniform 6(int)
126+
OpDecorate %ssbo BufferBlock
127+
%ptr = OpTypePointer Uniform %ssbo
128+
%var = OpVariable %ptr Uniform
130129
----
131130

132131
SPIR-V 1.3 には `SPV_KHR_storage_buffer_storage_class` が追加されたので、Vulkan 1.1 (SPIR-V 1.3 が必要) をターゲットにして、glslang の `--target-env vulkan1.1` を使用すると、新しい `StorageBuffer` クラスが使用されます。
133132

134133
[source,swift]
135134
----
136-
Decorate 7(ssbo) Block
137-
8: TypePointer StorageBuffer 7(ssbo)
138-
9: 8(ptr) Variable StorageBuffer
139-
12: TypePointer StorageBuffer 6(int)
135+
OpDecorate %ssbo Block
136+
%ptr = OpTypePointer StorageBuffer %ssbo
137+
%var = OpVariable %ptr StorageBuffer
140138
----
141139

140+
[NOTE]
141+
====
142+
link:https://godbolt.org/z/a8WMEeejs[オンラインで試す]
143+
====
144+
142145
[[VK_KHR_variable_pointers]]
143146
== VK_KHR_variable_pointers
144147

lang/kor/chapters/extensions/shader_features.adoc

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,22 +123,25 @@ Vulkan 1.0 (SPIR-V 1.0이 필요)을 대상으로 하는 경우, glslang `--targ
123123

124124
[source,swift]
125125
----
126-
Decorate 7(ssbo) BufferBlock
127-
8: TypePointer Uniform 7(ssbo)
128-
9: 8(ptr) Variable Uniform
129-
12: TypePointer Uniform 6(int)
126+
OpDecorate %ssbo BufferBlock
127+
%ptr = OpTypePointer Uniform %ssbo
128+
%var = OpVariable %ptr Uniform
130129
----
131130

132131
SPIR-V 1.3에 `SPV_KHR_storage_buffer_storage_class` 가 추가되었으므로, (SPIR-V 1.3이 필요) Vulkan 1.1을 타깃으로 하는 경우, glslang `--target-env vulkan1.1` 을 사용하면 새로운 `StorageBuffer` 클래스를 사용합니다.
133132

134133
[source,swift]
135134
----
136-
Decorate 7(ssbo) Block
137-
8: TypePointer StorageBuffer 7(ssbo)
138-
9: 8(ptr) Variable StorageBuffer
139-
12: TypePointer StorageBuffer 6(int)
135+
OpDecorate %ssbo Block
136+
%ptr = OpTypePointer StorageBuffer %ssbo
137+
%var = OpVariable %ptr StorageBuffer
140138
----
141139

140+
[NOTE]
141+
====
142+
link:https://godbolt.org/z/a8WMEeejs[온라인 체험]
143+
====
144+
142145
[[VK_KHR_variable_pointers]]
143146
== VK_KHR_variable_pointers
144147

0 commit comments

Comments
 (0)