Mesa (master): freedreno/ir3: support non-user_buffer consts

Rob Clark robclark at kemper.freedesktop.org
Sat Jul 2 13:20:01 UTC 2016


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

Author: Rob Clark <robclark at freedesktop.org>
Date:   Wed Jun 22 14:45:25 2016 -0400

freedreno/ir3: support non-user_buffer consts

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

---

 src/gallium/drivers/freedreno/freedreno_screen.c     | 6 ++++--
 src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c
index 93b70e0..5255c10 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -156,12 +156,14 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
 	case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY:
 	case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:
 	case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY:
-	case PIPE_CAP_USER_CONSTANT_BUFFERS:
 	case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:
 	case PIPE_CAP_VERTEXID_NOBASE:
 	case PIPE_CAP_STRING_MARKER:
 		return 1;
 
+	case PIPE_CAP_USER_CONSTANT_BUFFERS:
+		return is_ir3(screen) ? 0 : 1;
+
 	case PIPE_CAP_SHADER_STENCIL_EXPORT:
 	case PIPE_CAP_TGSI_TEXCOORD:
 	case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER:
@@ -214,7 +216,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
 		return is_a4xx(screen);
 
 	case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
-		return 256;
+		return 64;
 
 	case PIPE_CAP_GLSL_FEATURE_LEVEL:
 		if (glsl120)
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
index 04c99d1..5c7ad84 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
@@ -181,7 +181,7 @@ compile_init(struct ir3_compiler *compiler,
 		nir_print_shader(ctx->s, stdout);
 	}
 
-	so->first_driver_param = so->first_immediate = ctx->s->num_uniforms;
+	so->first_driver_param = so->first_immediate = align(ctx->s->num_uniforms, 4);
 
 	/* Layout of constant registers:
 	 *




More information about the mesa-commit mailing list