1 // Copyright (c) 2016 The vulkano developers
2 // Licensed under the Apache License, Version 2.0
3 // <LICENSE-APACHE or
4 // https://www.apache.org/licenses/LICENSE-2.0> or the MIT
5 // license <LICENSE-MIT or https://opensource.org/licenses/MIT>,
6 // at your option. All files in the project carrying such
7 // notice may not be copied, modified, or distributed except
8 // according to those terms.
9
10 use crate::buffer::BufferUsage;
11 use crate::buffer::CpuAccessibleBuffer;
12 use crate::command_buffer::pool::CommandPool;
13 use crate::command_buffer::pool::CommandPoolBuilderAlloc;
14 use crate::command_buffer::synced::base::SyncCommandBufferBuilder;
15 use crate::command_buffer::synced::base::SyncCommandBufferBuilderError;
16 use crate::command_buffer::sys::Flags;
17 use crate::command_buffer::Kind;
18 use crate::device::Device;
19 use std::iter;
20
21 #[test]
basic_creation()22 fn basic_creation() {
23 unsafe {
24 let (device, queue) = gfx_dev_and_queue!();
25 let pool = Device::standard_command_pool(&device, queue.family());
26 let pool_builder_alloc = pool.alloc(false, 1).unwrap().next().unwrap();
27 SyncCommandBufferBuilder::new(&pool_builder_alloc.inner(), Kind::primary(), Flags::None)
28 .unwrap();
29 }
30 }
31
32 #[test]
basic_conflict()33 fn basic_conflict() {
34 unsafe {
35 let (device, queue) = gfx_dev_and_queue!();
36
37 let pool = Device::standard_command_pool(&device, queue.family());
38 let pool_builder_alloc = pool.alloc(false, 1).unwrap().next().unwrap();
39 let mut sync = SyncCommandBufferBuilder::new(
40 &pool_builder_alloc.inner(),
41 Kind::primary(),
42 Flags::None,
43 )
44 .unwrap();
45 let buf = CpuAccessibleBuffer::from_data(device, BufferUsage::all(), false, 0u32).unwrap();
46
47 match sync.copy_buffer(buf.clone(), buf.clone(), iter::once((0, 0, 4))) {
48 Err(SyncCommandBufferBuilderError::Conflict { .. }) => (),
49 _ => panic!(),
50 };
51 }
52 }
53