Lines Matching refs:job

40 emit_rcl_prologue(struct v3dv_job *job,
44 const struct v3dv_frame_tiling *tiling = &job->frame_tiling;
46 struct v3dv_cl *rcl = &job->rcl;
50 if (job->cmd_buffer->state.oom)
132 emit_frame_setup(struct v3dv_job *job,
136 v3dv_return_if_oom(NULL, job);
138 const struct v3dv_frame_tiling *tiling = &job->frame_tiling;
140 struct v3dv_cl *rcl = &job->rcl;
145 list.address = v3dv_cl_address(job->tile_alloc, tile_alloc_offset);
188 emit_supertile_coordinates(struct v3dv_job *job,
191 v3dv_return_if_oom(NULL, job);
193 struct v3dv_cl *rcl = &job->rcl;
476 emit_copy_layer_to_buffer_per_tile_list(struct v3dv_job *job,
483 struct v3dv_cl *cl = &job->indirect;
485 v3dv_return_if_oom(NULL, job);
500 emit_image_load(job->device, cl, framebuffer, image,
549 cl_emit(&job->rcl, START_ADDRESS_OF_GENERIC_TILE_LIST, branch) {
556 emit_copy_layer_to_buffer(struct v3dv_job *job,
563 emit_copy_layer_to_buffer_per_tile_list(job, framebuffer, buffer,
565 emit_supertile_coordinates(job, framebuffer);
569 v3dX(meta_emit_copy_image_to_buffer_rcl)(struct v3dv_job *job,
575 struct v3dv_cl *rcl = emit_rcl_prologue(job, framebuffer, NULL);
576 v3dv_return_if_oom(NULL, job);
578 emit_frame_setup(job, 0, NULL);
579 for (int layer = 0; layer < job->frame_tiling.layers; layer++)
580 emit_copy_layer_to_buffer(job, buffer, image, framebuffer, layer, region);
585 emit_resolve_image_layer_per_tile_list(struct v3dv_job *job,
592 struct v3dv_cl *cl = &job->indirect;
594 v3dv_return_if_oom(NULL, job);
608 emit_image_load(job->device, cl, framebuffer, src,
626 emit_image_store(job->device, cl, framebuffer, dst,
636 cl_emit(&job->rcl, START_ADDRESS_OF_GENERIC_TILE_LIST, branch) {
643 emit_resolve_image_layer(struct v3dv_job *job,
650 emit_resolve_image_layer_per_tile_list(job, framebuffer,
652 emit_supertile_coordinates(job, framebuffer);
656 v3dX(meta_emit_resolve_image_rcl)(struct v3dv_job *job,
662 struct v3dv_cl *rcl = emit_rcl_prologue(job, framebuffer, NULL);
663 v3dv_return_if_oom(NULL, job);
665 emit_frame_setup(job, 0, NULL);
666 for (int layer = 0; layer < job->frame_tiling.layers; layer++)
667 emit_resolve_image_layer(job, dst, src, framebuffer, layer, region);
672 emit_copy_buffer_per_tile_list(struct v3dv_job *job,
680 struct v3dv_cl *cl = &job->indirect;
682 v3dv_return_if_oom(NULL, job);
701 cl_emit(&job->rcl, START_ADDRESS_OF_GENERIC_TILE_LIST, branch) {
708 v3dX(meta_emit_copy_buffer)(struct v3dv_job *job,
717 const uint32_t stride = job->frame_tiling.width * item_size;
718 emit_copy_buffer_per_tile_list(job, dst, src,
721 emit_supertile_coordinates(job, framebuffer);
725 v3dX(meta_emit_copy_buffer_rcl)(struct v3dv_job *job,
734 struct v3dv_cl *rcl = emit_rcl_prologue(job, framebuffer, NULL);
735 v3dv_return_if_oom(NULL, job);
737 emit_frame_setup(job, 0, NULL);
739 v3dX(meta_emit_copy_buffer)(job, dst, src, dst_offset, src_offset,
746 emit_copy_image_layer_per_tile_list(struct v3dv_job *job,
753 struct v3dv_cl *cl = &job->indirect;
755 v3dv_return_if_oom(NULL, job);
769 emit_image_load(job->device, cl, framebuffer, src,
787 emit_image_store(job->device, cl, framebuffer, dst,
797 cl_emit(&job->rcl, START_ADDRESS_OF_GENERIC_TILE_LIST, branch) {
804 emit_copy_image_layer(struct v3dv_job *job,
811 emit_copy_image_layer_per_tile_list(job, framebuffer, dst, src, layer, region);
812 emit_supertile_coordinates(job, framebuffer);
816 v3dX(meta_emit_copy_image_rcl)(struct v3dv_job *job,
822 struct v3dv_cl *rcl = emit_rcl_prologue(job, framebuffer, NULL);
823 v3dv_return_if_oom(NULL, job);
825 emit_frame_setup(job, 0, NULL);
826 for (int layer = 0; layer < job->frame_tiling.layers; layer++)
827 emit_copy_image_layer(job, dst, src, framebuffer, layer, region);
903 emit_clear_image_layer_per_tile_list(struct v3dv_job *job,
910 struct v3dv_cl *cl = &job->indirect;
912 v3dv_return_if_oom(NULL, job);
922 emit_image_store(job->device, cl, framebuffer, image, aspects,
929 cl_emit(&job->rcl, START_ADDRESS_OF_GENERIC_TILE_LIST, branch) {
936 emit_clear_image_layers(struct v3dv_job *job,
945 emit_clear_image_layer_per_tile_list(job, framebuffer, image, aspects,
947 emit_supertile_coordinates(job, framebuffer);
952 v3dX(meta_emit_clear_image_rcl)(struct v3dv_job *job,
968 struct v3dv_cl *rcl = emit_rcl_prologue(job, framebuffer, &clear_info);
969 v3dv_return_if_oom(NULL, job);
971 emit_frame_setup(job, 0, clear_value);
972 emit_clear_image_layers(job, image, framebuffer, aspects,
978 emit_fill_buffer_per_tile_list(struct v3dv_job *job,
983 struct v3dv_cl *cl = &job->indirect;
985 v3dv_return_if_oom(NULL, job);
1002 cl_emit(&job->rcl, START_ADDRESS_OF_GENERIC_TILE_LIST, branch) {
1009 emit_fill_buffer(struct v3dv_job *job,
1014 const uint32_t stride = job->frame_tiling.width * 4;
1015 emit_fill_buffer_per_tile_list(job, bo, offset, stride);
1016 emit_supertile_coordinates(job, framebuffer);
1020 v3dX(meta_emit_fill_buffer_rcl)(struct v3dv_job *job,
1037 struct v3dv_cl *rcl = emit_rcl_prologue(job, framebuffer, &clear_info);
1038 v3dv_return_if_oom(NULL, job);
1040 emit_frame_setup(job, 0, &clear_value);
1041 emit_fill_buffer(job, bo, offset, framebuffer);
1047 emit_copy_buffer_to_layer_per_tile_list(struct v3dv_job *job,
1054 struct v3dv_cl *cl = &job->indirect;
1056 v3dv_return_if_oom(NULL, job);
1111 emit_image_load(job->device, cl, framebuffer, image,
1117 emit_image_load(job->device, cl, framebuffer, image,
1129 emit_image_store(job->device, cl, framebuffer, image, imgrsc->aspectMask,
1135 emit_image_store(job->device, cl, framebuffer, image,
1141 emit_image_store(job->device, cl, framebuffer, image,
1152 cl_emit(&job->rcl, START_ADDRESS_OF_GENERIC_TILE_LIST, branch) {
1159 emit_copy_buffer_to_layer(struct v3dv_job *job,
1166 emit_copy_buffer_to_layer_per_tile_list(job, framebuffer, image, buffer,
1168 emit_supertile_coordinates(job, framebuffer);
1172 v3dX(meta_emit_copy_buffer_to_image_rcl)(struct v3dv_job *job,
1178 struct v3dv_cl *rcl = emit_rcl_prologue(job, framebuffer, NULL);
1179 v3dv_return_if_oom(NULL, job);
1181 emit_frame_setup(job, 0, NULL);
1182 for (int layer = 0; layer < job->frame_tiling.layers; layer++)
1183 emit_copy_buffer_to_layer(job, image, buffer, framebuffer, layer, region);
1189 * job, if the pixel count is larger than this, the caller might need to split
1190 * the job and call this function multiple times.
1268 struct v3dv_job *job = NULL;
1270 job = v3dv_cmd_buffer_start_job(cmd_buffer, -1, V3DV_JOB_TYPE_GPU_CL);
1271 if (!job)
1277 v3dv_job_start_frame(job, width, height, 1, true, 1, internal_bpp, false);
1281 &job->frame_tiling);
1283 v3dX(job_emit_binning_flush)(job);
1285 v3dX(meta_emit_copy_buffer_rcl)(job, dst, src, dst_offset, src_offset,
1297 return job;
1315 struct v3dv_job *job =
1317 if (!job)
1323 v3dv_job_start_frame(job, width, height, 1, true, 1, internal_bpp, false);
1327 internal_type, &job->frame_tiling);
1329 v3dX(job_emit_binning_flush)(job);
1331 v3dX(meta_emit_fill_buffer_rcl)(job, bo, offset, &framebuffer, data);