i965/wm: surfaces should have the API buffer size, not the drm buffer size
The returned drm buffer object has a size multiple of 4096 but that should not be exposed to the API user, which is working with a different size. As far as I can see this problem is only visible in the calculation of the length of unsized arrays used in SSBOs, as the implementation of this needs to query the underlying buffer size via a message. Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
This commit is contained in:
@@ -948,7 +948,7 @@ brw_upload_ubo_surfaces(struct brw_context *brw,
|
||||
binding->Offset,
|
||||
binding->BufferObject->Size - binding->Offset);
|
||||
brw_create_constant_surface(brw, bo, binding->Offset,
|
||||
bo->size - binding->Offset,
|
||||
binding->BufferObject->Size - binding->Offset,
|
||||
&surf_offsets[i],
|
||||
dword_pitch);
|
||||
}
|
||||
@@ -965,7 +965,7 @@ brw_upload_ubo_surfaces(struct brw_context *brw,
|
||||
binding->Offset,
|
||||
binding->BufferObject->Size - binding->Offset);
|
||||
brw_create_buffer_surface(brw, bo, binding->Offset,
|
||||
bo->size - binding->Offset,
|
||||
binding->BufferObject->Size - binding->Offset,
|
||||
&surf_offsets[i],
|
||||
dword_pitch);
|
||||
}
|
||||
|
Reference in New Issue
Block a user