diff options
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_eu_emit.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_eu_emit.c | 144 |
1 files changed, 72 insertions, 72 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c index 2ffd2051a0..26b433bddb 100644 --- a/src/mesa/drivers/dri/i965/brw_eu_emit.c +++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c @@ -44,7 +44,7 @@ * explicit move; it should be called before emitting a SEND instruction. */ void -gen6_resolve_implied_move(struct brw_compile *p, +gen6_resolve_implied_move(struct brw_codegen *p, struct brw_reg *src, unsigned msg_reg_nr) { @@ -68,7 +68,7 @@ gen6_resolve_implied_move(struct brw_compile *p, } static void -gen7_convert_mrf_to_grf(struct brw_compile *p, struct brw_reg *reg) +gen7_convert_mrf_to_grf(struct brw_codegen *p, struct brw_reg *reg) { /* From the Ivybridge PRM, Volume 4 Part 3, page 218 ("send"): * "The send with EOT should use register space R112-R127 for <src>. This is @@ -142,7 +142,7 @@ brw_reg_type_to_hw_type(const struct brw_device_info *devinfo, } void -brw_set_dest(struct brw_compile *p, brw_inst *inst, struct brw_reg dest) +brw_set_dest(struct brw_codegen *p, brw_inst *inst, struct brw_reg dest) { const struct brw_device_info *devinfo = p->devinfo; @@ -296,7 +296,7 @@ is_compactable_immediate(unsigned imm) } void -brw_set_src0(struct brw_compile *p, brw_inst *inst, struct brw_reg reg) +brw_set_src0(struct brw_codegen *p, brw_inst *inst, struct brw_reg reg) { const struct brw_device_info *devinfo = p->devinfo; @@ -436,7 +436,7 @@ brw_set_src0(struct brw_compile *p, brw_inst *inst, struct brw_reg reg) void -brw_set_src1(struct brw_compile *p, brw_inst *inst, struct brw_reg reg) +brw_set_src1(struct brw_codegen *p, brw_inst *inst, struct brw_reg reg) { const struct brw_device_info *devinfo = p->devinfo; @@ -515,7 +515,7 @@ brw_set_src1(struct brw_compile *p, brw_inst *inst, struct brw_reg reg) * choose not to fill in irrelevant bits; they will be zero. */ static void -brw_set_message_descriptor(struct brw_compile *p, +brw_set_message_descriptor(struct brw_codegen *p, brw_inst *inst, enum brw_message_target sfid, unsigned msg_length, @@ -548,7 +548,7 @@ brw_set_message_descriptor(struct brw_compile *p, } } -static void brw_set_math_message( struct brw_compile *p, +static void brw_set_math_message( struct brw_codegen *p, brw_inst *inst, unsigned function, unsigned integer_type, @@ -595,7 +595,7 @@ static void brw_set_math_message( struct brw_compile *p, } -static void brw_set_ff_sync_message(struct brw_compile *p, +static void brw_set_ff_sync_message(struct brw_codegen *p, brw_inst *insn, bool allocate, unsigned response_length, @@ -614,7 +614,7 @@ static void brw_set_ff_sync_message(struct brw_compile *p, brw_inst_set_urb_complete(devinfo, insn, 0); } -static void brw_set_urb_message( struct brw_compile *p, +static void brw_set_urb_message( struct brw_codegen *p, brw_inst *insn, enum brw_urb_write_flags flags, unsigned msg_length, @@ -656,7 +656,7 @@ static void brw_set_urb_message( struct brw_compile *p, } void -brw_set_dp_write_message(struct brw_compile *p, +brw_set_dp_write_message(struct brw_codegen *p, brw_inst *insn, unsigned binding_table_index, unsigned msg_control, @@ -697,7 +697,7 @@ brw_set_dp_write_message(struct brw_compile *p, } void -brw_set_dp_read_message(struct brw_compile *p, +brw_set_dp_read_message(struct brw_codegen *p, brw_inst *insn, unsigned binding_table_index, unsigned msg_control, @@ -732,7 +732,7 @@ brw_set_dp_read_message(struct brw_compile *p, } void -brw_set_sampler_message(struct brw_compile *p, +brw_set_sampler_message(struct brw_codegen *p, brw_inst *inst, unsigned binding_table_index, unsigned sampler, @@ -759,7 +759,7 @@ brw_set_sampler_message(struct brw_compile *p, } static void -gen7_set_dp_scratch_message(struct brw_compile *p, +gen7_set_dp_scratch_message(struct brw_codegen *p, brw_inst *inst, bool write, bool dword, @@ -785,7 +785,7 @@ gen7_set_dp_scratch_message(struct brw_compile *p, #define next_insn brw_next_insn brw_inst * -brw_next_insn(struct brw_compile *p, unsigned opcode) +brw_next_insn(struct brw_codegen *p, unsigned opcode) { const struct brw_device_info *devinfo = p->devinfo; brw_inst *insn; @@ -804,7 +804,7 @@ brw_next_insn(struct brw_compile *p, unsigned opcode) } static brw_inst * -brw_alu1(struct brw_compile *p, unsigned opcode, +brw_alu1(struct brw_codegen *p, unsigned opcode, struct brw_reg dest, struct brw_reg src) { brw_inst *insn = next_insn(p, opcode); @@ -814,7 +814,7 @@ brw_alu1(struct brw_compile *p, unsigned opcode, } static brw_inst * -brw_alu2(struct brw_compile *p, unsigned opcode, +brw_alu2(struct brw_codegen *p, unsigned opcode, struct brw_reg dest, struct brw_reg src0, struct brw_reg src1) { brw_inst *insn = next_insn(p, opcode); @@ -836,7 +836,7 @@ get_3src_subreg_nr(struct brw_reg reg) } static brw_inst * -brw_alu3(struct brw_compile *p, unsigned opcode, struct brw_reg dest, +brw_alu3(struct brw_codegen *p, unsigned opcode, struct brw_reg dest, struct brw_reg src0, struct brw_reg src1, struct brw_reg src2) { const struct brw_device_info *devinfo = p->devinfo; @@ -925,7 +925,7 @@ brw_alu3(struct brw_compile *p, unsigned opcode, struct brw_reg dest, * Convenience routines. */ #define ALU1(OP) \ -brw_inst *brw_##OP(struct brw_compile *p, \ +brw_inst *brw_##OP(struct brw_codegen *p, \ struct brw_reg dest, \ struct brw_reg src0) \ { \ @@ -933,7 +933,7 @@ brw_inst *brw_##OP(struct brw_compile *p, \ } #define ALU2(OP) \ -brw_inst *brw_##OP(struct brw_compile *p, \ +brw_inst *brw_##OP(struct brw_codegen *p, \ struct brw_reg dest, \ struct brw_reg src0, \ struct brw_reg src1) \ @@ -942,7 +942,7 @@ brw_inst *brw_##OP(struct brw_compile *p, \ } #define ALU3(OP) \ -brw_inst *brw_##OP(struct brw_compile *p, \ +brw_inst *brw_##OP(struct brw_codegen *p, \ struct brw_reg dest, \ struct brw_reg src0, \ struct brw_reg src1, \ @@ -952,7 +952,7 @@ brw_inst *brw_##OP(struct brw_compile *p, \ } #define ALU3F(OP) \ -brw_inst *brw_##OP(struct brw_compile *p, \ +brw_inst *brw_##OP(struct brw_codegen *p, \ struct brw_reg dest, \ struct brw_reg src0, \ struct brw_reg src1, \ @@ -973,7 +973,7 @@ brw_inst *brw_##OP(struct brw_compile *p, \ * Sandybridge and later appear to round correctly without an ADD. */ #define ROUND(OP) \ -void brw_##OP(struct brw_compile *p, \ +void brw_##OP(struct brw_codegen *p, \ struct brw_reg dest, \ struct brw_reg src) \ { \ @@ -1027,7 +1027,7 @@ ROUND(RNDE) brw_inst * -brw_ADD(struct brw_compile *p, struct brw_reg dest, +brw_ADD(struct brw_codegen *p, struct brw_reg dest, struct brw_reg src0, struct brw_reg src1) { /* 6.2.2: add */ @@ -1049,7 +1049,7 @@ brw_ADD(struct brw_compile *p, struct brw_reg dest, } brw_inst * -brw_AVG(struct brw_compile *p, struct brw_reg dest, +brw_AVG(struct brw_codegen *p, struct brw_reg dest, struct brw_reg src0, struct brw_reg src1) { assert(dest.type == src0.type); @@ -1070,7 +1070,7 @@ brw_AVG(struct brw_compile *p, struct brw_reg dest, } brw_inst * -brw_MUL(struct brw_compile *p, struct brw_reg dest, +brw_MUL(struct brw_codegen *p, struct brw_reg dest, struct brw_reg src0, struct brw_reg src1) { /* 6.32.38: mul */ @@ -1104,7 +1104,7 @@ brw_MUL(struct brw_compile *p, struct brw_reg dest, } brw_inst * -brw_LINE(struct brw_compile *p, struct brw_reg dest, +brw_LINE(struct brw_codegen *p, struct brw_reg dest, struct brw_reg src0, struct brw_reg src1) { src0.vstride = BRW_VERTICAL_STRIDE_0; @@ -1114,7 +1114,7 @@ brw_LINE(struct brw_compile *p, struct brw_reg dest, } brw_inst * -brw_PLN(struct brw_compile *p, struct brw_reg dest, +brw_PLN(struct brw_codegen *p, struct brw_reg dest, struct brw_reg src0, struct brw_reg src1) { src0.vstride = BRW_VERTICAL_STRIDE_0; @@ -1127,7 +1127,7 @@ brw_PLN(struct brw_compile *p, struct brw_reg dest, } brw_inst * -brw_F32TO16(struct brw_compile *p, struct brw_reg dst, struct brw_reg src) +brw_F32TO16(struct brw_codegen *p, struct brw_reg dst, struct brw_reg src) { const struct brw_device_info *devinfo = p->devinfo; const bool align16 = brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_16; @@ -1174,7 +1174,7 @@ brw_F32TO16(struct brw_compile *p, struct brw_reg dst, struct brw_reg src) } brw_inst * -brw_F16TO32(struct brw_compile *p, struct brw_reg dst, struct brw_reg src) +brw_F16TO32(struct brw_codegen *p, struct brw_reg dst, struct brw_reg src) { const struct brw_device_info *devinfo = p->devinfo; bool align16 = brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_16; @@ -1205,7 +1205,7 @@ brw_F16TO32(struct brw_compile *p, struct brw_reg dst, struct brw_reg src) } -void brw_NOP(struct brw_compile *p) +void brw_NOP(struct brw_codegen *p) { brw_inst *insn = next_insn(p, BRW_OPCODE_NOP); brw_set_dest(p, insn, retype(brw_vec4_grf(0,0), BRW_REGISTER_TYPE_UD)); @@ -1222,7 +1222,7 @@ void brw_NOP(struct brw_compile *p) */ brw_inst * -brw_JMPI(struct brw_compile *p, struct brw_reg index, +brw_JMPI(struct brw_codegen *p, struct brw_reg index, unsigned predicate_control) { const struct brw_device_info *devinfo = p->devinfo; @@ -1238,7 +1238,7 @@ brw_JMPI(struct brw_compile *p, struct brw_reg index, } static void -push_if_stack(struct brw_compile *p, brw_inst *inst) +push_if_stack(struct brw_codegen *p, brw_inst *inst) { p->if_stack[p->if_stack_depth] = inst - p->store; @@ -1251,14 +1251,14 @@ push_if_stack(struct brw_compile *p, brw_inst *inst) } static brw_inst * -pop_if_stack(struct brw_compile *p) +pop_if_stack(struct brw_codegen *p) { p->if_stack_depth--; return &p->store[p->if_stack[p->if_stack_depth]]; } static void -push_loop_stack(struct brw_compile *p, brw_inst *inst) +push_loop_stack(struct brw_codegen *p, brw_inst *inst) { if (p->loop_stack_array_size < p->loop_stack_depth) { p->loop_stack_array_size *= 2; @@ -1274,7 +1274,7 @@ push_loop_stack(struct brw_compile *p, brw_inst *inst) } static brw_inst * -get_inner_do_insn(struct brw_compile *p) +get_inner_do_insn(struct brw_codegen *p) { return &p->store[p->loop_stack[p->loop_stack_depth - 1]]; } @@ -1293,7 +1293,7 @@ get_inner_do_insn(struct brw_compile *p) * popped off. If the stack is now empty, normal execution resumes. */ brw_inst * -brw_IF(struct brw_compile *p, unsigned execute_size) +brw_IF(struct brw_codegen *p, unsigned execute_size) { const struct brw_device_info *devinfo = p->devinfo; brw_inst *insn; @@ -1340,7 +1340,7 @@ brw_IF(struct brw_compile *p, unsigned execute_size) * embedded comparison (conditional modifier). It is not used on gen7. */ brw_inst * -gen6_IF(struct brw_compile *p, enum brw_conditional_mod conditional, +gen6_IF(struct brw_codegen *p, enum brw_conditional_mod conditional, struct brw_reg src0, struct brw_reg src1) { const struct brw_device_info *devinfo = p->devinfo; @@ -1367,7 +1367,7 @@ gen6_IF(struct brw_compile *p, enum brw_conditional_mod conditional, * In single-program-flow (SPF) mode, convert IF and ELSE into ADDs. */ static void -convert_IF_ELSE_to_ADD(struct brw_compile *p, +convert_IF_ELSE_to_ADD(struct brw_codegen *p, brw_inst *if_inst, brw_inst *else_inst) { const struct brw_device_info *devinfo = p->devinfo; @@ -1408,7 +1408,7 @@ convert_IF_ELSE_to_ADD(struct brw_compile *p, * Patch IF and ELSE instructions with appropriate jump targets. */ static void -patch_IF_ELSE(struct brw_compile *p, +patch_IF_ELSE(struct brw_codegen *p, brw_inst *if_inst, brw_inst *else_inst, brw_inst *endif_inst) { const struct brw_device_info *devinfo = p->devinfo; @@ -1496,7 +1496,7 @@ patch_IF_ELSE(struct brw_compile *p, } void -brw_ELSE(struct brw_compile *p) +brw_ELSE(struct brw_codegen *p) { const struct brw_device_info *devinfo = p->devinfo; brw_inst *insn; @@ -1534,7 +1534,7 @@ brw_ELSE(struct brw_compile *p) } void -brw_ENDIF(struct brw_compile *p) +brw_ENDIF(struct brw_codegen *p) { const struct brw_device_info *devinfo = p->devinfo; brw_inst *insn = NULL; @@ -1615,7 +1615,7 @@ brw_ENDIF(struct brw_compile *p) } brw_inst * -brw_BREAK(struct brw_compile *p) +brw_BREAK(struct brw_codegen *p) { const struct brw_device_info *devinfo = p->devinfo; brw_inst *insn; @@ -1643,7 +1643,7 @@ brw_BREAK(struct brw_compile *p) } brw_inst * -brw_CONT(struct brw_compile *p) +brw_CONT(struct brw_codegen *p) { const struct brw_device_info *devinfo = p->devinfo; brw_inst *insn; @@ -1668,7 +1668,7 @@ brw_CONT(struct brw_compile *p) } brw_inst * -gen6_HALT(struct brw_compile *p) +gen6_HALT(struct brw_codegen *p) { const struct brw_device_info *devinfo = p->devinfo; brw_inst *insn; @@ -1708,7 +1708,7 @@ gen6_HALT(struct brw_compile *p) * just points back to the first instruction of the loop. */ brw_inst * -brw_DO(struct brw_compile *p, unsigned execute_size) +brw_DO(struct brw_codegen *p, unsigned execute_size) { const struct brw_device_info *devinfo = p->devinfo; @@ -1742,7 +1742,7 @@ brw_DO(struct brw_compile *p, unsigned execute_size) * nesting, since it can always just point to the end of the block/current loop. */ static void -brw_patch_break_cont(struct brw_compile *p, brw_inst *while_inst) +brw_patch_break_cont(struct brw_codegen *p, brw_inst *while_inst) { const struct brw_device_info *devinfo = p->devinfo; brw_inst *do_inst = get_inner_do_insn(p); @@ -1767,7 +1767,7 @@ brw_patch_break_cont(struct brw_compile *p, brw_inst *while_inst) } brw_inst * -brw_WHILE(struct brw_compile *p) +brw_WHILE(struct brw_codegen *p) { const struct brw_device_info *devinfo = p->devinfo; brw_inst *insn, *do_insn; @@ -1830,7 +1830,7 @@ brw_WHILE(struct brw_compile *p) /* FORWARD JUMPS: */ -void brw_land_fwd_jump(struct brw_compile *p, int jmp_insn_idx) +void brw_land_fwd_jump(struct brw_codegen *p, int jmp_insn_idx) { const struct brw_device_info *devinfo = p->devinfo; brw_inst *jmp_insn = &p->store[jmp_insn_idx]; @@ -1850,7 +1850,7 @@ void brw_land_fwd_jump(struct brw_compile *p, int jmp_insn_idx) * instruction should populate the flag register. It might be simpler * just to use the flag reg for most WM tasks? */ -void brw_CMP(struct brw_compile *p, +void brw_CMP(struct brw_codegen *p, struct brw_reg dest, unsigned conditional, struct brw_reg src0, @@ -1885,7 +1885,7 @@ void brw_CMP(struct brw_compile *p, /** Extended math function, float[8]. */ -void gen4_math(struct brw_compile *p, +void gen4_math(struct brw_codegen *p, struct brw_reg dest, unsigned function, unsigned msg_reg_nr, @@ -1919,7 +1919,7 @@ void gen4_math(struct brw_compile *p, data_type); } -void gen6_math(struct brw_compile *p, +void gen6_math(struct brw_codegen *p, struct brw_reg dest, unsigned function, struct brw_reg src0, @@ -1983,7 +1983,7 @@ void gen6_math(struct brw_compile *p, * The offset must be aligned to oword size (16 bytes). Used for * register spilling. */ -void brw_oword_block_write_scratch(struct brw_compile *p, +void brw_oword_block_write_scratch(struct brw_codegen *p, struct brw_reg mrf, int num_regs, unsigned offset) @@ -2096,7 +2096,7 @@ void brw_oword_block_write_scratch(struct brw_compile *p, * spilling. */ void -brw_oword_block_read_scratch(struct brw_compile *p, +brw_oword_block_read_scratch(struct brw_codegen *p, struct brw_reg dest, struct brw_reg mrf, int num_regs, @@ -2172,7 +2172,7 @@ brw_oword_block_read_scratch(struct brw_compile *p, } void -gen7_block_read_scratch(struct brw_compile *p, +gen7_block_read_scratch(struct brw_codegen *p, struct brw_reg dest, int num_regs, unsigned offset) @@ -2212,7 +2212,7 @@ gen7_block_read_scratch(struct brw_compile *p, * Location (in buffer) should be a multiple of 16. * Used for fetching shader constants. */ -void brw_oword_block_read(struct brw_compile *p, +void brw_oword_block_read(struct brw_codegen *p, struct brw_reg dest, struct brw_reg mrf, uint32_t offset, @@ -2268,7 +2268,7 @@ void brw_oword_block_read(struct brw_compile *p, } -void brw_fb_WRITE(struct brw_compile *p, +void brw_fb_WRITE(struct brw_codegen *p, int dispatch_width, struct brw_reg payload, struct brw_reg implied_header, @@ -2331,7 +2331,7 @@ void brw_fb_WRITE(struct brw_compile *p, * Note: the msg_type plus msg_length values determine exactly what kind * of sampling operation is performed. See volume 4, page 161 of docs. */ -void brw_SAMPLE(struct brw_compile *p, +void brw_SAMPLE(struct brw_codegen *p, struct brw_reg dest, unsigned msg_reg_nr, struct brw_reg src0, @@ -2387,7 +2387,7 @@ void brw_SAMPLE(struct brw_compile *p, /* Adjust the message header's sampler state pointer to * select the correct group of 16 samplers. */ -void brw_adjust_sampler_state_pointer(struct brw_compile *p, +void brw_adjust_sampler_state_pointer(struct brw_codegen *p, struct brw_reg header, struct brw_reg sampler_index) { @@ -2434,7 +2434,7 @@ void brw_adjust_sampler_state_pointer(struct brw_compile *p, * using bitmasks and macros for this, in the old style. Or perhaps * just having the caller instantiate the fields in dword3 itself. */ -void brw_urb_WRITE(struct brw_compile *p, +void brw_urb_WRITE(struct brw_codegen *p, struct brw_reg dest, unsigned msg_reg_nr, struct brw_reg src0, @@ -2482,7 +2482,7 @@ void brw_urb_WRITE(struct brw_compile *p, } struct brw_inst * -brw_send_indirect_message(struct brw_compile *p, +brw_send_indirect_message(struct brw_codegen *p, unsigned sfid, struct brw_reg dst, struct brw_reg payload, @@ -2525,7 +2525,7 @@ brw_send_indirect_message(struct brw_compile *p, } static int -brw_find_next_block_end(struct brw_compile *p, int start_offset) +brw_find_next_block_end(struct brw_codegen *p, int start_offset) { int offset; void *store = p->store; @@ -2553,7 +2553,7 @@ brw_find_next_block_end(struct brw_compile *p, int start_offset) * instruction. */ static int -brw_find_loop_end(struct brw_compile *p, int start_offset) +brw_find_loop_end(struct brw_codegen *p, int start_offset) { const struct brw_device_info *devinfo = p->devinfo; int offset; @@ -2585,7 +2585,7 @@ brw_find_loop_end(struct brw_compile *p, int start_offset) * BREAK, CONT, and HALT instructions to their correct locations. */ void -brw_set_uip_jip(struct brw_compile *p) +brw_set_uip_jip(struct brw_codegen *p) { const struct brw_device_info *devinfo = p->devinfo; int offset; @@ -2662,7 +2662,7 @@ brw_set_uip_jip(struct brw_compile *p) } } -void brw_ff_sync(struct brw_compile *p, +void brw_ff_sync(struct brw_codegen *p, struct brw_reg dest, unsigned msg_reg_nr, struct brw_reg src0, @@ -2702,7 +2702,7 @@ void brw_ff_sync(struct brw_compile *p, * writes are complete by sending the final write as a committed write." */ void -brw_svb_write(struct brw_compile *p, +brw_svb_write(struct brw_codegen *p, struct brw_reg dest, unsigned msg_reg_nr, struct brw_reg src0, @@ -2730,7 +2730,7 @@ brw_svb_write(struct brw_compile *p, } static unsigned -brw_surface_payload_size(struct brw_compile *p, +brw_surface_payload_size(struct brw_codegen *p, unsigned num_channels, bool has_simd4x2, bool has_simd16) @@ -2744,7 +2744,7 @@ brw_surface_payload_size(struct brw_compile *p, } static void -brw_set_dp_untyped_atomic_message(struct brw_compile *p, +brw_set_dp_untyped_atomic_message(struct brw_codegen *p, brw_inst *insn, unsigned atomic_op, unsigned bind_table_index, @@ -2790,7 +2790,7 @@ brw_set_dp_untyped_atomic_message(struct brw_compile *p, } void -brw_untyped_atomic(struct brw_compile *p, +brw_untyped_atomic(struct brw_codegen *p, struct brw_reg dest, struct brw_reg payload, unsigned atomic_op, @@ -2821,7 +2821,7 @@ brw_untyped_atomic(struct brw_compile *p, } static void -brw_set_dp_untyped_surface_read_message(struct brw_compile *p, +brw_set_dp_untyped_surface_read_message(struct brw_codegen *p, brw_inst *insn, unsigned bind_table_index, unsigned msg_length, @@ -2864,7 +2864,7 @@ brw_set_dp_untyped_surface_read_message(struct brw_compile *p, } void -brw_untyped_surface_read(struct brw_compile *p, +brw_untyped_surface_read(struct brw_codegen *p, struct brw_reg dest, struct brw_reg mrf, unsigned bind_table_index, @@ -2883,7 +2883,7 @@ brw_untyped_surface_read(struct brw_compile *p, } void -brw_pixel_interpolator_query(struct brw_compile *p, +brw_pixel_interpolator_query(struct brw_codegen *p, struct brw_reg dest, struct brw_reg mrf, bool noperspective, @@ -2926,7 +2926,7 @@ brw_pixel_interpolator_query(struct brw_compile *p, * format, and is only accessible through the legacy DATA_CACHE dataport * messages. */ -void brw_shader_time_add(struct brw_compile *p, +void brw_shader_time_add(struct brw_codegen *p, struct brw_reg payload, uint32_t surf_index) { |