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 <eric@anholt.net>
This commit is contained in:
Iago Toral Quiroga 2019-07-19 09:54:54 +02:00
parent 9bf0bdf776
commit dacaf7ec06
1 changed files with 2 additions and 0 deletions

View File

@ -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 {