mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 14:08:05 +02:00
i965: Fix shadow batches to be the same size as the real BO.
brw_bo_alloc may round up our allocation size to the next bucket size.
In this case, we would malloc a shadow buffer that was the original
intended size, but use bo->size (the larger size) for all of our checks.
This could cause us to run off the end of the shadow buffer.
v2: Actually use the new BO size (caught by Lionel)
Reported-by: James Xiong <james.xiong@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c7dcee58b5 (i965: Avoid problems from referencing orphaned BOs after growing.)
This commit is contained in:
parent
7bd24d951a
commit
da25ae92be
1 changed files with 4 additions and 1 deletions
|
|
@ -360,8 +360,11 @@ grow_buffer(struct brw_context *brw,
|
|||
/* We can't safely use realloc, as it may move the existing buffer,
|
||||
* breaking existing pointers the caller may still be using. Just
|
||||
* malloc a new copy and memcpy it like the normal BO path.
|
||||
*
|
||||
* Use bo->size rather than new_size because the bufmgr may have
|
||||
* rounded up the size, and we want the shadow size to match.
|
||||
*/
|
||||
grow->map = malloc(new_size);
|
||||
grow->map = malloc(new_bo->size);
|
||||
} else {
|
||||
grow->map = brw_bo_map(brw, new_bo, MAP_READ | MAP_WRITE);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue