<bslsk05>
www.reddit.com: When your kernel is just glue code between mlibc and limine : osdev
<heat>
back in my day, people used grub and newlib
<klange>
the kids these days and their memes in /r/osdev
<geist>
fiddling with the arc a750. extremely limited testing consensus: it's not that bad
<Griwes>
back in my days, all we had were the skulls of the damned
<geist>
performs admirably when it works right, and though i haven't tried too much stuff, it seems okay for now
<Griwes>
and we _liked_ it that way
<geist>
have not tried linux at all yet, curious if the old intel drivers work at all
<geist>
or (probably) doesn't see it at all
<geist>
haven't looked at what the VID/PID is for this thing
<klange>
Is the ARC actually based on the existing integrated stuff?
<heat>
new mesa should work
<heat>
yes
<Griwes>
heat, Il
<klange>
I might even be able to modeset it...
<Griwes>
I'll have you know I've read that in an extremely jar jar voice
<heat>
misa Griwes
<klange>
Spicy GMA.
<heat>
geist, tbh that doesn't surprise me. reports are always overblown
<klange>
(I know "HD" and "UHD" were introduced as a new product lines since then, but it's all still the same basic stuff underneath; that's what I like about Intel hardware)
<klange>
The one exception to that being HDA is totally different from AC97, but AC97 was kinda fundamentally limited...
<geist>
but i'm sure if i were to run a bunch of games across it it would start getting bad
<geist>
may try a few in a bit
<klange>
try ffxiv in wine and let me know how that goes, that's literally all I do any more
<heat>
idk, the hw registers themselves changed quite a bit
<heat>
over the intel graphics timeline
<heat>
i915.ko is the spaghettiest driver out there
<heat>
per gen routines for everything
<geist>
i'd assume that it being external means at least a fundamentally different memory management strategy
<geist>
but i think the individual cores themselves are the Xe stuff which is also in some of the current gen cpus integrated stuff
<heat>
worth nothing that the laptop Xe cores are no slouch either
<heat>
ihd graphics went from "near useless, just a scanout" to actually decent-ish
<geist>
yeah thought in this case the difference between the integrated UHD 770 in the cpu and this discrete card is night and day
<geist>
but may be that laptop gpus are a bit beefier than the desktop igpus
<heat>
iirc they're a good bit beefier
<heat>
i mean, defo not great and still a bit off from AMD integrated graphics, but way better than what they were
<geist>
yeah. i mean i generally dont care at all about integrated things, except you kinda have to most of the time with laptops
vdamewood has quit [Quit: Life beckons]
vdamewood has joined #osdev
<klange>
Working on Compiz back in the day, Intel graphics was really important to me.
<klange>
Because sure you're not running games on that laptop, but we gotta make sure the cube works!
<klange>
I remember there were issues where certain operations would throw the whole Mesa stack into software mode and you'd go from a crips 60fps desktop to measuring in seconds per frame.
<heat>
software mesa is decently fast these days afaik
<heat>
praise be llvmpipe
<heat>
(and lavapipe)
<sortie>
(you feel a disturbance in the force)
<klange>
Yeah, even llvmpipe would not have been great back then on that hardware, though :) but the pure swrast stack was extra bad.
<heat>
have you seen zink?
<heat>
they're running opengl on top of vulkan these days
<heat>
it's way more feasible to write your vulkan driver and then get opengl on top of that
<klange>
I am only familiar with "zink" as a color thermal printing system.
<bslsk05>
www.collabora.com: Introducing Zink, an OpenGL implementation on top of Vulkan
<geist>
well, i mean it's probably easyer to layer opengl on top of vulkan than the other way around
<sortie>
klange, oh wow, it booted to a gui terminal sub-second!! My phone stopwatch says it's basically one second, uptime says half a second since bootloader transferred control.
<sortie>
This is even a fully featured .iso with all the ports around and working out of the box. Except the stuff that isn't happy that / is read-only haha.
<kazinsal>
my boot time is uh, slow as fuck (or, I guess, was, as I a) haven't touched my code in ages and b) have discontinued work on my 32-bit version and need to completely restart the 64-bit version) because I do such things as "force all NICs to do self-tests" etc
<sortie>
^ Quick fun test if you wanna see how fast it boots. The root filesystem is read-only, but /dev is a ram filesystem that's writeable, so you can stash things there. “mkdir /dev/tmp && TMPDIR=/tmp“ is a useful lil hack. “cp -R /src /dev/src && cd /dev/src && make” to test the toolchain out of the box.
<sortie>
I made the initial shell display the uptime as a hack :D
<sortie>
1024 MiB of memory? That's so much. This baby boots in 38.
<sortie>
If I implement a nice copy-on-write mount on top of the read-only ISO 9660 filesystem mount point, then it should be fully featured like my usual live environment, except it boots subsecond with ~40 MB memory usage, but *all* features work out of the box.
<mjg_>
heat: well mofo haiku will beat your ass in few weeks
<mjg_>
heat: just sayin
<sortie>
Haha that's really what motivated me. My old live environment takes like 30 seconds to load and you need like a gig of memory. But in actuality my OS is extremely lightweight. So why not use real drivers to probably do one of the fastest osdev boots around and just blow users away with how fast, lightweight, and powerful it is; instantly.
Matt|home has joined #osdev
<heat>
mjg_, why
<klange>
I can do 1s to desktop with network disabled and read-only root, the bulk of the time is still loading+decompressing ramdisk.
<klange>
Half a second on virtualbox under those conditions, which loads the ramdisk instantly.
<klange>
.3 to the graphical terminal, saves some JPG decoding and a few app loads
<sortie>
Does your boot block on networking coming up?
<klange>
Userspace startup scripts do, yeah.
<sortie>
Yeah I benefit from my new init(8) doing everything in the background
<sortie>
The BIOS only loads the kernel (1.9M) and the initrd (536K) in my test, a total of 2.4M
<klange>
I load around 15M and then ungz it myself.
<sortie>
Oh wow that boots even faster, with a stop watch I measure ~600 ms
<mjg_>
stopwhat
<sortie>
mjg_: hammer(4)
<sortie>
Oh man it's 4 AM but haha wanna profile time spent during boot now
<sortie>
I really wonder if I can make it truly instant
<klange>
My old disk install test rig gets to login screen in half a second with some tweaks... that still has the same boot process, but has a much smaller ramdisk to decompress for device drivers and otherwise runs off an ext2 root partition on disk
<klange>
"some tweaks" being removing a couple network things that I think properly exit quickly on my current kernel, but this is old enough it predates the 2.0 release, so it's 1.99.something
<klange>
The advantage of my ramdisk root setup is that as long as the bootloader can get the thing into memory, it'll run on anything
<klange>
Including things the firmware wouldn't bother emulating as an ATA hard disk or CDROM, like a USB stick
nvmd has quit [Quit: WeeChat 3.7.1]
heather has quit [Quit: heather]
smeso has quit [Quit: smeso]
<sortie>
Looks like I spent 150 ms on PS/2 initialization, 90 ms on ATA initialization, 60 ms on BGA initialization, 10 ms on 825xx initialization
<klange>
https://www.youtube.com/watch?v=fJNd9wOOQJM animation on the T logo os the bootloader loading the ramdisk; I don't display boot messages in userspace unless it takes 2s to get to the end of the startup process
<bslsk05>
'ToaruOS 2.1 boot process' by K Lange (00:00:09)
<klange>
I spend half a second migrating my read-only tarball ramdisk to a tmpfs, in userspace, that is one of the slower parts of my boot process
<geist>
interesting, first device i've personally used with resizable bars
<geist>
looks like it's a capability that reports the potential sizes in units of 2
<zid>
oh got your a770 or whatevr?
<kazinsal>
lookin forward to eventually grabbing a new cpu/mobo/etc so my 3080 can take advantage of that
smeso has joined #osdev
<sortie>
I can def speed up my boot if I take some of these slow device drivers and simply run them in their own thread
<klange>
sortie: i guess you've incentivized me to actually fix this r/w ramdisk migration process to not be so slow
<sortie>
klange, hehe I always have had extremely large ramdisks, I'm infamous for that lol
<sortie>
Although my chain mounting ramdisks are extremely tiny, just contain init + fstab + filesystem driver
<sortie>
+ fsck if applicable
<sortie>
I trimmed another 90 ms off by tuning some excessive PS/2 timeouts
<klange>
I ping three package repos (a local one that would exist on my network, the CDN, and my own site), and then also hit ip-api.com to get timezone information, before launching the compositor... the package stuff could be defered, the timezone setting needs to happen before the compositor starts for the magic to work...
<sortie>
If I use worker threads to initialize ps2 (60 ms), ata (90 ms), and bga (60 ms) concurrently, then I can reduce 210 ms -> 60 ms
<sortie>
Err -> 90 ms
<sortie>
Especially if I move to a really solid device hot plug model where init is told about devices as they appear, then I might be able to spawn user-space extremely early
nick64 has quit [Quit: Connection closed for inactivity]
<zid>
you have 4.6 core profile, good enough for the girls I go out with
<geist>
kinda interesting anyway
<geist>
at least that's what the vid/pid is if nothing else
<zid>
i915 being the driver name is funny to me
<geist>
yah right?
<geist>
come on call it i740!
sebonirc has joined #osdev
[itchyjunk] has joined #osdev
immibis_ has joined #osdev
Matt|home has quit [Remote host closed the connection]
[itchyjunk] has quit [Remote host closed the connection]
* CompanionCube
didn't think he'd see an uptime counter rollover, but it appears it happened on my android tablet
bradd has joined #osdev
<zid>
linux has some weirdness with how it tracks time and max uptimes and stuff
kori has joined #osdev
<CompanionCube>
zid: hey, linux handled it better than a key android daemon which crashed and took my running aps with it, though it still works after init restarted it
sonny has joined #osdev
<sonny>
I came full circle and unix seems like they best way to do it. It can be refined but yeah ... I still don't get security though
<geist>
anyway so intel arc on linux right now: no es bueno, but they literally released the first driver for it like last week, so they probably got some work to do
<geist>
on windows, seems alright
sonny has quit [Quit: Client closed]
<zid>
as of.. a couple of weeks ago, seems like it barely worked on windows
<zid>
no fan control, lots of monitors won't output *anything* until the windows drivers load, lots of games don't work, etc
<zid>
I do hope intel stick with it though
<zid>
It seems at high res and vulkan, the driver can deal with it and you get nvidia 2xxx perf
<zid>
and low res dx you get 1070 perf
<zid>
needs another few years of drivers
<zid>
I keep gpus for a long ass time so it'd be fun to watch it mature (and annoying)
<kazinsal>
honestly they just need to scrap their pre-DX12 drivers and shove DXVK into the pipeline
<kazinsal>
as of right now most DX8/9/10/11 games run better on DXVK on Arc than they do on the native Arc implementations
<zid>
I think this is the 10th time they've scrapped it already :P
<zid>
they're just bad
<zid>
and it never ends up better
<CompanionCube>
kazinsal: isn't intel already doing that on windows at least for dx9?
<kazinsal>
don't think so, most testers have found massive frametime improvements by switching from DX8-11 native to DXVK+DX12
xenos1984 has quit [Read error: Connection reset by peer]
<bslsk05>
'Intel is dropping native support for DirectX 9 games in favor of DirectX 12 emulation' - 'Microsoft will now take over DX9 bugs and optimizations.'
<kazinsal>
oh wow, yeah, uh.... D3D9on12 isn't supposed to really be a production layer
<kazinsal>
that's an If All Else Fails option
<kazinsal>
if Intel is using the fallback as their default then yiiikes
<kazinsal>
it's like how there's native software rendering in the DirectX runtime
<kazinsal>
just because the stove is turned on doesn't mean you should touch it.\
<bslsk05>
www.intel.co.uk: Which Intel® Graphics Products Support DirectX 9* (DX9)?
<kazinsal>
that's a mess
<kazinsal>
it also makes no sense from a licensing perspective, considering DXVK is zlib
<kazinsal>
there's no reason they couldn't have just bundled the latest DXVK into their driver packages
<CompanionCube>
maybe microsoft would rather them use d3d9on12 for some reason?
xenos1984 has joined #osdev
einkoder has joined #osdev
epony has joined #osdev
zaquest has quit [Remote host closed the connection]
zaquest has joined #osdev
wootehfoot has joined #osdev
netbsduser has joined #osdev
GeDaMo has joined #osdev
epony has quit [Ping timeout: 252 seconds]
epony has joined #osdev
epony has quit [Remote host closed the connection]
epony has joined #osdev
<XgF>
DXVK is a wholesale DirectX 9 & 11 implementation. 9On12 is a DX9 driver
<XgF>
i.e DXVK replaces d3d9.dll, 9on12 is loaded as a driver by d3d9.dll
<zid>
using dxvk makes sense tbh
<sortie>
I optimized my boot by running some slow driver initialization in their own threads, tuned some timeouts, and used my cdrom driver and filesystem support and ... drumroll ... my OS boots in a third of a second, from pressing enter in the bootloader, to a fully functional graphical user interface with a terminal
<GeDaMo>
I seem to remember reading that some system (maybe a Mac?) used to blit a screenshot of the opening screen at the beginning to make it look like it was starting faster
<zid>
Now install it on an ssd, with a packed memory image that you just DMA into ram an-
<zid>
like GeDaMo said but one farther, blat the entire memory snapshot of your running gui in
<zid>
and just fixup the open sockets or whatever it needs to have
<GeDaMo>
So basically just resuming from a suspend
<zid>
yea
<zid>
I had that idea when thinking about how to speed up game loading
<zid>
lots of games work by just repeatedly inserting objects into a display list and various data structures etc
<zid>
and it's all very slow
<zid>
just save the entire loaded level, mmap it in, fix up a pointer to struct level *l;
<mjg_>
there is SunOS-4.1.3 on github
<mjg_>
for interested
<Mondenkind>
GeDaMo: doesn't windows do something like that
<Mondenkind>
oh I remember
<Mondenkind>
in windows 10
<GeDaMo>
Quite possibly, I can't remember exactly what I read
<Mondenkind>
they changed the login menu to show up earlier in the boot process, so it looked like it booted faster
<Mondenkind>
in reality, if you entered your password at that point, you would have to wait longer--the ultimate time to desktop was unchanged
<GeDaMo>
People take longer to respond to the fact that it's loaded than it takes to complete the boot :P
<Mondenkind>
I think some video games do something a bit like that, too
<Mondenkind>
I guess it does save a little bit of time, since you can do some cursory interactions while it loads
<ddevault>
well, got serial writes working on real hardware
<ddevault>
interrupts are proving more elusive
epony has quit [Ping timeout: 252 seconds]
epony has joined #osdev
<zid>
a lot of benchmark tools don't allow you to run them with an uptime < 30 seconds
<zid>
because the system will be doing so much first-login-at-boot nonsense
nyah has joined #osdev
<ddevault>
bleh
<ddevault>
all I want are some interrupts, man
<Arsen>
heh, good luck
<Arsen>
interrupts are a pain
<Arsen>
workable, but annoying
<ddevault>
I have them generally working, just this one device refuses to raise them on real hardware
<ddevault>
trying to get interrupts from my serial port
<ddevault>
got it :D
<ddevault>
set bit 3 of MCR register
bauen1 has quit [Ping timeout: 250 seconds]
Vercas6 has quit [Remote host closed the connection]
Vercas6 has joined #osdev
Ali_A has joined #osdev
<Arsen>
nice!
[itchyjunk] has joined #osdev
ThinkT510 has quit [Quit: WeeChat 3.7]
ThinkT510 has joined #osdev
Vercas6 has quit [Ping timeout: 258 seconds]
epony has quit [Ping timeout: 252 seconds]
gog has joined #osdev
epony has joined #osdev
wootehfoot has quit [Read error: Connection reset by peer]
elastic_dog is now known as Guest2278
Guest2278 has quit [Killed (zirconium.libera.chat (Nickname regained by services))]
elastic_dog has joined #osdev
<gog>
sortie: what happened to the professional sortix network :(
Matt|home has joined #osdev
dude12312414 has joined #osdev
vai has joined #osdev
<vai>
hi all
vai is now known as Jari--
<Jari-->
I am working on an internet search engine, but I still think it is much more rewarding to develope an operating system
<bombuzal>
Hi Jari--
<bombuzal>
More worthwhile, too. The web is full of crap :)
<GeDaMo>
Nah, there's a lot of good stuff, it's just mostly hidden behind the crap :P
<zid>
Everything is covered in a thin film of crap... and then buried under a mountain of shit
<zid>
then hermetically sealed in adverts
<bombuzal>
:D
epony has quit [Remote host closed the connection]
Ali_A has quit [Quit: Client closed]
epony has joined #osdev
<sortie>
gog, it's very fast
<gog>
oh there it goes
<gog>
there was some weirdness with the internet in iceland when i asked you
<zid>
too busy with réttir
<gog>
google's DNS was totally absent for a good 5 minutes
<gog>
it was weird
epony has quit [Ping timeout: 252 seconds]
epony has joined #osdev
pesdauskes is now known as warstarter
heat has joined #osdev
<Jari-->
3D accelerated display drivers are often larger than the operating system itself.
<Jari-->
Champing up.
<Jari-->
Wondering why on Earth I made a windowing system with VGA 16 colour planes mode support.
<Jari-->
Well, back then I worked on bootloader, to support VESA boot up.
<heat>
not true
<heat>
depends on what you mean by operating system at least, and 3D accelerated display driver
<gog>
if you mean the nivida or amd driver packages, those are huge because they bundle a fuckload of bloatware and utilities with ridiculous theming
<zid>
The nvidia package is 99% replacement shaders for buggy games :p
<gog>
also that
<zid>
GAME READY
<heat>
GAMER GAME GAMING READY PERFORMANCE PROFESSIONAL GAMING
<zid>
main problem with writing a 3d 'driver' is that the 3d engine wants.. compiled shaders
<zid>
glhf writing a shader compiler
<heat>
yeah that sucks
<heat>
but mesa is still, i mean, not /that/ big
<zid>
can mesa even help?
<heat>
mesa has a shader compiler or two
<zid>
to a useful architecture?
<zid>
idk how bytecodey vs arch specific nvidia's cards are for example
<heat>
yes
<zid>
I think there's a sort of "standard" bytecode though that maybe the driver.. recompiles
<zid>
but faster
<heat>
nvk is a thing (although still early), also compiles to amdgpu and intel
<geist>
yes, but maybe not everyone understands that. i understnd we can joke around, but there are like 250 people lurking following along
<mjg_>
i think in this context it was pretty clear
<geist>
sure
<geist>
now i'm just having a soliloquy to the peanut gallery. ie, we generally dont shit on stuff here to try tob e inclusive, allow folks just getting started out to feel okay with whatever they're working on
<geist>
so that someone with a hello world that's getting started out doesn't feel like we're going to jump or pick on them, is all
<geist>
<end of aside>
<geist>
but yeah the serenityos thing looks interesting now that i look at it a bit. i think last time i had looked at it was a few years back
<geist>
wish he was here to talk about it, but then sounds like he's busy monitizing it instead of blabbing about it on irc. good for him
<mjg_>
i suspect he would have better success if there was an iso available
<mjg_>
it should not be hard to arrange free hosting
<gog>
it's probably small enough to just host on github
<gog>
for the time being
<mjg_>
as in joe random finds out about it, install for few minutes, and some of them would donate a buck or two for fun
ephemer0l has joined #osdev
<geist>
maybe the idea is to force an interaction with the source code
<geist>
perhaps he feels better about the source and it's design than the end user
<geist>
maybe that will change over time as it becomes more usable, ie klange's stuff
<mjg_>
well tf i know about marketing anyway
<mjg_>
if anything i'm positively surprised it has enough baking to facilitate making a living
<geist>
seems that he's marketing the 'i'm building an operating system! here's the source code, watch me build it' instead of it being an end product
<geist>
that will probably have to change over time as it gets more complicated, but that's his decision to make
<mjg_>
will try to build it as an unpriv user (not me!) and see what happens
<freeload7>
Yeah Serenityos has no virtio-net support
<mjg_>
freeload7: hrm, is there way to run a compiler *inside* the os?
<mjg_>
so far looks like it is not self-hosting
<freeload7>
mjg_: As for self hosting, I know that QEMU and Bochs have been ported to SerenityOS and SerenityOS can run within those ports. No idea on compiler status.
<mjg_>
it has a chess program!
<mjg_>
it seems it is using some funny algos based on the moves made
<mjg_>
guess it's a demo
<mjg_>
looks like i wont be able to jump over th need to compile custom toolchain
<mjg_>
freeload7: unless you happen to have it?
<mjg_>
i need few simple progs compiled
<freeload7>
mjg_: I don't have it unfortunately. That's why I used the ISOs, my computer takes an ungodly amount of time to compile it
<freeload7>
This is someone's social media bio apparently: "Every PUSH you take, Every MOV you make, Every INT you break, Every RET you fake; I'll be watching you"