Re: Color support for wsfb/Amiga
Jukka Andberg <[email protected]> Mon, 27 Jun 2022 21:51:57 +0300
| Newsgroups | gmane.os.netbsd.ports.amiga,gmane.os.netbsd.devel.x11,gmane.os.netbsd.ports.luna68k |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --Multipart=_Mon__27_Jun_2022_21_51_57_+0300_j0skilo.AcUNwj3U Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Izumi Tsutsui wrote Sun, 26 Jun 2022 15:53:49 +0900: > Just FYI, ancient XFree86 driver seems to have "iplan2p2", "iplan2p4", > and "iplan2p8" drivers (but I have not investigated them yet): > http://cvsweb.netbsd.org/bsdweb.cgi/xsrc/xfree/xc/programs/Xserver/iplan2p4/Attic/ I suppose those are the "native" planar mode drivers. > Random comments: > > - as rin@ said, it's safer to leave WSDISPLAYIO_GTYPE not mandatory, > (i.e. not treat errors as fatal) especially if WSDISPLAYIO_GET_FBINFO > is available for newer drivers > - we don't have well-defined ioctl specifications so we should not rely > on implicit expectations Ok then, I've updated the patch to just log an warning if WSDISPLAYIO_GTYPE fails. > - I wonder if we should consider about "len" for mmap in WsfbScreenInit()? > fPtr->fbi.fbi_fbsize is enough? What about fPtr->fbmem_len? In case of Amiga fbi_fbsize is correct, and fbmem_len is derived from it. > - As commented in WsfbScreenInit(), shadowFB is not supported > on depth < 8, so I wonder we should bother to check bitsPerPixel > (I doubt there could be >8bpp planar) For length calculation? Yes, seems safe to assume exactly 8bpp there. > - wonder what "Afb" stands for, even in Xorg > (eventually we could have Afb4, for luna68k and atari etc.?) I don't think it has any particular meaning beyond being the identifier for Amiga planar mode routines in Xorg. Atari seems to have separate routines: https://lists.x.org/archives/xorg-devel/2013-March/035831.html --jukka --Multipart=_Mon__27_Jun_2022_21_51_57_+0300_j0skilo.AcUNwj3U Content-Type: application/octet-stream; name="wsfb2.diff" Content-Disposition: attachment; filename="wsfb2.diff" Content-Transfer-Encoding: base64 SW5kZXg6IHNyYy9zeXMvYXJjaC9hbWlnYS9kZXYvYW1pZGlzcGxheWNjLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gc3JjL3N5cy9hcmNoL2FtaWdhL2Rldi9hbWlkaXNwbGF5Y2MuYwkocmV2aXNpb24gOTI4KQor Kysgc3JjL3N5cy9hcmNoL2FtaWdhL2Rldi9hbWlkaXNwbGF5Y2MuYwkod29ya2luZyBjb3B5KQpA QCAtMTExMiwxNCArMTExMiwxMyBAQAogCWJtID0gYWRwLT5nZnh2aWV3LT5iaXRtYXA7CiAJS0FT U0VSVChibSk7CiAKLQkvKiBEZXB0aCAxIHNpbmNlIGN1cnJlbnQgWCB3c2ZiIGRyaXZlciBkb2Vz bid0IHN1cHBvcnQgbXVsdGlwbGUgYml0cGxhbmVzICovCiAJbWVtc2V0KGZiaW5mbywgMCwgc2l6 ZW9mKCpmYmluZm8pKTsKLQlmYmluZm8tPmZiaV9mYnNpemUgPSBibS0+Ynl0ZXNfcGVyX3JvdyAq IGJtLT5yb3dzOworCWZiaW5mby0+ZmJpX2Zic2l6ZSA9IGJtLT5ieXRlc19wZXJfcm93ICogYm0t PnJvd3MgKiBhZHAtPmdmeGRlcHRoOwogCWZiaW5mby0+ZmJpX2Zib2Zmc2V0ID0gMDsKIAlmYmlu Zm8tPmZiaV93aWR0aCA9IGJtLT5ieXRlc19wZXJfcm93ICogODsKIAlmYmluZm8tPmZiaV9oZWln aHQgPSBibS0+cm93czsKIAlmYmluZm8tPmZiaV9zdHJpZGUgPSBibS0+Ynl0ZXNfcGVyX3JvdzsK LQlmYmluZm8tPmZiaV9iaXRzcGVycGl4ZWwgPSAxOworCWZiaW5mby0+ZmJpX2JpdHNwZXJwaXhl bCA9IGFkcC0+Z2Z4ZGVwdGg7CiAJZmJpbmZvLT5mYmlfcGl4ZWx0eXBlID0gV1NGQl9DSTsKIAlm YmluZm8tPmZiaV9mbGFncyA9IDA7CiAJZmJpbmZvLT5mYmlfc3VidHlwZS5mYmlfY21hcGluZm8u Y21hcF9lbnRyaWVzID0gMSA8PCBhZHAtPmdmeGRlcHRoOwpJbmRleDogeHNyYy9leHRlcm5hbC9t aXQveGY4Ni12aWRlby13c2ZiL2Rpc3Qvc3JjL3dzZmIuaAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB4c3JjL2V4 dGVybmFsL21pdC94Zjg2LXZpZGVvLXdzZmIvZGlzdC9zcmMvd3NmYi5oCShyZXZpc2lvbiA5Mjgp CisrKyB4c3JjL2V4dGVybmFsL21pdC94Zjg2LXZpZGVvLXdzZmIvZGlzdC9zcmMvd3NmYi5oCSh3 b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw3IEBACiAJQm9vbAkJCXNoYWRvd0ZCOwogCUJvb2wJ CQlIV0N1cnNvcjsKIAlCb29sCQkJdXNlU3dhcDMyOworCUJvb2wJCQlwbGFuYXJBZmI7CiAJQ2xv c2VTY3JlZW5Qcm9jUHRyCUNsb3NlU2NyZWVuOwogCUNyZWF0ZVNjcmVlblJlc291cmNlc1Byb2NQ dHIgQ3JlYXRlU2NyZWVuUmVzb3VyY2VzOwogCXZvaWQgICAgICAgICAgICAgICAgICAgICgqUG9p bnRlck1vdmVkKShTQ1JOX0FSR19UWVBFLCBpbnQsIGludCk7CkluZGV4OiB4c3JjL2V4dGVybmFs L21pdC94Zjg2LXZpZGVvLXdzZmIvZGlzdC9zcmMvd3NmYl9kcml2ZXIuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSB4c3JjL2V4dGVybmFsL21pdC94Zjg2LXZpZGVvLXdzZmIvZGlzdC9zcmMvd3NmYl9kcml2ZXIu YwkocmV2aXNpb24gOTI4KQorKysgeHNyYy9leHRlcm5hbC9taXQveGY4Ni12aWRlby13c2ZiL2Rp c3Qvc3JjL3dzZmJfZHJpdmVyLmMJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2ICsxMjEsOCBAQAog c3RhdGljIEJvb2wgV3NmYkNsb3NlU2NyZWVuKENMT1NFX1NDUkVFTl9BUkdTX0RFQ0wpOwogc3Rh dGljIHZvaWQgKldzZmJXaW5kb3dMaW5lYXIoU2NyZWVuUHRyLCBDQVJEMzIsIENBUkQzMiwgaW50 LCBDQVJEMzIgKiwKIAkJCSAgICAgIHZvaWQgKik7CitzdGF0aWMgdm9pZCAqV3NmYldpbmRvd0Fm YihTY3JlZW5QdHIsIENBUkQzMiwgQ0FSRDMyLCBpbnQsIENBUkQzMiAqLAorCQkJICAgICAgdm9p ZCAqKTsKIHN0YXRpYyB2b2lkIFdzZmJQb2ludGVyTW92ZWQoU0NSTl9BUkdfVFlQRSwgaW50LCBp bnQpOwogc3RhdGljIEJvb2wgV3NmYkVudGVyVlQoVlRfRlVOQ19BUkdTX0RFQ0wpOwogc3RhdGlj IHZvaWQgV3NmYkxlYXZlVlQoVlRfRlVOQ19BUkdTX0RFQ0wpOwpAQCAtMjExLDYgKzIxMyw3IEBA CiAJInNoYWRvd1VwZGF0ZVBhY2tlZFdlYWsiLAogCSJzaGFkb3dVcGRhdGVSb3RhdGVQYWNrZWQi LAogCSJzaGFkb3dVcGRhdGVSb3RhdGVQYWNrZWRXZWFrIiwKKwkic2hhZG93VXBkYXRlQWZiOCIs CiAJTlVMTAogfTsKIApAQCAtNDQ0LDYgKzQ0NywxMyBAQAogCQlyZXR1cm4gRkFMU0U7CiAJfQog CisJaWYgKGlvY3RsKGZQdHItPmZkLCBXU0RJU1BMQVlJT19HVFlQRSwgJndzdHlwZSkgPT0gLTEp IHsKKwkJeGY4NkRydk1zZyhwU2Nybi0+c2NybkluZGV4LCBYX1dBUk5JTkcsCisJCQkgICAiaW9j dGwgV1NESVNQTEFZX0dUWVBFOiAlc1xuIiwKKwkJCSAgIHN0cmVycm9yKGVycm5vKSk7CisJCXdz dHlwZSA9IFdTRElTUExBWV9UWVBFX1VOS05PV047CisJfQorCiAJaWYgKGlvY3RsKGZQdHItPmZk LCBXU0RJU1BMQVlJT19HRVRfRkJJTkZPLCAmZlB0ci0+ZmJpKSAhPSAwKSB7CiAJCXN0cnVjdCB3 c2Rpc3BsYXlfZmJpbmZvIGluZm87CiAJCXN0cnVjdCB3c2Rpc3BsYXlpb19mYmluZm8gKmZiaSA9 ICZmUHRyLT5mYmk7CkBAIC00NTcsMTIgKzQ2Nyw2IEBACiAJCQkJICAgc3RyZXJyb3IoZXJybm8p KTsKIAkJCXJldHVybiBGQUxTRTsKIAkJfQotCQlpZiAoaW9jdGwoZlB0ci0+ZmQsIFdTRElTUExB WUlPX0dUWVBFLCAmd3N0eXBlKSA9PSAtMSkgewotCQkJeGY4NkRydk1zZyhwU2Nybi0+c2Nybklu ZGV4LCBYX0VSUk9SLAotCQkJCSAgICJpb2N0bCBXU0RJU1BMQVlfR1RZUEU6ICVzXG4iLAotCQkJ CSAgIHN0cmVycm9yKGVycm5vKSk7Ci0JCQlyZXR1cm4gRkFMU0U7Ci0JCX0KIAkJaWYgKGlvY3Rs KGZQdHItPmZkLCBXU0RJU1BMQVlJT19MSU5FQllURVMsICZsYikgPT0gLTEpIHsKIAkJCXhmODZE cnZNc2cocFNjcm4tPnNjcm5JbmRleCwgWF9FUlJPUiwKIAkJCQkgICAiaW9jdGwgV1NESVNQTEFZ SU9fTElORUJZVEVTOiAlc1xuIiwKQEAgLTU3Myw2ICs1NzcsMjUgQEAKIAkJYml0c3BlcnBpeGVs ID0gMTsKIAl9CiAjZW5kaWYKKyNpZiBkZWZpbmVkKF9fTmV0QlNEX18pICYmIGRlZmluZWQoV1NE SVNQTEFZX1RZUEVfQU1JR0FDQykKKwlpZiAod3N0eXBlID09IFdTRElTUExBWV9UWVBFX0FNSUdB Q0MpCisJeworCQkvKgorCQkgKiBWaWRlbyBtZW1vcnkgaXMgb3JnYW5pemVkIGluIGJpdHBsYW5l cy4KKwkJICogOGJwcCBvciAxYnBwIHN1cHBvcnRlZCBpbiB0aGlzIGRyaXZlci4KKwkJICogV2l0 aCA4YnBwIGNvbnZlcnNpb24gdG8gYml0cGxhbmUgZm9ybWF0CisJCSAqIGlzIGRvbmUgaW4gc2hh ZG93IHVwZGF0ZSBwcm9jLgorCQkgKiBXaXRoIDFicHAgbm8gY29udmVyc2lvbiBuZWVkZWQuCisJ CSAqLworCQlpZiAoYml0c3BlcnBpeGVsID09IDgpIHsKKwkJCWZQdHItPnBsYW5hckFmYiA9IFRS VUU7CisJCX0gZWxzZSB7CisJCQlkZWZhdWx0X2RlcHRoID0gMTsKKwkJCWJpdHNwZXJwaXhlbCA9 IDE7CisJCX0KKwl9CisjZW5kaWYKKwogCWlmICgheGY4NlNldERlcHRoQnBwKHBTY3JuLCBkZWZh dWx0X2RlcHRoLCBkZWZhdWx0X2RlcHRoLAogCQliaXRzcGVycGl4ZWwsCiAJCWJpdHNwZXJwaXhl bCA+PSAyNCA/IFN1cHBvcnQyNGJwcEZifFN1cHBvcnQzMmJwcEZiIDogMCkpCkBAIC04MjYsNiAr ODQ5LDcgQEAKIAlQaXhtYXBQdHIgcFBpeG1hcDsKIAlCb29sIHJldDsKIAl2b2lkICgqc2hhZG93 cHJvYykoU2NyZWVuUHRyLCBzaGFkb3dCdWZQdHIpOworCVNoYWRvd1dpbmRvd1Byb2Mgd2luZG93 cHJvYyA9IFdzZmJXaW5kb3dMaW5lYXI7CiAKIAlwU2NyZWVuLT5DcmVhdGVTY3JlZW5SZXNvdXJj ZXMgPSBmUHRyLT5DcmVhdGVTY3JlZW5SZXNvdXJjZXM7CiAJcmV0ID0gcFNjcmVlbi0+Q3JlYXRl U2NyZWVuUmVzb3VyY2VzKHBTY3JlZW4pOwpAQCAtODQxLDExICs4NjUsMTQgQEAKIAkJc2hhZG93 cHJvYyA9IFdzZmJTaGFkb3dVcGRhdGVTd2FwMzI7CiAJfSBlbHNlIGlmIChmUHRyLT5yb3RhdGUp IHsKIAkJc2hhZG93cHJvYyA9IHNoYWRvd1VwZGF0ZVJvdGF0ZVBhY2tlZDsKKwl9IGVsc2UgaWYg KGZQdHItPnBsYW5hckFmYikgeworCQlzaGFkb3dwcm9jID0gc2hhZG93VXBkYXRlQWZiODsKKwkJ d2luZG93cHJvYyA9IFdzZmJXaW5kb3dBZmI7CiAJfSBlbHNlCiAJCXNoYWRvd3Byb2MgPSBzaGFk b3dVcGRhdGVQYWNrZWQ7CiAJCiAJaWYgKCFzaGFkb3dBZGQocFNjcmVlbiwgcFBpeG1hcCwgc2hh ZG93cHJvYywKLQkJV3NmYldpbmRvd0xpbmVhciwgZlB0ci0+cm90YXRlLCBOVUxMKSkgeworCQl3 aW5kb3dwcm9jLCBmUHRyLT5yb3RhdGUsIE5VTEwpKSB7CiAJCXJldHVybiBGQUxTRTsKIAl9CiAJ cmV0dXJuIFRSVUU7CkBAIC05ODcsNiArMTAxNCw5IEBACiAJCQkgKi8KIAkJCWxlbiA9IHBTY3Ju LT52aXJ0dWFsWCAqIHBTY3JuLT52aXJ0dWFsWSAqCiAJCQkgICAgKHBTY3JuLT5iaXRzUGVyUGl4 ZWwgPj4gMyk7CisJCX0gZWxzZSBpZiAoZlB0ci0+cGxhbmFyQWZiKSB7CisJCQkvKiBhbHdheXMg OGJwcCAqLworCQkJbGVuID0gcFNjcm4tPnZpcnR1YWxYICogcFNjcm4tPnZpcnR1YWxZOwogCQl9 IGVsc2UgewogCQkJbGVuID0gZlB0ci0+ZmJpLmZiaV9zdHJpZGUgKiBwU2Nybi0+dmlydHVhbFk7 CiAJCX0KQEAgLTEwMDYsNiArMTAzNiw4IEBACiAJICovCiAJaWYgKGZQdHItPnJvdGF0ZSkgewog CQl3aWR0aCA9IHBTY3JuLT5kaXNwbGF5V2lkdGg7CisJfSBlbHNlIGlmIChmUHRyLT5wbGFuYXJB ZmIpIHsKKwkJd2lkdGggPSBwU2Nybi0+ZGlzcGxheVdpZHRoOwogCX0gZWxzZSB7CiAJCWlmIChw U2Nybi0+Yml0c1BlclBpeGVsID4gOCkgewogCQkJd2lkdGggPQpAQCAtMTIzMiw2ICsxMjY0LDIz IEBACiAJcmV0dXJuICgoQ0FSRDggKilmUHRyLT5mYnN0YXJ0ICsgcm93ICogZlB0ci0+ZmJpLmZi aV9zdHJpZGUgKyBvZmZzZXQpOwogfQogCisvKioKKyAqIEZvciB1c2Ugd2l0aCBzaGFkb3dVcGRh dGVBZmI4CisgKgorICogRm9yIHZpZGVvIG1lbW9yeSBsYXlvdXQgd2l0aCBub24taW50ZXJsZWF2 ZWQgYml0cGxhbmVzLgorICovCitzdGF0aWMgdm9pZCAqCitXc2ZiV2luZG93QWZiKFNjcmVlblB0 ciBwU2NyZWVuLCBDQVJEMzIgcm93LCBDQVJEMzIgb2Zmc2V0LCBpbnQgbW9kZSwKKwkJQ0FSRDMy ICpzaXplLCB2b2lkICpjbG9zdXJlKQoreworCVNjcm5JbmZvUHRyIHBTY3JuID0geGY4NlNjcmVl bnNbcFNjcmVlbi0+bXlOdW1dOworCVdzZmJQdHIgZlB0ciA9IFdTRkJQVFIocFNjcm4pOworCisJ Lyogc2l6ZSBpcyBvZmZzZXQgZnJvbSBzdGFydCBvZiBiaXRwbGFuZSB0byBuZXh0IGJpdHBsYW5l ICovCisJKnNpemUgPSBmUHRyLT5mYmkuZmJpX3N0cmlkZSAqIGZQdHItPmZiaS5mYmlfaGVpZ2h0 OworCXJldHVybiAoKENBUkQ4ICopZlB0ci0+ZmJzdGFydCArIHJvdyAqIGZQdHItPmZiaS5mYmlf c3RyaWRlICsgb2Zmc2V0KTsKK30KKwogc3RhdGljIHZvaWQKIFdzZmJQb2ludGVyTW92ZWQoU0NS Tl9BUkdfVFlQRSBhcmcsIGludCB4LCBpbnQgeSkKIHsK --Multipart=_Mon__27_Jun_2022_21_51_57_+0300_j0skilo.AcUNwj3U--