i965/fs: Lower 32x32 bit multiplication on BXT.
[mesa.git] / src / mesa / drivers / dri / i965 / brw_ff_gs.c
index 14ae4c144e9f47502417755d9158c33435be5b0b..f72f37f4d022f5901455ec90bff378d2ba35d0df 100644 (file)
@@ -45,8 +45,9 @@
 
 #include "util/ralloc.h"
 
-static void compile_ff_gs_prog(struct brw_context *brw,
-                               struct brw_ff_gs_prog_key *key)
+void
+brw_codegen_ff_gs_prog(struct brw_context *brw,
+                       struct brw_ff_gs_prog_key *key)
 {
    struct brw_ff_gs_compile c;
    const GLuint *program;
@@ -63,7 +64,7 @@ static void compile_ff_gs_prog(struct brw_context *brw,
 
    /* Begin the compilation:
     */
-   brw_init_compile(brw, &c.func, mem_ctx);
+   brw_init_codegen(brw->intelScreen->devinfo, &c.func, mem_ctx);
 
    c.func.single_program_flow = 1;
 
@@ -135,7 +136,8 @@ static void compile_ff_gs_prog(struct brw_context *brw,
 
    if (unlikely(INTEL_DEBUG & DEBUG_GS)) {
       fprintf(stderr, "gs:\n");
-      brw_disassemble(brw, c.func.store, 0, program_size, stderr);
+      brw_disassemble(brw->intelScreen->devinfo, c.func.store,
+                      0, program_size, stderr);
       fprintf(stderr, "\n");
     }
 
@@ -147,6 +149,16 @@ static void compile_ff_gs_prog(struct brw_context *brw,
    ralloc_free(mem_ctx);
 }
 
+static bool
+brw_ff_gs_state_dirty(struct brw_context *brw)
+{
+   return brw_state_dirty(brw,
+                          _NEW_LIGHT,
+                          BRW_NEW_PRIMITIVE |
+                          BRW_NEW_TRANSFORM_FEEDBACK |
+                          BRW_NEW_VS_PROG_DATA);
+}
+
 static void
 brw_ff_gs_populate_key(struct brw_context *brw,
                        struct brw_ff_gs_prog_key *key)
@@ -227,11 +239,7 @@ brw_upload_ff_gs_prog(struct brw_context *brw)
 {
    struct brw_ff_gs_prog_key key;
 
-   if (!brw_state_dirty(brw,
-                        _NEW_LIGHT,
-                        BRW_NEW_PRIMITIVE |
-                        BRW_NEW_TRANSFORM_FEEDBACK |
-                        BRW_NEW_VS_PROG_DATA))
+   if (!brw_ff_gs_state_dirty(brw))
       return;
 
    /* Populate the key:
@@ -247,7 +255,7 @@ brw_upload_ff_gs_prog(struct brw_context *brw)
       if (!brw_search_cache(&brw->cache, BRW_CACHE_FF_GS_PROG,
                            &key, sizeof(key),
                            &brw->ff_gs.prog_offset, &brw->ff_gs.prog_data)) {
-        compile_ff_gs_prog( brw, &key );
+         brw_codegen_ff_gs_prog(brw, &key);
       }
    }
 }