winit: winit 0.26.1: assertion failed: validate_scale_factor(scale_factor)
Heya, I’m running X11 on Kubuntu 21.10. While trying Bevy, which depends on Winit 0.26.1, I got the following problem:
Running `/home/ngirard/sandboxes/rust/./target/debug/examples/breakout`
2022-01-23T20:17:11.323894Z INFO winit::platform_impl::platform::x11::window: Guessed window scale factor: 0
thread 'main' panicked at 'assertion failed: validate_scale_factor(scale_factor)', /home/ngirard/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.26.1/src/dpi.rs:351:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
After modifying this debugging message from
info!("Guessed window scale factor: {}", scale_factor);
to
info!("Guessed window scale factor: {}; guessed_monitor: {:#?}", scale_factor, guessed_monitor);
and recompiling, I’m getting
this
2022-01-23T21:03:12.904029Z INFO winit::platform_impl::platform::x11::window: Guessed window scale factor: 0; guessed_monitor: MonitorHandle {
id: 65,
name: "HDMI-1",
dimensions: (
1920,
1080,
),
position: (
0,
0,
),
primary: true,
scale_factor: 0.0,
rect: AaRect {
x: 0,
y: 0,
width: 1920,
height: 1080,
},
video_modes: [
VideoMode {
size: (
1024,
768,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 83,
monitor: None,
},
VideoMode {
size: (
800,
600,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 98,
monitor: None,
},
VideoMode {
size: (
640,
480,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 113,
monitor: None,
},
VideoMode {
size: (
1280,
1024,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 141,
monitor: None,
},
VideoMode {
size: (
1920,
1080,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 148,
monitor: None,
},
VideoMode {
size: (
1920,
1080,
),
bit_depth: 24,
refresh_rate: 50,
native_mode: 149,
monitor: None,
},
VideoMode {
size: (
1920,
1080,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 150,
monitor: None,
},
VideoMode {
size: (
1680,
1050,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 151,
monitor: None,
},
VideoMode {
size: (
1600,
900,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 152,
monitor: None,
},
VideoMode {
size: (
1440,
900,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 153,
monitor: None,
},
VideoMode {
size: (
1280,
800,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 154,
monitor: None,
},
VideoMode {
size: (
1280,
720,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 155,
monitor: None,
},
VideoMode {
size: (
1280,
720,
),
bit_depth: 24,
refresh_rate: 50,
native_mode: 156,
monitor: None,
},
VideoMode {
size: (
1280,
720,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 157,
monitor: None,
},
VideoMode {
size: (
720,
576,
),
bit_depth: 24,
refresh_rate: 50,
native_mode: 158,
monitor: None,
},
VideoMode {
size: (
720,
480,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 159,
monitor: None,
},
VideoMode {
size: (
720,
480,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 160,
monitor: None,
},
VideoMode {
size: (
640,
480,
),
bit_depth: 24,
refresh_rate: 60,
native_mode: 161,
monitor: None,
},
],
}
so guessed_monitor seems to be correct except for the scale factor.
Heres' the (partial) output of `xdpyinfo`:
name of display: :0
version number: 11.0
vendor string: The X.Org Foundation
vendor release number: 12013000
X.Org version: 1.20.13
maximum request size: 16777212 bytes
motion buffer size: 256
bitmap unit, bit order, padding: 32, LSBFirst, 32
image byte order: LSBFirst
number of supported pixmap formats: 7
supported pixmap formats:
depth 1, bits_per_pixel 1, scanline_pad 32
depth 4, bits_per_pixel 8, scanline_pad 32
depth 8, bits_per_pixel 8, scanline_pad 32
depth 15, bits_per_pixel 16, scanline_pad 32
depth 16, bits_per_pixel 16, scanline_pad 32
depth 24, bits_per_pixel 32, scanline_pad 32
depth 32, bits_per_pixel 32, scanline_pad 32
keycode range: minimum 8, maximum 255
focus: window 0x9600007, revert to PointerRoot
number of extensions: 28
BIG-REQUESTS
Composite
DAMAGE
DOUBLE-BUFFER
DPMS
DRI2
DRI3
GLX
Generic Event Extension
MIT-SCREEN-SAVER
MIT-SHM
Present
RANDR
RECORD
RENDER
SECURITY
SHAPE
SYNC
X-Resource
XC-MISC
XFIXES
XFree86-DGA
XFree86-VidModeExtension
XINERAMA
XInputExtension
XKEYBOARD
XTEST
XVideo
default screen number: 0
number of screens: 1
screen #0:
dimensions: 3199x1080 pixels (844x285 millimeters)
resolution: 96x96 dots per inch
depths (7): 24, 1, 4, 8, 15, 16, 32
root window id: 0x17c
depth of root window: 24 planes
number of colormaps: minimum 1, maximum 1
default colormap: 0x20
default number of colormap cells: 256
preallocated pixels: black 0, white 16777215
options: backing-store WHEN MAPPED, save-unders NO
largest cursor: 256x256
current input event mask: 0xfa8033
KeyPressMask KeyReleaseMask EnterWindowMask
LeaveWindowMask ExposureMask StructureNotifyMask
SubstructureNotifyMask SubstructureRedirectMask FocusChangeMask
PropertyChangeMask ColormapChangeMask
number of visuals: 90
default visual id: 0x21
visual:
visual id: 0x21
class: TrueColor
depth: 24 planes
available colormap entries: 256 per subfield
red, green, blue masks: 0xff0000, 0xff00, 0xff
significant bits in color specification: 8 bits
(...)
Any thoughts ? Thanks !
About this issue
- Original URL
- State: open
- Created 2 years ago
- Comments: 19 (8 by maintainers)
You could try setting
WINIT_X11_SCALE_FACTOR=randrto get winit to ignoreXft.dpi.