[Bug 75357] Barts (HD6850): Failure in evergreen_surface_check_2d

2015-05-23 Thread bugzilla-dae...@freedesktop.org
82.686843] radeon :01:00.0:
evergreen_cs_track_validate_cb:477 cb[0] bo too small (layer size 1148928,
offset 0, max layer 1, bo size 8192, slice 4487)
May 23 22:05:07 mutilate warning: : [353782.686851] radeon :01:00.0:
evergreen_cs_track_validate_cb:481 problematic surf: (704 408) (0 4 1 0 0 4 3)
May 23 22:05:07 mutilate warning: : [353782.686854] radeon :01:00.0:
evergreen_packet3_check:1970 invalid cmd stream 454
May 23 22:05:07 mutilate err: : [353782.686859] [drm:radeon_cs_ioctl] *ERROR*
Invalid command stream !
May 23 22:05:10 mutilate err: : [353784.942883] [drm:radeon_cs_parser_relocs]
*ERROR* gem object lookup failed 0x185
May 23 22:05:10 mutilate err: : [353784.942893] [drm:radeon_cs_ioctl] *ERROR*
Failed to parse relocation -2!

[... lots more of this ...]

May 23 22:10:39 mutilate warning: : [354113.922155] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922166] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922170] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922173] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922176] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922179] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922182] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922185] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922188] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922191] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922194] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922196] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922199] radeon :01:00.0: vbo
resource seems too big for the bo
May 23 22:10:39 mutilate warning: : [354113.922202] radeon :01:00.0: vbo
resource seems too big for the bo

[... more, followed finally by ...]

May 23 21:59:12 mutilate warning: : [353427.133393] radeon :01:00.0:
evergreen_surface_check_2d:278 texture pitch 128 invalid must be aligned with
512
May 23 21:59:12 mutilate warning: : [353427.133402] radeon :01:00.0:
evergreen_cs_track_validate_texture:827 texture invalid 0x01ec03c1 0x4013
0x060a 0x 0x8000 0x800304da
May 23 21:59:12 mutilate err: : [353427.133407] [drm:radeon_cs_ioctl] *ERROR*
Invalid command stream !
May 23 21:59:13 mutilate err: : [353428.036913] [TTM] Could not find buffer
object to map

Following which the X server crashed, as above.

If I start Chromium with --disable-gpu, the problem goes away in both cases, so
the fault is likely either in Mesa or in the kernel or in the interaction
between the two. (I had the Chromium software rendering blacklist overridden
years earlier because it was trying to avoid problems that had been long fixed.
I've now reversed that decision, obviously!)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150523/994aba54/attachment-0001.html>


[PATCH] drm/radeon: stop using addr to check for BO move

2015-05-23 Thread Christian König
On 23.05.2015 20:58, Christian König wrote:
> From: Christian König 
>
> It is theoretically possible that a swapped out BO gets the
> same GTT address, but different backing pages while being swapped in.
>
> Instead just use another VA state to note updated areas.

Alex, please ignore this one. I've send it out preliminary and there are 
still bugs in it.

Regards,
Christian.

>
> Signed-off-by: Christian König 
> ---
>   drivers/gpu/drm/radeon/radeon.h|  4 ++-
>   drivers/gpu/drm/radeon/radeon_vm.c | 53 
> +-
>   2 files changed, 32 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> index 46eb0fa..ef7df51 100644
> --- a/drivers/gpu/drm/radeon/radeon.h
> +++ b/drivers/gpu/drm/radeon/radeon.h
> @@ -467,7 +467,6 @@ struct radeon_bo_va {
>   /* protected by bo being reserved */
>   struct list_headbo_list;
>   uint32_tflags;
> - uint64_taddr;
>   struct radeon_fence *last_pt_update;
>   unsignedref_count;
>   
> @@ -941,6 +940,9 @@ struct radeon_vm {
>   /* BOs freed, but not yet updated in the PT */
>   struct list_headfreed;
>   
> + /* BOs cleared in the PT */
> + struct list_headcleared;
> +
>   /* contains the page directory */
>   struct radeon_bo*page_directory;
>   unsignedmax_pde_used;
> diff --git a/drivers/gpu/drm/radeon/radeon_vm.c 
> b/drivers/gpu/drm/radeon/radeon_vm.c
> index de42fc4..9739ded 100644
> --- a/drivers/gpu/drm/radeon/radeon_vm.c
> +++ b/drivers/gpu/drm/radeon/radeon_vm.c
> @@ -331,7 +331,6 @@ struct radeon_bo_va *radeon_vm_bo_add(struct 
> radeon_device *rdev,
>   bo_va->it.start = 0;
>   bo_va->it.last = 0;
>   bo_va->flags = 0;
> - bo_va->addr = 0;
>   bo_va->ref_count = 1;
>   INIT_LIST_HEAD(&bo_va->bo_list);
>   INIT_LIST_HEAD(&bo_va->vm_status);
> @@ -491,9 +490,11 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
>   }
>   
>   if (bo_va->it.start || bo_va->it.last) {
> - if (bo_va->addr) {
> + spin_lock(&vm->status_lock);
> + if (list_empty(&bo_va->vm_status)) {
>   /* add a clone of the bo_va to clear the old address */
>   struct radeon_bo_va *tmp;
> + spin_unlock(&vm->status_lock);
>   tmp = kzalloc(sizeof(struct radeon_bo_va), GFP_KERNEL);
>   if (!tmp) {
>   mutex_unlock(&vm->mutex);
> @@ -502,14 +503,11 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
>   tmp->it.start = bo_va->it.start;
>   tmp->it.last = bo_va->it.last;
>   tmp->vm = vm;
> - tmp->addr = bo_va->addr;
>   tmp->bo = radeon_bo_ref(bo_va->bo);
>   spin_lock(&vm->status_lock);
>   list_add(&tmp->vm_status, &vm->freed);
> - spin_unlock(&vm->status_lock);
> -
> - bo_va->addr = 0;
>   }
> + spin_unlock(&vm->status_lock);
>   
>   interval_tree_remove(&bo_va->it, &vm->va);
>   bo_va->it.start = 0;
> @@ -520,10 +518,12 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
>   bo_va->it.start = soffset;
>   bo_va->it.last = eoffset - 1;
>   interval_tree_insert(&bo_va->it, &vm->va);
> + spin_lock(&vm->status_lock);
> + list_add(&bo_va->vm_status, &vm->cleared);
> + spin_unlock(&vm->status_lock);
>   }
>   
>   bo_va->flags = flags;
> - bo_va->addr = 0;
>   
>   soffset >>= radeon_vm_block_size;
>   eoffset >>= radeon_vm_block_size;
> @@ -921,7 +921,16 @@ int radeon_vm_bo_update(struct radeon_device *rdev,
>   }
>   
>   spin_lock(&vm->status_lock);
> - list_del_init(&bo_va->vm_status);
> + if (mem) {
> + if (list_empty(&bo_va->vm_status)) {
> + spin_unlock(&vm->status_lock);
> + return 0;
> + }
> + list_del_init(&bo_va->vm_status);
> + } else {
> + list_del(&bo_va->vm_status);
> + list_add(&bo_va->vm_status, &vm->cleared);
> + }
>   spin_unlock(&vm->status_lock);
>   
>   bo_va->flags &= ~RADEON_VM_PAGE_VALID;
> @@ -947,10 +956,6 @@ int radeon_vm_bo_update(struct radeon_device *rdev,
>   addr = 0;
>   }
>   
> - if (addr == bo_va->addr)
> - return 0;
> - bo_va->addr = addr;
> -
>   trace_radeon_vm_bo_update(bo_va);
>   
>   nptes = bo_va->it.last - bo_va->it.start + 1;
> @@ -1038,7 +1043,7 @@ int radeon_vm_clear_freed(struct radeon_device *rdev,
> struct radeon_vm *vm)
>   {
>   struct rad

[PATCH] drm/radeon: stop using addr to check for BO move

2015-05-23 Thread Christian König
From: Christian König 

It is theoretically possible that a swapped out BO gets the
same GTT address, but different backing pages while being swapped in.

Instead just use another VA state to note updated areas.

Signed-off-by: Christian König 
---
 drivers/gpu/drm/radeon/radeon.h|  4 ++-
 drivers/gpu/drm/radeon/radeon_vm.c | 53 +-
 2 files changed, 32 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 46eb0fa..ef7df51 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -467,7 +467,6 @@ struct radeon_bo_va {
/* protected by bo being reserved */
struct list_headbo_list;
uint32_tflags;
-   uint64_taddr;
struct radeon_fence *last_pt_update;
unsignedref_count;

@@ -941,6 +940,9 @@ struct radeon_vm {
/* BOs freed, but not yet updated in the PT */
struct list_headfreed;

+   /* BOs cleared in the PT */
+   struct list_headcleared;
+
/* contains the page directory */
struct radeon_bo*page_directory;
unsignedmax_pde_used;
diff --git a/drivers/gpu/drm/radeon/radeon_vm.c 
b/drivers/gpu/drm/radeon/radeon_vm.c
index de42fc4..9739ded 100644
--- a/drivers/gpu/drm/radeon/radeon_vm.c
+++ b/drivers/gpu/drm/radeon/radeon_vm.c
@@ -331,7 +331,6 @@ struct radeon_bo_va *radeon_vm_bo_add(struct radeon_device 
*rdev,
bo_va->it.start = 0;
bo_va->it.last = 0;
bo_va->flags = 0;
-   bo_va->addr = 0;
bo_va->ref_count = 1;
INIT_LIST_HEAD(&bo_va->bo_list);
INIT_LIST_HEAD(&bo_va->vm_status);
@@ -491,9 +490,11 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
}

if (bo_va->it.start || bo_va->it.last) {
-   if (bo_va->addr) {
+   spin_lock(&vm->status_lock);
+   if (list_empty(&bo_va->vm_status)) {
/* add a clone of the bo_va to clear the old address */
struct radeon_bo_va *tmp;
+   spin_unlock(&vm->status_lock);
tmp = kzalloc(sizeof(struct radeon_bo_va), GFP_KERNEL);
if (!tmp) {
mutex_unlock(&vm->mutex);
@@ -502,14 +503,11 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
tmp->it.start = bo_va->it.start;
tmp->it.last = bo_va->it.last;
tmp->vm = vm;
-   tmp->addr = bo_va->addr;
tmp->bo = radeon_bo_ref(bo_va->bo);
spin_lock(&vm->status_lock);
list_add(&tmp->vm_status, &vm->freed);
-   spin_unlock(&vm->status_lock);
-
-   bo_va->addr = 0;
}
+   spin_unlock(&vm->status_lock);

interval_tree_remove(&bo_va->it, &vm->va);
bo_va->it.start = 0;
@@ -520,10 +518,12 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
bo_va->it.start = soffset;
bo_va->it.last = eoffset - 1;
interval_tree_insert(&bo_va->it, &vm->va);
+   spin_lock(&vm->status_lock);
+   list_add(&bo_va->vm_status, &vm->cleared);
+   spin_unlock(&vm->status_lock);
}

bo_va->flags = flags;
-   bo_va->addr = 0;

soffset >>= radeon_vm_block_size;
eoffset >>= radeon_vm_block_size;
@@ -921,7 +921,16 @@ int radeon_vm_bo_update(struct radeon_device *rdev,
}

spin_lock(&vm->status_lock);
-   list_del_init(&bo_va->vm_status);
+   if (mem) {
+   if (list_empty(&bo_va->vm_status)) {
+   spin_unlock(&vm->status_lock);
+   return 0;
+   }
+   list_del_init(&bo_va->vm_status);
+   } else {
+   list_del(&bo_va->vm_status);
+   list_add(&bo_va->vm_status, &vm->cleared);
+   }
spin_unlock(&vm->status_lock);

bo_va->flags &= ~RADEON_VM_PAGE_VALID;
@@ -947,10 +956,6 @@ int radeon_vm_bo_update(struct radeon_device *rdev,
addr = 0;
}

-   if (addr == bo_va->addr)
-   return 0;
-   bo_va->addr = addr;
-
trace_radeon_vm_bo_update(bo_va);

nptes = bo_va->it.last - bo_va->it.start + 1;
@@ -1038,7 +1043,7 @@ int radeon_vm_clear_freed(struct radeon_device *rdev,
  struct radeon_vm *vm)
 {
struct radeon_bo_va *bo_va;
-   int r;
+   int r = 0;

spin_lock(&vm->status_lock);
while (!list_empty(&vm->freed)) {
@@ -1049,14 +1054,15 @@ int radeon_vm_clear_freed(struct radeon_device *rdev,
r = radeon_vm_bo_update(rdev, bo_va, NULL);
 

[Bug 90378] [LLVM][bisected] GPU lockups in Left 4 Dead 2

2015-05-23 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=90378

--- Comment #5 from Daniel Scharrer  ---
While the glitches come from an earlier revision than the GPU lockups, both are
caused by the machine scheduler. Disabling the machine scheduler for SI fixes
both the glitches and the GPU lockups. See bug 88978 for details.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150523/698566de/attachment.html>


[Bug 88561] [radeonsi][regression, bisected] Depth test/buffer issues in Portal

2015-05-23 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88561

Daniel Scharrer  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #10 from Daniel Scharrer  ---
I think Marek's patch fixed the original Portal issue I bisected in radeonsi.
The remakning glitches seem to be caused by a LLVM regression. I've added the
relevant information to bug #88978.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150523/2ffd334d/attachment-0001.html>


[Bug 88978] [bisected] [SI Scheduler] Graphical corruption in Dota 2

2015-05-23 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88978

--- Comment #13 from Daniel Scharrer  ---
Created attachment 115997
  --> https://bugs.freedesktop.org/attachment.cgi?id=115997&action=edit
R600_DEBUG=ps,vs,gs output for the Talos trace with r227461 (lockups)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150523/1e194a9b/attachment.html>


[Bug 88978] [bisected] [SI Scheduler] Graphical corruption in Dota 2

2015-05-23 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88978

--- Comment #12 from Daniel Scharrer  ---
Created attachment 115996
  --> https://bugs.freedesktop.org/attachment.cgi?id=115996&action=edit
R600_DEBUG=ps,vs,gs output for the Talos trace with r227460 (no lockups)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150523/0bfd90d6/attachment.html>


[Bug 88978] [bisected] [SI Scheduler] Graphical corruption in Dota 2

2015-05-23 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88978

--- Comment #11 from Daniel Scharrer  ---
Created attachment 115995
  --> https://bugs.freedesktop.org/attachment.cgi?id=115995&action=edit
patch to disable the machine scheduler for SI

I can confirm that these these glitches are still present on current LLVM +
Mesa git with a 7950 (TAHITI).

Glitches happen in various games with different engines (Source, Unity, …).
Here is a trace of The Talos Principle (first posted in bug #88561 comment 9),
that still produces more than just occasional glitches (even with Marek's
patch):
 http://constexpr.org/tmp/Talos-radeonsi.3.trace.xz (147 MiB)

Like sarnex, I have bisected this to LLVM
51a3c27d6e0c66cc8d2d1da8e9205fec7b74ca5c (r227461).
I had to revert b8797a7 and a99a16a in current Mesa git for it to build against
that LLVM revision.

Some Source engine games (L4D2, Nuclear Dawn, maybe others) don't just produce
graphical glitches but also frequently lock up the GPU since a later change to
the machine scheduler (r233366) - see bug #90378.

Disabling the machine scheduler for SI on current LLVM (see attached patch)
also fixes both the lockups an graphical glitches.

Additionally, using R600_DEBUG=switch_on_eop with unpatched LLVM also works
around both the graphical glitches and and GPU lockups.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150523/6c4ff000/attachment.html>


[Nouveau] [PATCH v2] nouveau: add coherent BO attribute

2015-05-23 Thread Alexandre Courbot
On Fri, May 22, 2015 at 3:23 AM, Martin Peres  wrote:
> On 21/05/2015 11:47, Ben Skeggs wrote:
>>
>> On 21 May 2015 at 16:08, Alexandre Courbot  wrote:
>>>
>>> Add a flag allowing Nouveau to specify that an object should be coherent
>>> at allocation time. This is required for some class of objects like
>>> fences which are randomly-accessed by both the CPU and GPU. This flag
>>> instructs the kernel driver to make sure the object remains coherent
>>> even on architectures for which coherency is not guaranteed by the bus.
>>>
>>> Signed-off-by: Alexandre Courbot 
>>
>> Reviewed-by: Ben Skeggs 
>
>
> Pushed!

Thanks! Should we also bump the ABI version or something?


[PATCH 1/2] drm/nouveau: add staging module option

2015-05-23 Thread Alexandre Courbot
On Thu, May 21, 2015 at 5:35 PM, Ben Skeggs  wrote:
> On 21 May 2015 at 16:04, Alexandre Courbot  wrote:
>> On Thu, May 21, 2015 at 2:55 PM, Ben Skeggs  wrote:
>>> On 21 May 2015 at 15:49, Alexandre Courbot  wrote:
 On Thu, May 21, 2015 at 1:48 PM, Ben Skeggs  wrote:
> On 20 May 2015 at 15:56, Alexandre Courbot  wrote:
>> Add a module option allowing to enable staging/unstable APIs. This will
>> allow us to experiment freely with experimental APIs for a while before
>> setting them in stone.
>>
>> Signed-off-by: Alexandre Courbot 
>> ---
>>  drm/nouveau/nouveau_drm.c  | 18 ++
>>  drm/nouveau/uapi/drm/nouveau_drm.h |  3 +++
>>  2 files changed, 21 insertions(+)
>>
>> diff --git a/drm/nouveau/nouveau_drm.c b/drm/nouveau/nouveau_drm.c
>> index 89049335b738..e4bd6ed51e73 100644
>> --- a/drm/nouveau/nouveau_drm.c
>> +++ b/drm/nouveau/nouveau_drm.c
>> @@ -75,6 +75,10 @@ MODULE_PARM_DESC(runpm, "disable (0), force enable 
>> (1), optimus only default (-1
>>  int nouveau_runtime_pm = -1;
>>  module_param_named(runpm, nouveau_runtime_pm, int, 0400);
>>
>> +MODULE_PARM_DESC(staging, "enable staging APIs");
>> +int nouveau_staging = 0;
>> +module_param_named(staging, nouveau_staging, int, 0400);
>> +
>>  static struct drm_driver driver_stub;
>>  static struct drm_driver driver_pci;
>>  static struct drm_driver driver_platform;
>> @@ -895,6 +899,7 @@ nouveau_ioctls[] = {
>> DRM_IOCTL_DEF_DRV(NOUVEAU_GEM_CPU_PREP, 
>> nouveau_gem_ioctl_cpu_prep, DRM_UNLOCKED|DRM_AUTH|DRM_RENDER_ALLOW),
>> DRM_IOCTL_DEF_DRV(NOUVEAU_GEM_CPU_FINI, 
>> nouveau_gem_ioctl_cpu_fini, DRM_UNLOCKED|DRM_AUTH|DRM_RENDER_ALLOW),
>> DRM_IOCTL_DEF_DRV(NOUVEAU_GEM_INFO, nouveau_gem_ioctl_info, 
>> DRM_UNLOCKED|DRM_AUTH|DRM_RENDER_ALLOW),
>> +   /* Staging ioctls */
>>  };
>>
>>  long
>> @@ -1027,6 +1032,7 @@ static void nouveau_display_options(void)
>> DRM_DEBUG_DRIVER("... runpm: %d\n", nouveau_runtime_pm);
>> DRM_DEBUG_DRIVER("... vram_pushbuf : %d\n", 
>> nouveau_vram_pushbuf);
>> DRM_DEBUG_DRIVER("... pstate   : %d\n", nouveau_pstate);
>> +   DRM_DEBUG_DRIVER("... staging  : %d\n", nouveau_staging);
>>  }
>>
>>  static const struct dev_pm_ops nouveau_pm_ops = {
>> @@ -1088,6 +1094,18 @@ err_free:
>>  static int __init
>>  nouveau_drm_init(void)
>>  {
>> +   /* Do not register staging ioctsl if option not specified */
>> +   if (!nouveau_staging) {
>> +   unsigned i;
>> +
>> +   /* This keeps us safe is no staging ioctls are defined */
>> +   i = min(driver_stub.num_ioctls, 
>> DRM_NOUVEAU_STAGING_IOCTL);
>> +   while (!nouveau_ioctls[i - 1].func)
>> +   i--;
>> +
>> +   driver_stub.num_ioctls = i;
>> +   }
> Hey Alex,
>
> I've got no specific objection.  But I'm curious as to why you took
> this approach as opposed to just adding "if (!nouveau_staging) return
> -EINVAL;" directly in the experimental ioctls?

 Mainly because we will likely forget to add this check (or to remove
 it) in some of the staging ioctls. The current solution doesn't
 require us to think about that - and the less things to think about,
 the better.

> I think, in line with
> what's been done in other places, having module options per-api is
> perhaps a better choice too.

 Do you mean that each experimental ioctl should have its own enable
 option? I don't mind going that way if you think it is preferable. And
 in that case my comment above is void.
>>> That would be more preferable I think, and obvious as to what exactly
>>> you're enabling.
>>>

 But actually I wonder if having these experimental ioctls enabled as
 compile options (either individually or as a whole) would not be
 better. Some experimental ioctls may require code in staging (like the
 PUSHBUF_2 ioctl that I would like to submit next), and I don't think
 it is desirable to force extra code or kernel options (in this case,
 CONFIG_STAGING) to Nouveau users who will not make use of them. I
 remember that we concluded in favor or module options on IRC, but in
 the light of this, wouldn't a config option be a less intrusive
 choice?
>>> Right, but the whole point of this is to encourage the ioctls to not
>>> live there for too long, and progress to fully supported interfaces.
>>
>> Definitely, but my concern is that doing this will make Nouveau depend
>> on STAGING for at least short periods of time. Do we really want this?
> I admit to having slightly misread your last paragraph.  For cases
> such as thas, a config option that depends on STAGING *and* the kernel
> 

[Intel-gfx] drivers/gpu/drm/i915/i915_gem_gtt.c

2015-05-23 Thread Damien Lespiau
On Fri, May 22, 2015 at 02:17:32PM -0700, Andrew Morton wrote:
> I'm not sure what's happened to the drm code in linux-next - it's
> exploding all over the place.  Did someone turn on -Werror without
> doing anywhere near enough testing?
> 
> Anyway, I don't know how to fix this i386 build error:

Seems like you have CONFIG_DRM_I915_WERROR set?

We explicitely made sure to not enable -Werror by default, because
different versions of gcc will generate different set of warnings making
it roughly impossible to use -Werror by default (say, newer versions of
gcc with more clever warnings trying to compile old commits while
bisecting) 

-- 
Damien


[Bug 77394] Radeon R9 270X GPU lockup on power profile change

2015-05-23 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=77394

--- Comment #16 from nine at detonation.org ---
Today I finally made decent progress on this issue. I can confirm that the GPU
lockups are not the X server's fault, since they appear also when using weston
and indeed, when running the eglkms Mesa demo on the pure framebuffer.

Trying to find the exact OpenGL call that causes the lockup, I discovered, that
when I change the power profile before starting any GL program (Mesa demo or
display server), it continues to work until the next reboot. So all that was
needed was a
echo low > /sys/class/drm/card0/device/power_profile
executed before starting the X server and I could change power profile at
runtime.

I then turned on dpm again and indeed:
echo high > /sys/class/drm/card0/device/power_dpm_force_performance_level
echo auto > /sys/class/drm/card0/device/power_dpm_force_performance_level
called by an ExecStartPre script from the display-server service file fixes the
issue completely for me and I have now a fully working dpm :)

So it seems like the first change of performance level/profile initializes
something that must be initialized before the first GL call or CRTC change for
power management to be stable. Any idea what this something might be?

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150523/e100fb47/attachment-0001.html>


[Intel-gfx] drivers/gpu/drm/i915/i915_gem_gtt.c

2015-05-23 Thread Andrew Morton
On Sat, 23 May 2015 14:30:09 +0100 Damien Lespiau  
wrote:

> On Fri, May 22, 2015 at 02:17:32PM -0700, Andrew Morton wrote:
> > I'm not sure what's happened to the drm code in linux-next - it's
> > exploding all over the place.  Did someone turn on -Werror without
> > doing anywhere near enough testing?
> > 
> > Anyway, I don't know how to fix this i386 build error:
> 
> Seems like you have CONFIG_DRM_I915_WERROR set?

Yes.

> We explicitely made sure to not enable -Werror by default,

`make allmodconfig' enables CONFIG_DRM_I915_WERROR.

I'm not sure what is the approved way of fixing this.  Perhaps
disabling CONFIG_DRM_I915_WERROR when CONFIG_COMPILE_TEST=y.


[git pull] drm fixes

2015-05-23 Thread Dave Airlie
On 23 May 2015 at 07:34, Linus Torvalds  
wrote:
> On Thu, May 21, 2015 at 8:39 PM, Dave Airlie  wrote:
>>
>> radeon has two displayport fixes, one for a regressions,
>> i915 regression flicker fix needed to 4.0 can get fixed.
>
> Ok, I'm used to fixing up your whitespace and lack of capitalization,
> but you're getting so incoherent that I can no longer even parse it
> well enough to fix it up.
>
> English *is* your first language, right? Could you please re-phrase
>
>   "i915 regression flicker fix needed to 4.0 can get fixed"
>
> because it's not really making sense to me, and I want my commit
> messages to make sense.

Really ^to^so

i915: fix flicker regression from 4.0, patch required so 4.0 can get
fix backported.

Dave.


[Bug 77394] Radeon R9 270X GPU lockup on power profile change

2015-05-23 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=77394

nine at detonation.org changed:

   What|Removed |Added

Summary|Desktop freezes often when  |Radeon R9 270X GPU lockup
   |KDE starts compositing or   |on power profile change
   |mplayer GL window changes   |

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150523/833f78cc/attachment.html>


[Bug 90537] radeonsi bo/va conflict on RADEON_GEM_VA (rscreen->ws->buffer_from_handle returns NULL)

2015-05-23 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=90537

--- Comment #11 from pstglia at gmail.com ---
(In reply to pstglia from comment #10)
> > BTW: Is it sufficient to put the ISO on an USB stick with usb-creator-gtk to
> > get a bootable Android?
> > 
> > If yes then I'm clearly going to try that sooner or later.
> 
> Never tried usb-creator-gtk. But "dd" works just fine (/dev/sdb is the
> device mapped to my usb flash drive):
> 
> dd if=android-x86-5.1_kernel_4.0.3_mesa_10.5.4_radeonsi_test_20150521.iso
> of=/dev/sdb bs=65535

And yes, it is a bootable Android image (bootable under bios legacy mode - a
UEFI img can also be generated). This img has no google apps (but you can
download apps/apks from sites like www.apkmirror.com) or houdini (ARM binary
translator). Many apps can run on it (those which depend on Dalvik) and some
have x86 version (Like Angry Birds Series).

About the tests, still waiting for more feedback from more users ( Android-x86
topic is https://groups.google.com/forum/#!topic/android-x86/AayRmQiZAlw )

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150523/20030e5d/attachment.html>