Validate bind group buffer ranges (#268)

* Validate bind group buffer range

The bound buffer range must fit in the the buffer size.
This commit is contained in:
Yanchi Toth
2019-08-07 17:13:57 +02:00
committed by Dzmitry Malyshau
parent 28dff7c10d
commit 186fbeec36

View File

@@ -1152,7 +1152,17 @@ pub fn device_create_bind_group(
.buffers
.use_extend(&*buffer_guard, bb.buffer, (), usage)
.unwrap();
let range = Some(bb.offset) .. Some(bb.offset + bb.size);
let start = bb.offset;
let end = bb.offset + bb.size;
assert!(
end <= buffer.size,
"Bound buffer range {:?} does not fit in buffer size {}",
start .. end,
buffer.size
);
let range = Some(start) .. Some(end);
hal::pso::Descriptor::Buffer(&buffer.raw, range)
}
binding_model::BindingResource::Sampler(id) => {