From e110e99053414a8924a092785bd3a1f681c7f843 Mon Sep 17 00:00:00 2001 From: Piotrek Date: Mon, 10 May 2021 22:07:07 +0200 Subject: [PATCH] larger block buffer --- src/game/mod.rs | 4 ++-- src/renderer/buffers/content.rs | 27 +++++++++++++++++++++++- src/renderer/mod.rs | 12 ++++++++--- src/shaders/raytrace/.bin/main.frag.spv | Bin 13632 -> 13616 bytes src/shaders/raytrace/main.frag | 4 ++-- 5 files changed, 39 insertions(+), 8 deletions(-) diff --git a/src/game/mod.rs b/src/game/mod.rs index f652b7c..a2b7f95 100644 --- a/src/game/mod.rs +++ b/src/game/mod.rs @@ -40,8 +40,8 @@ impl Game { // Generate new world else { let timer = Instant::now(); - for x in 0..32 { - for z in 0..32 { + for x in 0..128 { + for z in 0..128 { let pos = &Point3{x,y:0,z}; let block = app.world.gen_block(pos); content.write(pos, block); diff --git a/src/renderer/buffers/content.rs b/src/renderer/buffers/content.rs index af03f46..d03684a 100644 --- a/src/renderer/buffers/content.rs +++ b/src/renderer/buffers/content.rs @@ -4,10 +4,22 @@ use std::convert::TryInto; use cgmath::Point3; use crate::game::world::block::WorldBlock; +//note: remember to update in main.frag pub const BLOCK_SIZE : usize = 32; // 32x32x32 block size -pub const BLOCK_TEX_SIZE : usize = 64; // 64x64 blocks in texture +pub const BLOCK_TEX_SIZE : usize = 256; // 128x128 blocks in texture pub const NODE_TEX_SIZE: usize = 128; // 32x32x32 nodes in texture +const BLOCK_SIZE_QB: usize = BLOCK_SIZE*BLOCK_SIZE*BLOCK_SIZE; +const BLOCK_TEX_SIZE_SQ: usize = BLOCK_TEX_SIZE*BLOCK_TEX_SIZE; const NODE_TEX_SIZE_SQ: usize = NODE_TEX_SIZE*NODE_TEX_SIZE; +const NODE_TEX_SIZE_QB: usize = NODE_TEX_SIZE*NODE_TEX_SIZE*NODE_TEX_SIZE; + +pub struct ContentStats { + pub node_tex_size: f64, // MB + pub block_tex_size: f64, // MB + pub block_tex_used: f64, // MB + pub block_count: u64, // amount + pub block_used: u64, // amount +} pub struct Content { node_buffer: Box<[u32]>, @@ -73,6 +85,19 @@ impl Content { Self { node_buffer, node_dirty: false, node_texture, block_freeidx, block_texture, bind_layout, bind_group } } + pub fn stats(&self) -> ContentStats { + const TO_MB: f64 = 1.0 / (1024.0 * 1024.0); + + let block_used = self.block_freeidx as u64; + let block_count = BLOCK_TEX_SIZE_SQ as u64; + + let node_tex_size = (NODE_TEX_SIZE_QB*4) as f64 * TO_MB; + let block_tex_used = (block_used * BLOCK_SIZE_QB as u64) as f64 * TO_MB; + let block_tex_size = (BLOCK_TEX_SIZE_SQ*BLOCK_SIZE_QB) as f64 * TO_MB; + + ContentStats { node_tex_size, block_tex_size, block_tex_used, block_count, block_used } + } + #[allow(unused)] pub fn write(&mut self, queue: &wgpu::Queue, block_pos: &Point3, block: &WorldBlock) { diff --git a/src/renderer/mod.rs b/src/renderer/mod.rs index d266e43..19ec906 100644 --- a/src/renderer/mod.rs +++ b/src/renderer/mod.rs @@ -112,7 +112,7 @@ impl Renderer { * Actually renders the frame */ pub fn render(&mut self) -> Result<(), wgpu::SwapChainError> { - + // Update uniform buffer self.buffers.uniforms.values.update(&self.camera, self.start.elapsed().as_secs_f32()); self.queue.write_buffer(&self.buffers.uniforms.buffer, 0, bytemuck::cast_slice(&[self.buffers.uniforms.values])); @@ -128,17 +128,23 @@ impl Renderer { self.ui.set_text(3, format!("Swapchain get frame: {}ms", timer.elapsed().as_micros() as f64 / 1000.0)); // Create encoder that will build command buffer for us + let timer = Instant::now(); let mut encoder = self.device.create_command_encoder(&wgpu::CommandEncoderDescriptor { label: Some("Render Encoder"),}); self.raytrace_pass.render(&mut encoder, &mut self.buffers, &self.texture);//&frame.view); self.postprocess_pass.render(&mut encoder, &frame.view); self.ui.render(&self.device, &mut encoder, &frame.view, 1280, 720); + self.ui.set_text(4, format!("Build renderpass: {}ms", timer.elapsed().as_micros() as f64 / 1000.0)); // Submit encoder (command buffer) let timer = Instant::now(); self.queue.submit(std::iter::once(encoder.finish())); - self.ui.set_text(4, format!("Submit queue: {}ms", timer.elapsed().as_micros() as f64 / 1000.0)); - self.ui.recall(); + self.ui.set_text(5, format!("Submit queue: {}ms", timer.elapsed().as_micros() as f64 / 1000.0)); + + // Stats + let content_stats = self.buffers.content.stats(); + self.ui.set_text(7, format!("Nodes: {}MB", content_stats.node_tex_size)); + self.ui.set_text(8, format!("Blocks: {} / {} MB ({}/{})", content_stats.block_tex_used, content_stats.block_tex_size, content_stats.block_used, content_stats.block_count)); // Return ok Ok(()) diff --git a/src/shaders/raytrace/.bin/main.frag.spv b/src/shaders/raytrace/.bin/main.frag.spv index c7c65e87503bd2eae8774921d15f0f798b217c59..4e721000781704c913692b9162c06abbb5545a3c 100644 GIT binary patch literal 13616 zcmZvi3A|NR6~+&|0R)@}aKeWZB!UVEqA8%*!vq0wEcLw$?>@Ntrrv#z!7RbT9MT-f zNHlH4Qp>3_HFGvg%WTp{r^-^(EXUIN|Ia-O4(Hd2)&9P3t-bcz!`b&

E(FgOX%G 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 O_TRLrTdUmv-ts@2mQmaQ literal 13632 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 a^#0dxUdE0GtHro>0ykmm<|_B^TmA<~xl{K5 diff --git a/src/shaders/raytrace/main.frag b/src/shaders/raytrace/main.frag index 5bef744..270a628 100644 --- a/src/shaders/raytrace/main.frag +++ b/src/shaders/raytrace/main.frag @@ -21,8 +21,8 @@ layout(set=2, binding=0) uniform Materials { Material _Materials[256]; }; // Defines #define EPSILON 0.00000001 #define SCALE 1.0 -#define NODE_TEX_SIZE 48 -#define BLOCK_TEX_SIZE 64 +#define NODE_TEX_SIZE 128 +#define BLOCK_TEX_SIZE 256 #define BLOCK_SIZE 32 // Includes