Also add a clarifying comment for why the width/height doesn't need
adjustment for Gen7.
NOTE: This is a candidate for stable release branches.
Reviewed-by: Eric Anholt <eric@anholt.net>
uint32_t wm_surf_offset;
uint32_t width, height;
surface->get_miplevel_dims(&width, &height);
- if (surface->num_samples > 1) { /* TODO: seems clumsy */
+ if (surface->num_samples > 1) {
+ /* Since gen6 uses INTEL_MSAA_LAYOUT_IMS, width and height are measured
+ * in samples. But SURFACE_STATE wants them in pixels, so we need to
+ * divide them each by 2.
+ */
width /= 2;
height /= 2;
}
uint32_t wm_surf_offset;
uint32_t width, height;
surface->get_miplevel_dims(&width, &height);
+ /* Note: since gen7 uses INTEL_MSAA_LAYOUT_CMS or INTEL_MSAA_LAYOUT_UMS for
+ * color surfaces, width and height are measured in pixels; we don't need
+ * to divide them by 2 as we do for Gen6 (see
+ * gen6_blorp_emit_surface_state).
+ */
if (surface->map_stencil_as_y_tiled) {
width *= 2;
height /= 2;