diff options
author | Erico Nunes <nunes.erico@gmail.com> | 2019-12-20 19:20:58 +0100 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2019-12-20 19:39:55 +0000 |
commit | d56710ab82a0803b5a66c6c489a356de28779ffa (patch) | |
tree | 6282047bef9af118e4ca3506add736f3a231efe9 /src/gallium/drivers/lima/ir/pp/ppir.h | |
parent | 1b0743dbb6f925921e52bc9ecdde6a8bf755d162 (diff) | |
download | mesa-d56710ab82a0803b5a66c6c489a356de28779ffa.tar.gz |
lima/ppir: fix lod bias src
ppir has some code that operates on all ppir_src variables, and for that
uses ppir_node_get_src.
lod bias support introduced a separate ppir_src that is inaccessible by
that function, causing it to be missed by the compiler in some routines.
Ultimately this caused, in some cases, a bug in const lowering:
.../pp/lower.c:42: ppir_lower_const: Assertion `src != NULL' failed.
This fix moves the ppir_srcs in ppir_load_texture_node together so they
don't get missed.
Fixes: 721d82cf061 lima/ppir: add lod-bias support
Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3185>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3185>
Diffstat (limited to 'src/gallium/drivers/lima/ir/pp/ppir.h')
-rw-r--r-- | src/gallium/drivers/lima/ir/pp/ppir.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gallium/drivers/lima/ir/pp/ppir.h b/src/gallium/drivers/lima/ir/pp/ppir.h index 5895a696db8..6b550a3c9d1 100644 --- a/src/gallium/drivers/lima/ir/pp/ppir.h +++ b/src/gallium/drivers/lima/ir/pp/ppir.h @@ -270,12 +270,13 @@ typedef struct { typedef struct { ppir_node node; ppir_dest dest; - ppir_src src_coords; /* not to be used after lowering */ + ppir_src src[2]; /* src[0] temporarily stores src_coords, + not to be used after lowering */ + int num_src; int sampler; int sampler_dim; bool lod_bias_en; bool explicit_lod; - ppir_src lod_bias; } ppir_load_texture_node; typedef struct { @@ -475,6 +476,7 @@ static inline int ppir_node_get_src_num(ppir_node *node) case ppir_node_type_load: return ppir_node_to_load(node)->num_src; case ppir_node_type_load_texture: + return ppir_node_to_load_texture(node)->num_src; case ppir_node_type_store: return 1; default: @@ -495,7 +497,7 @@ static inline ppir_src *ppir_node_get_src(ppir_node *node, int idx) case ppir_node_type_branch: return &ppir_node_to_branch(node)->src[idx]; case ppir_node_type_load_texture: - return &ppir_node_to_load_texture(node)->src_coords; + return &ppir_node_to_load_texture(node)->src[idx]; case ppir_node_type_load: return &ppir_node_to_load(node)->src; case ppir_node_type_store: |