Lines Matching refs:rctx

55 	struct r600_context *rctx = (struct r600_context *)ctx;
57 if (rctx->cmd_buf_is_compute) {
58 rctx->b.gfx.flush(rctx, PIPE_FLUSH_ASYNC, NULL);
59 rctx->cmd_buf_is_compute = false;
62 util_blitter_save_vertex_buffer_slot(rctx->blitter, rctx->vertex_buffer_state.vb);
63 util_blitter_save_vertex_elements(rctx->blitter, rctx->vertex_fetch_shader.cso);
64 util_blitter_save_vertex_shader(rctx->blitter, rctx->vs_shader);
65 util_blitter_save_geometry_shader(rctx->blitter, rctx->gs_shader);
66 util_blitter_save_tessctrl_shader(rctx->blitter, rctx->tcs_shader);
67 util_blitter_save_tesseval_shader(rctx->blitter, rctx->tes_shader);
68 util_blitter_save_so_targets(rctx->blitter, rctx->b.streamout.num_targets,
69 (struct pipe_stream_output_target**)rctx->b.streamout.targets);
70 util_blitter_save_rasterizer(rctx->blitter, rctx->rasterizer_state.cso);
73 util_blitter_save_viewport(rctx->blitter, &rctx->b.viewports.states[0]);
74 util_blitter_save_scissor(rctx->blitter, &rctx->b.scissors.states[0]);
75 util_blitter_save_fragment_shader(rctx->blitter, rctx->ps_shader);
76 util_blitter_save_blend(rctx->blitter, rctx->blend_state.cso);
77 util_blitter_save_depth_stencil_alpha(rctx->blitter, rctx->dsa_state.cso);
78 util_blitter_save_stencil_ref(rctx->blitter, &rctx->stencil_ref.pipe_state);
79 util_blitter_save_sample_mask(rctx->blitter, rctx->sample_mask.sample_mask, rctx->ps_iter_samples);
80 util_blitter_save_fragment_constant_buffer_slot(rctx->blitter,
81 &rctx->constbuf_state[PIPE_SHADER_FRAGMENT].cb[0]);
85 util_blitter_save_framebuffer(rctx->blitter, &rctx->framebuffer.state);
89 rctx->blitter, util_last_bit(rctx->samplers[PIPE_SHADER_FRAGMENT].states.enabled_mask),
90 (void**)rctx->samplers[PIPE_SHADER_FRAGMENT].states.states);
93 rctx->blitter, util_last_bit(rctx->samplers[PIPE_SHADER_FRAGMENT].views.enabled_mask),
94 (struct pipe_sampler_view**)rctx->samplers[PIPE_SHADER_FRAGMENT].views.views);
98 rctx->b.render_cond_force_off = true;
103 struct r600_context *rctx = (struct r600_context *)ctx;
105 rctx->b.render_cond_force_off = false;
120 struct r600_context *rctx = (struct r600_context *)ctx;
136 if (rctx->b.gfx_level == R600 && max_sample > 0) {
141 if (rctx->b.family == CHIP_RV610 || rctx->b.family == CHIP_RV630 ||
142 rctx->b.family == CHIP_RV620 || rctx->b.family == CHIP_RV635)
148 rctx->db_misc_state.flush_depthstencil_through_cb = true;
149 rctx->db_misc_state.copy_depth = util_format_has_depth(desc);
150 rctx->db_misc_state.copy_stencil = util_format_has_stencil(desc);
151 rctx->db_misc_state.copy_sample = first_sample;
152 r600_mark_atom_dirty(rctx, &rctx->db_misc_state.atom);
167 if (sample != rctx->db_misc_state.copy_sample) {
168 rctx->db_misc_state.copy_sample = sample;
169 r600_mark_atom_dirty(rctx, &rctx->db_misc_state.atom);
184 util_blitter_custom_depth_stencil(rctx->blitter, zsurf, cbsurf, 1 << sample,
185 rctx->custom_dsa_flush, depth);
203 rctx->db_misc_state.flush_depthstencil_through_cb = false;
204 r600_mark_atom_dirty(rctx, &rctx->db_misc_state.atom);
207 static void r600_blit_decompress_depth_in_place(struct r600_context *rctx,
219 rctx->db_misc_state.flush_stencil_inplace = true;
222 rctx->db_misc_state.flush_depth_inplace = true;
225 r600_mark_atom_dirty(rctx, &rctx->db_misc_state.atom);
244 zsurf = rctx->b.b.create_surface(&rctx->b.b, &texture->resource.b.b, &surf_tmpl);
246 r600_blitter_begin(&rctx->b.b, R600_DECOMPRESS);
247 util_blitter_custom_depth_stencil(rctx->blitter, zsurf, NULL, ~0,
248 rctx->custom_dsa_flush, 1.0f);
249 r600_blitter_end(&rctx->b.b);
262 rctx->db_misc_state.flush_depth_inplace = false;
263 rctx->db_misc_state.flush_stencil_inplace = false;
264 r600_mark_atom_dirty(rctx, &rctx->db_misc_state.atom);
267 void r600_decompress_depth_textures(struct r600_context *rctx,
288 r600_blit_decompress_depth_in_place(rctx, tex,
293 r600_blit_decompress_depth(&rctx->b.b, tex, NULL,
301 void r600_decompress_depth_images(struct r600_context *rctx,
320 r600_blit_decompress_depth_in_place(rctx, tex,
326 r600_blit_decompress_depth(&rctx->b.b, tex, NULL,
340 struct r600_context *rctx = (struct r600_context *)ctx;
365 util_blitter_custom_color(rctx->blitter, cbsurf,
366 rtex->fmask.size ? rctx->custom_blend_decompress : rctx->custom_blend_fastclear);
380 void r600_decompress_color_textures(struct r600_context *rctx,
398 r600_blit_decompress_color(&rctx->b.b, tex,
404 void r600_decompress_color_images(struct r600_context *rctx,
422 r600_blit_decompress_color(&rctx->b.b, tex,
438 struct r600_context *rctx = (struct r600_context *)ctx;
443 r600_blit_decompress_depth_in_place(rctx, rtex, false,
447 r600_blit_decompress_depth_in_place(rctx, rtex, true,
472 struct r600_context *rctx = (struct r600_context *)ctx;
473 struct pipe_framebuffer_state *fb = &rctx->framebuffer.state;
475 if (buffers & PIPE_CLEAR_COLOR && rctx->b.gfx_level >= EVERGREEN) {
476 evergreen_do_fast_color_clear(&rctx->b, fb, &rctx->framebuffer.atom,
518 r600_mark_atom_dirty(rctx, &rctx->db_state.atom);
520 rctx->db_misc_state.htile_clear = true;
521 r600_mark_atom_dirty(rctx, &rctx->db_misc_state.atom);
526 util_blitter_clear(rctx->blitter, fb->width, fb->height,
533 if (rctx->db_misc_state.htile_clear) {
534 rctx->db_misc_state.htile_clear = false;
535 r600_mark_atom_dirty(rctx, &rctx->db_misc_state.atom);
546 struct r600_context *rctx = (struct r600_context *)ctx;
550 util_blitter_clear_render_target(rctx->blitter, dst, color,
564 struct r600_context *rctx = (struct r600_context *)ctx;
568 util_blitter_clear_depth_stencil(rctx->blitter, dst, clear_flags, depth, stencil,
576 struct r600_context *rctx = (struct r600_context*)ctx;
578 if (rctx->screen->b.has_cp_dma)
579 r600_cp_dma_copy_buffer(rctx, dst, dstx, src, src_box->x, src_box->width);
595 struct r600_context *rctx = (struct r600_context*)ctx;
596 struct compute_memory_pool *pool = rctx->screen->global_pool;
641 struct r600_context *rctx = (struct r600_context*)ctx;
643 if (rctx->screen->b.has_cp_dma &&
644 rctx->b.gfx_level >= EVERGREEN &&
646 evergreen_cp_dma_clear_buffer(rctx, dst, offset, size, value, coher);
647 } else if (rctx->screen->b.has_streamout && offset % 4 == 0 && size % 4 == 0) {
652 util_blitter_clear_buffer(rctx->blitter, dst, offset, size,
656 uint32_t *map = r600_buffer_map_sync_with_rings(&rctx->b, r600_resource(dst),
673 struct r600_context *rctx = (struct r600_context *)ctx;
708 util_blitter_default_src_texture(rctx->blitter, &src_templ, src, src_level);
739 } else if (!util_blitter_is_copy_supported(rctx->blitter, dst, src)) {
792 if (rctx->b.gfx_level >= EVERGREEN) {
806 util_blitter_blit_generic(rctx->blitter, dst_view, &dstbox,
819 struct r600_context *rctx = (struct r600_context*)ctx;
825 rctx->b.gfx_level == CAYMAN ? ~0 :
860 util_blitter_custom_resolve_color(rctx->blitter,
864 sample_mask, rctx->custom_blend_resolve,
890 util_blitter_custom_resolve_color(rctx->blitter, tmp, 0, 0,
892 sample_mask, rctx->custom_blend_resolve,
903 util_blitter_blit(rctx->blitter, &blit);
913 struct r600_context *rctx = (struct r600_context*)ctx;
928 rctx->b.dma_copy &&
929 util_can_blit_via_copy_region(info, false, rctx->b.render_cond != NULL)) {
930 rctx->b.dma_copy(ctx, info->dst.resource, info->dst.level,
938 assert(util_blitter_is_blit_supported(rctx->blitter, info));
948 if (rctx->screen->b.debug_flags & DBG_FORCE_DMA &&
949 util_try_blit_via_copy_region(ctx, info, rctx->b.render_cond != NULL))
954 util_blitter_blit(rctx->blitter, info);
971 void r600_init_blit_functions(struct r600_context *rctx)
973 rctx->b.b.clear = r600_clear;
974 rctx->b.b.clear_render_target = r600_clear_render_target;
975 rctx->b.b.clear_depth_stencil = r600_clear_depth_stencil;
976 rctx->b.b.resource_copy_region = r600_resource_copy_region;
977 rctx->b.b.blit = r600_blit;
978 rctx->b.b.flush_resource = r600_flush_resource;
979 rctx->b.clear_buffer = r600_clear_buffer;
980 rctx->b.blit_decompress_depth = r600_blit_decompress_depth;