Skip to content

Commit 240c681

Browse files
committed
typed buffer: added tests that fail
1 parent de9139d commit 240c681

File tree

4 files changed

+78
-0
lines changed

4 files changed

+78
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// build-pass
2+
3+
use glam::Vec4;
4+
use spirv_std::spirv;
5+
use spirv_std::TypedBuffer;
6+
7+
#[spirv(fragment)]
8+
pub fn main(
9+
#[spirv(storage_buffer, descriptor_set = 0, binding = 0)] single: &TypedBuffer<Vec4>,
10+
#[spirv(storage_buffer, descriptor_set = 0, binding = 1)] single_mut: &mut TypedBuffer<Vec4>,
11+
) {
12+
**single_mut = **single;
13+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// build-pass
2+
// compile-flags: -C target-feature=+RuntimeDescriptorArray,+ext:SPV_EXT_descriptor_indexing
3+
4+
use glam::Vec4;
5+
use spirv_std::spirv;
6+
use spirv_std::{RuntimeArray, TypedBuffer};
7+
8+
#[spirv(fragment)]
9+
pub fn main(
10+
#[spirv(storage_buffer, descriptor_set = 0, binding = 0)] desc_array: &RuntimeArray<
11+
TypedBuffer<Vec4>,
12+
>,
13+
#[spirv(storage_buffer, descriptor_set = 0, binding = 1)] desc_array_mut: &mut RuntimeArray<
14+
TypedBuffer<Vec4>,
15+
>,
16+
) {
17+
unsafe {
18+
for buffer in 0..3 {
19+
let mut buffer_from = desc_array.index(buffer);
20+
let buffer_to = desc_array_mut.index_mut(buffer);
21+
**buffer_to = **buffer_from;
22+
}
23+
}
24+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// build-pass
2+
// compile-flags: -C target-feature=+RuntimeDescriptorArray,+ext:SPV_EXT_descriptor_indexing
3+
4+
use glam::Vec4;
5+
use spirv_std::spirv;
6+
use spirv_std::{RuntimeArray, TypedBuffer};
7+
8+
#[spirv(fragment)]
9+
pub fn main(
10+
#[spirv(storage_buffer, descriptor_set = 0, binding = 0)] desc_array: &RuntimeArray<
11+
TypedBuffer<[Vec4]>,
12+
>,
13+
#[spirv(storage_buffer, descriptor_set = 0, binding = 1)] desc_array_mut: &mut RuntimeArray<
14+
TypedBuffer<[Vec4]>,
15+
>,
16+
) {
17+
unsafe {
18+
for buffer in 0..3 {
19+
let mut buffer_from = desc_array.index(buffer);
20+
let buffer_to = desc_array_mut.index_mut(buffer);
21+
for i in 42..48 {
22+
buffer_to[i] = buffer_from[i];
23+
}
24+
}
25+
}
26+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// build-pass
2+
3+
use glam::Vec4;
4+
use spirv_std::spirv;
5+
use spirv_std::TypedBuffer;
6+
7+
#[spirv(fragment)]
8+
pub fn main(
9+
#[spirv(storage_buffer, descriptor_set = 0, binding = 0)] slice: &TypedBuffer<[Vec4]>,
10+
#[spirv(storage_buffer, descriptor_set = 0, binding = 1)] slice_mut: &mut TypedBuffer<[Vec4]>,
11+
) {
12+
for i in 0..5 {
13+
slice_mut[i] = slice[i];
14+
}
15+
}

0 commit comments

Comments
 (0)