• Home
  • Raw
  • Download

Lines Matching refs:exec

51 	struct vc4_exec_info *exec,			\
106 vc4_use_bo(struct vc4_exec_info *exec, uint32_t hindex) in vc4_use_bo() argument
111 if (hindex >= exec->bo_count) { in vc4_use_bo()
113 hindex, exec->bo_count); in vc4_use_bo()
116 obj = exec->bo[hindex]; in vc4_use_bo()
129 vc4_use_handle(struct vc4_exec_info *exec, uint32_t gem_handles_packet_index) in vc4_use_handle() argument
131 return vc4_use_bo(exec, exec->bo_index[gem_handles_packet_index]); in vc4_use_handle()
135 validate_bin_pos(struct vc4_exec_info *exec, void *untrusted, uint32_t pos) in validate_bin_pos() argument
140 return (untrusted - 1 == exec->bin_u + pos); in validate_bin_pos()
159 vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, in vc4_check_tex_size() argument
216 if (!validate_bin_pos(exec, untrusted, exec->args->bin_cl_size - 1)) { in validate_flush()
220 exec->found_flush = true; in validate_flush()
228 if (exec->found_start_tile_binning_packet) { in validate_start_tile_binning()
232 exec->found_start_tile_binning_packet = true; in validate_start_tile_binning()
234 if (!exec->found_tile_binning_mode_config_packet) { in validate_start_tile_binning()
245 if (!validate_bin_pos(exec, untrusted, exec->args->bin_cl_size - 2)) { in validate_increment_semaphore()
250 exec->found_increment_semaphore_packet = true; in validate_increment_semaphore()
266 if (exec->shader_state_count == 0) { in validate_indexed_prim_list()
270 shader_state = &exec->shader_state[exec->shader_state_count - 1]; in validate_indexed_prim_list()
275 ib = vc4_use_handle(exec, 0); in validate_indexed_prim_list()
279 exec->bin_dep_seqno = max(exec->bin_dep_seqno, in validate_indexed_prim_list()
303 if (exec->shader_state_count == 0) { in validate_gl_array_primitive()
307 shader_state = &exec->shader_state[exec->shader_state_count - 1]; in validate_gl_array_primitive()
324 uint32_t i = exec->shader_state_count++; in validate_gl_shader_state()
326 if (i >= exec->shader_state_size) { in validate_gl_shader_state()
331 exec->shader_state[i].addr = *(uint32_t *)untrusted; in validate_gl_shader_state()
332 exec->shader_state[i].max_index = 0; in validate_gl_shader_state()
334 if (exec->shader_state[i].addr & ~0xf) { in validate_gl_shader_state()
339 *(uint32_t *)validated = (exec->shader_rec_p + in validate_gl_shader_state()
340 exec->shader_state[i].addr); in validate_gl_shader_state()
342 exec->shader_rec_p += in validate_gl_shader_state()
343 roundup(gl_shader_rec_size(exec->shader_state[i].addr), 16); in validate_gl_shader_state()
351 struct drm_device *dev = exec->exec_bo->base.dev; in validate_tile_binning_config()
358 if (exec->found_tile_binning_mode_config_packet) { in validate_tile_binning_config()
362 exec->found_tile_binning_mode_config_packet = true; in validate_tile_binning_config()
364 exec->bin_tiles_x = *(uint8_t *)(untrusted + 12); in validate_tile_binning_config()
365 exec->bin_tiles_y = *(uint8_t *)(untrusted + 13); in validate_tile_binning_config()
366 tile_count = exec->bin_tiles_x * exec->bin_tiles_y; in validate_tile_binning_config()
369 if (exec->bin_tiles_x == 0 || in validate_tile_binning_config()
370 exec->bin_tiles_y == 0) { in validate_tile_binning_config()
372 exec->bin_tiles_x, exec->bin_tiles_y); in validate_tile_binning_config()
394 exec->bin_slots |= BIT(bin_slot); in validate_tile_binning_config()
403 exec->tile_alloc_offset = bin_addr + roundup(tile_state_size, 4096); in validate_tile_binning_config()
415 *(uint32_t *)(validated + 0) = exec->tile_alloc_offset; in validate_tile_binning_config()
418 exec->tile_alloc_offset); in validate_tile_binning_config()
428 memcpy(exec->bo_index, untrusted, sizeof(exec->bo_index)); in validate_gem_handles()
438 int (*func)(struct vc4_exec_info *exec, void *validated,
483 struct vc4_exec_info *exec) in vc4_validate_bin_cl() argument
485 uint32_t len = exec->args->bin_cl_size; in vc4_validate_bin_cl()
519 if (info->func && info->func(exec, in vc4_validate_bin_cl()
537 exec->ct0ea = exec->ct0ca + dst_offset; in vc4_validate_bin_cl()
539 if (!exec->found_start_tile_binning_packet) { in vc4_validate_bin_cl()
551 if (!exec->found_increment_semaphore_packet || !exec->found_flush) { in vc4_validate_bin_cl()
561 reloc_tex(struct vc4_exec_info *exec, in reloc_tex() argument
573 uint32_t *validated_p0 = exec->uniforms_v + sample->p_offset[0]; in reloc_tex()
583 tex = vc4_use_bo(exec, texture_handle_index); in reloc_tex()
678 if (!vc4_check_tex_size(exec, tex, offset + cube_map_stride * 5, in reloc_tex()
730 exec->bin_dep_seqno = max(exec->bin_dep_seqno, in reloc_tex()
745 struct vc4_exec_info *exec, in validate_gl_shader_rec() argument
766 if (nr_relocs * 4 > exec->shader_rec_size) { in validate_gl_shader_rec()
769 nr_relocs, exec->shader_rec_size); in validate_gl_shader_rec()
772 src_handles = exec->shader_rec_u; in validate_gl_shader_rec()
773 exec->shader_rec_u += nr_relocs * 4; in validate_gl_shader_rec()
774 exec->shader_rec_size -= nr_relocs * 4; in validate_gl_shader_rec()
776 if (packet_size > exec->shader_rec_size) { in validate_gl_shader_rec()
779 packet_size, exec->shader_rec_size); in validate_gl_shader_rec()
782 pkt_u = exec->shader_rec_u; in validate_gl_shader_rec()
783 pkt_v = exec->shader_rec_v; in validate_gl_shader_rec()
785 exec->shader_rec_u += packet_size; in validate_gl_shader_rec()
792 exec->shader_rec_v += roundup(packet_size, 16); in validate_gl_shader_rec()
793 exec->shader_rec_size -= packet_size; in validate_gl_shader_rec()
796 if (src_handles[i] > exec->bo_count) { in validate_gl_shader_rec()
801 bo[i] = exec->bo[src_handles[i]]; in validate_gl_shader_rec()
806 bo[i] = vc4_use_bo(exec, src_handles[i]); in validate_gl_shader_rec()
844 exec->uniforms_size) { in validate_gl_shader_rec()
849 texture_handles_u = exec->uniforms_u; in validate_gl_shader_rec()
853 memcpy(exec->uniforms_v, uniform_data_u, in validate_gl_shader_rec()
859 if (!reloc_tex(exec, in validate_gl_shader_rec()
876 ((uint32_t *)exec->uniforms_v)[o] = exec->uniforms_p; in validate_gl_shader_rec()
879 *(uint32_t *)(pkt_v + o + 4) = exec->uniforms_p; in validate_gl_shader_rec()
881 exec->uniforms_u += validated_shader->uniforms_src_size; in validate_gl_shader_rec()
882 exec->uniforms_v += validated_shader->uniforms_size; in validate_gl_shader_rec()
883 exec->uniforms_p += validated_shader->uniforms_size; in validate_gl_shader_rec()
895 exec->bin_dep_seqno = max(exec->bin_dep_seqno, in validate_gl_shader_rec()
927 struct vc4_exec_info *exec) in vc4_validate_shader_recs() argument
932 for (i = 0; i < exec->shader_state_count; i++) { in vc4_validate_shader_recs()
933 ret = validate_gl_shader_rec(dev, exec, &exec->shader_state[i]); in vc4_validate_shader_recs()