[Bug 12731] New: dri is disabled with i915 driver

2007-10-08 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=12731

   Summary: dri is disabled with i915 driver
   Product: Mesa
   Version: CVS
  Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
  Severity: critical
  Priority: highest
 Component: Drivers/DRI/i915
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]
CC: dri-devel@lists.sourceforge.net


Dri is disabled with i915 driver. glxinfo reports dri is disabled and glxgears
gives very low FPS(75-85FPS).

This bug was introduced by commit:

commit 77e0523fb7769df4bf43747e136b1653b2421b97
Author: Eric Anholt [EMAIL PROTECTED]
Date:   Thu Oct 4 12:07:25 2007 -0700

[965] Replace various alignment code with a shared ALIGN() macro.

In the process, fix some alignment issues:
- Scratch space allocation was aligned into units of 1KB, while the
allocati
  wanted units of bytes, so we never allocated enough space for scratch.
- GRF register count was programmed as ALIGN(val - 1, 16) / 16 instead of
  ALIGN(val, 16) / 16 - 1, which overcounted for val != 16n+1.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


glxinfo weird error, please help

2007-10-08 Thread Alec Liu
Please Help, thank you very much!!
Code:

$ export LIBGL_DEBUG=verbose

 $ glxinfo
name of display: :0.0
libGL: XF86DRIGetClientDriverName: 5.2.0 radeon (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/tls/radeon_dri.so
libGL: OpenDriver: trying /usr/lib/dri/radeon_dri.so
libGL: XF86DRIGetClientDriverName: 1.8.0 i965 (screen 1)
libGL: OpenDriver: trying /usr/lib/dri/tls/i965_dri.so
libGL: OpenDriver: trying /usr/lib/dri/i965_dri.so
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: Searching for BusID pci::04:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: drmOpenMinor returns 4
drmOpenByBusid: drmGetBusid reports pci::00:02.0
drmOpenDevice: node name is /dev/dri/card1
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: drmOpenMinor returns 4
drmOpenByBusid: drmGetBusid reports pci::04:00.0
libGL warning: 3D driver claims to not support visual 0x93
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 5, (OK)
drmOpenByBusid: Searching for BusID pci::00:02.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 5, (OK)
drmOpenByBusid: drmOpenMinor returns 5
drmOpenByBusid: drmGetBusid reports pci::00:02.0
glxinfo: ../common/xmlconfig.c:110: findOption: Assertion `i  size' failed.
Aborted

Code:

$ oowriter
libGL: XF86DRIGetClientDriverName: 5.2.0 radeon (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/tls/radeon_dri.so
libGL: OpenDriver: trying /usr/lib/dri/radeon_dri.so
libGL: XF86DRIGetClientDriverName: 1.8.0 i965 (screen 1)
libGL: OpenDriver: trying /usr/lib/dri/tls/i965_dri.so
libGL: OpenDriver: trying /usr/lib/dri/i965_dri.so
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 9, (OK)
drmOpenByBusid: Searching for BusID pci::04:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 9, (OK)
drmOpenByBusid: drmOpenMinor returns 9
drmOpenByBusid: drmGetBusid reports pci::00:02.0
drmOpenDevice: node name is /dev/dri/card1
drmOpenDevice: open result is 9, (OK)
drmOpenByBusid: drmOpenMinor returns 9
drmOpenByBusid: drmGetBusid reports pci::04:00.0
libGL warning: 3D driver claims to not support visual 0x93
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 10, (OK)
drmOpenByBusid: Searching for BusID pci::00:02.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 10, (OK)
drmOpenByBusid: drmOpenMinor returns 10
drmOpenByBusid: drmGetBusid reports pci::00:02.0
soffice.bin: ../common/xmlconfig.c:110: findOption: Assertion `i  size' failed.
/usr/lib/openoffice/program/soffice: line 236: 21963 Aborted
  $sd_prog/$sd_binary $@


Code:

 lspci -v
00:00.0 Host bridge: Intel Corporation Memory Controller Hub (rev 02)
Subsystem: Dell Unknown device 01da
Flags: bus master, fast devsel, latency 0
Capabilities: [e0] Vendor Specific Information

00:01.0 PCI bridge: Intel Corporation PCI Express Root Port (rev 02)
(prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
Memory behind bridge: dfc0-dfcf
Capabilities: [88] Subsystem: Dell Unknown device 01da
Capabilities: [80] Power Management version 3
Capabilities: [90] Message Signalled Interrupts: Mask- 64bit-
Queue=0/0 Enable-
Capabilities: [a0] Express Root Port (Slot+) IRQ 0
Capabilities: [100] Virtual Channel
Capabilities: [140] Unknown (5)

00:02.0 VGA compatible controller: Intel Corporation Integrated
Graphics Controller (rev 02) (prog-if 00 [VGA])
Subsystem: Dell Unknown device 01da
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at dfe0 (32-bit, non-prefetchable) [size=1M]
Memory at c000 (64-bit, prefetchable) [size=256M]
I/O ports at ecb8 [size=8]
Capabilities: [90] Message Signalled Interrupts: Mask- 64bit-
Queue=0/0 Enable-
Capabilities: [d0] Power Management version 2

00:02.1 Display controller: Intel Corporation Integrated Graphics
Controller (rev 02)
Subsystem: Dell Unknown device 01da
Flags: bus master, fast devsel, latency 0
Memory at dff0 (32-bit, non-prefetchable) [size=1M]
Capabilities: [d0] Power Management version 2

00:1a.0 USB Controller: Intel Corporation USB UHCI Controller #4 (rev
02) (prog-if 00 [UHCI])
Subsystem: Dell Unknown device 01da
Flags: bus master, medium devsel, latency 0, IRQ 16
I/O ports at ff20 [size=32]

00:1a.1 USB Controller: Intel Corporation USB UHCI Controller #5 (rev
02) (prog-if 00 [UHCI])
Subsystem: Dell Unknown device 01da
Flags: bus master, medium devsel, latency 0, IRQ 20
I/O ports at ff00 [size=32]

00:1a.7 USB Controller: Intel Corporation USB2 EHCI Controller #2 (rev
02) (prog-if 20 [EHCI])
Subsystem: Dell 

Re: Initial 915 superioctl patch.

2007-10-08 Thread Jesse Barnes
On Sunday, October 7, 2007 4:26 pm Dave Airlie wrote:
  At a high level, I'm wondering if something like this could be made
  more generic...  It seems like other GPUs will need similar
  relocation processing so maybe the DRM should grow some generic
  reloc processing code?  Much of this stuff seems fairly generic, so
  maybe it wouldn't be that hard, and it would keep us from adding
  yet another driver specific ioctl...

 You'd think that, and some parts maybe later could be generalised
 internally in the kenrel, but the ioctl needs to remain driver
 specific otherwise we won't be able to optimise use-cases for
 specific drivers.. Thomas's original code attempted to make parts of
 this generic in libdrm but once I started experimenting with it I
 found it limited what I could do.. the i915 has different
 requirements to the poulsbo which are the only two example
 superioctls in the wild at the moment..

Ah ok, we don't want to give up on optimizing for specific devices, so 
if poulsbo and i915 already have different characteristics we'd better 
keep the ioctls driver specific.

  +  struct drm_buffer_object *reloc_list_object;
  +  int ret;
  +  uint32_t cur_handle = *reloc_buf_handle;
  +  uint32_t num_relocs;
  +  struct drm_bo_kmap_obj reloc_kmap;
  +  uint32_t *reloc_page;
  +  int reloc_is_iomem;
  +  uint32_t reloc_offset, reloc_end, reloc_page_offset,
  next_offset; + int reloc_stride;
  +  uint32_t cur_offset;
 
  gcc probably takes care of this, but it's still nice to order your
  automatic variables from large to small just to make sure you get
  good alignment.

 Damn ia64 hackers...

:)  Don't forget that unaligned accesses on x86 cost a lot too, you just 
don't take an interrupt for them...

  So the first 32 bits of the reloc_page contains the reloc count and
  type, and the next bits contain the actual info required, right? 
  It might be nice to cast them into reloc_info and reloc_arg
  structures of some kind.  That way if new reloc types were added
  later things would be a little clearer (and this code would be a
  little more straightforward I think too).  Would that make sense?

 Yeah I thought about doing that, it's what poulsbo does pretty much,
 then I also thought for future different relocs type you really just
 want stride and pointer..

Yeah, up to you.  If you don't end up with a separate struct though, it 
would be good to add a comment describing the layout.

  +  if (!dev_priv-allow_batchbuffer) {
  +  DRM_ERROR(Batchbuffer ioctl disabled\n);
  +  return -EINVAL;
  +  }
 
  Why would userspace turn this off?  Looks like current code turns
  the feature on at least...

 We can probably remove thse later when we do init in-kernel.

Cool (my first reaction to anything configurable is oh no, not another 
config option, so I had to ask :).

  +#define DRM_IOCTL_I915_EXECBUFFER DRM_IOWR(DRM_COMMAND_BASE +
  DRM_I915_EXECBUFFER, struct drm_i915_execbuffer)
 
  I know it's not in keeping with DRM tradition, but a short blurb
  about how this ioctl works (i.e. data structures and how to submit
  them) would be nice... :)

 I'll have userspace example code in my mesa tree.. I can't see there
 being many users beyond Mesa and the DDX..

Sounds good.


  +   struct _drm_i915_batchbuffer batch;
  +   uint64_t ops_list;
  +   struct drm_fence_arg fence_arg;
  +};
 
  Why the _ prefixed version here?  In my tree there's no
  _drm_i915_batchbuffer, just drm_i915_batchbuffer...

 I was starting to dump some typedefs...

Yeah, I noticed the massive removal in the DRM tree, looks really nice.  
I guess there's just some driver specific stuff left...

  +#ifdef I915_HAVE_BUFFER
  +#define I915_NUM_VALIDATE_BUFFERS 256
  +#endif
 
  Why 256?

 It was larger than 42.. I suppose I could use getparam to report this
 to userspace so we could change it in theory later..

I don't know if 42 is better than 256... do we have any measurements 
that would help us pick a good number or that would tell us we need to 
make it a runtime option?  Or maybe just part of the argument structure 
that's passed in?

Jesse

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: DRM_READ/WRITE* vs. byte swapping (Re: drm: Branch 'master')

2007-10-08 Thread Ian Romanick
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Michel Dänzer wrote:
 On Wed, 2007-10-03 at 14:08 -0700, Ian Romanick wrote:
 diff --git a/linux-core/xgi_cmdlist.c b/linux-core/xgi_cmdlist.c
 index 261f4e1..35f7e1b 100644
 --- a/linux-core/xgi_cmdlist.c
 +++ b/linux-core/xgi_cmdlist.c
 @@ -45,7 +45,7 @@ static inline void dwWriteReg(struct drm
  DRM_INFO(mmio_map-handle = 0x%p, addr = 0x%x, data = 0x%x\n,
   map-handle, addr, data);
  #endif
 -DRM_WRITE32(map, addr, data);
 +DRM_WRITE32(map, addr, cpu_to_le32(data));
 
 These look odd - DRM_READ/WRITE* already swap bytes. Does the device's
 MMIO aperture swap bytes on its own? If so, and you can't or don't want
 to disable that, maybe we need new macros using __raw_read/write* on
 Linux.

Hmm...I didn't realize that those functions had a built-in byte-swap.
I'm having some issues getting XP10 working properly on PPC, and a
liberal sprinkling of cpu_to_le32 and le32_to_cpu made things better.
 I'll continue investigating.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFHCmMPX1gOwKyEAw8RApB/AKCa0BacjZSD7eynwgOVAfI4Gz/YGwCeJqc/
aUEPIxI064kjOqjHyTw+3eM=
=zxPL
-END PGP SIGNATURE-

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Initial 915 superioctl patch.

2007-10-08 Thread Keith Whitwell
Neither 42 nor 256 are very good - the number needs to be dynamic.  Think about 
situations where an app has eg. one glyph per texture and is doing font 
rendering...  Or any reasonably complex game might use 256 textures in a 
frame.  

Sorry for topposting -- webmail.

Keith
- Original Message 
From: Jesse Barnes [EMAIL PROTECTED]
To: Dave Airlie [EMAIL PROTECTED]
Cc: dri-devel@lists.sourceforge.net
Sent: Monday, October 8, 2007 6:04:42 PM
Subject: Re: Initial 915 superioctl patch.



I don't know if 42 is better than 256... do we have any measurements 
that would help us pick a good number or that would tell us we need to 
make it a runtime option?  Or maybe just part of the argument structure 
that's passed in?

Jesse

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: glxinfo weird error, please help

2007-10-08 Thread Jerome Glisse
Alec Liu wrote:
 i am using the gentoo
 i did compile everything

 please help me to local the badly compiled library
 thank you !

 On 10/9/07, Jerome Glisse [EMAIL PROTECTED] wrote:
   
 Alec Liu wrote:
 
 Please Help, thank you very much!!
 Code:

 $ export LIBGL_DEBUG=verbose

  $ glxinfo
 name of display: :0.0
 libGL: XF86DRIGetClientDriverName: 5.2.0 radeon (screen 0)
 libGL: OpenDriver: trying /usr/lib/dri/tls/radeon_dri.so
 libGL: OpenDriver: trying /usr/lib/dri/radeon_dri.so
 libGL: XF86DRIGetClientDriverName: 1.8.0 i965 (screen 1)
 libGL: OpenDriver: trying /usr/lib/dri/tls/i965_dri.so
 libGL: OpenDriver: trying /usr/lib/dri/i965_dri.so
 drmOpenDevice: node name is /dev/dri/card0
 drmOpenDevice: open result is 4, (OK)
 drmOpenByBusid: Searching for BusID pci::04:00.0
 drmOpenDevice: node name is /dev/dri/card0
 drmOpenDevice: open result is 4, (OK)
 drmOpenByBusid: drmOpenMinor returns 4
 drmOpenByBusid: drmGetBusid reports pci::00:02.0
 drmOpenDevice: node name is /dev/dri/card1
 drmOpenDevice: open result is 4, (OK)
 drmOpenByBusid: drmOpenMinor returns 4
 drmOpenByBusid: drmGetBusid reports pci::04:00.0
 libGL warning: 3D driver claims to not support visual 0x93
 drmOpenDevice: node name is /dev/dri/card0
 drmOpenDevice: open result is 5, (OK)
 drmOpenByBusid: Searching for BusID pci::00:02.0
 drmOpenDevice: node name is /dev/dri/card0
 drmOpenDevice: open result is 5, (OK)
 drmOpenByBusid: drmOpenMinor returns 5
 drmOpenByBusid: drmGetBusid reports pci::00:02.0
 glxinfo: ../common/xmlconfig.c:110: findOption: Assertion `i  size' failed.
 Aborted

 Code:

 $ oowriter
 libGL: XF86DRIGetClientDriverName: 5.2.0 radeon (screen 0)
 libGL: OpenDriver: trying /usr/lib/dri/tls/radeon_dri.so
 libGL: OpenDriver: trying /usr/lib/dri/radeon_dri.so
 libGL: XF86DRIGetClientDriverName: 1.8.0 i965 (screen 1)
 libGL: OpenDriver: trying /usr/lib/dri/tls/i965_dri.so
 libGL: OpenDriver: trying /usr/lib/dri/i965_dri.so
 drmOpenDevice: node name is /dev/dri/card0
 drmOpenDevice: open result is 9, (OK)
 drmOpenByBusid: Searching for BusID pci::04:00.0
 drmOpenDevice: node name is /dev/dri/card0
 drmOpenDevice: open result is 9, (OK)
 drmOpenByBusid: drmOpenMinor returns 9
 drmOpenByBusid: drmGetBusid reports pci::00:02.0
 drmOpenDevice: node name is /dev/dri/card1
 drmOpenDevice: open result is 9, (OK)
 drmOpenByBusid: drmOpenMinor returns 9
 drmOpenByBusid: drmGetBusid reports pci::04:00.0
 libGL warning: 3D driver claims to not support visual 0x93
 drmOpenDevice: node name is /dev/dri/card0
 drmOpenDevice: open result is 10, (OK)
 drmOpenByBusid: Searching for BusID pci::00:02.0
 drmOpenDevice: node name is /dev/dri/card0
 drmOpenDevice: open result is 10, (OK)
 drmOpenByBusid: drmOpenMinor returns 10
 drmOpenByBusid: drmGetBusid reports pci::00:02.0
 soffice.bin: ../common/xmlconfig.c:110: findOption: Assertion `i  size' 
 failed.
 /usr/lib/openoffice/program/soffice: line 236: 21963 Aborted
   $sd_prog/$sd_binary $@


   
 This is likely due to badly compiled library or picking the wrong one.
 Did you compile yourself anythings ? If you are using only distrib
 package then ask your distribution to fix this.

 Cheers,
 Jerome Glisse

 
I would say reemerge mesa but i don't know gentoo you would better ask
gentoo people on irc on others place where they give support.

Cheers,
Jerome Glisse


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: fix undefined symbol: ALIGN on /usr/lib/dri/i915_dri.so

2007-10-08 Thread Eric Anholt
On Mon, 2007-10-08 at 01:16 +0100, Sergio Monteiro Basto wrote:
 Hi,
 this patch fix my problem , 
 
 --- a/src/mesa/drivers/dri/intel/intel_tex_layout.c
 +++ b/src/mesa/drivers/dri/intel/intel_tex_layout.c
 @@ -33,6 +33,7 @@
  #include intel_mipmap_tree.h
  #include intel_tex_layout.h
  #include macros.h
 +#include intel_context.h
 
  GLuint intel_compressed_alignment(GLenum internalFormat)
  {
 
 Thanks, 

Committed.  Apparently I failed to check again after my first nm and fix
on i915.

-- 
Eric Anholt [EMAIL PROTECTED]
[EMAIL PROTECTED] [EMAIL PROTECTED]



signature.asc
Description: This is a digitally signed message part
-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 12731] dri is disabled with i915 driver

2007-10-08 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=12731





--- Comment #1 from [EMAIL PROTECTED]  2007-10-08 12:45 PST ---
Already fix on git master :

Commit: 4599683b480d295e407725e0fe99c357a0086092 
i915: Fix undefined ALIGN symbol from 77e0523fb7769df4bf43747e136b1653b2421b97.

you may close the bug ! 


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: i945GM / drm-modesetting-101 vs Xorg (Xorg : 1 / drm-modesetting-101 : 0, 5) :-)

2007-10-08 Thread Philippe Gaultier
Hi,

I tried to check the timing stuff but (as I'm not a real developper) I
don't know how to test my timings easily.
Until now, I did several tries with no luck...

In fact, for each try, I have to compile the module, load it, check
what's going on and the reboot. I must reboot because the
modesetting-101 branch does not support rmmod.

I would like to know if there is some sample code I can borrow to
check the i2c (initiate queries, ...) in order to try to find the
appropriate timing.

Thank you

2007/10/2, Jesse Barnes [EMAIL PROTECTED]:
 On Tuesday, October 2, 2007 10:49 am Philippe Gaultier wrote:
  2007/10/2, Jesse Barnes [EMAIL PROTECTED]:
   On Tuesday, October 2, 2007 8:28 am Philippe Gaultier wrote:
Oct  2 00:32:18 coreduo i2c-adapter i2c-4: sendbytes: error -
bailout. Oct  2 00:32:18 coreduo i2c-adapter i2c-4: unable to
read EDID block.  Oct  2 00:32:19 coreduo i915 :00:02.0:
TMDS-1: no EDID data
  
   This is probably the first thing to fix.  Can you play with the i2c
   timings and see if you can get it to return some EDID data?  The X
   server has some i2c code you can look at, as does the Intel DDX
   driver. It's probably a timing issue, but may also be an i2c setup
   problem in intel_sdvo.c (check against the DDX driver's i830_sdvo.c
   file to see what might be missing).
 
  Can you tell me which file I should check in order to not break the
  whole drm-modesetting driver ?
 
  I think it should be :
 
   - intel_i2c.c
   - drm_edid.c
  and perhaps
   - drm_crtc.c
 
  but I need your advice on this.

 intel_i2c.c has the i2c timings and get/set routines, so it's a good
 start.  drm_edid.c probably isn't very interesting in this case--it
 just takes the EDID blob and turns it into its constituent modes and
 monitor info structures.  Likewise, drm_crtc.c probably won't help in
 this case, it just handles all the metadata allocation and
 initialization.  So your best bet is intel_i2c.c and intel_sdvo.c since
 you have an HDMI attached display.

 Jesse


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Initial 915 superioctl patch.

2007-10-08 Thread Dave Airlie

 On Monday, October 8, 2007 10:13 am Keith Whitwell wrote:
 Neither 42 nor 256 are very good - the number needs to be dynamic.
 Think about situations where an app has eg. one glyph per texture and
 is doing font rendering...  Or any reasonably complex game might use
 256 textures in a frame.

 So maybe the buffer count should be part of the execbuffer request
 object?  Or does it have to be a separate settable parameter?

I would think the kernel needs to limit this in some way... as otherwise 
we are trusting a userspace number and allocating memory according to 
it...

So I'll make it dynamic but I'll have to add a kernel limit..

keithw: btws poulsbo uses 256 I think also..

Dave.

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Initial 915 superioctl patch.

2007-10-08 Thread Jesse Barnes
On Monday, October 8, 2007 2:14 pm Dave Airlie wrote:
  On Monday, October 8, 2007 10:13 am Keith Whitwell wrote:
  Neither 42 nor 256 are very good - the number needs to be dynamic.
  Think about situations where an app has eg. one glyph per texture
  and is doing font rendering...  Or any reasonably complex game
  might use
 
  256 textures in a frame.
 
  So maybe the buffer count should be part of the execbuffer request
  object?  Or does it have to be a separate settable parameter?

 I would think the kernel needs to limit this in some way... as
 otherwise we are trusting a userspace number and allocating memory
 according to it...

 So I'll make it dynamic but I'll have to add a kernel limit..

Yeah, definitely need a kernel limit of some kind, settable by the DRM 
master presumably?

Jesse

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: i945GM / drm-modesetting-101 vs Xorg (Xorg : 1 / drm-modesetting-101 : 0, 5) :-)

2007-10-08 Thread Jesse Barnes
On Monday, October 8, 2007 2:00 pm Philippe Gaultier wrote:
 Hi,

 I tried to check the timing stuff but (as I'm not a real developper)
 I don't know how to test my timings easily.
 Until now, I did several tries with no luck...

 In fact, for each try, I have to compile the module, load it, check
 what's going on and the reboot. I must reboot because the
 modesetting-101 branch does not support rmmod.

It should rmmod correctly if you unbind the drm console driver (echo 0 
 /sys/class/vtconsole/vtcon1/bind or similar).

 I would like to know if there is some sample code I can borrow to
 check the i2c (initiate queries, ...) in order to try to find the
 appropriate timing.

The X server has some i2c code with timings and different access methods 
you could look at.  It seems to be slightly more reliable (but still 
not 100%) than the kernel code.

Jesse

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Initial 915 superioctl patch.

2007-10-08 Thread Keith Whitwell
Dave Airlie wrote:
 
 On Monday, October 8, 2007 10:13 am Keith Whitwell wrote:
 Neither 42 nor 256 are very good - the number needs to be dynamic.
 Think about situations where an app has eg. one glyph per texture and
 is doing font rendering...  Or any reasonably complex game might use
 256 textures in a frame.

 So maybe the buffer count should be part of the execbuffer request
 object?  Or does it have to be a separate settable parameter?
 
 I would think the kernel needs to limit this in some way... as otherwise 
 we are trusting a userspace number and allocating memory according to it...
 
 So I'll make it dynamic but I'll have to add a kernel limit..
 
 keithw: btws poulsbo uses 256 I think also..

Yes but I suspect we'll need to increase or make it dynamic before we're 
done.

As with most hard limits, you can work around it by flushing 
prematurely, but there is a cost to that, one way or another.

Keith

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


driver fence_type function

2007-10-08 Thread Dave Airlie


Hi Thomas (any anyone else :-)

drm_buffer_object_validate gets passed new and old flags (using 
bo-mem.mask/bo-mem.flags) but when it calls the i915 fence_type function 
it only uses flags to check the fence type, now if this buffer is getting 
validated RW when it wasn't before, it will get the wrong fence type 
back..

I've changed this in my tree to (bo-mem.mask | bo-mem.flags) which or's 
the old and new types together but I wonder should it just be checking the 
mask and not flags at all?

Dave.

-- 
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
Linux kernel - DRI, VAX / pam_smb / ILUG


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[patch] post superioctl inteface removal.

2007-10-08 Thread Dave Airlie


Hi,

Once the 915 super ioctl is merged, the patch attached removes the unused 
interfaces left behind...


Are any of these worth saving?

Dave.

--
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
Linux kernel - DRI, VAX / pam_smb / ILUG
From 5bb96b72c503953ae83e5fc12a4864f338189186 Mon Sep 17 00:00:00 2001
From: Dave Airlie [EMAIL PROTECTED]
Date: Tue, 9 Oct 2007 15:45:06 +1000
Subject: [PATCH] ttm: remove unused interface post-superioctl for 915

---
 libdrm/xf86drm.c |  400 +-
 libdrm/xf86mm.h  |   40 +-
 linux-core/drm_bo.c  |   76 -
 linux-core/drm_drv.c |2 -
 linux-core/drm_fence.c   |   39 -
 linux-core/drm_objects.h |3 -
 shared-core/drm.h|   12 --
 7 files changed, 2 insertions(+), 570 deletions(-)

diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c
index dc18d6f..1b9c889 100644
--- a/libdrm/xf86drm.c
+++ b/libdrm/xf86drm.c
@@ -2364,32 +2364,7 @@ int drmFenceCreate(int fd, unsigned flags, int 
fence_class, unsigned type,
 fence-signaled = 0;
 return 0;
 }
-
-/*
- * Valid flags are 
- * DRM_FENCE_FLAG_SHAREABLE
- * DRM_FENCE_MASK_DRIVER
- */
-
-int drmFenceBuffers(int fd, unsigned flags, uint32_t fence_class, drmFence 
*fence)
-{
-drm_fence_arg_t arg;
-
-memset(arg, 0, sizeof(arg));
-arg.flags = flags;
-arg.fence_class = fence_class;
-
-if (ioctl(fd, DRM_IOCTL_FENCE_BUFFERS, arg))
-   return -errno;
-fence-handle = arg.handle;
-fence-fence_class = arg.fence_class;
-fence-type = arg.type;
-fence-flags = arg.flags;
-fence-sequence = arg.sequence;
-fence-signaled = 0;
-return 0;
-}
-
+ 
 int drmFenceDestroy(int fd, const drmFence *fence)
 {
 drm_fence_arg_t arg;
@@ -2541,144 +2516,6 @@ int drmFenceWait(int fd, unsigned flags, drmFence 
*fence, unsigned flush_type)
 return 0;
 }
 
-static int drmAdjustListNodes(drmBOList *list)
-{
-drmBONode *node;
-drmMMListHead *l;
-int ret = 0;
-
-while(list-numCurrent  list-numTarget) {
-   node = (drmBONode *) malloc(sizeof(*node));
-   if (!node) {
-   ret = -ENOMEM;
-   break;
-   }
-   list-numCurrent++;
-   DRMLISTADD(node-head, list-free);
-}
-
-while(list-numCurrent  list-numTarget) {
-   l = list-free.next;
-   if (l == list-free)
-   break;
-   DRMLISTDEL(l);
-   node = DRMLISTENTRY(drmBONode, l, head);
-   free(node);
-   list-numCurrent--;
-}
-return ret;
-}
-
-void drmBOFreeList(drmBOList *list)
-{
-drmBONode *node;
-drmMMListHead *l;
-
-l = list-list.next;
-while(l != list-list) {
-   DRMLISTDEL(l);
-   node = DRMLISTENTRY(drmBONode, l, head);
-   free(node);
-   l = list-list.next;
-   list-numCurrent--;
-   list-numOnList--;
-}
-
-l = list-free.next;
-while(l != list-free) {
-   DRMLISTDEL(l);
-   node = DRMLISTENTRY(drmBONode, l, head);
-   free(node);
-   l = list-free.next;
-   list-numCurrent--;
-}
-}
-   
-int drmBOResetList(drmBOList *list)
-{
-drmMMListHead *l;
-int ret;
-
-ret = drmAdjustListNodes(list);
-if (ret)
-   return ret;
-
-l = list-list.next;
-while (l != list-list) {
-   DRMLISTDEL(l);
-   DRMLISTADD(l, list-free);
-   list-numOnList--;
-   l = list-list.next;
-}
-return drmAdjustListNodes(list);
-}
-   
-static drmBONode *drmAddListItem(drmBOList *list, drmBO *item, 
-unsigned long arg0,
-unsigned long arg1)
-{
-drmBONode *node;
-drmMMListHead *l;
-
-l = list-free.next;
-if (l == list-free) {
-   node = (drmBONode *) malloc(sizeof(*node));
-   if (!node) {
-   return NULL;
-   }
-   list-numCurrent++;
-}
-else {
-   DRMLISTDEL(l);
-   node = DRMLISTENTRY(drmBONode, l, head);
-}
-node-buf = item;
-node-arg0 = arg0;
-node-arg1 = arg1;
-DRMLISTADD(node-head, list-list);
-list-numOnList++;
-return node;
-}
-   
-void *drmBOListIterator(drmBOList *list)
-{
-void *ret = list-list.next;
-
-if (ret == list-list)
-   return NULL;
-return ret;
-}
-
-void *drmBOListNext(drmBOList *list, void *iterator)
-{
-void *ret;
-
-drmMMListHead *l = (drmMMListHead *) iterator;
-ret = l-next;
-if (ret == list-list)
-   return NULL;
-return ret;
-}
-
-drmBO *drmBOListBuf(void *iterator)
-{
-drmBONode *node;
-drmMMListHead *l = (drmMMListHead *) iterator;
-node = DRMLISTENTRY(drmBONode, l, head);
-return node-buf;
-}
-
-
-int drmBOCreateList(int numTarget, drmBOList *list)
-{
-DRMINITLISTHEAD(list-list);
-DRMINITLISTHEAD(list-free);
-list-numTarget = numTarget;
-list-numCurrent = 0;
-list-numOnList = 0;
-return drmAdjustListNodes(list);
-}
-
 static void drmBOCopyReply(const struct