kvark / vange-rs

Rusty Vangers clone
https://vange.rs
Apache License 2.0
427 stars 21 forks source link

Support running on older Windows via Angle #165

Closed kvark closed 7 months ago

kvark commented 2 years ago

Similar to #163, but for Windows

kvark commented 2 years ago

cc @DileSoft

One strange thing - Angle builds with "api-ms-win-core-sysinfo-l1-1-0.dll" but the actual name it requires on Win7 is "api-ms-win-core-sysinfo-l1-2-0.dll": angle-lib-weird

kvark commented 2 years ago

Another issue after this file is renamed:

$ RUST_BACKTRACE=full RUST_LOG=wgpu_hal=debug cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 1.57s
     Running `target\debug\road.exe`
[2021-12-05T18:54:25Z DEBUG wgpu_hal::gles::egl] Client extensions: [
        "EGL_EXT_client_extensions",
        "EGL_EXT_device_query",
        "EGL_EXT_platform_base",
        "EGL_EXT_platform_device",
        "EGL_ANGLE_platform_angle",
        "EGL_ANGLE_platform_angle_d3d",
        "EGL_ANGLE_platform_angle_device_type_swiftshader",
        "EGL_ANGLE_platform_angle_opengl",
        "EGL_ANGLE_platform_angle_null",
        "EGL_ANGLE_platform_angle_vulkan",
        "EGL_ANGLE_device_creation",
        "EGL_ANGLE_device_creation_d3d11",
        "EGL_ANGLE_experimental_present_path",
        "EGL_KHR_client_get_all_proc_addresses",
        "EGL_KHR_debug",
        "EGL_ANGLE_feature_control",
    ]
[2021-12-05T18:54:25Z INFO  wgpu_hal::gles::egl] Loading X11 library to get the current display
[2021-12-05T18:54:25Z INFO  wgpu_hal::gles::egl] Using default platform
[2021-12-05T18:54:25Z INFO  wgpu_hal::gles::egl] Enabling EGL debug output
[2021-12-05T18:54:26Z INFO  wgpu_hal::gles::egl] Display vendor "Google Inc. (NVIDIA)", version (1, 5)
[2021-12-05T18:54:26Z DEBUG wgpu_hal::gles::egl] Display extensions: [
        "EGL_EXT_create_context_robustness",
        "EGL_ANGLE_d3d_share_handle_client_buffer",
        "EGL_ANGLE_d3d_texture_client_buffer",
        "EGL_ANGLE_surface_d3d_texture_2d_share_handle",
        "EGL_ANGLE_query_surface_pointer",
        "EGL_ANGLE_window_fixed_size",
        "EGL_ANGLE_keyed_mutex",
        "EGL_ANGLE_surface_orientation",
        "EGL_NV_post_sub_buffer",
        "EGL_KHR_create_context",
        "EGL_KHR_image",
        "EGL_KHR_image_base",
        "EGL_KHR_gl_texture_2D_image",
        "EGL_KHR_gl_texture_cubemap_image",
        "EGL_KHR_gl_renderbuffer_image",
        "EGL_KHR_get_all_proc_addresses",
        "EGL_KHR_stream",
        "EGL_KHR_stream_consumer_gltexture",
        "EGL_NV_stream_consumer_gltexture_yuv",
        "EGL_ANGLE_stream_producer_d3d_texture",
        "EGL_ANGLE_create_context_webgl_compatibility",
        "EGL_CHROMIUM_create_context_bind_generates_resource",
        "EGL_EXT_pixel_format_float",
        "EGL_KHR_surfaceless_context",
        "EGL_ANGLE_display_texture_share_group",
        "EGL_ANGLE_display_semaphore_share_group",
        "EGL_ANGLE_create_context_client_arrays",
        "EGL_ANGLE_program_cache_control",
        "EGL_ANGLE_robust_resource_initialization",
        "EGL_ANGLE_create_context_extensions_enabled",
        "EGL_ANDROID_blob_cache",
        "EGL_ANDROID_recordable",
        "EGL_ANGLE_image_d3d11_texture",
        "EGL_ANGLE_create_context_backwards_compatible",
        "EGL_KHR_no_config_context",
        "EGL_KHR_create_context_no_error",
        "EGL_KHR_reusable_sync",
        "EGL_KHR_mutable_render_buffer",
    ]
[2021-12-05T18:54:26Z INFO  wgpu_hal::gles::egl]        EGL surface: +srgb
[2021-12-05T18:54:26Z INFO  wgpu_hal::gles::egl]        Trying native-render
[2021-12-05T18:54:26Z WARN  wgpu_hal::gles::egl] No config found!
[2021-12-05T18:54:26Z INFO  wgpu_hal::gles::egl]        Trying presentation
[2021-12-05T18:54:26Z WARN  wgpu_hal::gles::egl] EGL says it can present to the window but not natively
[2021-12-05T18:54:26Z INFO  wgpu_hal::gles::egl]        EGL context: +debug
[2021-12-05T18:54:26Z INFO  wgpu_hal::gles::egl]        EGL context: +robust access EXT
[2021-12-05T18:54:26Z WARN  wgpu_hal::gles::egl] unable to create GLES 3.x context: BadMatch
thread 'main' panicked at 'Unable to initialize GPU via the selected backend.', bin/road\..\boilerplate.rs:86:14
stack backtrace:
   0:        0x140ca384e - std::backtrace_rs::backtrace::dbghelp::trace
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\..\..\backtrace\src\backtrace\dbghelp.rs:98
   1:        0x140ca384e - std::backtrace_rs::backtrace::trace_unsynchronized
kvark commented 1 year ago

This used to work for a while, and now stopped again as of #212. Now it's a bit of a blocker.