aboutsummaryrefslogtreecommitdiff
path: root/flowy/src/main.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-05-05 15:09:54 +0200
committermetamuffin <metamuffin@disroot.org>2025-05-05 15:09:54 +0200
commit306f96164784a8cbf405e72fa4364d6523366e95 (patch)
tree51717fc139871baa438aad806f4923669ae0896c /flowy/src/main.rs
parent9cc089e2d6e841879e430b01d2f3d92c8820523e (diff)
downloadvideo-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar
video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.bz2
video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.zst
old dir
Diffstat (limited to 'flowy/src/main.rs')
-rw-r--r--flowy/src/main.rs132
1 files changed, 0 insertions, 132 deletions
diff --git a/flowy/src/main.rs b/flowy/src/main.rs
deleted file mode 100644
index 535de7e..0000000
--- a/flowy/src/main.rs
+++ /dev/null
@@ -1,132 +0,0 @@
-pub mod motion;
-
-use framework::{CodecMode, Framework};
-use log::{debug, info};
-use motion::{dec::MotionDecoder, enc::MotionEncoder, CommonBuffers, Params};
-use pollster::FutureExt;
-use std::{
- io::{stdin, stdout, ErrorKind, Read, Write},
- process::exit,
- time::Instant,
-};
-use wgpu::{
- Backends, DeviceDescriptor, Extent3d, Features, Instance, InstanceDescriptor, Limits,
- MaintainBase, PowerPreference, RequestAdapterOptions,
-};
-
-use crate::motion::{debug::MotionDebugger, RoundParams};
-
-fn main() {
- env_logger::init_from_env("LOG");
- info!("allocating some stuff");
- let t = Instant::now();
-
- let instance = Instance::new(InstanceDescriptor {
- backends: Backends::all(),
- ..Default::default()
- });
-
- let adapter = instance
- .request_adapter(&RequestAdapterOptions {
- power_preference: PowerPreference::HighPerformance,
- force_fallback_adapter: false,
- compatible_surface: None,
- })
- .block_on()
- .unwrap();
-
- let (device, queue) = adapter
- .request_device(
- &DeviceDescriptor {
- label: None,
- required_features: Features::empty(),
- required_limits: Limits::default(),
- },
- None,
- )
- .block_on()
- .unwrap();
-
- let (mut framework, fparams) = Framework::init();
-
- let (width, height) = (fparams.width, fparams.height);
- let bsize = 8;
- let params = Params {
- width,
- height,
- extent: Extent3d {
- width: width as u32,
- height: height as u32,
- depth_or_array_layers: 1,
- },
- blocks_x: width / bsize,
- blocks_y: height / bsize,
- block_width: bsize,
- block_height: bsize,
- blocks: (width / bsize) * (height / bsize),
- init_debug: true,
- };
-
- let bufs = CommonBuffers::create(&device, &params);
- let menc = MotionEncoder::create(&device, &params, &bufs);
- let mdec = MotionDecoder::create(&device, &params, &bufs);
- let mdeb = MotionDebugger::create(&device, &params, &bufs);
-
- let mut buffer = vec![0u8; width * height * 4];
-
- menc.write_uniforms(&queue);
- mdec.write_uniforms(&queue);
- mdeb.write_uniforms(&queue);
-
- info!("ready (setup took {:?})", t.elapsed());
-
- let mut i = 0;
- loop {
- let rp = RoundParams {
- swap: i % 2,
- debug: fparams.debug == 2,
- preview: fparams.debug > 0,
- };
- debug!("{params:?} {rp:?}");
- debug!("read");
- match stdin().read_exact(&mut buffer) {
- Ok(_) => (),
- Err(e) if e.kind() == ErrorKind::UnexpectedEof => {
- break;
- }
- Err(e) => Err(e).unwrap(),
- }
-
- framework.next_frame_manual();
-
- debug!("upload");
- bufs.upload_texture(&queue, &params, &rp, &buffer);
-
- debug!("compute");
- let mut encoder = device.create_command_encoder(&Default::default());
-
- if let CodecMode::Encode = fparams.mode {
- menc.pass(&mut encoder, &params, &rp);
- }
- mdec.pass(&mut encoder, &params, &rp);
- if rp.debug {
- mdeb.pass(&mut encoder, &params, &rp);
- }
- if rp.preview {
- bufs.prepare_texture_download(&mut encoder, &params, &rp);
- }
-
- queue.submit(Some(encoder.finish()));
- device.poll(MaintainBase::Wait);
-
- debug!("download");
- bufs.download_texture(&device, &mut buffer);
-
- framework.encode_done(&[]);
- debug!("write");
- stdout().write_all(&buffer).unwrap();
- i += 1;
- }
- eprintln!("done");
- exit(0);
-}