i965/blorp: patch jump counters also for endif
authorTopi Pohjolainen <topi.pohjolainen@intel.com>
Tue, 21 Jan 2014 08:31:10 +0000 (10:31 +0200)
committerTopi Pohjolainen <topi.pohjolainen@intel.com>
Wed, 22 Jan 2014 06:13:32 +0000 (08:13 +0200)
No known bugs fixed but this is now in line with fs-generator.
No regresssions on IVB.

Eric further explained that:

  "The endif jump, since it's forward, is just an optimization to
   have set right -- otherwise, the GPU will just step forward
   instruction by instruction until it hits something else that
   updates the per-channel PC."

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
src/mesa/drivers/dri/i965/test_blorp_blit_eu_gen.cpp

index fc4f902beb638ec1744551a5c5cfc943a4d630db..e2c2562ffc032c699135b0b3da31480047126adf 100644 (file)
@@ -923,6 +923,8 @@ brw_blorp_blit_program::compile(struct brw_context *brw,
     */
    render_target_write();
 
+   brw_set_uip_jip(&func);
+
    if (unlikely(INTEL_DEBUG & DEBUG_BLORP)) {
       printf("Native code for BLORP blit:\n");
       brw_dump_compile(&func, dump_file, 0, func.next_insn_offset);
index 8b0cac2aaa744077c4cb23f512aeb70caef71a36..208959ab211cbfbef4e7b4755ceae7b1cb7f351c 100644 (file)
@@ -154,7 +154,7 @@ test_gen7_blend_scaled_msaa_8(struct brw_context *brw)
       "0x00000340: (+f0) mov(16)   g64<1>UD        7D                              { align1 WE_normal 1H };\n"
       "0x00000350: cmp.e.f0(16)    null            g60<8,8,1>UD    7D              { align1 WE_normal 1H switch };\n"
       "0x00000360: (+f0) mov(16)   g64<1>UD        1D                              { align1 WE_normal 1H };\n"
-      "0x00000370: endif(16) 2                     null            0x00000002UD    { align1 WE_normal 1H switch };\n"
+      "0x00000370: endif(16) 50                    null            0x00000032UD    { align1 WE_normal 1H switch };\n"
       "0x00000380: mov(16)         g60<1>UD        g64<8,8,1>UD                    { align1 WE_normal 1H };\n"
       "0x00000390: mov(16)         g114<1>UD       g60<8,8,1>UD                    { align1 WE_normal 1H };\n"
       "0x000003a0: mov(16)         g116<1>UD       g44<8,8,1>UD                    { align1 WE_normal 1H };\n"
@@ -188,7 +188,7 @@ test_gen7_blend_scaled_msaa_8(struct brw_context *brw)
       "0x00000550: (+f0) mov(16)   g64<1>UD        7D                              { align1 WE_normal 1H };\n"
       "0x00000560: cmp.e.f0(16)    null            g60<8,8,1>UD    7D              { align1 WE_normal 1H switch };\n"
       "0x00000570: (+f0) mov(16)   g64<1>UD        1D                              { align1 WE_normal 1H };\n"
-      "0x00000580: endif(16) 2                     null            0x00000002UD    { align1 WE_normal 1H switch };\n"
+      "0x00000580: endif(16) 50                    null            0x00000032UD    { align1 WE_normal 1H switch };\n"
       "0x00000590: mov(16)         g60<1>UD        g64<8,8,1>UD                    { align1 WE_normal 1H };\n"
       "0x000005a0: mov(16)         g114<1>UD       g60<8,8,1>UD                    { align1 WE_normal 1H };\n"
       "0x000005b0: mov(16)         g116<1>UD       g44<8,8,1>UD                    { align1 WE_normal 1H };\n"
@@ -222,7 +222,7 @@ test_gen7_blend_scaled_msaa_8(struct brw_context *brw)
       "0x00000760: (+f0) mov(16)   g64<1>UD        7D                              { align1 WE_normal 1H };\n"
       "0x00000770: cmp.e.f0(16)    null            g60<8,8,1>UD    7D              { align1 WE_normal 1H switch };\n"
       "0x00000780: (+f0) mov(16)   g64<1>UD        1D                              { align1 WE_normal 1H };\n"
-      "0x00000790: endif(16) 2                     null            0x00000002UD    { align1 WE_normal 1H switch };\n"
+      "0x00000790: endif(16) 50                    null            0x00000032UD    { align1 WE_normal 1H switch };\n"
       "0x000007a0: mov(16)         g60<1>UD        g64<8,8,1>UD                    { align1 WE_normal 1H };\n"
       "0x000007b0: mov(16)         g114<1>UD       g60<8,8,1>UD                    { align1 WE_normal 1H };\n"
       "0x000007c0: mov(16)         g116<1>UD       g44<8,8,1>UD                    { align1 WE_normal 1H };\n"