Mesa (master): freedreno/a5xx: texture layout

Rob Clark robclark at kemper.freedesktop.org
Tue Dec 27 22:03:30 UTC 2016


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

Author: Rob Clark <robdclark at gmail.com>
Date:   Tue Dec  6 13:32:31 2016 -0500

freedreno/a5xx: texture layout

Seems to be imilar to a4xx, and sampler state "array-pitch" needs
to be aligned to page size.

Signed-off-by: Rob Clark <robdclark at gmail.com>

---

 src/gallium/drivers/freedreno/a5xx/fd5_texture.c   | 2 +-
 src/gallium/drivers/freedreno/freedreno_resource.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_texture.c b/src/gallium/drivers/freedreno/a5xx/fd5_texture.c
index 588e914..47b07b8 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_texture.c
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_texture.c
@@ -281,7 +281,7 @@ fd5_sampler_view_create(struct pipe_context *pctx, struct pipe_resource *prsc,
 	case PIPE_TEXTURE_1D:
 	case PIPE_TEXTURE_2D:
 		so->texconst3 =
-			A5XX_TEX_CONST_3_ARRAY_PITCH(rsc->slices[lvl].size0);
+			A5XX_TEX_CONST_3_ARRAY_PITCH(rsc->layer_size);
 		so->texconst5 =
 			A5XX_TEX_CONST_5_DEPTH(1);
 		break;
diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c b/src/gallium/drivers/freedreno/freedreno_resource.c
index 174c1d4..5a2bdfc 100644
--- a/src/gallium/drivers/freedreno/freedreno_resource.c
+++ b/src/gallium/drivers/freedreno/freedreno_resource.c
@@ -819,7 +819,7 @@ fd_resource_create(struct pipe_screen *pscreen,
 	assert(rsc->cpp);
 
 	alignment = slice_alignment(pscreen, tmpl);
-	if (is_a4xx(fd_screen(pscreen))) {
+	if (is_a4xx(fd_screen(pscreen)) || is_a5xx(fd_screen(pscreen))) {
 		switch (tmpl->target) {
 		case PIPE_TEXTURE_3D:
 			rsc->layer_first = false;




More information about the mesa-commit mailing list