[Bug 22743] nexuiz game: missing weapons and enemies models

2009-08-13 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=22743





--- Comment #1 from Andre Maasikas amaasi...@gmail.com  2009-08-12 23:48:44 
PST ---
Seems it fails the max_index check in drawrangeelements when rendering player
models. 

e.g:

Mesa warning: glDraw[Range]Elements(start 0, end 126, count 240, type 0x1403,
indices=(nil))
index=126 is out of bounds (max=125)  Element Buffer 85 (size 480)

Mesa warning: glDraw[Range]Elements(start 6, end 1495, count 5130, type 0x1403,
indices=0xfad0ac4)
index=1495 is out of bounds (max=1494)  Element Buffer 0 (size 0)

You can try if commenting out the return statement in this check or
inside the game using gldrawelements fixes it (open console shift-ESC type:
gl_mesh_drawrangeelements 0).


-- 
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: drm sysfs questions

2009-08-13 Thread Thomas Hellström
Kristian Høgsberg wrote:
 2009/8/11 Thomas Hellström tho...@shipmail.org:
   
 Jesse Barnes wrote:
 
 On Tue, 11 Aug 2009 11:23:09 +0200
 Thomas Hellström tho...@shipmail.org wrote:


   
 Hi!

 I'm wondering why we are using a struct device as a sysfs
 representation for connectors instead of a struct kobject?

 In particular, what stops the drm_sysfs_[suspend|resume] functions to
 get called for the connectors, having them cast to a struct drm_minor
 and sending the cpu to the bushes?

 
 Hm, maybe we're just getting lucky that the drm minor check fails for
 everything but the DRM core device.
   
 Yes, I think that's actually the case.
 
 kobjects might make sense to move
 to, unless we can think of other things we'd like to do with a full
 device (e.g. runtime power management or some sort of per-connector
 suspend/resume).

   
 I can't really think of a case where the device owning the connector
 can't handle this?
 But we'd lose the /sys/drm/xxx symlinks to the connectors, and if that
 does matter, we'd need to recreate those manually.

 Anyway, I'd also like to be able to add a virtual ttm device to the drm
 sysfs hierarchy, the purpose of which would be to do the right thing
 with uncached / write-combined pages at suspend. The virtual device
 won't be wrapped in a drm minor so I'm wondering wether we could wrap
 the struct device like so:

 struct drm_sysfs_device {
enum drm_sysfs_device_type type;
struct device kdev;
 }

 This way the drm sysfs suspend / resume hooks can check the type of the
 structure embedding the struct device and only call the driver hooks for
 the relevand device types.
 

 There is already a struct device_type mechanism for different types of
 devices under a subsystem.  I'm pretty sure that would be the rigth
 thing to use, also for the connector devices.
The device_type methods are called in addition to the class methods. 
This means we either have to a) stop the class methods from doing 
anything or have them distinguish between device types like in the patch 
I just posted.

So if we ditch the class suspend / resume and instead set up a struct 
device_type for the minor devices to execute the suspend / resume 
hooks we'd be fine. I can respin the patch to do that.

FWIW I was planning to use the struct device_type for TTM to implement 
the new suspend / resume infrastructure, since when we get the legacy 
suspend call it's already too late to evict VRAM buffers.

/Thomas




--
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: drm sysfs questions

2009-08-13 Thread Thomas Hellström
Greg KH wrote:
 On Wed, Aug 12, 2009 at 04:48:33PM -0700, Jesse Barnes wrote:
   
 On Wed, 12 Aug 2009 16:24:58 -0700
 Greg KH g...@kroah.com wrote:

 
 On Wed, Aug 12, 2009 at 08:59:17AM -0700, Jesse Barnes wrote:
   
 On Wed, 12 Aug 2009 08:21:24 +0200
 Thomas Hellström tho...@shipmail.org wrote:

 
 Jesse Barnes wrote:
   
 On Tue, 11 Aug 2009 20:29:39 +0200
 Thomas Hellström tho...@shipmail.org wrote:

   
 
 Jesse Barnes wrote:
 
   
 On Tue, 11 Aug 2009 11:23:09 +0200
 Thomas Hellström tho...@shipmail.org wrote:

   
   
 
 Hi!

 I'm wondering why we are using a struct device as a sysfs
 representation for connectors instead of a struct kobject?

 In particular, what stops the drm_sysfs_[suspend|resume]
 functions to get called for the connectors, having them cast
 to a struct drm_minor and sending the cpu to the bushes?
 
 
   
 Hm, maybe we're just getting lucky that the drm minor check
 fails for everything but the DRM core device.  
   
 
 Yes, I think that's actually the case.
 
   
 kobjects might make sense to move
 to, unless we can think of other things we'd like to do with a
 full device (e.g. runtime power management or some sort of
 per-connector suspend/resume).
   
   
 
 I can't really think of a case where the device owning the
 connector can't handle this?
 But we'd lose the /sys/drm/xxx symlinks to the connectors, and
 if that does matter, we'd need to recreate those manually.

 Anyway, I'd also like to be able to add a virtual ttm device
 to the drm sysfs hierarchy, the purpose of which would be to
 do the right thing with uncached / write-combined pages at
 suspend. The virtual device won't be wrapped in a drm minor so
 I'm wondering wether we could wrap the struct device like so:

 struct drm_sysfs_device {
 enum drm_sysfs_device_type type;
 struct device kdev;
 }

 This way the drm sysfs suspend / resume hooks can check the
 type of the structure embedding the struct device and only
 call the driver hooks for the relevand device types.
 
   
 Yeah, that could work, but it seems like an explicit callout
 from drivers using TTM (or a callout from the core drm
 suspend/resume routines conditional on a DRIVER_HAS_TTM check)
 would be a bit simpler.  Or did you have other TTM info you
 wanted to expose sysfs as well?

   
 
 TTM nowadays is a set of optional subsystems rather than a
 complete set of features, so DRIVER_HAS_TTM can really mean a lot
 of things.

 The idea is to have a ttm subdir (representing the TTM virtual
 device) and in that sysfs directory, other TTM subsystems can
 register kobjects with various attributes. For example the memory
 accounting subsystem with settable / readable limits and readable
 status, but that will be code internal to TTM.
   
 Don't use raw kobjects if at all possible please.  Use a real struct
 device, it's much better in the long run for a wide variety of
 reasons, not the least being that you are dealing with virtual
 devices here.

   
 Ah ok, so the approach you suggested sounds pretty good.  The only
 thing that comes to mind is whether other class devices do something
 similar; i.e. maybe this code belongs in the device core instead.

 Greg?  (See above for some background.)
 
 I'm sorry, but I fail to see how this concerns the driver core.
 Perhaps I'm just slow this afternoon...  Anyone want to explain it
 better?
   
 So right now we have a DRM class device.  The various DRM devices are
 registered with it... and now that I think about it we should probably
 just restructure things so that they each have their own suspend/resume
 routines?  I'm not sure how that interacts with the class device
 though; will both the class device suspend/resume get called along with
 each device?
 

 Yes.  They will be called first, like they should.  Just like network
 devices are.

   
 Thomas's thought was to identify each sub-device uniquely so we could
 do the right thing in the class device suspend/resume routines, but it
 seems like that wouldn't be necessary if moved things around a bit
 more...
 

 Yeah, it sounds like the infrastructure is all there for you already :)
   
I don't think we can do pm per device but we can do it per struct 
device_type, so anyone wanting to customize a drm sysfs device can just 
implement and point to a new struct device_type before registering it, 
and, as pointed out in the mail to Kristian, we should probably make the 
class methods noops.

/Thomas.




 thanks,

 greg k-h
   




--
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 

Re: drm sysfs questions

2009-08-13 Thread Greg KH
On Wed, Aug 12, 2009 at 08:59:17AM -0700, Jesse Barnes wrote:
 On Wed, 12 Aug 2009 08:21:24 +0200
 Thomas Hellström tho...@shipmail.org wrote:
 
  Jesse Barnes wrote:
   On Tue, 11 Aug 2009 20:29:39 +0200
   Thomas Hellström tho...@shipmail.org wrote:
  
 
   Jesse Barnes wrote:
   
   On Tue, 11 Aug 2009 11:23:09 +0200
   Thomas Hellström tho...@shipmail.org wrote:
  
 
 
   Hi!
  
   I'm wondering why we are using a struct device as a sysfs
   representation for connectors instead of a struct kobject?
  
   In particular, what stops the drm_sysfs_[suspend|resume]
   functions to get called for the connectors, having them cast to
   a struct drm_minor and sending the cpu to the bushes?
   
   
   Hm, maybe we're just getting lucky that the drm minor check fails
   for everything but the DRM core device.  
 
   Yes, I think that's actually the case.
   
   kobjects might make sense to move
   to, unless we can think of other things we'd like to do with a
   full device (e.g. runtime power management or some sort of
   per-connector suspend/resume).
 
 
   I can't really think of a case where the device owning the
   connector can't handle this?
   But we'd lose the /sys/drm/xxx symlinks to the connectors, and if
   that does matter, we'd need to recreate those manually.
  
   Anyway, I'd also like to be able to add a virtual ttm device to the
   drm sysfs hierarchy, the purpose of which would be to do the right
   thing with uncached / write-combined pages at suspend. The virtual
   device won't be wrapped in a drm minor so I'm wondering wether we
   could wrap the struct device like so:
  
   struct drm_sysfs_device {
   enum drm_sysfs_device_type type;
   struct device kdev;
   }
  
   This way the drm sysfs suspend / resume hooks can check the type of
   the structure embedding the struct device and only call the driver
   hooks for the relevand device types.
   
  
   Yeah, that could work, but it seems like an explicit callout from
   drivers using TTM (or a callout from the core drm suspend/resume
   routines conditional on a DRIVER_HAS_TTM check) would be a bit
   simpler.  Or did you have other TTM info you wanted to expose sysfs
   as well?
  
 
  TTM nowadays is a set of optional subsystems rather than a complete
  set of features, so DRIVER_HAS_TTM can really mean a lot of things.
  
  The idea is to have a ttm subdir (representing the TTM virtual
  device) and in that sysfs directory, other TTM subsystems can
  register kobjects with various attributes. For example the memory
  accounting subsystem with settable / readable limits and readable
  status, but that will be code internal to TTM.

Don't use raw kobjects if at all possible please.  Use a real struct
device, it's much better in the long run for a wide variety of reasons,
not the least being that you are dealing with virtual devices here.

 Ah ok, so the approach you suggested sounds pretty good.  The only
 thing that comes to mind is whether other class devices do something
 similar; i.e. maybe this code belongs in the device core instead.
 
 Greg?  (See above for some background.)

I'm sorry, but I fail to see how this concerns the driver core.  Perhaps
I'm just slow this afternoon...  Anyone want to explain it better?

thanks,

greg k-h

--
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 23172] Game is lagging very much with Mesa 7.5

2009-08-13 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=23172


Simonas obuol...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED




--- Comment #5 from Simonas obuol...@gmail.com  2009-08-13 00:57:11 PST ---
Thank you so much! I added my user to group video and now everything is fine! 
Again, Thanks awesome community :)


-- 
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: fixup include files in drm_encoder_slave.h

2009-08-13 Thread Pekka Paalanen
Signed-off-by: Pekka Paalanen p...@iki.fi
---
 include/drm/drm_encoder_slave.h |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/drm/drm_encoder_slave.h b/include/drm/drm_encoder_slave.h
index 821ec40..e5e5c94 100644
--- a/include/drm/drm_encoder_slave.h
+++ b/include/drm/drm_encoder_slave.h
@@ -27,8 +27,8 @@
 #ifndef __DRM_ENCODER_SLAVE_H__
 #define __DRM_ENCODER_SLAVE_H__
 
-#include drm/drmP.h
-#include drm/drm_crtc.h
+#include drmP.h
+#include drm_crtc.h
 
 /**
  * struct drm_encoder_slave_funcs - Entry points exposed by a slave encoder 
driver
-- 
1.6.3.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


[PATCH] drm/radeon/kms: Fix up vertical blank interrupt support.

2009-08-13 Thread Michel Dänzer
From: Michel Dänzer daen...@vmware.com

Fixes 3D apps timing out in the WAIT_VBLANK ioctl.

AVIVO bits compile-tested only.

Signed-off-by: Michel Dänzer daen...@vmware.com
---
 drivers/gpu/drm/radeon/r100.c   |   66 +
 drivers/gpu/drm/radeon/r500_reg.h   |   16 -
 drivers/gpu/drm/radeon/radeon.h |2 +
 drivers/gpu/drm/radeon/radeon_asic.h|   23 ++--
 drivers/gpu/drm/radeon/radeon_irq_kms.c |   54 --
 drivers/gpu/drm/radeon/radeon_kms.c |   33 +--
 drivers/gpu/drm/radeon/radeon_legacy_crtc.c |7 +-
 drivers/gpu/drm/radeon/radeon_reg.h |   11 ++-
 drivers/gpu/drm/radeon/rs600.c  |   82 +++
 9 files changed, 217 insertions(+), 77 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index 4dd80e9..69c3195 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -251,6 +251,72 @@ void r100_mc_fini(struct radeon_device *rdev)
 
 
 /*
+ * Interrupts
+ */
+int r100_irq_set(struct radeon_device *rdev)
+{
+   uint32_t tmp = 0;
+
+   if (rdev-irq.sw_int) {
+   tmp |= RADEON_SW_INT_ENABLE;
+   }
+   if (rdev-irq.crtc_vblank_int[0]) {
+   tmp |= RADEON_CRTC_VBLANK_MASK;
+   }
+   if (rdev-irq.crtc_vblank_int[1]) {
+   tmp |= RADEON_CRTC2_VBLANK_MASK;
+   }
+   WREG32(RADEON_GEN_INT_CNTL, tmp);
+   return 0;
+}
+
+static inline uint32_t r100_irq_ack(struct radeon_device *rdev)
+{
+   uint32_t irqs = RREG32(RADEON_GEN_INT_STATUS);
+   uint32_t irq_mask = RADEON_SW_INT_TEST | RADEON_CRTC_VBLANK_STAT |
+   RADEON_CRTC2_VBLANK_STAT;
+
+   if (irqs) {
+   WREG32(RADEON_GEN_INT_STATUS, irqs);
+   }
+   return irqs  irq_mask;
+}
+
+int r100_irq_process(struct radeon_device *rdev)
+{
+   uint32_t status;
+
+   status = r100_irq_ack(rdev);
+   if (!status) {
+   return IRQ_NONE;
+   }
+   while (status) {
+   /* SW interrupt */
+   if (status  RADEON_SW_INT_TEST) {
+   radeon_fence_process(rdev);
+   }
+   /* Vertical blank interrupts */
+   if (status  RADEON_CRTC_VBLANK_STAT) {
+   drm_handle_vblank(rdev-ddev, 0);
+   }
+   if (status  RADEON_CRTC2_VBLANK_STAT) {
+   drm_handle_vblank(rdev-ddev, 1);
+   }
+   status = r100_irq_ack(rdev);
+   }
+   return IRQ_HANDLED;
+}
+
+u32 r100_get_vblank_counter(struct radeon_device *rdev, int crtc)
+{
+   if (crtc == 0)
+   return RREG32(RADEON_CRTC_CRNT_FRAME);
+   else
+   return RREG32(RADEON_CRTC2_CRNT_FRAME);
+}
+
+
+/*
  * Fence emission
  */
 void r100_fence_ring_emit(struct radeon_device *rdev,
diff --git a/drivers/gpu/drm/radeon/r500_reg.h 
b/drivers/gpu/drm/radeon/r500_reg.h
index 036691b..e1d5e03 100644
--- a/drivers/gpu/drm/radeon/r500_reg.h
+++ b/drivers/gpu/drm/radeon/r500_reg.h
@@ -350,6 +350,7 @@
 #define AVIVO_D1CRTC_BLANK_CONTROL  0x6084
 #define AVIVO_D1CRTC_INTERLACE_CONTROL  0x6088
 #define AVIVO_D1CRTC_INTERLACE_STATUS   0x608c
+#define AVIVO_D1CRTC_FRAME_COUNT0x60a4
 #define AVIVO_D1CRTC_STEREO_CONTROL 0x60c4
 
 /* master controls */
@@ -438,14 +439,15 @@
 #   define AVIVO_DC_LB_DISP1_END_ADR_SHIFT  4
 #   define AVIVO_DC_LB_DISP1_END_ADR_MASK   0x7ff
 
-#define R500_DxMODE_INT_MASK 0x6540
-#define R500_D1MODE_INT_MASK (10)
-#define R500_D2MODE_INT_MASK (18)
-
 #define AVIVO_D1MODE_DATA_FORMAT0x6528
 #   define AVIVO_D1MODE_INTERLEAVE_EN   (1  0)
 #define AVIVO_D1MODE_DESKTOP_HEIGHT 0x652C
+#define AVIVO_D1MODE_VBLANK_STATUS  0x6534
+#   define AVIVO_VBLANK_ACK (1  4)
 #define AVIVO_D1MODE_VLINE_START_END0x6538
+#define AVIVO_DxMODE_INT_MASK   0x6540
+#   define AVIVO_D1MODE_INT_MASK(1  0)
+#   define AVIVO_D2MODE_INT_MASK(1  8)
 #define AVIVO_D1MODE_VIEWPORT_START 0x6580
 #define AVIVO_D1MODE_VIEWPORT_SIZE  0x6584
 #define AVIVO_D1MODE_EXT_OVERSCAN_LEFT_RIGHT0x6588
@@ -475,6 +477,7 @@
 #define AVIVO_D2CRTC_BLANK_CONTROL  0x6884
 #define AVIVO_D2CRTC_INTERLACE_CONTROL  0x6888
 #define AVIVO_D2CRTC_INTERLACE_STATUS   0x688c
+#define AVIVO_D2CRTC_FRAME_COUNT0x68a4
 #define AVIVO_D2CRTC_STEREO_CONTROL 0x68c4
 
 #define AVIVO_D2GRPH_ENABLE 0x6900
@@ -497,6 +500,7 @@
 #define AVIVO_D2CUR_SIZE0x6c10
 #define 

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

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





--- Comment #6 from Andre Maasikas amaasi...@gmail.com  2009-08-13 02:48:16 
PST ---
My understanding sofar (which might be completely wrong) is that _mesa_CopyTex*
clears/initializes texImage fields and radeon does CopyTex* through swrast
which tries to map the textures in radeonSpanRenderStart and it goes downhill
from there.
No idea how to fix this though.  (maybe don't try to map the texobj in this
state or provide own CopyTex implementation)


-- 
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 13973] New: radeon: kms doesn't work on AGP x1950

2009-08-13 Thread bugzilla-daemon
http://bugzilla.kernel.org/show_bug.cgi?id=13973

   Summary: radeon: kms doesn't work on AGP x1950
   Product: Drivers
   Version: 2.5
Kernel Version: v2.6.31-rc5-246-g90bc1a6
  Platform: All
OS/Version: Linux
  Tree: Mainline
Status: NEW
  Severity: normal
  Priority: P1
 Component: Video(DRI)
AssignedTo: drivers_video-...@kernel-bugs.osdl.org
ReportedBy: dan...@ffwll.ch
Regression: No


Created an attachment (id=22703)
 -- (http://bugzilla.kernel.org/attachment.cgi?id=22703)
complete dmesg including failing radeon init

When loading the radeon drm module with modesetting enabled, modesetting fails
and leaves the console and the hw in a wedged state.
When X starts, it tries user mode setting but doesn't get very far. Usually it
hangs in kdm. I've tried kernel modesetting a few months ago, then it worked
alright.

HW: 2x Dual Core Opteron 1.8GHz, 4G ram, X1950 AGP (lspci below)
SW: debian amd64

lspci -nn
00:06.0 PCI bridge [0604]: Advanced Micro Devices [AMD] AMD-8111 PCI
[1022:7460] (rev 07)
00:07.0 ISA bridge [0601]: Advanced Micro Devices [AMD] AMD-8111 LPC
[1022:7468] (rev 05)
00:07.1 IDE interface [0101]: Advanced Micro Devices [AMD] AMD-8111 IDE
[1022:7469] (rev 03)
00:07.2 SMBus [0c05]: Advanced Micro Devices [AMD] AMD-8111 SMBus 2.0
[1022:746a] (rev 02)  
00:07.3 Bridge [0680]: Advanced Micro Devices [AMD] AMD-8111 ACPI [1022:746b]
(rev 05)  
00:07.5 Multimedia audio controller [0401]: Advanced Micro Devices [AMD]
AMD-8111 AC97 Audio [1022:746d] (rev 03)
00:0a.0 PCI bridge [0604]: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge
[1022:7450] (rev 12)   
00:0a.1 PIC [0800]: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC
[1022:7451] (rev 01)  
00:0b.0 PCI bridge [0604]: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge
[1022:7450] (rev 12)   
00:0b.1 PIC [0800]: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC
[1022:7451] (rev 01)
00:18.0 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
HyperTransport Technology Configuration [1022:1100]
00:18.1 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Address Map [1022:1101]
00:18.2 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
DRAM Controller [1022:1102]
00:18.3 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Miscellaneous Control [1022:1103]
00:19.0 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
HyperTransport Technology Configuration [1022:1100]
00:19.1 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Address Map [1022:1101]
00:19.2 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
DRAM Controller [1022:1102]
00:19.3 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Miscellaneous Control [1022:1103]
01:00.0 USB Controller [0c03]: Advanced Micro Devices [AMD] AMD-8111 USB
[1022:7464] (rev 0b)
01:00.1 USB Controller [0c03]: Advanced Micro Devices [AMD] AMD-8111 USB
[1022:7464] (rev 0b)
01:0a.0 USB Controller [0c03]: NEC Corporation USB [1033:0035] (rev 43)
01:0a.1 USB Controller [0c03]: NEC Corporation USB [1033:0035] (rev 43)
01:0a.2 USB Controller [0c03]: NEC Corporation USB 2.0 [1033:00e0] (rev 04)
01:0b.0 Mass storage controller [0180]: Silicon Image, Inc. SiI 3114
[SATALink/SATARaid] Serial ATA Controller [1095:3114] (rev 02)
01:0c.0 FireWire (IEEE 1394) [0c00]: Texas Instruments TSB43AB22/A
IEEE-1394a-2000 Controller (PHY/Link) [104c:8023]
02:09.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5703X
Gigabit Ethernet [14e4:16a7] (rev 02)
04:00.0 Host bridge [0600]: Advanced Micro Devices [AMD] AMD-8151 System
Controller [1022:7454] (rev 14)
04:01.0 PCI bridge [0604]: Advanced Micro Devices [AMD] AMD-8151 AGP Bridge
[1022:7455] (rev 14)
05:00.0 VGA compatible controller [0300]: ATI Technologies Inc RV570 [Radeon
X1950 Pro] [1002:7280] (rev 9a)
05:00.1 Display controller [0380]: ATI Technologies Inc RV570 [Radeon X1950
Pro] (secondary) [1002:72a0] (rev 9a)

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of 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 13973] radeon: kms doesn't work on AGP x1950

2009-08-13 Thread bugzilla-daemon
http://bugzilla.kernel.org/show_bug.cgi?id=13973





--- Comment #1 from Michel Dänzer mic...@daenzer.net  2009-08-13 10:01:31 ---
Does it work with radeon.agpmode=-1?

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of 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 13973] radeon: kms doesn't work on AGP x1950

2009-08-13 Thread bugzilla-daemon
http://bugzilla.kernel.org/show_bug.cgi?id=13973





--- Comment #2 from Daniel Vetter dan...@ffwll.ch  2009-08-13 10:54:05 ---
 --- Comment #1 from Michel Dänzer mic...@daenzer.net  2009-08-13 10:01:31 
 ---
 Does it work with radeon.agpmode=-1?
Yes, this works around the problem and I get a usable console with it.

-Daniel

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of 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: Doing better than CS ioctl ?

2009-08-13 Thread Jerome Glisse
On Wed, 2009-08-12 at 15:27 +0100, Keith Whitwell wrote:
 Dave,
 
 The big problem with the (second) radeon approach of state objects was
 that we defined those objects statically  encoded them into the kernel
 interface.  That meant that when new hardware functionality was needed
 (or discovered) we had to rev the kernel interface, usually in a fairly
 ugly way.
 
 I think Jerome's approach could be a good improvement if the state
 objects it creates are defined by software at runtime, more like little
 display lists than pre-defined state atoms.  The danger again is that
 you run into cases where you need to expand objects the verifier will
 allow userspace to create, but at least in doing so you won't be
 breaking existing users of the interface.
 
 I think the key is that there should be no pre-defined format for these
 state objects, simply that they should be a sequence of legal
 commands/register writes that the kernel validates once and userspace
 can execute multiple times.
 
 Keith

My idea was to have state grouped together according to what they matter
for. Like glstate of texture or object in nvidia hw. Idea is that most
of the object can be valid only if we know all of their state. For
renderbuffer we need to know its format, size, tiling, for texture we
need to know its format, size, mipmap levels and possibly others state
and so on and so forth.

If we just take arbitrary packet from userspace we might end up in
situation hard to decipher. If one validated cs program a renderbuffer
and other state like zbuffer it might be valid but now if we
combine it with another validated cs things might be completely wrong,
this another cs might just change clipping and renderbuffer size
but not update the zbuffer so we might endup rendering to zbuffer
either too small or too big (too small is what we don't want to
do ;)).

So in the end you need to enforce a set of register onto userspace.
Userspace need to submit a cs which program at least this set to be
validated, we can have different set like renderbufferset(clipping,
scissor,colorbuffer,zbuffer registers), vertex set(vbo,...), shaders
set(shaders reg) and then you can combine different set to do the
rendering. I think splitting states matter because you often render
to some buffer but with different vbo or pixel shader or vertex shader
or primitive, so it sounds better to split states.

There i think we endup pretty much to what i proposed. Thing is,
i don't think packet format is the best to communicate with the kernel
as kernel will have to parse the buffer and this is resource consuming
not to mention that tracking states that way it bit painfull.

I think state object with structure defined per asic (r3xx, r5xx, r6xx)
are better, no parsing, clear split of each value and easy access to
check that all together they do somethings allowed and then
easy and quick for the kernel to build the packet out of this.

On the backward incompatibilities side it's not harder to expand those
states :
struct radeon_state {
u32 state_id;
u64 state_struct_ptr;
};
version 1: state_id = 0x501
struct rv515_texture {
u32 width;
u32 height;
...
};
version 2: state_id = 0x502
struct rv515_texture {
u32 width;
u32 height;
...
u32 texture_pixel_sampling_center; /* well anythings new */
};

So from user pov it could still use the 0x501 and kernel
will just ignore the end of the structure and will set
default safe value for those. If userspace space submit
a 0x502 then it's assume that it knows about new state
and kernel will take them into account.

I don't think this add more works or code than adding new packet
to a parser.


Anyway the biggest problem of any of such approach is that we
need to figure out how to allocate memory to store either validated
cs or kernel built packet on behalf of the program, we don't
want to abuse kernel memory allocation. And we can't allow userspace
to modify those object after they had been validated :)

Cheers,
Jerome


--
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-08-13 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=22372





--- Comment #7 from Roland Scheidegger srol...@tungstengraphics.com  
2009-08-13 04:39:23 PST ---
(In reply to comment #6)
 My understanding sofar (which might be completely wrong) is that 
 _mesa_CopyTex*
 clears/initializes texImage fields and radeon does CopyTex* through swrast
 which tries to map the textures in radeonSpanRenderStart and it goes downhill
 from there.
This is quite possible. CopyTexImage is definitely broken that way - you can
test this with tests/subtexrate though it needs modification (replace
CopyTexSubImage with corresponding CopyTexImage and skip previous TexSubImage
tests which cause miptree to be defined).

 No idea how to fix this though.  (maybe don't try to map the texobj in this
 state or provide own CopyTex implementation)
I think the driver needs to follow what the intel driver does, that is provide
own CopyTex implementation. It could be simple and always fall back to swrast
(like intel does if it can't accelerate it) though we'd really want to
accelerate 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 22743] nexuiz game: missing weapons and enemies models

2009-08-13 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=22743


Roland Scheidegger srol...@tungstengraphics.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
  Component|Drivers/DRI/r300|Mesa core
 Resolution||NOTOURBUG




--- Comment #2 from Roland Scheidegger srol...@tungstengraphics.com  
2009-08-13 05:31:21 PST ---
This is a nexuiz bug and should be fixed there (if it isn't already, I didn't
test latest version). Note that nexuiz doesn't actually use that index which is
one too large, it's just the end value to the DrawRangeElements call which is
wrong.
(Though, I'm not actually really sure it's against the spec to use a end value
which is larger than what the bound arrays can provide and larger than the
largest index value as it's a mere hint that no larger indices will be used but
doesn't indicate that the end index value will be used itself - but anyway the
app certainly didn't want to use that value.)


-- 
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: drm sysfs questions

2009-08-13 Thread Kristian Høgsberg
2009/8/13 Thomas Hellström tho...@shipmail.org:
 Kristian Høgsberg wrote:
 2009/8/11 Thomas Hellström tho...@shipmail.org:

 Jesse Barnes wrote:

 On Tue, 11 Aug 2009 11:23:09 +0200
 Thomas Hellström tho...@shipmail.org wrote:



 Hi!

 I'm wondering why we are using a struct device as a sysfs
 representation for connectors instead of a struct kobject?

 In particular, what stops the drm_sysfs_[suspend|resume] functions to
 get called for the connectors, having them cast to a struct drm_minor
 and sending the cpu to the bushes?


 Hm, maybe we're just getting lucky that the drm minor check fails for
 everything but the DRM core device.

 Yes, I think that's actually the case.

 kobjects might make sense to move
 to, unless we can think of other things we'd like to do with a full
 device (e.g. runtime power management or some sort of per-connector
 suspend/resume).


 I can't really think of a case where the device owning the connector
 can't handle this?
 But we'd lose the /sys/drm/xxx symlinks to the connectors, and if that
 does matter, we'd need to recreate those manually.

 Anyway, I'd also like to be able to add a virtual ttm device to the drm
 sysfs hierarchy, the purpose of which would be to do the right thing
 with uncached / write-combined pages at suspend. The virtual device
 won't be wrapped in a drm minor so I'm wondering wether we could wrap
 the struct device like so:

 struct drm_sysfs_device {
    enum drm_sysfs_device_type type;
    struct device kdev;
 }

 This way the drm sysfs suspend / resume hooks can check the type of the
 structure embedding the struct device and only call the driver hooks for
 the relevand device types.


 There is already a struct device_type mechanism for different types of
 devices under a subsystem.  I'm pretty sure that would be the rigth
 thing to use, also for the connector devices.
 The device_type methods are called in addition to the class methods.
 This means we either have to a) stop the class methods from doing
 anything or have them distinguish between device types like in the patch
 I just posted.

 So if we ditch the class suspend / resume and instead set up a struct
 device_type for the minor devices to execute the suspend / resume
 hooks we'd be fine. I can respin the patch to do that.

Yup, I think that's a great approach.

cheers,
Kristian

--
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 39/74] x86: Fix CPA memtype reserving in the set_pages_array*() cases

2009-08-13 Thread Greg KH
2.6.30-stable review patch.  If anyone has any objections, please let us know.

--

From: Thomas Hellstrom thellst...@vmware.com

commit 8523acfe40efc1a8d3da8f473ca67cb195b06f0c upstream.

The code was incorrectly reserving memtypes using the page
virtual address instead of the physical address. Furthermore,
the code was not ignoring highmem pages as it ought to.

( upstream does not pass in highmem pages yet - but upcoming
  graphics code will do it and there's no reason to not handle
  this properly in the CPA APIs.)

Fixes: http://bugzilla.kernel.org/show_bug.cgi?id=13884

Signed-off-by: Thomas Hellstrom thellst...@vmware.com
Acked-by: Suresh Siddha suresh.b.sid...@intel.com
Cc: dri-devel@lists.sourceforge.net
Cc: venkatesh.pallip...@intel.com
LKML-Reference: 1249284345-7654-1-git-send-email-thellst...@vmware.com
Signed-off-by: Ingo Molnar mi...@elte.hu
Signed-off-by: Greg Kroah-Hartman gre...@suse.de

---
 arch/x86/mm/pageattr.c |   30 +-
 1 file changed, 21 insertions(+), 9 deletions(-)

--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -590,9 +590,12 @@ static int __change_page_attr(struct cpa
unsigned int level;
pte_t *kpte, old_pte;
 
-   if (cpa-flags  CPA_PAGES_ARRAY)
-   address = (unsigned long)page_address(cpa-pages[cpa-curpage]);
-   else if (cpa-flags  CPA_ARRAY)
+   if (cpa-flags  CPA_PAGES_ARRAY) {
+   struct page *page = cpa-pages[cpa-curpage];
+   if (unlikely(PageHighMem(page)))
+   return 0;
+   address = (unsigned long)page_address(page);
+   } else if (cpa-flags  CPA_ARRAY)
address = cpa-vaddr[cpa-curpage];
else
address = *cpa-vaddr;
@@ -695,9 +698,12 @@ static int cpa_process_alias(struct cpa_
 * No need to redo, when the primary call touched the direct
 * mapping already:
 */
-   if (cpa-flags  CPA_PAGES_ARRAY)
-   vaddr = (unsigned long)page_address(cpa-pages[cpa-curpage]);
-   else if (cpa-flags  CPA_ARRAY)
+   if (cpa-flags  CPA_PAGES_ARRAY) {
+   struct page *page = cpa-pages[cpa-curpage];
+   if (unlikely(PageHighMem(page)))
+   return 0;
+   vaddr = (unsigned long)page_address(page);
+   } else if (cpa-flags  CPA_ARRAY)
vaddr = cpa-vaddr[cpa-curpage];
else
vaddr = *cpa-vaddr;
@@ -1118,7 +1124,9 @@ int set_pages_array_uc(struct page **pag
int free_idx;
 
for (i = 0; i  addrinarray; i++) {
-   start = (unsigned long)page_address(pages[i]);
+   if (PageHighMem(pages[i]))
+   continue;
+   start = page_to_pfn(pages[i])  PAGE_SHIFT;
end = start + PAGE_SIZE;
if (reserve_memtype(start, end, _PAGE_CACHE_UC_MINUS, NULL))
goto err_out;
@@ -1131,7 +1139,9 @@ int set_pages_array_uc(struct page **pag
 err_out:
free_idx = i;
for (i = 0; i  free_idx; i++) {
-   start = (unsigned long)page_address(pages[i]);
+   if (PageHighMem(pages[i]))
+   continue;
+   start = page_to_pfn(pages[i])  PAGE_SHIFT;
end = start + PAGE_SIZE;
free_memtype(start, end);
}
@@ -1160,7 +1170,9 @@ int set_pages_array_wb(struct page **pag
return retval;
 
for (i = 0; i  addrinarray; i++) {
-   start = (unsigned long)page_address(pages[i]);
+   if (PageHighMem(pages[i]))
+   continue;
+   start = page_to_pfn(pages[i])  PAGE_SHIFT;
end = start + PAGE_SIZE;
free_memtype(start, end);
}



--
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