add support for data port write on Sandybridge.
authorXiang, Haihao <haihao.xiang@intel.com>
Fri, 8 Oct 2010 08:48:15 +0000 (16:48 +0800)
committerDamien Lespiau <damien.lespiau@intel.com>
Mon, 4 Mar 2013 15:54:27 +0000 (15:54 +0000)
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
assembler/src/brw_structs.h
assembler/src/gram.y

index 92a398e..6a29f37 100644 (file)
@@ -1413,6 +1413,19 @@ struct brw_instruction
        } dp_write_gen5;
 
        struct {
+           GLuint binding_table_index:8;
+           GLuint msg_control:5;
+           GLuint msg_type:4;    
+           GLuint send_commit_msg:1;
+           GLuint pad0:1;
+           GLuint header_present:1;
+           GLuint response_length:5;
+           GLuint msg_length:4;
+           GLuint pad1:2;
+           GLuint end_of_thread:1;
+       } dp_write_gen6;
+
+       struct {
            GLuint opcode:1;
            GLuint requester_type:1;
            GLuint pad0:2;
index 2dab7a2..d536625 100644 (file)
@@ -650,7 +650,19 @@ msgtarget: NULL_TOKEN
                | WRITE LPAREN INTEGER COMMA INTEGER COMMA INTEGER COMMA
                INTEGER RPAREN
                {
-                 if (gen_level == 5) {
+                 if (gen_level == 6) {
+                      $$.bits2.send_gen5.sfid =
+                          BRW_MESSAGE_TARGET_DATAPORT_WRITE;
+                      /* Sandybridge supports headerlesss message for render target write.
+                       * Currently the GFX assembler doesn't support it. so the program must provide 
+                       * message header
+                       */
+                      $$.bits3.generic_gen5.header_present = 1;
+                      $$.bits3.dp_write_gen6.binding_table_index = $3;
+                      $$.bits3.dp_write_gen6.msg_control = $5;
+                      $$.bits3.dp_write_gen6.msg_type = $7;
+                      $$.bits3.dp_write_gen6.send_commit_msg = $9;
+                 } else if (gen_level == 5) {
                       $$.bits2.send_gen5.sfid =
                           BRW_MESSAGE_TARGET_DATAPORT_WRITE;
                       $$.bits3.generic_gen5.header_present = 1;