Bug 14712

Summary: [TTM] Bound streaming buffer objects are broken.
Product: DRI Reporter: Thomas Hellström <thomas>
Component: DRM/otherAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: medium CC: keithp
Version: DRI git   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Thomas Hellström 2008-02-28 03:43:52 UTC
The below commit breaks streaming CPU->GPU buffers that we don't repopulate / rebind every time we validate. This includes user-space buffer pools and, for example, cache-coherent pixel buffers used for streaming.

The reason for this is that when a new page is added to the buffer in nopage() or drm_bo_kmap, it's not bound to the translation table. 

We should either add a ttm_backend::update_page() method, which is called whenever the ttm is bound and a new page is added, or disable this functionality.

Author: Keith Packard <keithp@keithp.com>  2007-12-16 10:47:51
Committer: Keith Packard <keithp@keithp.com>  2007-12-21 21:16:29
Parent: 881ee70ab7bab5d6f6140dc9bf1e19c7b5844084 (Move dummy_read_page from drm_ttm_set_user to drm_ttm_create.)
Child:  d1187641d64f442968a3b9ea6a19de6cdd45acd4 (Rename inappropriately named 'mask' fields to 'proposed_flags' instead.)
Branches: origin, master, test, test2, vblank-rework, modesetting-101, modesetting-101-origin
Follows: drm-2.3.0
Precedes: 

    Use dummy_read_page for unpopulated kernel-allocated ttm pages.
    
    Previously, dummy_read_page was used only for read-only user allocations; it
    filled in pages that were not present in the user address map (presumably,
    these were allocated but never written to pages).
    
    This patch allows them to be used for read-only ttms allocated from the
    kernel, so that applications can over-allocate buffers without forcing every
    page to be allocated.
Comment 1 Thomas Hellström 2008-03-12 02:41:18 UTC
This functionality has been disabled in drm commit
2a618e5a7f6d26fe85e7d931d0ef08d9f18b1b7c

/Thomas

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.