@@ -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;
@@ -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;