From b51727ea28f1dbac8dcb519c0d06e64cdfb9974c Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 18 Jun 2019 09:06:25 -0700 Subject: [PATCH] panfrost/midgard: Handle negative immediate bias Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/disassemble.c | 7 ++++--- src/gallium/drivers/panfrost/midgard/midgard.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard/disassemble.c b/src/gallium/drivers/panfrost/midgard/disassemble.c index 58cfa131be5..ee1634430a1 100644 --- a/src/gallium/drivers/panfrost/midgard/disassemble.c +++ b/src/gallium/drivers/panfrost/midgard/disassemble.c @@ -1208,14 +1208,15 @@ print_texture_word(uint32_t *word, unsigned tabs) printf("lod = %d, ", texture->bias); } else if (texture->bias || texture->bias_int) { - int bias_int = texture->bias_int; + signed bias_int = texture->bias_int; float bias_frac = texture->bias / 256.0f; float bias = bias_int + bias_frac; bool is_bias = texture_op_takes_bias(texture->op); - char operand = is_bias ? '+' : '='; + char sign = (bias >= 0.0) ? '+' : '-'; + char operand = is_bias ? sign : '='; - printf("lod %c %f, ", operand, bias); + printf("lod %c %f, ", operand, fabsf(bias)); } printf("\n"); diff --git a/src/gallium/drivers/panfrost/midgard/midgard.h b/src/gallium/drivers/panfrost/midgard/midgard.h index 43fc3a64774..3d11126d953 100644 --- a/src/gallium/drivers/panfrost/midgard/midgard.h +++ b/src/gallium/drivers/panfrost/midgard/midgard.h @@ -624,7 +624,7 @@ __attribute__((__packed__)) * structure and bias_int is zero */ unsigned bias : 8; - unsigned bias_int : 8; + signed bias_int : 8; unsigned texture_handle : 16; unsigned sampler_handle : 16; -- 2.30.2