[Bug 27729] [r300g - RV530] main/mipmap.c:144: do_row: Assertion `comps >= 1' failed
https://bugs.freedesktop.org/show_bug.cgi?id=27729 Fabio Pedretti changed: What|Removed |Added Attachment #35316|0 |1 is obsolete|| --- Comment #14 from Fabio Pedretti 2010-04-29 01:03:47 PDT --- Created an attachment (id=35327) --> (https://bugs.freedesktop.org/attachment.cgi?id=35327) swrastg debug output with "ST_DEBUG=mesa,tgsi" Anyway you may also want to try the game yourself from http://trac.wildfiregames.com/wiki/LatestRelease since it appears it will be a common open source game when finished. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 27729] [r300g, mesa] gallium compressed texture problems
https://bugs.freedesktop.org/show_bug.cgi?id=27729 Fabio Pedretti changed: What|Removed |Added Summary|[r300g - RV530] |[r300g, mesa] gallium |main/mipmap.c:144: do_row: |compressed texture problems |Assertion `comps >= 1' | |failed | -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 27729] [r300g, mesa] gallium compressed texture problems
https://bugs.freedesktop.org/show_bug.cgi?id=27729 Fabio Pedretti changed: What|Removed |Added CC||mar...@gmail.com --- Comment #15 from Fabio Pedretti 2010-04-29 01:11:49 PDT --- In the meantime 95bfc8f32571751c5c9ec6d8e84f5e3c28d1b20e has been committed from Marek Olšák which is a subset of attached "patch for r300g is_format_supported()", but which appears to also fix the r300g problem. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/radeon/kms: R3XX-R4XX fix GPU reset code
On Mon, 2010-04-26 at 22:23 +0200, Jerome Glisse wrote: > Previous reset code leaded to computer hard lockup (need to unplug > the power too reboot the computer) on various configuration. This > patch change the reset code to avoid hard lockup. The GPU reset > is failing most of the time but at least user can log in remotely > or properly shutdown the computer. > > Two issues were leading to hard lockup : > - Writting to the scratch register lead to hard lockup most likely > because the write back mecanism is in fuzy state after GPU lockup. > - Resetting the GPU memory controller and not reinitializing it > after leaded to hard lockup. We did only reinitialize in case of > successfull reset thus unsuccessfull reset quickly leaded to hard > lockup. > > Signed-off-by: Jerome Glisse Unfortunately, this doesn't seem to help for the RV350 in my PowerBook. GPU lockups still turn into machine hardlocks, which is a regression from before the GPU reset rework. -- Earthling Michel Dänzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 00/11] various cleanups and dead coode removals in drm core
Hi all, [Dave, this is the patch series I've talked about on irc a few days ago.] This patch series kills various things I've stumbled over while reading through the drm core code. It mostly removes unnecessary stuff on the drm core <-> driver interface. Tested on my i845, i945 and agp rv570. All drm drivers compile-tested. Please review and merge what you like for -next. Save patch 9 which depends upon patch 8 (mucks around in the same place), they should be all independent. So you can mix&match what you like. Thanks, Daniel Daniel Vetter (11): drm: don't export drm_sg_alloc drm: kill kernel_context_switch callbacks drm: kill dma_ready callbacks drm: kill procfs callbacks drm: kill drm_map_ofs callbacks drm: kill get_reg_ofs callback drm: kill context_ctor callback drm: don't export drm_get_drawable_info drm: replace drawable ioctl by noops drm: kill dev->timer drm: kill gem_free_object_unlocked driver callback drivers/gpu/drm/Makefile |2 +- drivers/gpu/drm/drm_context.c |8 -- drivers/gpu/drm/drm_drawable.c| 198 - drivers/gpu/drm/drm_drv.c | 10 +- drivers/gpu/drm/drm_gem.c |4 +- drivers/gpu/drm/drm_lock.c| 21 drivers/gpu/drm/drm_proc.c| 13 -- drivers/gpu/drm/drm_scatter.c |2 - drivers/gpu/drm/drm_stub.c|4 - drivers/gpu/drm/drm_vm.c | 13 +-- drivers/gpu/drm/i810/i810_drv.c |2 - drivers/gpu/drm/i830/i830_drv.c |2 - drivers/gpu/drm/i915/i915_drv.c |2 - drivers/gpu/drm/mga/mga_drv.c |2 - drivers/gpu/drm/nouveau/nouveau_drv.c |2 - drivers/gpu/drm/r128/r128_drv.c |2 - drivers/gpu/drm/radeon/radeon_drv.c |4 - drivers/gpu/drm/savage/savage_drv.c |2 - drivers/gpu/drm/sis/sis_drv.c |3 - drivers/gpu/drm/tdfx/tdfx_drv.c |2 - drivers/gpu/drm/via/via_drv.c |2 - drivers/gpu/drm/vmwgfx/vmwgfx_drv.c |2 - include/drm/drmP.h| 30 - 23 files changed, 7 insertions(+), 325 deletions(-) delete mode 100644 drivers/gpu/drm/drm_drawable.c ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 01/11] drm: don't export drm_sg_alloc
It's not used internally by any driver, only by some generic ioctls. So don't export it. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_scatter.c |2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c index 9034c4c..d15e09b 100644 --- a/drivers/gpu/drm/drm_scatter.c +++ b/drivers/gpu/drm/drm_scatter.c @@ -184,8 +184,6 @@ int drm_sg_alloc(struct drm_device *dev, struct drm_scatter_gather * request) drm_sg_cleanup(entry); return -ENOMEM; } -EXPORT_SYMBOL(drm_sg_alloc); - int drm_sg_alloc_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) -- 1.7.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 05/11] drm: kill drm_map_ofs callbacks
All drivers happily copy&pasted the default implementation without checking whether this callback is used at all. It's not. Sigh. Kill it. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_vm.c |7 --- drivers/gpu/drm/i810/i810_drv.c |1 - drivers/gpu/drm/i830/i830_drv.c |1 - drivers/gpu/drm/i915/i915_drv.c |1 - drivers/gpu/drm/mga/mga_drv.c |1 - drivers/gpu/drm/nouveau/nouveau_drv.c |1 - drivers/gpu/drm/r128/r128_drv.c |1 - drivers/gpu/drm/radeon/radeon_drv.c |2 -- drivers/gpu/drm/savage/savage_drv.c |1 - drivers/gpu/drm/sis/sis_drv.c |1 - drivers/gpu/drm/tdfx/tdfx_drv.c |1 - drivers/gpu/drm/via/via_drv.c |1 - drivers/gpu/drm/vmwgfx/vmwgfx_drv.c |1 - include/drm/drmP.h|2 -- 14 files changed, 0 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c index c3b13fb..407bdc2 100644 --- a/drivers/gpu/drm/drm_vm.c +++ b/drivers/gpu/drm/drm_vm.c @@ -515,13 +515,6 @@ static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) return 0; } -resource_size_t drm_core_get_map_ofs(struct drm_local_map * map) -{ - return map->offset; -} - -EXPORT_SYMBOL(drm_core_get_map_ofs); - resource_size_t drm_core_get_reg_ofs(struct drm_device *dev) { #ifdef __alpha__ diff --git a/drivers/gpu/drm/i810/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c index c1e0275..9d32620 100644 --- a/drivers/gpu/drm/i810/i810_drv.c +++ b/drivers/gpu/drm/i810/i810_drv.c @@ -52,7 +52,6 @@ static struct drm_driver driver = { .device_is_agp = i810_driver_device_is_agp, .reclaim_buffers_locked = i810_driver_reclaim_buffers_locked, .dma_quiescent = i810_driver_dma_quiescent, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = i810_ioctls, .fops = { diff --git a/drivers/gpu/drm/i830/i830_drv.c b/drivers/gpu/drm/i830/i830_drv.c index 44f990b..8156347 100644 --- a/drivers/gpu/drm/i830/i830_drv.c +++ b/drivers/gpu/drm/i830/i830_drv.c @@ -57,7 +57,6 @@ static struct drm_driver driver = { .device_is_agp = i830_driver_device_is_agp, .reclaim_buffers_locked = i830_driver_reclaim_buffers_locked, .dma_quiescent = i830_driver_dma_quiescent, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, #if USE_IRQS .irq_preinstall = i830_driver_irq_preinstall, diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 01e91ea..9c62478 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -544,7 +544,6 @@ static struct drm_driver driver = { .irq_uninstall = i915_driver_irq_uninstall, .irq_handler = i915_driver_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, .master_create = i915_master_create, .master_destroy = i915_master_destroy, diff --git a/drivers/gpu/drm/mga/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c index ddfe161..bf8f998 100644 --- a/drivers/gpu/drm/mga/mga_drv.c +++ b/drivers/gpu/drm/mga/mga_drv.c @@ -60,7 +60,6 @@ static struct drm_driver driver = { .irq_uninstall = mga_driver_irq_uninstall, .irq_handler = mga_driver_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = mga_ioctls, .dma_ioctl = mga_dma_buffers, diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c index c6079e3..2dafa60 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.c +++ b/drivers/gpu/drm/nouveau/nouveau_drv.c @@ -357,7 +357,6 @@ static struct drm_driver driver = { .irq_uninstall = nouveau_irq_uninstall, .irq_handler = nouveau_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = nouveau_ioctls, .fops = { diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c index b806fdc..5a0d865 100644 --- a/drivers/gpu/drm/r128/r128_drv.c +++ b/drivers/gpu/drm/r128/r128_drv.c @@ -56,7 +56,6 @@ static struct drm_driver driver = { .irq_uninstall = r128_driver_irq_uninstall, .irq_handler = r128_driver_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = r128_ioctls, .dma_ioctl = r128_cce_buffers, diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index 4b05563..d9cc7eb 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -204,7 +204,6 @@ static struct drm_driver dr
[PATCH 02/11] drm: kill kernel_context_switch callbacks
Not used by any in-kernel driver. So drop it. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_lock.c | 18 -- include/drm/drmP.h |3 --- 2 files changed, 0 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c index e2f70a5..566d203 100644 --- a/drivers/gpu/drm/drm_lock.c +++ b/drivers/gpu/drm/drm_lock.c @@ -134,12 +134,6 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv) } } - if (dev->driver->kernel_context_switch && - dev->last_context != lock->context) { - dev->driver->kernel_context_switch(dev, dev->last_context, - lock->context); - } - return 0; } @@ -157,7 +151,6 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv) int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv) { struct drm_lock *lock = data; - struct drm_master *master = file_priv->master; if (lock->context == DRM_KERNEL_CONTEXT) { DRM_ERROR("Process %d using kernel context %d\n", @@ -167,17 +160,6 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv) atomic_inc(&dev->counts[_DRM_STAT_UNLOCKS]); - /* kernel_context_switch isn't used by any of the x86 drm -* modules but is required by the Sparc driver. -*/ - if (dev->driver->kernel_context_switch_unlock) - dev->driver->kernel_context_switch_unlock(dev); - else { - if (drm_lock_free(&master->lock, lock->context)) { - /* FIXME: Should really bail out here. */ - } - } - unblock_all_signals(); return 0; } diff --git a/include/drm/drmP.h b/include/drm/drmP.h index c1b9871..2f95420 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -697,9 +697,6 @@ struct drm_driver { int (*dma_quiescent) (struct drm_device *); int (*context_ctor) (struct drm_device *dev, int context); int (*context_dtor) (struct drm_device *dev, int context); - int (*kernel_context_switch) (struct drm_device *dev, int old, - int new); - void (*kernel_context_switch_unlock) (struct drm_device *dev); /** * get_vblank_counter - get raw hardware vblank counter -- 1.7.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 04/11] drm: kill procfs callbacks
Not used by any driver (rightly so!). Kill them. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_proc.c | 13 - include/drm/drmP.h |2 -- 2 files changed, 0 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/drm_proc.c b/drivers/gpu/drm/drm_proc.c index a9ba6b6..e571de5 100644 --- a/drivers/gpu/drm/drm_proc.c +++ b/drivers/gpu/drm/drm_proc.c @@ -151,7 +151,6 @@ fail: int drm_proc_init(struct drm_minor *minor, int minor_id, struct proc_dir_entry *root) { - struct drm_device *dev = minor->dev; char name[64]; int ret; @@ -172,14 +171,6 @@ int drm_proc_init(struct drm_minor *minor, int minor_id, return ret; } - if (dev->driver->proc_init) { - ret = dev->driver->proc_init(minor); - if (ret) { - DRM_ERROR("DRM: Driver failed to initialize " - "/proc/dri.\n"); - return ret; - } - } return 0; } @@ -216,15 +207,11 @@ int drm_proc_remove_files(struct drm_info_list *files, int count, */ int drm_proc_cleanup(struct drm_minor *minor, struct proc_dir_entry *root) { - struct drm_device *dev = minor->dev; char name[64]; if (!root || !minor->proc_root) return 0; - if (dev->driver->proc_cleanup) - dev->driver->proc_cleanup(minor); - drm_proc_remove_files(drm_proc_list, DRM_PROC_ENTRIES, minor); sprintf(name, "%d", minor->index); diff --git a/include/drm/drmP.h b/include/drm/drmP.h index f1d0c2e..7b5123a 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -785,8 +785,6 @@ struct drm_driver { void (*master_drop)(struct drm_device *dev, struct drm_file *file_priv, bool from_release); - int (*proc_init)(struct drm_minor *minor); - void (*proc_cleanup)(struct drm_minor *minor); int (*debugfs_init)(struct drm_minor *minor); void (*debugfs_cleanup)(struct drm_minor *minor); -- 1.7.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 06/11] drm: kill get_reg_ofs callback
Every driver used the default implementation. Fold that one into the only callsite and drop the callback. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_vm.c |6 ++ drivers/gpu/drm/i810/i810_drv.c |1 - drivers/gpu/drm/i830/i830_drv.c |1 - drivers/gpu/drm/i915/i915_drv.c |1 - drivers/gpu/drm/mga/mga_drv.c |1 - drivers/gpu/drm/nouveau/nouveau_drv.c |1 - drivers/gpu/drm/r128/r128_drv.c |1 - drivers/gpu/drm/radeon/radeon_drv.c |2 -- drivers/gpu/drm/savage/savage_drv.c |1 - drivers/gpu/drm/sis/sis_drv.c |1 - drivers/gpu/drm/tdfx/tdfx_drv.c |1 - drivers/gpu/drm/via/via_drv.c |1 - drivers/gpu/drm/vmwgfx/vmwgfx_drv.c |1 - include/drm/drmP.h|2 -- 14 files changed, 2 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c index 407bdc2..630bf4e 100644 --- a/drivers/gpu/drm/drm_vm.c +++ b/drivers/gpu/drm/drm_vm.c @@ -515,7 +515,7 @@ static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) return 0; } -resource_size_t drm_core_get_reg_ofs(struct drm_device *dev) +static resource_size_t drm_core_get_reg_ofs(struct drm_device *dev) { #ifdef __alpha__ return dev->hose->dense_mem_base - dev->hose->mem_space->start; @@ -524,8 +524,6 @@ resource_size_t drm_core_get_reg_ofs(struct drm_device *dev) #endif } -EXPORT_SYMBOL(drm_core_get_reg_ofs); - /** * mmap DMA memory. * @@ -610,7 +608,7 @@ int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma) /* fall through to _DRM_FRAME_BUFFER... */ case _DRM_FRAME_BUFFER: case _DRM_REGISTERS: - offset = dev->driver->get_reg_ofs(dev); + offset = drm_core_get_reg_ofs(dev); vma->vm_flags |= VM_IO; /* not in core dump */ vma->vm_page_prot = drm_io_prot(map->type, vma); if (io_remap_pfn_range(vma, vma->vm_start, diff --git a/drivers/gpu/drm/i810/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c index 9d32620..0c2c673 100644 --- a/drivers/gpu/drm/i810/i810_drv.c +++ b/drivers/gpu/drm/i810/i810_drv.c @@ -52,7 +52,6 @@ static struct drm_driver driver = { .device_is_agp = i810_driver_device_is_agp, .reclaim_buffers_locked = i810_driver_reclaim_buffers_locked, .dma_quiescent = i810_driver_dma_quiescent, - .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = i810_ioctls, .fops = { .owner = THIS_MODULE, diff --git a/drivers/gpu/drm/i830/i830_drv.c b/drivers/gpu/drm/i830/i830_drv.c index 8156347..4d7099a 100644 --- a/drivers/gpu/drm/i830/i830_drv.c +++ b/drivers/gpu/drm/i830/i830_drv.c @@ -57,7 +57,6 @@ static struct drm_driver driver = { .device_is_agp = i830_driver_device_is_agp, .reclaim_buffers_locked = i830_driver_reclaim_buffers_locked, .dma_quiescent = i830_driver_dma_quiescent, - .get_reg_ofs = drm_core_get_reg_ofs, #if USE_IRQS .irq_preinstall = i830_driver_irq_preinstall, .irq_postinstall = i830_driver_irq_postinstall, diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 9c62478..a59f231 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -544,7 +544,6 @@ static struct drm_driver driver = { .irq_uninstall = i915_driver_irq_uninstall, .irq_handler = i915_driver_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_reg_ofs = drm_core_get_reg_ofs, .master_create = i915_master_create, .master_destroy = i915_master_destroy, #if defined(CONFIG_DEBUG_FS) diff --git a/drivers/gpu/drm/mga/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c index bf8f998..bc13f40 100644 --- a/drivers/gpu/drm/mga/mga_drv.c +++ b/drivers/gpu/drm/mga/mga_drv.c @@ -60,7 +60,6 @@ static struct drm_driver driver = { .irq_uninstall = mga_driver_irq_uninstall, .irq_handler = mga_driver_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = mga_ioctls, .dma_ioctl = mga_dma_buffers, .fops = { diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c index 2dafa60..35485f3 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.c +++ b/drivers/gpu/drm/nouveau/nouveau_drv.c @@ -357,7 +357,6 @@ static struct drm_driver driver = { .irq_uninstall = nouveau_irq_uninstall, .irq_handler = nouveau_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = nouveau_ioctls, .fops = { .owner = THIS_MODULE, diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c index 5a0d865..91f21c9 100644 --- a/drivers/gpu/drm/r128/r128_drv.c +++ b/drivers/gpu/drm/r128/r128_drv.c @@ -56,7 +56,6 @@ static struc
[PATCH 07/11] drm: kill context_ctor callback
It's not used by any driver. The destructor callback is unfortunately used by the via driver in a rather convoluted piece of code used to reimplement something resembling broken futexes. I didn't dare to touch this code. But at least kill the needless NULL assignemt in the sis driver. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_context.c |8 drivers/gpu/drm/sis/sis_drv.c |1 - include/drm/drmP.h|1 - 3 files changed, 0 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c index 2607753..6d440fb 100644 --- a/drivers/gpu/drm/drm_context.c +++ b/drivers/gpu/drm/drm_context.c @@ -333,14 +333,6 @@ int drm_addctx(struct drm_device *dev, void *data, return -ENOMEM; } - if (ctx->handle != DRM_KERNEL_CONTEXT) { - if (dev->driver->context_ctor) - if (!dev->driver->context_ctor(dev, ctx->handle)) { - DRM_DEBUG("Running out of ctxs or memory.\n"); - return -ENOMEM; - } - } - ctx_entry = kmalloc(sizeof(*ctx_entry), GFP_KERNEL); if (!ctx_entry) { DRM_DEBUG("out of memory\n"); diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c index 350e512..c9aa0c4 100644 --- a/drivers/gpu/drm/sis/sis_drv.c +++ b/drivers/gpu/drm/sis/sis_drv.c @@ -68,7 +68,6 @@ static struct drm_driver driver = { .driver_features = DRIVER_USE_AGP | DRIVER_USE_MTRR, .load = sis_driver_load, .unload = sis_driver_unload, - .context_dtor = NULL, .dma_quiescent = sis_idle, .reclaim_buffers = NULL, .reclaim_buffers_idlelocked = sis_reclaim_buffers_locked, diff --git a/include/drm/drmP.h b/include/drm/drmP.h index f5dd3df..8f91459 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -694,7 +694,6 @@ struct drm_driver { int (*resume) (struct drm_device *); int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv); int (*dma_quiescent) (struct drm_device *); - int (*context_ctor) (struct drm_device *dev, int context); int (*context_dtor) (struct drm_device *dev, int context); /** -- 1.7.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 03/11] drm: kill dma_ready callbacks
Not used by any driver. So drop it. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_lock.c |3 --- include/drm/drmP.h |1 - 2 files changed, 0 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c index 566d203..1973d75 100644 --- a/drivers/gpu/drm/drm_lock.c +++ b/drivers/gpu/drm/drm_lock.c @@ -122,9 +122,6 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv) block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask); } - if (dev->driver->dma_ready && (lock->flags & _DRM_LOCK_READY)) - dev->driver->dma_ready(dev); - if (dev->driver->dma_quiescent && (lock->flags & _DRM_LOCK_QUIESCENT)) { if (dev->driver->dma_quiescent(dev)) { diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 2f95420..f1d0c2e 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -693,7 +693,6 @@ struct drm_driver { int (*suspend) (struct drm_device *, pm_message_t state); int (*resume) (struct drm_device *); int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv); - void (*dma_ready) (struct drm_device *); int (*dma_quiescent) (struct drm_device *); int (*context_ctor) (struct drm_device *dev, int context); int (*context_dtor) (struct drm_device *dev, int context); -- 1.7.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 10/11] drm: kill dev->timer
Totally unused. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_drv.c |2 -- drivers/gpu/drm/drm_stub.c |1 - include/drm/drmP.h |1 - 3 files changed, 0 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index ea4b6c2..3d42b4e 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c @@ -177,8 +177,6 @@ int drm_lastclose(struct drm_device * dev) mutex_lock(&dev->struct_mutex); - del_timer(&dev->timer); - /* Clear AGP information */ if (drm_core_has_AGP(dev) && dev->agp && !drm_core_check_feature(dev, DRIVER_MODESET)) { diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index e3b5cfc..b5a6536 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c @@ -238,7 +238,6 @@ static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev, spin_lock_init(&dev->count_lock); spin_lock_init(&dev->event_lock); - init_timer(&dev->timer); mutex_init(&dev->struct_mutex); mutex_init(&dev->ctxlist_mutex); diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 540cab6..6866224 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -957,7 +957,6 @@ struct drm_device { __volatile__ long context_flag; /**< Context swapping flag */ __volatile__ long interrupt_flag; /**< Interruption handler flag */ __volatile__ long dma_flag; /**< DMA dispatch flag */ - struct timer_list timer;/**< Timer for delaying ctx switch */ wait_queue_head_t context_wait; /**< Processes waiting on ctx switch */ int last_checked; /**< Last context checked for DMA */ int last_context; /**< Last current context */ -- 1.7.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 08/11] drm: don't export drm_get_drawable_info
Not used by any in-tree user. So drop it. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_drawable.c |3 +-- include/drm/drmP.h |2 -- 2 files changed, 1 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_drawable.c b/drivers/gpu/drm/drm_drawable.c index c53c976..170e531 100644 --- a/drivers/gpu/drm/drm_drawable.c +++ b/drivers/gpu/drm/drm_drawable.c @@ -173,11 +173,10 @@ error: /** * Caller must hold the drawable spinlock! */ -struct drm_drawable_info *drm_get_drawable_info(struct drm_device *dev, drm_drawable_t id) +static struct drm_drawable_info *drm_get_drawable_info(struct drm_device *dev, drm_drawable_t id) { return idr_find(&dev->drw_idr, id); } -EXPORT_SYMBOL(drm_get_drawable_info); static int drm_drawable_free(int idr, void *p, void *data) { diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 8f91459..af62612 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1209,8 +1209,6 @@ extern int drm_rmdraw(struct drm_device *dev, void *data, struct drm_file *file_priv); extern int drm_update_drawable_info(struct drm_device *dev, void *data, struct drm_file *file_priv); -extern struct drm_drawable_info *drm_get_drawable_info(struct drm_device *dev, - drm_drawable_t id); extern void drm_drawable_free_all(struct drm_device *dev); /* Authentication IOCTL support (drm_auth.h) */ -- 1.7.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 11/11] drm: kill gem_free_object_unlocked driver callback
Not used by any current driver. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_gem.c |4 +--- include/drm/drmP.h|1 - 2 files changed, 1 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index 33dad3f..0c004e8 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -463,9 +463,7 @@ drm_gem_object_free_unlocked(struct kref *kref) struct drm_gem_object *obj = (struct drm_gem_object *) kref; struct drm_device *dev = obj->dev; - if (dev->driver->gem_free_object_unlocked != NULL) - dev->driver->gem_free_object_unlocked(obj); - else if (dev->driver->gem_free_object != NULL) { + if (dev->driver->gem_free_object != NULL) { mutex_lock(&dev->struct_mutex); dev->driver->gem_free_object(obj); mutex_unlock(&dev->struct_mutex); diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 6866224..f7ade6b 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -793,7 +793,6 @@ struct drm_driver { */ int (*gem_init_object) (struct drm_gem_object *obj); void (*gem_free_object) (struct drm_gem_object *obj); - void (*gem_free_object_unlocked) (struct drm_gem_object *obj); /* vga arb irq handler */ void (*vgaarb_irq)(struct drm_device *dev, bool state); -- 1.7.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 09/11] drm: replace drawable ioctl by noops
The information supplied by userspace through these ioctls is only accessible by dev->drw_idr. But there's no in-tree user of that. Information might also leak via the RM_DRAW ioctl (in the form of a negative return code in case the drawable doesn't exist). But the only user of these ioctls, mesas' miniglx, does not use the RM_DRAW ioctl. Therefore it's safe to replace these three ioctls with noops and rip out the implementation. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/Makefile |2 +- drivers/gpu/drm/drm_drawable.c | 197 drivers/gpu/drm/drm_drv.c |8 +- drivers/gpu/drm/drm_stub.c |3 - include/drm/drmP.h | 15 --- 5 files changed, 4 insertions(+), 221 deletions(-) delete mode 100644 drivers/gpu/drm/drm_drawable.c diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index abe3f44..10585ce 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -5,7 +5,7 @@ ccflags-y := -Iinclude/drm drm-y := drm_auth.o drm_buffer.o drm_bufs.o drm_cache.o \ - drm_context.o drm_dma.o drm_drawable.o \ + drm_context.o drm_dma.o \ drm_drv.o drm_fops.o drm_gem.o drm_ioctl.o drm_irq.o \ drm_lock.o drm_memory.o drm_proc.o drm_stub.o drm_vm.o \ drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o \ diff --git a/drivers/gpu/drm/drm_drawable.c b/drivers/gpu/drm/drm_drawable.c deleted file mode 100644 index 170e531..000 --- a/drivers/gpu/drm/drm_drawable.c +++ /dev/null @@ -1,197 +0,0 @@ -/** - * \file drm_drawable.c - * IOCTLs for drawables - * - * \author Rickard E. (Rik) Faith - * \author Gareth Hughes - * \author Michel Dänzer - */ - -/* - * Created: Tue Feb 2 08:37:54 1999 by fa...@valinux.com - * - * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. - * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. - * Copyright 2006 Tungsten Graphics, Inc., Bismarck, North Dakota. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#include "drmP.h" - -/** - * Allocate drawable ID and memory to store information about it. - */ -int drm_adddraw(struct drm_device *dev, void *data, struct drm_file *file_priv) -{ - unsigned long irqflags; - struct drm_draw *draw = data; - int new_id = 0; - int ret; - -again: - if (idr_pre_get(&dev->drw_idr, GFP_KERNEL) == 0) { - DRM_ERROR("Out of memory expanding drawable idr\n"); - return -ENOMEM; - } - - spin_lock_irqsave(&dev->drw_lock, irqflags); - ret = idr_get_new_above(&dev->drw_idr, NULL, 1, &new_id); - if (ret == -EAGAIN) { - spin_unlock_irqrestore(&dev->drw_lock, irqflags); - goto again; - } - - spin_unlock_irqrestore(&dev->drw_lock, irqflags); - - draw->handle = new_id; - - DRM_DEBUG("%d\n", draw->handle); - - return 0; -} - -/** - * Free drawable ID and memory to store information about it. - */ -int drm_rmdraw(struct drm_device *dev, void *data, struct drm_file *file_priv) -{ - struct drm_draw *draw = data; - unsigned long irqflags; - struct drm_drawable_info *info; - - spin_lock_irqsave(&dev->drw_lock, irqflags); - - info = drm_get_drawable_info(dev, draw->handle); - if (info == NULL) { - spin_unlock_irqrestore(&dev->drw_lock, irqflags); - return -EINVAL; - } - kfree(info->rects); - kfree(info); - - idr_remove(&dev->drw_idr, draw->handle); - - spin_unlock_irqrestore(&dev->drw_lock, irqflags); - DRM_DEBUG("%d\n", draw->handle); - return 0; -} - -int drm_update_drawable_info(struct drm_device *dev, void *data, struct drm_file *file_priv) -{ - struct drm_update_draw *update = data; - unsigned long irqflags; -
Re: [PATCH 09/11] drm: replace drawable ioctl by noops
On Don, 2010-04-29 at 11:14 +0200, Daniel Vetter wrote: > The information supplied by userspace through these ioctls is only > accessible by dev->drw_idr. But there's no in-tree user of that. > Information might also leak via the RM_DRAW ioctl (in the form of > a negative return code in case the drawable doesn't exist). But the > only user of these ioctls, mesas' miniglx, does not use the RM_DRAW > ioctl. FYI, the X server DRI1 code also uses these ioctls, via the libdrm functions drmCreate/DestroyDrawable and drmUpdateDrawableInfo(). > Therefore it's safe to replace these three ioctls with noops and rip > out the implementation. That should still true though, as none of the DRM drivers use the drawable cliprect information anymore. Might still be worth double-checking that this doesn't break DRI without KMS on your RV570. -- Earthling Michel Dänzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 09/11] drm: replace drawable ioctl by noops
On Thu, Apr 29, 2010 at 11:32:36AM +0200, Michel Dänzer wrote: > On Don, 2010-04-29 at 11:14 +0200, Daniel Vetter wrote: > > The information supplied by userspace through these ioctls is only > > accessible by dev->drw_idr. But there's no in-tree user of that. > > Information might also leak via the RM_DRAW ioctl (in the form of > > a negative return code in case the drawable doesn't exist). But the > > only user of these ioctls, mesas' miniglx, does not use the RM_DRAW > > ioctl. > > FYI, the X server DRI1 code also uses these ioctls, via the libdrm > functions drmCreate/DestroyDrawable and drmUpdateDrawableInfo(). Thanks, I've overlooked the DRI stuff in the xserver. There, drmDestroyDrawable is used (but the return code is ignored), so should be fine. The only place the return value is checked when creating a drawable for the first time (to free any allocations already made). Should be safe, too. > > Therefore it's safe to replace these three ioctls with noops and rip > > out the implementation. > > That should still true though, as none of the DRM drivers use the > drawable cliprect information anymore. Might still be worth > double-checking that this doesn't break DRI without KMS on your RV570. I've tried to test DRI1, but that seems to be in a hilariously broken state on my box: Windows are smeared all over the screen (tiling parameters mismatch?) under certain circumstances. But glxinfo shows the correct render string, AIGLX seems to load correctly (according to Xorg.log) and kde's opengl cover switch looks all right. Also, after some time it hangs with the dmesg complaining that someone is monopolizing the heavyweight lock (in drm_lock_take). Results without these patches are similar. I haven't used ums radeon since months, so I don't think you can count this as useful testing ;) Yours, Daniel -- Daniel Vetter Mail: dan...@ffwll.ch Mobile: +41 (0)79 365 57 48 ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 27729] [r300g, mesa] gallium compressed texture problems
https://bugs.freedesktop.org/show_bug.cgi?id=27729 --- Comment #16 from Marek Olšák 2010-04-29 05:11:00 PDT --- (In reply to comment #15) > In the meantime 95bfc8f32571751c5c9ec6d8e84f5e3c28d1b20e has been committed > from Marek Olšák which is a subset of attached "patch for r300g > is_format_supported()", but which appears to also fix the r300g problem. Yes but the S3TC code appears to be bloody slow, e.g. the TA3D game seems to load a new texture everytime a new GUI element shows up and during that the game basically locks up for 5 seconds with 100% CPU load. This is unbearable. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 27887] New: r300g: depth textures + fbo = broken glClear()
https://bugs.freedesktop.org/show_bug.cgi?id=27887 Summary: r300g: depth textures + fbo = broken glClear() 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.freedesktop.org ReportedBy: wixorp...@gmail.com Created an attachment (id=35333) --> (https://bugs.freedesktop.org/attachment.cgi?id=35333) test case Attached code does not clear the screen as expected. The classic r300 driver fails too. Sometimes geometry rendering gets messed up (however it is not as easily reproducible). Hardware: Radeon X1300 (RV515), kernel 2.6.33, xorg 1.7.7 rc1, driver from git (up to commit 7327a84b...). -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 09/11] drm: replace drawable ioctl by noops
On Don, 2010-04-29 at 14:02 +0200, Daniel Vetter wrote: > On Thu, Apr 29, 2010 at 11:32:36AM +0200, Michel Dänzer wrote: > > On Don, 2010-04-29 at 11:14 +0200, Daniel Vetter wrote: > > > The information supplied by userspace through these ioctls is only > > > accessible by dev->drw_idr. But there's no in-tree user of that. > > > Information might also leak via the RM_DRAW ioctl (in the form of > > > a negative return code in case the drawable doesn't exist). But the > > > only user of these ioctls, mesas' miniglx, does not use the RM_DRAW > > > ioctl. > > > > FYI, the X server DRI1 code also uses these ioctls, via the libdrm > > functions drmCreate/DestroyDrawable and drmUpdateDrawableInfo(). > > Thanks, I've overlooked the DRI stuff in the xserver. There, > drmDestroyDrawable is used (but the return code is ignored), so should be > fine. The only place the return value is checked when creating a drawable > for the first time (to free any allocations already made). Should be safe, > too. > > > > Therefore it's safe to replace these three ioctls with noops and rip > > > out the implementation. > > > > That should still true though, as none of the DRM drivers use the > > drawable cliprect information anymore. Might still be worth > > double-checking that this doesn't break DRI without KMS on your RV570. > > I've tried to test DRI1, but that seems to be in a hilariously broken > state on my box: Windows are smeared all over the screen (tiling > parameters mismatch?) under certain circumstances. But glxinfo shows the > correct render string, AIGLX seems to load correctly (according to > Xorg.log) and kde's opengl cover switch looks all right. Also, after some > time it hangs with the dmesg complaining that someone is monopolizing the > heavyweight lock (in drm_lock_take). Results without these patches are > similar. > > I haven't used ums radeon since months, so I don't think you can count > this as useful testing ;) I think it's good enough for the purpose of this change, as I'd expect any problem caused by it to manifest when starting or quitting any 3D app (such as the one doing the OpenGL cover switch). So, here's my Reviewed-by: Michel Dänzer for it. -- Earthling Michel Dänzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 09/11] drm: replace drawable ioctl by noops
On Thu, Apr 29, 2010 at 5:14 AM, Daniel Vetter wrote: > The information supplied by userspace through these ioctls is only > accessible by dev->drw_idr. But there's no in-tree user of that. > Information might also leak via the RM_DRAW ioctl (in the form of > a negative return code in case the drawable doesn't exist). But the > only user of these ioctls, mesas' miniglx, does not use the RM_DRAW > ioctl. > > Therefore it's safe to replace these three ioctls with noops and rip > out the implementation. Looks almost exactly like this one: http://www.mail-archive.com/dri-de...@lists.sourceforge.net/msg39176.html Except I made adddraw a stub that always returns 1, but reading through the code (hw/xfree86/dri, glx/glxdri.c and the radeon dri driver) I don't see anything that fails if we just return zero (or a random number for that matter). The only difference is that if we return zero, hw/xfree86/dri/dri.c will keep trying to create a drm drawable (look for drmCreateDrawable) every time somebody creates a dri drawable, but since that's a noop, who cares. Reviewed-by: Kristian Høgsberg > Signed-off-by: Daniel Vetter > --- > drivers/gpu/drm/Makefile | 2 +- > drivers/gpu/drm/drm_drawable.c | 197 > > drivers/gpu/drm/drm_drv.c | 8 +- > drivers/gpu/drm/drm_stub.c | 3 - > include/drm/drmP.h | 15 --- > 5 files changed, 4 insertions(+), 221 deletions(-) > delete mode 100644 drivers/gpu/drm/drm_drawable.c > > diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile > index abe3f44..10585ce 100644 > --- a/drivers/gpu/drm/Makefile > +++ b/drivers/gpu/drm/Makefile > @@ -5,7 +5,7 @@ > ccflags-y := -Iinclude/drm > > drm-y := drm_auth.o drm_buffer.o drm_bufs.o drm_cache.o \ > - drm_context.o drm_dma.o drm_drawable.o \ > + drm_context.o drm_dma.o \ > drm_drv.o drm_fops.o drm_gem.o drm_ioctl.o drm_irq.o \ > drm_lock.o drm_memory.o drm_proc.o drm_stub.o drm_vm.o \ > drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o \ > diff --git a/drivers/gpu/drm/drm_drawable.c b/drivers/gpu/drm/drm_drawable.c > deleted file mode 100644 > index 170e531..000 > --- a/drivers/gpu/drm/drm_drawable.c > +++ /dev/null > @@ -1,197 +0,0 @@ > -/** > - * \file drm_drawable.c > - * IOCTLs for drawables > - * > - * \author Rickard E. (Rik) Faith > - * \author Gareth Hughes > - * \author Michel Dänzer > - */ > - > -/* > - * Created: Tue Feb 2 08:37:54 1999 by fa...@valinux.com > - * > - * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. > - * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. > - * Copyright 2006 Tungsten Graphics, Inc., Bismarck, North Dakota. > - * All Rights Reserved. > - * > - * Permission is hereby granted, free of charge, to any person obtaining a > - * copy of this software and associated documentation files (the "Software"), > - * to deal in the Software without restriction, including without limitation > - * the rights to use, copy, modify, merge, publish, distribute, sublicense, > - * and/or sell copies of the Software, and to permit persons to whom the > - * Software is furnished to do so, subject to the following conditions: > - * > - * The above copyright notice and this permission notice (including the next > - * paragraph) shall be included in all copies or substantial portions of the > - * Software. > - * > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > - * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR > - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, > - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > - * OTHER DEALINGS IN THE SOFTWARE. > - */ > - > -#include "drmP.h" > - > -/** > - * Allocate drawable ID and memory to store information about it. > - */ > -int drm_adddraw(struct drm_device *dev, void *data, struct drm_file > *file_priv) > -{ > - unsigned long irqflags; > - struct drm_draw *draw = data; > - int new_id = 0; > - int ret; > - > -again: > - if (idr_pre_get(&dev->drw_idr, GFP_KERNEL) == 0) { > - DRM_ERROR("Out of memory expanding drawable idr\n"); > - return -ENOMEM; > - } > - > - spin_lock_irqsave(&dev->drw_lock, irqflags); > - ret = idr_get_new_above(&dev->drw_idr, NULL, 1, &new_id); > - if (ret == -EAGAIN) { > - spin_unlock_irqrestore(&dev->drw_lock, irqflags); > - goto again; > - } > - > - spin_unlock_irqrestore(&dev->drw_lock, irqflags); > - > - draw->handle = new_id; > - > - DRM_DEBUG("%d\n", draw->handle); > - > - return 0; > -} > - > -/** > - * Free drawable ID and memory to store infor
[Bug 27901] New: GLSL cos/sin functions broken on Mesa R600 driver
https://bugs.freedesktop.org/show_bug.cgi?id=27901 Summary: GLSL cos/sin functions broken on Mesa R600 driver Product: Mesa Version: git Platform: All OS/Version: All Status: NEW Severity: normal Priority: medium Component: Drivers/DRI/R600 AssignedTo: dri-devel@lists.freedesktop.org ReportedBy: alain.per...@gmail.com As I was playing with OpenGL examples from Joe Groff's blog at http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Contents.html, I noticed that the cos and sin GLSL functions are broken on the Mesa R600 driver. Other trigonometric functions may be broken as well. The blog entries provide two versions of a sample program that blend two images together using GLSL. The blend factor is computed from a timestamp using the sin function. There's no problem with the example from chapter 2 where the blend factor is computed on the CPU (source code at http://github.com/jckarter/hello-gl). Mesa R600 driver fails to properly run the example from chapter 3 where the blend factor is computed on the GPU using the GLSL sin function. Mesa software renderer has no problem running this example (source code at http://github.com/jckarter/hello-gl-ch3). Looking at GLSL 1.10 spec, R600 ISA doc and R600 driver code (function assemble_TRIG in r700_assembler.c), I guess there is two problems : 1. both the GLSL cos/sin functions and R600 hardware expects the angle to be specified in radians, but the assemble_TRIG function divides the specified angle by 2 * PI (the result is no more radians). 2. R600 hardware expects the angle to be in the range [-PI, PI] while GLSL does not specify a range, and the assemble_TRIG function does not clip the angle in the required range. A quick and dirty hack to make the example from chapter 3 work with R600 driver is to clip the timestamp to the [-PI, PI] range and then to multiply it by 2 * PI : --- hello-gl.c.old 2010-04-29 20:55:55.0 +0200 +++ hello-gl.c 2010-04-29 20:56:12.0 +0200 @@ -202,7 +202,10 @@ static void update_timer(void) { int milliseconds = glutGet(GLUT_ELAPSED_TIME); -g_resources.timer = (float)milliseconds * 0.001f; +g_resources.timer = fmodf((float)milliseconds * 0.001f, 2.0f * 3.1415926535897f); +if(g_resources.timer > 3.1415926535897f) +g_resources.timer -= 2.0f * 3.1415926535897f; +g_resources.timer *= 2.0f * 3.1415926535897f; glutPostRedisplay(); } My config: RV670 (Radeon HD 3870) Kubuntu 10.04 "Lucid Lynx" 64-bit Linux kernel 2.6.34-rc5 from Ubuntu Mainline Kernel PPA libdrm, radeon, Mesa, Xorg from Xorg-edgers PPA -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 27822] [REGR] Soft lockup with "[TTM] Buffer eviction failed" on resume
https://bugs.freedesktop.org/show_bug.cgi?id=27822 --- Comment #5 from Rafał Miłecki 2010-04-29 14:20:21 PDT --- Result of first git bisect: There are only 'skip'ped commits left to test. The first bad commit could be any of: 82c5da6bf8b55a931b042fb531083863d26c8020 0a2d50e3a8faaf36cde36920431586090411ea15 We cannot bisect more! Unfortunately I'd to: # skip: [82c5da6bf8b55a931b042fb531083863d26c8020] drm/ttm: ttm_fault callback to allow driver to handle bo placement V6 because this commit caused 3 locks up in a row for me. First at KDE logging screen, next two as suspending (just before machines was expected to power off). So it seems suspected commits are: commit 0a2d50e3a8faaf36cde36920431586090411ea15 Author: Jerome Glisse Date: Fri Apr 9 14:39:24 2010 +0200 drm/radeon/kms: add support for new fault callback V7 and commit 82c5da6bf8b55a931b042fb531083863d26c8020 Author: Jerome Glisse Date: Fri Apr 9 14:39:23 2010 +0200 drm/ttm: ttm_fault callback to allow driver to handle bo placement V6 -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 27904] New: r300g segfaults on M56GL
https://bugs.freedesktop.org/show_bug.cgi?id=27904 Summary: r300g segfaults on M56GL Product: Mesa Version: git Platform: Other OS/Version: All Status: NEW Severity: normal Priority: medium Component: Drivers/DRI/r300 AssignedTo: dri-devel@lists.freedesktop.org ReportedBy: pa...@rojtberg.net current git, linux 2.6.32-21-generic (ubuntu lucid) Starting program: /usr/bin/glxgears [Thread debugging using libthread_db enabled] Program received signal SIGSEGV, Segmentation fault. 0x004e68e9 in rc_pair_regalloc (c=0xbfffee8c, maxtemps=1) at radeon_pair_regalloc.c:347 Line number 347 out of range; radeon_pair_regalloc.c has 280 lines. (gdb) bt #0 0x004e68e9 in rc_pair_regalloc (c=0xbfffee8c, maxtemps=1) at radeon_pair_regalloc.c:347 #1 0x004e03dd in r3xx_compile_fragment_program (c=0xbfffee8c) at r3xx_fragprog.c:159 #2 0x004db6f3 in r300_translate_fragment_shader (r300=, shader=0x80d0ad8, tokens=0x80ef010) at r300_fs.c:276 #3 0x004dbea7 in r300_pick_fragment_shader (r300=0x8066f08) at r300_fs.c:346 #4 0x004d217f in r300_bind_fs_state (pipe=0x8066f08, shader=0x4e6780) at r300_state.c:718 #5 0x00628946 in cso_set_fragment_shader_handle (ctx=0x80e84d8, handle=0x4e6780) at cso_cache/cso_context.c:742 #6 0x005f29e0 in update_fp (st=0x80c3e88) at state_tracker/st_atom_shader.c:174 #7 0x005ef9b3 in st_validate_state (st=0x80c3e88) at state_tracker/st_atom.c:167 #8 0x005f6859 in st_Clear (ctx=0x8087258, mask=18) at state_tracker/st_cb_clear.c:460 #9 0x005a3936 in _mesa_Clear (mask=0) at main/clear.c:178 #10 0x080493d7 in ?? () #11 0x0804a762 in ?? () #12 0x00305bd6 in __libc_start_main (main=0x804a230, argc=1, ubp_av=0xb484, init=0x804ad80, fini=0x804ad70, rtld_fini=0x11e0c0 <_dl_fini>, stack_end=0xb47c) at libc-start.c:226 -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 27866] d-r-t crashes at radeon_bo_unref() with dynpm=1
https://bugs.freedesktop.org/show_bug.cgi?id=27866 --- Comment #5 from Andy Furniss 2010-04-29 16:16:27 PDT --- (In reply to comment #4) I can't (so far) crash with today's d-r-t. Could just be luck I suppose, but it only took 20 mins of openarena to get two yesterday and I've just gone 50 mins OK. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 27866] d-r-t crashes at radeon_bo_unref() with dynpm=1
https://bugs.freedesktop.org/show_bug.cgi?id=27866 --- Comment #6 from Alex Deucher 2010-04-29 16:46:19 PDT --- should be fixed with this commit: http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commitdiff;h=7a1ffce50373c177d3f6eecce52badc40c90e1dd -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 26570] [r6xx DRI] KMS enabled: GLSL white washing corruption (seen in Second Life)
https://bugs.freedesktop.org/show_bug.cgi?id=26570 --- Comment #6 from Shawn Starr 2010-04-29 20:05:07 PDT --- Still happening, its not compiling the GLSL shader programs. If it is it seems to take a very, very long time. It shows pretty much all white in game. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 26570] [r6xx DRI] KMS enabled: GLSL white washing corruption (seen in Second Life)
https://bugs.freedesktop.org/show_bug.cgi?id=26570 --- Comment #7 from Shawn Starr 2010-04-29 20:05:33 PDT --- 2.6.34-rc5 + airlied drm branches, libdrm git master, mesa git master, ati DDX 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. ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[Bug 27729] [r300g - RV530] main/mipmap.c:144: do_row: Assertion `comps >= 1' failed
https://bugs.freedesktop.org/show_bug.cgi?id=27729 Fabio Pedretti changed: What|Removed |Added Attachment #35316|0 |1 is obsolete|| --- Comment #14 from Fabio Pedretti 2010-04-29 01:03:47 PDT --- Created an attachment (id=35327) --> (https://bugs.freedesktop.org/attachment.cgi?id=35327) swrastg debug output with "ST_DEBUG=mesa,tgsi" Anyway you may also want to try the game yourself from http://trac.wildfiregames.com/wiki/LatestRelease since it appears it will be a common open source game when finished. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[Bug 27729] [r300g, mesa] gallium compressed texture problems
https://bugs.freedesktop.org/show_bug.cgi?id=27729 Fabio Pedretti changed: What|Removed |Added Summary|[r300g - RV530] |[r300g, mesa] gallium |main/mipmap.c:144: do_row: |compressed texture problems |Assertion `comps >= 1' | |failed | -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[Bug 27729] [r300g, mesa] gallium compressed texture problems
https://bugs.freedesktop.org/show_bug.cgi?id=27729 Fabio Pedretti changed: What|Removed |Added CC||maraeo at gmail.com --- Comment #15 from Fabio Pedretti 2010-04-29 01:11:49 PDT --- In the meantime 95bfc8f32571751c5c9ec6d8e84f5e3c28d1b20e has been committed from Marek Ol??k which is a subset of attached "patch for r300g is_format_supported()", but which appears to also fix the r300g problem. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[PATCH] drm/radeon/kms: R3XX-R4XX fix GPU reset code
On Mon, 2010-04-26 at 22:23 +0200, Jerome Glisse wrote: > Previous reset code leaded to computer hard lockup (need to unplug > the power too reboot the computer) on various configuration. This > patch change the reset code to avoid hard lockup. The GPU reset > is failing most of the time but at least user can log in remotely > or properly shutdown the computer. > > Two issues were leading to hard lockup : > - Writting to the scratch register lead to hard lockup most likely > because the write back mecanism is in fuzy state after GPU lockup. > - Resetting the GPU memory controller and not reinitializing it > after leaded to hard lockup. We did only reinitialize in case of > successfull reset thus unsuccessfull reset quickly leaded to hard > lockup. > > Signed-off-by: Jerome Glisse Unfortunately, this doesn't seem to help for the RV350 in my PowerBook. GPU lockups still turn into machine hardlocks, which is a regression from before the GPU reset rework. -- Earthling Michel D?nzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer
[PATCH 00/11] various cleanups and dead coode removals in drm core
Hi all, [Dave, this is the patch series I've talked about on irc a few days ago.] This patch series kills various things I've stumbled over while reading through the drm core code. It mostly removes unnecessary stuff on the drm core <-> driver interface. Tested on my i845, i945 and agp rv570. All drm drivers compile-tested. Please review and merge what you like for -next. Save patch 9 which depends upon patch 8 (mucks around in the same place), they should be all independent. So you can mix&match what you like. Thanks, Daniel Daniel Vetter (11): drm: don't export drm_sg_alloc drm: kill kernel_context_switch callbacks drm: kill dma_ready callbacks drm: kill procfs callbacks drm: kill drm_map_ofs callbacks drm: kill get_reg_ofs callback drm: kill context_ctor callback drm: don't export drm_get_drawable_info drm: replace drawable ioctl by noops drm: kill dev->timer drm: kill gem_free_object_unlocked driver callback drivers/gpu/drm/Makefile |2 +- drivers/gpu/drm/drm_context.c |8 -- drivers/gpu/drm/drm_drawable.c| 198 - drivers/gpu/drm/drm_drv.c | 10 +- drivers/gpu/drm/drm_gem.c |4 +- drivers/gpu/drm/drm_lock.c| 21 drivers/gpu/drm/drm_proc.c| 13 -- drivers/gpu/drm/drm_scatter.c |2 - drivers/gpu/drm/drm_stub.c|4 - drivers/gpu/drm/drm_vm.c | 13 +-- drivers/gpu/drm/i810/i810_drv.c |2 - drivers/gpu/drm/i830/i830_drv.c |2 - drivers/gpu/drm/i915/i915_drv.c |2 - drivers/gpu/drm/mga/mga_drv.c |2 - drivers/gpu/drm/nouveau/nouveau_drv.c |2 - drivers/gpu/drm/r128/r128_drv.c |2 - drivers/gpu/drm/radeon/radeon_drv.c |4 - drivers/gpu/drm/savage/savage_drv.c |2 - drivers/gpu/drm/sis/sis_drv.c |3 - drivers/gpu/drm/tdfx/tdfx_drv.c |2 - drivers/gpu/drm/via/via_drv.c |2 - drivers/gpu/drm/vmwgfx/vmwgfx_drv.c |2 - include/drm/drmP.h| 30 - 23 files changed, 7 insertions(+), 325 deletions(-) delete mode 100644 drivers/gpu/drm/drm_drawable.c
[PATCH 01/11] drm: don't export drm_sg_alloc
It's not used internally by any driver, only by some generic ioctls. So don't export it. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_scatter.c |2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c index 9034c4c..d15e09b 100644 --- a/drivers/gpu/drm/drm_scatter.c +++ b/drivers/gpu/drm/drm_scatter.c @@ -184,8 +184,6 @@ int drm_sg_alloc(struct drm_device *dev, struct drm_scatter_gather * request) drm_sg_cleanup(entry); return -ENOMEM; } -EXPORT_SYMBOL(drm_sg_alloc); - int drm_sg_alloc_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) -- 1.7.1
[PATCH 05/11] drm: kill drm_map_ofs callbacks
All drivers happily copy&pasted the default implementation without checking whether this callback is used at all. It's not. Sigh. Kill it. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_vm.c |7 --- drivers/gpu/drm/i810/i810_drv.c |1 - drivers/gpu/drm/i830/i830_drv.c |1 - drivers/gpu/drm/i915/i915_drv.c |1 - drivers/gpu/drm/mga/mga_drv.c |1 - drivers/gpu/drm/nouveau/nouveau_drv.c |1 - drivers/gpu/drm/r128/r128_drv.c |1 - drivers/gpu/drm/radeon/radeon_drv.c |2 -- drivers/gpu/drm/savage/savage_drv.c |1 - drivers/gpu/drm/sis/sis_drv.c |1 - drivers/gpu/drm/tdfx/tdfx_drv.c |1 - drivers/gpu/drm/via/via_drv.c |1 - drivers/gpu/drm/vmwgfx/vmwgfx_drv.c |1 - include/drm/drmP.h|2 -- 14 files changed, 0 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c index c3b13fb..407bdc2 100644 --- a/drivers/gpu/drm/drm_vm.c +++ b/drivers/gpu/drm/drm_vm.c @@ -515,13 +515,6 @@ static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) return 0; } -resource_size_t drm_core_get_map_ofs(struct drm_local_map * map) -{ - return map->offset; -} - -EXPORT_SYMBOL(drm_core_get_map_ofs); - resource_size_t drm_core_get_reg_ofs(struct drm_device *dev) { #ifdef __alpha__ diff --git a/drivers/gpu/drm/i810/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c index c1e0275..9d32620 100644 --- a/drivers/gpu/drm/i810/i810_drv.c +++ b/drivers/gpu/drm/i810/i810_drv.c @@ -52,7 +52,6 @@ static struct drm_driver driver = { .device_is_agp = i810_driver_device_is_agp, .reclaim_buffers_locked = i810_driver_reclaim_buffers_locked, .dma_quiescent = i810_driver_dma_quiescent, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = i810_ioctls, .fops = { diff --git a/drivers/gpu/drm/i830/i830_drv.c b/drivers/gpu/drm/i830/i830_drv.c index 44f990b..8156347 100644 --- a/drivers/gpu/drm/i830/i830_drv.c +++ b/drivers/gpu/drm/i830/i830_drv.c @@ -57,7 +57,6 @@ static struct drm_driver driver = { .device_is_agp = i830_driver_device_is_agp, .reclaim_buffers_locked = i830_driver_reclaim_buffers_locked, .dma_quiescent = i830_driver_dma_quiescent, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, #if USE_IRQS .irq_preinstall = i830_driver_irq_preinstall, diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 01e91ea..9c62478 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -544,7 +544,6 @@ static struct drm_driver driver = { .irq_uninstall = i915_driver_irq_uninstall, .irq_handler = i915_driver_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, .master_create = i915_master_create, .master_destroy = i915_master_destroy, diff --git a/drivers/gpu/drm/mga/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c index ddfe161..bf8f998 100644 --- a/drivers/gpu/drm/mga/mga_drv.c +++ b/drivers/gpu/drm/mga/mga_drv.c @@ -60,7 +60,6 @@ static struct drm_driver driver = { .irq_uninstall = mga_driver_irq_uninstall, .irq_handler = mga_driver_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = mga_ioctls, .dma_ioctl = mga_dma_buffers, diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c index c6079e3..2dafa60 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.c +++ b/drivers/gpu/drm/nouveau/nouveau_drv.c @@ -357,7 +357,6 @@ static struct drm_driver driver = { .irq_uninstall = nouveau_irq_uninstall, .irq_handler = nouveau_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = nouveau_ioctls, .fops = { diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c index b806fdc..5a0d865 100644 --- a/drivers/gpu/drm/r128/r128_drv.c +++ b/drivers/gpu/drm/r128/r128_drv.c @@ -56,7 +56,6 @@ static struct drm_driver driver = { .irq_uninstall = r128_driver_irq_uninstall, .irq_handler = r128_driver_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = r128_ioctls, .dma_ioctl = r128_cce_buffers, diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index 4b05563..d9cc7eb 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -204,7 +204,6 @@ static struct drm_driver dri
[PATCH 02/11] drm: kill kernel_context_switch callbacks
Not used by any in-kernel driver. So drop it. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_lock.c | 18 -- include/drm/drmP.h |3 --- 2 files changed, 0 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c index e2f70a5..566d203 100644 --- a/drivers/gpu/drm/drm_lock.c +++ b/drivers/gpu/drm/drm_lock.c @@ -134,12 +134,6 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv) } } - if (dev->driver->kernel_context_switch && - dev->last_context != lock->context) { - dev->driver->kernel_context_switch(dev, dev->last_context, - lock->context); - } - return 0; } @@ -157,7 +151,6 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv) int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv) { struct drm_lock *lock = data; - struct drm_master *master = file_priv->master; if (lock->context == DRM_KERNEL_CONTEXT) { DRM_ERROR("Process %d using kernel context %d\n", @@ -167,17 +160,6 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv) atomic_inc(&dev->counts[_DRM_STAT_UNLOCKS]); - /* kernel_context_switch isn't used by any of the x86 drm -* modules but is required by the Sparc driver. -*/ - if (dev->driver->kernel_context_switch_unlock) - dev->driver->kernel_context_switch_unlock(dev); - else { - if (drm_lock_free(&master->lock, lock->context)) { - /* FIXME: Should really bail out here. */ - } - } - unblock_all_signals(); return 0; } diff --git a/include/drm/drmP.h b/include/drm/drmP.h index c1b9871..2f95420 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -697,9 +697,6 @@ struct drm_driver { int (*dma_quiescent) (struct drm_device *); int (*context_ctor) (struct drm_device *dev, int context); int (*context_dtor) (struct drm_device *dev, int context); - int (*kernel_context_switch) (struct drm_device *dev, int old, - int new); - void (*kernel_context_switch_unlock) (struct drm_device *dev); /** * get_vblank_counter - get raw hardware vblank counter -- 1.7.1
[PATCH 04/11] drm: kill procfs callbacks
Not used by any driver (rightly so!). Kill them. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_proc.c | 13 - include/drm/drmP.h |2 -- 2 files changed, 0 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/drm_proc.c b/drivers/gpu/drm/drm_proc.c index a9ba6b6..e571de5 100644 --- a/drivers/gpu/drm/drm_proc.c +++ b/drivers/gpu/drm/drm_proc.c @@ -151,7 +151,6 @@ fail: int drm_proc_init(struct drm_minor *minor, int minor_id, struct proc_dir_entry *root) { - struct drm_device *dev = minor->dev; char name[64]; int ret; @@ -172,14 +171,6 @@ int drm_proc_init(struct drm_minor *minor, int minor_id, return ret; } - if (dev->driver->proc_init) { - ret = dev->driver->proc_init(minor); - if (ret) { - DRM_ERROR("DRM: Driver failed to initialize " - "/proc/dri.\n"); - return ret; - } - } return 0; } @@ -216,15 +207,11 @@ int drm_proc_remove_files(struct drm_info_list *files, int count, */ int drm_proc_cleanup(struct drm_minor *minor, struct proc_dir_entry *root) { - struct drm_device *dev = minor->dev; char name[64]; if (!root || !minor->proc_root) return 0; - if (dev->driver->proc_cleanup) - dev->driver->proc_cleanup(minor); - drm_proc_remove_files(drm_proc_list, DRM_PROC_ENTRIES, minor); sprintf(name, "%d", minor->index); diff --git a/include/drm/drmP.h b/include/drm/drmP.h index f1d0c2e..7b5123a 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -785,8 +785,6 @@ struct drm_driver { void (*master_drop)(struct drm_device *dev, struct drm_file *file_priv, bool from_release); - int (*proc_init)(struct drm_minor *minor); - void (*proc_cleanup)(struct drm_minor *minor); int (*debugfs_init)(struct drm_minor *minor); void (*debugfs_cleanup)(struct drm_minor *minor); -- 1.7.1
[PATCH 06/11] drm: kill get_reg_ofs callback
Every driver used the default implementation. Fold that one into the only callsite and drop the callback. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_vm.c |6 ++ drivers/gpu/drm/i810/i810_drv.c |1 - drivers/gpu/drm/i830/i830_drv.c |1 - drivers/gpu/drm/i915/i915_drv.c |1 - drivers/gpu/drm/mga/mga_drv.c |1 - drivers/gpu/drm/nouveau/nouveau_drv.c |1 - drivers/gpu/drm/r128/r128_drv.c |1 - drivers/gpu/drm/radeon/radeon_drv.c |2 -- drivers/gpu/drm/savage/savage_drv.c |1 - drivers/gpu/drm/sis/sis_drv.c |1 - drivers/gpu/drm/tdfx/tdfx_drv.c |1 - drivers/gpu/drm/via/via_drv.c |1 - drivers/gpu/drm/vmwgfx/vmwgfx_drv.c |1 - include/drm/drmP.h|2 -- 14 files changed, 2 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c index 407bdc2..630bf4e 100644 --- a/drivers/gpu/drm/drm_vm.c +++ b/drivers/gpu/drm/drm_vm.c @@ -515,7 +515,7 @@ static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) return 0; } -resource_size_t drm_core_get_reg_ofs(struct drm_device *dev) +static resource_size_t drm_core_get_reg_ofs(struct drm_device *dev) { #ifdef __alpha__ return dev->hose->dense_mem_base - dev->hose->mem_space->start; @@ -524,8 +524,6 @@ resource_size_t drm_core_get_reg_ofs(struct drm_device *dev) #endif } -EXPORT_SYMBOL(drm_core_get_reg_ofs); - /** * mmap DMA memory. * @@ -610,7 +608,7 @@ int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma) /* fall through to _DRM_FRAME_BUFFER... */ case _DRM_FRAME_BUFFER: case _DRM_REGISTERS: - offset = dev->driver->get_reg_ofs(dev); + offset = drm_core_get_reg_ofs(dev); vma->vm_flags |= VM_IO; /* not in core dump */ vma->vm_page_prot = drm_io_prot(map->type, vma); if (io_remap_pfn_range(vma, vma->vm_start, diff --git a/drivers/gpu/drm/i810/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c index 9d32620..0c2c673 100644 --- a/drivers/gpu/drm/i810/i810_drv.c +++ b/drivers/gpu/drm/i810/i810_drv.c @@ -52,7 +52,6 @@ static struct drm_driver driver = { .device_is_agp = i810_driver_device_is_agp, .reclaim_buffers_locked = i810_driver_reclaim_buffers_locked, .dma_quiescent = i810_driver_dma_quiescent, - .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = i810_ioctls, .fops = { .owner = THIS_MODULE, diff --git a/drivers/gpu/drm/i830/i830_drv.c b/drivers/gpu/drm/i830/i830_drv.c index 8156347..4d7099a 100644 --- a/drivers/gpu/drm/i830/i830_drv.c +++ b/drivers/gpu/drm/i830/i830_drv.c @@ -57,7 +57,6 @@ static struct drm_driver driver = { .device_is_agp = i830_driver_device_is_agp, .reclaim_buffers_locked = i830_driver_reclaim_buffers_locked, .dma_quiescent = i830_driver_dma_quiescent, - .get_reg_ofs = drm_core_get_reg_ofs, #if USE_IRQS .irq_preinstall = i830_driver_irq_preinstall, .irq_postinstall = i830_driver_irq_postinstall, diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 9c62478..a59f231 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -544,7 +544,6 @@ static struct drm_driver driver = { .irq_uninstall = i915_driver_irq_uninstall, .irq_handler = i915_driver_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_reg_ofs = drm_core_get_reg_ofs, .master_create = i915_master_create, .master_destroy = i915_master_destroy, #if defined(CONFIG_DEBUG_FS) diff --git a/drivers/gpu/drm/mga/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c index bf8f998..bc13f40 100644 --- a/drivers/gpu/drm/mga/mga_drv.c +++ b/drivers/gpu/drm/mga/mga_drv.c @@ -60,7 +60,6 @@ static struct drm_driver driver = { .irq_uninstall = mga_driver_irq_uninstall, .irq_handler = mga_driver_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = mga_ioctls, .dma_ioctl = mga_dma_buffers, .fops = { diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c index 2dafa60..35485f3 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.c +++ b/drivers/gpu/drm/nouveau/nouveau_drv.c @@ -357,7 +357,6 @@ static struct drm_driver driver = { .irq_uninstall = nouveau_irq_uninstall, .irq_handler = nouveau_irq_handler, .reclaim_buffers = drm_core_reclaim_buffers, - .get_reg_ofs = drm_core_get_reg_ofs, .ioctls = nouveau_ioctls, .fops = { .owner = THIS_MODULE, diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c index 5a0d865..91f21c9 100644 --- a/drivers/gpu/drm/r128/r128_drv.c +++ b/drivers/gpu/drm/r128/r128_drv.c @@ -56,7 +56,6 @@ static struct
[PATCH 07/11] drm: kill context_ctor callback
It's not used by any driver. The destructor callback is unfortunately used by the via driver in a rather convoluted piece of code used to reimplement something resembling broken futexes. I didn't dare to touch this code. But at least kill the needless NULL assignemt in the sis driver. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_context.c |8 drivers/gpu/drm/sis/sis_drv.c |1 - include/drm/drmP.h|1 - 3 files changed, 0 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c index 2607753..6d440fb 100644 --- a/drivers/gpu/drm/drm_context.c +++ b/drivers/gpu/drm/drm_context.c @@ -333,14 +333,6 @@ int drm_addctx(struct drm_device *dev, void *data, return -ENOMEM; } - if (ctx->handle != DRM_KERNEL_CONTEXT) { - if (dev->driver->context_ctor) - if (!dev->driver->context_ctor(dev, ctx->handle)) { - DRM_DEBUG("Running out of ctxs or memory.\n"); - return -ENOMEM; - } - } - ctx_entry = kmalloc(sizeof(*ctx_entry), GFP_KERNEL); if (!ctx_entry) { DRM_DEBUG("out of memory\n"); diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c index 350e512..c9aa0c4 100644 --- a/drivers/gpu/drm/sis/sis_drv.c +++ b/drivers/gpu/drm/sis/sis_drv.c @@ -68,7 +68,6 @@ static struct drm_driver driver = { .driver_features = DRIVER_USE_AGP | DRIVER_USE_MTRR, .load = sis_driver_load, .unload = sis_driver_unload, - .context_dtor = NULL, .dma_quiescent = sis_idle, .reclaim_buffers = NULL, .reclaim_buffers_idlelocked = sis_reclaim_buffers_locked, diff --git a/include/drm/drmP.h b/include/drm/drmP.h index f5dd3df..8f91459 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -694,7 +694,6 @@ struct drm_driver { int (*resume) (struct drm_device *); int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv); int (*dma_quiescent) (struct drm_device *); - int (*context_ctor) (struct drm_device *dev, int context); int (*context_dtor) (struct drm_device *dev, int context); /** -- 1.7.1
[PATCH 03/11] drm: kill dma_ready callbacks
Not used by any driver. So drop it. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_lock.c |3 --- include/drm/drmP.h |1 - 2 files changed, 0 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c index 566d203..1973d75 100644 --- a/drivers/gpu/drm/drm_lock.c +++ b/drivers/gpu/drm/drm_lock.c @@ -122,9 +122,6 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv) block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask); } - if (dev->driver->dma_ready && (lock->flags & _DRM_LOCK_READY)) - dev->driver->dma_ready(dev); - if (dev->driver->dma_quiescent && (lock->flags & _DRM_LOCK_QUIESCENT)) { if (dev->driver->dma_quiescent(dev)) { diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 2f95420..f1d0c2e 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -693,7 +693,6 @@ struct drm_driver { int (*suspend) (struct drm_device *, pm_message_t state); int (*resume) (struct drm_device *); int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv); - void (*dma_ready) (struct drm_device *); int (*dma_quiescent) (struct drm_device *); int (*context_ctor) (struct drm_device *dev, int context); int (*context_dtor) (struct drm_device *dev, int context); -- 1.7.1
[PATCH 10/11] drm: kill dev->timer
Totally unused. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_drv.c |2 -- drivers/gpu/drm/drm_stub.c |1 - include/drm/drmP.h |1 - 3 files changed, 0 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index ea4b6c2..3d42b4e 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c @@ -177,8 +177,6 @@ int drm_lastclose(struct drm_device * dev) mutex_lock(&dev->struct_mutex); - del_timer(&dev->timer); - /* Clear AGP information */ if (drm_core_has_AGP(dev) && dev->agp && !drm_core_check_feature(dev, DRIVER_MODESET)) { diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index e3b5cfc..b5a6536 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c @@ -238,7 +238,6 @@ static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev, spin_lock_init(&dev->count_lock); spin_lock_init(&dev->event_lock); - init_timer(&dev->timer); mutex_init(&dev->struct_mutex); mutex_init(&dev->ctxlist_mutex); diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 540cab6..6866224 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -957,7 +957,6 @@ struct drm_device { __volatile__ long context_flag; /**< Context swapping flag */ __volatile__ long interrupt_flag; /**< Interruption handler flag */ __volatile__ long dma_flag; /**< DMA dispatch flag */ - struct timer_list timer;/**< Timer for delaying ctx switch */ wait_queue_head_t context_wait; /**< Processes waiting on ctx switch */ int last_checked; /**< Last context checked for DMA */ int last_context; /**< Last current context */ -- 1.7.1
[PATCH 08/11] drm: don't export drm_get_drawable_info
Not used by any in-tree user. So drop it. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_drawable.c |3 +-- include/drm/drmP.h |2 -- 2 files changed, 1 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_drawable.c b/drivers/gpu/drm/drm_drawable.c index c53c976..170e531 100644 --- a/drivers/gpu/drm/drm_drawable.c +++ b/drivers/gpu/drm/drm_drawable.c @@ -173,11 +173,10 @@ error: /** * Caller must hold the drawable spinlock! */ -struct drm_drawable_info *drm_get_drawable_info(struct drm_device *dev, drm_drawable_t id) +static struct drm_drawable_info *drm_get_drawable_info(struct drm_device *dev, drm_drawable_t id) { return idr_find(&dev->drw_idr, id); } -EXPORT_SYMBOL(drm_get_drawable_info); static int drm_drawable_free(int idr, void *p, void *data) { diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 8f91459..af62612 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1209,8 +1209,6 @@ extern int drm_rmdraw(struct drm_device *dev, void *data, struct drm_file *file_priv); extern int drm_update_drawable_info(struct drm_device *dev, void *data, struct drm_file *file_priv); -extern struct drm_drawable_info *drm_get_drawable_info(struct drm_device *dev, - drm_drawable_t id); extern void drm_drawable_free_all(struct drm_device *dev); /* Authentication IOCTL support (drm_auth.h) */ -- 1.7.1
[PATCH 11/11] drm: kill gem_free_object_unlocked driver callback
Not used by any current driver. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_gem.c |4 +--- include/drm/drmP.h|1 - 2 files changed, 1 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index 33dad3f..0c004e8 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -463,9 +463,7 @@ drm_gem_object_free_unlocked(struct kref *kref) struct drm_gem_object *obj = (struct drm_gem_object *) kref; struct drm_device *dev = obj->dev; - if (dev->driver->gem_free_object_unlocked != NULL) - dev->driver->gem_free_object_unlocked(obj); - else if (dev->driver->gem_free_object != NULL) { + if (dev->driver->gem_free_object != NULL) { mutex_lock(&dev->struct_mutex); dev->driver->gem_free_object(obj); mutex_unlock(&dev->struct_mutex); diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 6866224..f7ade6b 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -793,7 +793,6 @@ struct drm_driver { */ int (*gem_init_object) (struct drm_gem_object *obj); void (*gem_free_object) (struct drm_gem_object *obj); - void (*gem_free_object_unlocked) (struct drm_gem_object *obj); /* vga arb irq handler */ void (*vgaarb_irq)(struct drm_device *dev, bool state); -- 1.7.1
[PATCH 09/11] drm: replace drawable ioctl by noops
The information supplied by userspace through these ioctls is only accessible by dev->drw_idr. But there's no in-tree user of that. Information might also leak via the RM_DRAW ioctl (in the form of a negative return code in case the drawable doesn't exist). But the only user of these ioctls, mesas' miniglx, does not use the RM_DRAW ioctl. Therefore it's safe to replace these three ioctls with noops and rip out the implementation. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/Makefile |2 +- drivers/gpu/drm/drm_drawable.c | 197 drivers/gpu/drm/drm_drv.c |8 +- drivers/gpu/drm/drm_stub.c |3 - include/drm/drmP.h | 15 --- 5 files changed, 4 insertions(+), 221 deletions(-) delete mode 100644 drivers/gpu/drm/drm_drawable.c diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index abe3f44..10585ce 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -5,7 +5,7 @@ ccflags-y := -Iinclude/drm drm-y := drm_auth.o drm_buffer.o drm_bufs.o drm_cache.o \ - drm_context.o drm_dma.o drm_drawable.o \ + drm_context.o drm_dma.o \ drm_drv.o drm_fops.o drm_gem.o drm_ioctl.o drm_irq.o \ drm_lock.o drm_memory.o drm_proc.o drm_stub.o drm_vm.o \ drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o \ diff --git a/drivers/gpu/drm/drm_drawable.c b/drivers/gpu/drm/drm_drawable.c deleted file mode 100644 index 170e531..000 --- a/drivers/gpu/drm/drm_drawable.c +++ /dev/null @@ -1,197 +0,0 @@ -/** - * \file drm_drawable.c - * IOCTLs for drawables - * - * \author Rickard E. (Rik) Faith - * \author Gareth Hughes - * \author Michel D??nzer - */ - -/* - * Created: Tue Feb 2 08:37:54 1999 by faith at valinux.com - * - * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. - * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. - * Copyright 2006 Tungsten Graphics, Inc., Bismarck, North Dakota. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#include "drmP.h" - -/** - * Allocate drawable ID and memory to store information about it. - */ -int drm_adddraw(struct drm_device *dev, void *data, struct drm_file *file_priv) -{ - unsigned long irqflags; - struct drm_draw *draw = data; - int new_id = 0; - int ret; - -again: - if (idr_pre_get(&dev->drw_idr, GFP_KERNEL) == 0) { - DRM_ERROR("Out of memory expanding drawable idr\n"); - return -ENOMEM; - } - - spin_lock_irqsave(&dev->drw_lock, irqflags); - ret = idr_get_new_above(&dev->drw_idr, NULL, 1, &new_id); - if (ret == -EAGAIN) { - spin_unlock_irqrestore(&dev->drw_lock, irqflags); - goto again; - } - - spin_unlock_irqrestore(&dev->drw_lock, irqflags); - - draw->handle = new_id; - - DRM_DEBUG("%d\n", draw->handle); - - return 0; -} - -/** - * Free drawable ID and memory to store information about it. - */ -int drm_rmdraw(struct drm_device *dev, void *data, struct drm_file *file_priv) -{ - struct drm_draw *draw = data; - unsigned long irqflags; - struct drm_drawable_info *info; - - spin_lock_irqsave(&dev->drw_lock, irqflags); - - info = drm_get_drawable_info(dev, draw->handle); - if (info == NULL) { - spin_unlock_irqrestore(&dev->drw_lock, irqflags); - return -EINVAL; - } - kfree(info->rects); - kfree(info); - - idr_remove(&dev->drw_idr, draw->handle); - - spin_unlock_irqrestore(&dev->drw_lock, irqflags); - DRM_DEBUG("%d\n", draw->handle); - return 0; -} - -int drm_update_drawable_info(struct drm_device *dev, void *data, struct drm_file *file_priv) -{ - struct drm_update_draw *update = data; - unsigned long irqflags; -
[PATCH 09/11] drm: replace drawable ioctl by noops
On Don, 2010-04-29 at 11:14 +0200, Daniel Vetter wrote: > The information supplied by userspace through these ioctls is only > accessible by dev->drw_idr. But there's no in-tree user of that. > Information might also leak via the RM_DRAW ioctl (in the form of > a negative return code in case the drawable doesn't exist). But the > only user of these ioctls, mesas' miniglx, does not use the RM_DRAW > ioctl. FYI, the X server DRI1 code also uses these ioctls, via the libdrm functions drmCreate/DestroyDrawable and drmUpdateDrawableInfo(). > Therefore it's safe to replace these three ioctls with noops and rip > out the implementation. That should still true though, as none of the DRM drivers use the drawable cliprect information anymore. Might still be worth double-checking that this doesn't break DRI without KMS on your RV570. -- Earthling Michel D?nzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer
[PATCH 09/11] drm: replace drawable ioctl by noops
On Thu, Apr 29, 2010 at 11:32:36AM +0200, Michel D?nzer wrote: > On Don, 2010-04-29 at 11:14 +0200, Daniel Vetter wrote: > > The information supplied by userspace through these ioctls is only > > accessible by dev->drw_idr. But there's no in-tree user of that. > > Information might also leak via the RM_DRAW ioctl (in the form of > > a negative return code in case the drawable doesn't exist). But the > > only user of these ioctls, mesas' miniglx, does not use the RM_DRAW > > ioctl. > > FYI, the X server DRI1 code also uses these ioctls, via the libdrm > functions drmCreate/DestroyDrawable and drmUpdateDrawableInfo(). Thanks, I've overlooked the DRI stuff in the xserver. There, drmDestroyDrawable is used (but the return code is ignored), so should be fine. The only place the return value is checked when creating a drawable for the first time (to free any allocations already made). Should be safe, too. > > Therefore it's safe to replace these three ioctls with noops and rip > > out the implementation. > > That should still true though, as none of the DRM drivers use the > drawable cliprect information anymore. Might still be worth > double-checking that this doesn't break DRI without KMS on your RV570. I've tried to test DRI1, but that seems to be in a hilariously broken state on my box: Windows are smeared all over the screen (tiling parameters mismatch?) under certain circumstances. But glxinfo shows the correct render string, AIGLX seems to load correctly (according to Xorg.log) and kde's opengl cover switch looks all right. Also, after some time it hangs with the dmesg complaining that someone is monopolizing the heavyweight lock (in drm_lock_take). Results without these patches are similar. I haven't used ums radeon since months, so I don't think you can count this as useful testing ;) Yours, Daniel -- Daniel Vetter Mail: daniel at ffwll.ch Mobile: +41 (0)79 365 57 48
[Bug 27729] [r300g, mesa] gallium compressed texture problems
https://bugs.freedesktop.org/show_bug.cgi?id=27729 --- Comment #16 from Marek Ol??k 2010-04-29 05:11:00 PDT --- (In reply to comment #15) > In the meantime 95bfc8f32571751c5c9ec6d8e84f5e3c28d1b20e has been committed > from Marek Ol??k which is a subset of attached "patch for r300g > is_format_supported()", but which appears to also fix the r300g problem. Yes but the S3TC code appears to be bloody slow, e.g. the TA3D game seems to load a new texture everytime a new GUI element shows up and during that the game basically locks up for 5 seconds with 100% CPU load. This is unbearable. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[Bug 27887] New: r300g: depth textures + fbo = broken glClear()
https://bugs.freedesktop.org/show_bug.cgi?id=27887 Summary: r300g: depth textures + fbo = broken glClear() 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 at lists.freedesktop.org ReportedBy: wixorpeek at gmail.com Created an attachment (id=35333) --> (https://bugs.freedesktop.org/attachment.cgi?id=35333) test case Attached code does not clear the screen as expected. The classic r300 driver fails too. Sometimes geometry rendering gets messed up (however it is not as easily reproducible). Hardware: Radeon X1300 (RV515), kernel 2.6.33, xorg 1.7.7 rc1, driver from git (up to commit 7327a84b...). -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[PATCH 09/11] drm: replace drawable ioctl by noops
On Don, 2010-04-29 at 14:02 +0200, Daniel Vetter wrote: > On Thu, Apr 29, 2010 at 11:32:36AM +0200, Michel D?nzer wrote: > > On Don, 2010-04-29 at 11:14 +0200, Daniel Vetter wrote: > > > The information supplied by userspace through these ioctls is only > > > accessible by dev->drw_idr. But there's no in-tree user of that. > > > Information might also leak via the RM_DRAW ioctl (in the form of > > > a negative return code in case the drawable doesn't exist). But the > > > only user of these ioctls, mesas' miniglx, does not use the RM_DRAW > > > ioctl. > > > > FYI, the X server DRI1 code also uses these ioctls, via the libdrm > > functions drmCreate/DestroyDrawable and drmUpdateDrawableInfo(). > > Thanks, I've overlooked the DRI stuff in the xserver. There, > drmDestroyDrawable is used (but the return code is ignored), so should be > fine. The only place the return value is checked when creating a drawable > for the first time (to free any allocations already made). Should be safe, > too. > > > > Therefore it's safe to replace these three ioctls with noops and rip > > > out the implementation. > > > > That should still true though, as none of the DRM drivers use the > > drawable cliprect information anymore. Might still be worth > > double-checking that this doesn't break DRI without KMS on your RV570. > > I've tried to test DRI1, but that seems to be in a hilariously broken > state on my box: Windows are smeared all over the screen (tiling > parameters mismatch?) under certain circumstances. But glxinfo shows the > correct render string, AIGLX seems to load correctly (according to > Xorg.log) and kde's opengl cover switch looks all right. Also, after some > time it hangs with the dmesg complaining that someone is monopolizing the > heavyweight lock (in drm_lock_take). Results without these patches are > similar. > > I haven't used ums radeon since months, so I don't think you can count > this as useful testing ;) I think it's good enough for the purpose of this change, as I'd expect any problem caused by it to manifest when starting or quitting any 3D app (such as the one doing the OpenGL cover switch). So, here's my Reviewed-by: Michel D?nzer for it. -- Earthling Michel D?nzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer
[PATCH 09/11] drm: replace drawable ioctl by noops
On Thu, Apr 29, 2010 at 5:14 AM, Daniel Vetter wrote: > The information supplied by userspace through these ioctls is only > accessible by dev->drw_idr. But there's no in-tree user of that. > Information might also leak via the RM_DRAW ioctl (in the form of > a negative return code in case the drawable doesn't exist). But the > only user of these ioctls, mesas' miniglx, does not use the RM_DRAW > ioctl. > > Therefore it's safe to replace these three ioctls with noops and rip > out the implementation. Looks almost exactly like this one: http://www.mail-archive.com/dri-devel at lists.sourceforge.net/msg39176.html Except I made adddraw a stub that always returns 1, but reading through the code (hw/xfree86/dri, glx/glxdri.c and the radeon dri driver) I don't see anything that fails if we just return zero (or a random number for that matter). The only difference is that if we return zero, hw/xfree86/dri/dri.c will keep trying to create a drm drawable (look for drmCreateDrawable) every time somebody creates a dri drawable, but since that's a noop, who cares. Reviewed-by: Kristian H?gsberg > Signed-off-by: Daniel Vetter > --- > ?drivers/gpu/drm/Makefile ? ? ? | ? ?2 +- > ?drivers/gpu/drm/drm_drawable.c | ?197 > > ?drivers/gpu/drm/drm_drv.c ? ? ?| ? ?8 +- > ?drivers/gpu/drm/drm_stub.c ? ? | ? ?3 - > ?include/drm/drmP.h ? ? ? ? ? ? | ? 15 --- > ?5 files changed, 4 insertions(+), 221 deletions(-) > ?delete mode 100644 drivers/gpu/drm/drm_drawable.c > > diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile > index abe3f44..10585ce 100644 > --- a/drivers/gpu/drm/Makefile > +++ b/drivers/gpu/drm/Makefile > @@ -5,7 +5,7 @@ > ?ccflags-y := -Iinclude/drm > > ?drm-y ? ? ? := drm_auth.o drm_buffer.o drm_bufs.o drm_cache.o \ > - ? ? ? ? ? ? ? drm_context.o drm_dma.o drm_drawable.o \ > + ? ? ? ? ? ? ? drm_context.o drm_dma.o \ > ? ? ? ? ? ? ? ?drm_drv.o drm_fops.o drm_gem.o drm_ioctl.o drm_irq.o \ > ? ? ? ? ? ? ? ?drm_lock.o drm_memory.o drm_proc.o drm_stub.o drm_vm.o \ > ? ? ? ? ? ? ? ?drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o \ > diff --git a/drivers/gpu/drm/drm_drawable.c b/drivers/gpu/drm/drm_drawable.c > deleted file mode 100644 > index 170e531..000 > --- a/drivers/gpu/drm/drm_drawable.c > +++ /dev/null > @@ -1,197 +0,0 @@ > -/** > - * \file drm_drawable.c > - * IOCTLs for drawables > - * > - * \author Rickard E. (Rik) Faith > - * \author Gareth Hughes > - * \author Michel D?nzer > - */ > - > -/* > - * Created: Tue Feb ?2 08:37:54 1999 by faith at valinux.com > - * > - * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. > - * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. > - * Copyright 2006 Tungsten Graphics, Inc., Bismarck, North Dakota. > - * All Rights Reserved. > - * > - * Permission is hereby granted, free of charge, to any person obtaining a > - * copy of this software and associated documentation files (the "Software"), > - * to deal in the Software without restriction, including without limitation > - * the rights to use, copy, modify, merge, publish, distribute, sublicense, > - * and/or sell copies of the Software, and to permit persons to whom the > - * Software is furnished to do so, subject to the following conditions: > - * > - * The above copyright notice and this permission notice (including the next > - * paragraph) shall be included in all copies or substantial portions of the > - * Software. > - * > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ?IN NO EVENT SHALL > - * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR > - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, > - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > - * OTHER DEALINGS IN THE SOFTWARE. > - */ > - > -#include "drmP.h" > - > -/** > - * Allocate drawable ID and memory to store information about it. > - */ > -int drm_adddraw(struct drm_device *dev, void *data, struct drm_file > *file_priv) > -{ > - ? ? ? unsigned long irqflags; > - ? ? ? struct drm_draw *draw = data; > - ? ? ? int new_id = 0; > - ? ? ? int ret; > - > -again: > - ? ? ? if (idr_pre_get(&dev->drw_idr, GFP_KERNEL) == 0) { > - ? ? ? ? ? ? ? DRM_ERROR("Out of memory expanding drawable idr\n"); > - ? ? ? ? ? ? ? return -ENOMEM; > - ? ? ? } > - > - ? ? ? spin_lock_irqsave(&dev->drw_lock, irqflags); > - ? ? ? ret = idr_get_new_above(&dev->drw_idr, NULL, 1, &new_id); > - ? ? ? if (ret == -EAGAIN) { > - ? ? ? ? ? ? ? spin_unlock_irqrestore(&dev->drw_lock, irqflags); > - ? ? ? ? ? ? ? goto again; > - ? ? ? } > - > - ? ? ? spin_unlock_irqrestore(&dev->drw_lock, irqflags); > - > - ? ? ? draw->handle = new_id; > - > - ? ? ? DRM_DEBUG("%d\n", draw->handle); > - > - ? ? ? return 0; > -} > - > -/** > - * Free drawable ID and memory to stor
[Bug 27901] New: GLSL cos/sin functions broken on Mesa R600 driver
https://bugs.freedesktop.org/show_bug.cgi?id=27901 Summary: GLSL cos/sin functions broken on Mesa R600 driver Product: Mesa Version: git Platform: All OS/Version: All Status: NEW Severity: normal Priority: medium Component: Drivers/DRI/R600 AssignedTo: dri-devel at lists.freedesktop.org ReportedBy: alain.perrot at gmail.com As I was playing with OpenGL examples from Joe Groff's blog at http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Contents.html, I noticed that the cos and sin GLSL functions are broken on the Mesa R600 driver. Other trigonometric functions may be broken as well. The blog entries provide two versions of a sample program that blend two images together using GLSL. The blend factor is computed from a timestamp using the sin function. There's no problem with the example from chapter 2 where the blend factor is computed on the CPU (source code at http://github.com/jckarter/hello-gl). Mesa R600 driver fails to properly run the example from chapter 3 where the blend factor is computed on the GPU using the GLSL sin function. Mesa software renderer has no problem running this example (source code at http://github.com/jckarter/hello-gl-ch3). Looking at GLSL 1.10 spec, R600 ISA doc and R600 driver code (function assemble_TRIG in r700_assembler.c), I guess there is two problems : 1. both the GLSL cos/sin functions and R600 hardware expects the angle to be specified in radians, but the assemble_TRIG function divides the specified angle by 2 * PI (the result is no more radians). 2. R600 hardware expects the angle to be in the range [-PI, PI] while GLSL does not specify a range, and the assemble_TRIG function does not clip the angle in the required range. A quick and dirty hack to make the example from chapter 3 work with R600 driver is to clip the timestamp to the [-PI, PI] range and then to multiply it by 2 * PI : --- hello-gl.c.old 2010-04-29 20:55:55.0 +0200 +++ hello-gl.c 2010-04-29 20:56:12.0 +0200 @@ -202,7 +202,10 @@ static void update_timer(void) { int milliseconds = glutGet(GLUT_ELAPSED_TIME); -g_resources.timer = (float)milliseconds * 0.001f; +g_resources.timer = fmodf((float)milliseconds * 0.001f, 2.0f * 3.1415926535897f); +if(g_resources.timer > 3.1415926535897f) +g_resources.timer -= 2.0f * 3.1415926535897f; +g_resources.timer *= 2.0f * 3.1415926535897f; glutPostRedisplay(); } My config: RV670 (Radeon HD 3870) Kubuntu 10.04 "Lucid Lynx" 64-bit Linux kernel 2.6.34-rc5 from Ubuntu Mainline Kernel PPA libdrm, radeon, Mesa, Xorg from Xorg-edgers PPA -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[Bug 27822] [REGR] Soft lockup with "[TTM] Buffer eviction failed" on resume
https://bugs.freedesktop.org/show_bug.cgi?id=27822 --- Comment #5 from Rafa? Mi?ecki 2010-04-29 14:20:21 PDT --- Result of first git bisect: There are only 'skip'ped commits left to test. The first bad commit could be any of: 82c5da6bf8b55a931b042fb531083863d26c8020 0a2d50e3a8faaf36cde36920431586090411ea15 We cannot bisect more! Unfortunately I'd to: # skip: [82c5da6bf8b55a931b042fb531083863d26c8020] drm/ttm: ttm_fault callback to allow driver to handle bo placement V6 because this commit caused 3 locks up in a row for me. First at KDE logging screen, next two as suspending (just before machines was expected to power off). So it seems suspected commits are: commit 0a2d50e3a8faaf36cde36920431586090411ea15 Author: Jerome Glisse Date: Fri Apr 9 14:39:24 2010 +0200 drm/radeon/kms: add support for new fault callback V7 and commit 82c5da6bf8b55a931b042fb531083863d26c8020 Author: Jerome Glisse Date: Fri Apr 9 14:39:23 2010 +0200 drm/ttm: ttm_fault callback to allow driver to handle bo placement V6 -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[Bug 27904] New: r300g segfaults on M56GL
https://bugs.freedesktop.org/show_bug.cgi?id=27904 Summary: r300g segfaults on M56GL Product: Mesa Version: git Platform: Other OS/Version: All Status: NEW Severity: normal Priority: medium Component: Drivers/DRI/r300 AssignedTo: dri-devel at lists.freedesktop.org ReportedBy: pavel at rojtberg.net current git, linux 2.6.32-21-generic (ubuntu lucid) Starting program: /usr/bin/glxgears [Thread debugging using libthread_db enabled] Program received signal SIGSEGV, Segmentation fault. 0x004e68e9 in rc_pair_regalloc (c=0xbfffee8c, maxtemps=1) at radeon_pair_regalloc.c:347 Line number 347 out of range; radeon_pair_regalloc.c has 280 lines. (gdb) bt #0 0x004e68e9 in rc_pair_regalloc (c=0xbfffee8c, maxtemps=1) at radeon_pair_regalloc.c:347 #1 0x004e03dd in r3xx_compile_fragment_program (c=0xbfffee8c) at r3xx_fragprog.c:159 #2 0x004db6f3 in r300_translate_fragment_shader (r300=, shader=0x80d0ad8, tokens=0x80ef010) at r300_fs.c:276 #3 0x004dbea7 in r300_pick_fragment_shader (r300=0x8066f08) at r300_fs.c:346 #4 0x004d217f in r300_bind_fs_state (pipe=0x8066f08, shader=0x4e6780) at r300_state.c:718 #5 0x00628946 in cso_set_fragment_shader_handle (ctx=0x80e84d8, handle=0x4e6780) at cso_cache/cso_context.c:742 #6 0x005f29e0 in update_fp (st=0x80c3e88) at state_tracker/st_atom_shader.c:174 #7 0x005ef9b3 in st_validate_state (st=0x80c3e88) at state_tracker/st_atom.c:167 #8 0x005f6859 in st_Clear (ctx=0x8087258, mask=18) at state_tracker/st_cb_clear.c:460 #9 0x005a3936 in _mesa_Clear (mask=0) at main/clear.c:178 #10 0x080493d7 in ?? () #11 0x0804a762 in ?? () #12 0x00305bd6 in __libc_start_main (main=0x804a230, argc=1, ubp_av=0xb484, init=0x804ad80, fini=0x804ad70, rtld_fini=0x11e0c0 <_dl_fini>, stack_end=0xb47c) at libc-start.c:226 -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[Bug 27866] d-r-t crashes at radeon_bo_unref() with dynpm=1
https://bugs.freedesktop.org/show_bug.cgi?id=27866 --- Comment #5 from Andy Furniss 2010-04-29 16:16:27 PDT --- (In reply to comment #4) I can't (so far) crash with today's d-r-t. Could just be luck I suppose, but it only took 20 mins of openarena to get two yesterday and I've just gone 50 mins OK. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[Bug 27866] d-r-t crashes at radeon_bo_unref() with dynpm=1
https://bugs.freedesktop.org/show_bug.cgi?id=27866 --- Comment #6 from Alex Deucher 2010-04-29 16:46:19 PDT --- should be fixed with this commit: http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commitdiff;h=7a1ffce50373c177d3f6eecce52badc40c90e1dd -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[Bug 26570] [r6xx DRI] KMS enabled: GLSL white washing corruption (seen in Second Life)
https://bugs.freedesktop.org/show_bug.cgi?id=26570 --- Comment #6 from Shawn Starr 2010-04-29 20:05:07 PDT --- Still happening, its not compiling the GLSL shader programs. If it is it seems to take a very, very long time. It shows pretty much all white in game. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
[Bug 26570] [r6xx DRI] KMS enabled: GLSL white washing corruption (seen in Second Life)
https://bugs.freedesktop.org/show_bug.cgi?id=26570 --- Comment #7 from Shawn Starr 2010-04-29 20:05:33 PDT --- 2.6.34-rc5 + airlied drm branches, libdrm git master, mesa git master, ati DDX 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.