OUT_CS_REG(R300_RB3D_CMASK_OFFSET0, 0);
OUT_CS_REG(R300_RB3D_CMASK_PITCH0, surf->pitch_cmask);
OUT_CS_REG(R300_RB3D_COLOR_CLEAR_VALUE, r300->color_clear_value);
+ if (r300->screen->caps.is_r500 && r300->screen->info.drm_minor >= 29) {
+ OUT_CS_REG_SEQ(R500_RB3D_COLOR_CLEAR_VALUE_AR, 2);
+ OUT_CS(r300->color_clear_value_ar);
+ OUT_CS(r300->color_clear_value_gb);
+ }
}
}
if (r300->cmask_in_use) {
r300->fb_state.size += 6;
+ if (r300->screen->caps.is_r500 && r300->screen->info.drm_minor >= 29) {
+ r300->fb_state.size += 3;
+ }
}
/* The size of the rest of atoms stays the same. */
return;
}
- if (tex->b.b.format == PIPE_FORMAT_R16G16B16A16_FLOAT) {
+ /* FP16 AA needs R500 and a fairly new DRM. */
+ if (tex->b.b.format == PIPE_FORMAT_R16G16B16A16_FLOAT &&
+ (!screen->caps.is_r500 || screen->info.drm_minor < 29)) {
return;
}