struct mali_render_target *rts,
unsigned rt_count)
{
+ struct panfrost_context *ctx = batch->ctx;
+ struct pipe_context *gallium = (struct pipe_context *) ctx;
+ struct panfrost_device *dev = pan_device(gallium->screen);
+
for (unsigned i = 0; i < rt_count; ++i) {
if (!(batch->clear & (PIPE_CLEAR_COLOR0 << i)))
continue;
if (batch->clear & PIPE_CLEAR_STENCIL) {
fb->clear_stencil = batch->clear_stencil;
}
+
+ if (dev->quirks & IS_BIFROST) {
+ fbx->clear_color_1 = batch->clear_color[0][0];
+ fbx->clear_color_2 = 0xc0000000 | (fbx->clear_color_1 & 0xffff); /* WTF? */
+ }
}
static void
pandecode_log("},\n");
}
- if (fbx->zero3 || fbx->zero4) {
+ if (fbx->clear_color_1 | fbx->clear_color_2) {
+ pandecode_prop("clear_color_1 = 0x%" PRIx32, fbx->clear_color_1);
+ pandecode_prop("clear_color_2 = 0x%" PRIx32, fbx->clear_color_2);
+ }
+
+ if (fbx->zero3) {
pandecode_msg("XXX: fb_extra zeros tripped\n");
pandecode_prop("zero3 = 0x%" PRIx64, fbx->zero3);
- pandecode_prop("zero4 = 0x%" PRIx64, fbx->zero4);
}
pandecode_indent--;