Add support for data port read/write on Ivybridge

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
This commit is contained in:
Xiang, Haihao 2011-05-23 13:32:32 +08:00 committed by Damien Lespiau
parent 6fa6b45daf
commit c8d6bf353e
2 changed files with 36 additions and 3 deletions

View File

@ -1441,6 +1441,18 @@ struct brw_instruction
GLuint end_of_thread:1;
} dp_write_gen6;
struct {
GLuint binding_table_index:8;
GLuint msg_control:6;
GLuint msg_type:4;
GLuint pad0:1;
GLuint header_present:1;
GLuint response_length:5;
GLuint msg_length:4;
GLuint pad1:2;
GLuint end_of_thread:1;
} dp_gen7;
struct {
GLuint opcode:1;
GLuint requester_type:1;

View File

@ -1017,7 +1017,14 @@ msgtarget: NULL_TOKEN
| READ LPAREN INTEGER COMMA INTEGER COMMA INTEGER COMMA
INTEGER RPAREN
{
if (gen_level == 6) {
if (gen_level == 7) {
$$.bits2.send_gen5.sfid =
BRW_MESSAGE_TARGET_DATAPORT_READ;
$$.bits3.generic_gen5.header_present = 1;
$$.bits3.dp_gen7.binding_table_index = $3;
$$.bits3.dp_gen7.msg_control = $7;
$$.bits3.dp_gen7.msg_type = $9;
} else if (gen_level == 6) {
$$.bits2.send_gen5.sfid =
BRW_MESSAGE_TARGET_DATAPORT_READ;
$$.bits3.generic_gen5.header_present = 1;
@ -1044,7 +1051,14 @@ msgtarget: NULL_TOKEN
| WRITE LPAREN INTEGER COMMA INTEGER COMMA INTEGER COMMA
INTEGER RPAREN
{
if (gen_level == 6) {
if (gen_level == 7) {
$$.bits2.send_gen5.sfid =
BRW_MESSAGE_TARGET_DATAPORT_WRITE;
$$.bits3.generic_gen5.header_present = 1;
$$.bits3.dp_gen7.binding_table_index = $3;
$$.bits3.dp_gen7.msg_control = $5;
$$.bits3.dp_gen7.msg_type = $7;
} if (gen_level == 6) {
$$.bits2.send_gen5.sfid =
BRW_MESSAGE_TARGET_DATAPORT_WRITE;
/* Sandybridge supports headerlesss message for render target write.
@ -1082,7 +1096,14 @@ msgtarget: NULL_TOKEN
| WRITE LPAREN INTEGER COMMA INTEGER COMMA INTEGER COMMA
INTEGER COMMA INTEGER RPAREN
{
if (gen_level == 6) {
if (gen_level == 7) {
$$.bits2.send_gen5.sfid =
BRW_MESSAGE_TARGET_DATAPORT_WRITE;
$$.bits3.generic_gen5.header_present = ($11 != 0);
$$.bits3.dp_gen7.binding_table_index = $3;
$$.bits3.dp_gen7.msg_control = $5;
$$.bits3.dp_gen7.msg_type = $7;
} else if (gen_level == 6) {
$$.bits2.send_gen5.sfid =
BRW_MESSAGE_TARGET_DATAPORT_WRITE;
$$.bits3.generic_gen5.header_present = ($11 != 0);