Uriopass / Egregoria

3D City Builder without a grid
http://douady.paris/blog/
GNU General Public License v3.0
1.53k stars 52 forks source link

Update README about required Vulkan. #92

Closed nathan130200 closed 1 year ago

nathan130200 commented 1 year ago

I've tried execute game from last sucessful build tree (yesterday) but this require vulkan... I suggest change in README to tell that it requires vulkan.

[   361371 INFO  wgpu_hal::gles::egl] Unable to open libEGL: Library(LoadLibraryExW { source: Os { code: 126, kind: Uncategorized, message: "Não foi possível encontrar o módulo especificado." } })
[   362903 ERROR C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wgpu-hal-0.16.2\src\vulkan\instance.rs:681] enumerate_adapters: Initialization of an object has failed
[   504262 INFO  wgpu_core::instance] Adapter Dx12 AdapterInfo { name: "NVIDIA GeForce 710M", vendor: 4318, device: 4416, device_type: DiscreteGpu, driver: "", driver_info: "", backend: Dx12 }
[   504769 ERROR C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wgpu-0.16.3\src\backend\direct.rs:594] Error in Adapter::request_device: Limit 'max_storage_textures_per_shader_stage' value 4 is better than allowed 2
thread 'main' panicked at 'could not find device, have you installed necessary vulkan libraries?: RequestDeviceError': C:\Users\Nathan\.games\Egregoria\wgpu_engine\src\gfx.rs:192
   0: backtrace::backtrace::trace
   1: backtrace::capture::Backtrace::new
   2: <backtrace::capture::Backtrace as core::default::Default>::default
   3: <log_panics::Shim as core::fmt::Debug>::fmt
   4: alloc::boxed::impl$49::call
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\alloc\src\boxed.rs:1999
   5: std::panicking::rust_panic_with_hook
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\panicking.rs:709
   6: std::panicking::begin_panic_handler::closure$0
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\panicking.rs:597
   7: std::sys_common::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\sys_common\backtrace.rs:151
   8: std::panicking::begin_panic_handler
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\panicking.rs:593
   9: core::panicking::panic_fmt
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\core\src\panicking.rs:67
  10: core::result::unwrap_failed
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\core\src\result.rs:1651
  11: native_app::run::{{closure}}
  12: beul::execute
  13: native_app::gui::inspect::InspectRenderer::render
  14: std::sys_common::backtrace::__rust_begin_short_backtrace
  15: std::rt::lang_start::{{closure}}
  16: std::rt::lang_start_internal::closure$2
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\rt.rs:148
  17: std::panicking::try::do_call
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\panicking.rs:500
  18: std::panicking::try
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\panicking.rs:464
  19: std::panic::catch_unwind
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\panic.rs:142
  20: std::rt::lang_start_internal
             at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\rt.rs:148
  21: main
  22: invoke_main
             at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  23: __scrt_common_main_seh
             at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  24: BaseThreadInitThunk
  25: RtlUserThreadStart

While older build (from release page) actually try open but crashes due an shader compilation error:

log_1691180392357361.log

Uriopass commented 1 year ago

It doesn't require vulkan, you're running using the DX12 backend, the error message I put is misleading.
The issue is Limit 'max_storage_textures_per_shader_stage' value 4 is better than allowed 2 because you have a very old GPU. However I probably don't really require 4 storage textures, I'll try to take a look into that.

Uriopass commented 1 year ago

Should be fixed on latest master if it was just a matter of limits

Uriopass commented 1 year ago

But yeah, I don't expect much from very old gpus like this (10 y/o). I'm using modern rendering techniques and tools since I can't afford having separate rendering backends.

nathan130200 commented 1 year ago

Thanks for the info!