gfx
gfx copied to clipboard
Windows8/OpenGL: Resizing window breaks rendering in quad example
Short info header:
- GFX version: 0.2.0
- OS: Windows 8
- GPU: AMD Radeon R9 M380 (iMac running Windows through bootcamp)
To reproduce:
- Run the quad example
- Drag to resize the window smaller
- Drag to resize it back to normal
- Observe that the image does not stretch or update at all
I'm working on a game that exhibits the same behavior on Windows/OpenGL - when the window is resized, rendering seems to stop. As far as I can tell from logging, it looks like the swapchain is being successfully recreated, but the contents of the window never update.
For me this just crashes:
thread 'main' panicked at 'redraw event in non-redraw phase', <::std::macros::panic macros>:2:4
stack backtrace:
0: backtrace::backtrace::trace_unsynchronized
at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.44\src\backtrace\mod.rs:66
1: std::sys_common::backtrace::_print_fmt
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\sys_common\backtrace.rs:78
2: std::sys_common::backtrace::_print::{{impl}}::fmt
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\sys_common\backtrace.rs:59
3: core::fmt::write
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libcore\fmt\mod.rs:1063
4: std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\io\mod.rs:1426
5: std::sys_common::backtrace::_print
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\sys_common\backtrace.rs:62
6: std::sys_common::backtrace::print
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\sys_common\backtrace.rs:49
7: std::panicking::default_hook::{{closure}}
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panicking.rs:204
8: std::panicking::default_hook
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panicking.rs:224
9: std::panicking::rust_panic_with_hook
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panicking.rs:470
10: std::panicking::begin_panic
11: winit::platform_impl::platform::event_loop::runner::ELRShared<T>::redraw_events_cleared
12: winit::platform_impl::platform::event_loop::runner::ELRShared<T>::send_event
13: winit::platform_impl::platform::event_loop::public_window_callback
14: DefSubclassProc
15: DefSubclassProc
16: CallWindowProcW
17: CallWindowProcW
18: glPushClientAttrib
19: CallWindowProcW
20: DispatchMessageW
21: IsWindowVisible
22: KiUserCallbackDispatcher
23: NtUserMessageCall
24: GetWindowTextW
25: MapWindowPoints
26: IsCompositionActive
27: Ordinal96
28: IsCompositionActive
29: IsCompositionActive
30: GetWindowTextW
31: DefSubclassProc
32: DefSubclassProc
33: CallWindowProcW
34: CallWindowProcW
35: glPushClientAttrib
36: CallWindowProcW
37: DispatchMessageW
38: IsWindowVisible
39: KiUserCallbackDispatcher
40: NtUserMessageCall
41: GetWindowTextW
42: MapWindowPoints
43: IsCompositionActive
44: Ordinal96
45: IsCompositionActive
46: IsCompositionActive
47: GetWindowTextW
48: CallWindowProcW
49: CallWindowProcW
50: DefSubclassProc
51: DefSubclassProc
52: DefSubclassProc
53: DefSubclassProc
54: CallWindowProcW
55: CallWindowProcW
56: glPushClientAttrib
57: CallWindowProcW
58: DispatchMessageW
59: winit::platform_impl::platform::event_loop::EventLoop<T>::run
60: core::ptr::drop_in_place
61: <alloc::collections::vec_deque::VecDeque<T> as core::ops::drop::Drop>::drop
62: png::decoder::Decoder<R>::read_info
63: std::rt::lang_start_internal::{{closure}}
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\rt.rs:52
64: std::panicking::try::do_call<closure-0,i32>
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panicking.rs:303
65: panic_unwind::__rust_maybe_catch_panic
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libpanic_unwind\lib.rs:86
66: std::panicking::try
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panicking.rs:281
67: std::panic::catch_unwind
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panic.rs:394
68: std::rt::lang_start_internal
at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\rt.rs:51
69: main
70: invoke_main
at d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
71: __scrt_common_main_seh
at d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
72: BaseThreadInitThunk
73: RtlUserThreadStart
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: process didn't exit successfully: `target\release\quad.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)
EDIT: GFX version: 0.5.0 OS: Windows 10 GPU: NVIDIA GeForce GTX 1050 Ti