diff options
author | Eric Anholt <[email protected]> | 2016-08-03 11:55:55 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2016-08-04 08:48:27 -0700 |
commit | 2350569a78c60d32e3b751b4386ea7e6d7e2ebe9 (patch) | |
tree | bfa6665039f9d99215394493858761f2c6a99df5 /src/gallium/drivers/vc4/vc4_qir.h | |
parent | 62ea2461edbd4db2b82df02f7a77bcb707e65656 (diff) |
vc4: Avoid VS shader recompiles by keeping a set of FS inputs seen so far.
We don't want to bake the whole array into the FS key, because of the
hashing overhead. But we can keep a set of the arrays seen, and use a
pointer to the copy in as the array's proxy.
Between this and the previous patch, gl-1.0-blend-func now passes on
hardware, where previously it was filling the 256MB CMA area with shaders
and OOMing.
Drops 712 shaders from shader-db.
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_qir.h')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_qir.h | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/src/gallium/drivers/vc4/vc4_qir.h b/src/gallium/drivers/vc4/vc4_qir.h index b8ded30711c..e6297c5c82c 100644 --- a/src/gallium/drivers/vc4/vc4_qir.h +++ b/src/gallium/drivers/vc4/vc4_qir.h @@ -352,12 +352,7 @@ struct vc4_fs_key { struct vc4_vs_key { struct vc4_key base; - /** - * This is a proxy for the array of FS input semantics, which is - * larger than we would want to put in the key. - */ - uint64_t compiled_fs_id; - + const struct vc4_fs_inputs *fs_inputs; enum pipe_format attr_formats[8]; bool is_coord; bool per_vertex_point_size; |