From bff0d7c2b7dfe0f35d9d88d7edeb197184e1df3c Mon Sep 17 00:00:00 2001 From: beeanyew Date: Fri, 15 Oct 2021 12:04:45 +0200 Subject: [PATCH] Enable the "blitter" for P96 driver This enables some advanced background functionality for P96, and seems to have no performance drawbacks so far. It is however possible that this may cause some problems with applications using unusual color formats for their bitmaps. --- .../amiga/rtg/rtg_driver_amiga/pigfx-2.c | 29 ++++++++++++++++-- .../amiga/rtg/rtg_driver_amiga/pigfx020.card | Bin 5576 -> 5580 bytes 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/platforms/amiga/rtg/rtg_driver_amiga/pigfx-2.c b/platforms/amiga/rtg/rtg_driver_amiga/pigfx-2.c index 5ae28f2..d415d9b 100644 --- a/platforms/amiga/rtg/rtg_driver_amiga/pigfx-2.c +++ b/platforms/amiga/rtg/rtg_driver_amiga/pigfx-2.c @@ -259,7 +259,7 @@ int __attribute__((used)) InitCard(__REGA0(struct BoardInfo* b)) { b->PaletteChipType = PCT_S3ViRGE; b->GraphicsControllerType = GCT_S3ViRGE; - b->Flags |= BIF_GRANTDIRECTACCESS | BIF_HARDWARESPRITE | BIF_FLICKERFIXER; + b->Flags |= BIF_GRANTDIRECTACCESS | BIF_HARDWARESPRITE | BIF_FLICKERFIXER | BIF_BLITTER; b->RGBFormats = 1 | 2 | 512 | 1024 | 2048; b->SoftSpriteFlags = 0; b->BitsPerCannon = 8; @@ -432,9 +432,32 @@ APTR CalculateMemory (__REGA0(struct BoardInfo *b), __REGA1(unsigned long addr), return (APTR)addr; } +enum fake_rgbftypes { + RGBF_8BPP_CLUT, + RGBF_24BPP_RGB, + RGBF_24BPP_BGR, + RGBF_16BPP_RGB565_PC, + RGBF_16BPP_RGB555_PC, + RGBF_32BPP_ARGB, + RGBF_32BPP_ABGR, + RGBF_32BPP_RGBA, + RGBF_32BPP_BGRA, + RGBF_16BPP_RGB565, + RGBF_16BPP_RGB555, + RGBF_16BPP_BGR565_PC, + RGBF_16BPP_BGR555_PC, + RGBF_YUV_422_0, // (Actually 4:2:0?) Just a duplicate of RGBF_YUV_422? + RGBF_YUV_411, // No, these are 4:2:0 + RGBF_YUV_411_PC, // No, these are 4:2:0 + RGBF_YUV_422, + RGBF_YUV_422_PC, + RGBF_YUV_422_PLANAR, + RGBF_YUV_422_PLANAR_PC, +}; +#define BIP(a) (1 << a) + ULONG GetCompatibleFormats (__REGA0(struct BoardInfo *b), __REGD7(RGBFTYPE format)) { - // It is of course compatible with all the formats ever. - return 0xFFFFFFFF; + return BIP(RGBF_8BPP_CLUT) | BIP(RGBF_24BPP_RGB) | BIP(RGBF_24BPP_BGR) | BIP(RGBF_32BPP_ARGB) | BIP(RGBF_32BPP_ABGR) | BIP(RGBF_32BPP_RGBA) | BIP(RGBF_32BPP_BGRA); } //static int display_enabled = 0; diff --git a/platforms/amiga/rtg/rtg_driver_amiga/pigfx020.card b/platforms/amiga/rtg/rtg_driver_amiga/pigfx020.card index 842ce298a985a93e7803528a099947b4792e60ff..29cc8dfc15e63a1cd5649adc167c3459de667b7a 100644 GIT binary patch delta 817 zcmYL_Ur19?9LLXZyY8R2+}*?!2^52*A;E}*v;t@L2dm-0BBIM}UEA>P58JIYBwu8Y zu{aPtg-G-iu^7k#Uj&IEJ@nv1gv6d|$qCF?#s&Ilu4uo!{?we$~+DQ1O_y z$ruYlLyS3pL7Ojz&(rFMxjIpi-*gn0D|Bvfi7{oHE=bmBLb6U%l6!PbvOzZ__i0A* zfMz8R>5ic19z7QHHfde3qlcbJMyViKpyz_F0KJrK&}+f4yGd_l!WO-k^w1B%&Wgh& zS#|g%cO6Fs)s=G5d4*g9t_3B>D| z@+o%ff(QyjsNqDu`UVu*fOiDKTQ-d~H_;2n4nJdj%0EckJmDYJRz-%co3^=NG?&tSUMlj#!%y~7V0~Mq3D-Qdp5S1j>l}n zHbqW{hp%e=ROK65{~)@fPs&Wiv!Z}nYR7p~^i>=Dj}{_@p9oy+E5K0nm}%e2C2jM% zk)MYFtHGB7p^*TNPJJ?GJef|WWh3Sm)#Zy=Ry?_yG9HSX&RxC}7`oJG-$pFc$o;Rk zFDs$XWHO(%3^A8dY3H^oMKV?<2TNVy{YFbk$2mBy7Hqxqq jZA6m`rWLU=aXG$H!z-sgm9(rGGcNv&4fT|7cW3DzHc!VL delta 779 zcmYL_PiPZC6vpQzo5Un*y1Pk|t)wUiP>4?Zxx@oPgiW}>xecS7ZJ6Nfz!gpxu5s=_ zj&m2LIrm_e@z5+RF$TNvj?t&UL(VKb=3Id%jQ$8b=X7C>F&*f_IuB^VYfb?=jA6&) z=iKmwI9r|wqgb=+-bwJ3|Jq-L-vABT^8bQ{{W+kr!^xlxuKg|8#|}S2c%bXy_qd-E zPxJMN-4Ks^#|N>+o2X}~FW6R^kbs2Wh@rL!3Eje%UZIZ)tfBV@y^rV(qvr9OZ?VHA zDoOFg3!Lgp)CZjMVU!1z#esHF`&eD1lTs2ksVSY6SJ}O)>Xv@r!fhX+j&uq-v@Io% zVGi-Bqo!d^nOae+q%(K!78jP$#o^LHc?4_B$*D7YXb9?M-I~rX7Ylhyvvd~Y6WF5W zbt_-47?wU&sv4G2Dzdxq25rhm6W9^HzNjx2%B-x|=$)%N>qd0xzMKL=hm?y0D`*I; z+6*gpRjV$bftE{aN~%ACTdz7+(e7o9B7dF)y0odpp+#Fta@=L1EIVWBTIGNC4$nh> z%&3-4jddY7z1V}kGbOWBK})RBOVKJcsS`ah(C)?LbZwrE=ip6Ym;Q{7fJ294@&0X$ V@v0MsY3B3-`wxyov2Vo6@DF2o#329x