diff mbox series

Add RGBA64 texture cpp for vc4 driver.

Message ID 20181101044227.5517-1-nick.kreeger@gmail.com (mailing list archive)
State New, archived
Headers show
Series Add RGBA64 texture cpp for vc4 driver. | expand

Commit Message

Nick Kreeger Nov. 1, 2018, 4:42 a.m. UTC
This patch is needed to help implement half-float texturing and
rendering for the vc4 driver in mesa. This small patch introduces the
cpp value for the RGBA64 texture. A future patch will include updates to
vc4_render_cl.c to handle HDR color stores.
---
 drivers/gpu/drm/vc4/vc4_validate.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Eric Anholt Nov. 1, 2018, 8:10 p.m. UTC | #1
Nick Kreeger <nick.kreeger@gmail.com> writes:

> This patch is needed to help implement half-float texturing and
> rendering for the vc4 driver in mesa. This small patch introduces the
> cpp value for the RGBA64 texture. A future patch will include updates to
> vc4_render_cl.c to handle HDR color stores.

We'll need a GET_PARAM ioctl param to say "we support RGBA64 textures"
and use that from vc4_screen.c's format checking, otherwise new Mesa on
old kernels will try to expose RGBA64 textures and fail at rendering
time.  If we're introducing a GET_PARAM, we probably want to just do
half float rendering and texturing at the same time.
diff mbox series

Patch

diff --git a/drivers/gpu/drm/vc4/vc4_validate.c b/drivers/gpu/drm/vc4/vc4_validate.c
index 2db485abb186..29a4a21b5864 100644
--- a/drivers/gpu/drm/vc4/vc4_validate.c
+++ b/drivers/gpu/drm/vc4/vc4_validate.c
@@ -646,6 +646,9 @@  reloc_tex(struct vc4_exec_info *exec,
 	case VC4_TEXTURE_TYPE_S8:
 		cpp = 1;
 		break;
+	case VC4_TEXTURE_TYPE_RGBA64:
+		cpp = 8;
+		break;
 	case VC4_TEXTURE_TYPE_ETC1:
 		/* ETC1 is arranged as 64-bit blocks, where each block is 4x4
 		 * pixels.
@@ -657,7 +660,6 @@  reloc_tex(struct vc4_exec_info *exec,
 	case VC4_TEXTURE_TYPE_BW1:
 	case VC4_TEXTURE_TYPE_A4:
 	case VC4_TEXTURE_TYPE_A1:
-	case VC4_TEXTURE_TYPE_RGBA64:
 	case VC4_TEXTURE_TYPE_YUV422R:
 	default:
 		DRM_DEBUG("Texture format %d unsupported\n", type);