From: Jason Ekstrand Date: Wed, 9 Mar 2016 20:38:58 +0000 (-0800) Subject: isl/surface_state: Set the clear color X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1f3d582cba4921fa638c1aa0d8e7861f91059547;p=mesa.git isl/surface_state: Set the clear color --- diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c index f3390a6c553..6afe45d650e 100644 --- a/src/intel/isl/isl_surface_state.c +++ b/src/intel/isl/isl_surface_state.c @@ -393,9 +393,11 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state, } #endif -#if 0 - if (GEN_GEN == 8) { - if (isl_format_is_integer(info->view->format)) { + if (GEN_GEN <= 8) { + /* Prior to Sky Lake, we only have one bit for the clear color which + * gives us 0 or 1 in whatever the surface's format happens to be. + */ + if (isl_format_has_int_channel(info->view->format)) { for (unsigned i = 0; i < 4; i++) { assert(info->clear_color.u32[i] == 0 || info->clear_color.u32[i] == 1); @@ -406,17 +408,16 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state, info->clear_color.f32[i] == 1.0f); } } - s.RedClearColor = info->clear_color.u32[0] != 0, - s.GreenClearColor = info->clear_color.u32[1] != 0, - s.BlueClearColor = info->clear_color.u32[2] != 0, - s.AlphaClearColor = info->clear_color.u32[3] != 0, + s.RedClearColor = info->clear_color.u32[0] != 0; + s.GreenClearColor = info->clear_color.u32[1] != 0; + s.BlueClearColor = info->clear_color.u32[2] != 0; + s.AlphaClearColor = info->clear_color.u32[3] != 0; } else { - .RedClearColor = info->clear_color.u32[0], - .GreenClearColor = info->clear_color.u32[1], - .BlueClearColor = info->clear_color.u32[2], - .AlphaClearColor = info->clear_color.u32[3], + s.RedClearColor = info->clear_color.u32[0]; + s.GreenClearColor = info->clear_color.u32[1]; + s.BlueClearColor = info->clear_color.u32[2]; + s.AlphaClearColor = info->clear_color.u32[3]; } -#endif GENX(RENDER_SURFACE_STATE_pack)(NULL, state, &s); }