anv/batch: Move last_ss_pool_bo_offset to the command buffer

The original reason for putting it in the batch_bo was to allow primaries
to share it across secondaries or something like that.  However, the
relocation lists in secondary command buffers are are always left alone and
copied into the primary command buffer's relocation list.  This means that
the offset really applies at the command buffer level and putting it in the
batch_bo doesn't make sense.  This fixes a couple of potential bugs around
re-submission of command buffers that are not likely to be hit but are bugs
none the less.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
Jason Ekstrand
2016-11-07 08:07:43 -08:00
parent 0fe6829427
commit 595400d577
2 changed files with 24 additions and 15 deletions

View File

@@ -641,9 +641,6 @@ struct anv_batch_bo {
/* Bytes actually consumed in this batch BO */
size_t length;
/* Last seen surface state block pool bo offset */
uint32_t last_ss_pool_bo_offset;
struct anv_reloc_list relocs;
};
@@ -1188,7 +1185,10 @@ struct anv_cmd_buffer {
*/
struct u_vector bt_blocks;
uint32_t bt_next;
struct anv_reloc_list surface_relocs;
/** Last seen surface state block pool center bo offset */
uint32_t last_ss_pool_center;
struct anv_execbuf execbuf2;