summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/vc4/vc4_qir.h
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2016-07-14 17:26:43 -0700
committerEric Anholt <[email protected]>2016-07-15 13:54:00 -0700
commit3bcd0f1912a60cc9d3813923d18d29465e41ff56 (patch)
treea453cbfb302a1e70b0704c3725f9ce6e5172db0d /src/gallium/drivers/vc4/vc4_qir.h
parent88152d7dc0e2cf233cd2c38a4e9affb1ea73fa97 (diff)
vc4: Speed up glGenerateMipmaps by avoiding shadow baselevel.
To support general GL_TEXTURE_BASE_LEVEL we have to copy to a temporary miptree. However, if a single level is being selected, we can use the existing miptree and force all the sampling to be from that particular level. This avoids a ton of software fallbacks in glGenerateMipmaps(), which uses base levels in the blit implementation in gallium. Improves "glmark2 -b terrain" from 2 fps to 3 (perhaps some more precision would be useful?), and cuts its CPU usage during the benchmarking from ~30% to ~10% (total CPU time from 8.8s to 7.6s).
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_qir.h')
-rw-r--r--src/gallium/drivers/vc4/vc4_qir.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc4/vc4_qir.h b/src/gallium/drivers/vc4/vc4_qir.h
index 88eda225d80..81b55651cec 100644
--- a/src/gallium/drivers/vc4/vc4_qir.h
+++ b/src/gallium/drivers/vc4/vc4_qir.h
@@ -314,6 +314,7 @@ struct vc4_key {
unsigned compare_func:3;
unsigned wrap_s:3;
unsigned wrap_t:3;
+ unsigned forced_first_level:8;
};
struct {
uint16_t msaa_width, msaa_height;