From: Mario Kleiner <mario.kleiner.de-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Cc: mario.kleiner.de-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
"Fredrik Höglund" <fredrik-RoXCvvDuEio@public.gmane.org>
Subject: [PATCH 3/4] exa: Accelerate ARGB2101010 pictures
Date: Mon, 22 Jan 2018 03:14:36 +0100 [thread overview]
Message-ID: <20180122021437.9361-4-mario.kleiner.de@gmail.com> (raw)
In-Reply-To: <20180122021437.9361-1-mario.kleiner.de-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
From: Fredrik Höglund <fredrik@kde.org>
Tested by Mario on a Radeon HD 4000 series for the r600
exa path, and on Radeon HD 5770 for the evergreen exa
path.
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-and-Tested-by: Mario Kleiner <mario.kleiner.de@gmail.com>
---
src/evergreen_exa.c | 18 ++++++++++++++++++
src/r600_exa.c | 18 ++++++++++++++++++
2 files changed, 36 insertions(+)
diff --git a/src/evergreen_exa.c b/src/evergreen_exa.c
index 90c9b6d..8584813 100644
--- a/src/evergreen_exa.c
+++ b/src/evergreen_exa.c
@@ -668,6 +668,10 @@ struct formatinfo {
};
static struct formatinfo EVERGREENTexFormats[] = {
+ {PICT_a2r10g10b10, FMT_2_10_10_10},
+ {PICT_x2r10g10b10, FMT_2_10_10_10},
+ {PICT_a2b10g10r10, FMT_2_10_10_10},
+ {PICT_x2b10g10r10, FMT_2_10_10_10},
{PICT_a8r8g8b8, FMT_8_8_8_8},
{PICT_x8r8g8b8, FMT_8_8_8_8},
{PICT_a8b8g8r8, FMT_8_8_8_8},
@@ -723,6 +727,12 @@ static uint32_t EVERGREENGetBlendCntl(int op, PicturePtr pMask, uint32_t dst_for
static Bool EVERGREENGetDestFormat(PicturePtr pDstPicture, uint32_t *dst_format)
{
switch (pDstPicture->format) {
+ case PICT_a2r10g10b10:
+ case PICT_x2r10g10b10:
+ case PICT_a2b10g10r10:
+ case PICT_x2b10g10r10:
+ *dst_format = COLOR_2_10_10_10;
+ break;
case PICT_a8r8g8b8:
case PICT_x8r8g8b8:
case PICT_a8b8g8r8:
@@ -891,6 +901,7 @@ static Bool EVERGREENTextureSetup(PicturePtr pPict, PixmapPtr pPix,
/* component swizzles */
switch (pPict->format) {
+ case PICT_a2r10g10b10:
case PICT_a1r5g5b5:
case PICT_a8r8g8b8:
pix_r = SQ_SEL_Z; /* R */
@@ -898,12 +909,14 @@ static Bool EVERGREENTextureSetup(PicturePtr pPict, PixmapPtr pPix,
pix_b = SQ_SEL_X; /* B */
pix_a = SQ_SEL_W; /* A */
break;
+ case PICT_a2b10g10r10:
case PICT_a8b8g8r8:
pix_r = SQ_SEL_X; /* R */
pix_g = SQ_SEL_Y; /* G */
pix_b = SQ_SEL_Z; /* B */
pix_a = SQ_SEL_W; /* A */
break;
+ case PICT_x2b10g10r10:
case PICT_x8b8g8r8:
pix_r = SQ_SEL_X; /* R */
pix_g = SQ_SEL_Y; /* G */
@@ -922,6 +935,7 @@ static Bool EVERGREENTextureSetup(PicturePtr pPict, PixmapPtr pPix,
pix_b = SQ_SEL_W; /* B */
pix_a = SQ_SEL_1; /* A */
break;
+ case PICT_x2r10g10b10:
case PICT_x1r5g5b5:
case PICT_x8r8g8b8:
case PICT_r5g6b5:
@@ -1425,6 +1439,8 @@ static Bool EVERGREENPrepareComposite(int op, PicturePtr pSrcPicture,
cb_conf.surface = accel_state->dst_obj.surface;
switch (pDstPicture->format) {
+ case PICT_a2r10g10b10:
+ case PICT_x2r10g10b10:
case PICT_a8r8g8b8:
case PICT_x8r8g8b8:
case PICT_a1r5g5b5:
@@ -1432,6 +1448,8 @@ static Bool EVERGREENPrepareComposite(int op, PicturePtr pSrcPicture,
default:
cb_conf.comp_swap = 1; /* ARGB */
break;
+ case PICT_a2b10g10r10:
+ case PICT_x2b10g10r10:
case PICT_a8b8g8r8:
case PICT_x8b8g8r8:
cb_conf.comp_swap = 0; /* ABGR */
diff --git a/src/r600_exa.c b/src/r600_exa.c
index 22d4b31..c69b8fc 100644
--- a/src/r600_exa.c
+++ b/src/r600_exa.c
@@ -727,6 +727,10 @@ struct formatinfo {
};
static struct formatinfo R600TexFormats[] = {
+ {PICT_a2r10g10b10, FMT_2_10_10_10},
+ {PICT_x2r10g10b10, FMT_2_10_10_10},
+ {PICT_a2b10g10r10, FMT_2_10_10_10},
+ {PICT_x2b10g10r10, FMT_2_10_10_10},
{PICT_a8r8g8b8, FMT_8_8_8_8},
{PICT_x8r8g8b8, FMT_8_8_8_8},
{PICT_a8b8g8r8, FMT_8_8_8_8},
@@ -782,6 +786,12 @@ static uint32_t R600GetBlendCntl(int op, PicturePtr pMask, uint32_t dst_format)
static Bool R600GetDestFormat(PicturePtr pDstPicture, uint32_t *dst_format)
{
switch (pDstPicture->format) {
+ case PICT_a2r10g10b10:
+ case PICT_x2r10g10b10:
+ case PICT_a2b10g10r10:
+ case PICT_x2b10g10r10:
+ *dst_format = COLOR_2_10_10_10;
+ break;
case PICT_a8r8g8b8:
case PICT_x8r8g8b8:
case PICT_a8b8g8r8:
@@ -906,6 +916,7 @@ static Bool R600TextureSetup(PicturePtr pPict, PixmapPtr pPix,
/* component swizzles */
switch (pPict->format) {
+ case PICT_a2r10g10b10:
case PICT_a1r5g5b5:
case PICT_a8r8g8b8:
pix_r = SQ_SEL_Z; /* R */
@@ -913,12 +924,14 @@ static Bool R600TextureSetup(PicturePtr pPict, PixmapPtr pPix,
pix_b = SQ_SEL_X; /* B */
pix_a = SQ_SEL_W; /* A */
break;
+ case PICT_a2b10g10r10:
case PICT_a8b8g8r8:
pix_r = SQ_SEL_X; /* R */
pix_g = SQ_SEL_Y; /* G */
pix_b = SQ_SEL_Z; /* B */
pix_a = SQ_SEL_W; /* A */
break;
+ case PICT_x2b10g10r10:
case PICT_x8b8g8r8:
pix_r = SQ_SEL_X; /* R */
pix_g = SQ_SEL_Y; /* G */
@@ -937,6 +950,7 @@ static Bool R600TextureSetup(PicturePtr pPict, PixmapPtr pPix,
pix_b = SQ_SEL_W; /* B */
pix_a = SQ_SEL_1; /* A */
break;
+ case PICT_x2r10g10b10:
case PICT_x1r5g5b5:
case PICT_x8r8g8b8:
case PICT_r5g6b5:
@@ -1464,6 +1478,8 @@ static Bool R600PrepareComposite(int op, PicturePtr pSrcPicture,
cb_conf.surface = accel_state->dst_obj.surface;
switch (pDstPicture->format) {
+ case PICT_a2r10g10b10:
+ case PICT_x2r10g10b10:
case PICT_a8r8g8b8:
case PICT_x8r8g8b8:
case PICT_a1r5g5b5:
@@ -1471,6 +1487,8 @@ static Bool R600PrepareComposite(int op, PicturePtr pSrcPicture,
default:
cb_conf.comp_swap = 1; /* ARGB */
break;
+ case PICT_a2b10g10r10:
+ case PICT_x2b10g10r10:
case PICT_a8b8g8r8:
case PICT_x8b8g8r8:
cb_conf.comp_swap = 0; /* ABGR */
--
2.7.4
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
next prev parent reply other threads:[~2018-01-22 2:14 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-22 2:14 Depth 30 enablement for ati-ddx + exa. Rev 3 Mario Kleiner
[not found] ` <20180122021437.9361-1-mario.kleiner.de-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-22 2:14 ` [PATCH 1/4] Define per x-screen individual drmmode_crtc_funcs Mario Kleiner
2018-01-22 2:14 ` [PATCH 2/4] Skip xf86HandleColormaps() at color depth 30. (v2) Mario Kleiner
2018-01-22 2:14 ` Mario Kleiner [this message]
2018-01-22 2:14 ` [PATCH 4/4] Support exa screen color depth 30 on Linux 3.16 and later. (v2) Mario Kleiner
2018-01-22 18:01 ` Depth 30 enablement for ati-ddx + exa. Rev 3 Michel Dänzer
[not found] ` <04923fbb-dffb-b849-2f59-16e1f993a728-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-01-24 11:35 ` Michel Dänzer
2018-01-24 17:35 ` Mario Kleiner
[not found] ` <046a48e6-ef6d-11b4-99ec-8a8f668df5e6-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-25 16:06 ` Michel Dänzer
[not found] ` <24d16c05-9d78-b5fd-4f0c-4e64577be1c4-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-01-26 21:42 ` Mario Kleiner
[not found] ` <3e8f6391-8e2f-591e-4341-ead830f72def-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-29 11:50 ` Michel Dänzer
2018-03-04 7:25 ` [ANNOUNCE] xf86-video-amdgpu 18.0.0 Mario Kleiner
[not found] ` <bca9b6ef-c675-95ba-fe02-4e5821902066-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-03-05 9:55 ` Michel Dänzer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180122021437.9361-4-mario.kleiner.de@gmail.com \
--to=mario.kleiner.de-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=fredrik-RoXCvvDuEio@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox