Lines Matching refs:exec

99 static uint32_t vc4_full_res_offset(struct vc4_exec_info *exec,
105 (DIV_ROUND_UP(exec->args->width, 32) * y + x);
123 static void emit_tile(struct vc4_exec_info *exec,
127 struct drm_vc4_submit_cl *args = exec->args;
139 vc4_full_res_offset(exec, setup->color_read,
161 vc4_full_res_offset(exec, setup->zs_read,
185 rcl_u32(setup, (exec->tile_alloc_offset +
186 (y * exec->bin_tiles_x + x) * 32));
201 vc4_full_res_offset(exec, setup->msaa_color_write,
219 vc4_full_res_offset(exec, setup->msaa_zs_write,
253 static int vc4_create_rcl_bo(struct drm_device *dev, struct vc4_exec_info *exec,
256 struct drm_vc4_submit_cl *args = exec->args;
335 &exec->unref_list);
372 emit_tile(exec, setup, x, y, first, last);
377 exec->ct1ca = setup->rcl->dma_addr;
378 exec->ct1ea = setup->rcl->dma_addr + setup->next_offset;
383 static int vc4_full_res_bounds_check(struct vc4_exec_info *exec,
387 struct drm_vc4_submit_cl *args = exec->args;
388 u32 render_tiles_stride = DIV_ROUND_UP(exec->args->width, 32);
409 static int vc4_rcl_msaa_surface_setup(struct vc4_exec_info *exec,
421 *obj = vc4_use_bo(exec, surf->hindex);
425 exec->rcl_write_bo[exec->rcl_write_bo_count++] = *obj;
432 return vc4_full_res_bounds_check(exec, *obj, surf);
435 static int vc4_rcl_surface_setup(struct vc4_exec_info *exec,
457 *obj = vc4_use_bo(exec, surf->hindex);
462 exec->rcl_write_bo[exec->rcl_write_bo_count++] = *obj;
465 if (surf == &exec->args->zs_write) {
476 ret = vc4_full_res_bounds_check(exec, *obj, surf);
525 if (!vc4_check_tex_size(exec, *obj, surf->offset, tiling,
526 exec->args->width, exec->args->height, cpp)) {
534 vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec,
562 *obj = vc4_use_bo(exec, surf->hindex);
566 exec->rcl_write_bo[exec->rcl_write_bo_count++] = *obj;
586 if (!vc4_check_tex_size(exec, *obj, surf->offset, tiling,
587 exec->args->width, exec->args->height, cpp)) {
594 int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec)
598 struct drm_vc4_submit_cl *args = exec->args;
614 (args->max_x_tile > exec->bin_tiles_x ||
615 args->max_y_tile > exec->bin_tiles_y)) {
619 exec->bin_tiles_x, exec->bin_tiles_y);
623 ret = vc4_rcl_render_config_surface_setup(exec, &setup,
629 ret = vc4_rcl_surface_setup(exec, &setup.color_read, &args->color_read,
634 ret = vc4_rcl_surface_setup(exec, &setup.zs_read, &args->zs_read,
639 ret = vc4_rcl_surface_setup(exec, &setup.zs_write, &args->zs_write,
644 ret = vc4_rcl_msaa_surface_setup(exec, &setup.msaa_color_write,
649 ret = vc4_rcl_msaa_surface_setup(exec, &setup.msaa_zs_write,
663 return vc4_create_rcl_bo(dev, exec, &setup);