summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhao Yakui <yakui.zhao@intel.com>2013-03-13 09:29:23 +0800
committerYakui Zhao <yakui.zhao@intel.com>2013-03-13 09:29:23 +0800
commit9178a2893eb45724fdcdbc7adfe11aa7dbde39cf (patch)
tree4f06ed50f103722e021ad86168346077918dfbf9
parente4f243b6ed58d832f1ca6ecf1ec15f72dd3e6ef6 (diff)
downloadvaapi-intel-driver-9178a2893eb45724fdcdbc7adfe11aa7dbde39cf.tar.gz
vaapi-intel-driver-9178a2893eb45724fdcdbc7adfe11aa7dbde39cf.tar.bz2
vaapi-intel-driver-9178a2893eb45724fdcdbc7adfe11aa7dbde39cf.zip
Issue memory fence message to assure memory ordering on Ivb/Hsw
Otherwise the data inconsistency between different GPU threads is observed although the GPU threads are spawned by using hardware scoreboard. Then it causes that avcenc encoding gets the different results. Reported-by: Xiang Haihao <haihao.xiang@intel.com> Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
-rw-r--r--src/shaders/vme/inter_bframe_haswell.asm18
-rw-r--r--src/shaders/vme/inter_bframe_haswell.g75b17
-rw-r--r--src/shaders/vme/inter_bframe_ivb.asm19
-rw-r--r--src/shaders/vme/inter_bframe_ivb.g7b18
-rw-r--r--src/shaders/vme/inter_frame_haswell.asm17
-rw-r--r--src/shaders/vme/inter_frame_haswell.g75b5
-rw-r--r--src/shaders/vme/inter_frame_ivb.asm17
-rw-r--r--src/shaders/vme/inter_frame_ivb.g7b5
-rw-r--r--src/shaders/vme/mpeg2_inter_frame_haswell.g75b5
-rw-r--r--src/shaders/vme/vme7.inc4
-rw-r--r--src/shaders/vme/vme75.inc4
11 files changed, 107 insertions, 22 deletions
diff --git a/src/shaders/vme/inter_bframe_haswell.asm b/src/shaders/vme/inter_bframe_haswell.asm
index 9002b5f..9e54b9d 100644
--- a/src/shaders/vme/inter_bframe_haswell.asm
+++ b/src/shaders/vme/inter_bframe_haswell.asm
@@ -749,6 +749,24 @@ send (16)
rlen obw_wb_length
{align1};
+
+/* Issue message fence so that the previous write message is committed */
+send (16)
+ mb_ind
+ obw_wb
+ NULL
+ data_port(
+ OBR_CACHE_TYPE,
+ OBR_MESSAGE_FENCE,
+ OBR_MF_COMMIT,
+ OBR_BIND_IDX,
+ OBR_WRITE_COMMIT_CATEGORY,
+ OBR_HEADER_PRESENT
+ )
+ mlen 1
+ rlen 1
+ {align1};
+
__EXIT:
/*
* kill thread
diff --git a/src/shaders/vme/inter_bframe_haswell.g75b b/src/shaders/vme/inter_bframe_haswell.g75b
index d769fe1..03da639 100644
--- a/src/shaders/vme/inter_bframe_haswell.g75b
+++ b/src/shaders/vme/inter_bframe_haswell.g75b
@@ -64,7 +64,7 @@
{ 0x00000001, 0x2fa40021, 0x00000b80, 0x00000000 },
{ 0x00000001, 0x2fa80061, 0x00000000, 0x00000001 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000013d0 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000013e0 },
{ 0x00000001, 0x2aa00129, 0x00000fe4, 0x00000000 },
{ 0x01000010, 0x20002d28, 0x00000aa0, 0x00000000 },
{ 0x00010001, 0x2af001e9, 0x00000000, 0x00010001 },
@@ -100,7 +100,7 @@
{ 0x00000001, 0x2fa40021, 0x00000b80, 0x00000000 },
{ 0x00000001, 0x2fa80061, 0x00000000, 0x00000002 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x00001190 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000011a0 },
{ 0x00000001, 0x2aa00129, 0x00000fe4, 0x00000000 },
{ 0x01000010, 0x20002d28, 0x00000aa0, 0x00000000 },
{ 0x00010001, 0x2b1001e9, 0x00000000, 0x00010001 },
@@ -135,7 +135,7 @@
{ 0x00000001, 0x2fa40021, 0x00000b80, 0x00000000 },
{ 0x00000001, 0x2fa80061, 0x00000000, 0x00000002 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x00000f60 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x00000f70 },
{ 0x00000001, 0x2aa00129, 0x00000fe4, 0x00000000 },
{ 0x01000010, 0x20002d28, 0x00000aa0, 0x00000000 },
{ 0x00010001, 0x2b3001e9, 0x00000000, 0x00010001 },
@@ -170,7 +170,7 @@
{ 0x00000001, 0x2fa40021, 0x00000b80, 0x00000000 },
{ 0x00000001, 0x2fa80061, 0x00000000, 0x00000003 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x00000d30 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x00000d40 },
{ 0x00000001, 0x2aa00129, 0x00000fe4, 0x00000000 },
{ 0x00000001, 0x2b3201ed, 0x00000000, 0x00010001 },
{ 0x01000010, 0x20002d28, 0x00000aa0, 0x00000000 },
@@ -211,13 +211,13 @@
{ 0x00000001, 0x2fa401ad, 0x00000b04, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b24, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000009a0 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000009b0 },
{ 0x00000001, 0x2ac001ad, 0x00000fe4, 0x00000000 },
{ 0x00000001, 0x2fa001ad, 0x00000ae6, 0x00000000 },
{ 0x00000001, 0x2fa401ad, 0x00000b06, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b26, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x00000940 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x00000950 },
{ 0x00000001, 0x2ac201ad, 0x00000fe4, 0x00000000 },
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 },
{ 0x01000010, 0x20003da4, 0x00200af6, 0x00000000 },
@@ -236,13 +236,13 @@
{ 0x00000001, 0x2fa401ad, 0x00000b08, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b28, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x00000810 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x00000820 },
{ 0x00000001, 0x2ac401ad, 0x00000fe4, 0x00000000 },
{ 0x00000001, 0x2fa001ad, 0x00000aea, 0x00000000 },
{ 0x00000001, 0x2fa401ad, 0x00000b0a, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b2a, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000007b0 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000007c0 },
{ 0x00000001, 0x2ac601ad, 0x00000fe4, 0x00000000 },
{ 0x0040000c, 0x2a803dad, 0x00690ac0, 0x00020002 },
{ 0x00400040, 0x2a883dad, 0x00690a80, 0x00030003 },
@@ -348,6 +348,7 @@
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x28200021, 0x008d0240, 0x00000000 },
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0203 },
+ { 0x0a800031, 0x20001cac, 0x00000b40, 0x0219e003 },
{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
{ 0x07800031, 0x24001ca8, 0x00000e00, 0x82000010 },
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/shaders/vme/inter_bframe_ivb.asm b/src/shaders/vme/inter_bframe_ivb.asm
index 490467c..577895c 100644
--- a/src/shaders/vme/inter_bframe_ivb.asm
+++ b/src/shaders/vme/inter_bframe_ivb.asm
@@ -622,6 +622,25 @@ send (16)
rlen obw_wb_length
{align1};
+NOP;
+
+/* Issue message fence so that the previous write message is committed */
+send (16)
+ mb_ind
+ mb_wb.0<1>:ud
+ NULL
+ data_port(
+ OBR_CACHE_TYPE,
+ OBR_MESSAGE_FENCE,
+ OBR_MF_COMMIT,
+ OBR_BIND_IDX,
+ OBR_WRITE_COMMIT_CATEGORY,
+ OBR_HEADER_PRESENT
+ )
+ mlen 1
+ rlen 1
+ {align1};
+
__EXIT:
/*
* kill thread
diff --git a/src/shaders/vme/inter_bframe_ivb.g7b b/src/shaders/vme/inter_bframe_ivb.g7b
index 6ab9059..fe6f98d 100644
--- a/src/shaders/vme/inter_bframe_ivb.g7b
+++ b/src/shaders/vme/inter_bframe_ivb.g7b
@@ -53,7 +53,7 @@
{ 0x00000001, 0x2fa40021, 0x00000b80, 0x00000000 },
{ 0x00000001, 0x2fa80061, 0x00000000, 0x00000001 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x00000244 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x00000248 },
{ 0x00000001, 0x2aa00129, 0x00000fe4, 0x00000000 },
{ 0x01000010, 0x20002d28, 0x00000aa0, 0x00000000 },
{ 0x00010001, 0x2af001e9, 0x00000000, 0x00010001 },
@@ -91,7 +91,7 @@
{ 0x00000001, 0x2fa40021, 0x00000b80, 0x00000000 },
{ 0x00000001, 0x2fa80061, 0x00000000, 0x00000002 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000001f8 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000001fc },
{ 0x00000001, 0x2aa00129, 0x00000fe4, 0x00000000 },
{ 0x01000010, 0x20002d28, 0x00000aa0, 0x00000000 },
{ 0x00010001, 0x2b1001e9, 0x00000000, 0x00010001 },
@@ -127,7 +127,7 @@
{ 0x00000001, 0x2fa40021, 0x00000b80, 0x00000000 },
{ 0x00000001, 0x2fa80061, 0x00000000, 0x00000002 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000001b0 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000001b4 },
{ 0x00000001, 0x2aa00129, 0x00000fe4, 0x00000000 },
{ 0x01000010, 0x20002d28, 0x00000aa0, 0x00000000 },
{ 0x00010001, 0x2b3001e9, 0x00000000, 0x00010001 },
@@ -164,7 +164,7 @@
{ 0x00000001, 0x2fa40021, 0x00000b80, 0x00000000 },
{ 0x00000001, 0x2fa80061, 0x00000000, 0x00000003 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x00000166 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x0000016a },
{ 0x00000001, 0x2aa00129, 0x00000fe4, 0x00000000 },
{ 0x00000001, 0x2b3201ed, 0x00000000, 0x00010001 },
{ 0x01000010, 0x20002d28, 0x00000aa0, 0x00000000 },
@@ -205,13 +205,13 @@
{ 0x00000001, 0x2fa401ad, 0x00000b04, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b24, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000000f4 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000000f8 },
{ 0x00000001, 0x2ac001ad, 0x00000fe4, 0x00000000 },
{ 0x00000001, 0x2fa001ad, 0x00000ae6, 0x00000000 },
{ 0x00000001, 0x2fa401ad, 0x00000b06, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b26, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000000e8 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000000ec },
{ 0x00000001, 0x2ac201ad, 0x00000fe4, 0x00000000 },
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 },
{ 0x01000010, 0x20003da4, 0x00200af6, 0x00000000 },
@@ -230,13 +230,13 @@
{ 0x00000001, 0x2fa401ad, 0x00000b08, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b28, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000000c2 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000000c6 },
{ 0x00000001, 0x2ac401ad, 0x00000fe4, 0x00000000 },
{ 0x00000001, 0x2fa001ad, 0x00000aea, 0x00000000 },
{ 0x00000001, 0x2fa401ad, 0x00000b0a, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b2a, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000000b6 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000000ba },
{ 0x00000001, 0x2ac601ad, 0x00000fe4, 0x00000000 },
{ 0x0040000c, 0x2a803dad, 0x00690ac0, 0x00020002 },
{ 0x00400040, 0x2a883dad, 0x00690a80, 0x00030003 },
@@ -310,6 +310,8 @@
{ 0x00000040, 0x24880c21, 0x00000488, 0x00000008 },
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 },
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0203 },
+ { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+ { 0x0a800031, 0x2b801ca1, 0x00000b40, 0x0219e003 },
{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
{ 0x07800031, 0x24001ca8, 0x00000e00, 0x82000010 },
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/shaders/vme/inter_frame_haswell.asm b/src/shaders/vme/inter_frame_haswell.asm
index fd7b8fa..63934ac 100644
--- a/src/shaders/vme/inter_frame_haswell.asm
+++ b/src/shaders/vme/inter_frame_haswell.asm
@@ -650,6 +650,23 @@ send (16)
rlen obw_wb_length
{align1};
+/* Issue message fence so that the previous write message is committed */
+send (16)
+ mb_ind
+ mb_wb.0<1>:ud
+ NULL
+ data_port(
+ OBR_CACHE_TYPE,
+ OBR_MESSAGE_FENCE,
+ OBR_MF_COMMIT,
+ OBR_BIND_IDX,
+ OBR_WRITE_COMMIT_CATEGORY,
+ OBR_HEADER_PRESENT
+ )
+ mlen 1
+ rlen 1
+ {align1};
+
__EXIT:
/*
* kill thread
diff --git a/src/shaders/vme/inter_frame_haswell.g75b b/src/shaders/vme/inter_frame_haswell.g75b
index e6f17c4..d9d791d 100644
--- a/src/shaders/vme/inter_frame_haswell.g75b
+++ b/src/shaders/vme/inter_frame_haswell.g75b
@@ -145,13 +145,13 @@
{ 0x00000001, 0x2fa401ad, 0x00000b04, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b24, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x00000840 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x00000850 },
{ 0x00000001, 0x2ac001ad, 0x00000fe4, 0x00000000 },
{ 0x00000001, 0x2fa001ad, 0x00000ae6, 0x00000000 },
{ 0x00000001, 0x2fa401ad, 0x00000b06, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b26, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000007e0 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000007f0 },
{ 0x00000001, 0x2ac201ad, 0x00000fe4, 0x00000000 },
{ 0x0020000c, 0x2a803dad, 0x00450ac0, 0x00020002 },
{ 0x00200040, 0x2a883dad, 0x00450a80, 0x00030003 },
@@ -260,6 +260,7 @@
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x28200021, 0x008d0240, 0x00000000 },
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0203 },
+ { 0x0a800031, 0x2b601ca1, 0x00000b40, 0x0219e003 },
{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
{ 0x07800031, 0x24001ca8, 0x00000e00, 0x82000010 },
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/shaders/vme/inter_frame_ivb.asm b/src/shaders/vme/inter_frame_ivb.asm
index d33b146..b5cafdd 100644
--- a/src/shaders/vme/inter_frame_ivb.asm
+++ b/src/shaders/vme/inter_frame_ivb.asm
@@ -519,6 +519,23 @@ send (16)
rlen obw_wb_length
{align1};
+/* Issue message fence so that the previous write message is committed */
+send (16)
+ mb_ind
+ mb_wb.0<1>:ud
+ NULL
+ data_port(
+ OBR_CACHE_TYPE,
+ OBR_MESSAGE_FENCE,
+ OBR_MF_COMMIT,
+ OBR_BIND_IDX,
+ OBR_WRITE_COMMIT_CATEGORY,
+ OBR_HEADER_PRESENT
+ )
+ mlen 1
+ rlen 1
+ {align1};
+
__EXIT:
/*
* kill thread
diff --git a/src/shaders/vme/inter_frame_ivb.g7b b/src/shaders/vme/inter_frame_ivb.g7b
index 22f5563..1bb41b2 100644
--- a/src/shaders/vme/inter_frame_ivb.g7b
+++ b/src/shaders/vme/inter_frame_ivb.g7b
@@ -141,13 +141,13 @@
{ 0x00000001, 0x2fa401ad, 0x00000b04, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b24, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000000ba },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000000bc },
{ 0x00000001, 0x2ac001ad, 0x00000fe4, 0x00000000 },
{ 0x00000001, 0x2fa001ad, 0x00000ae6, 0x00000000 },
{ 0x00000001, 0x2fa401ad, 0x00000b06, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b26, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000000ae },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000000b0 },
{ 0x00000001, 0x2ac201ad, 0x00000fe4, 0x00000000 },
{ 0x0020000c, 0x2a803dad, 0x00450ac0, 0x00020002 },
{ 0x00200040, 0x2a883dad, 0x00450a80, 0x00030003 },
@@ -217,6 +217,7 @@
{ 0x00000040, 0x24880c21, 0x00000488, 0x00000008 },
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 },
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0203 },
+ { 0x0a800031, 0x2b801ca1, 0x00000b40, 0x0219e003 },
{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
{ 0x07800031, 0x24001ca8, 0x00000e00, 0x82000010 },
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/shaders/vme/mpeg2_inter_frame_haswell.g75b b/src/shaders/vme/mpeg2_inter_frame_haswell.g75b
index 5c76728..35175c7 100644
--- a/src/shaders/vme/mpeg2_inter_frame_haswell.g75b
+++ b/src/shaders/vme/mpeg2_inter_frame_haswell.g75b
@@ -145,13 +145,13 @@
{ 0x00000001, 0x2fa401ad, 0x00000b04, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b24, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x00000840 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x00000850 },
{ 0x00000001, 0x2ac001ad, 0x00000fe4, 0x00000000 },
{ 0x00000001, 0x2fa001ad, 0x00000ae6, 0x00000000 },
{ 0x00000001, 0x2fa401ad, 0x00000b06, 0x00000000 },
{ 0x00000001, 0x2fa801ad, 0x00000b26, 0x00000000 },
{ 0x00000040, 0x2fe00c01, 0x00001400, 0x00000020 },
- { 0x00000020, 0x34001c00, 0x00001400, 0x000007e0 },
+ { 0x00000020, 0x34001c00, 0x00001400, 0x000007f0 },
{ 0x00000001, 0x2ac201ad, 0x00000fe4, 0x00000000 },
{ 0x0020000c, 0x2a803dad, 0x00450ac0, 0x00020002 },
{ 0x00200040, 0x2a883dad, 0x00450a80, 0x00030003 },
@@ -260,6 +260,7 @@
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x28200021, 0x008d0240, 0x00000000 },
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0203 },
+ { 0x0a800031, 0x2b601ca1, 0x00000b40, 0x0219e003 },
{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
{ 0x07800031, 0x24001ca8, 0x00000e00, 0x82000010 },
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/shaders/vme/vme7.inc b/src/shaders/vme/vme7.inc
index 952847e..3fa99b7 100644
--- a/src/shaders/vme/vme7.inc
+++ b/src/shaders/vme/vme7.inc
@@ -313,3 +313,7 @@ define(`INTER_BLOCK2', `0x2')
define(`INTER_BLOCK3', `0x3')
define(`INTER_16X8MODE', `0x01')
define(`INTER_8X16MODE', `0x02')
+
+define(`OBR_MESSAGE_FENCE', `7')
+define(`OBR_MF_NOCOMMIT', `0')
+define(`OBR_MF_COMMIT', `0x20')
diff --git a/src/shaders/vme/vme75.inc b/src/shaders/vme/vme75.inc
index 1c286c0..be49056 100644
--- a/src/shaders/vme/vme75.inc
+++ b/src/shaders/vme/vme75.inc
@@ -333,3 +333,7 @@ define(`INTER_BLOCK2', `0x2')
define(`INTER_BLOCK3', `0x3')
define(`INTER_16X8MODE', `0x01')
define(`INTER_8X16MODE', `0x02')
+
+define(`OBR_MESSAGE_FENCE', `7')
+define(`OBR_MF_NOCOMMIT', `0')
+define(`OBR_MF_COMMIT', `0x20')