Hi Sergii, This patch causes 2,384 failures in CI. The issue is that we're apparently trying to allocate 0 size BOs in some places, which are getting rounded up to 4096 with the current code...but with your patch, we get ALIGN(0, 4096) == 0, and assert(bo_size) triggers.
We might want to continue rounding up for now. Additionally, we probably ought to fix the callers to stop allocating 0 size BOs. It looks like most of them come from the 3DSTATE_SO_BUFFER code, where one stream has valid transform feedback info, and the other 3 are empty. Whoops. Would you like to fix that, or should I? --Ken On Tuesday, August 14, 2018 4:28:35 AM PDT Sergii Romantsov wrote: > Hello, > seems some part of the World is still may waiting for a possibility to play > Dying Light... till pushed :) > > On Mon, Aug 6, 2018 at 4:26 PM, Lionel Landwerlin < > lionel.g.landwer...@intel.com> wrote: > > > On 06/08/18 13:41, Sergii Romantsov wrote: > > > >> Kernel (for ppgtt) requires memory address to be > >> aligned to page size (4096). > >> > >> -v2: added marking that also fixes initial commit 01058a552294. > >> -v3: numbers replaced by PAGE_SIZE; buffer-object size is aligned > >> instead of alignment of offsets (Chris Wilson). > >> -v4: changes related to PAGE_SIZE moved to separate commit > >> > >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106997 > >> Fixes: a363bb2cd0e2 (i965: Allocate VMA in userspace for full-PPGTT > >> systems.) > >> Fixes: 01058a552294 (i965: Add virtual memory allocator infrastructure to > >> brw_bufmgr.) > >> Signed-off-by: Sergii Romantsov <sergii.romant...@globallogic.com> > >> > > > > Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> > > > > Thanks! > > > > > > --- > >> src/mesa/drivers/dri/i965/brw_bufmgr.c | 7 +++---- > >> 1 file changed, 3 insertions(+), 4 deletions(-) > >> > >> diff --git a/src/mesa/drivers/dri/i965/brw_bufmgr.c > >> b/src/mesa/drivers/dri/i965/brw_bufmgr.c > >> index 09d45e3..8274c2e 100644 > >> --- a/src/mesa/drivers/dri/i965/brw_bufmgr.c > >> +++ b/src/mesa/drivers/dri/i965/brw_bufmgr.c > >> @@ -496,7 +496,6 @@ bo_alloc_internal(struct brw_bufmgr *bufmgr, > >> uint32_t stride) > >> { > >> struct brw_bo *bo; > >> - unsigned int page_size = getpagesize(); > >> int ret; > >> struct bo_cache_bucket *bucket; > >> bool alloc_from_cache; > >> @@ -522,12 +521,12 @@ bo_alloc_internal(struct brw_bufmgr *bufmgr, > >> * allocation up. > >> */ > >> if (bucket == NULL) { > >> - bo_size = size; > >> - if (bo_size < page_size) > >> - bo_size = page_size; > >> + unsigned int page_size = getpagesize(); > >> + bo_size = ALIGN(size, page_size); > >> } else { > >> bo_size = bucket->size; > >> } > >> + assert(bo_size); > >> mtx_lock(&bufmgr->lock); > >> /* Get a buffer out of the cache if available */ > >> > > > > > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > > > > >
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev