Mesa (master): nir: Use nir_shader_get_entrypoint in TCS quad workaround code.

Kenneth Graunke kwg at kemper.freedesktop.org
Fri Aug 26 03:05:53 UTC 2016


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

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu Aug 18 10:56:48 2016 -0700

nir: Use nir_shader_get_entrypoint in TCS quad workaround code.

We want to insert the code at the end of the program.  Looping over
all the functions (of which there was only one) was the old way of doing
this, but now we have nir_shader_get_entrypoint(), so let's use it.

Suggested by Connor Abbott.

v2: Update for nir_shader_get_entrypoint API change.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>

---

 src/mesa/drivers/dri/i965/brw_nir_tcs_workarounds.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_nir_tcs_workarounds.c b/src/mesa/drivers/dri/i965/brw_nir_tcs_workarounds.c
index 0626981..6524b7d 100644
--- a/src/mesa/drivers/dri/i965/brw_nir_tcs_workarounds.c
+++ b/src/mesa/drivers/dri/i965/brw_nir_tcs_workarounds.c
@@ -134,19 +134,16 @@ brw_nir_apply_tcs_quads_workaround(nir_shader *nir)
 {
    assert(nir->stage == MESA_SHADER_TESS_CTRL);
 
-   nir_foreach_function(func, nir) {
-      if (!func->impl)
-         continue;
+   nir_function_impl *impl = nir_shader_get_entrypoint(nir);
 
-      nir_builder b;
-      nir_builder_init(&b, func->impl);
+   nir_builder b;
+   nir_builder_init(&b, impl);
 
-      struct set_entry *entry;
-      set_foreach(func->impl->end_block->predecessors, entry) {
-         nir_block *pred = (nir_block *) entry->key;
-         emit_quads_workaround(&b, pred);
-      }
-
-      nir_metadata_preserve(func->impl, 0);
+   struct set_entry *entry;
+   set_foreach(impl->end_block->predecessors, entry) {
+      nir_block *pred = (nir_block *) entry->key;
+      emit_quads_workaround(&b, pred);
    }
+
+   nir_metadata_preserve(impl, 0);
 }




More information about the mesa-commit mailing list