Lines Matching refs:ctx

14 apply_dst_clears(struct zink_context *ctx, const struct pipe_blit_info *info, bool discard_only)
19 zink_fb_clears_apply_or_discard(ctx, info->dst.resource, rect, discard_only);
21 zink_fb_clears_apply_or_discard(ctx, info->dst.resource, zink_rect_from_box(&info->dst.box), discard_only);
25 blit_resolve(struct zink_context *ctx, const struct pipe_blit_info *info, bool *needs_present_readback)
43 ctx->render_condition_active)
49 struct zink_screen *screen = zink_screen(ctx->base.screen);
57 apply_dst_clears(ctx, info, false);
58 zink_fb_clears_apply_region(ctx, info->src.resource, zink_rect_from_box(&info->src.box));
61 *needs_present_readback = zink_kopper_acquire_readback(ctx, src);
63 struct zink_batch *batch = &ctx->batch;
64 zink_resource_setup_transfer_layouts(ctx, src, dst);
66 ctx->batch.state->cmdbuf :
67 zink_get_cmdbuf(ctx, src, dst);
124 blit_native(struct zink_context *ctx, const struct pipe_blit_info *info, bool *needs_present_readback)
133 ctx->render_condition_active)
147 struct zink_screen *screen = zink_screen(ctx->base.screen);
167 apply_dst_clears(ctx, info, false);
168 zink_fb_clears_apply_region(ctx, info->src.resource, zink_rect_from_box(&info->src.box));
171 *needs_present_readback = zink_kopper_acquire_readback(ctx, src);
173 struct zink_batch *batch = &ctx->batch;
174 zink_resource_setup_transfer_layouts(ctx, src, dst);
176 ctx->batch.state->cmdbuf :
177 zink_get_cmdbuf(ctx, src, dst);
268 struct zink_context *ctx = zink_context(pctx);
278 !ctx->render_condition_active)
281 return util_try_blit_via_copy_region(pctx, &new_info, ctx->render_condition_active);
288 struct zink_context *ctx = zink_context(pctx);
293 unlikely(!zink_screen(pctx->screen)->info.have_EXT_conditional_rendering && !zink_check_conditional_render(ctx)))
300 if (!zink_kopper_acquire(ctx, dst, UINT64_MAX))
312 if (blit_resolve(ctx, info, &needs_present_readback))
317 if (blit_native(ctx, info, &needs_present_readback))
325 if (!util_blitter_is_blit_supported(ctx->blitter, info)) {
329 stencil_blit = util_blitter_is_blit_supported(ctx->blitter, &depth_blit);
331 zink_blit_begin(ctx, ZINK_BLIT_SAVE_FB | ZINK_BLIT_SAVE_FS | ZINK_BLIT_SAVE_TEXTURES);
332 util_blitter_blit(ctx->blitter, &depth_blit);
344 zink_fb_clears_apply_region(ctx, info->src.resource, zink_rect_from_box(&info->src.box));
345 needs_present_readback = zink_kopper_acquire_readback(ctx, src);
351 apply_dst_clears(ctx, info, true);
356 zink_blit_begin(ctx, ZINK_BLIT_SAVE_FB | ZINK_BLIT_SAVE_FS | ZINK_BLIT_SAVE_TEXTURES);
363 util_blitter_clear_depth_stencil(ctx->blitter, dst_view, PIPE_CLEAR_STENCIL,
366 zink_blit_begin(ctx, ZINK_BLIT_SAVE_FB | ZINK_BLIT_SAVE_FS | ZINK_BLIT_SAVE_TEXTURES);
367 util_blitter_stencil_fallback(ctx->blitter,
378 util_blitter_blit(ctx->blitter, info);
382 zink_kopper_present_readback(ctx, src);
387 zink_blit_begin(struct zink_context *ctx, enum zink_blit_flags flags)
389 util_blitter_save_vertex_elements(ctx->blitter, ctx->element_state);
390 util_blitter_save_viewport(ctx->blitter, ctx->vp_state.viewport_states);
392 util_blitter_save_vertex_buffer_slot(ctx->blitter, ctx->vertex_buffers);
393 util_blitter_save_vertex_shader(ctx->blitter, ctx->gfx_stages[PIPE_SHADER_VERTEX]);
394 util_blitter_save_tessctrl_shader(ctx->blitter, ctx->gfx_stages[PIPE_SHADER_TESS_CTRL]);
395 util_blitter_save_tesseval_shader(ctx->blitter, ctx->gfx_stages[PIPE_SHADER_TESS_EVAL]);
396 util_blitter_save_geometry_shader(ctx->blitter, ctx->gfx_stages[PIPE_SHADER_GEOMETRY]);
397 util_blitter_save_rasterizer(ctx->blitter, ctx->rast_state);
398 util_blitter_save_so_targets(ctx->blitter, ctx->num_so_targets, ctx->so_targets);
401 util_blitter_save_fragment_constant_buffer_slot(ctx->blitter, ctx->ubos[PIPE_SHADER_FRAGMENT]);
402 util_blitter_save_blend(ctx->blitter, ctx->gfx_pipeline_state.blend_state);
403 util_blitter_save_depth_stencil_alpha(ctx->blitter, ctx->dsa_state);
404 util_blitter_save_stencil_ref(ctx->blitter, &ctx->stencil_ref);
405 util_blitter_save_sample_mask(ctx->blitter, ctx->gfx_pipeline_state.sample_mask, 0);
406 util_blitter_save_scissor(ctx->blitter, ctx->vp_state.scissor_states);
409 util_blitter_save_fragment_shader(ctx->blitter, ctx->gfx_stages[PIPE_SHADER_FRAGMENT]);
413 util_blitter_save_framebuffer(ctx->blitter, &ctx->fb_state);
417 util_blitter_save_fragment_sampler_states(ctx->blitter,
418 ctx->di.num_samplers[PIPE_SHADER_FRAGMENT],
419 (void**)ctx->sampler_states[PIPE_SHADER_FRAGMENT]);
420 util_blitter_save_fragment_sampler_views(ctx->blitter,
421 ctx->di.num_sampler_views[PIPE_SHADER_FRAGMENT],
422 ctx->sampler_views[PIPE_SHADER_FRAGMENT]);
425 if (flags & ZINK_BLIT_NO_COND_RENDER && ctx->render_condition_active)
426 zink_stop_conditional_render(ctx);