• Home
  • Raw
  • Download

Lines Matching refs:sctx

44 void si_blitter_begin(struct si_context *sctx, enum si_blitter_op op)  in si_blitter_begin()  argument
46 util_blitter_save_vertex_shader(sctx->blitter, sctx->vs_shader.cso); in si_blitter_begin()
47 util_blitter_save_tessctrl_shader(sctx->blitter, sctx->tcs_shader.cso); in si_blitter_begin()
48 util_blitter_save_tesseval_shader(sctx->blitter, sctx->tes_shader.cso); in si_blitter_begin()
49 util_blitter_save_geometry_shader(sctx->blitter, sctx->gs_shader.cso); in si_blitter_begin()
50 util_blitter_save_so_targets(sctx->blitter, sctx->streamout.num_targets, in si_blitter_begin()
51 (struct pipe_stream_output_target **)sctx->streamout.targets); in si_blitter_begin()
52 util_blitter_save_rasterizer(sctx->blitter, sctx->queued.named.rasterizer); in si_blitter_begin()
55 util_blitter_save_blend(sctx->blitter, sctx->queued.named.blend); in si_blitter_begin()
56 util_blitter_save_depth_stencil_alpha(sctx->blitter, sctx->queued.named.dsa); in si_blitter_begin()
57 util_blitter_save_stencil_ref(sctx->blitter, &sctx->stencil_ref.state); in si_blitter_begin()
58 util_blitter_save_fragment_shader(sctx->blitter, sctx->ps_shader.cso); in si_blitter_begin()
59 util_blitter_save_sample_mask(sctx->blitter, sctx->sample_mask); in si_blitter_begin()
60 util_blitter_save_scissor(sctx->blitter, &sctx->scissors[0]); in si_blitter_begin()
61 util_blitter_save_window_rectangles(sctx->blitter, sctx->window_rectangles_include, in si_blitter_begin()
62 sctx->num_window_rectangles, sctx->window_rectangles); in si_blitter_begin()
66 util_blitter_save_framebuffer(sctx->blitter, &sctx->framebuffer.state); in si_blitter_begin()
70 sctx->blitter, 2, (void **)sctx->samplers[PIPE_SHADER_FRAGMENT].sampler_states); in si_blitter_begin()
72 util_blitter_save_fragment_sampler_views(sctx->blitter, 2, in si_blitter_begin()
73 sctx->samplers[PIPE_SHADER_FRAGMENT].views); in si_blitter_begin()
77 sctx->render_cond_force_off = true; in si_blitter_begin()
79 if (sctx->screen->dpbb_allowed) { in si_blitter_begin()
80 sctx->dpbb_force_off = true; in si_blitter_begin()
81 si_mark_atom_dirty(sctx, &sctx->atoms.s.dpbb_state); in si_blitter_begin()
85 void si_blitter_end(struct si_context *sctx) in si_blitter_end() argument
87 if (sctx->screen->dpbb_allowed) { in si_blitter_end()
88 sctx->dpbb_force_off = false; in si_blitter_end()
89 si_mark_atom_dirty(sctx, &sctx->atoms.s.dpbb_state); in si_blitter_end()
92 sctx->render_cond_force_off = false; in si_blitter_end()
96 sctx->shader_pointers_dirty |= SI_DESCS_SHADER_MASK(VERTEX); in si_blitter_end()
97 sctx->vertex_buffer_pointer_dirty = sctx->vb_descriptors_buffer != NULL; in si_blitter_end()
98 sctx->vertex_buffer_user_sgprs_dirty = sctx->num_vertex_elements > 0; in si_blitter_end()
99 si_mark_atom_dirty(sctx, &sctx->atoms.s.shader_pointers); in si_blitter_end()
107 static unsigned si_blit_dbcb_copy(struct si_context *sctx, struct si_texture *src, in si_blit_dbcb_copy() argument
117 sctx->dbcb_depth_copy_enabled = true; in si_blit_dbcb_copy()
119 sctx->dbcb_stencil_copy_enabled = true; in si_blit_dbcb_copy()
120 si_mark_atom_dirty(sctx, &sctx->atoms.s.db_render_state); in si_blit_dbcb_copy()
122 assert(sctx->dbcb_depth_copy_enabled || sctx->dbcb_stencil_copy_enabled); in si_blit_dbcb_copy()
124 sctx->decompression_enabled = true; in si_blit_dbcb_copy()
143 zsurf = sctx->b.create_surface(&sctx->b, &src->buffer.b.b, &surf_tmpl); in si_blit_dbcb_copy()
146 cbsurf = sctx->b.create_surface(&sctx->b, &dst->buffer.b.b, &surf_tmpl); in si_blit_dbcb_copy()
149 if (sample != sctx->dbcb_copy_sample) { in si_blit_dbcb_copy()
150 sctx->dbcb_copy_sample = sample; in si_blit_dbcb_copy()
151 si_mark_atom_dirty(sctx, &sctx->atoms.s.db_render_state); in si_blit_dbcb_copy()
154 si_blitter_begin(sctx, SI_DECOMPRESS); in si_blit_dbcb_copy()
155 util_blitter_custom_depth_stencil(sctx->blitter, zsurf, cbsurf, 1 << sample, in si_blit_dbcb_copy()
156 sctx->custom_dsa_flush, 1.0f); in si_blit_dbcb_copy()
157 si_blitter_end(sctx); in si_blit_dbcb_copy()
169 sctx->decompression_enabled = false; in si_blit_dbcb_copy()
170 sctx->dbcb_depth_copy_enabled = false; in si_blit_dbcb_copy()
171 sctx->dbcb_stencil_copy_enabled = false; in si_blit_dbcb_copy()
172 si_mark_atom_dirty(sctx, &sctx->atoms.s.db_render_state); in si_blit_dbcb_copy()
179 static void si_blit_decompress_zs_planes_in_place(struct si_context *sctx, in si_blit_decompress_zs_planes_in_place() argument
192 sctx->db_flush_stencil_inplace = true; in si_blit_decompress_zs_planes_in_place()
194 sctx->db_flush_depth_inplace = true; in si_blit_decompress_zs_planes_in_place()
195 si_mark_atom_dirty(sctx, &sctx->atoms.s.db_render_state); in si_blit_decompress_zs_planes_in_place()
199 sctx->decompression_enabled = true; in si_blit_decompress_zs_planes_in_place()
215 zsurf = sctx->b.create_surface(&sctx->b, &texture->buffer.b.b, &surf_tmpl); in si_blit_decompress_zs_planes_in_place()
217 si_blitter_begin(sctx, SI_DECOMPRESS); in si_blit_decompress_zs_planes_in_place()
218 util_blitter_custom_depth_stencil(sctx->blitter, zsurf, NULL, ~0, sctx->custom_dsa_flush, in si_blit_decompress_zs_planes_in_place()
220 si_blitter_end(sctx); in si_blit_decompress_zs_planes_in_place()
237 sctx->decompression_enabled = false; in si_blit_decompress_zs_planes_in_place()
238 sctx->db_flush_depth_inplace = false; in si_blit_decompress_zs_planes_in_place()
239 sctx->db_flush_stencil_inplace = false; in si_blit_decompress_zs_planes_in_place()
240 si_mark_atom_dirty(sctx, &sctx->atoms.s.db_render_state); in si_blit_decompress_zs_planes_in_place()
246 static void si_blit_decompress_zs_in_place(struct si_context *sctx, struct si_texture *texture, in si_blit_decompress_zs_in_place() argument
254 si_blit_decompress_zs_planes_in_place(sctx, texture, PIPE_MASK_Z | PIPE_MASK_S, both, in si_blit_decompress_zs_in_place()
262 si_blit_decompress_zs_planes_in_place(sctx, texture, PIPE_MASK_Z, levels_z, first_layer, in si_blit_decompress_zs_in_place()
267 si_blit_decompress_zs_planes_in_place(sctx, texture, PIPE_MASK_S, levels_s, first_layer, in si_blit_decompress_zs_in_place()
272 static void si_decompress_depth(struct si_context *sctx, struct si_texture *tex, in si_decompress_depth() argument
303 if (unlikely(sctx->log)) in si_decompress_depth()
304 u_log_printf(sctx->log, in si_decompress_depth()
313 (tex->flushed_depth_texture || si_init_flushed_depth_texture(&sctx->b, &tex->buffer.b.b))) { in si_decompress_depth()
332 fully_copied_levels = si_blit_dbcb_copy(sctx, tex, dst, copy_planes, levels, first_layer, in si_decompress_depth()
348 si_blit_decompress_zs_in_place(sctx, tex, levels_z, levels_s, first_layer, last_layer); in si_decompress_depth()
377 si_make_DB_shader_coherent(sctx, tex->buffer.b.b.nr_samples, inplace_planes & PIPE_MASK_S, in si_decompress_depth()
384 si_make_CB_shader_coherent(sctx, tex->buffer.b.b.nr_samples, false, true /* no DCC */); in si_decompress_depth()
387 static void si_decompress_sampler_depth_textures(struct si_context *sctx, in si_decompress_sampler_depth_textures() argument
407 si_decompress_depth(sctx, tex, sview->is_stencil_sampler ? PIPE_MASK_S : PIPE_MASK_Z, in si_decompress_sampler_depth_textures()
413 static void si_blit_decompress_color(struct si_context *sctx, struct si_texture *tex, in si_blit_decompress_color() argument
427 if (unlikely(sctx->log)) in si_blit_decompress_color()
428 u_log_printf(sctx->log, in si_blit_decompress_color()
434 assert(sctx->chip_class == GFX8); in si_blit_decompress_color()
435 custom_blend = sctx->custom_blend_dcc_decompress; in si_blit_decompress_color()
445 custom_blend = sctx->custom_blend_fmask_decompress; in si_blit_decompress_color()
447 custom_blend = sctx->custom_blend_eliminate_fastclear; in si_blit_decompress_color()
450 sctx->decompression_enabled = true; in si_blit_decompress_color()
467 cbsurf = sctx->b.create_surface(&sctx->b, &tex->buffer.b.b, &surf_tmpl); in si_blit_decompress_color()
470 if (custom_blend == sctx->custom_blend_fmask_decompress || in si_blit_decompress_color()
471 custom_blend == sctx->custom_blend_dcc_decompress) in si_blit_decompress_color()
472 sctx->flags |= SI_CONTEXT_FLUSH_AND_INV_CB; in si_blit_decompress_color()
474 si_blitter_begin(sctx, SI_DECOMPRESS); in si_blit_decompress_color()
475 util_blitter_custom_color(sctx->blitter, cbsurf, custom_blend); in si_blit_decompress_color()
476 si_blitter_end(sctx); in si_blit_decompress_color()
478 if (custom_blend == sctx->custom_blend_fmask_decompress || in si_blit_decompress_color()
479 custom_blend == sctx->custom_blend_dcc_decompress) in si_blit_decompress_color()
480 sctx->flags |= SI_CONTEXT_FLUSH_AND_INV_CB; in si_blit_decompress_color()
492 sctx->decompression_enabled = false; in si_blit_decompress_color()
493 si_make_CB_shader_coherent(sctx, tex->buffer.b.b.nr_samples, vi_dcc_enabled(tex, first_level), in si_blit_decompress_color()
498 si_compute_expand_fmask(&sctx->b, &tex->buffer.b.b); in si_blit_decompress_color()
503 static void si_decompress_color_texture(struct si_context *sctx, struct si_texture *tex, in si_decompress_color_texture() argument
512 si_blit_decompress_color(sctx, tex, first_level, last_level, 0, in si_decompress_color_texture()
517 static void si_decompress_sampler_color_textures(struct si_context *sctx, in si_decompress_sampler_color_textures() argument
534 si_decompress_color_texture(sctx, tex, view->u.tex.first_level, view->u.tex.last_level, in si_decompress_sampler_color_textures()
539 static void si_decompress_image_color_textures(struct si_context *sctx, struct si_images *images) in si_decompress_image_color_textures() argument
555 si_decompress_color_texture(sctx, tex, view->u.tex.level, view->u.tex.level, in si_decompress_image_color_textures()
560 static void si_check_render_feedback_texture(struct si_context *sctx, struct si_texture *tex, in si_check_render_feedback_texture() argument
569 for (unsigned j = 0; j < sctx->framebuffer.state.nr_cbufs; ++j) { in si_check_render_feedback_texture()
572 if (!sctx->framebuffer.state.cbufs[j]) in si_check_render_feedback_texture()
575 surf = (struct si_surface *)sctx->framebuffer.state.cbufs[j]; in si_check_render_feedback_texture()
586 si_texture_disable_dcc(sctx, tex); in si_check_render_feedback_texture()
589 static void si_check_render_feedback_textures(struct si_context *sctx, struct si_samplers *textures) in si_check_render_feedback_textures() argument
605 si_check_render_feedback_texture(sctx, tex, view->u.tex.first_level, view->u.tex.last_level, in si_check_render_feedback_textures()
610 static void si_check_render_feedback_images(struct si_context *sctx, struct si_images *images) in si_check_render_feedback_images() argument
626 si_check_render_feedback_texture(sctx, tex, view->u.tex.level, view->u.tex.level, in si_check_render_feedback_images()
631 static void si_check_render_feedback_resident_textures(struct si_context *sctx) in si_check_render_feedback_resident_textures() argument
633 util_dynarray_foreach (&sctx->resident_tex_handles, struct si_texture_handle *, tex_handle) { in si_check_render_feedback_resident_textures()
643 si_check_render_feedback_texture(sctx, tex, view->u.tex.first_level, view->u.tex.last_level, in si_check_render_feedback_resident_textures()
648 static void si_check_render_feedback_resident_images(struct si_context *sctx) in si_check_render_feedback_resident_images() argument
650 util_dynarray_foreach (&sctx->resident_img_handles, struct si_image_handle *, img_handle) { in si_check_render_feedback_resident_images()
660 si_check_render_feedback_texture(sctx, tex, view->u.tex.level, view->u.tex.level, in si_check_render_feedback_resident_images()
665 static void si_check_render_feedback(struct si_context *sctx) in si_check_render_feedback() argument
667 if (!sctx->need_check_render_feedback) in si_check_render_feedback()
673 if (!si_get_total_colormask(sctx)) in si_check_render_feedback()
677 si_check_render_feedback_images(sctx, &sctx->images[i]); in si_check_render_feedback()
678 si_check_render_feedback_textures(sctx, &sctx->samplers[i]); in si_check_render_feedback()
681 si_check_render_feedback_resident_images(sctx); in si_check_render_feedback()
682 si_check_render_feedback_resident_textures(sctx); in si_check_render_feedback()
684 sctx->need_check_render_feedback = false; in si_check_render_feedback()
687 static void si_decompress_resident_textures(struct si_context *sctx) in si_decompress_resident_textures() argument
689 util_dynarray_foreach (&sctx->resident_tex_needs_color_decompress, struct si_texture_handle *, in si_decompress_resident_textures()
694 si_decompress_color_texture(sctx, tex, view->u.tex.first_level, view->u.tex.last_level, in si_decompress_resident_textures()
698 util_dynarray_foreach (&sctx->resident_tex_needs_depth_decompress, struct si_texture_handle *, in si_decompress_resident_textures()
704 si_decompress_depth(sctx, tex, sview->is_stencil_sampler ? PIPE_MASK_S : PIPE_MASK_Z, in si_decompress_resident_textures()
710 static void si_decompress_resident_images(struct si_context *sctx) in si_decompress_resident_images() argument
712 util_dynarray_foreach (&sctx->resident_img_needs_color_decompress, struct si_image_handle *, in si_decompress_resident_images()
717 si_decompress_color_texture(sctx, tex, view->u.tex.level, view->u.tex.level, in si_decompress_resident_images()
722 void si_decompress_textures(struct si_context *sctx, unsigned shader_mask) in si_decompress_textures() argument
726 if (sctx->blitter->running) in si_decompress_textures()
730 compressed_colortex_counter = p_atomic_read(&sctx->screen->compressed_colortex_counter); in si_decompress_textures()
731 if (compressed_colortex_counter != sctx->last_compressed_colortex_counter) { in si_decompress_textures()
732 sctx->last_compressed_colortex_counter = compressed_colortex_counter; in si_decompress_textures()
733 si_update_needs_color_decompress_masks(sctx); in si_decompress_textures()
737 mask = sctx->shader_needs_decompress_mask & shader_mask; in si_decompress_textures()
741 if (sctx->samplers[i].needs_depth_decompress_mask) { in si_decompress_textures()
742 si_decompress_sampler_depth_textures(sctx, &sctx->samplers[i]); in si_decompress_textures()
744 if (sctx->samplers[i].needs_color_decompress_mask) { in si_decompress_textures()
745 si_decompress_sampler_color_textures(sctx, &sctx->samplers[i]); in si_decompress_textures()
747 if (sctx->images[i].needs_color_decompress_mask) { in si_decompress_textures()
748 si_decompress_image_color_textures(sctx, &sctx->images[i]); in si_decompress_textures()
753 if (sctx->uses_bindless_samplers) in si_decompress_textures()
754 si_decompress_resident_textures(sctx); in si_decompress_textures()
755 if (sctx->uses_bindless_images) in si_decompress_textures()
756 si_decompress_resident_images(sctx); in si_decompress_textures()
758 if (sctx->ps_uses_fbfetch) { in si_decompress_textures()
759 struct pipe_surface *cb0 = sctx->framebuffer.state.cbufs[0]; in si_decompress_textures()
760 si_decompress_color_texture(sctx, (struct si_texture *)cb0->texture, in si_decompress_textures()
764 si_check_render_feedback(sctx); in si_decompress_textures()
766 if (sctx->cs_shader_state.program->sel.info.uses_bindless_samplers) in si_decompress_textures()
767 si_decompress_resident_textures(sctx); in si_decompress_textures()
768 if (sctx->cs_shader_state.program->sel.info.uses_bindless_images) in si_decompress_textures()
769 si_decompress_resident_images(sctx); in si_decompress_textures()
780 struct si_context *sctx = (struct si_context *)ctx; in si_decompress_subresource() local
793 if (sctx->framebuffer.state.zsbuf && sctx->framebuffer.state.zsbuf->u.tex.level == level && in si_decompress_subresource()
794 sctx->framebuffer.state.zsbuf->texture == tex) in si_decompress_subresource()
795 si_update_fb_dirtiness_after_rendering(sctx); in si_decompress_subresource()
797 si_decompress_depth(sctx, stex, planes, level, level, first_layer, last_layer); in si_decompress_subresource()
804 for (unsigned i = 0; i < sctx->framebuffer.state.nr_cbufs; i++) { in si_decompress_subresource()
805 if (sctx->framebuffer.state.cbufs[i] && in si_decompress_subresource()
806 sctx->framebuffer.state.cbufs[i]->u.tex.level == level && in si_decompress_subresource()
807 sctx->framebuffer.state.cbufs[i]->texture == tex) { in si_decompress_subresource()
808 si_update_fb_dirtiness_after_rendering(sctx); in si_decompress_subresource()
813 si_blit_decompress_color(sctx, stex, level, level, first_layer, last_layer, false, false); in si_decompress_subresource()
827 static void si_use_compute_copy_for_float_formats(struct si_context *sctx, in si_use_compute_copy_for_float_formats() argument
845 si_texture_disable_dcc(sctx, tex); in si_use_compute_copy_for_float_formats()
854 struct si_context *sctx = (struct si_context *)ctx; in si_resource_copy_region() local
865 si_copy_buffer(sctx, dst, src, dstx, src_box->x, src_box->width); in si_resource_copy_region()
869 si_use_compute_copy_for_float_formats(sctx, dst, dst_level); in si_resource_copy_region()
876 si_compute_copy_image(sctx, dst, dst_level, src, src_level, dstx, dsty, dstz, in si_resource_copy_region()
896 util_blitter_default_src_texture(sctx->blitter, &src_templ, src, src_level); in si_resource_copy_region()
926 } else if (!util_blitter_is_copy_supported(sctx->blitter, dst, src)) { in si_resource_copy_region()
981 vi_disable_dcc_if_incompatible_format(sctx, dst, dst_level, dst_templ.format); in si_resource_copy_region()
982 vi_disable_dcc_if_incompatible_format(sctx, src, src_level, src_templ.format); in si_resource_copy_region()
996 si_blitter_begin(sctx, SI_COPY); in si_resource_copy_region()
997 util_blitter_blit_generic(sctx->blitter, dst_view, &dstbox, src_view, src_box, src_width0, in si_resource_copy_region()
999 si_blitter_end(sctx); in si_resource_copy_region()
1005 static void si_do_CB_resolve(struct si_context *sctx, const struct pipe_blit_info *info, in si_do_CB_resolve() argument
1010 sctx->flags |= SI_CONTEXT_FLUSH_AND_INV_CB; in si_do_CB_resolve()
1013 sctx, SI_COLOR_RESOLVE | (info->render_condition_enable ? 0 : SI_DISABLE_RENDER_COND)); in si_do_CB_resolve()
1014 util_blitter_custom_resolve_color(sctx->blitter, dst, dst_level, dst_z, info->src.resource, in si_do_CB_resolve()
1015 info->src.box.z, ~0, sctx->custom_blend_resolve, format); in si_do_CB_resolve()
1016 si_blitter_end(sctx); in si_do_CB_resolve()
1019 si_make_CB_shader_coherent(sctx, 1, false, true /* no DCC */); in si_do_CB_resolve()
1024 struct si_context *sctx = (struct si_context *)ctx; in do_hardware_msaa_resolve() local
1080 if (!vi_dcc_clear_level(sctx, dst, info->dst.level, DCC_UNCOMPRESSED)) in do_hardware_msaa_resolve()
1087 si_do_CB_resolve(sctx, info, info->dst.resource, info->dst.level, info->dst.box.z, format); in do_hardware_msaa_resolve()
1108 if (sctx->chip_class <= GFX8 && src->surface.micro_tile_mode == RADEON_MICRO_MODE_DISPLAY) in do_hardware_msaa_resolve()
1122 si_do_CB_resolve(sctx, info, tmp, 0, 0, format); in do_hardware_msaa_resolve()
1129 si_blitter_begin(sctx, SI_BLIT | (info->render_condition_enable ? 0 : SI_DISABLE_RENDER_COND)); in do_hardware_msaa_resolve()
1130 util_blitter_blit(sctx->blitter, &blit); in do_hardware_msaa_resolve()
1131 si_blitter_end(sctx); in do_hardware_msaa_resolve()
1139 struct si_context *sctx = (struct si_context *)ctx; in si_blit() local
1153 sctx->dma_copy(ctx, info->dst.resource, info->dst.level, info->dst.box.x, info->dst.box.y, in si_blit()
1158 assert(util_blitter_is_blit_supported(sctx->blitter, info)); in si_blit()
1162 vi_disable_dcc_if_incompatible_format(sctx, info->src.resource, info->src.level, in si_blit()
1164 vi_disable_dcc_if_incompatible_format(sctx, info->dst.resource, info->dst.level, in si_blit()
1169 if (sctx->screen->debug_flags & DBG(FORCE_SDMA) && util_try_blit_via_copy_region(ctx, info)) in si_blit()
1172 si_blitter_begin(sctx, SI_BLIT | (info->render_condition_enable ? 0 : SI_DISABLE_RENDER_COND)); in si_blit()
1173 util_blitter_blit(sctx->blitter, info); in si_blit()
1174 si_blitter_end(sctx); in si_blit()
1181 struct si_context *sctx = (struct si_context *)ctx; in si_generate_mipmap() local
1184 if (!util_blitter_is_copy_supported(sctx->blitter, tex, tex)) in si_generate_mipmap()
1189 vi_disable_dcc_if_incompatible_format(sctx, tex, base_level, format); in si_generate_mipmap()
1196 sctx->generate_mipmap_for_depth = stex->is_depth; in si_generate_mipmap()
1198 si_blitter_begin(sctx, SI_BLIT | SI_DISABLE_RENDER_COND); in si_generate_mipmap()
1199 util_blitter_generate_mipmap(sctx->blitter, tex, format, base_level, last_level, first_layer, in si_generate_mipmap()
1201 si_blitter_end(sctx); in si_generate_mipmap()
1203 sctx->generate_mipmap_for_depth = false; in si_generate_mipmap()
1209 struct si_context *sctx = (struct si_context *)ctx; in si_flush_resource() local
1221 si_blit_decompress_color(sctx, tex, 0, res->last_level, 0, util_max_layer(res, 0), in si_flush_resource()
1225 si_retile_dcc(sctx, tex); in si_flush_resource()
1245 for (unsigned i = 0; i < sctx->framebuffer.state.nr_cbufs; i++) { in si_flush_resource()
1246 if (sctx->framebuffer.state.cbufs[i] && in si_flush_resource()
1247 sctx->framebuffer.state.cbufs[i]->texture == res) { in si_flush_resource()
1261 void si_decompress_dcc(struct si_context *sctx, struct si_texture *tex) in si_decompress_dcc() argument
1266 if (!tex->surface.dcc_offset || !sctx->has_graphics) in si_decompress_dcc()
1269 if (sctx->chip_class == GFX8) { in si_decompress_dcc()
1270 si_blit_decompress_color(sctx, tex, 0, tex->buffer.b.b.last_level, 0, in si_decompress_dcc()
1282 si_compute_copy_image(sctx, ptex, level, ptex, level, 0, 0, 0, &box, in si_decompress_dcc()
1288 si_clear_buffer(sctx, ptex, tex->surface.dcc_offset, in si_decompress_dcc()
1294 void si_init_blit_functions(struct si_context *sctx) in si_init_blit_functions() argument
1296 sctx->b.resource_copy_region = si_resource_copy_region; in si_init_blit_functions()
1298 if (sctx->has_graphics) { in si_init_blit_functions()
1299 sctx->b.blit = si_blit; in si_init_blit_functions()
1300 sctx->b.flush_resource = si_flush_resource; in si_init_blit_functions()
1301 sctx->b.generate_mipmap = si_generate_mipmap; in si_init_blit_functions()