cloudhead / rx

👾 Modern and minimalist pixel editor
https://discord.gg/xHggPjfsS9
GNU General Public License v3.0
3.1k stars 109 forks source link

Rx shows black screen on i3 #28

Closed SoptikHa2 closed 4 years ago

SoptikHa2 commented 4 years ago

I installed rx with --features vulkan. After start, I get:

[2019-10-01T17:19:38Z WARN  rx::platform::backend] glfw: content scale isn't uniform: 0.7791411 x 0.7807377

The only thing I see is a black screen that I can't interact with (the -vv log is on pastebin).

I tried to interact with Rx nonetheless, following ReadMe instructions in hope that I'll be able to save a file to test if it works, but I get OutOfMemory before I get chance to do :w test.png.

I use i3, dual GPU intel/nvidia. Installed vulkan packages are

vulkan-icd-loader 1.1.121-1
vulkan-mesa-layer 19.1.7-1

Do you have any idea how to work around this?

cloudhead commented 4 years ago

Strange. Can you try enabling vsync in rx?

set vsync = on

In your ~/.config/rx/init.rx config file.

cloudhead commented 4 years ago

It's also strange that your content scale is < 1.0 - that could be the problem, I've never seen this before. You could try to set scale = 2.0 also inside your config file and see if that changes anything.

SoptikHa2 commented 4 years ago

set vsync = on didn't do any difference, or at least I didn't notice anything. set scale = 2.0 changed it a bit. Instead of black screen, the screen isn't painted at all in the place where the application window is, the last thing I had opened in that space (eg terminal that I launched rx from) is drawn in there.

Also changing scale doesn't change the warn message that content scale isn't uniform, it still displays the 0.77... x 0.78..., not sure if it should've changed.

cloudhead commented 4 years ago

Can you check if with vsync on, the out of memory issue is gone when you try to save?

Also can you try running vulkaninfo and also installing vulkan-utils?

The only other thing I could propose is to build from source with the winit backend to see if it makes any difference.

cloudhead commented 4 years ago

Another question, is your OOM issue this: https://github.com/cloudhead/rx/issues/1 ? If not, can you post the output?

SoptikHa2 commented 4 years ago

I don't think so, or at least it looks like it failed at different location. I was fast enough and managed to save the image, but it crashed almost immediately afterwards. I had vsync = on and I got this:

[2019-10-02T18:14:13Z WARN  rx::platform::backend] glfw: content scale isn't uniform: 0.7791411 x 0.7807377
[2019-10-02T18:14:13Z INFO  rx::session] rx v0.2.0
[2019-10-02T18:14:24Z INFO  rx::session] "test.png" 4096 pixels written
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: OutOfMemory(OutOfHostMemory)', src/libcore/result.rs:1084:5
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:47
   3: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:36
   4: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:200
   5: std::panicking::default_hook
             at src/libstd/panicking.rs:214
   6: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:477
   7: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:384
   8: rust_begin_unwind
             at src/libstd/panicking.rs:311
   9: core::panicking::panic_fmt
             at src/libcore/panicking.rs:85
  10: core::result::unwrap_failed
             at src/libcore/result.rs:1084
  11: wgpu_native::device::device_create_swap_chain
  12: wgpu_swap_chain_get_next_texture
  13: wgpu::SwapChain::get_next_texture
  14: rgx::core::SwapChain::next
  15: rx::renderer::Renderer::frame
  16: rx::timer::FrameTimer::run
  17: rx::init::{{closure}}
  18: rx::platform::run
  19: rx::init
  20: rx::main
  21: std::rt::lang_start::{{closure}}
  22: std::rt::lang_start_internal::{{closure}}
             at src/libstd/rt.rs:49
  23: std::panicking::try::do_call
             at src/libstd/panicking.rs:296
  24: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:80
  25: std::panicking::try
             at src/libstd/panicking.rs:275
  26: std::panic::catch_unwind
             at src/libstd/panic.rs:394
  27: std::rt::lang_start_internal
             at src/libstd/rt.rs:48
  28: main
  29: __libc_start_main
  30: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

However compiling with winit,vulkan fixed it. Thanks!

cloudhead commented 4 years ago

Ok great. The winit backend is not as well supported, so let me know if anything isn't working there.

seletskiy commented 4 years ago

@cloudhead I'm experiencing same problem. Recompiling with --features winit help, though.