xsetbackground - endian mismatch fix
Adrian Chadd <[email protected]> Tue, 13 Jan 2026 19:54:34 -0800
| Newsgroups | gmane.os.netbsd.ports.mips.devel |
|---|---|
| Message-ID | <CAJ-VmokSNfdG9WbnfZ69PqgcfeeFOVwbuAVget_yuagzKo6sFA@mail.gmail.com> |
--000000000000a08c200648511114 Content-Type: text/plain; charset="UTF-8" hi! this isn't QUITE mips specific but whilst figuring out the pixel format disconnect between xsetbackground and the sgi indy newport driver, I came across a fun endian conversion issue. The short version - the image in memory is host endian, the image->byte_order field needs to reflect the endianness of the image, not of the xserver. An alternate solution is to not switch the endianness of the image from the image conversion and just set image->byte_order to LSBFirst (ie little endian); that works too. This allows my amd64 freebsd box run xsetbackground to the indy newport and have the endianness conversion work right. It also works correctly on the sgi indy client -> server. I'm happy to submit a different diff that just leaves the endian swizzling out of xsetbackground and lets xlib/xserver do the right thing. Up to y'all. :-) -adrian --000000000000a08c200648511114 Content-Type: application/octet-stream; name="20250113-netbsd-xsetwallpaper-endian-1.diff" Content-Disposition: attachment; filename="20250113-netbsd-xsetwallpaper-endian-1.diff" Content-Transfer-Encoding: base64 Content-ID: <f_mkdhgspn0> X-Attachment-Id: f_mkdhgspn0 ZGlmZiAtLWdpdCBhL3NyYy94c2V0d2FsbHBhcGVyLmMgYi9zcmMveHNldHdhbGxwYXBlci5jCmlu ZGV4IDhiMjAwNTAuLjMzNWFjZWEgMTAwNjQ0Ci0tLSBhL3NyYy94c2V0d2FsbHBhcGVyLmMKKysr IGIvc3JjL3hzZXR3YWxscGFwZXIuYwpAQCAtMTA0LDYgKzEwNCw4IEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKIAkJZGF0YVtpICsgMl0gPSBwOwogCX0KIAorCS8qIEF0IHRoaXMgcG9p bnQgaXQncyBsaXR0bGUgZW5kaWFuIHJlZ2FyZGxlc3Mgb2YgaG9zdCB0eXBlLiAqLworCiAjaWYg X0JZVEVfT1JERVIgPT0gX0JJR19FTkRJQU4KIAlmb3IgKGkgPSAwOyBpIDwgaW1hZ2V3ICogaW1h Z2VoICogNDsgaSArPSA0KSB7CiAJCXVpbnQzMl90ICpwID0gKHVpbnQzMl90ICopJmRhdGFbaV07 CkBAIC0xMTEsNiArMTEzLDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCX0KICNl bmRpZgogCisJLyogSXQgaXMgbm93IGluIGhvc3QgZW5kaWFuICovCisKICNpZmRlZiBERUJVRwog CXByaW50ZigiJXM6ICVkeCVkICVkYnBwXG4iLCBhcmd2WzBdLCBpbWFnZXcsIGltYWdlaCwgaW1h Z2VicHAgKiA4KTsKICNlbmRpZgpAQCAtMTY4LDcgKzE3MiwxNyBAQCBtYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCiAJCWVycngoRVhJVF9GQUlMVVJFLCAiWENyZWF0ZUltYWdlIGZhaWxlZCIp OwogCX0KIAlYSW5pdEltYWdlKGltYWdlKTsKLQlpbWFnZS0+Ynl0ZV9vcmRlciA9IGJ5dGVfb3Jk ZXI7CisKKwkvKgorCSAqIFNldCB0aGUgaW1hZ2UgYnl0ZSBvcmRlci4gIFNpbmNlIHRoZSBhYm92 ZSBjb2RlIGhhcyBjb252ZXJ0ZWQgaXQKKwkgKiBpbnRvIGhvc3QgZW5kaWFuIHRoaXMgd2lsbCBu ZWVkIHRvIGJlIGNvbW11bmljYXRlZCB0byB0aGUgZGlzcGxheQorCSAqIHNlcnZlciBzbyBpdCBj YW4gcmUtc3dpenpsZSBpZiBuZWVkZWQuCisJICovCisjaWYgX0JZVEVfT1JERVIgPT0gX0JJR19F TkRJQU4KKwlpbWFnZS0+Ynl0ZV9vcmRlciA9IE1TQkZpcnN0OworI2Vsc2UKKwlpbWFnZS0+Ynl0 ZV9vcmRlciA9IExTQkZpcnN0OworI2VuZGlmCiAKIAkvKiBDcmVhdGUgYSBncmFwaGljcyBjb250 ZXh0IGZvciBvdXIgbmV3IHBpeG1hcCAqLwogCWdjID0gWENyZWF0ZUdDKGRpc3BsYXksIHdpbmRv dywgMCwgTlVMTCk7Cg== --000000000000a08c200648511114--