• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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