Lines Matching refs:job
35 v3dX(job_emit_binning_flush)(struct v3dv_job *job) in v3dX()
37 assert(job); in v3dX()
39 v3dv_cl_ensure_space_with_branch(&job->bcl, cl_packet_length(FLUSH)); in v3dX()
40 v3dv_return_if_oom(NULL, job); in v3dX()
42 cl_emit(&job->bcl, FLUSH, flush); in v3dX()
46 v3dX(job_emit_binning_prolog)(struct v3dv_job *job, in v3dX()
53 cl_emit(&job->bcl, NUMBER_OF_LAYERS, config) { in v3dX()
58 cl_emit(&job->bcl, TILE_BINNING_MODE_CFG, config) { in v3dX()
68 cl_emit(&job->bcl, FLUSH_VCD_CACHE, bin); in v3dX()
73 cl_emit(&job->bcl, START_TILE_BINNING, bin); in v3dX()
79 assert(cmd_buffer->state.job); in v3dX()
80 v3dv_cl_ensure_space_with_branch(&cmd_buffer->state.job->bcl, in v3dX()
83 cl_emit(&cmd_buffer->state.job->bcl, RETURN_FROM_SUB_LIST, ret); in v3dX()
87 v3dX(job_emit_clip_window)(struct v3dv_job *job, const VkRect2D *rect) in v3dX()
89 assert(job); in v3dX()
91 v3dv_cl_ensure_space_with_branch(&job->bcl, cl_packet_length(CLIP_WINDOW)); in v3dX()
92 v3dv_return_if_oom(NULL, job); in v3dX()
94 cl_emit(&job->bcl, CLIP_WINDOW, clip) { in v3dX()
169 if (state->job->first_subpass > first_subpass_idx) in check_needs_load()
175 if (state->job->is_subpass_continue) in check_needs_load()
380 if (state->job->is_subpass_continue) in check_needs_clear()
393 if (state->job->first_subpass != first_subpass_idx) in check_needs_clear()
423 if (!state->job->is_subpass_finish) in check_needs_store()
452 assert(state->job->first_subpass >= ds_attachment->first_subpass); in cmd_buffer_render_pass_emit_stores()
552 use_global_zs_clear = !state->job->early_zs_clear && in cmd_buffer_render_pass_emit_stores()
573 assert(state->job->first_subpass >= attachment->first_subpass); in cmd_buffer_render_pass_emit_stores()
662 struct v3dv_job *job = cmd_buffer->state.job; in cmd_buffer_render_pass_emit_per_tile_rcl() local
663 assert(job); in cmd_buffer_render_pass_emit_per_tile_rcl()
668 struct v3dv_cl *cl = &job->indirect; in cmd_buffer_render_pass_emit_per_tile_rcl()
698 cl_emit(&job->rcl, START_ADDRESS_OF_GENERIC_TILE_LIST, branch) { in cmd_buffer_render_pass_emit_per_tile_rcl()
710 struct v3dv_job *job = cmd_buffer->state.job; in cmd_buffer_emit_render_pass_layer_rcl() local
711 struct v3dv_cl *rcl = &job->rcl; in cmd_buffer_emit_render_pass_layer_rcl()
716 const struct v3dv_frame_tiling *tiling = &job->frame_tiling; in cmd_buffer_emit_render_pass_layer_rcl()
720 list.address = v3dv_cl_address(job->tile_alloc, tile_alloc_offset); in cmd_buffer_emit_render_pass_layer_rcl()
754 set_rcl_early_z_config(struct v3dv_job *job, in set_rcl_early_z_config() argument
759 if (!job->has_ez_draws) { in set_rcl_early_z_config()
764 switch (job->first_ez_state) { in set_rcl_early_z_config()
783 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
784 assert(job); in v3dX()
799 const struct v3dv_frame_tiling *tiling = &job->frame_tiling; in v3dX()
801 const uint32_t fb_layers = job->frame_tiling.layers; in v3dX()
803 v3dv_cl_ensure_space_with_branch(&job->rcl, 200 + in v3dX()
811 struct v3dv_cl *rcl = &job->rcl; in v3dX()
833 set_rcl_early_z_config(job, in v3dX()
896 job->early_zs_clear = do_early_zs_clear; in v3dX()
1027 clear.clear_z_stencil_buffer = !job->early_zs_clear; in v3dX()
1054 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1055 assert(job); in v3dX()
1062 v3dv_cl_ensure_space_with_branch(&job->bcl, required_cl_size); in v3dX()
1065 cl_emit(&job->bcl, CLIPPER_XY_SCALING, clip) { in v3dX()
1070 cl_emit(&job->bcl, CLIPPER_Z_SCALE_AND_OFFSET, clip) { in v3dX()
1074 cl_emit(&job->bcl, CLIPPER_Z_MIN_MAX_CLIPPING_PLANES, clip) { in v3dX()
1082 cl_emit(&job->bcl, VIEWPORT_OFFSET, vp) { in v3dX()
1093 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1094 assert(job); in v3dX()
1103 v3dv_cl_ensure_space_with_branch(&job->bcl, in v3dX()
1111 cl_emit_with_prepacked(&job->bcl, STENCIL_CFG, in v3dX()
1130 cl_emit_prepacked(&job->bcl, &pipeline->stencil_cfg[i]); in v3dX()
1155 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1156 assert(job); in v3dX()
1158 v3dv_cl_ensure_space_with_branch(&job->bcl, cl_packet_length(DEPTH_OFFSET)); in v3dX()
1162 cl_emit(&job->bcl, DEPTH_OFFSET, bias) { in v3dX()
1176 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1177 assert(job); in v3dX()
1179 v3dv_cl_ensure_space_with_branch(&job->bcl, cl_packet_length(LINE_WIDTH)); in v3dX()
1182 cl_emit(&job->bcl, LINE_WIDTH, line) { in v3dX()
1195 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1196 assert(job); in v3dX()
1198 v3dv_cl_ensure_space_with_branch(&job->bcl, cl_packet_length(SAMPLE_STATE)); in v3dX()
1201 cl_emit(&job->bcl, SAMPLE_STATE, state) { in v3dX()
1210 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1211 assert(job); in v3dX()
1221 v3dv_cl_ensure_space_with_branch(&job->bcl, blend_packets_size); in v3dX()
1226 cl_emit(&job->bcl, BLEND_ENABLES, enables) { in v3dX()
1233 cl_emit_prepacked(&job->bcl, &pipeline->blend.cfg[i]); in v3dX()
1240 cl_emit(&job->bcl, BLEND_CONSTANT_COLOR, color) { in v3dX()
1253 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1254 v3dv_cl_ensure_space_with_branch(&job->bcl, cl_packet_length(COLOR_WRITE_MASKS)); in v3dX()
1258 cl_emit(&job->bcl, COLOR_WRITE_MASKS, mask) { in v3dX()
1267 emit_flat_shade_flags(struct v3dv_job *job, in emit_flat_shade_flags() argument
1273 v3dv_cl_ensure_space_with_branch(&job->bcl, in emit_flat_shade_flags()
1275 v3dv_return_if_oom(NULL, job); in emit_flat_shade_flags()
1277 cl_emit(&job->bcl, FLAT_SHADE_FLAGS, flags) { in emit_flat_shade_flags()
1286 emit_noperspective_flags(struct v3dv_job *job, in emit_noperspective_flags() argument
1292 v3dv_cl_ensure_space_with_branch(&job->bcl, in emit_noperspective_flags()
1294 v3dv_return_if_oom(NULL, job); in emit_noperspective_flags()
1296 cl_emit(&job->bcl, NON_PERSPECTIVE_FLAGS, flags) { in emit_noperspective_flags()
1305 emit_centroid_flags(struct v3dv_job *job, in emit_centroid_flags() argument
1311 v3dv_cl_ensure_space_with_branch(&job->bcl, in emit_centroid_flags()
1313 v3dv_return_if_oom(NULL, job); in emit_centroid_flags()
1315 cl_emit(&job->bcl, CENTROID_FLAGS, flags) { in emit_centroid_flags()
1324 emit_varying_flags(struct v3dv_job *job, in emit_varying_flags() argument
1327 void (*flag_emit_callback)(struct v3dv_job *job, in emit_varying_flags() argument
1339 flag_emit_callback(job, i, flags[i], in emit_varying_flags()
1343 flag_emit_callback(job, i, flags[i], in emit_varying_flags()
1347 flag_emit_callback(job, i, flags[i], in emit_varying_flags()
1361 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1373 if (!emit_varying_flags(job, num_flags, flat_shade_flags, in v3dX()
1376 &job->bcl, cl_packet_length(ZERO_ALL_FLAT_SHADE_FLAGS)); in v3dX()
1379 cl_emit(&job->bcl, ZERO_ALL_FLAT_SHADE_FLAGS, flags); in v3dX()
1382 if (!emit_varying_flags(job, num_flags, noperspective_flags, in v3dX()
1385 &job->bcl, cl_packet_length(ZERO_ALL_NON_PERSPECTIVE_FLAGS)); in v3dX()
1388 cl_emit(&job->bcl, ZERO_ALL_NON_PERSPECTIVE_FLAGS, flags); in v3dX()
1391 if (!emit_varying_flags(job, num_flags, centroid_flags, in v3dX()
1394 &job->bcl, cl_packet_length(ZERO_ALL_CENTROID_FLAGS)); in v3dX()
1397 cl_emit(&job->bcl, ZERO_ALL_CENTROID_FLAGS, flags); in v3dX()
1405 job_update_ez_state(struct v3dv_job *job, in job_update_ez_state() argument
1416 if (job->first_ez_state == V3D_EZ_DISABLED) { in job_update_ez_state()
1417 assert(job->ez_state == V3D_EZ_DISABLED); in job_update_ez_state()
1424 if (job->ez_state == V3D_EZ_DISABLED) in job_update_ez_state()
1437 if (!job->decided_global_ez_enable) { in job_update_ez_state()
1438 job->decided_global_ez_enable = true; in job_update_ez_state()
1444 job->first_ez_state = V3D_EZ_DISABLED; in job_update_ez_state()
1445 job->ez_state = V3D_EZ_DISABLED; in job_update_ez_state()
1473 job->first_ez_state = V3D_EZ_DISABLED; in job_update_ez_state()
1474 job->ez_state = V3D_EZ_DISABLED; in job_update_ez_state()
1481 job->first_ez_state = V3D_EZ_DISABLED; in job_update_ez_state()
1482 job->ez_state = V3D_EZ_DISABLED; in job_update_ez_state()
1506 if (job->ez_state == V3D_EZ_UNDECIDED) { in job_update_ez_state()
1507 job->ez_state = pipeline->ez_state; in job_update_ez_state()
1508 } else if (job->ez_state != pipeline->ez_state) { in job_update_ez_state()
1520 if (job->first_ez_state == V3D_EZ_UNDECIDED && !disable_ez) { in job_update_ez_state()
1521 assert(job->ez_state != V3D_EZ_DISABLED); in job_update_ez_state()
1522 job->first_ez_state = job->ez_state; in job_update_ez_state()
1531 job->ez_state = V3D_EZ_DISABLED; in job_update_ez_state()
1535 job->has_ez_draws = true; in job_update_ez_state()
1543 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1544 assert(job); in v3dX()
1549 bool enable_ez = job_update_ez_state(job, pipeline, cmd_buffer); in v3dX()
1551 v3dv_cl_ensure_space_with_branch(&job->bcl, cl_packet_length(CFG_BITS)); in v3dX()
1554 cl_emit_with_prepacked(&job->bcl, CFG_BITS, pipeline->cfg_bits, config) { in v3dX()
1564 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1565 assert(job); in v3dX()
1567 v3dv_cl_ensure_space_with_branch(&job->bcl, in v3dX()
1571 cl_emit(&job->bcl, OCCLUSION_QUERY_COUNTER, counter) { in v3dX()
1588 struct v3dv_job *job = in cmd_buffer_subpass_split_for_barrier() local
1591 if (!job) in cmd_buffer_subpass_split_for_barrier()
1595 job->serialize = V3DV_BARRIER_ALL; in cmd_buffer_subpass_split_for_barrier()
1596 job->needs_bcl_sync = is_bcl_barrier; in cmd_buffer_subpass_split_for_barrier()
1597 return job; in cmd_buffer_subpass_split_for_barrier()
1633 assert(primary->state.job); in v3dX()
1680 struct v3dv_job *primary_job = primary->state.job; in v3dX()
1767 emit_gs_shader_state_record(struct v3dv_job *job, in emit_gs_shader_state_record() argument
1774 cl_emit(&job->indirect, GEOMETRY_SHADER_STATE_RECORD, shader) { in emit_gs_shader_state_record()
1813 emit_tes_gs_common_params(struct v3dv_job *job, in emit_tes_gs_common_params() argument
1817 cl_emit(&job->indirect, TESSELLATION_GEOMETRY_COMMON_PARAMS, shader) { in emit_tes_gs_common_params()
1848 emit_tes_gs_shader_params(struct v3dv_job *job, in emit_tes_gs_shader_params() argument
1853 cl_emit(&job->indirect, TESSELLATION_GEOMETRY_SHADER_PARAMS, shader) { in emit_tes_gs_shader_params()
1880 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
1881 assert(job); in v3dX()
1914 job->tmu_dirty_rcl |= prog_data_vs_bin->base.tmu_dirty_rcl; in v3dX()
1915 job->tmu_dirty_rcl |= prog_data_vs->base.tmu_dirty_rcl; in v3dX()
1916 job->tmu_dirty_rcl |= prog_data_fs->base.tmu_dirty_rcl; in v3dX()
1918 job->tmu_dirty_rcl |= prog_data_gs_bin->base.tmu_dirty_rcl; in v3dX()
1919 job->tmu_dirty_rcl |= prog_data_gs->base.tmu_dirty_rcl; in v3dX()
1935 v3dv_cl_ensure_space(&job->indirect, in v3dX()
1945 emit_gs_shader_state_record(job, in v3dX()
1952 emit_tes_gs_common_params(job, in v3dX()
1956 emit_tes_gs_shader_params(job, in v3dX()
1961 emit_tes_gs_shader_params(job, in v3dX()
1972 cl_emit_with_prepacked(&job->indirect, GL_SHADER_STATE_RECORD, in v3dX()
2029 cl_emit_with_prepacked(&job->indirect, GL_SHADER_STATE_ATTRIBUTE_RECORD, in v3dX()
2073 cl_emit(&job->indirect, GL_SHADER_STATE_ATTRIBUTE_RECORD, attr) { in v3dX()
2075 attr.address = v3dv_cl_address(job->indirect.bo, 0); in v3dX()
2087 v3dv_cl_ensure_space_with_branch(&job->bcl, in v3dX()
2091 cl_emit_prepacked(&job->bcl, &pipeline->vcm_cache_size); in v3dX()
2094 v3dv_cl_ensure_space_with_branch(&job->bcl, in v3dX()
2099 cl_emit(&job->bcl, GL_SHADER_STATE_INCLUDING_GS, state) { in v3dX()
2100 state.address = v3dv_cl_address(job->indirect.bo, shader_rec_offset); in v3dX()
2104 cl_emit(&job->bcl, GL_SHADER_STATE, state) { in v3dX()
2105 state.address = v3dv_cl_address(job->indirect.bo, shader_rec_offset); in v3dX()
2126 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
2127 assert(job); in v3dX()
2138 &job->bcl, cl_packet_length(BASE_VERTEX_BASE_INSTANCE)); in v3dX()
2141 cl_emit(&job->bcl, BASE_VERTEX_BASE_INSTANCE, base) { in v3dX()
2149 &job->bcl, cl_packet_length(VERTEX_ARRAY_INSTANCED_PRIMS)); in v3dX()
2152 cl_emit(&job->bcl, VERTEX_ARRAY_INSTANCED_PRIMS, prim) { in v3dX()
2160 &job->bcl, cl_packet_length(VERTEX_ARRAY_PRIMS)); in v3dX()
2162 cl_emit(&job->bcl, VERTEX_ARRAY_PRIMS, prim) { in v3dX()
2173 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
2174 assert(job); in v3dX()
2183 &job->bcl, cl_packet_length(INDEX_BUFFER_SETUP)); in v3dX()
2187 cl_emit(&job->bcl, INDEX_BUFFER_SETUP, ib) { in v3dX()
2205 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
2206 assert(job); in v3dX()
2215 &job->bcl, cl_packet_length(BASE_VERTEX_BASE_INSTANCE)); in v3dX()
2218 cl_emit(&job->bcl, BASE_VERTEX_BASE_INSTANCE, base) { in v3dX()
2226 &job->bcl, cl_packet_length(INDEXED_PRIM_LIST)); in v3dX()
2229 cl_emit(&job->bcl, INDEXED_PRIM_LIST, prim) { in v3dX()
2238 &job->bcl, cl_packet_length(INDEXED_INSTANCED_PRIM_LIST)); in v3dX()
2241 cl_emit(&job->bcl, INDEXED_INSTANCED_PRIM_LIST, prim) { in v3dX()
2259 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
2260 assert(job); in v3dX()
2266 &job->bcl, cl_packet_length(INDIRECT_VERTEX_ARRAY_INSTANCED_PRIMS)); in v3dX()
2269 cl_emit(&job->bcl, INDIRECT_VERTEX_ARRAY_INSTANCED_PRIMS, prim) { in v3dX()
2285 struct v3dv_job *job = cmd_buffer->state.job; in v3dX() local
2286 assert(job); in v3dX()
2293 &job->bcl, cl_packet_length(INDIRECT_INDEXED_INSTANCED_PRIM_LIST)); in v3dX()
2296 cl_emit(&job->bcl, INDIRECT_INDEXED_INSTANCED_PRIM_LIST, prim) { in v3dX()