Windows before some version (maybe before XP?) only supported BMP wallpapers. BMP is uncompressed, a 1024x768 24-bit BMP is 2.25MB. That could be 7% of the 32MB system RAM and if the image got paged out - you were looking at it being redrawn line by line...yeah, I'm not doing that :)
My recollection is Windows 98 popping up a box like “Click yes to enable Active Desktop to do this” when I had AD disabled and tried to set a JPEG wallpaper. That would imply SHELL32 >= 4.7 https://www.geoffchappell.com/studies/windows/shell/shell32/...
Wikipedia sez “Since Windows XP, if a non-BMP image is used as Windows Desktop wallpaper, Windows will convert non-BMP image to BMP image in background.” and Group Policy has some relevant options:
“If users select files with other image formats, such as JPEG, GIF, PNG, or HTML, through the Browse button on the Desktop tab, the wallpaper does not load. Files that are autoconverted to a .bmp format, such as JPEG, GIF, and PNG, can be set as Wallpaper by right-clicking the image and selecting "Set as Wallpaper".”
Both “Supported on: Windows Server 2003, Windows XP, and Windows 2000 only”.
Windows 98 introduced Active Desktop, allowing you to use JPG wallpapers. In my experience, enabling Active Desktop would make everything slower, so I always opted to take the RAM hit on BMP wallpapers. It was even better if I could save the BMP in 8-bit and still have it look good.
It's because Active Desktop was essentially running an instance of Internet Explorer rendering to your desktop, of course it's slow and memory intensive.
Disabling Active Desktop and the fancy views on the left pane of Windows Explorer made Windows 98 change from quite slow to super responsive.
Early versions of Windows included smaller bitmaps that could be tiled and, if I recall correctly, software would only render visible portions of the screen. (Though I could be confusing it for classic Mac OS, since I didn't really try GUI programming until I replaced my ailing 486 with a used Mac.) So it was possible to have a pretty desktop without crushing performance.
This was a problem even for systems with more RAM, because that background bitmap was always a tempting target for the memory manager looking to page out long idle memory. It was exacerbated by the aggressive disk cache, which could cause even programs that didn't allocate much memory directly to swap out the background by doing enough regular buffered I/O.
Huge performance increase I still do (probably with negligible effects) was to manually set the disk cache (or whatever it's called - ram using HDD) to a set amount (usually double the ram). Letting windows manage it meant it was constantly changing in size and moving around the drive and with spinning disks killed performance. Also made defragging often mkre necessary. And of course disabling system restore.
I still do it out of habit with SSDs and I imagine it's mostly unnecessary but never ran into issues. I figure at worst it may increase the life of the SSD
The first tech support call to a PC manufacturer I remember from the 90's was because of this. Was playing around on the 486 in our family room and set a high color wallpaper on windows 3.11. Took forever to boot and we didn't know why.
It might have been NT that added support: I used Windows XP Service Pack 3 extensively, and by that time Windows supported JPEG pictures as desktop backgrounds. That is, JPG pictures in Windows-speak ;)
Yeah, Windows in this era already had the concept of bitmaps in system memory and bitmaps in device memory, so the desktop background could have been decompressed into GPU memory and then thrown away to free up CPU-side RAM. Not sure whether it would actually do that though.
But the uncompressed data doesn't need to stick around. It could be uncompressed piece by piece into a much smaller temp buffer, with the revealed parts of the areas of interest copied into video RAM as necessary.