From dacaf7ec06f2b9f4c57e0aff842b8337eb78e8c5 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Fri, 19 Jul 2019 09:54:54 +0200 Subject: [PATCH] v3d: fill logicop_func in the fragment shader key when precompiling shaders Since logicop_func 0 is PIPE_LOGIOP_CLEAR, we were trigger lowerinng of logic ops on precompiled shaders, which we don't want to do. Also, this had the side effect of making shader-db crash, as during this lowering we would try to read the color format swizzle information from the fragment shader key that we don't populate in precompiled shaders because right now we only need it when logic operations are enabled. Reviewed-by: Eric Anholt --- src/gallium/drivers/v3d/v3d_program.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/drivers/v3d/v3d_program.c b/src/gallium/drivers/v3d/v3d_program.c index 78c41c8efd1..bfd1ebdf7de 100644 --- a/src/gallium/drivers/v3d/v3d_program.c +++ b/src/gallium/drivers/v3d/v3d_program.c @@ -200,6 +200,8 @@ v3d_shader_precompile(struct v3d_context *v3d, } } + key.logicop_func = PIPE_LOGICOP_COPY; + v3d_setup_shared_precompile_key(so, &key.base); v3d_get_compiled_shader(v3d, &key.base, sizeof(key)); } else {