From 8ea262f50809f0feda0d15ff2f5e63de124e7758 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 4 Jul 2021 18:33:26 -0400 Subject: [PATCH] asahi: Add ASAHI_MESA_DEBUG=no16 option A lot of dEQP failures go away with 32-bit forced... Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/lib/agx_device.h | 1 + src/gallium/drivers/asahi/agx_pipe.c | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/asahi/lib/agx_device.h b/src/asahi/lib/agx_device.h index 138181d..b51d08f 100644 --- a/src/asahi/lib/agx_device.h +++ b/src/asahi/lib/agx_device.h @@ -36,6 +36,7 @@ enum agx_dbg { AGX_DBG_TRACE = BITFIELD_BIT(0), AGX_DBG_DEQP = BITFIELD_BIT(1), + AGX_DBG_NO16 = BITFIELD_BIT(2), }; struct agx_device { diff --git a/src/gallium/drivers/asahi/agx_pipe.c b/src/gallium/drivers/asahi/agx_pipe.c index b4c4107..d34c059 100644 --- a/src/gallium/drivers/asahi/agx_pipe.c +++ b/src/gallium/drivers/asahi/agx_pipe.c @@ -48,6 +48,7 @@ static const struct debug_named_value agx_debug_options[] = { {"trace", AGX_DBG_TRACE, "Trace the command stream"}, {"deqp", AGX_DBG_DEQP, "Hacks for dEQP"}, + {"no16", AGX_DBG_NO16, "Disable 16-bit support"}, DEBUG_NAMED_VALUE_END }; @@ -846,6 +847,7 @@ agx_get_shader_param(struct pipe_screen* pscreen, enum pipe_shader_cap param) { bool is_deqp = agx_device(pscreen)->debug & AGX_DBG_DEQP; + bool is_no16 = agx_device(pscreen)->debug & AGX_DBG_NO16; if (shader != PIPE_SHADER_VERTEX && shader != PIPE_SHADER_FRAGMENT) @@ -890,13 +892,15 @@ agx_get_shader_param(struct pipe_screen* pscreen, case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR: return is_deqp; - case PIPE_SHADER_CAP_FP16: case PIPE_SHADER_CAP_INTEGERS: + return true; + + case PIPE_SHADER_CAP_FP16: case PIPE_SHADER_CAP_GLSL_16BIT_CONSTS: case PIPE_SHADER_CAP_FP16_DERIVATIVES: case PIPE_SHADER_CAP_FP16_CONST_BUFFERS: case PIPE_SHADER_CAP_INT16: - return 1; + return !is_no16; case PIPE_SHADER_CAP_INT64_ATOMICS: case PIPE_SHADER_CAP_TGSI_DROUND_SUPPORTED: -- 2.7.4