Re: Move lists to freedesktop.org?
On Thu, Apr 8, 2010 at 16:37, Jesse Barnes jbar...@virtuousgeek.org wrote: On Thu, 8 Apr 2010 18:38:03 -0400 Alex Deucher alexdeuc...@gmail.com wrote: On Thu, Apr 8, 2010 at 6:21 PM, Brian Paul bri...@vmware.com wrote: Unless there's some objection I'm going to subscribe everyone to the new FD.O-based mesa-dev mailing list who's on the mesa3d-dev list. Probably in the next 24 hours. Then, some of you may have to log into the mailman interface (http://lists.freedesktop.org/mailman/listinfo/mesa-dev) to set digest mode, etc. -Brian Are there plans to move dri-devel as well? Yeah, I'm just getting the info for that now. But I don't think we have subscriber lists, so everyone will have to re-subscribe to the new list. I'll send out a note to dri-devel when it's all set. You can get the subscriber list at: http://lists.freedesktop.org/mailman/listinfo/dri-devel Stephane -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH] drm_handle_t type
On Mon, 2010-04-05 at 17:46 +1000, Dave Airlie wrote: Its probably not documented well anywhere, though I think the handles are 32-bit is written down somewhere. Well, here's a patch that silences the warnings and adds a little note. Matthew --- From 9111cd82560052a329b78cff8d7e45c6815e0276 Mon Sep 17 00:00:00 2001 From: Matthew W. S. Bell matt...@bells23.org.uk Date: Fri, 9 Apr 2010 02:58:42 +0100 Add a comment about content of void* variable exchanged with kernel. Add casts to silence warnings about pointer to integer of a different size assignment. --- include/drm/drm.h |2 ++ xf86drm.c |4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/drm/drm.h b/include/drm/drm.h index 4822159..e74d6d6 100644 --- a/include/drm/drm.h +++ b/include/drm/drm.h @@ -216,6 +216,8 @@ struct drm_map { enum drm_map_flags flags;/** Flags */ void *handle;/** User-space: Handle to pass to mmap() */ /** Kernel-space: kernel-virtual address */ +/** The value herein shall be the size of */ +/** drm_handle_t despite the size of void *. */ int mtrr;/** MTRR slot used */ /* Private data */ }; diff --git a/xf86drm.c b/xf86drm.c index 220aaa1..012408a 100644 --- a/xf86drm.c +++ b/xf86drm.c @@ -959,7 +959,7 @@ int drmAddMap(int fd, drm_handle_t offset, drmSize size, drmMapType type, if (drmIoctl(fd, DRM_IOCTL_ADD_MAP, map)) return -errno; if (handle) - *handle = (drm_handle_t)map.handle; + *handle = (uintptr_t)map.handle; return 0; } @@ -2138,7 +2138,7 @@ int drmGetMap(int fd, int idx, drm_handle_t *offset, drmSize *size, *size = map.size; *type = map.type; *flags = map.flags; -*handle = (unsigned long)map.handle; +*handle = (uintptr_t)map.handle; *mtrr = map.mtrr; return 0; } -- 1.7.0 signature.asc Description: This is a digitally signed message part -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev-- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: 2.6.34-rc3-git8: Reported regressions 2.6.32 - 2.6.33
On 04/09/10 00:54, Rafael J. Wysocki wrote: Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15699 Subject : rt2500usb driver cannot remain connected Submitter : a...@gentoo.org Date : 2010-04-05 19:30 (4 days old) Handled-By: Ivo van Doorn ivdo...@gmail.com This one ought to be fixed by commit 9e76ad2a27f592c1390248867391880c7efe78b3 in Linus' tree. --- Gertjan. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27524] linux-2.6.33.2 radeondrm_fb, rv350, garbled console on PowerBook G4
https://bugs.freedesktop.org/show_bug.cgi?id=27524 Michel Dänzer mic...@daenzer.net changed: What|Removed |Added Product|Mesa|DRI Component|Drivers/DRI/r300|DRM/Radeon --- Comment #11 from Michel Dänzer mic...@daenzer.net 2010-04-09 02:21:36 PDT --- Right, so let's focus on the OFfb handover issue. One thing that might help track down what's going on would be comparing register dumps from the good and bad cases. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27524] linux-2.6.33.2 radeondrm_fb, rv350, garbled console on PowerBook G4
https://bugs.freedesktop.org/show_bug.cgi?id=27524 --- Comment #12 from Jeremy Huddleston jerem...@freedesktop.org 2010-04-09 02:48:57 PDT --- Ok, tell me what you want me to dump, when you want me to dump it, and how. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 15736] New: Radeon crashes booting after enabling KMS
https://bugzilla.kernel.org/show_bug.cgi?id=15736 Summary: Radeon crashes booting after enabling KMS Product: Drivers Version: 2.5 Kernel Version: 2.6.33.2 Platform: All OS/Version: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Video(DRI - non Intel) AssignedTo: drivers_video-...@kernel-bugs.osdl.org ReportedBy: mh+kernel-bugzi...@zugschlus.de Regression: No Created an attachment (id=25927) -- (https://bugzilla.kernel.org/attachment.cgi?id=25927) full kernel message log up and including the oops Hi, my notebook has a 01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]. When I try booting with video=radeon:modeset=1, the system oopses and freezes with [ 12.501727] Linux agpgart interface v0.103 [ 12.574951] [drm] Initialized drm 1.1.0 20060810 [ 12.670625] [drm] radeon kernel modesetting enabled. [ 12.730384] ACPI: PCI Interrupt Link [C0C1] enabled at IRQ 10 [ 12.799058] radeon :01:00.0: PCI INT A - Link[C0C1] - GSI 10 (level, low) - IR [ 12.900102] [drm] radeon: Initializing kernel modesetting. [ 12.968061] [drm] register mmio base: 0x9040 [ 13.023221] [drm] register mmio size: 65536 [ 13.073585] [drm] GPU reset succeed (RBBM_STATUS=0x0140) [ 13.141231] [drm] Generation 2 PCI interface, using max accessible memory [ 13.222395] BUG: unable to handle kernel NULL pointer dereference at 0040 [ 13.226373] IP: [f81c082b] radeon_agp_init+0x19/0x2cf [radeon] [ 13.226373] *pde = [ 13.226373] Oops: [#1] PREEMPT SMP (full kernel message log obtained via serial console is attached). Greetings Marc -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 15030] screen connected to displayport is not detected - kms radeon
https://bugzilla.kernel.org/show_bug.cgi?id=15030 Nicolas Reinecke pl4nk...@googlemail.com changed: What|Removed |Added Kernel Version|2.6.33-rc6 |2.6.34-rc3 --- Comment #15 from Nicolas Reinecke pl4nk...@googlemail.com 2010-04-09 10:57:29 --- DP still not working with KMS. -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27521] corrupted rendering with vbo + kms + rv515 (hits Blender 2.50!)
https://bugs.freedesktop.org/show_bug.cgi?id=27521 --- Comment #3 from Wiktor Janas wixorp...@gmail.com 2010-04-09 05:07:59 PDT --- Indeed, gallium version works for me too. However, it has some serious texture problems - basically anything Blender draws using textures is garbage. Blender can be used without vbo, but not without textures. Is the vbo bug going to be fixed in non-gallium version? -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 15030] screen connected to displayport is not detected - kms radeon
https://bugzilla.kernel.org/show_bug.cgi?id=15030 --- Comment #16 from Nicolas Reinecke pl4nk...@googlemail.com 2010-04-09 12:11:26 --- Created an attachment (id=25928) -- (https://bugzilla.kernel.org/attachment.cgi?id=25928) DP screen not detected, drm.debug, second screen on dvi-d found -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 03/13] drm/nouveau: update to TTM no_wait splitted argument
This patch update radeon to the new no_wait splitted argument TTM functionality. Compile tested only (but thing should run as there is no operating change from driver point of view) Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/nouveau/nouveau_bo.c | 45 ++-- drivers/gpu/drm/nouveau/nouveau_gem.c |2 +- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 0266124..5a167de 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -219,7 +219,7 @@ nouveau_bo_pin(struct nouveau_bo *nvbo, uint32_t memtype) for (i = 0; i nvbo-placement.num_placement; i++) nvbo-placements[i] |= TTM_PL_FLAG_NO_EVICT; - ret = ttm_bo_validate(bo, nvbo-placement, false, false); + ret = ttm_bo_validate(bo, nvbo-placement, false, false, false); if (ret == 0) { switch (bo-mem.mem_type) { case TTM_PL_VRAM: @@ -256,7 +256,7 @@ nouveau_bo_unpin(struct nouveau_bo *nvbo) for (i = 0; i nvbo-placement.num_placement; i++) nvbo-placements[i] = ~TTM_PL_FLAG_NO_EVICT; - ret = ttm_bo_validate(bo, nvbo-placement, false, false); + ret = ttm_bo_validate(bo, nvbo-placement, false, false, false); if (ret == 0) { switch (bo-mem.mem_type) { case TTM_PL_VRAM: @@ -456,7 +456,8 @@ nouveau_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl) static int nouveau_bo_move_accel_cleanup(struct nouveau_channel *chan, - struct nouveau_bo *nvbo, bool evict, bool no_wait, + struct nouveau_bo *nvbo, bool evict, + bool no_wait_reserve, bool no_wait_gpu, struct ttm_mem_reg *new_mem) { struct nouveau_fence *fence = NULL; @@ -467,7 +468,7 @@ nouveau_bo_move_accel_cleanup(struct nouveau_channel *chan, return ret; ret = ttm_bo_move_accel_cleanup(nvbo-bo, fence, NULL, - evict, no_wait, new_mem); + evict, no_wait_reserve, no_wait_gpu, new_mem); if (nvbo-channel nvbo-channel != chan) ret = nouveau_fence_wait(fence, NULL, false, false); nouveau_fence_unref((void *)fence); @@ -491,7 +492,8 @@ nouveau_bo_mem_ctxdma(struct nouveau_bo *nvbo, struct nouveau_channel *chan, static int nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, -int no_wait, struct ttm_mem_reg *new_mem) +bool no_wait_reserve, bool no_wait_gpu, +struct ttm_mem_reg *new_mem) { struct nouveau_bo *nvbo = nouveau_bo(bo); struct drm_nouveau_private *dev_priv = nouveau_bdev(bo-bdev); @@ -569,12 +571,13 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, dst_offset += (PAGE_SIZE * line_count); } - return nouveau_bo_move_accel_cleanup(chan, nvbo, evict, no_wait, new_mem); + return nouveau_bo_move_accel_cleanup(chan, nvbo, evict, no_wait_reserve, no_wait_gpu, new_mem); } static int nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool evict, bool intr, - bool no_wait, struct ttm_mem_reg *new_mem) + bool no_wait_reserve, bool no_wait_gpu, + struct ttm_mem_reg *new_mem) { u32 placement_memtype = TTM_PL_FLAG_TT | TTM_PL_MASK_CACHING; struct ttm_placement placement; @@ -587,7 +590,7 @@ nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool evict, bool intr, tmp_mem = *new_mem; tmp_mem.mm_node = NULL; - ret = ttm_bo_mem_space(bo, placement, tmp_mem, intr, no_wait); + ret = ttm_bo_mem_space(bo, placement, tmp_mem, intr, no_wait_reserve, no_wait_gpu); if (ret) return ret; @@ -595,11 +598,11 @@ nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool evict, bool intr, if (ret) goto out; - ret = nouveau_bo_move_m2mf(bo, true, intr, no_wait, tmp_mem); + ret = nouveau_bo_move_m2mf(bo, true, intr, no_wait_reserve, no_wait_gpu, tmp_mem); if (ret) goto out; - ret = ttm_bo_move_ttm(bo, evict, no_wait, new_mem); + ret = ttm_bo_move_ttm(bo, evict, no_wait_reserve, no_wait_gpu, new_mem); out: if (tmp_mem.mm_node) { spin_lock(bo-bdev-glob-lru_lock); @@ -612,7 +615,8 @@ out: static int nouveau_bo_move_flips(struct ttm_buffer_object *bo, bool evict, bool intr, - bool no_wait, struct ttm_mem_reg *new_mem) + bool no_wait_reserve, bool no_wait_gpu, + struct ttm_mem_reg *new_mem) { u32 placement_memtype = TTM_PL_FLAG_TT | TTM_PL_MASK_CACHING;
[PATCH 01/13] drm/ttm: split no_wait argument in 2 GPU or reserve wait
There is case where we want to be able to wait only for the GPU while not waiting for other buffer to be unreserved. This patch split the no_wait argument all the way down in the whole ttm path so that upper level can decide on what to wait on or not. This patch break the API to other modules, update to others driver are following in separate patches. Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/ttm/ttm_bo.c | 57 drivers/gpu/drm/ttm/ttm_bo_util.c |9 -- include/drm/ttm/ttm_bo_api.h |6 ++- include/drm/ttm/ttm_bo_driver.h | 29 +++--- 4 files changed, 60 insertions(+), 41 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index dd47b2a..40631e2 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -357,7 +357,8 @@ static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc) static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, struct ttm_mem_reg *mem, - bool evict, bool interruptible, bool no_wait) + bool evict, bool interruptible, + bool no_wait_reserve, bool no_wait_gpu) { struct ttm_bo_device *bdev = bo-bdev; bool old_is_pci = ttm_mem_reg_is_pci(bdev, bo-mem); @@ -402,12 +403,12 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, if (!(old_man-flags TTM_MEMTYPE_FLAG_FIXED) !(new_man-flags TTM_MEMTYPE_FLAG_FIXED)) - ret = ttm_bo_move_ttm(bo, evict, no_wait, mem); + ret = ttm_bo_move_ttm(bo, evict, no_wait_reserve, no_wait_gpu, mem); else if (bdev-driver-move) ret = bdev-driver-move(bo, evict, interruptible, -no_wait, mem); +no_wait_reserve, no_wait_gpu, mem); else - ret = ttm_bo_move_memcpy(bo, evict, no_wait, mem); + ret = ttm_bo_move_memcpy(bo, evict, no_wait_reserve, no_wait_gpu, mem); if (ret) goto out_err; @@ -606,7 +607,7 @@ void ttm_bo_unref(struct ttm_buffer_object **p_bo) EXPORT_SYMBOL(ttm_bo_unref); static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible, - bool no_wait) + bool no_wait_reserve, bool no_wait_gpu) { struct ttm_bo_device *bdev = bo-bdev; struct ttm_bo_global *glob = bo-glob; @@ -615,7 +616,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible, int ret = 0; spin_lock(bo-lock); - ret = ttm_bo_wait(bo, false, interruptible, no_wait); + ret = ttm_bo_wait(bo, false, interruptible, no_wait_gpu); spin_unlock(bo-lock); if (unlikely(ret != 0)) { @@ -638,7 +639,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible, placement.num_busy_placement = 0; bdev-driver-evict_flags(bo, placement); ret = ttm_bo_mem_space(bo, placement, evict_mem, interruptible, - no_wait); + no_wait_reserve, no_wait_gpu); if (ret) { if (ret != -ERESTARTSYS) { printk(KERN_ERR TTM_PFX @@ -650,7 +651,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible, } ret = ttm_bo_handle_move_mem(bo, evict_mem, true, interruptible, -no_wait); +no_wait_reserve, no_wait_gpu); if (ret) { if (ret != -ERESTARTSYS) printk(KERN_ERR TTM_PFX Buffer eviction failed\n); @@ -670,7 +671,8 @@ out: static int ttm_mem_evict_first(struct ttm_bo_device *bdev, uint32_t mem_type, - bool interruptible, bool no_wait) + bool interruptible, bool no_wait_reserve, + bool no_wait_gpu) { struct ttm_bo_global *glob = bdev-glob; struct ttm_mem_type_manager *man = bdev-man[mem_type]; @@ -687,11 +689,11 @@ retry: bo = list_first_entry(man-lru, struct ttm_buffer_object, lru); kref_get(bo-list_kref); - ret = ttm_bo_reserve_locked(bo, false, true, false, 0); + ret = ttm_bo_reserve_locked(bo, false, no_wait_reserve, false, 0); if (unlikely(ret == -EBUSY)) { spin_unlock(glob-lru_lock); - if (likely(!no_wait)) + if (likely(!no_wait_gpu)) ret = ttm_bo_wait_unreserved(bo, interruptible); kref_put(bo-list_kref, ttm_bo_release_list); @@ -713,7 +715,7 @@ retry: while (put_count--) kref_put(bo-list_kref, ttm_bo_ref_bug); - ret = ttm_bo_evict(bo,
[PATCH 04/13] drm/vmwgfx: update to TTM no_wait splitted argument
This patch update radeon to the new no_wait splitted argument TTM functionality. Compile tested only (but thing should run as there is no operating change from driver point of view) Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c |4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_fb.c |4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c |2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c index 0897359..dbd36b8 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c @@ -570,7 +570,7 @@ static int vmw_validate_single_buffer(struct vmw_private *dev_priv, * Put BO in VRAM, only if there is space. */ - ret = ttm_bo_validate(bo, vmw_vram_sys_placement, true, false); + ret = ttm_bo_validate(bo, vmw_vram_sys_placement, true, false, false); if (unlikely(ret == -ERESTARTSYS)) return ret; @@ -590,7 +590,7 @@ static int vmw_validate_single_buffer(struct vmw_private *dev_priv, * previous contents. */ - ret = ttm_bo_validate(bo, vmw_vram_placement, true, false); + ret = ttm_bo_validate(bo, vmw_vram_placement, true, false, false); return ret; } diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c index a933670..80125ff 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c @@ -628,7 +628,7 @@ int vmw_dmabuf_from_vram(struct vmw_private *vmw_priv, if (unlikely(ret != 0)) return ret; - ret = ttm_bo_validate(bo, vmw_sys_placement, false, false); + ret = ttm_bo_validate(bo, vmw_sys_placement, false, false, false); ttm_bo_unreserve(bo); return ret; @@ -652,7 +652,7 @@ int vmw_dmabuf_to_start_of_vram(struct vmw_private *vmw_priv, if (unlikely(ret != 0)) goto err_unlock; - ret = ttm_bo_validate(bo, ne_placement, false, false); + ret = ttm_bo_validate(bo, ne_placement, false, false, false); ttm_bo_unreserve(bo); err_unlock: ttm_write_unlock(vmw_priv-active_master-lock); diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c index 5b6eabe..ad566c8 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c @@ -118,7 +118,7 @@ static int vmw_dmabuf_pin_in_vram(struct vmw_private *dev_priv, if (pin) overlay_placement = vmw_vram_ne_placement; - ret = ttm_bo_validate(bo, overlay_placement, interruptible, false); + ret = ttm_bo_validate(bo, overlay_placement, interruptible, false, false); ttm_bo_unreserve(bo); -- 1.7.0.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 09/13] drm/radeon/kms: don't initialize TTM io memory manager field
This isn't needed anymore with the new TTM fault callback Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/radeon/radeon_ttm.c | 13 + 1 files changed, 1 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c index 91333ec..d51c1c4 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -162,21 +162,13 @@ static int radeon_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, (unsigned)type); return -EINVAL; } - man-io_offset = rdev-mc.agp_base; - man-io_size = rdev-mc.gtt_size; - man-io_addr = NULL; if (!rdev-ddev-agp-cant_use_aperture) man-flags = TTM_MEMTYPE_FLAG_MAPPABLE; man-available_caching = TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC; man-default_caching = TTM_PL_FLAG_WC; - } else -#endif - { - man-io_offset = 0; - man-io_size = 0; - man-io_addr = NULL; } +#endif break; case TTM_PL_VRAM: /* On-card video ram */ @@ -185,9 +177,6 @@ static int radeon_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, TTM_MEMTYPE_FLAG_MAPPABLE; man-available_caching = TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC; man-default_caching = TTM_PL_FLAG_WC; - man-io_addr = NULL; - man-io_offset = rdev-mc.aper_base; - man-io_size = rdev-mc.aper_size; break; default: DRM_ERROR(Unsupported memory type %u\n, (unsigned)type); -- 1.7.0.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
unmappable vram v8
Ok so here again this time ioremap is kept inside ttm so we don't waste ioremap when faulting page. Cheers, Jerome -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 02/13] drm/radeon/kms: update to TTM no_wait splitted argument
This patch update radeon to the new no_wait splitted argument TTM functionality. Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/radeon/radeon_object.c |6 ++-- drivers/gpu/drm/radeon/radeon_ttm.c| 39 +-- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index dc7e3f4..4b441f8 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c @@ -191,7 +191,7 @@ int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr) } for (i = 0; i bo-placement.num_placement; i++) bo-placements[i] |= TTM_PL_FLAG_NO_EVICT; - r = ttm_bo_validate(bo-tbo, bo-placement, false, false); + r = ttm_bo_validate(bo-tbo, bo-placement, false, false, false); if (likely(r == 0)) { bo-pin_count = 1; if (gpu_addr != NULL) @@ -215,7 +215,7 @@ int radeon_bo_unpin(struct radeon_bo *bo) return 0; for (i = 0; i bo-placement.num_placement; i++) bo-placements[i] = ~TTM_PL_FLAG_NO_EVICT; - r = ttm_bo_validate(bo-tbo, bo-placement, false, false); + r = ttm_bo_validate(bo-tbo, bo-placement, false, false, false); if (unlikely(r != 0)) dev_err(bo-rdev-dev, %p validate failed for unpin\n, bo); return r; @@ -330,7 +330,7 @@ int radeon_bo_list_validate(struct list_head *head) lobj-rdomain); } r = ttm_bo_validate(bo-tbo, bo-placement, - true, false); + true, false, false); if (unlikely(r)) return r; } diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c index fc787e8..992dfc8 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -244,9 +244,9 @@ static void radeon_move_null(struct ttm_buffer_object *bo, } static int radeon_move_blit(struct ttm_buffer_object *bo, - bool evict, int no_wait, - struct ttm_mem_reg *new_mem, - struct ttm_mem_reg *old_mem) + bool evict, int no_wait_reserve, bool no_wait_gpu, + struct ttm_mem_reg *new_mem, + struct ttm_mem_reg *old_mem) { struct radeon_device *rdev; uint64_t old_start, new_start; @@ -290,13 +290,14 @@ static int radeon_move_blit(struct ttm_buffer_object *bo, r = radeon_copy(rdev, old_start, new_start, new_mem-num_pages, fence); /* FIXME: handle copy error */ r = ttm_bo_move_accel_cleanup(bo, (void *)fence, NULL, - evict, no_wait, new_mem); + evict, no_wait_reserve, no_wait_gpu, new_mem); radeon_fence_unref(fence); return r; } static int radeon_move_vram_ram(struct ttm_buffer_object *bo, - bool evict, bool interruptible, bool no_wait, + bool evict, bool interruptible, + bool no_wait_reserve, bool no_wait_gpu, struct ttm_mem_reg *new_mem) { struct radeon_device *rdev; @@ -317,7 +318,7 @@ static int radeon_move_vram_ram(struct ttm_buffer_object *bo, placement.busy_placement = placements; placements = TTM_PL_MASK_CACHING | TTM_PL_FLAG_TT; r = ttm_bo_mem_space(bo, placement, tmp_mem, -interruptible, no_wait); +interruptible, no_wait_reserve, no_wait_gpu); if (unlikely(r)) { return r; } @@ -331,11 +332,11 @@ static int radeon_move_vram_ram(struct ttm_buffer_object *bo, if (unlikely(r)) { goto out_cleanup; } - r = radeon_move_blit(bo, true, no_wait, tmp_mem, old_mem); + r = radeon_move_blit(bo, true, no_wait_reserve, no_wait_gpu, tmp_mem, old_mem); if (unlikely(r)) { goto out_cleanup; } - r = ttm_bo_move_ttm(bo, true, no_wait, new_mem); + r = ttm_bo_move_ttm(bo, true, no_wait_reserve, no_wait_gpu, new_mem); out_cleanup: if (tmp_mem.mm_node) { struct ttm_bo_global *glob = rdev-mman.bdev.glob; @@ -349,7 +350,8 @@ out_cleanup: } static int radeon_move_ram_vram(struct ttm_buffer_object *bo, - bool evict, bool interruptible, bool no_wait, + bool evict, bool interruptible, + bool no_wait_reserve, bool no_wait_gpu, struct ttm_mem_reg *new_mem) { struct
[PATCH 11/13] drm/vmwgfx: don't initialize TTM io memory manager field
This isn't needed anymore with the new TTM fault callback Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c |6 -- 1 files changed, 0 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c index f355896..c4f5114 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c @@ -137,9 +137,6 @@ int vmw_invalidate_caches(struct ttm_bo_device *bdev, uint32_t flags) int vmw_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, struct ttm_mem_type_manager *man) { - struct vmw_private *dev_priv = - container_of(bdev, struct vmw_private, bdev); - switch (type) { case TTM_PL_SYSTEM: /* System memory */ @@ -151,10 +148,7 @@ int vmw_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, case TTM_PL_VRAM: /* On-card video ram */ man-gpu_offset = 0; - man-io_offset = dev_priv-vram_start; - man-io_size = dev_priv-vram_size; man-flags = TTM_MEMTYPE_FLAG_FIXED | TTM_MEMTYPE_FLAG_MAPPABLE; - man-io_addr = NULL; man-available_caching = TTM_PL_MASK_CACHING; man-default_caching = TTM_PL_FLAG_WC; break; -- 1.7.0.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 05/13] drm/ttm: ttm_fault callback to allow driver to handle bo placement V6
On fault the driver is given the opportunity to perform any operation it sees fit in order to place the buffer into a CPU visible area of memory. This patch doesn't break TTM users, nouveau, vmwgfx and radeon should keep working properly. Future patch will take advantage of this infrastructure and remove the old path from TTM once driver are converted. V2 return VM_FAULT_NOPAGE if callback return -EBUSY or -ERESTARTSYS V3 balance io_mem_reserve and io_mem_free call, fault_reserve_notify is responsible to perform any necessary task for mapping to succeed V4 minor cleanup, atomic_t - bool as member is protected by reserve mecanism from concurent access V5 the callback is now responsible for iomapping the bo and providing a virtual address this simplify TTM and will allow to get rid of TTM_MEMTYPE_FLAG_NEEDS_IOREMAP V6 use the bus addr data to decide to ioremap or this isn't needed but we don't necesarily need to ioremap in the callback but still allow driver to use static mapping Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/ttm/ttm_bo.c |7 ++- drivers/gpu/drm/ttm/ttm_bo_util.c | 124 ++-- drivers/gpu/drm/ttm/ttm_bo_vm.c | 41 ++-- include/drm/ttm/ttm_bo_api.h | 23 +++ include/drm/ttm/ttm_bo_driver.h | 16 +- 5 files changed, 126 insertions(+), 85 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 40631e2..b42e3fa 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -632,6 +632,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible, evict_mem = bo-mem; evict_mem.mm_node = NULL; + evict_mem.bus.io_reserved = false; placement.fpfn = 0; placement.lpfn = 0; @@ -1005,6 +1006,7 @@ int ttm_bo_move_buffer(struct ttm_buffer_object *bo, mem.num_pages = bo-num_pages; mem.size = mem.num_pages PAGE_SHIFT; mem.page_alignment = bo-mem.page_alignment; + mem.bus.io_reserved = false; /* * Determine where to move the buffer. */ @@ -1160,6 +1162,7 @@ int ttm_bo_init(struct ttm_bo_device *bdev, bo-mem.num_pages = bo-num_pages; bo-mem.mm_node = NULL; bo-mem.page_alignment = page_alignment; + bo-mem.bus.io_reserved = false; bo-buffer_start = buffer_start PAGE_MASK; bo-priv_flags = 0; bo-mem.placement = (TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED); @@ -1574,7 +1577,7 @@ int ttm_bo_pci_offset(struct ttm_bo_device *bdev, if (ttm_mem_reg_is_pci(bdev, mem)) { *bus_offset = mem-mm_node-start PAGE_SHIFT; *bus_size = mem-num_pages PAGE_SHIFT; - *bus_base = man-io_offset; + *bus_base = man-io_offset + (uintptr_t)man-io_addr; } return 0; @@ -1588,8 +1591,8 @@ void ttm_bo_unmap_virtual(struct ttm_buffer_object *bo) if (!bdev-dev_mapping) return; - unmap_mapping_range(bdev-dev_mapping, offset, holelen, 1); + ttm_mem_io_free(bdev, bo-mem); } EXPORT_SYMBOL(ttm_bo_unmap_virtual); diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c index 865b2a8..d58eeb5 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -81,30 +81,62 @@ int ttm_bo_move_ttm(struct ttm_buffer_object *bo, } EXPORT_SYMBOL(ttm_bo_move_ttm); +int ttm_mem_io_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) +{ + struct ttm_mem_type_manager *man = bdev-man[mem-mem_type]; + int ret; + + if (bdev-driver-io_mem_reserve) { + if (!mem-bus.io_reserved) { + mem-bus.io_reserved = true; + ret = bdev-driver-io_mem_reserve(bdev, mem); + if (unlikely(ret != 0)) + return ret; + } + } else { + ret = ttm_bo_pci_offset(bdev, mem, mem-bus.base, mem-bus.offset, mem-bus.size); + if (unlikely(ret != 0)) + return ret; + mem-bus.addr = NULL; + if (!(man-flags TTM_MEMTYPE_FLAG_NEEDS_IOREMAP)) + mem-bus.addr = (void *)(((u8 *)man-io_addr) + mem-bus.offset); + mem-bus.is_iomem = (mem-bus.size 0) ? 1 : 0; + } + return 0; +} + +void ttm_mem_io_free(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) +{ + if (bdev-driver-io_mem_reserve) { + if (mem-bus.io_reserved) { + mem-bus.io_reserved = false; + bdev-driver-io_mem_free(bdev, mem); + } + } +} + int ttm_mem_reg_ioremap(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem, void **virtual) { - struct ttm_mem_type_manager *man = bdev-man[mem-mem_type]; - unsigned long bus_offset; - unsigned long
[PATCH 13/13] drm/radeon/kms: enable use of unmappable VRAM V2
This patch enable the use of unmappable VRAM thanks to previous TTM infrastructure change. V2 update after io_mem_reserve/io_mem_free callback balancing Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/radeon/evergreen.c |5 - drivers/gpu/drm/radeon/r100.c |5 - drivers/gpu/drm/radeon/r600.c |5 - drivers/gpu/drm/radeon/rv770.c |5 - 4 files changed, 0 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 7672f11..48e0dfb 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c @@ -475,11 +475,6 @@ int evergreen_mc_init(struct radeon_device *rdev) rdev-mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024; rdev-mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024; rdev-mc.visible_vram_size = rdev-mc.aper_size; - /* FIXME remove this once we support unmappable VRAM */ - if (rdev-mc.mc_vram_size rdev-mc.aper_size) { - rdev-mc.mc_vram_size = rdev-mc.aper_size; - rdev-mc.real_vram_size = rdev-mc.aper_size; - } r600_vram_gtt_location(rdev, rdev-mc); radeon_update_bandwidth_info(rdev); diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index 7a4a4fc..f53dd52 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c @@ -2035,11 +2035,6 @@ void r100_vram_init_sizes(struct radeon_device *rdev) else rdev-mc.mc_vram_size = rdev-mc.real_vram_size; } - /* FIXME remove this once we support unmappable VRAM */ - if (rdev-mc.mc_vram_size rdev-mc.aper_size) { - rdev-mc.mc_vram_size = rdev-mc.aper_size; - rdev-mc.real_vram_size = rdev-mc.aper_size; - } } void r100_vga_set_state(struct radeon_device *rdev, bool state) diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index 13c9cc3..fa3c1fe 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c @@ -713,11 +713,6 @@ int r600_mc_init(struct radeon_device *rdev) rdev-mc.mc_vram_size = RREG32(CONFIG_MEMSIZE); rdev-mc.real_vram_size = RREG32(CONFIG_MEMSIZE); rdev-mc.visible_vram_size = rdev-mc.aper_size; - /* FIXME remove this once we support unmappable VRAM */ - if (rdev-mc.mc_vram_size rdev-mc.aper_size) { - rdev-mc.mc_vram_size = rdev-mc.aper_size; - rdev-mc.real_vram_size = rdev-mc.aper_size; - } r600_vram_gtt_location(rdev, rdev-mc); if (rdev-flags RADEON_IS_IGP) diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c index 2b8a4e1..599121b 100644 --- a/drivers/gpu/drm/radeon/rv770.c +++ b/drivers/gpu/drm/radeon/rv770.c @@ -905,11 +905,6 @@ int rv770_mc_init(struct radeon_device *rdev) rdev-mc.mc_vram_size = RREG32(CONFIG_MEMSIZE); rdev-mc.real_vram_size = RREG32(CONFIG_MEMSIZE); rdev-mc.visible_vram_size = rdev-mc.aper_size; - /* FIXME remove this once we support unmappable VRAM */ - if (rdev-mc.mc_vram_size rdev-mc.aper_size) { - rdev-mc.mc_vram_size = rdev-mc.aper_size; - rdev-mc.real_vram_size = rdev-mc.aper_size; - } r600_vram_gtt_location(rdev, rdev-mc); radeon_update_bandwidth_info(rdev); -- 1.7.0.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 06/13] drm/radeon/kms: add support for new fault callback V7
This add the support for the new fault callback and also the infrastructure for supporting unmappable VRAM. V2 validate BO with no_wait = true V3 don't derefence bo-mem.mm_node as it's not NULL only for VRAM or GTT V4 update to splitted no_wait ttm change V5 update to new balanced io_mem_reserve/free change V6 callback is responsible for iomapping memory V7 move back iomapping to ttm Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/radeon/radeon_object.c | 26 +++- drivers/gpu/drm/radeon/radeon_object.h |2 +- drivers/gpu/drm/radeon/radeon_ttm.c| 51 +-- 3 files changed, 72 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index 4b441f8..57b3f95 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c @@ -498,11 +498,33 @@ void radeon_bo_move_notify(struct ttm_buffer_object *bo, radeon_bo_check_tiling(rbo, 0, 1); } -void radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo) +int radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo) { + struct radeon_device *rdev; struct radeon_bo *rbo; + unsigned long offset, size; + int r; + if (!radeon_ttm_bo_is_radeon_bo(bo)) - return; + return 0; rbo = container_of(bo, struct radeon_bo, tbo); radeon_bo_check_tiling(rbo, 0, 0); + rdev = rbo-rdev; + if (bo-mem.mem_type == TTM_PL_VRAM) { + size = bo-mem.num_pages PAGE_SHIFT; + offset = bo-mem.mm_node-start PAGE_SHIFT; + if ((offset + size) rdev-mc.visible_vram_size) { + /* hurrah the memory is not visible ! */ + radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_VRAM); + rbo-placement.lpfn = rdev-mc.visible_vram_size PAGE_SHIFT; + r = ttm_bo_validate(bo, rbo-placement, false, true, false); + if (unlikely(r != 0)) + return r; + offset = bo-mem.mm_node-start PAGE_SHIFT; + /* this should not happen */ + if ((offset + size) rdev-mc.visible_vram_size) + return -EINVAL; + } + } + return 0; } diff --git a/drivers/gpu/drm/radeon/radeon_object.h b/drivers/gpu/drm/radeon/radeon_object.h index 7ab43de..353998d 100644 --- a/drivers/gpu/drm/radeon/radeon_object.h +++ b/drivers/gpu/drm/radeon/radeon_object.h @@ -168,6 +168,6 @@ extern int radeon_bo_check_tiling(struct radeon_bo *bo, bool has_moved, bool force_drop); extern void radeon_bo_move_notify(struct ttm_buffer_object *bo, struct ttm_mem_reg *mem); -extern void radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo); +extern int radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo); extern int radeon_bo_get_surface_reg(struct radeon_bo *bo); #endif diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c index 992dfc8..91333ec 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -166,8 +166,7 @@ static int radeon_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, man-io_size = rdev-mc.gtt_size; man-io_addr = NULL; if (!rdev-ddev-agp-cant_use_aperture) - man-flags = TTM_MEMTYPE_FLAG_NEEDS_IOREMAP | -TTM_MEMTYPE_FLAG_MAPPABLE; + man-flags = TTM_MEMTYPE_FLAG_MAPPABLE; man-available_caching = TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC; man-default_caching = TTM_PL_FLAG_WC; @@ -183,7 +182,6 @@ static int radeon_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, /* On-card video ram */ man-gpu_offset = rdev-mc.vram_start; man-flags = TTM_MEMTYPE_FLAG_FIXED | -TTM_MEMTYPE_FLAG_NEEDS_IOREMAP | TTM_MEMTYPE_FLAG_MAPPABLE; man-available_caching = TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC; man-default_caching = TTM_PL_FLAG_WC; @@ -438,10 +436,53 @@ static int radeon_bo_move(struct ttm_buffer_object *bo, memcpy: r = ttm_bo_move_memcpy(bo, evict, no_wait_reserve, no_wait_gpu, new_mem); } - return r; } +static int radeon_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) +{ + struct ttm_mem_type_manager *man = bdev-man[mem-mem_type]; + struct radeon_device *rdev = radeon_get_rdev(bdev); + + mem-bus.addr = NULL; + mem-bus.offset = 0;
[PATCH 07/13] drm/nouveau/kms: add support for new TTM fault callback V5
This add the support for the new fault callback, does change anything from driver point of view, thought it should allow nouveau to add support for unmappable VRAM. Improvement: store the aperture base in a variable so that we don't call a function to get it on each fault. Patch hasn't been tested on any hw. V2 don't derefence bo-mem.mm_node as it's not NULL only for VRAM or GTT V3 update after io_mem_reserve/io_mem_free callback balancing V4 callback has to ioremap V5 ioremap is done by ttm Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/nouveau/nouveau_bo.c | 58 +++-- 1 files changed, 54 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 5a167de..288c2ec 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -386,8 +386,7 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, break; case TTM_PL_VRAM: man-flags = TTM_MEMTYPE_FLAG_FIXED | -TTM_MEMTYPE_FLAG_MAPPABLE | -TTM_MEMTYPE_FLAG_NEEDS_IOREMAP; +TTM_MEMTYPE_FLAG_MAPPABLE; man-available_caching = TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC; man-default_caching = TTM_PL_FLAG_WC; @@ -403,8 +402,7 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, case TTM_PL_TT: switch (dev_priv-gart_info.type) { case NOUVEAU_GART_AGP: - man-flags = TTM_MEMTYPE_FLAG_MAPPABLE | -TTM_MEMTYPE_FLAG_NEEDS_IOREMAP; + man-flags = TTM_MEMTYPE_FLAG_MAPPABLE; man-available_caching = TTM_PL_FLAG_UNCACHED; man-default_caching = TTM_PL_FLAG_UNCACHED; break; @@ -761,6 +759,55 @@ nouveau_bo_verify_access(struct ttm_buffer_object *bo, struct file *filp) return 0; } +static int +nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) +{ + struct ttm_mem_type_manager *man = bdev-man[mem-mem_type]; + struct drm_nouveau_private *dev_priv = nouveau_bdev(bdev); + struct drm_device *dev = dev_priv-dev; + + mem-bus.addr = NULL; + mem-bus.offset = 0; + mem-bus.size = mem-num_pages PAGE_SHIFT; + mem-bus.base = 0; + mem-bus.is_iomem = false; + if (!(man-flags TTM_MEMTYPE_FLAG_MAPPABLE)) + return -EINVAL; + switch (mem-mem_type) { + case TTM_PL_SYSTEM: + /* System memory */ + return 0; + case TTM_PL_TT: +#if __OS_HAS_AGP + if (dev_priv-gart_info.type == NOUVEAU_GART_AGP) { + mem-bus.offset = mem-mm_node-start PAGE_SHIFT; + mem-bus.base = dev_priv-gart_info.aper_base; + mem-bus.is_iomem = true; + } +#endif + break; + case TTM_PL_VRAM: + mem-bus.offset = mem-mm_node-start PAGE_SHIFT; + mem-bus.base = drm_get_resource_start(dev, 1); + mem-bus.is_iomem = true; + break; + default: + return -EINVAL; + } + return 0; +} + +static void +nouveau_ttm_io_mem_free(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) +{ +} + +static int +nouveau_ttm_fault_reserve_notify(struct ttm_buffer_object *bo) +{ + return 0; +} + struct ttm_bo_driver nouveau_bo_driver = { .create_ttm_backend_entry = nouveau_bo_create_ttm_backend_entry, .invalidate_caches = nouveau_bo_invalidate_caches, @@ -773,5 +820,8 @@ struct ttm_bo_driver nouveau_bo_driver = { .sync_obj_flush = nouveau_fence_flush, .sync_obj_unref = nouveau_fence_unref, .sync_obj_ref = nouveau_fence_ref, + .fault_reserve_notify = nouveau_ttm_fault_reserve_notify, + .io_mem_reserve = nouveau_ttm_io_mem_reserve, + .io_mem_free = nouveau_ttm_io_mem_free, }; -- 1.7.0.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 08/13] drm/vmwgfx: add support for new TTM fault callback V5
This add the support for the new fault callback, does change anything from driver point of view. Improvement: store the aperture base in a variable so that we don't call a function to get it on each fault. Patch hasn't been tested. V2 don't derefence bo-mem.mm_node as it's not NULL only for VRAM or GTT V3 update after io_mem_reserve/io_mem_free callback balancing V4 callback has to ioremap V5 ioremap is done by TTM Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 44 +-- 1 files changed, 41 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c index 825ebe3..f355896 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c @@ -153,8 +153,7 @@ int vmw_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, man-gpu_offset = 0; man-io_offset = dev_priv-vram_start; man-io_size = dev_priv-vram_size; - man-flags = TTM_MEMTYPE_FLAG_FIXED | - TTM_MEMTYPE_FLAG_NEEDS_IOREMAP | TTM_MEMTYPE_FLAG_MAPPABLE; + man-flags = TTM_MEMTYPE_FLAG_FIXED | TTM_MEMTYPE_FLAG_MAPPABLE; man-io_addr = NULL; man-available_caching = TTM_PL_MASK_CACHING; man-default_caching = TTM_PL_FLAG_WC; @@ -193,6 +192,42 @@ static void vmw_swap_notify(struct ttm_buffer_object *bo) vmw_dmabuf_gmr_unbind(bo); } +static int vmw_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) +{ + struct ttm_mem_type_manager *man = bdev-man[mem-mem_type]; + struct vmw_private *dev_priv = container_of(bdev, struct vmw_private, bdev); + + mem-bus.addr = NULL; + mem-bus.is_iomem = false; + mem-bus.offset = 0; + mem-bus.size = mem-num_pages PAGE_SHIFT; + mem-bus.base = 0; + if (!(man-flags TTM_MEMTYPE_FLAG_MAPPABLE)) + return -EINVAL; + switch (mem-mem_type) { + case TTM_PL_SYSTEM: + /* System memory */ + return 0; + case TTM_PL_VRAM: + mem-bus.offset = mem-mm_node-start PAGE_SHIFT; + mem-bus.base = dev_priv-vram_start; + mem-bus.is_iomem = true; + break; + default: + return -EINVAL; + } + return 0; +} + +static void vmw_ttm_io_mem_free(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) +{ +} + +static int vmw_ttm_fault_reserve_notify(struct ttm_buffer_object *bo) +{ + return 0; +} + /** * FIXME: We're using the old vmware polling method to sync. * Do this with fences instead. @@ -248,5 +283,8 @@ struct ttm_bo_driver vmw_bo_driver = { .sync_obj_unref = vmw_sync_obj_unref, .sync_obj_ref = vmw_sync_obj_ref, .move_notify = vmw_move_notify, - .swap_notify = vmw_swap_notify + .swap_notify = vmw_swap_notify, + .fault_reserve_notify = vmw_ttm_fault_reserve_notify, + .io_mem_reserve = vmw_ttm_io_mem_reserve, + .io_mem_free = vmw_ttm_io_mem_free, }; -- 1.7.0.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 10/13] drm/nouveau/kms: don't initialize TTM io memory manager field
This isn't needed anymore with the new TTM fault callback Signed-off-by: Jerome Glisse jgli...@redhat.com --- drivers/gpu/drm/nouveau/nouveau_bo.c | 11 --- 1 files changed, 0 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 288c2ec..34be192 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -390,13 +390,6 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, man-available_caching = TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC; man-default_caching = TTM_PL_FLAG_WC; - - man-io_addr = NULL; - man-io_offset = drm_get_resource_start(dev, 1); - man-io_size = drm_get_resource_len(dev, 1); - if (man-io_size nouveau_mem_fb_amount(dev)) - man-io_size = nouveau_mem_fb_amount(dev); - man-gpu_offset = dev_priv-vm_vram_base; break; case TTM_PL_TT: @@ -417,10 +410,6 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, dev_priv-gart_info.type); return -EINVAL; } - - man-io_offset = dev_priv-gart_info.aper_base; - man-io_size= dev_priv-gart_info.aper_size; - man-io_addr = NULL; man-gpu_offset = dev_priv-vm_gart_base; break; default: -- 1.7.0.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 12/13] drm/ttm: remove io_ field from TTM V6
All TTM driver have been converted to new io_mem_reserve/free interface which allow driver to choose and return proper io base, offset to core TTM for ioremapping if necessary. This patch remove what is now deadcode. V2 adapt to match with change in first patch of the patchset V3 update after io_mem_reserve/io_mem_free callback balancing V4 adjust to minor cleanup V5 remove the needs ioremap flag V6 keep the ioremapping facility in TTM --- drivers/gpu/drm/ttm/ttm_bo.c | 22 -- drivers/gpu/drm/ttm/ttm_bo_util.c | 19 --- include/drm/ttm/ttm_bo_driver.h | 12 3 files changed, 4 insertions(+), 49 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index b42e3fa..3b5b094 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -79,8 +79,6 @@ static void ttm_mem_type_debug(struct ttm_bo_device *bdev, int mem_type) printk(KERN_ERR TTM_PFX use_type: %d\n, man-use_type); printk(KERN_ERR TTM_PFX flags: 0x%08X\n, man-flags); printk(KERN_ERR TTM_PFX gpu_offset: 0x%08lX\n, man-gpu_offset); - printk(KERN_ERR TTM_PFX io_offset: 0x%08lX\n, man-io_offset); - printk(KERN_ERR TTM_PFX io_size: %ld\n, man-io_size); printk(KERN_ERR TTM_PFX size: %llu\n, man-size); printk(KERN_ERR TTM_PFX available_caching: 0x%08X\n, man-available_caching); @@ -1563,26 +1561,6 @@ bool ttm_mem_reg_is_pci(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) return true; } -int ttm_bo_pci_offset(struct ttm_bo_device *bdev, - struct ttm_mem_reg *mem, - unsigned long *bus_base, - unsigned long *bus_offset, unsigned long *bus_size) -{ - struct ttm_mem_type_manager *man = bdev-man[mem-mem_type]; - - *bus_size = 0; - if (!(man-flags TTM_MEMTYPE_FLAG_MAPPABLE)) - return -EINVAL; - - if (ttm_mem_reg_is_pci(bdev, mem)) { - *bus_offset = mem-mm_node-start PAGE_SHIFT; - *bus_size = mem-num_pages PAGE_SHIFT; - *bus_base = man-io_offset + (uintptr_t)man-io_addr; - } - - return 0; -} - void ttm_bo_unmap_virtual(struct ttm_buffer_object *bo) { struct ttm_bo_device *bdev = bo-bdev; diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c index d58eeb5..333b401 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -83,24 +83,13 @@ EXPORT_SYMBOL(ttm_bo_move_ttm); int ttm_mem_io_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) { - struct ttm_mem_type_manager *man = bdev-man[mem-mem_type]; int ret; - if (bdev-driver-io_mem_reserve) { - if (!mem-bus.io_reserved) { - mem-bus.io_reserved = true; - ret = bdev-driver-io_mem_reserve(bdev, mem); - if (unlikely(ret != 0)) - return ret; - } - } else { - ret = ttm_bo_pci_offset(bdev, mem, mem-bus.base, mem-bus.offset, mem-bus.size); + if (!mem-bus.io_reserved) { + mem-bus.io_reserved = true; + ret = bdev-driver-io_mem_reserve(bdev, mem); if (unlikely(ret != 0)) return ret; - mem-bus.addr = NULL; - if (!(man-flags TTM_MEMTYPE_FLAG_NEEDS_IOREMAP)) - mem-bus.addr = (void *)(((u8 *)man-io_addr) + mem-bus.offset); - mem-bus.is_iomem = (mem-bus.size 0) ? 1 : 0; } return 0; } @@ -149,7 +138,7 @@ void ttm_mem_reg_iounmap(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem, man = bdev-man[mem-mem_type]; - if (virtual (man-flags TTM_MEMTYPE_FLAG_NEEDS_IOREMAP || mem-bus.addr == NULL)) + if (virtual mem-bus.addr == NULL) iounmap(virtual); ttm_mem_io_free(bdev, mem); } diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h index da39865..7720b17 100644 --- a/include/drm/ttm/ttm_bo_driver.h +++ b/include/drm/ttm/ttm_bo_driver.h @@ -176,8 +176,6 @@ struct ttm_tt { #define TTM_MEMTYPE_FLAG_FIXED (1 0)/* Fixed (on-card) PCI memory */ #define TTM_MEMTYPE_FLAG_MAPPABLE (1 1)/* Memory mappable */ -#define TTM_MEMTYPE_FLAG_NEEDS_IOREMAP (1 2)/* Fixed memory needs ioremap - before kernel access. */ #define TTM_MEMTYPE_FLAG_CMA (1 3)/* Can't map aperture */ /** @@ -189,13 +187,6 @@ struct ttm_tt { * managed by this memory type. * @gpu_offset: If used, the GPU offset of the first managed page of * fixed memory or the first managed location in an aperture. - * @io_offset: The io_offset of the first managed page of IO memory or - * the first managed location in an
Re: [PATCH 05/13] drm/ttm: ttm_fault callback to allow driver to handle bo placement V5
Dave Airlie wrote: On Wed, Apr 7, 2010 at 8:21 PM, Jerome Glisse jgli...@redhat.com wrote: On fault the driver is given the opportunity to perform any operation it sees fit in order to place the buffer into a CPU visible area of memory. This patch doesn't break TTM users, nouveau, vmwgfx and radeon should keep working properly. Future patch will take advantage of this infrastructure and remove the old path from TTM once driver are converted. V2 return VM_FAULT_NOPAGE if callback return -EBUSY or -ERESTARTSYS V3 balance io_mem_reserve and io_mem_free call, fault_reserve_notify is responsible to perform any necessary task for mapping to succeed V4 minor cleanup, atomic_t - bool as member is protected by reserve mecanism from concurent access V5 the callback is now responsible for iomapping the bo and providing a virtual address this simplify TTM and will allow to get rid of TTM_MEMTYPE_FLAG_NEEDS_IOREMAP Okay I've applied all these to drm-next and it fails to run X for longer than 5 mins on my 32-bit machine. The whole IO reserve thing looks like a bad idea for anything but kmap, since it ioremap's the pages, but we have limited ioremap space on 32-bit, and you hit that and vmallocs all start failing soon after. - ret = ttm_bo_pci_offset(bdev, bo-mem, bus_base, bus_offset, - bus_size); - if (unlikely(ret != 0)) { + ret = ttm_mem_io_reserve(bdev, bo-mem); + if (ret) { retval = VM_FAULT_SIGBUS; goto out_unlock; } This is the start of the insanity, since ever bo that takes a userspace pagefault ends up using ioremap space for *no* reason whatsoever at all. You only need to use ioremap space if the *kernel* is accessing the bo not if userspace is, so really only in the kmap space. I've dropped it all from drm-next until you can resolve this. Dave. Indeed, ttm_mem_io_reserve() shouldn't do anything like that. It should place the bo data in a mappable region. If there is a copy involving ioremap() to do so, it should be iounmapped() before the operation is finished. Thomas -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH] tests/ programs need -lrt too since they use clock_gettime.
When using the binutils gold linker, even if libdrm.so is already linked against -lrt you still need to link your app against -lrt if your app needs symbols from it. Signed-off-by: Török Edwin edwinto...@gmail.com --- tests/Makefile.am |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/tests/Makefile.am b/tests/Makefile.am index 3e74705..81006ab 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -4,7 +4,7 @@ AM_CPPFLAGS = \ -I $(top_srcdir)/include/drm \ -I $(top_srcdir) -LDADD = $(top_builddir)/libdrm.la +LDADD = $(top_builddir)/libdrm.la @CLOCK_LIB@ noinst_PROGRAMS = \ dristat \ -- 1.7.0 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 15738] New: VGA output of Radeon HD3450 displays too bright colors with KMS radeon driver
https://bugzilla.kernel.org/show_bug.cgi?id=15738 Summary: VGA output of Radeon HD3450 displays too bright colors with KMS radeon driver Product: Drivers Version: 2.5 Kernel Version: 2.6.33.1 and 2.6.33.2 Platform: All OS/Version: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Video(DRI - non Intel) AssignedTo: drivers_video-...@kernel-bugs.osdl.org ReportedBy: realhang...@web.de Regression: Yes Hi, 2.6.33 is working fine for my amd64 Debian testing system with a dual-screen setup (Radeon HD3450 with VGA and DVI outputs). I compiled this kernel with the new KMS radeon driver and with the appropriate firmware. However, if I compile 2.6.33.1 and 2.6.33.2 (with oldconfig from 2.6.33), the VGA output of my videocard displays everything much too bright, right from the start of the booting process and also after starting the X server. The DVI output works fine. I'm sorry that I can't give more information, I'd be glad to test things out if you tell me what to try. I searched the internet over and over again, but no one seems to have the same problem. Best Benjamin Scherrer -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27566] New: r300g segfaults in glDrawPixels
https://bugs.freedesktop.org/show_bug.cgi?id=27566 Summary: r300g segfaults in glDrawPixels Product: Mesa Version: git Platform: x86-64 (AMD64) OS/Version: Linux (All) Status: NEW Severity: normal Priority: medium Component: Drivers/DRI/r300 AssignedTo: dri-devel@lists.sourceforge.net ReportedBy: wixorp...@gmail.com Created an attachment (id=34847) -- (https://bugs.freedesktop.org/attachment.cgi?id=34847) the test program (compile with -std=c99) The attached program causes segfault in r300g. Plain r300 works fine, however the texture is drawn darkened Environment: - Debian Linux, vanilla kernel 2.6.33, - mesa from git, up to commit 54526154c5b02be0fbae6b0dad766c6be1bee21c - radeon ddx 1:6.12.192-2 (changelog says: pull from upstream master up to commit 5c256808) - libdrm 2.4.18-3 - Radeon x1300 (RV515) -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27566] r300g segfaults in glDrawPixels
https://bugs.freedesktop.org/show_bug.cgi?id=27566 --- Comment #1 from Wiktor Janas wixorp...@gmail.com 2010-04-09 08:37:09 PDT --- Created an attachment (id=34848) -- (https://bugs.freedesktop.org/attachment.cgi?id=34848) the backtrace -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27566] r300g segfaults in glDrawPixels
https://bugs.freedesktop.org/show_bug.cgi?id=27566 Wiktor Janas wixorp...@gmail.com changed: What|Removed |Added Attachment #34848|application/octet-stream|text/plain mime type|| -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27566] r300g segfaults in glDrawPixels
https://bugs.freedesktop.org/show_bug.cgi?id=27566 --- Comment #2 from Brian Paul bri...@vmware.com 2010-04-09 08:47:37 PDT --- Looks like a state tracker issue. I'm looking into it... -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27566] r300g segfaults in glDrawPixels
https://bugs.freedesktop.org/show_bug.cgi?id=27566 Brian Paul bri...@vmware.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #3 from Brian Paul bri...@vmware.com 2010-04-09 09:05:06 PDT --- Fixed on the 7.8 branch with commit b22a00bff4aadd390dd8af6b5b05bd2833ec7f85. Will merge to master in a bit. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH] drm/edid: When checking duplicate standard modes, walked the probed list
... and not the global list. Signed-off-by: Adam Jackson a...@redhat.com --- drivers/gpu/drm/drm_edid.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index c4a578e..b407eef 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -694,7 +694,7 @@ drm_mode_std(struct drm_connector *connector, struct edid *edid, * instead. This way we don't have to guess at interlace or * reduced blanking. */ - list_for_each_entry(m, connector-modes, head) + list_for_each_entry(m, connector-probed_modes, head) if (m-hdisplay == hsize m-vdisplay == vsize drm_mode_vrefresh(m) == vrefresh_rate) return NULL; -- 1.6.6.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 15736] Radeon crashes booting after enabling KMS
https://bugzilla.kernel.org/show_bug.cgi?id=15736 Pauli suok...@gmail.com changed: What|Removed |Added CC||suok...@gmail.com --- Comment #1 from Pauli suok...@gmail.com 2010-04-09 17:31:33 --- Problem is that the agpgart module isn't loaded before drm. -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 15736] Radeon crashes booting after enabling KMS
https://bugzilla.kernel.org/show_bug.cgi?id=15736 --- Comment #2 from Marc Haber mh+kernel-bugzi...@zugschlus.de 2010-04-09 17:59:48 --- Really? The log doesn't contain the string drm before Linux agpgart interface v0.103? Greetings Marc -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH] drm/radeon/kms: more atom parser fixes
From 44cc309323e38fc4fa7b7c7bea190aeaa0abd224 Mon Sep 17 00:00:00 2001 From: Alex Deucher alexdeuc...@gmail.com Date: Fri, 9 Apr 2010 14:27:18 -0400 Subject: [PATCH] drm/radeon/kms: more atom parser fixes shr/shl ops need the full dst rather than the pre-masked version. Fixes fdo bug 27478 and kernel bug 15738. Signed-off-by: Alex Deucher alexdeuc...@gmail.com --- drivers/gpu/drm/radeon/atom.c | 12 ++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index 58845e0..44c8cbd 100644 --- a/drivers/gpu/drm/radeon/atom.c +++ b/drivers/gpu/drm/radeon/atom.c @@ -905,13 +905,17 @@ static void atom_op_shift_right(atom_exec_context *ctx, int *ptr, int arg) static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) { uint8_t attr = U8((*ptr)++), shift; - uint32_t saved, dst; + uint32_t saved, dst, tmp; int dptr = *ptr; + uint32_t dst_align = atom_dst_to_src[(attr 3) 7][(attr 6) 3]; SDEBUG( dst: ); dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1); + dst = saved; shift = atom_get_src(ctx, attr, ptr); SDEBUG( shift: %d\n, shift); dst = shift; + dst = atom_arg_mask[dst_align]; + dst = atom_arg_shift[dst_align]; SDEBUG( dst: ); atom_put_dst(ctx, arg, attr, dptr, dst, saved); } @@ -919,13 +923,17 @@ static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg) { uint8_t attr = U8((*ptr)++), shift; - uint32_t saved, dst; + uint32_t saved, dst, tmp; int dptr = *ptr; + uint32_t dst_align = atom_dst_to_src[(attr 3) 7][(attr 6) 3]; SDEBUG( dst: ); dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1); + dst = saved; shift = atom_get_src(ctx, attr, ptr); SDEBUG( shift: %d\n, shift); dst = shift; + dst = atom_arg_mask[dst_align]; + dst = atom_arg_shift[dst_align]; SDEBUG( dst: ); atom_put_dst(ctx, arg, attr, dptr, dst, saved); } -- 1.5.6.3 From 44cc309323e38fc4fa7b7c7bea190aeaa0abd224 Mon Sep 17 00:00:00 2001 From: Alex Deucher alexdeuc...@gmail.com Date: Fri, 9 Apr 2010 14:27:18 -0400 Subject: [PATCH] drm/radeon/kms: more atom parser fixes shr/shl ops need the full dst rather than the pre-masked version. Fixes fdo bug 27478 and kernel bug 15738. Signed-off-by: Alex Deucher alexdeuc...@gmail.com --- drivers/gpu/drm/radeon/atom.c | 12 ++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index 58845e0..44c8cbd 100644 --- a/drivers/gpu/drm/radeon/atom.c +++ b/drivers/gpu/drm/radeon/atom.c @@ -905,13 +905,17 @@ static void atom_op_shift_right(atom_exec_context *ctx, int *ptr, int arg) static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) { uint8_t attr = U8((*ptr)++), shift; - uint32_t saved, dst; + uint32_t saved, dst, tmp; int dptr = *ptr; + uint32_t dst_align = atom_dst_to_src[(attr 3) 7][(attr 6) 3]; SDEBUG( dst: ); dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1); + dst = saved; shift = atom_get_src(ctx, attr, ptr); SDEBUG( shift: %d\n, shift); dst = shift; + dst = atom_arg_mask[dst_align]; + dst = atom_arg_shift[dst_align]; SDEBUG( dst: ); atom_put_dst(ctx, arg, attr, dptr, dst, saved); } @@ -919,13 +923,17 @@ static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg) { uint8_t attr = U8((*ptr)++), shift; - uint32_t saved, dst; + uint32_t saved, dst, tmp; int dptr = *ptr; + uint32_t dst_align = atom_dst_to_src[(attr 3) 7][(attr 6) 3]; SDEBUG( dst: ); dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1); + dst = saved; shift = atom_get_src(ctx, attr, ptr); SDEBUG( shift: %d\n, shift); dst = shift; + dst = atom_arg_mask[dst_align]; + dst = atom_arg_shift[dst_align]; SDEBUG( dst: ); atom_put_dst(ctx, arg, attr, dptr, dst, saved); } -- 1.5.6.3 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev-- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 15738] VGA output of Radeon HD3450 displays too bright colors with KMS radeon driver
https://bugzilla.kernel.org/show_bug.cgi?id=15738 --- Comment #1 from Alex Deucher alexdeuc...@gmail.com 2010-04-09 18:42:38 --- Created an attachment (id=25932) -- (https://bugzilla.kernel.org/attachment.cgi?id=25932) fix atom parser bug This patch fixes the issue. -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] drm/radeon/kms: more atom parser fixes
This should go to stable as well. Forgot to add the stable cc. Alex On Fri, Apr 9, 2010 at 2:41 PM, Alex Deucher alexdeuc...@gmail.com wrote: From 44cc309323e38fc4fa7b7c7bea190aeaa0abd224 Mon Sep 17 00:00:00 2001 From: Alex Deucher alexdeuc...@gmail.com Date: Fri, 9 Apr 2010 14:27:18 -0400 Subject: [PATCH] drm/radeon/kms: more atom parser fixes shr/shl ops need the full dst rather than the pre-masked version. Fixes fdo bug 27478 and kernel bug 15738. Signed-off-by: Alex Deucher alexdeuc...@gmail.com --- drivers/gpu/drm/radeon/atom.c | 12 ++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index 58845e0..44c8cbd 100644 --- a/drivers/gpu/drm/radeon/atom.c +++ b/drivers/gpu/drm/radeon/atom.c @@ -905,13 +905,17 @@ static void atom_op_shift_right(atom_exec_context *ctx, int *ptr, int arg) static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) { uint8_t attr = U8((*ptr)++), shift; - uint32_t saved, dst; + uint32_t saved, dst, tmp; int dptr = *ptr; + uint32_t dst_align = atom_dst_to_src[(attr 3) 7][(attr 6) 3]; SDEBUG( dst: ); dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1); + dst = saved; shift = atom_get_src(ctx, attr, ptr); SDEBUG( shift: %d\n, shift); dst = shift; + dst = atom_arg_mask[dst_align]; + dst = atom_arg_shift[dst_align]; SDEBUG( dst: ); atom_put_dst(ctx, arg, attr, dptr, dst, saved); } @@ -919,13 +923,17 @@ static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg) { uint8_t attr = U8((*ptr)++), shift; - uint32_t saved, dst; + uint32_t saved, dst, tmp; int dptr = *ptr; + uint32_t dst_align = atom_dst_to_src[(attr 3) 7][(attr 6) 3]; SDEBUG( dst: ); dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1); + dst = saved; shift = atom_get_src(ctx, attr, ptr); SDEBUG( shift: %d\n, shift); dst = shift; + dst = atom_arg_mask[dst_align]; + dst = atom_arg_shift[dst_align]; SDEBUG( dst: ); atom_put_dst(ctx, arg, attr, dptr, dst, saved); } -- 1.5.6.3 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 3/6] drm/i915: introduce i915_gem_alloc_object
Just preparation, no functional change. Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch --- drivers/gpu/drm/i915/i915_drv.h |2 ++ drivers/gpu/drm/i915/i915_gem.c | 12 +--- drivers/gpu/drm/i915/intel_display.c |2 +- drivers/gpu/drm/i915/intel_fb.c |2 +- drivers/gpu/drm/i915/intel_overlay.c |2 +- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index b7cb4aa..3d4e135 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -893,6 +893,8 @@ int i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); void i915_gem_load(struct drm_device *dev); int i915_gem_init_object(struct drm_gem_object *obj); +struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev, + size_t size); void i915_gem_free_object(struct drm_gem_object *obj); int i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment); void i915_gem_object_unpin(struct drm_gem_object *obj); diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index d4ea909..92dd522 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -124,7 +124,7 @@ i915_gem_create_ioctl(struct drm_device *dev, void *data, args-size = roundup(args-size, PAGE_SIZE); /* Allocate the new object */ - obj = drm_gem_object_alloc(dev, args-size); + obj = i915_gem_alloc_object(dev, args-size); if (obj == NULL) return -ENOMEM; @@ -4421,6 +4421,12 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data, return 0; } +struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev, + size_t size) +{ + return drm_gem_object_alloc(dev, size); +} + int i915_gem_init_object(struct drm_gem_object *obj) { struct drm_i915_gem_object *obj_priv; @@ -4563,7 +4569,7 @@ i915_gem_init_hws(struct drm_device *dev) if (!I915_NEED_GFX_HWS(dev)) return 0; - obj = drm_gem_object_alloc(dev, 4096); + obj = i915_gem_alloc_object(dev, 4096); if (obj == NULL) { DRM_ERROR(Failed to allocate status page\n); return -ENOMEM; @@ -4640,7 +4646,7 @@ i915_gem_init_ringbuffer(struct drm_device *dev) if (ret != 0) return ret; - obj = drm_gem_object_alloc(dev, 128 * 1024); + obj = i915_gem_alloc_object(dev, 128 * 1024); if (obj == NULL) { DRM_ERROR(Failed to allocate ringbuffer\n); i915_gem_cleanup_hws(dev); diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index eb9d825..bc775b6 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -4598,7 +4598,7 @@ intel_alloc_power_context(struct drm_device *dev) struct drm_gem_object *pwrctx; int ret; - pwrctx = drm_gem_object_alloc(dev, 4096); + pwrctx = i915_gem_alloc_object(dev, 4096); if (!pwrctx) { DRM_DEBUG(failed to alloc power context, RC6 disabled\n); return NULL; diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c index 8a0b3bc..c7af7e1 100644 --- a/drivers/gpu/drm/i915/intel_fb.c +++ b/drivers/gpu/drm/i915/intel_fb.c @@ -138,7 +138,7 @@ static int intelfb_create(struct drm_device *dev, uint32_t fb_width, size = mode_cmd.pitch * mode_cmd.height; size = ALIGN(size, PAGE_SIZE); - fbo = drm_gem_object_alloc(dev, size); + fbo = i915_gem_alloc_object(dev, size); if (!fbo) { DRM_ERROR(failed to allocate framebuffer\n); ret = -ENOMEM; diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c index 6d524a1..bc3721a 100644 --- a/drivers/gpu/drm/i915/intel_overlay.c +++ b/drivers/gpu/drm/i915/intel_overlay.c @@ -1341,7 +1341,7 @@ void intel_setup_overlay(struct drm_device *dev) return; overlay-dev = dev; - reg_bo = drm_gem_object_alloc(dev, PAGE_SIZE); + reg_bo = i915_gem_alloc_object(dev, PAGE_SIZE); if (!reg_bo) goto out_free; overlay-reg_bo = to_intel_bo(reg_bo); -- 1.6.6.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 1/6] drm: extract drm_gem_object_init
This function can be used by drivers who allocate the drm gem object on their own. No functional change in here, just preparation. Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch --- drivers/gpu/drm/drm_gem.c | 39 +-- include/drm/drmP.h|2 ++ 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index aa89d4b..3b64d0e 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -124,6 +124,31 @@ drm_gem_destroy(struct drm_device *dev) } /** + * Initialize an already allocate GEM object of the specified size with + * shmfs backing store. + */ +int drm_gem_object_init(struct drm_device *dev, + struct drm_gem_object *obj, size_t size) +{ + BUG_ON((size (PAGE_SIZE - 1)) != 0); + + obj-dev = dev; + obj-filp = shmem_file_setup(drm mm object, size, VM_NORESERVE); + if (IS_ERR(obj-filp)) + return -ENOMEM; + + kref_init(obj-refcount); + kref_init(obj-handlecount); + obj-size = size; + + atomic_inc(dev-object_count); + atomic_add(obj-size, dev-object_memory); + + return 0; +} +EXPORT_SYMBOL(drm_gem_object_init); + +/** * Allocate a GEM object of the specified size with shmfs backing store */ struct drm_gem_object * @@ -131,28 +156,22 @@ drm_gem_object_alloc(struct drm_device *dev, size_t size) { struct drm_gem_object *obj; - BUG_ON((size (PAGE_SIZE - 1)) != 0); - obj = kzalloc(sizeof(*obj), GFP_KERNEL); if (!obj) goto free; - obj-dev = dev; - obj-filp = shmem_file_setup(drm mm object, size, VM_NORESERVE); - if (IS_ERR(obj-filp)) + if (drm_gem_object_init(dev, obj, size) != 0) goto free; - kref_init(obj-refcount); - kref_init(obj-handlecount); - obj-size = size; if (dev-driver-gem_init_object != NULL dev-driver-gem_init_object(obj) != 0) { goto fput; } - atomic_inc(dev-object_count); - atomic_add(obj-size, dev-object_memory); return obj; fput: + /* Object_init mangles the global counters - readjust them. */ + atomic_dec(dev-object_count); + atomic_sub(obj-size, dev-object_memory); fput(obj-filp); free: kfree(obj); diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 2f3b3a0..b3b57b5 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1432,6 +1432,8 @@ void drm_gem_object_free(struct kref *kref); void drm_gem_object_free_unlocked(struct kref *kref); struct drm_gem_object *drm_gem_object_alloc(struct drm_device *dev, size_t size); +int drm_gem_object_init(struct drm_device *dev, + struct drm_gem_object *obj, size_t size); void drm_gem_object_handle_free(struct kref *kref); void drm_gem_vm_open(struct vm_area_struct *vma); void drm_gem_vm_close(struct vm_area_struct *vma); -- 1.6.6.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 2/6] drm: free core gem object from driver callbacks
When drivers embed the core gem object into their own structures, they'll have to do this. Temporarily this results in an ugly kfree(gem_obj); in every gem driver. Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch --- drivers/gpu/drm/drm_gem.c | 10 +++--- drivers/gpu/drm/i915/i915_gem.c |3 +++ drivers/gpu/drm/nouveau/nouveau_gem.c |3 +++ drivers/gpu/drm/radeon/radeon_gem.c |3 +++ include/drm/drmP.h|1 + 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index 3b64d0e..33dad3f 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -422,15 +422,15 @@ drm_gem_release(struct drm_device *dev, struct drm_file *file_private) idr_destroy(file_private-object_idr); } -static void -drm_gem_object_free_common(struct drm_gem_object *obj) +void +drm_gem_object_release(struct drm_gem_object *obj) { struct drm_device *dev = obj-dev; fput(obj-filp); atomic_dec(dev-object_count); atomic_sub(obj-size, dev-object_memory); - kfree(obj); } +EXPORT_SYMBOL(drm_gem_object_release); /** * Called after the last reference to the object has been lost. @@ -448,8 +448,6 @@ drm_gem_object_free(struct kref *kref) if (dev-driver-gem_free_object != NULL) dev-driver-gem_free_object(obj); - - drm_gem_object_free_common(obj); } EXPORT_SYMBOL(drm_gem_object_free); @@ -472,8 +470,6 @@ drm_gem_object_free_unlocked(struct kref *kref) dev-driver-gem_free_object(obj); mutex_unlock(dev-struct_mutex); } - - drm_gem_object_free_common(obj); } EXPORT_SYMBOL(drm_gem_object_free_unlocked); diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 80871c6..d4ea909 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -4474,6 +4474,9 @@ void i915_gem_free_object(struct drm_gem_object *obj) kfree(obj_priv-page_cpu_valid); kfree(obj_priv-bit_17); kfree(obj-driver_private); + + drm_gem_object_release(obj); + kfree(obj); } /** Unbinds all inactive objects. */ diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 0d22f66..cc6b191 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -57,6 +57,9 @@ nouveau_gem_object_del(struct drm_gem_object *gem) } ttm_bo_unref(bo); + + drm_gem_object_release(gem); + kfree(gem); } int diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c index ef92d14..833454a 100644 --- a/drivers/gpu/drm/radeon/radeon_gem.c +++ b/drivers/gpu/drm/radeon/radeon_gem.c @@ -44,6 +44,9 @@ void radeon_gem_object_free(struct drm_gem_object *gobj) if (robj) { radeon_bo_unref(robj); } + + drm_gem_object_release(gobj); + kfree(gobj); } int radeon_gem_object_create(struct radeon_device *rdev, int size, diff --git a/include/drm/drmP.h b/include/drm/drmP.h index b3b57b5..c1b9871 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1428,6 +1428,7 @@ extern void drm_sysfs_connector_remove(struct drm_connector *connector); /* Graphics Execution Manager library functions (drm_gem.c) */ int drm_gem_init(struct drm_device *dev); void drm_gem_destroy(struct drm_device *dev); +void drm_gem_object_release(struct drm_gem_object *obj); void drm_gem_object_free(struct kref *kref); void drm_gem_object_free_unlocked(struct kref *kref); struct drm_gem_object *drm_gem_object_alloc(struct drm_device *dev, -- 1.6.6.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 6/6] drm/i915: drop pointer to drm_gem_object
Luckily the change is quite a little bit less invasive than I've feared. Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch --- drivers/gpu/drm/i915/i915_debugfs.c | 15 +++ drivers/gpu/drm/i915/i915_drv.h |1 - drivers/gpu/drm/i915/i915_gem.c | 21 ++--- drivers/gpu/drm/i915/i915_gem_debug.c |2 +- drivers/gpu/drm/i915/i915_irq.c |4 ++-- drivers/gpu/drm/i915/intel_overlay.c |6 +++--- 6 files changed, 23 insertions(+), 26 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index a0b8447..213aa3f 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -96,19 +96,18 @@ static int i915_gem_object_list_info(struct seq_file *m, void *data) spin_lock(lock); list_for_each_entry(obj_priv, head, list) { - struct drm_gem_object *obj = obj_priv-obj; - seq_printf(m, %p: %s %8zd %08x %08x %d%s%s, - obj, + obj_priv-base, get_pin_flag(obj_priv), - obj-size, - obj-read_domains, obj-write_domain, + obj_priv-base.size, + obj_priv-base.read_domains, + obj_priv-base.write_domain, obj_priv-last_rendering_seqno, obj_priv-dirty ? dirty : , obj_priv-madv == I915_MADV_DONTNEED ? purgeable : ); - if (obj-name) - seq_printf(m, (name: %d), obj-name); + if (obj_priv-base.name) + seq_printf(m, (name: %d), obj_priv-base.name); if (obj_priv-fence_reg != I915_FENCE_REG_NONE) seq_printf(m, (fence: %d), obj_priv-fence_reg); if (obj_priv-gtt_space != NULL) @@ -289,7 +288,7 @@ static int i915_batchbuffer_info(struct seq_file *m, void *data) spin_lock(dev_priv-mm.active_list_lock); list_for_each_entry(obj_priv, dev_priv-mm.active_list, list) { - obj = obj_priv-obj; + obj = obj_priv-base; if (obj-read_domains I915_GEM_DOMAIN_COMMAND) { ret = i915_gem_object_get_pages(obj, 0); if (ret) { diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index c5c7ce0..1b44ca7 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -633,7 +633,6 @@ typedef struct drm_i915_private { /** driver private structure attached to each drm_gem_object */ struct drm_i915_gem_object { struct drm_gem_object base; - struct drm_gem_object *obj; /** Current space allocated to this object in the GTT, if any. */ struct drm_mm_node *gtt_space; diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 7c8c01b..47c46ed 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -1566,7 +1566,7 @@ i915_gem_process_flushing_list(struct drm_device *dev, list_for_each_entry_safe(obj_priv, next, dev_priv-mm.gpu_write_list, gpu_write_list) { - struct drm_gem_object *obj = obj_priv-obj; + struct drm_gem_object *obj = obj_priv-base; if ((obj-write_domain flush_domains) == obj-write_domain) { @@ -1704,7 +1704,7 @@ i915_gem_retire_request(struct drm_device *dev, obj_priv = list_first_entry(dev_priv-mm.active_list, struct drm_i915_gem_object, list); - obj = obj_priv-obj; + obj = obj_priv-base; /* If the seqno being retired doesn't match the oldest in the * list, then the oldest in the list must still be newer than @@ -2075,7 +2075,7 @@ i915_gem_find_inactive_object(struct drm_device *dev, int min_size) /* Try to find the smallest clean object */ list_for_each_entry(obj_priv, dev_priv-mm.inactive_list, list) { - struct drm_gem_object *obj = obj_priv-obj; + struct drm_gem_object *obj = obj_priv-base; if (obj-size = min_size) { if ((!obj_priv-dirty || i915_gem_object_is_purgeable(obj_priv)) @@ -2209,7 +2209,7 @@ i915_gem_evict_something(struct drm_device *dev, int min_size) /* Find an object that we can immediately reuse */ list_for_each_entry(obj_priv, dev_priv-mm.flushing_list, list) { - obj = obj_priv-obj; + obj = obj_priv-base; if (obj-size = min_size)
Re: [PATCH] drm/radeon/kms: more atom parser fixes
Updated version with stable cc and remove some leftover unused vars noticed by roysjosh on IRC. Alex On Fri, Apr 9, 2010 at 2:41 PM, Alex Deucher alexdeuc...@gmail.com wrote: From 44cc309323e38fc4fa7b7c7bea190aeaa0abd224 Mon Sep 17 00:00:00 2001 From: Alex Deucher alexdeuc...@gmail.com Date: Fri, 9 Apr 2010 14:27:18 -0400 Subject: [PATCH] drm/radeon/kms: more atom parser fixes shr/shl ops need the full dst rather than the pre-masked version. Fixes fdo bug 27478 and kernel bug 15738. Signed-off-by: Alex Deucher alexdeuc...@gmail.com --- drivers/gpu/drm/radeon/atom.c | 12 ++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index 58845e0..44c8cbd 100644 --- a/drivers/gpu/drm/radeon/atom.c +++ b/drivers/gpu/drm/radeon/atom.c @@ -905,13 +905,17 @@ static void atom_op_shift_right(atom_exec_context *ctx, int *ptr, int arg) static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) { uint8_t attr = U8((*ptr)++), shift; - uint32_t saved, dst; + uint32_t saved, dst, tmp; int dptr = *ptr; + uint32_t dst_align = atom_dst_to_src[(attr 3) 7][(attr 6) 3]; SDEBUG( dst: ); dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1); + dst = saved; shift = atom_get_src(ctx, attr, ptr); SDEBUG( shift: %d\n, shift); dst = shift; + dst = atom_arg_mask[dst_align]; + dst = atom_arg_shift[dst_align]; SDEBUG( dst: ); atom_put_dst(ctx, arg, attr, dptr, dst, saved); } @@ -919,13 +923,17 @@ static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg) { uint8_t attr = U8((*ptr)++), shift; - uint32_t saved, dst; + uint32_t saved, dst, tmp; int dptr = *ptr; + uint32_t dst_align = atom_dst_to_src[(attr 3) 7][(attr 6) 3]; SDEBUG( dst: ); dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1); + dst = saved; shift = atom_get_src(ctx, attr, ptr); SDEBUG( shift: %d\n, shift); dst = shift; + dst = atom_arg_mask[dst_align]; + dst = atom_arg_shift[dst_align]; SDEBUG( dst: ); atom_put_dst(ctx, arg, attr, dptr, dst, saved); } -- 1.5.6.3 From abf2bcf1318e0170bf1f891ab7e5a7acf64091d8 Mon Sep 17 00:00:00 2001 From: Alex Deucher alexdeuc...@gmail.com Date: Fri, 9 Apr 2010 15:01:25 -0400 Subject: [PATCH] drm/radeon/kms: more atom parser fixes (v2) shr/shl ops need the full dst rather than the pre-masked version. Fixes fdo bug 27478 and kernel bug 15738. v2: remove some unsed vars, add comments Signed-off-by: Alex Deucher alexdeuc...@gmail.com Cc: stable sta...@kernel.org --- drivers/gpu/drm/radeon/atom.c | 10 ++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index 58845e0..a8bf500 100644 --- a/drivers/gpu/drm/radeon/atom.c +++ b/drivers/gpu/drm/radeon/atom.c @@ -907,11 +907,16 @@ static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) uint8_t attr = U8((*ptr)++), shift; uint32_t saved, dst; int dptr = *ptr; + uint32_t dst_align = atom_dst_to_src[(attr 3) 7][(attr 6) 3]; SDEBUG( dst: ); dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1); + /* op needs to full dst value */ + dst = saved; shift = atom_get_src(ctx, attr, ptr); SDEBUG( shift: %d\n, shift); dst = shift; + dst = atom_arg_mask[dst_align]; + dst = atom_arg_shift[dst_align]; SDEBUG( dst: ); atom_put_dst(ctx, arg, attr, dptr, dst, saved); } @@ -921,11 +926,16 @@ static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg) uint8_t attr = U8((*ptr)++), shift; uint32_t saved, dst; int dptr = *ptr; + uint32_t dst_align = atom_dst_to_src[(attr 3) 7][(attr 6) 3]; SDEBUG( dst: ); dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1); + /* op needs to full dst value */ + dst = saved; shift = atom_get_src(ctx, attr, ptr); SDEBUG( shift: %d\n, shift); dst = shift; + dst = atom_arg_mask[dst_align]; + dst = atom_arg_shift[dst_align]; SDEBUG( dst: ); atom_put_dst(ctx, arg, attr, dptr, dst, saved); } -- 1.5.6.3 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev-- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27569] New: Radeon KMS panic with certain kernel config.
https://bugs.freedesktop.org/show_bug.cgi?id=27569 Summary: Radeon KMS panic with certain kernel config. Product: DRI Version: unspecified Platform: x86 (IA32) OS/Version: Linux (All) Status: NEW Severity: normal Priority: medium Component: DRM/Radeon AssignedTo: dri-devel@lists.sourceforge.net ReportedBy: nbow...@draconx.ca With a kernel built with CONFIG_AGP=y, CONFIG_AGP_INTEL=m and CONFIG_DRM_RADEON=y, enabling radeon KMS (either by the config option or radeon.modeset=1 boot parameter) results in an immediate kernel panic. Modesetting works fine when those options are all set to 'y' or all set to 'm'. Both Linus' git and 2.6.33 are affected. Full boot log follows. Linux version 2.6.34-rc3-00406-gcf90bfe (r...@ulna.ellipticsemi.com) (gcc version 4.3.0 20080428 (Red Hat 4.3.0-8) (GCC) ) #56 SMP PREEMPT Fri Apr 9 14:28:59 EDT 2010 BIOS-provided physical RAM map: BIOS-e820: - 0009fc00 (usable) BIOS-e820: 0009fc00 - 000a (reserved) BIOS-e820: 000e - 0010 (reserved) BIOS-e820: 0010 - 1ff4 (usable) BIOS-e820: 1ff4 - 1ff5 (ACPI data) BIOS-e820: 1ff5 - 2000 (ACPI NVS) Notice: NX (Execute Disable) protection missing in CPU or disabled in BIOS! DMI 2.3 present. last_pfn = 0x1ff40 max_arch_pfn = 0x10 x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 init_memory_mapping: -1ff4 RAMDISK: 1fbfc000 - 1ff3 ACPI: RSDP 000f70e0 00014 (v00 ACPIAM) ACPI: RSDT 1ff4 00030 (v01 INTEL D845EPT2 20020920 MSFT 0097) ACPI: FACP 1ff40200 00081 (v02 INTEL D845EPT2 20020920 MSFT 0097) ACPI: DSDT 1ff40400 0420A (v01 INTEL D845EPT2 010A MSFT 010D) ACPI: FACS 1ff5 00040 ACPI: APIC 1ff40300 00068 (v01 INTEL D845EPT2 20020920 MSFT 0097) ACPI: ASF! 1ff44610 00084 (v16 AMIASF I845GASF 0001 MSFT 010D) 511MB LOWMEM available. mapped low ram: 0 - 1ff4 low ram: 0 - 1ff4 Zone PFN ranges: DMA 0x0001 - 0x1000 Normal 0x1000 - 0x0001ff40 Movable zone start PFN for each node early_node_map[2] active PFN ranges 0: 0x0001 - 0x009f 0: 0x0100 - 0x0001ff40 Using APIC driver default ACPI: PM-Timer IO Port: 0x408 ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x81] disabled) ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1]) ACPI: IOAPIC (id[0x01] address[0xfec0] gsi_base[0]) IOAPIC[0]: apic_id 1, version 32, address 0xfec0, GSI 0-23 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) Using ACPI (MADT) for SMP configuration information SMP: Allowing 2 CPUs, 1 hotplug CPUs Allocating PCI resources starting at 2000 (gap: 2000:e000) setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:2 nr_node_ids:1 PERCPU: Embedded 16 pages/cpu @c200 s40980 r0 d24556 u2097152 pcpu-alloc: s40980 r0 d24556 u2097152 alloc=1*4194304 pcpu-alloc: [0] 0 1 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129759 Kernel command line: ro root=/dev/VolGroup00/LogVol00 rhgb console=ttyS0,115200n8 radeon.modeset=1 PID hash table entries: 2048 (order: 1, 8192 bytes) Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Initializing CPU#0 Subtract (34 early reservations) #1 [001000 - 002000] EX TRAMPOLINE #2 [000100 - 00019cbd6c] TEXT DATA BSS #3 [001fbfc000 - 001ff3] RAMDISK #4 [09fc00 - 10] BIOS reserved #5 [00019cc000 - 00019d3110] BRK #6 [002000 - 003000] TRAMPOLINE #7 [007000 - 008000] PGTABLE #8 [00019d3180 - 0001dd3180] BOOTMEM #9 [00019cbd80 - 00019cbd84] BOOTMEM #10 [0001dd3180 - 0001dd33c0] BOOTMEM #11 [00019cbe00 - 00019cbe30] BOOTMEM #12 [0001dd3400 - 0001dd7c00] BOOTMEM #13 [00019cbe80 - 00019cbea7] BOOTMEM #14 [00019cbf00 - 00019cbfc4] BOOTMEM #15 [0001dd7c00 - 0001dd7c40] BOOTMEM #16 [0001dd7c80 - 0001dd7cc0] BOOTMEM #17 [0001dd7d00 - 0001dd7d40] BOOTMEM #18 [0001dd7d80 - 0001dd7dc0] BOOTMEM #19 [0001dd7e00 - 0001dd7e40] BOOTMEM #20 [0001dd7e80 - 0001dd7ec0] BOOTMEM #21 [0001dd7f00 - 0001dd7f4e] BOOTMEM #22 [0001dd7f80 - 0001dd7fce] BOOTMEM #23 [000200 - 000201] BOOTMEM #24 [000220 - 000221] BOOTMEM #25 [0001dda000 - 0001dda004] BOOTMEM #26 [0001dda080 - 0001dda084] BOOTMEM #27 [0001dda100 - 0001dda108]
[Bug 27522] rendering of large vtk datasets very slow
https://bugs.freedesktop.org/show_bug.cgi?id=27522 --- Comment #2 from Paulo César Pereira de Andrade p...@mandriva.com.br 2010-04-09 12:29:09 PDT --- (In reply to comment #1) (In reply to comment #1) Using oprofile, and starting the application, loading a project and clicking the close button shows that most of the time is spent in kernel mode (70%ish, and I believe should be in the drm code, what would explain even the mouse pointer almost locked). Please attach profile data. If you use sysprof 1.1.x (or a Git snapshot) with a recent kernel, you should get profiling information about the kernel as well. I just made an alternate test, that was to enable radeon kms, and now the performance is good, not as fast as when compared with a computer with an i965, but pretty usable. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27521] corrupted rendering with vbo + kms + rv515 (hits Blender 2.50!)
https://bugs.freedesktop.org/show_bug.cgi?id=27521 Maciej Cencora m.cenc...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #4 from Maciej Cencora m.cenc...@gmail.com 2010-04-09 12:29:30 PDT --- I've pushed a fix on mesa_7_7_branch (a5489649593427e47b039ad0d4a98cbb4e547f69). Thanks for the report and testcase! -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 5/6] drm/i915: don't use -driver_private anymore
Thanks to the to_intel_bo helper, this change is rather trivial. Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch --- drivers/gpu/drm/i915/i915_drv.h |2 +- drivers/gpu/drm/i915/i915_gem.c |2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 3d59e21..c5c7ce0 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -732,7 +732,7 @@ struct drm_i915_gem_object { atomic_t pending_flip; }; -#define to_intel_bo(x) ((struct drm_i915_gem_object *) (x)-driver_private) +#define to_intel_bo(x) container_of(x, struct drm_i915_gem_object, base) /** * Request queue structure. diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 23c67e0..7c8c01b 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -4440,7 +4440,7 @@ struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev, obj-agp_type = AGP_USER_MEMORY; - obj-base.driver_private = obj; + obj-base.driver_private = NULL; obj-obj = obj-base; obj-fence_reg = I915_FENCE_REG_NONE; INIT_LIST_HEAD(obj-list); -- 1.6.6.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 0/6] make gem_object embedable and convert i915 driver
Hi all, As promised here's my patch series to make struct drm_gem_object embedable. Also converts drm/i915 as a proof of concept. I've already looked at the radeon and nouveau modules and a straightforward replament of the gem_object pointer looks simple. But I think embedding it into the ttm_bo is better long-term. Stuff like duplicated ref-counting between the ttm object and the gem one just doesn't make too much sense. Tested on my i945GM. The changes to radeon and nouveau in patch 2 are only compile-tested, but the identical change to the i915 survived testing. Comments on the patches and my future plans highly welcome. Yours, Daniel Daniel Vetter (6): drm: extract drm_gem_object_init drm: free core gem object from driver callbacks drm/i915: introduce i915_gem_alloc_object drm/i915: embed the gem object into drm_i915_gem_object drm/i915: don't use -driver_private anymore drm/i915: drop pointer to drm_gem_object drivers/gpu/drm/drm_gem.c | 49 +--- drivers/gpu/drm/i915/i915_debugfs.c | 15 +++--- drivers/gpu/drm/i915/i915_drv.h |6 ++- drivers/gpu/drm/i915/i915_gem.c | 80 ++--- drivers/gpu/drm/i915/i915_gem_debug.c |2 +- drivers/gpu/drm/i915/i915_irq.c |4 +- drivers/gpu/drm/i915/intel_display.c |2 +- drivers/gpu/drm/i915/intel_fb.c |2 +- drivers/gpu/drm/i915/intel_overlay.c |8 ++-- drivers/gpu/drm/nouveau/nouveau_gem.c |3 + drivers/gpu/drm/radeon/radeon_gem.c |3 + include/drm/drmP.h|3 + 12 files changed, 105 insertions(+), 72 deletions(-) -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 4/6] drm/i915: embed the gem object into drm_i915_gem_object
Just embed it and adjust the pointers, No other changes (that's for later patches). Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch --- drivers/gpu/drm/i915/i915_drv.h |1 + drivers/gpu/drm/i915/i915_gem.c | 58 +++--- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 3d4e135..3d59e21 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -632,6 +632,7 @@ typedef struct drm_i915_private { /** driver private structure attached to each drm_gem_object */ struct drm_i915_gem_object { + struct drm_gem_object base; struct drm_gem_object *obj; /** Current space allocated to this object in the GTT, if any. */ diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 92dd522..23c67e0 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -4424,37 +4424,38 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data, struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev, size_t size) { - return drm_gem_object_alloc(dev, size); -} + struct drm_i915_gem_object *obj; -int i915_gem_init_object(struct drm_gem_object *obj) -{ - struct drm_i915_gem_object *obj_priv; + obj = kzalloc(sizeof(*obj), GFP_KERNEL); + if (obj == NULL) + return NULL; - obj_priv = kzalloc(sizeof(*obj_priv), GFP_KERNEL); - if (obj_priv == NULL) - return -ENOMEM; + if (drm_gem_object_init(dev, obj-base, size) != 0) { + kfree(obj); + return NULL; + } - /* -* We've just allocated pages from the kernel, -* so they've just been written by the CPU with -* zeros. They'll need to be clflushed before we -* use them with the GPU. -*/ - obj-write_domain = I915_GEM_DOMAIN_CPU; - obj-read_domains = I915_GEM_DOMAIN_CPU; + obj-base.write_domain = I915_GEM_DOMAIN_CPU; + obj-base.read_domains = I915_GEM_DOMAIN_CPU; - obj_priv-agp_type = AGP_USER_MEMORY; + obj-agp_type = AGP_USER_MEMORY; - obj-driver_private = obj_priv; - obj_priv-obj = obj; - obj_priv-fence_reg = I915_FENCE_REG_NONE; - INIT_LIST_HEAD(obj_priv-list); - INIT_LIST_HEAD(obj_priv-gpu_write_list); - INIT_LIST_HEAD(obj_priv-fence_list); - obj_priv-madv = I915_MADV_WILLNEED; + obj-base.driver_private = obj; + obj-obj = obj-base; + obj-fence_reg = I915_FENCE_REG_NONE; + INIT_LIST_HEAD(obj-list); + INIT_LIST_HEAD(obj-gpu_write_list); + INIT_LIST_HEAD(obj-fence_list); + obj-madv = I915_MADV_WILLNEED; - trace_i915_gem_object_create(obj); + trace_i915_gem_object_create(obj-base); + + return obj-base; +} + +int i915_gem_init_object(struct drm_gem_object *obj) +{ + BUG(); return 0; } @@ -4477,12 +4478,11 @@ void i915_gem_free_object(struct drm_gem_object *obj) if (obj_priv-mmap_offset) i915_gem_free_mmap_offset(obj); + drm_gem_object_release(obj); + kfree(obj_priv-page_cpu_valid); kfree(obj_priv-bit_17); - kfree(obj-driver_private); - - drm_gem_object_release(obj); - kfree(obj); + kfree(obj_priv); } /** Unbinds all inactive objects. */ -- 1.6.6.1 -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27443] radeonFreeTexImageData: Assertion `!image-base.Data' failed when running Ogre3D samples
https://bugs.freedesktop.org/show_bug.cgi?id=27443 --- Comment #2 from Laurent carlier lordhea...@gmail.com 2010-04-09 12:43:12 PDT --- Here is a backtrace of the problem: [lo...@archmain g3dtest]$ gdb gbx3 GNU gdb (GDB) 7.1 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as x86_64-unknown-linux-gnu. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/... Reading symbols from /usr/local/bin/gbx3...done. (gdb) run Starting program: /usr/local/bin/gbx3 [Thread debugging using libthread_db enabled] GambasFSArchive::find:*:0:0 GambasFSArchive::findFileInfo:*.program::0:0 GambasFSArchive::findFileInfo:*.material::0:0 GambasFSArchive::findFileInfo:*.particle::0:0 GambasFSArchive::findFileInfo:*.compositor::0:0 GambasFSArchive::findFileInfo:*.os::0:0 GambasFSArchive::findFileInfo:*.fontdef::0:0 GambasFSArchive::findFileInfo:*.overlay::0:0 GambasFSArchive::exists:GLX_icon.png - 0 GambasFSArchive::exists:GLX_icon.png - 0 Mesa: Mesa 7.9-devel DEBUG build Apr 9 2010 21:31:08 Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable Mesa: Initializing x86-64 optimizations Mesa: 3Dnow! detected [New Thread 0x700b9710 (LWP 23592)] [New Thread 0x7fffef8b8710 (LWP 23593)] [New Thread 0x7fffe70b7710 (LWP 23594)] [New Thread 0x7fffef0b7710 (LWP 23595)] [Thread 0x700b9710 (LWP 23592) exited] [Thread 0x7fffef0b7710 (LWP 23595) exited] [Thread 0x7fffe70b7710 (LWP 23594) exited] [Thread 0x7fffef8b8710 (LWP 23593) exited] gbx3: radeon_texture.c :93 : radeonFreeTexImageData: L'assertion « !image-base.Data » a échoué. Program received signal SIGABRT, Aborted. 0x77210fd5 in raise () from /lib/libc.so.6 (gdb) bt #0 0x77210fd5 in raise () from /lib/libc.so.6 #1 0x772123f0 in abort () from /lib/libc.so.6 #2 0x7720a081 in __assert_fail () from /lib/libc.so.6 #3 0x70cb7b01 in radeonFreeTexImageData (ctx=value optimized out, timage=0xa68130) at radeon_texture.c:93 #4 0x70d26de2 in _mesa_delete_texture_image (ctx=0x5c25, texImage=0xa68130) at main/teximage.c:487 #5 0x70d2e961 in _mesa_delete_texture_object (ctx=0x6d6d10, texObj=0xa67850) at main/texobj.c:201 #6 0x70d2df73 in _mesa_reference_texobj (ptr=0x7fffdf08, tex=0x0) at main/texobj.c:345 #7 0x70d2f5c5 in _mesa_DeleteTextures (n=1, textures=value optimized out) at main/texobj.c:932 #8 0x767c70f9 in Ogre::Texture::freeInternalResources (this=0x77ef8c78) at /home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreTexture.cpp:349 #9 0x766d0188 in Ogre::Resource::unload (this=0x77ef8c78) at /home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreResource.cpp:307 #10 0x726adecd in ~GLTexture (this=0x5c25, __in_chrg=value optimized out) at /home/lordh/archbuild/ogre/src/ogre/RenderSystems/GL/src/OgreGLTexture.cpp:75 #11 0x765217bf in Ogre::SharedPtrOgre::Resource::destroy (this=0x7336ab88) at /home/lordh/archbuild/ogre/src/ogre/OgreMain/include/OgreSharedPtr.h:229 #12 0x765222d9 in Ogre::SharedPtrOgre::Resource::release (this=0x7336ab88, __in_chrg=value optimized out) at /home/lordh/archbuild/ogre/src/ogre/OgreMain/include/OgreSharedPtr.h:215 #13 ~SharedPtr (this=0x7336ab88, __in_chrg=value optimized out) at /home/lordh/archbuild/ogre/src/ogre/OgreMain/include/OgreSharedPtr.h:152 #14 0x766e2e86 in std::listOgre::SharedPtrOgre::Resource, Ogre::STLAllocatorOgre::SharedPtrOgre::Resource, Ogre::CategorisedAllocPolicy(Ogre::MemoryCategory)0 ::erase(std::_List_iteratorOgre::SharedPtrOgre::Resource ) () from /usr/lib/libOgreMain_d.so.1.7.0 #15 0x766d603b in Ogre::ResourceGroupManager::_notifyAllResourcesRemoved (this=value optimized out, manager=0x77ee76e8) at /home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreResourceGroupManager.cpp:1228 #16 0x766e618f in Ogre::ResourceManager::removeAll (this=0x77ee76e8) at /home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreResourceManager.cpp:365 #17 0x766d5195 in Ogre::ResourceGroupManager::shutdownAll (this=value optimized out) at /home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreResourceGroupManager.cpp:1495 #18 0x766f4bac in Ogre::Root::shutdown (this=0x77ed38d8) at /home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreRoot.cpp:1003 #19 0x766f5fa4 in ~Root (this=0x5c25, __in_chrg=value optimized out) at /home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreRoot.cpp:288 #20 0x76dbfac6 in std::auto_ptrOgre::Root::reset (this=0xd0, __p=0x0) at /usr/lib/gcc/x86_64-unknown-linux-gnu/4.4.3/../../../../include/c++/4.4.3/backward/auto_ptr.h:242 #21 0x76dbeb6e in ~gapplication
Re: 2.6.34-rc3-git8: Reported regressions 2.6.32 - 2.6.33
On Friday 09 April 2010, Gertjan van Wingerde wrote: On 04/09/10 00:54, Rafael J. Wysocki wrote: Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15699 Subject : rt2500usb driver cannot remain connected Submitter : a...@gentoo.org Date: 2010-04-05 19:30 (4 days old) Handled-By : Ivo van Doorn ivdo...@gmail.com This one ought to be fixed by commit 9e76ad2a27f592c1390248867391880c7efe78b3 in Linus' tree. Thanks, closing. Rafael -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
List moved to freedesktop.org
Thanks to Tollef, we've just finished moving this list over to freedesktop.org. This should give us faster delivery and a better archive viewer. The new list address is dri-de...@lists.freedesktop.org. Old subscribers have automatically been subscribed to the new list, preserving existing subscription options related to delivery and digests. Have fun using the new list! -- Jesse Barnes, Intel Open Source Technology Center -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27570] New: r300g incorrectly claims npot support
https://bugs.freedesktop.org/show_bug.cgi?id=27570 Summary: r300g incorrectly claims npot support Product: Mesa Version: git Platform: x86-64 (AMD64) OS/Version: Linux (All) Status: NEW Severity: normal Priority: medium Component: Drivers/DRI/r300 AssignedTo: dri-devel@lists.sourceforge.net ReportedBy: wixorp...@gmail.com Created an attachment (id=34853) -- (https://bugs.freedesktop.org/attachment.cgi?id=34853) the test program (compile with -std=c99) The r300g driver on rv515 claims GL_ARB_texture_non_power_of_two support. Suprisingly, such textures actually work if texture coordinates are (0,0), (1,0), (1,1), (0,1). However if that's not the case, garbage is rendered. This bug makes Blender 2.50 ui unusable. Attached are: test program, correct rendering (obtained by LIBGL_ALWAYS_SOFTWARE=1) and r300g's rendering (the garbage pattern varies, sometimes just white/black, sometimes all pixels are random). driver is from git version, commit edb5253dfa0... hardware is radeon x1300 (rv515) kernel is vanilla 2.6.33. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27570] r300g incorrectly claims npot support
https://bugs.freedesktop.org/show_bug.cgi?id=27570 --- Comment #1 from Wiktor Janas wixorp...@gmail.com 2010-04-09 13:48:05 PDT --- Created an attachment (id=34854) -- (https://bugs.freedesktop.org/attachment.cgi?id=34854) the correct rendering -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27570] r300g incorrectly claims npot support
https://bugs.freedesktop.org/show_bug.cgi?id=27570 --- Comment #2 from Wiktor Janas wixorp...@gmail.com 2010-04-09 13:48:27 PDT --- Created an attachment (id=34855) -- (https://bugs.freedesktop.org/attachment.cgi?id=34855) the r300g's rendering -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27522] rendering of large vtk datasets very slow
https://bugs.freedesktop.org/show_bug.cgi?id=27522 --- Comment #3 from Paulo César Pereira de Andrade p...@mandriva.com.br 2010-04-09 13:57:25 PDT --- Created an attachment (id=34856) -- (https://bugs.freedesktop.org/attachment.cgi?id=34856) % perf record invesalius; perf report 2 1 The file should give some good hint of what is wrong. It should be noted that it takes some time to load the user interface, and then tell it to load the proper project, so, the time percentage may not truly match what happened, because there was significant delay before starting rendering. Also, I did not wait until it finished rendering, i.e. when the mouse starts moving normally again, or it could give even worser idea of what may be wrong. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27570] r300g incorrectly claims npot support
https://bugs.freedesktop.org/show_bug.cgi?id=27570 --- Comment #3 from Marek Olšák mar...@gmail.com 2010-04-09 14:16:25 PDT --- The NPOT textures are mandatory in GL2 and if the driver doesn't claim their support, Mesa will report OpenGL 1.5 only, pretty much killing the main selling point of r300g. I plan to implement a fallback soon. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27569] Radeon KMS panic with certain kernel config.
https://bugs.freedesktop.org/show_bug.cgi?id=27569 --- Comment #1 from Dave Airlie airl...@freedesktop.org 2010-04-09 15:55:27 PDT --- Not sure how you expect this to work since we need AGP working. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27569] Radeon KMS panic with certain kernel config.
https://bugs.freedesktop.org/show_bug.cgi?id=27569 --- Comment #2 from Nick Bowler nbow...@draconx.ca 2010-04-09 16:49:45 PDT --- I don't expect it to work. I do expect the driver to not oops, however. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27571] New: Regression: r600 CS checker rejects GL_DEPTH_TEST w/o depth buffer.
https://bugs.freedesktop.org/show_bug.cgi?id=27571 Summary: Regression: r600 CS checker rejects GL_DEPTH_TEST w/o depth buffer. Product: DRI Version: unspecified Platform: Other OS/Version: All Status: NEW Severity: major Priority: medium Component: DRM/Radeon AssignedTo: dri-devel@lists.sourceforge.net ReportedBy: nbow...@draconx.ca Created an attachment (id=34858) -- (https://bugs.freedesktop.org/attachment.cgi?id=34858) Test case. The command stream checker recently added to the radeon driver kills programs which render to a target which does not have a depth buffer whilst GL_DEPTH_TEST is enabled. Instead of simply not performing depth buffer operations, the result is program termination and some rather cryptic error messages: drmRadeonCmdBuffer: -22. Kernel failed to parse or rejected command stream. See dmesg for more info. and in dmesg: radeon :03:00.0: z/stencil with no depth buffer radeon :03:00.0: r600_packet3_check:1109 invalid cmd stream 815 [drm:radeon_cs_ioctl] *ERROR* Invalid command stream ! I first noticed this when a program that works using 2.6.33 died rendering to a FBO, but it is trivially reproducible without using anything fancy. A test case is attached which works normally with either Linux 2.6.33, the software rasterizer, or the intel driver. The failure is reproducible with both mesa 7.8.1 and git master. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27571] Regression: r600 CS checker rejects GL_DEPTH_TEST w/o depth buffer.
https://bugs.freedesktop.org/show_bug.cgi?id=27571 --- Comment #1 from Nick Bowler nbow...@draconx.ca 2010-04-09 21:58:27 PDT --- Created an attachment (id=34859) -- (https://bugs.freedesktop.org/attachment.cgi?id=34859) Full kernel log. Just in case it's needed. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 27521] corrupted rendering with vbo + kms + rv515 (hits Blender 2.50!)
https://bugs.freedesktop.org/show_bug.cgi?id=27521 --- Comment #5 from Rafał Miłecki zaj...@gmail.com 2010-04-09 22:41:12 PDT --- (In reply to comment #4) I've pushed a fix on mesa_7_7_branch (a5489649593427e47b039ad0d4a98cbb4e547f69). Thanks for the report and testcase! Thanks for fix! ;) -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel