Re: RFC: libdrm repo

2009-11-18 Thread Julien Cristau
On Tue, Nov 17, 2009 at 18:54:40 +0100, Stephane Marchesin wrote:

 Yes, but the positive side is that distros using a standard/old (about
 a year) kernel don't need to crawl the old libdrm repo and find the
 right version (in your case they have to do this ° backport stuff) ...
 I think that plus the fact that it makes development and merging
 simpler is just a reason to do it.
 
Why would they have to do that?  Newer libdrms should stay compatible
with older kernels...

Cheers,
Julien

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[patch] move dereference after null check

2009-11-18 Thread Dan Carpenter
I moved the fence dereference after the check.  rdev is fence-rdev so I 
moved the rdev deference as well.

This was found by static analysis so I can't say whether fence is ever 
actually null but it's a good thing to do either way.

regards,
dan carpenter

Signed-off-by: Dan Carpenter erro...@gmail.com

--- orig/drivers/gpu/drm/radeon/radeon_fence.c  2009-11-16 23:48:42.0 
+0200
+++ devel/drivers/gpu/drm/radeon/radeon_fence.c 2009-11-16 23:50:23.0 
+0200
@@ -140,14 +140,15 @@
 
 bool radeon_fence_signaled(struct radeon_fence *fence)
 {
-   struct radeon_device *rdev = fence-rdev;
+   struct radeon_device *rdev;
unsigned long irq_flags;
bool signaled = false;
 
-   if (rdev-gpu_lockup) {
+   if (fence == NULL) {
return true;
}
-   if (fence == NULL) {
+   rdev = fence-rdev;
+   if (rdev-gpu_lockup) {
return true;
}
write_lock_irqsave(fence-rdev-fence_drv.lock, irq_flags);

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: is avoiding compat ioctls possible?

2009-11-18 Thread Andi Kleen
 Doing all these out-of-line hidden over here in a separate file just
 seems crazy,
 and I'm  having trouble wondering why ppl consider it a better idea at all.

The separate file is on the way out, the modern way is to use
-compat_ioctl in the driver itself. Near all drivers except
for a few exceptions like DRM put it into the same file.
I think you should just move the code  around in DRM too
and drop the separate file.

-Andi

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [patch 1/5] drm/via: add pci id for VIA VX800 chipset

2009-11-18 Thread Thomas Schlichter
Dave Airlie wrote:
 I think this was an mtrr missing workaround,
 
 I think we dropped this in favour of fixing things properly, correct
 me if I'm wrong.

You are right. There was a missing MTRR entry that X.org could not
successfully create.

I was using a kernel with PAT disabled (now more difficult due to:
http://git.kernel.org/?p=linux/kernel/git/tip/linux-2.6-tip.git;a=commitdiff;h=c03cb3149daed3e411657e3212d05ae27cf1a874
 )

And with PAT disabled, the problem of the missing MTRR entry is fixed
with this patch:
http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commitdiff;h=2992e545ea006992ec9dc91c4fa996ce1e15f921

So, with these two patches, the problem is fixed for me and the patch
below can be dropped. Thank you very much!

Best regards,
  Thomas

  Signed-off-by: Thomas Schlichter thomas.schlich...@web.de
  Cc: Dave Airlie airl...@redhat.com
 
  Cc: Eric Anholt e...@anholt.net
  Signed-off-by: Andrew Morton a...@linux-foundation.org
  ---
 
   include/drm/drm_pciids.h |1 +
   1 file changed, 1 insertion(+)
 
  diff -puN
  include/drm/drm_pciids.h~drm-via-add-pci-id-for-via-vx800-chipset
  include/drm/drm_pciids.h ---
  a/include/drm/drm_pciids.h~drm-via-add-pci-id-for-via-vx800-chipset +++
  a/include/drm/drm_pciids.h
  @@ -477,6 +477,7 @@
 {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
 {0x1106, 0x3230, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \
 {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \
  +   {0x1106, 0x1122, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \
 {0, 0, 0}
 
   #define i810_PCI_IDS \
  _

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 3/4] APPLE_object_purgeable: core

2009-11-18 Thread Chris Wilson
Signed-off-by: Chris Wilson ch...@chris-wilson.co.uk
---
 src/mesa/main/api_exec.c   |6 +
 src/mesa/main/bufferobj.c  |  350 
 src/mesa/main/bufferobj.h  |   11 ++
 src/mesa/main/dd.h |   15 ++
 src/mesa/main/dlist.c  |6 +
 src/mesa/main/extensions.c |4 +
 src/mesa/main/mfeatures.h  |1 +
 src/mesa/main/mtypes.h |4 +
 8 files changed, 397 insertions(+), 0 deletions(-)

diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c
index 1559984..953dcd9 100644
--- a/src/mesa/main/api_exec.c
+++ b/src/mesa/main/api_exec.c
@@ -746,4 +746,10 @@ _mesa_init_exec_table(struct _glapi_table *exec)
/* GL_ARB_vertex_array_object */
SET_BindVertexArray(exec, _mesa_BindVertexArray);
SET_GenVertexArrays(exec, _mesa_GenVertexArrays);
+
+#if FEATURE_APPLE_object_purgeable
+   SET_ObjectPurgeableAPPLE(exec, _mesa_ObjectPurgeableAPPLE);
+   SET_ObjectUnpurgeableAPPLE(exec, _mesa_ObjectUnpurgeableAPPLE);
+   SET_GetObjectParameterivAPPLE(exec, _mesa_GetObjectParameterivAPPLE);
+#endif
 }
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 52c4995..08633a9 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -37,6 +37,8 @@
 #include image.h
 #include context.h
 #include bufferobj.h
+#include fbobject.h
+#include texobj.h
 
 
 /* Debug flags */
@@ -1655,3 +1657,351 @@ _mesa_FlushMappedBufferRange(GLenum target, GLintptr 
offset, GLsizeiptr length)
if (ctx-Driver.FlushMappedBufferRange)
   ctx-Driver.FlushMappedBufferRange(ctx, target, offset, length, bufObj);
 }
+
+#if FEATURE_APPLE_object_purgeable
+static GLenum
+_mesa_RenderObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option)
+{
+   struct gl_renderbuffer *bufObj;
+   GLenum retval;
+
+   bufObj = _mesa_lookup_renderbuffer(ctx, name);
+   if (!bufObj) {
+  _mesa_error(ctx, GL_INVALID_VALUE,
+  glObjectUnpurgeable(name = 0x%x), name);
+  return 0;
+   }
+
+   if (bufObj-Purgeable) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  glObjectPurgeable(name = 0x%x) is already purgeable, name);
+  return GL_VOLATILE_APPLE;
+   }
+
+   bufObj-Purgeable = GL_TRUE;
+
+   retval = GL_VOLATILE_APPLE;
+   if (ctx-Driver.ObjectPurgeable_RenderObject)
+  retval = ctx-Driver.ObjectPurgeable_RenderObject(ctx, bufObj, option);
+
+   return retval;
+}
+
+static GLenum
+_mesa_TextureObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option)
+{
+   struct gl_texture_object *bufObj;
+   GLenum retval;
+
+   bufObj = _mesa_lookup_texture(ctx, name);
+   if (!bufObj) {
+  _mesa_error(ctx, GL_INVALID_VALUE,
+  glObjectPurgeable(name = 0x%x), name);
+  return 0;
+   }
+
+   if (bufObj-Purgeable) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  glObjectPurgeable(name = 0x%x) is already purgeable, name);
+  return GL_VOLATILE_APPLE;
+   }
+
+   bufObj-Purgeable = GL_TRUE;
+
+   retval = GL_VOLATILE_APPLE;
+   if (ctx-Driver.ObjectPurgeable_TextureObject)
+  retval = ctx-Driver.ObjectPurgeable_TextureObject(ctx, bufObj, option);
+
+   return retval;
+}
+
+static GLenum
+_mesa_BufferObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option)
+{
+   struct gl_buffer_object *bufObj;
+   GLenum retval;
+
+   bufObj = get_buffer(ctx, name);
+   if (!bufObj) {
+  _mesa_error(ctx, GL_INVALID_VALUE,
+  glObjectPurgeable(name = 0x%x), name);
+  return 0;
+   }
+
+   if (bufObj-Purgeable) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  glObjectPurgeable(name = 0x%x) is already purgeable, name);
+  return GL_VOLATILE_APPLE;
+   }
+
+   bufObj-Purgeable = GL_TRUE;
+
+   retval = GL_VOLATILE_APPLE;
+   if (ctx-Driver.ObjectPurgeable_BufferObject)
+  retval = ctx-Driver.ObjectPurgeable_BufferObject(ctx, bufObj, option);
+
+   return retval;
+}
+
+GLenum GLAPIENTRY
+_mesa_ObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option)
+{
+   GET_CURRENT_CONTEXT(ctx);
+
+   if (name == 0) {
+  _mesa_error(ctx, GL_INVALID_VALUE,
+  glObjectPurgeable(name = 0x%x), name);
+  return 0;
+   }
+
+   switch (option) {
+   case GL_VOLATILE_APPLE:
+   case GL_RELEASED_APPLE:
+  break;
+
+   default:
+  _mesa_error(ctx, GL_INVALID_ENUM,
+  glObjectPurgeable(name = 0x%x) invalid option: %d, name, 
option);
+  return 0;
+   }
+
+   switch (objectType) {
+   case GL_TEXTURE:
+  return _mesa_TextureObjectPurgeable (ctx, name, option);
+   case GL_RENDERBUFFER_EXT:
+  return _mesa_RenderObjectPurgeable (ctx, name, option);
+   case GL_BUFFER_OBJECT_APPLE:
+  return _mesa_BufferObjectPurgeable (ctx, name, option);
+
+   default:
+  _mesa_error(ctx, GL_INVALID_ENUM,
+  glObjectPurgeable(name = 0x%x) invalid type: %d, name, 
objectType);
+  return 0;
+   }
+}
+
+static GLenum
+_mesa_RenderObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum 

APPLE_object_purgeable [v3]

2009-11-18 Thread Chris Wilson
Large correction after Ian pointed out the fundamental flaw that the
various objects are separate structures and so require independent
interfaces.

Please review.
-ickle


--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 1/4] APPLE_object_purgeable: xml

2009-11-18 Thread Chris Wilson
Signed-off-by: Chris Wilson ch...@chris-wilson.co.uk
---
 src/mesa/glapi/APPLE_object_purgeable.xml |   37 +
 src/mesa/glapi/Makefile   |1 +
 src/mesa/glapi/gl_API.xml |1 +
 3 files changed, 39 insertions(+), 0 deletions(-)
 create mode 100644 src/mesa/glapi/APPLE_object_purgeable.xml

diff --git a/src/mesa/glapi/APPLE_object_purgeable.xml 
b/src/mesa/glapi/APPLE_object_purgeable.xml
new file mode 100644
index 000..62fa64a
--- /dev/null
+++ b/src/mesa/glapi/APPLE_object_purgeable.xml
@@ -0,0 +1,37 @@
+?xml version=1.0?
+!DOCTYPE OpenGLAPI SYSTEM gl_API.dtd
+
+OpenGLAPI
+category name=GL_APPLE_object_purgeable number=371
+enum name=RELEASED_APPLE   value=0x8A19/
+enum name=VOLATILE_APPLE   value=0x8A1A/
+enum name=RETAINED_APPLE   value=0x8A1B/
+enum name=UNDEFINED_APPLE  value=0x8A1C/
+enum name=PURGEABLE_APPLEcount=1 value=0x8A1D
+   size name=GetObjectParameterivAPPLE count=1 mode=get/
+/enum
+
+enum name=BUFFER_OBJECT_APPLE  value=0x85B3/
+
+function name=ObjectPurgeableAPPLE offset=assign
+param name=objectType type=GLenum/
+param name=name type=GLuint/
+param name=option type=GLenum/
+   return type=GLenum/
+/function
+
+function name=ObjectUnpurgeableAPPLE offset=assign
+param name=objectType type=GLenum/
+param name=name type=GLuint/
+param name=option type=GLenum/
+   return type=GLenum/
+/function
+
+function name=GetObjectParameterivAPPLE offset=assign
+param name=objectType type=GLenum/
+param name=name type=GLuint/
+param name=pname type=GLenum/
+param name=value type=GLint * output=true/
+/function
+/category
+/OpenGLAPI
diff --git a/src/mesa/glapi/Makefile b/src/mesa/glapi/Makefile
index 71bef68..ce7c4c5 100644
--- a/src/mesa/glapi/Makefile
+++ b/src/mesa/glapi/Makefile
@@ -56,6 +56,7 @@ API_XML = gl_API.xml \
ARB_sync.xml \
ARB_vertex_array_object.xml \
APPLE_vertex_array_object.xml \
+   APPLE_object_purgeable.xml \
EXT_framebuffer_object.xml \
EXT_packed_depth_stencil.xml \
EXT_provoking_vertex.xml \
diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml
index 34c7746..7ff61b3 100644
--- a/src/mesa/glapi/gl_API.xml
+++ b/src/mesa/glapi/gl_API.xml
@@ -11974,6 +11974,7 @@
 /category
 
 xi:include href=APPLE_vertex_array_object.xml 
xmlns:xi=http://www.w3.org/2001/XInclude/
+xi:include href=APPLE_object_purgeable.xml 
xmlns:xi=http://www.w3.org/2001/XInclude/
 
 category name=GL_APPLE_ycbcr_422 number=275
 enum name=YCBCR_422_APPLE  value=0x85B9/
-- 
1.6.5.2


--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 4/4] APPLE_object_purgeable: intel

2009-11-18 Thread Chris Wilson
Implement support for purgeable objects by using the GEM madvise ioctl.

Signed-off-by: Chris Wilson ch...@chris-wilson.co.uk
---
 src/mesa/drivers/dri/intel/intel_buffer_objects.c |  134 -
 src/mesa/drivers/dri/intel/intel_extensions.c |2 +
 2 files changed, 135 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c 
b/src/mesa/drivers/dri/intel/intel_buffer_objects.c
index 669becd..069a204 100644
--- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c
+++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c
@@ -31,10 +31,12 @@
 #include main/macros.h
 #include main/bufferobj.h
 
-#include intel_context.h
 #include intel_blit.h
 #include intel_buffer_objects.h
 #include intel_batchbuffer.h
+#include intel_context.h
+#include intel_fbo.h
+#include intel_mipmap_tree.h
 #include intel_regions.h
 
 static GLboolean
@@ -586,6 +588,126 @@ intel_bufferobj_copy_subdata(GLcontext *ctx,
intel_batchbuffer_emit_mi_flush(intel-batch);
 }
 
+#if FEATURE_APPLE_object_purgeable
+static GLenum
+intel_buffer_purgeable(GLcontext * ctx,
+   drm_intel_bo *buffer,
+   GLenum option)
+{
+   int retained = 0;
+
+   if (buffer != NULL)
+  retained = drm_intel_bo_madvise (buffer, I915_MADV_DONTNEED);
+
+   return retained ? GL_VOLATILE_APPLE : GL_RELEASED_APPLE;
+}
+
+static GLenum
+intel_buffer_object_purgeable(GLcontext * ctx,
+  struct gl_buffer_object *obj,
+  GLenum option)
+{
+   struct intel_buffer_object *intel;
+
+   intel = intel_buffer_object (obj);
+   if (intel-buffer != NULL)
+  return intel_buffer_purgeable (ctx, intel-buffer, option);
+
+   if (option == GL_RELEASED_APPLE) {
+  if (intel-sys_buffer != NULL) {
+ _mesa_free(intel-sys_buffer);
+ intel-sys_buffer = NULL;
+  }
+
+  return GL_RELEASED_APPLE;
+   } else {
+  /* XXX Create the buffer and madvise(MADV_DONTNEED)? */
+  return intel_buffer_purgeable (ctx,
+ intel_bufferobj_buffer(intel_context(ctx),
+intel, INTEL_READ),
+ option);
+   }
+}
+
+static GLenum
+intel_texture_object_purgeable(GLcontext * ctx,
+   struct gl_texture_object *obj,
+   GLenum option)
+{
+   struct intel_texture_object *intel;
+
+   intel = intel_texture_object(obj);
+   if (intel-mt == NULL || intel-mt-region == NULL)
+  return GL_RELEASED_APPLE;
+
+   return intel_buffer_purgeable (ctx, intel-mt-region-buffer, option);
+}
+
+static GLenum
+intel_render_object_purgeable(GLcontext * ctx,
+  struct gl_renderbuffer *obj,
+  GLenum option)
+{
+   struct intel_renderbuffer *intel;
+
+   intel = intel_renderbuffer(obj);
+   if (intel-region == NULL)
+  return GL_RELEASED_APPLE;
+
+   return intel_buffer_purgeable (ctx, intel-region-buffer, option);
+}
+
+static GLenum
+intel_buffer_unpurgeable(GLcontext * ctx,
+ drm_intel_bo *buffer,
+ GLenum option)
+{
+   int retained;
+
+   retained = 0;
+   if (buffer != NULL)
+  retained = drm_intel_bo_madvise (buffer, I915_MADV_WILLNEED);
+
+   return retained ? GL_RETAINED_APPLE : GL_UNDEFINED_APPLE;
+}
+
+static GLenum
+intel_buffer_object_unpurgeable(GLcontext * ctx,
+struct gl_buffer_object *obj,
+GLenum option)
+{
+   return intel_buffer_unpurgeable (ctx, intel_buffer_object (obj)-buffer, 
option);
+}
+
+static GLenum
+intel_texture_object_unpurgeable(GLcontext * ctx,
+ struct gl_texture_object *obj,
+ GLenum option)
+{
+   struct intel_texture_object *intel;
+
+   intel = intel_texture_object(obj);
+   if (intel-mt == NULL || intel-mt-region == NULL)
+  return GL_UNDEFINED_APPLE;
+
+   return intel_buffer_unpurgeable (ctx, intel-mt-region-buffer, option);
+}
+
+static GLenum
+intel_render_object_unpurgeable(GLcontext * ctx,
+struct gl_renderbuffer *obj,
+GLenum option)
+{
+   struct intel_renderbuffer *intel;
+
+   intel = intel_renderbuffer(obj);
+   if (intel-region == NULL)
+  return GL_UNDEFINED_APPLE;
+
+   return intel_buffer_unpurgeable (ctx, intel-region-buffer, option);
+}
+#endif
+
 void
 intelInitBufferObjectFuncs(struct dd_function_table *functions)
 {
@@ -599,4 +721,14 @@ intelInitBufferObjectFuncs(struct dd_function_table 
*functions)
functions-FlushMappedBufferRange = intel_bufferobj_flush_mapped_range;
functions-UnmapBuffer = intel_bufferobj_unmap;
functions-CopyBufferSubData = intel_bufferobj_copy_subdata;
+
+#if FEATURE_APPLE_object_purgeable
+   functions-ObjectPurgeable_BufferObject = 

Re: RFC: libdrm repo

2009-11-18 Thread Xavier Bestel
On Tue, 2009-11-17 at 20:54 +0100, Julien Cristau wrote:
 On Tue, Nov 17, 2009 at 18:54:40 +0100, Stephane Marchesin wrote:
 
  Yes, but the positive side is that distros using a standard/old (about
  a year) kernel don't need to crawl the old libdrm repo and find the
  right version (in your case they have to do this ° backport stuff) ...
  I think that plus the fact that it makes development and merging
  simpler is just a reason to do it.
  
 Why would they have to do that?  Newer libdrms should stay compatible
 with older kernels...

And vice-versa. Some people install newer kernels just to have a newer
driver for some particular hardware, or a bugfix somewhere. If this
breaks 3D, many modern interfaces won't work (these days they are
compiz, gnome-shell, or other clutter-based interface).
Breaking things by upgrading a kernel is frowned upon on LKML :)

Xav




--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 25159] New: Using s3tc causes the application to crash, or display corrupt data with git r600 driver

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25159

   Summary: Using s3tc causes the application to crash, or display
corrupt data with git r600 driver
   Product: DRI
   Version: DRI CVS
  Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: DRM/Radeon
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: p...@kantaka.co.uk


Using the git HEAD drm-radeon-testing merged with 2.6.32-rc7, git mesa and
xf86-radeon-driver (if it's relevant), I get either corrupt display or
application crashes if I turn on s3tc texture compression.

I'm aware that S3tc may not be supported in the radeon git driver, which is
fine, but in that case it should turn it off, not crash :)

I've actually had this problem for a while, but presumed it was simply that
there was something odd about my hardware that wasn't supported yet, but
happened to try turning off S3tc with driconf yesterday. The behaviour was the
same with a non KMS drm (just using the drm kernel modules from the drm-adg5f
git repository compiled against a stock Debian 2.6.3[01] kernel) except that
earlier releases resulted in corrupt textures on the screen menu from quake3,
followed by a crash at round start instead of the crash at startup that the
current checkout gives.

Hardware:
 01:00.0 VGA compatible controller: ATI Technologies Inc RV730XT [Radeon HD
4670]

Behaviour: With S3tc turned on, quake3 crashes on startup with a sig11,
openarena crashes  has to be killed from a console. Penumbra runs but displays
just a single snow texture on the screen in the game.

source checkouts:
Mesa d3a37d93aba86ebca697169a31d88c3ef0ce34b9
xf86-video-ati 0c4710c67a2fee2061fc3da43c9f908585693cfa
drm (for libdrm): c20706ffe56cc658a4814f89e391c14f6065ec57
drm-radeon-testing: 984d1f3cd3308d176d6d14588836a87c94b340da

I'm using the libtxc_dxtn.so which ships with Debian unstable: it used to work
find with the old r300 driver on my old hardware, but hasn't been used for a
bit.

The simplest solution is presumably to just forcible disable S3tc in the r600
driver, although it would be nice to have the old r300 style code back (turn on
the extension, but use the external library for the actual texture compression
so that there are no patent issues for mesa).

cheers, Phil


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: is avoiding compat ioctls possible?

2009-11-18 Thread Arnd Bergmann
On Wednesday 18 November 2009, Andi Kleen wrote:
  Doing all these out-of-line hidden over here in a separate file just
  seems crazy,
  and I'm  having trouble wondering why ppl consider it a better idea at all.

 The separate file is on the way out, the modern way is to use
 -compat_ioctl in the driver itself. Near all drivers except
 for a few exceptions like DRM put it into the same file.
 I think you should just move the code  around in DRM too
 and drop the separate file.

Right. Commonly, you can simply handle the incompatible stuff in
-compat_ioctl and then call the regular function. Another way to
do it if you want to consolidate even more is to pass a flag down
the actual function and do

static int my_common_ioctl(struct my_object *my, unsigned int cmd, unsigned 
long arg,
void __user *argp, int compat)
{
...
}

static long my_native_ioctl(struct file *file, unsigned int cmd, unsigned long 
arg)
{
return my_commmon_ioctl(file-private_data, cmd, arg, (void __user 
*)arg, 0);
}

static long my_compat_ioctl(struct file *file, unsigned int cmd, unsigned long 
arg)
{
return my_commmon_ioctl(file-private_data, cmd, arg, compat_ptr(arg), 
1);
}

Doing that, you can have the ioctl handling for a subsystem consolidated in one
place, just doing the copy_from_user() part separately.

For the specific case of drm, where you have a table with all the ioctls, I can
see yet another option: add another function pointer to 'struct drm_ioctl_desc'
that does the conversion, e.g.

int drm_version_compat(void __user *argp, void *kdata, int dir)
{
struct compat_drm_version __user *uversion = argp;
struct compat_drm_version cversion;
struct drm_version *version = kdata;

if (dir == IOC_IN) {
if (copy_from_user(cversion, uversion, sizeof(cversion);
return -EFAULT;
*version = (struct drm_version) {
.version_major   = cversion.version_major,
.version_minor   = cversion.version_minor,
.version_mpatchlevel = cversion.version_patchlevel,
.name_len = cversion.name_len,
.name = compat_ptr(cversion.name),
.date_len = cversion.date_len,
.date = compat_ptr(cversion.date),
.desc_len = cversion.desc_len,
.desc = compat_ptr(cversion.desc),
};
return 0;
} else if (dir == IOC_OUT) {
cversion = (struct drm_version) {
.version_major   = version-version_major,
.version_minor   = version-version_minor,
.version_mpatchlevel = version-version_patchlevel,
.name_len = version-name_len,
.name = (unsigned long)version-name,
.date_len = version-date_len,
.date = (unsigned long)version-date,
.desc_len = version-desc_len,
.desc = (unsigned long)version-desc,
};
if (copy_to_user(uversion, cversion, sizeof(cversion);
return -EFAULT;
return 0;
}
return -EINVAL;
}

static struct drm_ioctl_desc drm_ioctls[] = {
DRM_IOCTL_DEF(DRM_IOCTL_VERSION, drm_version, drm_version_compat, 0),
...
};

Arnd 

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 21400] GPU locked up on M26 (RV410)

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=21400


Tormod Volden bugzi07.fdo.tor...@xoxy.net changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED




--- Comment #10 from Tormod Volden bugzi07.fdo.tor...@xoxy.net  2009-11-18 
07:30:49 PST ---
No, this problem has gone away, thanks!


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 25159] Using s3tc causes the application to crash, or display corrupt data with git r600 driver

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25159


Alex Deucher ag...@yahoo.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE




--- Comment #1 from Alex Deucher ag...@yahoo.com  2009-11-18 07:55:20 PST ---


*** This bug has been marked as a duplicate of bug 24047 ***


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 24047] s3tc broken on r600

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=24047


Alex Deucher ag...@yahoo.com changed:

   What|Removed |Added

 CC||p...@kantaka.co.uk




--- Comment #3 from Alex Deucher ag...@yahoo.com  2009-11-18 07:55:20 PST ---
*** Bug 25159 has been marked as a duplicate of this bug. ***


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 25163] New: HoN doesn't start on Xpress200M

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25163

   Summary: HoN doesn't start on Xpress200M
   Product: Mesa
   Version: git
  Platform: x86-64 (AMD64)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/r300
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: koo...@gmail.com


When I launch Heroes of Newerth I get this error:

Mesa: User error: GL_INVALID_ENUM in glGetString
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct NULL not valid



My video card is: RS482 [Radeon Xpress 200M]


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 2/2 v2] drm/i915: Add intel implementation of the pageflip ioctl

2009-11-18 Thread Kristian Høgsberg
Acked-by: Jakob Bornecrantz ja...@vmware.com
Acked-by: Thomas Hellström tho...@shipmail.org
Review-by: Chris Wilson ch...@chris-wilson.co.uk
Signed-off-by: Jesse Orange Smoothie Barnes jbar...@virtuousgeek.org
Signed-off-by: Kristian Høgsberg k...@bitplanet.net
---

Resend to add missing acks and sob's and to fix checkpatch errors.

cheers,
Kristian

 drivers/gpu/drm/i915/i915_drv.h  |   12 ++
 drivers/gpu/drm/i915/i915_gem.c  |   64 +-
 drivers/gpu/drm/i915/i915_irq.c  |   19 +++-
 drivers/gpu/drm/i915/i915_reg.h  |2 +
 drivers/gpu/drm/i915/intel_display.c |  228 +-
 drivers/gpu/drm/i915/intel_drv.h |4 +
 6 files changed, 291 insertions(+), 38 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 57204e2..224a0ab 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -527,6 +527,10 @@ typedef struct drm_i915_private {
/* indicate whether the LVDS_BORDER should be enabled or not */
unsigned int lvds_border_bits;
 
+   struct drm_crtc *plane_to_crtc_mapping[2];
+   struct drm_crtc *pipe_to_crtc_mapping[2];
+   wait_queue_head_t pending_flip_queue;
+
/* Reclocking support */
bool render_reclock_avail;
bool lvds_downclock_avail;
@@ -626,6 +630,13 @@ struct drm_i915_gem_object {
 * Advice: are the backing pages purgeable?
 */
int madv;
+
+   /**
+* Number of crtcs where this object is currently the fb, but
+* will be page flipped away on the next vblank.  When it
+* reaches 0, dev_priv-pending_flip_queue will be woken up.
+*/
+   atomic_t pending_flip;
 };
 
 /**
@@ -812,6 +823,7 @@ void i915_gem_free_all_phys_object(struct drm_device *dev);
 int i915_gem_object_get_pages(struct drm_gem_object *obj);
 void i915_gem_object_put_pages(struct drm_gem_object *obj);
 void i915_gem_release(struct drm_device * dev, struct drm_file *file_priv);
+void i915_gem_object_flush_write_domain(struct drm_gem_object *obj);
 
 void i915_gem_shrinker_init(void);
 void i915_gem_shrinker_exit(void);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index abfc27b..86511d1 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2760,6 +2760,22 @@ i915_gem_object_flush_cpu_write_domain(struct 
drm_gem_object *obj)
old_write_domain);
 }
 
+void
+i915_gem_object_flush_write_domain(struct drm_gem_object *obj)
+{
+   switch (obj-write_domain) {
+   case I915_GEM_DOMAIN_GTT:
+   i915_gem_object_flush_gtt_write_domain(obj);
+   break;
+   case I915_GEM_DOMAIN_CPU:
+   i915_gem_object_flush_cpu_write_domain(obj);
+   break;
+   default:
+   i915_gem_object_flush_gpu_write_domain(obj);
+   break;
+   }
+}
+
 /**
  * Moves a single object to the GTT read, and possibly write domain.
  *
@@ -3525,6 +3541,41 @@ i915_gem_check_execbuffer (struct 
drm_i915_gem_execbuffer *exec,
return 0;
 }
 
+static int
+i915_gem_wait_for_pending_flip(struct drm_device *dev,
+  struct drm_gem_object **object_list,
+  int count)
+{
+   drm_i915_private_t *dev_priv = dev-dev_private;
+   struct drm_i915_gem_object *obj_priv;
+   DEFINE_WAIT(wait);
+   int i, ret = 0;
+
+   for (;;) {
+   prepare_to_wait(dev_priv-pending_flip_queue,
+   wait, TASK_INTERRUPTIBLE);
+   for (i = 0; i  count; i++) {
+   obj_priv = object_list[i]-driver_private;
+   if (atomic_read(obj_priv-pending_flip)  0)
+   break;
+   }
+   if (i == count)
+   break;
+
+   if (!signal_pending(current)) {
+   mutex_unlock(dev-struct_mutex);
+   schedule();
+   mutex_lock(dev-struct_mutex);
+   continue;
+   }
+   ret = -ERESTARTSYS;
+   break;
+   }
+   finish_wait(dev_priv-pending_flip_queue, wait);
+
+   return ret;
+}
+
 int
 i915_gem_execbuffer(struct drm_device *dev, void *data,
struct drm_file *file_priv)
@@ -3540,7 +3591,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
int ret, ret2, i, pinned = 0;
uint64_t exec_offset;
uint32_t seqno, flush_domains, reloc_index;
-   int pin_tries;
+   int pin_tries, flips;
 
 #if WATCH_EXEC
DRM_INFO(buffers_ptr %d buffer_count %d len %08x\n,
@@ -3612,6 +3663,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
}
 
/* Look up object handles */
+   flips = 0;
for (i = 0; i  args-buffer_count; i++) {

[Bug 24047] s3tc broken on r600

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=24047


Alex Deucher ag...@yahoo.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED




--- Comment #4 from Alex Deucher ag...@yahoo.com  2009-11-18 08:53:20 PST ---
I've gone ahead and disabled compressed texture support as it's not supported
yet in the driver.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 24131] radeon_bo_legacy.c:207: legacy_is_pending: Assertion `bo_legacy-is_pending = bo-cref' failed

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=24131


Alex Deucher ag...@yahoo.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED




--- Comment #15 from Alex Deucher ag...@yahoo.com  2009-11-18 08:54:26 PST ---
Reverted: 13b5a624b1899c457279907d58046dfb3c95addc


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH] drm/i915: let pin routine figure out appropriate alignment

2009-11-18 Thread Jesse Barnes
From 8adb52b4529e777d4df0356bc2c8ef5453c2322e Mon Sep 17 00:00:00 2001
From: Jesse Barnes jbar...@jbarnes-desktop.localdomain
Date: Wed, 18 Nov 2009 09:56:25 -0800
Subject: [PATCH] drm/i915: let pin routine figure out appropriate alignment

When this code got moved out of intel_pipe_set_base, it grew a forced
alignment of 256k, which wasn't always correct.  Remove that and let the
pin routine figure out the correct alignment for the object (it should
do this in just about every case).

Signed-off-by: Jesse Barnes jbar...@virtuousgeek.org
---
 drivers/gpu/drm/i915/intel_display.c |   20 +---
 1 files changed, 1 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index c7d5611..b4c6b40 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1193,27 +1193,9 @@ static int
 intel_pin_and_fence_fb_obj(struct drm_device *dev, struct drm_gem_object *obj)
 {
struct drm_i915_gem_object *obj_priv = obj-driver_private;
-   u32 alignment;
int ret;
 
-   switch (obj_priv-tiling_mode) {
-   case I915_TILING_NONE:
-   alignment = 64 * 1024;
-   break;
-   case I915_TILING_X:
-   /* pin() will align the object as required by fence */
-   alignment = 0;
-   break;
-   case I915_TILING_Y:
-   /* FIXME: Is this true? */
-   DRM_ERROR(Y tiled not allowed for scan out buffers\n);
-   return -EINVAL;
-   default:
-   BUG();
-   }
-
-   alignment = 256 * 1024;
-   ret = i915_gem_object_pin(obj, alignment);
+   ret = i915_gem_object_pin(obj, 0);
if (ret != 0)
return ret;
 
-- 
1.6.1.3


--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Intel-gfx] [PATCH] drm/i915: let pin routine figure out appropriate alignment

2009-11-18 Thread Jesse Barnes
On Wed, 18 Nov 2009 18:33:30 +
Chris Wilson ch...@chris-wilson.co.uk wrote:

 Excerpts from Jesse Barnes's message of Wed Nov 18 17:58:42 +
 2009:
  From 8adb52b4529e777d4df0356bc2c8ef5453c2322e Mon Sep 17 00:00:00
  2001 From: Jesse Barnes jbar...@jbarnes-desktop.localdomain
  Date: Wed, 18 Nov 2009 09:56:25 -0800
  Subject: [PATCH] drm/i915: let pin routine figure out appropriate
  alignment
  
  When this code got moved out of intel_pipe_set_base, it grew a
  forced alignment of 256k, which wasn't always correct.  Remove that
  and let the pin routine figure out the correct alignment for the
  object (it should do this in just about every case).
 
 I thought the only reason why pin() took an alignment parameter was so
 that we could specify a minimum alignment of 64k for untiled scan out
 buffers. Are we confident that this is not the case?

Well there are a few other places that want a specific alignment
(though mostly 4k so redundant).

But yeah we do need to preserve the 64k alignment for non-tiled
scanout.  I'll fix up the patch.

-- 
Jesse Barnes, Intel Open Source Technology Center

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Intel-gfx] [PATCH] drm/i915: let pin routine figure out appropriate alignment

2009-11-18 Thread Chris Wilson
Excerpts from Jesse Barnes's message of Wed Nov 18 17:58:42 + 2009:
 From 8adb52b4529e777d4df0356bc2c8ef5453c2322e Mon Sep 17 00:00:00 2001
 From: Jesse Barnes jbar...@jbarnes-desktop.localdomain
 Date: Wed, 18 Nov 2009 09:56:25 -0800
 Subject: [PATCH] drm/i915: let pin routine figure out appropriate alignment
 
 When this code got moved out of intel_pipe_set_base, it grew a forced
 alignment of 256k, which wasn't always correct.  Remove that and let the
 pin routine figure out the correct alignment for the object (it should
 do this in just about every case).

I thought the only reason why pin() took an alignment parameter was so
that we could specify a minimum alignment of 64k for untiled scan out
buffers. Are we confident that this is not the case?
-ickle
-- 
Chris Wilson, Intel Open Source Technology Centre

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH 3/4] APPLE_object_purgeable: core

2009-11-18 Thread Ian Romanick
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Chris Wilson wrote:

 diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
 index 52c4995..08633a9 100644
 --- a/src/mesa/main/bufferobj.c
 +++ b/src/mesa/main/bufferobj.c
 @@ -37,6 +37,8 @@
  #include image.h
  #include context.h
  #include bufferobj.h
 +#include fbobject.h
 +#include texobj.h
  
  
  /* Debug flags */
 @@ -1655,3 +1657,351 @@ _mesa_FlushMappedBufferRange(GLenum target, GLintptr 
 offset, GLsizeiptr length)
 if (ctx-Driver.FlushMappedBufferRange)
ctx-Driver.FlushMappedBufferRange(ctx, target, offset, length, 
 bufObj);
  }
 +
 +#if FEATURE_APPLE_object_purgeable
 +static GLenum
 +_mesa_RenderObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option)
 +{
 +   struct gl_renderbuffer *bufObj;
 +   GLenum retval;
 +
 +   bufObj = _mesa_lookup_renderbuffer(ctx, name);
 +   if (!bufObj) {
 +  _mesa_error(ctx, GL_INVALID_VALUE,
 +  glObjectUnpurgeable(name = 0x%x), name);
 +  return 0;
 +   }
 +
 +   if (bufObj-Purgeable) {
 +  _mesa_error(ctx, GL_INVALID_OPERATION,
 +  glObjectPurgeable(name = 0x%x) is already purgeable, 
 name);
 +  return GL_VOLATILE_APPLE;
 +   }
 +
 +   bufObj-Purgeable = GL_TRUE;
 +
 +   retval = GL_VOLATILE_APPLE;
 +   if (ctx-Driver.ObjectPurgeable_RenderObject)
 +  retval = ctx-Driver.ObjectPurgeable_RenderObject(ctx, bufObj, option);
 +
 +   return retval;
 +}
 +
 +static GLenum
 +_mesa_TextureObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option)

Usually, only functions that are connected directly to the dispatch
table get camel case.  Functions that are only used internally are
usually named _mesa_texture_object_purgeable.

I don't know if it's worth changing these.  Brian may have an opinion
about this.

 +{
 +   struct gl_texture_object *bufObj;
 +   GLenum retval;
 +
 +   bufObj = _mesa_lookup_texture(ctx, name);
 +   if (!bufObj) {
 +  _mesa_error(ctx, GL_INVALID_VALUE,
 +  glObjectPurgeable(name = 0x%x), name);
 +  return 0;
 +   }
 +
 +   if (bufObj-Purgeable) {
 +  _mesa_error(ctx, GL_INVALID_OPERATION,
 +  glObjectPurgeable(name = 0x%x) is already purgeable, 
 name);
 +  return GL_VOLATILE_APPLE;
 +   }
 +
 +   bufObj-Purgeable = GL_TRUE;
 +
 +   retval = GL_VOLATILE_APPLE;
 +   if (ctx-Driver.ObjectPurgeable_TextureObject)
 +  retval = ctx-Driver.ObjectPurgeable_TextureObject(ctx, bufObj, 
 option);
 +
 +   return retval;
 +}
 +
 +static GLenum
 +_mesa_BufferObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option)
 +{
 +   struct gl_buffer_object *bufObj;
 +   GLenum retval;
 +
 +   bufObj = get_buffer(ctx, name);
 +   if (!bufObj) {
 +  _mesa_error(ctx, GL_INVALID_VALUE,
 +  glObjectPurgeable(name = 0x%x), name);
 +  return 0;
 +   }
 +
 +   if (bufObj-Purgeable) {
 +  _mesa_error(ctx, GL_INVALID_OPERATION,
 +  glObjectPurgeable(name = 0x%x) is already purgeable, 
 name);
 +  return GL_VOLATILE_APPLE;
 +   }
 +
 +   bufObj-Purgeable = GL_TRUE;
 +
 +   retval = GL_VOLATILE_APPLE;
 +   if (ctx-Driver.ObjectPurgeable_BufferObject)
 +  retval = ctx-Driver.ObjectPurgeable_BufferObject(ctx, bufObj, option);
 +
 +   return retval;
 +}
 +
 +GLenum GLAPIENTRY
 +_mesa_ObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option)
 +{
 +   GET_CURRENT_CONTEXT(ctx);
 +
 +   if (name == 0) {
 +  _mesa_error(ctx, GL_INVALID_VALUE,
 +  glObjectPurgeable(name = 0x%x), name);
 +  return 0;
 +   }
 +
 +   switch (option) {
 +   case GL_VOLATILE_APPLE:
 +   case GL_RELEASED_APPLE:
 +  break;
 +
 +   default:
 +  _mesa_error(ctx, GL_INVALID_ENUM,
 +  glObjectPurgeable(name = 0x%x) invalid option: %d, name, 
 option);
 +  return 0;
 +   }
 +
 +   switch (objectType) {
 +   case GL_TEXTURE:
 +  return _mesa_TextureObjectPurgeable (ctx, name, option);
 +   case GL_RENDERBUFFER_EXT:
 +  return _mesa_RenderObjectPurgeable (ctx, name, option);
 +   case GL_BUFFER_OBJECT_APPLE:
 +  return _mesa_BufferObjectPurgeable (ctx, name, option);
 +
 +   default:
 +  _mesa_error(ctx, GL_INVALID_ENUM,
 +  glObjectPurgeable(name = 0x%x) invalid type: %d, name, 
 objectType);
 +  return 0;
 +   }
 +}
 +
 +static GLenum
 +_mesa_RenderObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option)
 +{
 +   struct gl_renderbuffer *bufObj;
 +   GLenum retval;
 +
 +   bufObj = _mesa_lookup_renderbuffer(ctx, name);
 +   if (!bufObj) {
 +  _mesa_error(ctx, GL_INVALID_VALUE,
 +  glObjectUnpurgeable(name = 0x%x), name);
 +  return 0;
 +   }
 +
 +   if (! bufObj-Purgeable) {
 +  _mesa_error(ctx, GL_INVALID_OPERATION,
 +  glObjectUnpurgeable(name = 0x%x) object is already 
 \unpurged\, name);
 +  return 0;
 +   }
 +
 +   bufObj-Purgeable = GL_FALSE;
 +
 +   retval = GL_RETAINED_APPLE;
 +   if (ctx-Driver.ObjectUnpurgeable_RenderObject)

Re: [PATCH 3/4] APPLE_object_purgeable: core

2009-11-18 Thread Brian Paul
Ian Romanick wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Chris Wilson wrote:
 
 diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
 index 52c4995..08633a9 100644
 --- a/src/mesa/main/bufferobj.c
 +++ b/src/mesa/main/bufferobj.c
 @@ -37,6 +37,8 @@
  #include image.h
  #include context.h
  #include bufferobj.h
 +#include fbobject.h
 +#include texobj.h


  /* Debug flags */
 @@ -1655,3 +1657,351 @@ _mesa_FlushMappedBufferRange(GLenum target, GLintptr 
 offset, GLsizeiptr length)
 if (ctx-Driver.FlushMappedBufferRange)
ctx-Driver.FlushMappedBufferRange(ctx, target, offset, length, 
 bufObj);
  }
 +
 +#if FEATURE_APPLE_object_purgeable
 +static GLenum
 +_mesa_RenderObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option)
 +{
 +   struct gl_renderbuffer *bufObj;
 +   GLenum retval;
 +
 +   bufObj = _mesa_lookup_renderbuffer(ctx, name);
 +   if (!bufObj) {
 +  _mesa_error(ctx, GL_INVALID_VALUE,
 +  glObjectUnpurgeable(name = 0x%x), name);
 +  return 0;
 +   }
 +
 +   if (bufObj-Purgeable) {
 +  _mesa_error(ctx, GL_INVALID_OPERATION,
 +  glObjectPurgeable(name = 0x%x) is already purgeable, 
 name);
 +  return GL_VOLATILE_APPLE;
 +   }
 +
 +   bufObj-Purgeable = GL_TRUE;
 +
 +   retval = GL_VOLATILE_APPLE;
 +   if (ctx-Driver.ObjectPurgeable_RenderObject)
 +  retval = ctx-Driver.ObjectPurgeable_RenderObject(ctx, bufObj, 
 option);
 +
 +   return retval;
 +}
 +
 +static GLenum
 +_mesa_TextureObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option)
 
 Usually, only functions that are connected directly to the dispatch
 table get camel case.  Functions that are only used internally are
 usually named _mesa_texture_object_purgeable.
 
 I don't know if it's worth changing these.  Brian may have an opinion
 about this.

Yes, that's what I'd prefer.

The idea is if you're looking for code related to glBindTexture() you 
can grep for BindTexture, for example.

When I see _mesa_TextureObjectPurgeable() I'm thinking is there an 
API entrypoint named glTextureObjectPurgeable()?  (there isn't)

-Brian

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 18212] Crash inside r300MapTexture()

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=18212


Maciej Cencora m.cenc...@gmail.com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED




--- Comment #2 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 13:30:09 
PST ---
Should be fixed on mesa_7_7_branch now, can you check?


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 21696] MIssing textures in some games - Driver radeon

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=21696


Maciej Cencora m.cenc...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID




--- Comment #2 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 13:32:06 
PST ---
Closing because of lack of user input.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 22742] prey game freezes

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=22742


Maciej Cencora m.cenc...@gmail.com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED




--- Comment #9 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 13:54:42 
PST ---
It's fixed in current mesa_7_7_branch. Can you confirm?


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 24963] bo-space_accounted assertion failure switching render buffers

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=24963


Maciej Cencora m.cenc...@gmail.com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED




--- Comment #1 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 13:55:33 
PST ---
Should be fixed on mesa_7_7_branch. Can you confirm?


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 12646] Wrong colors using yuy2 and uyvy with radeon driver

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=12646





--- Comment #4 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 13:59:53 
PST ---
Can you reproduce the bug with mesa 7.6?


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 17819] R300 Colourspace problem

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=17819





--- Comment #2 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 14:01:45 
PST ---
Can you reproduce the problem with newest xf86-video-ati and mesa?


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 18953] randr crashes server

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=18953





--- Comment #2 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 14:03:38 
PST ---
Can you reproduce the bug with newer mesa,xf86-video-ati and xserver?


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 22532] Black background instead of transperancy in cairo-dock (openGL)

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=22532





--- Comment #2 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 14:12:44 
PST ---
Can you reproduce the bug with mesa 7.6 or mesa_7_7_branch from git?


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 25156] Using wine on ati open source drivers causes rotated textures in Wow

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25156





--- Comment #3 from Jeremy Wilkins wjer...@shaw.ca  2009-11-18 14:16:56 PST 
---
You are right.  Thank you for pointing this out.  I searched everywhere for
this, but did not find the answer.  The problem is projectedTectures which
should be disabled.  There must be a problem with its implementation in 64bit
because it works in 32bit with it on.  I will post back to the launchpad item. 
Is there already an open bug report here.  If so, we can mark this duplicate.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 22372] radeon_mipmap_tree.c:114: compute_tex_image_offset: Assertion `lvl-size 0' failed.

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=22372





--- Comment #10 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 14:17:38 
PST ---
Can you check if the bug is still reproduceable on current mesa_7_7_branch?


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 23122] mipmap_comp_tests will cause radeon_validate_texture error

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=23122





--- Comment #1 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 14:21:21 
PST ---
Can you check if current mesa_7_7_branch fixes the problem?


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 21501] Assertion `lvl-size 0' failed.

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=21501





--- Comment #1 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 14:23:54 
PST ---
Can you reproduce the bug on current mesa_7_7_branch?


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 25156] Using wine on ati open source drivers causes rotated textures in Wow

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25156


Maciej Cencora m.cenc...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE




--- Comment #4 from Maciej Cencora m.cenc...@gmail.com  2009-11-18 14:26:22 
PST ---


*** This bug has been marked as a duplicate of bug 23865 ***


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 24131] radeon_bo_legacy.c:207: legacy_is_pending: Assertion `bo_legacy-is_pending = bo-cref' failed

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=24131





--- Comment #16 from Tormod Volden bugzi07.fdo.tor...@xoxy.net  2009-11-18 
14:52:46 PST ---
I wonder if reverting that commit brought all the radeon_dma.c:210:
radeonRefillCurrentDmaRegion: Assertion `dma_bo-bo-cref == 1' failed
reported in https://launchpad.net/bugs/459961 though.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [RFC] DRI2 synchronization and swap bits

2009-11-18 Thread Jesse Barnes
On Sun, 8 Nov 2009 08:16:51 +0100
Mario Kleiner mario.klei...@tuebingen.mpg.de wrote:
 My proposal to use a spinlock was probably  rather stupid. Because
 of glXGetSyncValuesOML() - I830DRI2GetMSC - drmWaitVBlank -  
 drm_wait_vblank - drm_vblank_count(), if multiple clients call  
 glXGetSyncValuesOML() frequently, e.g., in a polling loop, i assume  
 this could cause quite a bit of contention on a spinlock that must
 be acquired with minimal delay from the vblank irq handler. According
 to http://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO, critical  
 sections protected by spinlock_t are preemptible if one uses a  
 realtime kernel with preempt-rt patches applied, something i'd
 expect my users to do frequently. Maybe i overlook something, but
 this sounds unhealthy if it happens while drm_vblank_count() holds
 the lock?

It's not ideal, but I don't think it would cause many problems in
practice.  The lock hold times will be very small, so contention
shouldn't be a big problem, but as you say if we find issues we can use
a lockless method.

 Btw., when looking at the code in drm_irq.c in the current
 linux-next tree, i saw that drm_handle_vblank_events() does a
 e-event.sequence = seq; assignment with the current seq vblank
 number when retiring an event, but the special shortcut path in
 drm_queue_vblank_event(), which retires events immediately without
 queuing them if the requested vblank number has been reached or
 exceeded already, does not do an update e-event.sequence = seq; with
 the most recent seq vblank number that triggered this early
 retirement. This looks inconsistent to me, could this be a bug?

It uses vblwait-request.sequence which should be the right number.
The timestamp is definitely off though...

 The simple seqlock implementation might be too simple though and a  
 ringbuffer that holds multiple hundred recent vblank timestamp  
 samples might be better.

I wonder if it would be sufficient to just track the last timestamp.
Any callers interested in the last event would get a precise
timestamp.  Callers looking at past events could be returned a
calculated value based on the time difference between the last two
events?

 The problem is the accuracy of glXGetMscRateOML(). This value -  
 basically the duration of a video refresh interval - gets calculated  
 from the current video mode timing, i.e., dotclock, HTotal and  
 VTotal. This value is only useful for userspace applications like my  
 toolkit under the assumption that both the dotclock of the GPU and  
 the current system clock (TSC / HPET / APIC timer / ...) are  
 perfectly accurate and drift-free. In reality, both clocks are  
 imperfect and drift against each other, therefore the returned  
 nominal value of glXGetMscRateOML() is basically always a bit wrong/ 
 inaccurate wrt. system time as used by userspace applications. Our  
 app therefore determines the real refresh duration by a
 calibration loop of multiple seconds duration at startup. This works
 ok, but it increases startup time, can't take slow clock drift over
 the course of a session into account, because i can't recalibrate
 during a session, and the calibration is also not perfect due to the
 timing noise (preemption, scheduling jitter, wakeup latency after  
 swapbuffers etc.) that affects a measurement loop in userspace.
 
 A better approach would be for Linux to measure the current video  
 refresh interval over a certain time window, e.g., computing a
 moving average over a few seconds. This could be done if the vblank  
 timestamps are logged into a ringbuffer. The ringbuffer would allow  
 for lock-free readout of the most recent vblank timestamp from  
 drm_vblank_count(). At the same time the system could look at all  
 samples in the ringbuffer to compute the real duration of a video  
 refresh interval as a average over the deltas between samples in the  
 ringbuffer and provide an accurate and current estimate of  
 glXGetMscRateOML() that would be better than anything we can do in  
 userspace.

That would be even better than just using the last difference, and
shouldn't add too much more code.  On some configurations the refresh
rate will change too (for power saving reasons it may be reduced and
then increased again when activity occurs) so that would have to be
accounted for.  Presumably we wouldn't care about the reduced rate
since it implies clients aren't actively using the display.

 The second problem is how to reinitialize the current vblank  
 timestamp in drm_update_vblank_count() when vblank interrupts get  
 reenabled after they've been disabled for a long period of time?
 
 One generic way to reinitialize would be to calculate elapsed time  
 since last known vblank timestamp from the computed vblank count  
 diff by multiplying the count with the known duration of the video  
 refresh interval. In that case, an accurate estimate of  
 glXGetMscRateOML would be important, so a ringbuffer with samples  
 would probably help.


Re: RFC: libdrm repo

2009-11-18 Thread vehemens
On Tuesday 17 November 2009 08:33:30 Kristian Høgsberg wrote:
 2009/11/6 Kristian Høgsberg k...@bitplanet.net:
  Hi,
 
  This has come up a few time and it's something I think makes a lot of
  sense.  Since all driver development (afaik) now happens in linux
  kernel tree, it makes sense to drop the driver bits from the drm.git
  repo.

 Ok, here's an update to the proposal.  I've rebased the libdrm branch
 in people.freedesktop.org/~krh/libdrm.git to include a copy of
 $kernel_source/usr/include/drm as a toplevel include/drm directory in
 git.  I also added a makefile rule to copy a new version of the
 headers from a kernel git repo and commit it with a message describing
 the version it was copied from.  The location of the kernel repo is
 given at ./configure time with the --with-kernel-source argument.

 By adding the makefile rule, I'd like to encourage people to not hand
 edit the headers and to commit updates of the header files
 independently from other changes.  And of course, updates to the
 headers should still follow the rules we have now; only copy over new
 changes once they're in drm-next (I think, or is that in Linus'
 tree?).

 Anyway, I think this should address the concerns raised in the thread
 and if there's no other problems, I can put this into place today.
 I'll merge the couple of changes on master since I branched for this
 work and I'll put a mesa/drm.git symlink in place to point to
 libdrm.git.

A number of people have already objected to these changes and have provided 
good reasons.

Please just drop the issue.


--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: RFC: libdrm repo

2009-11-18 Thread Dave Airlie
On Thu, Nov 19, 2009 at 11:54 AM, vehemens vehem...@verizon.net wrote:
 On Tuesday 17 November 2009 08:33:30 Kristian Høgsberg wrote:
 2009/11/6 Kristian Høgsberg k...@bitplanet.net:
  Hi,
 
  This has come up a few time and it's something I think makes a lot of
  sense.  Since all driver development (afaik) now happens in linux
  kernel tree, it makes sense to drop the driver bits from the drm.git
  repo.

 Ok, here's an update to the proposal.  I've rebased the libdrm branch
 in people.freedesktop.org/~krh/libdrm.git to include a copy of
 $kernel_source/usr/include/drm as a toplevel include/drm directory in
 git.  I also added a makefile rule to copy a new version of the
 headers from a kernel git repo and commit it with a message describing
 the version it was copied from.  The location of the kernel repo is
 given at ./configure time with the --with-kernel-source argument.

 By adding the makefile rule, I'd like to encourage people to not hand
 edit the headers and to commit updates of the header files
 independently from other changes.  And of course, updates to the
 headers should still follow the rules we have now; only copy over new
 changes once they're in drm-next (I think, or is that in Linus'
 tree?).

 Anyway, I think this should address the concerns raised in the thread
 and if there's no other problems, I can put this into place today.
 I'll merge the couple of changes on master since I branched for this
 work and I'll put a mesa/drm.git symlink in place to point to
 libdrm.git.

 A number of people have already objected to these changes and have provided
 good reasons.

I think Kristian is trying to address those reasons with this proposal.

Please stop being an idiot, or at least be a more constructive idiot
if you insist on it.

Dave.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[git pull][optional] drm

2009-11-18 Thread Dave Airlie

Hi Linus,

Please pull the 'drm-linus' branch from
ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-linus

Just let me know if you don't pull this and I can pick out the bits that 
definitely need to go in (probably just the first two non-radeon-kms 
fixes, and the s/r ones)

Non-radeon-kms changes:
EDID parser fix that we had in X but not in kernel
Xen page protections fix.
Fix for a race in the drm_mm (only affects radeon KMS so far)

radeon-kms changes:
suspend-resume fixes from F-12 for AGP and certain Thinkpads
tv load detect disable for troublesome chips
some connectior table quirks
support for external TMDS (otherwise black screen on boot)
support for dual-head RN50 server cards (otherwise black screen on boot)
VGA bad EDID fix

Dave.

 drivers/gpu/drm/drm_edid.c  |6 +
 drivers/gpu/drm/drm_gem.c   |2 +-
 drivers/gpu/drm/drm_mm.c|9 +
 drivers/gpu/drm/radeon/atom.c   |1 +
 drivers/gpu/drm/radeon/atombios_crtc.c  |7 +-
 drivers/gpu/drm/radeon/r100.c   |   13 +-
 drivers/gpu/drm/radeon/r300.c   |6 +
 drivers/gpu/drm/radeon/r420.c   |3 +
 drivers/gpu/drm/radeon/radeon.h |2 +
 drivers/gpu/drm/radeon/radeon_agp.c |   12 +
 drivers/gpu/drm/radeon/radeon_atombios.c|   25 +-
 drivers/gpu/drm/radeon/radeon_combios.c |  390 ---
 drivers/gpu/drm/radeon/radeon_connectors.c  |   69 -
 drivers/gpu/drm/radeon/radeon_device.c  |2 +
 drivers/gpu/drm/radeon/radeon_display.c |   29 ++-
 drivers/gpu/drm/radeon/radeon_encoders.c|   85 --
 drivers/gpu/drm/radeon/radeon_fb.c  |9 +-
 drivers/gpu/drm/radeon/radeon_gem.c |   10 +-
 drivers/gpu/drm/radeon/radeon_i2c.c |  109 +--
 drivers/gpu/drm/radeon/radeon_legacy_crtc.c |5 +
 drivers/gpu/drm/radeon/radeon_legacy_encoders.c |  113 
 drivers/gpu/drm/radeon/radeon_mode.h|   75 -
 drivers/gpu/drm/radeon/radeon_reg.h |   40 ++-
 drivers/gpu/drm/radeon/rs400.c  |1 +
 drivers/gpu/drm/radeon/rv515.c  |9 +-
 25 files changed, 790 insertions(+), 242 deletions(-)

commit 44c83571e8e164840e91f3cc9fdd928889ac169b
Author: Michel Dänzer daen...@vmware.com
Date:   Wed Aug 5 00:19:51 2009 +0200

drm/radeon: Give userspace more accurate information about available memory.

This patch varies from the original and just removes memory for kernel
pinned objects.

Signed-off-by: Michel Dänzer daen...@vmware.com
Signed-off-by: Dave Airlie airl...@redhat.com

commit bc5096a4771453929537605e564b32c534c869bf
Author: Dave Airlie airl...@redhat.com
Date:   Wed Nov 18 13:39:34 2009 +1000

drm/radeon/kms: pick 8bpp console when 32MB or less VRAM

making the pinned console smaller gives X a bit more room to play with.

Signed-off-by: Dave Airlie airl...@redhat.com

commit d8c8292199eaccc4163229d6e8409e139adc45dc
Author: Dave Airlie airl...@redhat.com
Date:   Tue Oct 13 14:10:37 2009 +1000

drm/radeon/kms: add support for encoder cloning.

The RN50 really needs this since its a single crtc card,
however other gpus may benefit from it as well.

Signed-off-by: Dave Airlie airl...@redhat.com

commit 85691e025889ceaa9a6f6cf5dbf706d7b0acfd05
Author: Jerome Glisse jgli...@redhat.com
Date:   Tue Nov 17 14:08:55 2009 -0800

drm/radeon/kms: fix oops when set_base is call with no FB

Just do nothing if crct_set_base() is called with no FB.

The oops happens when the user switches between X  vt or in some case
when changing mode.

Signed-off-by: Jerome Glisse jgli...@redhat.com
Signed-off-by: Andrew Morton a...@linux-foundation.org
Signed-off-by: Dave Airlie airl...@redhat.com

commit c7e3bff327d8f5291046ff7ff0f4568dee1f0292
Author: Jeremy Fitzhardinge jer...@goop.org
Date:   Tue Nov 17 14:08:54 2009 -0800

drm: make sure page protections are updated after changing vm_flags

Some architectures compute -vm_page_prot depending on -vm_flags, so we
need to update the protections after adjusting the flags.

AFAIK this only affects running X under Xen; without this patch you get
lots of coloured blobs on the screen, or maybe a complete lockup.  Or
anything really.

But that still depends on lots of out-of-tree stuff, so I don't think
there are any consequences for anyone else.  But it is wrong in principle.

Reported-by: Jan Beulich jbeul...@novell.com
Signed-off-by: Jeremy Fitzhardinge jeremy.fitzhardi...@citrix.com
Signed-off-by: Andrew Morton a...@linux-foundation.org
Signed-off-by: Dave Airlie airl...@redhat.com

commit 173f90fad0e5e86d978eb26c54aac424152ab386
Author: Jerome Glisse jgli...@redhat.com
Date:   Thu Nov 12 14:13:53 

[Bug 24580] Radeon: 3D apps crash if IB is not flushed

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=24580


Shawn Starr shawn.st...@rogers.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED




--- Comment #3 from Shawn Starr shawn.st...@rogers.com  2009-11-18 21:00:36 
PST ---
Close it, don't see this anymore.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 25177] New: [r6xx][RV635] mipmap crash with secondlife

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25177

   Summary: [r6xx][RV635] mipmap crash with secondlife
   Product: DRI
   Version: XOrg CVS
  Platform: Other
OS/Version: All
Status: NEW
  Severity: normal
  Priority: medium
 Component: DRM/Radeon
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: shawn.st...@rogers.com


enable VBOs with secondlife then app will crash when rendering stuff

bt:
==

#0  0x70672f25 in raise () from /lib/libc.so.6
#1  0x70675d60 in abort () from /lib/libc.so.6
#2  0x7066c04a in __assert_fail () from /lib/libc.so.6
#3  0x7fffe2d0cf4b in migrate_image_to_miptree (ctx=value optimized out,
texObj=0x5631a00)
at radeon_mipmap_tree.c:422
#4  radeon_validate_texture_miptree (ctx=value optimized out,
texObj=0x5631a00)
at radeon_mipmap_tree.c:585
#5  0x7fffe2d038ce in r600_validate_texture (ctx=0x40d0150) at
r600_texstate.c:726
#6  r600ValidateBuffers (ctx=0x40d0150) at r600_texstate.c:772
#7  0x7fffe2d00820 in r700TryDrawPrims (ctx=0x40d0150, arrays=0x40c1aa8,
prim=0x7fffd160,
nr_prims=1, ib=0x7fffd140, index_bounds_valid=value optimized out,
min_index=0, max_index=288)
at r700_render.c:879
#8  r700DrawPrims (ctx=0x40d0150, arrays=0x40c1aa8, prim=0x7fffd160,
nr_prims=1, ib=0x7fffd140,
index_bounds_valid=value optimized out, min_index=0, max_index=288) at
r700_render.c:966
#9  0x7fffe2da0aa6 in vbo_validated_drawrangeelements (ctx=0x40d0150,
mode=4,
index_bounds_valid=1 '\001', start=0, end=288, count=1536, type=5123,
indices=0x0, basevertex=0)
at vbo/vbo_exec_array.c:662
#10 0x7fffe2da0d0f in vbo_exec_DrawRangeElementsBaseVertex (mode=4,
start=0, end=288, count=1536,
type=5123, indices=0x0, basevertex=0) at vbo/vbo_exec_array.c:758
#11 0x7fffe2da0db0 in vbo_exec_DrawRangeElements (mode=4760, start=4760,
end=6, count=-1,
type=142879792, indices=0x67616d69203d3d20) at vbo/vbo_exec_array.c:775
#12 0x01920829 in LLVertexBuffer::drawRange(unsigned int, unsigned int,
unsigned int, unsigned int, unsigned int) const ()
#13 0x006b027e in LLRenderPass::pushBatch(LLDrawInfo, unsigned int,
int) ()
#14 0x006acb23 in LLRenderPass::pushBatches(unsigned int, unsigned int,
int) ()
#15 0x006bd970 in LLDrawPoolSimple::render(int) ()
#16 0x01689f95 in LLPipeline::renderGeom(LLCamera, int) ()
#17 0x0128fd22 in display(int, float, int, int) ()
#18 0x005b8201 in LLAppViewer::mainLoop() ()
#19 0x01720a59 in main ()

full bt


#3  0x7fffe2d0cf4b in migrate_image_to_miptree (ctx=value optimized out,
texObj=0x5631a00)
at radeon_mipmap_tree.c:422
dest = 0x17010d Address 0x17010d out of bounds
__PRETTY_FUNCTION__ = migrate_image_to_miptree
#4  radeon_validate_texture_miptree (ctx=value optimized out,
texObj=0x5631a00)
at radeon_mipmap_tree.c:585
dst_miptree = 0x7f6f53a
faces = 1
face = 0
level = 0
img = 0x6532110
__func__ = radeon_validate_texture_miptree
#5  0x7fffe2d038ce in r600_validate_texture (ctx=0x40d0150) at
r600_texstate.c:726
No locals.
#6  r600ValidateBuffers (ctx=0x40d0150) at r600_texstate.c:772
t = value optimized out
rmesa = 0x4017930
rrb = 0x0
i = 0
ret = value optimized out
#7  0x7fffe2d00820 in r700TryDrawPrims (ctx=0x40d0150, arrays=0x40c1aa8,
prim=0x7fffd160,
nr_prims=1, ib=0x7fffd140, index_bounds_valid=value optimized out,
min_index=0, max_index=288)
at r700_render.c:879
__func__ = r700TryDrawPrims
__warn_once = 1
#8  r700DrawPrims (ctx=0x40d0150, arrays=0x40c1aa8, prim=0x7fffd160,
nr_prims=1, ib=0x7fffd140,
index_bounds_valid=value optimized out, min_index=0, max_index=288) at
r700_render.c:966
No locals.
#9  0x7fffe2da0aa6 in vbo_validated_drawrangeelements (ctx=0x40d0150,
mode=4,
index_bounds_valid=1 '\001', start=0, end=288, count=1536, type=5123,
indices=0x0, basevertex=0)
at vbo/vbo_exec_array.c:662
ib = {count = 1536, type = 5123, obj = 0x891adc0, ptr = 0x0}
prim = {{mode = 4, indexed = 1, begin = 1, end = 1, weak = 0, pad = 0,
start = 0, count = 1536,
basevertex = 0}}
#10 0x7fffe2da0d0f in vbo_exec_DrawRangeElementsBaseVertex (mode=4,
start=0, end=288, count=1536,
type=5123, indices=0x0, basevertex=0) at vbo/vbo_exec_array.c:758
ctx = 0x40d0150
warnCount = 0
#11 0x7fffe2da0db0 in vbo_exec_DrawRangeElements (mode=4760, start=4760,
end=6, count=-1,
type=142879792, indices=0x67616d69203d3d20) at vbo/vbo_exec_array.c:775
No locals.
...


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let 

[Bug 25177] [r6xx][RV635] mipmap crash with secondlife

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25177





--- Comment #1 from Shawn Starr shawn.st...@rogers.com  2009-11-18 21:05:27 
PST ---
Seems to happen w or w/o VBOs enabled, setting texture memory to 256MB triggers
it


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 25177] [r6xx][RV635] mipmap crash with secondlife

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25177





--- Comment #2 from Shawn Starr shawn.st...@rogers.com  2009-11-18 21:07:52 
PST ---
Forget about memory, this is just crashing period :/


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 21501] Assertion `lvl-size 0' failed.

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=21501





--- Comment #2 from rem11_1...@yahoo.fr  2009-11-18 23:28:55 PST ---
I just retest and the bug is here with a little different (and more informative
?) debug message :

scourge: radeon_texture.c:875: migrate_image_to_miptree: Assertion
`srclvl-size == dstlvl-size' failed.


updated info :

distrib : gentoo (arch amd64)
Xorg-server : 1.7.1
xf86-video-ati : from git
drm : from kernel 2.6.32-rc6 
libdrm : from git
mesa : from git branch master

with KMS/DRI2

updated 1 hour ago..


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 21501] Assertion `lvl-size 0' failed.

2009-11-18 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=21501





--- Comment #3 from rem11_1...@yahoo.fr  2009-11-18 23:34:58 PST ---
A little info, my card is a X1700 (rv530)


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel