diff --git a/Cargo.lock b/Cargo.lock index c74086f..1d574d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1171,6 +1171,7 @@ dependencies = [ "log", "pixels", "rand", + "wgpu", "winit", "winit_input_helper", ] diff --git a/Cargo.toml b/Cargo.toml index 3644aeb..b62c120 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,5 +14,6 @@ rand = "0.8" env_logger = "0.9" log = "0.4" pixels = "0.7" +wgpu = "0.11" winit = "0.25" winit_input_helper = "0.10" diff --git a/src/render.rs b/src/render.rs index d945b3d..433b987 100644 --- a/src/render.rs +++ b/src/render.rs @@ -5,7 +5,7 @@ use crate::ppu::{WIDTH, HEIGHT}; use std::{thread, time}; use log::error; -use pixels::{Pixels, SurfaceTexture}; +use pixels::{Pixels, PixelsBuilder, SurfaceTexture}; use winit::dpi::LogicalSize; use winit::event::{Event, VirtualKeyCode, WindowEvent}; use winit::event_loop::{ControlFlow, EventLoop}; @@ -15,7 +15,20 @@ use winit_input_helper::WinitInputHelper; pub fn create_pixels(width: u32, height: u32, window: &Window) -> Pixels { let window_size = window.inner_size(); let surface_texture = SurfaceTexture::new(window_size.width, window_size.height, window); - Pixels::new(width, height, surface_texture).unwrap() + // Pixels::new(width, height, surface_texture).unwrap() + PixelsBuilder::new(width, height, surface_texture) + .device_descriptor(wgpu::DeviceDescriptor { + limits: wgpu::Limits { + max_storage_textures_per_shader_stage: 4, + max_texture_dimension_2d: 4096, + max_texture_dimension_1d: 4096, + ..wgpu::Limits::default() + }, + ..wgpu::DeviceDescriptor::default() + }) + .enable_vsync(false) + .build() + .unwrap() } pub fn create_window(width: u32, height: u32, title: String, event_loop: &EventLoop) -> Window {