Mesa (master): freedreno/a4xx: add 16-bit unorm/snorm format texturing/ rendering

Ilia Mirkin imirkin at kemper.freedesktop.org
Sat Nov 21 01:06:48 UTC 2015


Module: Mesa
Branch: master
Commit: e1319dcdd6c63ce289a75cd06ac20355d48f01d7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1319dcdd6c63ce289a75cd06ac20355d48f01d7

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Fri Nov 20 10:40:59 2015 -0500

freedreno/a4xx: add 16-bit unorm/snorm format texturing/rendering

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

---

 src/gallium/drivers/freedreno/a4xx/a4xx.xml.h   |   12 +++++
 src/gallium/drivers/freedreno/a4xx/fd4_format.c |   60 +++++++++++++----------
 2 files changed, 47 insertions(+), 25 deletions(-)

diff --git a/src/gallium/drivers/freedreno/a4xx/a4xx.xml.h b/src/gallium/drivers/freedreno/a4xx/a4xx.xml.h
index 82c19b9..cc48cdc 100644
--- a/src/gallium/drivers/freedreno/a4xx/a4xx.xml.h
+++ b/src/gallium/drivers/freedreno/a4xx/a4xx.xml.h
@@ -52,6 +52,8 @@ enum a4xx_color_fmt {
 	RB4_R8G8_SNORM = 16,
 	RB4_R8G8_UINT = 17,
 	RB4_R8G8_SINT = 18,
+	RB4_R16_UNORM = 19,
+	RB4_R16_SNORM = 20,
 	RB4_R16_FLOAT = 21,
 	RB4_R16_UINT = 22,
 	RB4_R16_SINT = 23,
@@ -63,12 +65,16 @@ enum a4xx_color_fmt {
 	RB4_R10G10B10A2_UNORM = 31,
 	RB4_R10G10B10A2_UINT = 34,
 	RB4_R11G11B10_FLOAT = 39,
+	RB4_R16G16_UNORM = 40,
+	RB4_R16G16_SNORM = 41,
 	RB4_R16G16_FLOAT = 42,
 	RB4_R16G16_UINT = 43,
 	RB4_R16G16_SINT = 44,
 	RB4_R32_FLOAT = 45,
 	RB4_R32_UINT = 46,
 	RB4_R32_SINT = 47,
+	RB4_R16G16B16A16_UNORM = 52,
+	RB4_R16G16B16A16_SNORM = 53,
 	RB4_R16G16B16A16_FLOAT = 54,
 	RB4_R16G16B16A16_UINT = 55,
 	RB4_R16G16B16A16_SINT = 56,
@@ -172,6 +178,12 @@ enum a4xx_tex_fmt {
 	TFMT4_8_SINT = 7,
 	TFMT4_8_8_SINT = 17,
 	TFMT4_8_8_8_8_SINT = 31,
+	TFMT4_16_UNORM = 18,
+	TFMT4_16_16_UNORM = 38,
+	TFMT4_16_16_16_16_UNORM = 51,
+	TFMT4_16_SNORM = 19,
+	TFMT4_16_16_SNORM = 39,
+	TFMT4_16_16_16_16_SNORM = 52,
 	TFMT4_16_UINT = 21,
 	TFMT4_16_16_UINT = 41,
 	TFMT4_16_16_16_16_UINT = 54,
diff --git a/src/gallium/drivers/freedreno/a4xx/fd4_format.c b/src/gallium/drivers/freedreno/a4xx/fd4_format.c
index d109f36..8eeeb96 100644
--- a/src/gallium/drivers/freedreno/a4xx/fd4_format.c
+++ b/src/gallium/drivers/freedreno/a4xx/fd4_format.c
@@ -99,20 +99,26 @@ static struct fd4_format formats[PIPE_FORMAT_COUNT] = {
 	_T(S8_UINT,    8_UINT,  R8_UNORM, WZYX),
 
 	/* 16-bit */
-	V_(R16_UNORM,   16_UNORM, NONE,     WZYX),
-	V_(R16_SNORM,   16_SNORM, NONE,     WZYX),
-	VT(R16_UINT,    16_UINT,  R16_UINT, WZYX),
-	VT(R16_SINT,    16_SINT,  R16_SINT, WZYX),
-	V_(R16_USCALED, 16_UINT,  NONE,     WZYX),
-	V_(R16_SSCALED, 16_UINT,  NONE,     WZYX),
-	VT(R16_FLOAT,   16_FLOAT, R16_FLOAT,WZYX),
-
-	_T(A16_UINT,    16_UINT,  NONE,     WZYX),
-	_T(A16_SINT,    16_SINT,  NONE,     WZYX),
-	_T(L16_UINT,    16_UINT,  NONE,     WZYX),
-	_T(L16_SINT,    16_SINT,  NONE,     WZYX),
-	_T(I16_UINT,    16_UINT,  NONE,     WZYX),
-	_T(I16_SINT,    16_SINT,  NONE,     WZYX),
+	VT(R16_UNORM,   16_UNORM, R16_UNORM, WZYX),
+	VT(R16_SNORM,   16_SNORM, R16_SNORM, WZYX),
+	VT(R16_UINT,    16_UINT,  R16_UINT,  WZYX),
+	VT(R16_SINT,    16_SINT,  R16_SINT,  WZYX),
+	V_(R16_USCALED, 16_UINT,  NONE,      WZYX),
+	V_(R16_SSCALED, 16_UINT,  NONE,      WZYX),
+	VT(R16_FLOAT,   16_FLOAT, R16_FLOAT, WZYX),
+
+	_T(A16_UNORM,   16_UNORM, NONE,      WZYX),
+	_T(A16_SNORM,   16_SNORM, NONE,      WZYX),
+	_T(A16_UINT,    16_UINT,  NONE,      WZYX),
+	_T(A16_SINT,    16_SINT,  NONE,      WZYX),
+	_T(L16_UNORM,   16_UNORM, NONE,      WZYX),
+	_T(L16_SNORM,   16_SNORM, NONE,      WZYX),
+	_T(L16_UINT,    16_UINT,  NONE,      WZYX),
+	_T(L16_SINT,    16_SINT,  NONE,      WZYX),
+	_T(I16_UNORM,   16_UNORM, NONE,      WZYX),
+	_T(I16_SNORM,   16_SNORM, NONE,      WZYX),
+	_T(I16_UINT,    16_UINT,  NONE,      WZYX),
+	_T(I16_SINT,    16_SINT,  NONE,      WZYX),
 
 	VT(R8G8_UNORM,   8_8_UNORM, R8G8_UNORM, WZYX),
 	VT(R8G8_SNORM,   8_8_SNORM, R8G8_SNORM, WZYX),
@@ -151,16 +157,18 @@ static struct fd4_format formats[PIPE_FORMAT_COUNT] = {
 	_T(I32_UINT,    32_UINT,  NONE,     WZYX),
 	_T(I32_SINT,    32_SINT,  NONE,     WZYX),
 
-	V_(R16G16_UNORM,   16_16_UNORM, NONE,        WZYX),
-	V_(R16G16_SNORM,   16_16_SNORM, NONE,        WZYX),
-	VT(R16G16_UINT,    16_16_UINT,  R16G16_UINT, WZYX),
-	VT(R16G16_SINT,    16_16_SINT,  R16G16_SINT, WZYX),
-	V_(R16G16_USCALED, 16_16_UINT,  NONE,        WZYX),
-	V_(R16G16_SSCALED, 16_16_SINT,  NONE,        WZYX),
-	VT(R16G16_FLOAT,   16_16_FLOAT, R16G16_FLOAT,WZYX),
+	VT(R16G16_UNORM,   16_16_UNORM, R16G16_UNORM, WZYX),
+	VT(R16G16_SNORM,   16_16_SNORM, R16G16_SNORM, WZYX),
+	VT(R16G16_UINT,    16_16_UINT,  R16G16_UINT,  WZYX),
+	VT(R16G16_SINT,    16_16_SINT,  R16G16_SINT,  WZYX),
+	V_(R16G16_USCALED, 16_16_UINT,  NONE,         WZYX),
+	V_(R16G16_SSCALED, 16_16_SINT,  NONE,         WZYX),
+	VT(R16G16_FLOAT,   16_16_FLOAT, R16G16_FLOAT, WZYX),
 
-	_T(L16A16_UINT,    16_16_UINT,  NONE,        WZYX),
-	_T(L16A16_SINT,    16_16_SINT,  NONE,        WZYX),
+	_T(L16A16_UNORM,   16_16_UNORM, NONE,         WZYX),
+	_T(L16A16_SNORM,   16_16_SNORM, NONE,         WZYX),
+	_T(L16A16_UINT,    16_16_UINT,  NONE,         WZYX),
+	_T(L16A16_SINT,    16_16_SINT,  NONE,         WZYX),
 
 	VT(R8G8B8A8_UNORM,   8_8_8_8_UNORM, R8G8B8A8_UNORM, WZYX),
 	_T(R8G8B8X8_UNORM,   8_8_8_8_UNORM, R8G8B8A8_UNORM, WZYX),
@@ -213,8 +221,10 @@ static struct fd4_format formats[PIPE_FORMAT_COUNT] = {
 	V_(R16G16B16_FLOAT,   16_16_16_FLOAT, NONE, WZYX),
 
 	/* 64-bit */
-	V_(R16G16B16A16_UNORM,   16_16_16_16_UNORM, NONE,               WZYX),
-	V_(R16G16B16A16_SNORM,   16_16_16_16_SNORM, NONE,               WZYX),
+	VT(R16G16B16A16_UNORM,   16_16_16_16_UNORM, R16G16B16A16_UNORM, WZYX),
+	VT(R16G16B16X16_UNORM,   16_16_16_16_UNORM, R16G16B16A16_UNORM, WZYX),
+	VT(R16G16B16A16_SNORM,   16_16_16_16_SNORM, R16G16B16A16_SNORM, WZYX),
+	VT(R16G16B16X16_SNORM,   16_16_16_16_SNORM, R16G16B16A16_SNORM, WZYX),
 	VT(R16G16B16A16_UINT,    16_16_16_16_UINT,  R16G16B16A16_UINT,  WZYX),
 	_T(R16G16B16X16_UINT,    16_16_16_16_UINT,  R16G16B16A16_UINT,  WZYX),
 	VT(R16G16B16A16_SINT,    16_16_16_16_SINT,  R16G16B16A16_SINT,  WZYX),




More information about the mesa-commit mailing list