• Home
  • Raw
  • Download

Lines Matching refs:tex

134       surf_tmpl.u.tex.level = level;  in si_blit_dbcb_copy()
140 surf_tmpl.u.tex.first_layer = layer; in si_blit_dbcb_copy()
141 surf_tmpl.u.tex.last_layer = layer; in si_blit_dbcb_copy()
204 surf_tmpl.u.tex.level = level; in si_blit_decompress_zs_planes_in_place()
212 surf_tmpl.u.tex.first_layer = layer; in si_blit_decompress_zs_planes_in_place()
213 surf_tmpl.u.tex.last_layer = layer; in si_blit_decompress_zs_planes_in_place()
272 static void si_decompress_depth(struct si_context *sctx, struct si_texture *tex, in si_decompress_depth() argument
283 levels_z = level_mask & tex->dirty_level_mask; in si_decompress_depth()
286 if (si_can_sample_zs(tex, false)) in si_decompress_depth()
293 levels_s = level_mask & tex->stencil_dirty_level_mask; in si_decompress_depth()
296 if (si_can_sample_zs(tex, true)) in si_decompress_depth()
313 (tex->flushed_depth_texture || si_init_flushed_depth_texture(&sctx->b, &tex->buffer.b.b))) { in si_decompress_depth()
314 struct si_texture *dst = tex->flushed_depth_texture; in si_decompress_depth()
318 assert(tex->flushed_depth_texture); in si_decompress_depth()
332 fully_copied_levels = si_blit_dbcb_copy(sctx, tex, dst, copy_planes, levels, first_layer, in si_decompress_depth()
333 last_layer, 0, u_max_sample(&tex->buffer.b.b)); in si_decompress_depth()
336 tex->dirty_level_mask &= ~fully_copied_levels; in si_decompress_depth()
338 tex->stencil_dirty_level_mask &= ~fully_copied_levels; in si_decompress_depth()
342 bool has_htile = si_htile_enabled(tex, first_level, inplace_planes); in si_decompress_depth()
343 bool tc_compat_htile = vi_tc_compat_htile_enabled(tex, first_level, inplace_planes); 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()
357 tex->dirty_level_mask &= ~levels_z; in si_decompress_depth()
359 tex->stencil_dirty_level_mask &= ~levels_s; in si_decompress_depth()
370 tex->surface.flags & RADEON_SURF_TC_COMPATIBLE_HTILE && in si_decompress_depth()
371 (inplace_planes & PIPE_MASK_Z || !tex->htile_stencil_disabled)) in si_decompress_depth()
372 tex->enable_tc_compatible_htile_next_clear = true; 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()
383 if (copy_planes && tex->buffer.b.b.nr_samples > 1) 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()
396 struct si_texture *tex; in si_decompress_sampler_depth_textures() local
404 tex = (struct si_texture *)view->texture; in si_decompress_sampler_depth_textures()
405 assert(tex->db_compatible); in si_decompress_sampler_depth_textures()
407 si_decompress_depth(sctx, tex, sview->is_stencil_sampler ? PIPE_MASK_S : PIPE_MASK_Z, in si_decompress_sampler_depth_textures()
408 view->u.tex.first_level, view->u.tex.last_level, 0, in si_decompress_sampler_depth_textures()
409 util_max_layer(&tex->buffer.b.b, view->u.tex.first_level)); 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
423 level_mask &= tex->dirty_level_mask; in si_blit_decompress_color()
437 assert(vi_dcc_enabled(tex, first_level)); in si_blit_decompress_color()
441 if (!vi_dcc_enabled(tex, i)) in si_blit_decompress_color()
444 } else if (tex->surface.fmask_size) { in si_blit_decompress_color()
457 max_layer = util_max_layer(&tex->buffer.b.b, level); in si_blit_decompress_color()
463 surf_tmpl.format = tex->buffer.b.b.format; in si_blit_decompress_color()
464 surf_tmpl.u.tex.level = level; in si_blit_decompress_color()
465 surf_tmpl.u.tex.first_layer = layer; in si_blit_decompress_color()
466 surf_tmpl.u.tex.last_layer = layer; in si_blit_decompress_color()
467 cbsurf = sctx->b.create_surface(&sctx->b, &tex->buffer.b.b, &surf_tmpl); in si_blit_decompress_color()
488 tex->dirty_level_mask &= ~(1 << level); 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()
494 tex->surface.u.gfx9.dcc.pipe_aligned); in si_blit_decompress_color()
497 if (need_fmask_expand && tex->surface.fmask_offset && !tex->fmask_is_identity) { in si_blit_decompress_color()
498 si_compute_expand_fmask(&sctx->b, &tex->buffer.b.b); in si_blit_decompress_color()
499 tex->fmask_is_identity = true; 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
508 if (!tex->cmask_buffer && !tex->surface.fmask_size && in si_decompress_color_texture()
509 !vi_dcc_enabled(tex, first_level)) in si_decompress_color_texture()
512 si_blit_decompress_color(sctx, tex, first_level, last_level, 0, in si_decompress_color_texture()
513 util_max_layer(&tex->buffer.b.b, first_level), false, in si_decompress_color_texture()
525 struct si_texture *tex; in si_decompress_sampler_color_textures() local
532 tex = (struct si_texture *)view->texture; in si_decompress_sampler_color_textures()
534 si_decompress_color_texture(sctx, tex, view->u.tex.first_level, view->u.tex.last_level, in si_decompress_sampler_color_textures()
546 struct si_texture *tex; in si_decompress_image_color_textures() local
553 tex = (struct si_texture *)view->resource; in si_decompress_image_color_textures()
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
566 if (!vi_dcc_enabled(tex, first_level)) in si_check_render_feedback_texture()
577 if (tex == (struct si_texture *)surf->base.texture && surf->base.u.tex.level >= first_level && in si_check_render_feedback_texture()
578 surf->base.u.tex.level <= last_level && surf->base.u.tex.first_layer <= last_layer && in si_check_render_feedback_texture()
579 surf->base.u.tex.last_layer >= first_layer) { in si_check_render_feedback_texture()
586 si_texture_disable_dcc(sctx, tex); in si_check_render_feedback_texture()
595 struct si_texture *tex; in si_check_render_feedback_textures() local
603 tex = (struct si_texture *)view->texture; in si_check_render_feedback_textures()
605 si_check_render_feedback_texture(sctx, tex, view->u.tex.first_level, view->u.tex.last_level, in si_check_render_feedback_textures()
606 view->u.tex.first_layer, view->u.tex.last_layer); in si_check_render_feedback_textures()
616 struct si_texture *tex; in si_check_render_feedback_images() local
624 tex = (struct si_texture *)view->resource; in si_check_render_feedback_images()
626 si_check_render_feedback_texture(sctx, tex, view->u.tex.level, view->u.tex.level, in si_check_render_feedback_images()
627 view->u.tex.first_layer, view->u.tex.last_layer); in si_check_render_feedback_images()
635 struct si_texture *tex; in si_check_render_feedback_resident_textures() local
641 tex = (struct si_texture *)view->texture; 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()
644 view->u.tex.first_layer, view->u.tex.last_layer); in si_check_render_feedback_resident_textures()
652 struct si_texture *tex; in si_check_render_feedback_resident_images() local
658 tex = (struct si_texture *)view->resource; 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()
661 view->u.tex.first_layer, view->u.tex.last_layer); in si_check_render_feedback_resident_images()
692 struct si_texture *tex = (struct si_texture *)view->texture; in si_decompress_resident_textures() local
694 si_decompress_color_texture(sctx, tex, view->u.tex.first_level, view->u.tex.last_level, in si_decompress_resident_textures()
702 struct si_texture *tex = (struct si_texture *)view->texture; in si_decompress_resident_textures() local
704 si_decompress_depth(sctx, tex, sview->is_stencil_sampler ? PIPE_MASK_S : PIPE_MASK_Z, in si_decompress_resident_textures()
705 view->u.tex.first_level, view->u.tex.last_level, 0, in si_decompress_resident_textures()
706 util_max_layer(&tex->buffer.b.b, view->u.tex.first_level)); in si_decompress_resident_textures()
715 struct si_texture *tex = (struct si_texture *)view->resource; in si_decompress_resident_images() local
717 si_decompress_color_texture(sctx, tex, view->u.tex.level, view->u.tex.level, in si_decompress_resident_images()
761 cb0->u.tex.first_layer, cb0->u.tex.last_layer, false); in si_decompress_textures()
777 void si_decompress_subresource(struct pipe_context *ctx, struct pipe_resource *tex, unsigned planes, in si_decompress_subresource() argument
781 struct si_texture *stex = (struct si_texture *)tex; in si_decompress_subresource()
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()
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()
830 struct si_texture *tex = (struct si_texture *)texture; in si_use_compute_copy_for_float_formats() local
843 if (vi_dcc_enabled(tex, level) && in si_use_compute_copy_for_float_formats()
845 si_texture_disable_dcc(sctx, tex); in si_use_compute_copy_for_float_formats()
1177 static bool si_generate_mipmap(struct pipe_context *ctx, struct pipe_resource *tex, in si_generate_mipmap() argument
1182 struct si_texture *stex = (struct si_texture *)tex; in si_generate_mipmap()
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()
1190 si_decompress_subresource(ctx, tex, PIPE_MASK_RGBAZS, base_level, first_layer, last_layer); in si_generate_mipmap()
1199 util_blitter_generate_mipmap(sctx->blitter, tex, format, base_level, last_level, first_layer, in si_generate_mipmap()
1210 struct si_texture *tex = (struct si_texture *)res; in si_flush_resource() local
1213 assert(!tex->dcc_separate_buffer || tex->dcc_gather_statistics); in si_flush_resource()
1217 if (tex->dcc_separate_buffer && !tex->separate_dcc_dirty) in si_flush_resource()
1220 if (!tex->is_depth && (tex->cmask_buffer || vi_dcc_enabled(tex, 0))) { in si_flush_resource()
1221 si_blit_decompress_color(sctx, tex, 0, res->last_level, 0, util_max_layer(res, 0), in si_flush_resource()
1222 tex->dcc_separate_buffer != NULL, false); in si_flush_resource()
1224 if (tex->surface.display_dcc_offset && tex->displayable_dcc_dirty) { in si_flush_resource()
1225 si_retile_dcc(sctx, tex); in si_flush_resource()
1226 tex->displayable_dcc_dirty = false; in si_flush_resource()
1231 if (tex->dcc_gather_statistics) { in si_flush_resource()
1232 bool separate_dcc_dirty = tex->separate_dcc_dirty; in si_flush_resource()
1255 tex->separate_dcc_dirty = false; in si_flush_resource()
1256 vi_separate_dcc_process_and_reset_stats(ctx, tex); 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()
1270 si_blit_decompress_color(sctx, tex, 0, tex->buffer.b.b.last_level, 0, in si_decompress_dcc()
1271 util_max_layer(&tex->buffer.b.b, 0), true, false); in si_decompress_dcc()
1273 struct pipe_resource *ptex = &tex->buffer.b.b; in si_decompress_dcc()
1276 for (unsigned level = 0; level < tex->surface.num_dcc_levels; level++) { in si_decompress_dcc()
1288 si_clear_buffer(sctx, ptex, tex->surface.dcc_offset, in si_decompress_dcc()
1289 tex->surface.dcc_size, &clear_value, 4, in si_decompress_dcc()