add support for data port write on Sandybridge.

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
This commit is contained in:
Xiang, Haihao 2010-10-08 16:48:15 +08:00 committed by Damien Lespiau
parent 4f777e73f1
commit 61784dbc97
2 changed files with 26 additions and 1 deletions

View File

@ -1412,6 +1412,19 @@ struct brw_instruction
GLuint end_of_thread:1;
} 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;

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