diff mbox

[06/10] add support for data port write on Sandybridge.

Message ID 1286609550-16083-7-git-send-email-haihao.xiang@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Xiang, Haihao Oct. 9, 2010, 7:32 a.m. UTC
None
diff mbox

Patch

diff --git a/src/brw_structs.h b/src/brw_structs.h
index 92a398e..6a29f37 100644
--- a/src/brw_structs.h
+++ b/src/brw_structs.h
@@ -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;
diff --git a/src/gram.y b/src/gram.y
index 2dab7a2..d536625 100644
--- a/src/gram.y
+++ b/src/gram.y
@@ -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;