manifold/etc not properly working

manifold isnt making a window for our fren @bnuuy64 and it doesnt complain at all. system info in screenshot.
No description
55 Replies
Nova
Nova10mo ago
ok so uhhh to isolate the problem go manifold | echo to test manifold in isolation and just to check, this is manifold from the non-spatial-input repo right?
hellholesys (lily)
hellholesys (lily)OP10mo ago
yep
la criatura
la criatura10mo ago
No description
Nova
Nova10mo ago
hmm did you run this while stardust was running?
hellholesys (lily)
hellholesys (lily)OP10mo ago
yep i see in the stream thing in the corner of my screen that she's shoving her face into kate running in flatland bc scrcpy
Nova
Nova10mo ago
scrcpy?
hellholesys (lily)
hellholesys (lily)OP10mo ago
android screen streaming tool
Nova
Nova10mo ago
isn't that just for android?
hellholesys (lily)
hellholesys (lily)OP10mo ago
quest she has a quest 1
Nova
Nova10mo ago
ahhh so using wivrn?
hellholesys (lily)
hellholesys (lily)OP10mo ago
ye
Nova
Nova10mo ago
hellholesys (lily)
hellholesys (lily)OP10mo ago
we told her about it and she wanted to try and we suggested stardust to test with and now we got sucked into this bc ofc
la criatura
la criatura10mo ago
quest 1, the one that ceased to exist in everyone's minds the millisecond the quest 2 dropped
Nova
Nova10mo ago
ok so i was wrong you can't test manifold in isolation uhhhh try manifold | azimuth
hellholesys (lily)
hellholesys (lily)OP10mo ago
already did that but she's trying again
Nova
Nova10mo ago
does it spit out any errors?
la criatura
la criatura10mo ago
spits out nothing but no window
No description
Nova
Nova10mo ago
xwayland works on your computer right? just to triple check
hellholesys (lily)
hellholesys (lily)OP10mo ago
yep yep
Nova
Nova10mo ago
i honestly have no idea what's going on :S
hellholesys (lily)
hellholesys (lily)OP10mo ago
fun
Nova
Nova10mo ago
oh!! you can do manifold | cat that works actually, check the output of that
la criatura
la criatura10mo ago
a lot of stuff
Nova
Nova10mo ago
bwahaha i have your keymap now >:3 but in all seriousness uhhhhhhhhhh
la criatura
la criatura10mo ago
oh no now you know i use workman-p
Nova
Nova10mo ago
so... uhhhhhhhhhmhedfngal;kdsjhn where in the hell did it go where is the window it had to get the keymap from somewhere
la criatura
la criatura10mo ago
¯\_(ツ)_/¯
Nova
Nova10mo ago
pub fn new(event_loop: &EventLoop<()>) -> Self {
let size = Size::Logical([512, 512].into());
let window = WindowBuilder::new()
.with_title("Manifold")
.with_min_inner_size(size)
.with_max_inner_size(size)
.with_inner_size(size)
.with_resizable(false)
.build(event_loop)
.unwrap();

let keymap = match window.xcb_connection() {
Some(raw_conn) => {
let connection = unsafe { ValidConnection::new(raw_conn as *mut xcb_connection_t) };
keymap_new_from_device(
&xkb::Context::new(0),
&connection,
get_core_keyboard_device_id(&connection),
KEYMAP_COMPILE_NO_FLAGS,
)
}
None => Keymap::new_from_names(&xkb::Context::new(0), "", "", "", "", None, 0).unwrap(),
};
send_input_ipc(Message::Keymap(
keymap.get_as_string(XKB_KEYMAP_FORMAT_TEXT_V1),
));
pub fn new(event_loop: &EventLoop<()>) -> Self {
let size = Size::Logical([512, 512].into());
let window = WindowBuilder::new()
.with_title("Manifold")
.with_min_inner_size(size)
.with_max_inner_size(size)
.with_inner_size(size)
.with_resizable(false)
.build(event_loop)
.unwrap();

let keymap = match window.xcb_connection() {
Some(raw_conn) => {
let connection = unsafe { ValidConnection::new(raw_conn as *mut xcb_connection_t) };
keymap_new_from_device(
&xkb::Context::new(0),
&connection,
get_core_keyboard_device_id(&connection),
KEYMAP_COMPILE_NO_FLAGS,
)
}
None => Keymap::new_from_names(&xkb::Context::new(0), "", "", "", "", None, 0).unwrap(),
};
send_input_ipc(Message::Keymap(
keymap.get_as_string(XKB_KEYMAP_FORMAT_TEXT_V1),
));
la criatura
la criatura10mo ago
idfk there's just no window
Nova
Nova10mo ago
this is manifold's code
hellholesys (lily)
hellholesys (lily)OP10mo ago
maybe the window isnt liking the concept of appearing due to defaulting to being tiled in sway?
Nova
Nova10mo ago
maybe, winit kinda sucks for this use case it abstracts keyboard input out anyway, i really just need to replace it with raw display server stuff
la criatura
la criatura10mo ago
init to winit
Nova
Nova10mo ago
like smithay client toolkit
hellholesys (lily)
hellholesys (lily)OP10mo ago
im gonna try stuff under gnome wayland on steam deck since i know that even steamvr can work fine on there
Nova
Nova10mo ago
do you think anyone will mind if i just do not support xorg for manifold?
hellholesys (lily)
hellholesys (lily)OP10mo ago
just have to hope i dont hit the bad ram i mean if you dont, that aint your problem
la criatura
la criatura10mo ago
nvidia users: 😡
hellholesys (lily)
hellholesys (lily)OP10mo ago
wayland on nvidia works great when it works as an example, me talking to you rn
Nova
Nova10mo ago
let window = conn.generate_id().unwrap();
let screen = &conn.setup().roots[screen];
let (root_visual, root_parent) = (screen.root_visual, screen.root);
conn.create_window(
x11rb::COPY_FROM_PARENT as _,
window,
root_parent,
0,
0,
width,
height,
0,
xproto::WindowClass::COPY_FROM_PARENT,
root_visual,
&xproto::CreateWindowAux::new()
.background_pixel(screen.white_pixel)
.event_mask(xproto::EventMask::EXPOSURE | xproto::EventMask::STRUCTURE_NOTIFY),
)
.unwrap()
.check()
.unwrap();

let mut window_handle = XcbWindowHandle::new(NonZeroU32::new(window).unwrap());
window_handle.visual_id = NonZeroU32::new(root_visual);

// Create a new softbuffer context.
// SAFETY: The display and window handles outlive the context.
let display_handle =
unsafe { DisplayHandle::borrow_raw(RawDisplayHandle::Xcb(display_handle)) };
let window_handle = unsafe { WindowHandle::borrow_raw(RawWindowHandle::Xcb(window_handle)) };
let context = unsafe { softbuffer::Context::new(display_handle).unwrap() };
let mut surface = unsafe { softbuffer::Surface::new(&context, window_handle).unwrap() };

// Register an atom for closing the window.
let wm_protocols_atom = conn
.intern_atom(false, "WM_PROTOCOLS".as_bytes())
.unwrap()
.reply()
.unwrap()
.atom;
let delete_window_atom = conn
.intern_atom(false, "WM_DELETE_WINDOW".as_bytes())
.unwrap()
.reply()
.unwrap()
.atom;
conn.change_property(
xproto::PropMode::REPLACE as _,
window,
wm_protocols_atom,
xproto::AtomEnum::ATOM,
32,
1,
&delete_window_atom.to_ne_bytes(),
)
.unwrap()
.check()
.unwrap();
let window = conn.generate_id().unwrap();
let screen = &conn.setup().roots[screen];
let (root_visual, root_parent) = (screen.root_visual, screen.root);
conn.create_window(
x11rb::COPY_FROM_PARENT as _,
window,
root_parent,
0,
0,
width,
height,
0,
xproto::WindowClass::COPY_FROM_PARENT,
root_visual,
&xproto::CreateWindowAux::new()
.background_pixel(screen.white_pixel)
.event_mask(xproto::EventMask::EXPOSURE | xproto::EventMask::STRUCTURE_NOTIFY),
)
.unwrap()
.check()
.unwrap();

let mut window_handle = XcbWindowHandle::new(NonZeroU32::new(window).unwrap());
window_handle.visual_id = NonZeroU32::new(root_visual);

// Create a new softbuffer context.
// SAFETY: The display and window handles outlive the context.
let display_handle =
unsafe { DisplayHandle::borrow_raw(RawDisplayHandle::Xcb(display_handle)) };
let window_handle = unsafe { WindowHandle::borrow_raw(RawWindowHandle::Xcb(window_handle)) };
let context = unsafe { softbuffer::Context::new(display_handle).unwrap() };
let mut surface = unsafe { softbuffer::Surface::new(&context, window_handle).unwrap() };

// Register an atom for closing the window.
let wm_protocols_atom = conn
.intern_atom(false, "WM_PROTOCOLS".as_bytes())
.unwrap()
.reply()
.unwrap()
.atom;
let delete_window_atom = conn
.intern_atom(false, "WM_DELETE_WINDOW".as_bytes())
.unwrap()
.reply()
.unwrap()
.atom;
conn.change_property(
xproto::PropMode::REPLACE as _,
window,
wm_protocols_atom,
xproto::AtomEnum::ATOM,
32,
1,
&delete_window_atom.to_ne_bytes(),
)
.unwrap()
.check()
.unwrap();
la criatura
la criatura10mo ago
well, nvidia users that use < GeForce 900 era cards
hellholesys (lily)
hellholesys (lily)OP10mo ago
watching you fuck with stardust
Nova
Nova10mo ago
this is the INIT code for a single xorg window so like i'd rather not if at all possible
hellholesys (lily)
hellholesys (lily)OP10mo ago
if manifold doesnt support xorg, its not the end of the world
Nova
Nova10mo ago
this code does not work either :p
la criatura
la criatura10mo ago
nvidia support on wayland has gotten better, even with hybrid graphics
hellholesys (lily)
hellholesys (lily)OP10mo ago
some tiny amount of users cant use manifold, no problem if it means that manifold actually works
la criatura
la criatura10mo ago
amd hybrid graphics are completely fucking broken though
Nova
Nova10mo ago
on which wayland?
hellholesys (lily)
hellholesys (lily)OP10mo ago
at all
la criatura
la criatura10mo ago
i mean in general (though mostly kwin)
hellholesys (lily)
hellholesys (lily)OP10mo ago
amd hybrid graphics is just really broken on literally any system regardless of what it runs thankfully we havent had to deal with it but she has
la criatura
la criatura10mo ago
i just don't bother at this point i can just wait until i get a dp to dvi adapter or a nicer monitor though ig with something like this it wouldn't matter as much other than the fact that the quest 1 resolution is ARM Cortex-A55 /j ig it could be worse, it could be the rift dk1 literally 640x800 per eye
Want results from more Discord servers?
Add your server