Mesa (master): iris: Don't flag IRIS_DIRTY_BINDINGS for constant usage history

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Sep 18 22:45:06 UTC 2019


Module: Mesa
Branch: master
Commit: 1e7daaa6c9a1bcf5f1ae7d85519e61f78cf91518
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e7daaa6c9a1bcf5f1ae7d85519e61f78cf91518

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Sep 10 03:28:59 2019 -0700

iris: Don't flag IRIS_DIRTY_BINDINGS for constant usage history

The underlying buffer isn't changing - so we don't need to update any
SURFACE_STATE descriptors - we just might have new constants, meaning
we need to re-emit 3DSTATE_CONSTANT_XS.  On Gen9, this means we need
to update 3DSTATE_BINDING_TABLE_POINTERS_XS too, but that's now handled
by the explicit check in the previous patch.

On Gen9, this should cause us to re-emit the binding table /pointer/ on
writing to a buffer with PIPE_BIND_CONSTANT_BUFFER, rather than emitting
a whole new /table/.

On Gen8 and Gen11, this avoids binding table churn altogether.

Cuts 61% of 3DSTATE_BINDING_TABLE_POINTERS_XS packets in a Shadow of
Mordor trace on Icelake.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

---

 src/gallium/drivers/iris/iris_resource.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c
index a140b3f1c6f..4de7b2090a8 100644
--- a/src/gallium/drivers/iris/iris_resource.c
+++ b/src/gallium/drivers/iris/iris_resource.c
@@ -1899,8 +1899,7 @@ iris_dirty_for_history(struct iris_context *ice,
                IRIS_DIRTY_CONSTANTS_TES |
                IRIS_DIRTY_CONSTANTS_GS |
                IRIS_DIRTY_CONSTANTS_FS |
-               IRIS_DIRTY_CONSTANTS_CS |
-               IRIS_ALL_DIRTY_BINDINGS;
+               IRIS_DIRTY_CONSTANTS_CS;
    }
 
    ice->state.dirty |= dirty;




More information about the mesa-commit mailing list