Skip to content
Snippets Groups Projects
  1. Jan 06, 2012
  2. Jan 04, 2012
  3. Dec 31, 2011
  4. Dec 30, 2011
  5. Dec 18, 2011
  6. Dec 14, 2011
    • Chris Wilson's avatar
      intel: Reset vma list upon purge · 0ab2251b
      Chris Wilson authored
      
      During free we unconditionally delete the bo from the vma cache. This
      relies on the its list member being kept in a sane state. This fails
      after the object is purged, as the purge operation performs a pure
      deletion and doesn't reset the list member, leaving a pair of dangling
      pointers.
      
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      0ab2251b
  7. Dec 13, 2011
  8. Dec 06, 2011
  9. Dec 05, 2011
  10. Dec 04, 2011
  11. Nov 27, 2011
  12. Nov 10, 2011
  13. Nov 01, 2011
  14. Oct 29, 2011
  15. Oct 28, 2011
    • Emma Anholt's avatar
      intel: Add an interface for removing relocs after they're added. · 515cea6a
      Emma Anholt authored
      
      This lets us replace the current inner drawing loop of mesa:
      
      for each prim {
      	compute bo list
      	if (check_aperture_space(bo list)) {
      		batch_flush()
      		compute bo list
      		if (check_aperture_space(bo list)) {
      			whine_about_batch_size()
      			fall back;
      		}
      	}
      	upload state to BOs
      }
      
      with this inner loop:
      
      for each prim {
       retry:
      	upload state to BOs
      	if (check_aperture_space(batch)) {
      		if (!retried) {
      			reset_to_last_prim()
      			batch_flush()
      		} else {
      			if (batch_flush())
      				whine_about_batch_size()
      			goto retry;
      		}
      	}
      }
      
      This avoids having to implement code to walk over certain sets of GL
      state twice (the "compute bo list" step).  While it's not a
      performance improvement, it's a significant win in code complexity:
      about -200 lines, and one place to make mistakes related to aperture
      space instead of N places to forget some BO we should have included.
      
      Note how if we do a reset in the new loop , we immediately flush.  We
      don't need to check aperture space -- the kernel will tell us if we
      actually ran out of aperture or not.  And if we did run out of
      aperture, it's because either the single prim was too big, or because
      check_aperture was wrong at the point of setting up the last
      primitive.
      
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      515cea6a
Loading