300: Properly free pass contents r=kvark a=kvark

Fixes #299

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
This commit is contained in:
bors[bot]
2020-05-06 01:56:54 +00:00
committed by GitHub
6 changed files with 38 additions and 24 deletions

View File

@@ -28,14 +28,14 @@ vulkan = ["wgc/gfx-backend-vulkan"]
package = "wgpu-core"
version = "0.5"
git = "https://github.com/gfx-rs/wgpu"
rev = "bee826e79dcbe11b544296179a6bbb2c05d9639b"
rev = "4c448c3fc583da6d22c62c7e92bbb74b53863357"
features = ["raw-window-handle"]
[dependencies.wgt]
package = "wgpu-types"
version = "0.5"
git = "https://github.com/gfx-rs/wgpu"
rev = "bee826e79dcbe11b544296179a6bbb2c05d9639b"
rev = "4c448c3fc583da6d22c62c7e92bbb74b53863357"
[dependencies]
arrayvec = "0.5"

View File

@@ -17,12 +17,15 @@ async fn run() {
.unwrap();
let (device, queue) = adapter
.request_device(&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
.request_device(
&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
},
limits: wgpu::Limits::default(),
},
limits: wgpu::Limits::default(),
}, None)
None,
)
.await
.unwrap();

View File

@@ -68,12 +68,15 @@ async fn run_async<E: Example>(event_loop: EventLoop<()>, window: Window) {
.unwrap();
let (device, queue) = adapter
.request_device(&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
.request_device(
&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
},
limits: wgpu::Limits::default(),
},
limits: wgpu::Limits::default(),
}, None)
None,
)
.await
.unwrap();

View File

@@ -35,12 +35,15 @@ async fn execute_gpu(numbers: Vec<u32>) -> Vec<u32> {
.unwrap();
let (device, queue) = adapter
.request_device(&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
.request_device(
&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
},
limits: wgpu::Limits::default(),
},
limits: wgpu::Limits::default(),
}, None)
None,
)
.await
.unwrap();

View File

@@ -20,12 +20,15 @@ async fn run(event_loop: EventLoop<()>, window: Window, swapchain_format: wgpu::
.unwrap();
let (device, queue) = adapter
.request_device(&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
.request_device(
&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
},
limits: wgpu::Limits::default(),
},
limits: wgpu::Limits::default(),
}, None)
None,
)
.await
.unwrap();

View File

@@ -813,7 +813,8 @@ impl crate::Context for Context {
let ptr = wgc::command::compute_ffi::wgpu_compute_pass_finish(pass, &mut length);
slice::from_raw_parts(ptr, length)
};
gfx_select!(*encoder => self.command_encoder_run_compute_pass(*encoder, data))
gfx_select!(*encoder => self.command_encoder_run_compute_pass(*encoder, data));
unsafe { pass.invalidate() };
}
fn encoder_begin_render_pass<'a>(
@@ -867,7 +868,8 @@ impl crate::Context for Context {
let ptr = wgc::command::render_ffi::wgpu_render_pass_finish(pass, &mut length);
slice::from_raw_parts(ptr, length)
};
gfx_select!(*encoder => self.command_encoder_run_render_pass(*encoder, data))
gfx_select!(*encoder => self.command_encoder_run_render_pass(*encoder, data));
unsafe { pass.invalidate() };
}
fn encoder_finish(&self, encoder: &Self::CommandEncoderId) -> Self::CommandBufferId {