count properly

This commit is contained in:
Quaternions 2023-09-28 18:44:18 -07:00
parent 099865c682
commit 37e9299f7d

View File

@ -136,17 +136,18 @@ impl GraphicsData {
} }
} }
//drain the modeldata vec so entities can be /moved/ to models.entities //drain the modeldata vec so entities can be /moved/ to models.entities
let mut model_count=0;
let mut instance_count=0; let mut instance_count=0;
let uniform_buffer_binding_size=<GraphicsData as framework::Example>::required_limits().max_uniform_buffer_binding_size as usize; let uniform_buffer_binding_size=<GraphicsData as framework::Example>::required_limits().max_uniform_buffer_binding_size as usize;
let chunk_size=uniform_buffer_binding_size/MODEL_BUFFER_SIZE_BYTES; let chunk_size=uniform_buffer_binding_size/MODEL_BUFFER_SIZE_BYTES;
self.models.reserve(modeldatas.len()); self.models.reserve(modeldatas.len());
for modeldata in modeldatas.drain(..) { for modeldata in modeldatas.drain(..) {
let n_instances=modeldata.instances.len(); instance_count+=model.instances.len();
for instances_chunk in modeldata.instances.rchunks(chunk_size){ for instances_chunk in modeldata.instances.rchunks(chunk_size){
instance_count+=1; model_count+=1;
let model_uniforms = get_instances_buffer_data(instances_chunk); let model_uniforms = get_instances_buffer_data(instances_chunk);
let model_buf = device.create_buffer_init(&wgpu::util::BufferInitDescriptor { let model_buf = device.create_buffer_init(&wgpu::util::BufferInitDescriptor {
label: Some(format!("Model{} Buf",instance_count).as_str()), label: Some(format!("Model{} Buf",model_count).as_str()),
contents: bytemuck::cast_slice(&model_uniforms), contents: bytemuck::cast_slice(&model_uniforms),
usage: wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST, usage: wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST,
}); });
@ -175,7 +176,7 @@ impl GraphicsData {
resource: wgpu::BindingResource::Sampler(&self.samplers.repeat), resource: wgpu::BindingResource::Sampler(&self.samplers.repeat),
}, },
], ],
label: Some(format!("Model{} Bind Group",instance_count).as_str()), label: Some(format!("Model{} Bind Group",model_count).as_str()),
}); });
let vertex_buf = device.create_buffer_init(&wgpu::util::BufferInitDescriptor { let vertex_buf = device.create_buffer_init(&wgpu::util::BufferInitDescriptor {
label: Some("Vertex"), label: Some("Vertex"),