- Set the multisample mode - Set the surface dimensions correctly, in pixels.
Signed-off-by: Chris Forbes <chr...@ijw.co.nz> --- src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c index 1c54d59..160bd3f 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -814,6 +814,14 @@ brw_update_texture_surface(struct gl_context *ctx, intel_miptree_get_dimensions_for_image(firstImage, &width, &height, &depth); + if (tObj->Target == GL_TEXTURE_2D_MULTISAMPLE || + tObj->Target == GL_TEXTURE_2D_MULTISAMPLE_ARRAY) { + /* surface_state wants pixel dimensions, not the 2x2 or 4x2 size + * of the surface as stored in the miptree's levels array. */ + width = intelObj->mt->singlesample_width0; + height = intelObj->mt->singlesample_height0; + } + surf = brw_state_batch(brw, AUB_TRACE_SURFACE_STATE, 6 * 4, 32, &binding_table[surf_index]); @@ -837,7 +845,7 @@ brw_update_texture_surface(struct gl_context *ctx, ((intelObj->mt->region->pitch * intelObj->mt->cpp) - 1) << BRW_SURFACE_PITCH_SHIFT); - surf[4] = 0; + surf[4] = brw_get_surface_num_multisamples(intelObj->mt->num_samples); surf[5] = (mt->align_h == 4) ? BRW_SURFACE_VERTICAL_ALIGN_ENABLE : 0; -- 1.8.0.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev