Skip to content

Commit

Permalink
remoave bind fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Tom Gowan committed Dec 27, 2018
1 parent b3cfa1b commit d57f7c6
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 38 deletions.
10 changes: 0 additions & 10 deletions vulkano/src/buffer/cpu_access.rs
Original file line number Diff line number Diff line change
Expand Up @@ -200,17 +200,7 @@ impl<T: ?Sized> CpuAccessibleBuffer<T> {
|_| AllocFromRequirementsFilter::Allowed)?;
debug_assert!((mem.offset() % mem_reqs.alignment) == 0);
debug_assert!(mem.mapped_memory().is_some());
match mem.mapped_memory() {
Some(ref mm) => {
mm.disable_map()
},
None => eprintln!("Failed to get memory to disable map"),
}
buffer.bind_memory(mem.memory(), mem.offset())?;
match mem.mapped_memory() {
Some(ref mm) => mm.activate_map(),
None => eprintln!("Failed to get memory to re map"),
}

Ok(Arc::new(CpuAccessibleBuffer {
inner: buffer,
Expand Down
32 changes: 4 additions & 28 deletions vulkano/src/memory/device_memory.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ use std::ops::DerefMut;
use std::ops::Range;
use std::os::raw::c_void;
use std::ptr;
use std::sync::{Arc, Mutex};
use std::sync::Arc;

use Error;
use OomError;
Expand Down Expand Up @@ -188,7 +188,7 @@ impl DeviceMemory {

Ok(MappedDeviceMemory {
memory: mem,
pointer: Mutex::new(ptr),
pointer: ptr,
coherent: coherent,
})
}
Expand Down Expand Up @@ -283,7 +283,7 @@ impl Drop for DeviceMemory {
/// ```
pub struct MappedDeviceMemory {
memory: DeviceMemory,
pointer: Mutex<*mut c_void>,
pointer: *mut c_void,
coherent: bool,
}

Expand All @@ -306,29 +306,6 @@ impl MappedDeviceMemory {
self.memory
}

pub fn disable_map(&self) {
unsafe {
let device = self.memory.device();
let vk = device.pointers();
vk.UnmapMemory(device.internal_object(), self.memory.memory);
}
}

pub fn activate_map(&self) {
unsafe{
let device = self.memory.device();
let vk = device.pointers();
let mut ptr = self.pointer.lock().unwrap();
check_errors(vk.MapMemory(device.internal_object(),
self.memory.memory,
0,
self.memory.size as vk::DeviceSize,
0, /* reserved flags */
&mut *ptr)).expect("Failed to remap");
}

}

/// Gives access to the content of the memory.
///
/// This function takes care of calling `vkInvalidateMappedMemoryRanges` and
Expand All @@ -348,8 +325,7 @@ impl MappedDeviceMemory {
where T: Content
{
let vk = self.memory.device().pointers();
let ptr: *const c_void = *self.pointer.lock().unwrap();
let pointer = T::ref_from_ptr((ptr as usize + range.start) as *mut _,
let pointer = T::ref_from_ptr((self.pointer as usize + range.start) as *mut _,
range.end - range.start)
.unwrap(); // TODO: error

Expand Down

0 comments on commit d57f7c6

Please sign in to comment.