diff options
author | Jason Ekstrand <[email protected]> | 2016-06-10 21:11:02 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-06-22 12:26:43 -0700 |
commit | 2a1cc94d27c80929d91e38b4843333a5408d563e (patch) | |
tree | 79c98db584871b2a698f4df75b8f402317e54abf | |
parent | e8580b8f981a48dd481c62292c7d618a4860dfad (diff) |
i965/gen4: Subtract 1 from buffer sizes
The PRM states that the values put in Width, Height, and Depth should be
various bits from the value size - 1. We seem to have done this wrong
more-or-less from the start.
Reviewed-by: Chad Versace <[email protected]>
Cc: "11.1 11.2 12.0" <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 6 |
1 files changed, 3 insertions, 3 deletions
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 7b2953c0323..cfce2c9cd09 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -237,9 +237,9 @@ gen4_emit_buffer_surface_state(struct brw_context *brw, surface_format << BRW_SURFACE_FORMAT_SHIFT | (brw->gen >= 6 ? BRW_SURFACE_RC_READ_WRITE : 0); surf[1] = (bo ? bo->offset64 : 0) + buffer_offset; /* reloc */ - surf[2] = (buffer_size & 0x7f) << BRW_SURFACE_WIDTH_SHIFT | - ((buffer_size >> 7) & 0x1fff) << BRW_SURFACE_HEIGHT_SHIFT; - surf[3] = ((buffer_size >> 20) & 0x7f) << BRW_SURFACE_DEPTH_SHIFT | + surf[2] = ((buffer_size - 1) & 0x7f) << BRW_SURFACE_WIDTH_SHIFT | + (((buffer_size - 1) >> 7) & 0x1fff) << BRW_SURFACE_HEIGHT_SHIFT; + surf[3] = (((buffer_size - 1) >> 20) & 0x7f) << BRW_SURFACE_DEPTH_SHIFT | (pitch - 1) << BRW_SURFACE_PITCH_SHIFT; /* Emit relocation to surface contents. The 965 PRM, Volume 4, section |