[Mesa-dev] [PATCH 1/2] st/mesa: exit st_translate_fragment_program() earlier for NIR path

Timothy Arceri tarceri at itsqueeze.com
Thu Apr 5 07:37:27 UTC 2018


This avoids a bunch of scanning that is only used by the TGSI path.
---
 src/mesa/state_tracker/st_program.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index 5bf76e1b888..a740c874c9e 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -645,6 +645,12 @@ bool
 st_translate_fragment_program(struct st_context *st,
                               struct st_fragment_program *stfp)
 {
+   /* We have already compiled to NIR so just return */
+   if (stfp->shader_program) {
+      st_store_ir_in_disk_cache(st, &stfp->Base, true);
+      return true;
+   }
+
    ubyte outputMapping[2 * FRAG_RESULT_MAX];
    ubyte inputMapping[VARYING_SLOT_MAX];
    ubyte inputSlotToAttr[VARYING_SLOT_MAX];
@@ -900,12 +906,6 @@ st_translate_fragment_program(struct st_context *st,
       }
    }
 
-   /* We have already compiled to NIR so just return */
-   if (stfp->shader_program) {
-      st_store_ir_in_disk_cache(st, &stfp->Base, true);
-      return true;
-   }
-
    ureg = ureg_create_with_screen(PIPE_SHADER_FRAGMENT, st->pipe->screen);
    if (ureg == NULL)
       return false;
-- 
2.14.3



More information about the mesa-dev mailing list