diff --git a/src/panfrost/lib/pan_cs.c b/src/panfrost/lib/pan_cs.c index b98a1da3418..73cb74340a3 100644 --- a/src/panfrost/lib/pan_cs.c +++ b/src/panfrost/lib/pan_cs.c @@ -575,6 +575,10 @@ pan_emit_bifrost_mfbd_params(const struct panfrost_device *dev, pan_section_pack(fbd, MULTI_TARGET_FRAMEBUFFER, BIFROST_PARAMETERS, params) { params.sample_locations = panfrost_sample_positions(dev, pan_sample_pattern(fb->nr_samples)); + params.pre_frame_0 = fb->bifrost.pre_post.modes[0]; + params.pre_frame_1 = fb->bifrost.pre_post.modes[1]; + params.post_frame = fb->bifrost.pre_post.modes[2]; + params.frame_shader_dcds = fb->bifrost.pre_post.dcds.gpu; } } diff --git a/src/panfrost/lib/pan_cs.h b/src/panfrost/lib/pan_cs.h index 9507f4c6413..8f5db219014 100644 --- a/src/panfrost/lib/pan_cs.h +++ b/src/panfrost/lib/pan_cs.h @@ -93,6 +93,13 @@ struct pan_tls_info { } wls; }; +struct pan_fb_bifrost_info { + struct { + struct panfrost_ptr dcds; + enum mali_pre_post_frame_shader_mode modes[3]; + } pre_post; +}; + struct pan_fb_info { unsigned width, height; struct { @@ -107,6 +114,10 @@ struct pan_fb_info { unsigned stride; mali_ptr base; } tile_map; + + union { + struct pan_fb_bifrost_info bifrost; + }; }; unsigned