diff --git a/assembler/src/brw_structs.h b/assembler/src/brw_structs.h index 15dcfe48..67a62211 100644 --- a/assembler/src/brw_structs.h +++ b/assembler/src/brw_structs.h @@ -1308,6 +1308,19 @@ struct brw_instruction GLuint end_of_thread:1; } dp_write; + struct { + GLuint opcode:1; + GLuint requester_type:1; + GLuint pad:2; + GLuint resource_select:1; + GLuint pad1:11; + GLuint response_length:4; + GLuint msg_length:4; + GLuint msg_target:4; + GLuint pad2:3; + GLuint end_of_thread:1; + } thread_spawner; + struct { GLuint pad:16; GLuint response_length:4; diff --git a/assembler/src/gram.y b/assembler/src/gram.y index eb49c7e7..4c0bc0d8 100644 --- a/assembler/src/gram.y +++ b/assembler/src/gram.y @@ -540,10 +540,14 @@ msgtarget: NULL_TOKEN $$.bits3.urb.used = $5; $$.bits3.urb.complete = $6; } - | THREAD_SPAWNER + | THREAD_SPAWNER LPAREN INTEGER COMMA INTEGER COMMA + INTEGER RPAREN { $$.bits3.generic.msg_target = BRW_MESSAGE_TARGET_THREAD_SPAWNER; + $$.bits3.thread_spawner.opcode = $3; + $$.bits3.thread_spawner.requester_type = $5; + $$.bits3.thread_spawner.resource_select = $7; } ;