[Dri-devel] Status of Radeon Mobility U1/320M

2003-02-22 Thread Christopher Meredith
I was unfortunate enough to end up with one of these chips in my laptop and am 
wondering what, if anything, I can look forward to. A brief synopsis of my experience:

The only X-included driver that will work is the generic VESA driver, which helps me 
not. Have compiled DRI and as usual, the RADEON driver causes X to crash with a no 
devices error. So I force chip detection with:

 Driver "radeon"
ChipID 0x4966
Option "AGPMode" "4"
Option "noaccel"
VideoRam 65536

This works, but again, gives me no improvement over the VESA driver, as it is the 
acceleration I am seeking. If I comment out the Option "noaccel" line or chage it to 
Option "accel", X starts, but the top half of the screen is blank while the bottom 
shows the desktop background. Mouse and keyboard lock up. This is the X log, beginning 
before the errors:

drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: Open failed
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: Open failed
[drm] failed to load kernel module "radeon"
(II) RADEON(0): [drm] drmOpen failed
(EE) RADEON(0): [dri] DRIScreenInit failed.  Disabling DRI.
(II) RADEON(0): Memory manager initialized to (0,0) (1024,8191)
(II) RADEON(0): Reserved area from (0,768) to (1024,770)
(II) RADEON(0): Largest offscreen area available: 1024 x 7421
(II) RADEON(0): Using XFree86 Acceleration Architecture (XAA)
Screen to screen bit blits
Solid filled rectangles
8x8 mono pattern filled rectangles
Indirect CPU to Screen color expansion
Solid Lines
Dashed Lines
Scanline Image Writes
Offscreen Pixmaps
Setting up tile and stipple cache:
32 128x128 slots
32 256x256 slots
16 512x512 slots
(II) RADEON(0): Acceleration enabled
(==) RADEON(0): Backing store disabled
(==) RADEON(0): Silken mouse enabled
(II) RADEON(0): Using hardware cursor (scanline 770)
(II) RADEON(0): Largest offscreen area available: 1024 x 7389
(II) RADEON(0): Direct rendering disabled
(II) Initializing built-in extension MIT-SHM
(II) Initializing built-in extension XInputExtension
(II) Initializing built-in extension XTEST
(II) Initializing built-in extension XKEYBOARD
(II) Initializing built-in extension LBX
(II) Initializing built-in extension XC-APPGROUP
(II) Initializing built-in extension SECURITY
(II) Initializing built-in extension XINERAMA
(II) Initializing built-in extension XFree86-Bigfont
(II) Initializing built-in extension RENDER
(II) Initializing built-in extension RANDR
(**) Option "Protocol" "MouseSystems"
(**) Mouse1: Protocol: "MouseSystems"
(**) Option "CorePointer"
(**) Mouse1: Core Pointer
(**) Option "Device" "/dev/gpmdata"
(**) Mouse1: Emulate3Buttons, Emulate3Timeout: 50
(==) Mouse1: Buttons: 3
(**) Option "BaudRate" "1200"
(**) Mouse1: BaudRate: 1200
(II) Keyboard "Keyboard1" handled by legacy driver
(II) XINPUT: Adding extended input device "Mouse1" (type: MOUSE)
(EE) RADEON(0): Idle timed out, resetting engine...
(EE) RADEON(0): Idle timed out, resetting engine...
(EE) RADEON(0): Idle timed out, resetting engine...
(EE) RADEON(0): Idle timed out, resetting engine...
etc...


Not knowing the current state of affairs, I emailed [EMAIL PROTECTED] severl days ago, 
very nicely requesting that they either release the specs for this chip to DRI, Xi 
Graphics, and/or XFree86 OR develop their own proprietary drivers. Of course, I have 
not received a response.

My questions: Has ATI been forthcoming with documentation for this chip? Either way, 
is there any active work being done on a driver for this chip? If not by DRI, does 
anyone here know of any work anywhere that is being done on Linuyx support for this 
chip? Is it simply an issue of writing device drivers or does there need to be some 
type of kernel-level support for the device? If no work is being done, is it merely 
due to lack of documentation by ATI? And finally, regardless of any of the answers to 
the above questions, may I remain hopeful regarding support of this chip in Linux?

Thank you all for your hard work and for reading this post! I thank you in advace for 
your responses!

~Christopher


---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] module release method, threads, pids

2003-02-22 Thread Keith Whitwell

I'd suggest associating the "struct file_struct *" with the GL context, 
and nothing else.

At that point you would always get the right answer by just knowing that 
when the release() happens, the GL context is gone.
This is probably the only sensible solution, I think.

Keith





---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] module release method, threads, pids

2003-02-22 Thread Linus Torvalds

On Sat, 22 Feb 2003, Keith Whitwell wrote:
> 
> What about processes that *don't* do a close - that just use an fd and exit. 

The exit does a close, and you'll see a flush() from the dying process
(and a release() if that was the last user).

> In the threaded demo I'm looking at, there is only one close -- in the same 
> thread that did the open.  The other threads just die.

If a thread does a close(), then that will have closed it in the other
threads too. You will not get any notification from the other threads,
since they will never have anything to notify about - the file is already
dead as far as they are concerned.

> But sadly for me, the thread that does the open isn't the one that sees the 
> flush() or release() events:

Whoever does the close() generates the flush().

And the release() can be generated by anybody, although in practice it's 
going to be the same one that did the final flush() in 99.99% of all cases 
(but if you depend on it, you're just asking for trouble).

> The last line indicates that 1063 held the lock.  I never see a flush() for 
> that pid.

The answer really is that you shouldn't care about the pid at all.

> > NOTE! In general it's a design mistake to care about things like
> > "current->pid" etc. What are the semantics for the file descriptor 
> > for fork'ed processes, or for threads? 
> 
> Yes, it looks like this is a big mistake throughout the drm code.  The 
> assumption seems to be that pids are equivalent to GL contexts - there are 
> heaps of issues I can see with this...

I'd suggest associating the "struct file_struct *" with the GL context, 
and nothing else.

At that point you would always get the right answer by just knowing that 
when the release() happens, the GL context is gone.

> We do still need some sort of notification of process/fd/GLcontext death to 
> clean up resources owned by that entity - the flush() (and previously 
> release()) methods seemed to do a reasonable job at least for singlethreaded 
> apps -- what would replace these notifications?

"flush()" is almost always the wrong thing to use. It's really 
fundamentally designed to do the one thing that the name implies: flush a 
pending stream of data, so that when you do a "close()" on a file 
descriptor the close() can return an error if something bad happened for 
deferred IO completion.

What you are looking for really is "release()", since that is the thing 
that tells you "this file descriptor no longer exists". However, that does 
require that you don't care about who does the release etc.

Also note that the release() will always be delayed until _all_ users have 
gone away. This means that if you do a fork() in a GL program, and the 
child keeps the file descriptor open, the release will not happen until 
the child has closed it - even if the original user long since destroyed 
its GL context and closed the original file descriptor.

This may be what you want, but if not you should make sure to close the GL 
file descriptors after forks (marking them close-on-exec is also a good 
idea, I think you already do that).

Linus



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] module release method, threads, pids

2003-02-22 Thread Linus Torvalds

On Sat, 22 Feb 2003, Keith Whitwell wrote:
> 
> Does flush get called when the process (thread) dies as well?  I'm seeing 
> identical behaviour for flush() as release() -- both are being called once 
> despite multiple threads holding copies of the fd.

Threads share the file descriptors, so in a threaded environment, when 
thread X closes the file descriptor, then it gets closed for thread Y as 
well.

> These threads (rh7.3) each have a unique pid, btw.

You could use "tgid" ie the thread group id, but that only works with
modern-style threads (ie the rh-8.1 beta).

I think the solution is to not use "pid". EVER.

Why do you care? Code that cares about pid relationships with file 
descriptors is buggy. As you've found out.

Linus



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] module release method, threads, pids

2003-02-22 Thread Keith Whitwell
Linus Torvalds wrote:
On Sat, 22 Feb 2003, Keith Whitwell wrote:

So, was the gist of the fix to simply relocate the current release() stuff to 
flush()?  I'm going to go & read the code now.


Yes, either that, or you need to not care about pid's.

"release()" is not necessarily called _at_all_ within the context of the 
process that does a close(). Things like /proc//fd accesses may mean 
that it's a process like "ps" that actually does the last release of a 
file, not the process that actally opened it and closed it.
I'm having real trouble getting this to happen.

What about processes that *don't* do a close - that just use an fd and exit. 
In the threaded demo I'm looking at, there is only one close -- in the same 
thread that did the open.  The other threads just die.

But sadly for me, the thread that does the open isn't the one that sees the 
flush() or release() events:

Feb 23 00:17:44 test kernel: DRM(open) pid 1061 open_count = 1
Feb 23 00:17:48 test kernel: radeon_flush: pid = 1064, device = 0xe200, 
open_count = 2
Feb 23 00:17:48 test kernel: radeon_release: pid = 1064, device = 0xe200, 
open_count = 2
Feb 23 00:17:48 test kernel: radeon_release: curently hw_lock -795947008 
is_held -2147483648 pid 1063 current->pid 1064

The last line indicates that 1063 held the lock.  I never see a flush() for 
that pid.


In other words:
 - flush is "process synchronous", and is done for each close() and in the 
   context of the close().

   You can have arbitrarily many "flush()" calls for one open, since the 
   process that did the open may have duplicated its file descriptor
   through fork() or dup() or even by passing it through UNIX domain 
   sockets.

 - release is a memory management "this file no longer exists" thing, and 
   you can't know anything about the context (ie any dependency on 
   _anything_ like "current" etc is a bug).

   You can have only one release() call for every open.

NOTE! In general it's a design mistake to care about things like
"current->pid" etc. What are the semantics for the file descriptor 
for fork'ed processes, or for threads? 
Yes, it looks like this is a big mistake throughout the drm code.  The 
assumption seems to be that pids are equivalent to GL contexts - there are 
heaps of issues I can see with this...

Usually the right answer is that 
you should _not_ care, and you should _not_ have a flush() call, and the 
only thing you should care about is the existence of the "struct file".

So it sounds like the fix in DRM is either
 - get rid of all pid dependencies.
 - use flush if you can't.
with the "get rid of pid dependencies" being the better choice if 
possible.
We do still need some sort of notification of process/fd/GLcontext death to 
clean up resources owned by that entity - the flush() (and previously 
release()) methods seemed to do a reasonable job at least for singlethreaded 
apps -- what would replace these notifications?

Keith



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] module release method, threads, pids

2003-02-22 Thread Linus Torvalds

On Sat, 22 Feb 2003, Keith Whitwell wrote:
> 
> So, was the gist of the fix to simply relocate the current release() stuff to 
> flush()?  I'm going to go & read the code now.

Yes, either that, or you need to not care about pid's.

"release()" is not necessarily called _at_all_ within the context of the 
process that does a close(). Things like /proc//fd accesses may mean 
that it's a process like "ps" that actually does the last release of a 
file, not the process that actally opened it and closed it.

In other words:
 - flush is "process synchronous", and is done for each close() and in the 
   context of the close().

   You can have arbitrarily many "flush()" calls for one open, since the 
   process that did the open may have duplicated its file descriptor
   through fork() or dup() or even by passing it through UNIX domain 
   sockets.

 - release is a memory management "this file no longer exists" thing, and 
   you can't know anything about the context (ie any dependency on 
   _anything_ like "current" etc is a bug).

   You can have only one release() call for every open.

NOTE! In general it's a design mistake to care about things like
"current->pid" etc. What are the semantics for the file descriptor 
for fork'ed processes, or for threads? Usually the right answer is that 
you should _not_ care, and you should _not_ have a flush() call, and the 
only thing you should care about is the existence of the "struct file".

So it sounds like the fix in DRM is either
 - get rid of all pid dependencies.
 - use flush if you can't.

with the "get rid of pid dependencies" being the better choice if 
possible.

Linus



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] module release method, threads, pids

2003-02-22 Thread Keith Whitwell
Alan Cox wrote:
On Sat, 2003-02-22 at 22:38, Keith Whitwell wrote:

Running into a problem when killing glthreads with Ctrl-C.  Normally this 
would invoke the release() method and clean up buffers, locks etc. 
Unfortunately this doesn't work so well with threads - the release method is 
being called only once despite the 3 processes (threads) that are being 
killed.  Unfortunately the drm module makes use of current->pid extensively, 
so it really expects each thread to invoke a release() call.


This was discussed here a while ago, and fixed in the kernel DRM for DRM 4.2
at least. There are two methods that matter here
->flush is called each time close() occurs
->release is called on the final close and disposal of a file
So you get
open->open
close   ->flush, ->release
open->open
fork
close   ->flush
close   ->flush. ->release
Does flush get called when the process (thread) dies as well?  I'm seeing 
identical behaviour for flush() as release() -- both are being called once 
despite multiple threads holding copies of the fd.

These threads (rh7.3) each have a unique pid, btw.

Keith



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] module release method, threads, pids

2003-02-22 Thread Keith Whitwell
Alan Cox wrote:
On Sat, 2003-02-22 at 22:38, Keith Whitwell wrote:

Running into a problem when killing glthreads with Ctrl-C.  Normally this 
would invoke the release() method and clean up buffers, locks etc. 
Unfortunately this doesn't work so well with threads - the release method is 
being called only once despite the 3 processes (threads) that are being 
killed.  Unfortunately the drm module makes use of current->pid extensively, 
so it really expects each thread to invoke a release() call.


This was discussed here a while ago, and fixed in the kernel DRM for DRM 4.2
at least. There are two methods that matter here
->flush is called each time close() occurs
->release is called on the final close and disposal of a file
Hmm, I remeber the discussion.  I thought we were pretty much in sync with the 
kernel -- I guess this must be 2.4, right?

So you get
open->open
close   ->flush, ->release
open->open
fork
close   ->flush
close   ->flush. ->release
So, was the gist of the fix to simply relocate the current release() stuff to 
flush()?  I'm going to go & read the code now.

Keith



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] module release method, threads, pids

2003-02-22 Thread Felix Kühling
On Sat, 22 Feb 2003 15:38:40 -0700
Keith Whitwell <[EMAIL PROTECTED]> wrote:

> Running into a problem when killing glthreads with Ctrl-C.  Normally this 
> would invoke the release() method and clean up buffers, locks etc. 
> Unfortunately this doesn't work so well with threads - the release method is 
> being called only once despite the 3 processes (threads) that are being 
> killed.  Unfortunately the drm module makes use of current->pid extensively, 
> so it really expects each thread to invoke a release() call.
> 
> As a result, killing glthreads this way almost always leaves X hung, trying to 
> get the lock, waiting for a process which is already dead.
> 
> The basic scenario is like this:
> 
> 
> parent creates 2 contexts (opens one? drm fd)
> 
> parent spawns 2 threads
> 
> threads render & grab lock
> 
> --> interrupt (while lock is held by child-1)
> 
> parent/child-2 dies -- release method called
>   -- pid check to release lock fails
> 
> child-1 - release method not called
>   -- lock is never released
> 
> ==> Actually these may be in the wrong order - perhaps the release() method is 
> only called when the last thread with that fd open is killed...  The effect 
> seems to be the same, though.
> 
> 
> 
> In other words, the kernel is never being notified that the pid holding the 
> lock is dying, so it never releases the lock.  This is a consequence (I think) 
> of the fact that the client code opens the fd *only once*, and shares it 
> between pids, the locking code is strictly based around pids but relies on the 
> fd release() method for cleanup...
> 
> 
> 
> Partly the problem can be seen in this:
> 
> [EMAIL PROTECTED] root]# cat /proc/modules
> radeon111960   2
> 
> despite there being 3 (or 4) users of the module: X, child-1, child-2, parent.
> 
> Anyone have any ideas?

No idea, just a comment. This reminded me of the famous X hangs when
flightgear exits. Recently I read in some posts on the plib-users
mailing list that flightgear is multi-threaded, too. The situation is
somewhat different, though. There is only one context and AFAIK only one
thread uses OpenGL. But if both threads share the drm fd then the
release method may be called with the wrong pid (the one not holding the
lock) as well.

> 
> Keith
> 

Felix

   __\|/_____ ___ ___
__Tschüß___\_6 6_/___/__ \___/__ \___/___\___You can do anything,___
_Felix___\Ä/\ \_\ \_\ \__U___just not everything
  [EMAIL PROTECTED]>o<__/   \___/   \___/at the same time!


---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] module release method, threads, pids

2003-02-22 Thread Alan Cox
On Sat, 2003-02-22 at 22:38, Keith Whitwell wrote:
> Running into a problem when killing glthreads with Ctrl-C.  Normally this 
> would invoke the release() method and clean up buffers, locks etc. 
> Unfortunately this doesn't work so well with threads - the release method is 
> being called only once despite the 3 processes (threads) that are being 
> killed.  Unfortunately the drm module makes use of current->pid extensively, 
> so it really expects each thread to invoke a release() call.

This was discussed here a while ago, and fixed in the kernel DRM for DRM 4.2
at least. There are two methods that matter here

->flush is called each time close() occurs
->release is called on the final close and disposal of a file

So you get
open->open
close   ->flush, ->release

open->open
fork
close   ->flush
close   ->flush. ->release

Alan



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Dri-devel] module release method, threads, pids

2003-02-22 Thread Keith Whitwell
Running into a problem when killing glthreads with Ctrl-C.  Normally this 
would invoke the release() method and clean up buffers, locks etc. 
Unfortunately this doesn't work so well with threads - the release method is 
being called only once despite the 3 processes (threads) that are being 
killed.  Unfortunately the drm module makes use of current->pid extensively, 
so it really expects each thread to invoke a release() call.

As a result, killing glthreads this way almost always leaves X hung, trying to 
get the lock, waiting for a process which is already dead.

The basic scenario is like this:

parent creates 2 contexts (opens one? drm fd)

parent spawns 2 threads

threads render & grab lock

--> interrupt (while lock is held by child-1)

parent/child-2 dies -- release method called
-- pid check to release lock fails
child-1 - release method not called
-- lock is never released
==> Actually these may be in the wrong order - perhaps the release() method is 
only called when the last thread with that fd open is killed...  The effect 
seems to be the same, though.



In other words, the kernel is never being notified that the pid holding the 
lock is dying, so it never releases the lock.  This is a consequence (I think) 
of the fact that the client code opens the fd *only once*, and shares it 
between pids, the locking code is strictly based around pids but relies on the 
fd release() method for cleanup...



Partly the problem can be seen in this:

[EMAIL PROTECTED] root]# cat /proc/modules
radeon111960   2
despite there being 3 (or 4) users of the module: X, child-1, child-2, parent.

Anyone have any ideas?

Keith



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Dri-devel] Re: are viruses destructive? mady btqtd qo

2003-02-22 Thread Lillie Kauffman





  


   

  


   
  

  This Amazing Software Suite Includes: 
  


  
Norton
  AntiVirusÿ99 to Protect Your PC From
Viruses! 

  
  
Norton
  Utilitiesÿ99 to Optimize Your PC's
Performance!
   
  
  
Norton
  CleanSweepÿ99 to Clean Out Internet
Clutter! 

  
  
Norton
  Ghostÿ99 to Easily Back Up Your Valuable
Data!
  
  
  And more...
  ONLY
39.99

LIMITED
TIME OFFER, ORDER YOURS TODAY 


   
  


  
  
  We are strongly against sending unsolicited
emails to those who do not wish to receive our special mailings. You have
opted in to one or more of our affiliate sites requesting to be notified
of any special offers we may run from time to time. We also have attained
the services of an independent 3rd party to overlook list management and
removal services. This is NOT unsolicited email. If you do not wish to
receive further mailings, please CLICK HERE to be removed
from the list. Please accept our apologies if you have been sent this
email in error. We honor all removal requests.
 

 


z  pd mnqfr iihe cc
ztwpg
q omcqovvorzxj hnq
mzavtpf oqwczy kj
rilcdwi
hfk oy  mn krs fj x v

Re: [Dri-devel] Radeon 9000Pro hangs with current DRM

2003-02-22 Thread Leif Delgass
On 22 Feb 2003, Michel Dänzer wrote:

> On Sam, 2003-02-22 at 22:16, Leif Delgass wrote:
> > On 22 Feb 2003, Michel Dänzer wrote:
> > 
> > > On Sam, 2003-02-22 at 00:48, Alan Cox wrote: 
> > > 
> > > I do wonder if the register writes in RADEONSetCursorPosition() could
> > > interfere with the CP to cause FIFO overflows. Does anyone have an idea
> > > how to determine whether writes to certain registers go through the
> > > FIFO? I asked ATI devrel about this but didn't get a reply. :( The only
> > > indication that these might not is that I'd expect it to cause problems
> > > much more frequently if they did.
> > 
> > IIRC, at least on mach64, hardware cursor position updates don't go
> > through the draw engine FIFO 
> 
> Good, that makes a lot of sense of course.
> 
> > (any registers below dword offset 0x040 don't use the FIFO), 
> 
> Where did you find this information? Have you found anything similar
> about Radeons anywhere?

It's in the register reference and programmer's guide.  I don't have docs 
on Radeons, so I don't know if there is a similar convention there.
 
> > so locking isn't necessary.  However, we do lock the DRM when updating 
> > the cursor image, since it blits the image to the framebuffer through 
> > the host data FIFO. 
> 
> The radeon driver writes it to the framebuffer directly.

Actually, looking at it again, so does mach64 (I was thinking of an XAA
function).  However, the DDX does an XAA sync before writing the cursor
image to synchronize the framebuffer access.  Since we do the 3D/2D sync
in the XAA sync, I had to put a DRILock/Unlock around it.

-- 
Leif Delgass 
http://www.retinalburn.net



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] Radeon 9000Pro hangs with current DRM

2003-02-22 Thread Alan Cox
The cursor still moves therefore either

1. The cursor doesnt go via the FIFO
2. The FIFO is not full

..



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] Radeon 9000Pro hangs with current DRM

2003-02-22 Thread Michel Dänzer
On Sam, 2003-02-22 at 22:16, Leif Delgass wrote:
> On 22 Feb 2003, Michel Dänzer wrote:
> 
> > On Sam, 2003-02-22 at 00:48, Alan Cox wrote: 
> > 
> > I do wonder if the register writes in RADEONSetCursorPosition() could
> > interfere with the CP to cause FIFO overflows. Does anyone have an idea
> > how to determine whether writes to certain registers go through the
> > FIFO? I asked ATI devrel about this but didn't get a reply. :( The only
> > indication that these might not is that I'd expect it to cause problems
> > much more frequently if they did.
> 
> IIRC, at least on mach64, hardware cursor position updates don't go
> through the draw engine FIFO 

Good, that makes a lot of sense of course.

> (any registers below dword offset 0x040 don't use the FIFO), 

Where did you find this information? Have you found anything similar
about Radeons anywhere?

> so locking isn't necessary.  However, we do lock the DRM when updating 
> the cursor image, since it blits the image to the framebuffer through 
> the host data FIFO. 

The radeon driver writes it to the framebuffer directly.


-- 
Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
XFree86 and DRI project member   /  CS student, Free Software enthusiast



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] Radeon 9000Pro hangs with current DRM

2003-02-22 Thread Leif Delgass
On 22 Feb 2003, Michel Dänzer wrote:

> On Sam, 2003-02-22 at 00:48, Alan Cox wrote: 
> > I updated the radeon DRM to include the texture upload changes. My
> > radeon hang with flightgear now happens every two hours instead of
> > instantly.
> 
> Is that exactly every two hours? :)
> 
> By texture upload changes do you mean my radeon_cp_dispatch_texture()
> fix? If so, are you sure that makes the difference? I merely fixed it
> not to leave out parts of big textures. I'd rather expect the
> COMMIT_RING() change to make a difference.
> 
> > When it dies X is stuck, the mouse pointer works. 
> 
> Because it's SIGIO driven.
> 
> I do wonder if the register writes in RADEONSetCursorPosition() could
> interfere with the CP to cause FIFO overflows. Does anyone have an idea
> how to determine whether writes to certain registers go through the
> FIFO? I asked ATI devrel about this but didn't get a reply. :( The only
> indication that these might not is that I'd expect it to cause problems
> much more frequently if they did.

IIRC, at least on mach64, hardware cursor position updates don't go
through the draw engine FIFO (any registers below dword offset 0x040 
don't use the FIFO), so locking isn't necessary.  However, we do
lock the DRM when updating the cursor image, since it blits the image to
the framebuffer through the host data FIFO.  When I was first working on 
2D/3D sync, we did the sync on every EnterServer, which slowed things down 
considerably since the sync happened on every cursor position update.  Now 
we only do the sync for blits and XAA operations and I've never seen a 
lockup because of the hardware cursor.
 
> Anyway, Alan, can you try if disabling Silken mouse or even using SW
> cursor (make sure you have the fix for crashes with SW cursor and DRI
> though :) makes a difference?
> 
> > The 3D app is burning a lot of CPU and the system is otherwise running. 
> > At the point the 3D is killed (kill -9 etc) the box hangs solid
> 
> Classical chip crash or lockup. :\
> 
> 
> 

-- 
Leif Delgass 
http://www.retinalburn.net



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] S3TC (again)

2003-02-22 Thread Philip Armstrong
On Fri, Feb 21, 2003 at 03:27:21PM -0800, Ian Romanick wrote:
> Look at the ARB_texture_compression and EXT_texture_compression_s3tc
> specs again.  You can specify uncompressed textures and have the driver
> compress the AND you can specify compressed textures and have the driver
> decompress them (to read them back into the application).  For example,
> Quake3 can use the S3's vendor-specific extension (can't remember the
> name of it right now), but it does NOT have ANY textures pre-compressed.
>   It expects the driver to do the work.

If the hardware can't do S3TC, then the driver can simply not
advertise the availability of the extension, and if the application
expects the driver to compress the textures, then the driver can
either refuse or just pass the textures on uncompressed.

Clearly the driver can't implement the full API, but is there a legal
barrier to implementing the part that says "here, take these pre-
compressed textures and give them to the hardware" ?

> Can we add this to the FAQ, please?

The FAQ is editable by anyone isn't it?

Phil

-- 
http://www.kantaka.co.uk/ .oOo. public key: http://www.kantaka.co.uk/gpg.txt



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] remaining (reproducible) problems with 4.2.99.902on Radeon M7

2003-02-22 Thread Keith Whitwell

3. A good old segfault:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1026 (LWP 712)]
0x404dd042 in _swrast_InvalidateState ()
   from /usr/X11R6/lib/modules/dri/radeon_dri.so
(gdb) bt
#0  0x404dd042 in _swrast_InvalidateState ()
   from /usr/X11R6/lib/modules/dri/radeon_dri.so
#1  0x4058b6ac in radeonInvalidateState ()
   from /usr/X11R6/lib/modules/dri/radeon_dri.so
#2  0x404a6edd in _mesa_update_state ()
   from /usr/X11R6/lib/modules/dri/radeon_dri.so
#3  0x4045e0e0 in _mesa_Clear () from /usr/X11R6/lib/modules/dri/radeon_dri.so
#4  0x401132f5 in _ts_Clear () from /usr/X11R6/lib/libGL.so.1
#5  0x08049275 in draw_loop ()
#6  0x0804995a in thread_function ()
#7  0x40337fa5 in pthread_start_thread () from /lib/libpthread.so.0
#8  0x40337fed in pthread_start_thread_event () from /lib/libpthread.so.0
This occurs because you have modified the X event loop to destroy a context 
that *IS STILL IN USE* in another thread.  GL doesn't provide any guarantees 
about what will happen if you try to do this...

One way to achieve something like what you want would be to make ExitFlag an 
array, and destroy the context at the end of draw_loop.  I've attached 
something that does this.

This doesn't solve all of your problems, though - I'm still looking at them.

Keith

/* $Id: glthreads.c,v 1.1 2000/07/20 20:12:17 brianp Exp $ */

/* modified by [EMAIL PROTECTED] to destroy current window and context when
 * key pressed...
 */

/*
 * Copyright (C) 2000  Brian Paul   All Rights Reserved.
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */


/*
 * This program tests GLX thread safety.
 * Command line options:
 *  -n  Number of threads to create (default is 2)
 *  -display   Specify X display (default is :0.0)
 *
 * Brian Paul  20 July 2000
 */


#if defined(PTHREADS)   /* defined by Mesa on Linux and other platforms */

#include 
#include 
#include 
#include 
#include 
#include 


/*
 * Each window/thread/context:
 */
struct winthread {
   Display *Dpy;
   int Index;
   pthread_t Thread;
   Window Win;
   GLXContext Context;
   float Angle;
   int WinWidth, WinHeight;
   GLboolean NewSize;
   GLboolean ExitFlag;
};


#define MAX_WINTHREADS 100
static struct winthread WinThreads[MAX_WINTHREADS];
static int NumWinThreads = 0;



static void
Error(const char *msg)
{
   fprintf(stderr, "Error: %s\n", msg);
   exit(1);
}


/* draw a colored cube */
static void
draw_object(void)
{
   glPushMatrix();
   glScalef(0.75, 0.75, 0.75);

   glColor3f(1, 0, 0);
   glBegin(GL_POLYGON);
   glVertex3f(1, -1, -1);
   glVertex3f(1,  1, -1);
   glVertex3f(1,  1,  1);
   glVertex3f(1, -1,  1);
   glEnd();

   glColor3f(0, 1, 1);
   glBegin(GL_POLYGON);
   glVertex3f(-1, -1, -1);
   glVertex3f(-1,  1, -1);
   glVertex3f(-1,  1,  1);
   glVertex3f(-1, -1,  1);
   glEnd();

   glColor3f(0, 1, 0);
   glBegin(GL_POLYGON);
   glVertex3f(-1, 1, -1);
   glVertex3f( 1, 1, -1);
   glVertex3f( 1, 1,  1);
   glVertex3f(-1, 1,  1);
   glEnd();

   glColor3f(1, 0, 1);
   glBegin(GL_POLYGON);
   glVertex3f(-1, -1, -1);
   glVertex3f( 1, -1, -1);
   glVertex3f( 1, -1,  1);
   glVertex3f(-1, -1,  1);
   glEnd();

   glColor3f(0, 0, 1);
   glBegin(GL_POLYGON);
   glVertex3f(-1, -1, 1);
   glVertex3f( 1, -1, 1);
   glVertex3f( 1,  1, 1);
   glVertex3f(-1,  1, 1);
   glEnd();

   glColor3f(1, 1, 0);
   glBegin(GL_POLYGON);
   glVertex3f(-1, -1, -1);
   glVertex3f( 1, -1, -1);
   glVertex3f( 1,  1, -1);
   glVertex3f(-1,  1, -1);
   glEnd();
   glPopMatrix();
}


/* signal resize of given window */
static void
resize(struct winthread *wt, int w, int h)
{
   wt->NewSize = GL_TRUE;
   wt->WinWidth = w;
   wt->WinHeight = h;
}


/*
 * We have an instance of this for each thread.
 */
static void
draw_loop(struct winthread *wt)
{
   while (!wt->ExitFlag) {

  glXMakeCurrent(wt->Dpy, wt->Win, wt->Context);

  glEnable(GL_DEPTH_TEST);

  if (wt->NewSize) {
 GLfloat w = (float) wt->WinWidth / (float) wt->WinHeight;
 glV

[Dri-devel] Improve your Sex Appeal!

2003-02-22 Thread Lupe Godfrey



As Seen on NBC, CBS,
CNN and even Oprah!
 
The Health Discovery that Actually
Reverses Aging while Burning Fat,
without Dieting or Exercise!

This Proven Discovery has even been reported
on by the New England Journal of Medicine.

Forget Aging and Dieting Forever!

And it's Guaranteed!

Click Here to Learn How you can Receive a Full
Month's Supply Absolutely FREE!

Would you like to lose weight while you sleep?

No dieting!
No hunger pains!
No Cravings!
No strenuous exercise!

Change Your Life Forever!

1. Body Fat Loss..82% improvement.
2. Wrinkle Reduction.61% improvement.
3. Energy Level.84% improvement.
4. Muscle Strength88% improvement.
5. Sexual Potency.75% improvement.
6. Emotional Stability.67% improvement.
7. Memory.62% improvement.

Get Your FREE 1 Month Supply TODAY!



You are receiving this message as a member of the Opt-In
America List. To remove your email address please

click hereWe honor all remove requests.



a jqozm

Re: [Dri-devel] S3TC (again) -> FAQ

2003-02-22 Thread Smitty

> > OK, I don't exactly want to stir up this hornets nest *again*, but a
> > couple of things aren't entirely clear to me and I'd appreciate any
> > clarifications.
> > 
> > As I understand it, the situation is as follows:
> > 
> > The S3TC algorithm is patented and therefore no-one can distribute an
> > implementation of the algorithm without a licence from the patent
> > holders.
> > 
> > S3TC decompression must be implemented in the hardware (otherwise
> > what's the point), therefore hardware which uses S3TC can be assumed
> > to have a valid licence to use the code, otherwise the patent owners
> > would be down on the hardware manufacturers like the proverbial ton of
> > bricks.
> 
> Patent law is actually more complicated than that.  I'm not in a
> position to go into it, but it gets complicated when you have multiple
> components (i.e., software and hardware) working together to implement
> something.
> 
> > As far as I'm aware, the main users of S3TC are modern games with
> > their vast arrays of textures -- presumably such games come with the
> > textures precompressed, or are able to compress them and cache the
> > compressed textures themselves. Presumably again, the authors of the
> > games have paid for a licence to use the S3TC algorithm from the
> > patent holders.
> > 
> > Now, if an OpenGL application has a pile of textures already
> > compressed with the S3TC algorithm, then I don't understand why the
> > dri drivers can't simply offer the S3TC interfaces to the hardware,
> > pass the compressed textures to the hardware and let the hardware get
> > on with its licensed decompression of the textures as required.
> > Likewise, if the OpenGL application passes compressed textures to the
> > S3TC API then how it gets hold of the compressed textures in the first
> > place is it's own responsibility -- the OpenGL API just passes them
> > on.
> 
> Look at the ARB_texture_compression and EXT_texture_compression_s3tc
> specs again.  You can specify uncompressed textures and have the driver
> compress the AND you can specify compressed textures and have the driver
> decompress them (to read them back into the application).  For example,
> Quake3 can use the S3's vendor-specific extension (can't remember the
> name of it right now), but it does NOT have ANY textures pre-compressed.
>It expects the driver to do the work.
> 
> Can we add this to the FAQ, please?

Instructions at teh bottom of:
http://dri.sourceforge.net/help.phtml

Alternatively if you know how it works go straight there:
http://dri.sourceforge.net/faq/faq_add.phtml

No one appears to be abusing it so I'm happy to let it be open.

Liam

it depends


---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] Radeon 9000Pro hangs with current DRM

2003-02-22 Thread Michel Dänzer
On Sam, 2003-02-22 at 00:48, Alan Cox wrote: 
> I updated the radeon DRM to include the texture upload changes. My
> radeon hang with flightgear now happens every two hours instead of
> instantly.

Is that exactly every two hours? :)

By texture upload changes do you mean my radeon_cp_dispatch_texture()
fix? If so, are you sure that makes the difference? I merely fixed it
not to leave out parts of big textures. I'd rather expect the
COMMIT_RING() change to make a difference.

> When it dies X is stuck, the mouse pointer works. 

Because it's SIGIO driven.

I do wonder if the register writes in RADEONSetCursorPosition() could
interfere with the CP to cause FIFO overflows. Does anyone have an idea
how to determine whether writes to certain registers go through the
FIFO? I asked ATI devrel about this but didn't get a reply. :( The only
indication that these might not is that I'd expect it to cause problems
much more frequently if they did.

Anyway, Alan, can you try if disabling Silken mouse or even using SW
cursor (make sure you have the fix for crashes with SW cursor and DRI
though :) makes a difference?

> The 3D app is burning a lot of CPU and the system is otherwise running. 
> At the point the 3D is killed (kill -9 etc) the box hangs solid

Classical chip crash or lockup. :\


-- 
Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
XFree86 and DRI project member   /  CS student, Free Software enthusiast



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] Design draft of a new Configuration Infrastructure

2003-02-22 Thread Felix Kühling
On Sat, 22 Feb 2003 12:02:11 +
José Fonseca <[EMAIL PROTECTED]> wrote:

> On Fri, Feb 21, 2003 at 10:55:30PM +0100, Felix Kühling wrote:
> > Now we could make the command line tool (and the corresponding libGL
> > bits) a bit more sophisticated. With an X connection we can ask for
> > the driver name and configuration of any screen. That would enable a
> > graphical configuration tool to configure all screens, not just the
> > one it's running on. Without an X connection we can still get the
> > configuration of a specific driver as you explained above. That would
> > be mainly usefull for remote administration, where no local X
> > connection is available. José, is that what you meant with offline
> > mode?
> 
> Yes, no local X connection is actually a much better choice of words.
> 
> > I'll make the conclusions from this thread a new section in the next
> > version of the design document. To me it looks like we got a pretty
> > good picture what the command line tool will do. Any more comments on
> > that subject?
> 
> Just the comment that spite of the decision to not storying the location
> of the DRI drivers in the config file (for later use when there is no
> local X connect available), any console/GUI tool which wants to be able
> to function properly in those circunstances (and not depend on X being
> installed on /usr/X11R6/) can still do it on its own (by storing that
> information on its own configuration file), if its author decides that's
> really important. So there's no loss here.

My conclusion was that X has nothing to do with locating the drivers.
libGL always looks in $ProjectRoot/lib/modules/dri or in the path given
by LIBGL_DRIVERS_PATH. So the only additional information to store for
the case that there's no local X connection available would be the
driver name. That would actually be no problem with the current
configuration file format. A device section could have both, a screen
and a driver attribute.

One more advantage of having both attributes at the same time is that a
configuration GUI with a local X connection could detect a major change
in the hardware configuration.

I had given up on the idea of allowing remote graphical configuration.
But it doesn't seem to be such a big deal after all.

> 
> José Fonseca

Felix

   __\|/_____ ___ ___
__Tschüß___\_6 6_/___/__ \___/__ \___/___\___You can do anything,___
_Felix___\Ä/\ \_\ \_\ \__U___just not everything
  [EMAIL PROTECTED]>o<__/   \___/   \___/at the same time!


---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] Design draft of a new Configuration Infrastructure

2003-02-22 Thread José Fonseca
On Fri, Feb 21, 2003 at 10:55:30PM +0100, Felix Kühling wrote:
> Now we could make the command line tool (and the corresponding libGL
> bits) a bit more sophisticated. With an X connection we can ask for
> the driver name and configuration of any screen. That would enable a
> graphical configuration tool to configure all screens, not just the
> one it's running on. Without an X connection we can still get the
> configuration of a specific driver as you explained above. That would
> be mainly usefull for remote administration, where no local X
> connection is available. José, is that what you meant with offline
> mode?

Yes, no local X connection is actually a much better choice of words.

> I'll make the conclusions from this thread a new section in the next
> version of the design document. To me it looks like we got a pretty
> good picture what the command line tool will do. Any more comments on
> that subject?

Just the comment that spite of the decision to not storying the location
of the DRI drivers in the config file (for later use when there is no
local X connect available), any console/GUI tool which wants to be able
to function properly in those circunstances (and not depend on X being
installed on /usr/X11R6/) can still do it on its own (by storing that
information on its own configuration file), if its author decides that's
really important. So there's no loss here.

José Fonseca
__
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com


---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Dri-devel] question on kernel (dri)context switching

2003-02-22 Thread Philip Brown
I'm wading through DRM context switches at the kernel level now.
I've gotten lost a bit -- I'm missing a chunk o stuff at the
(*) point.



User wants a "context switch" to happen.
Calls ioctl(DRM_IOCTL_SWITCH_CTX)

 Kernel goes into DRM(context_switch)
  Sets an internal "current context" Variable
  Usually writes out "C oldnum newnum" to user fd
 (which has the user sideeffect of triggering SIGIO)


  (*)Kernel  (goes to sleep? "wakes something up"???)
  until user does another ioctl, this time with ioctl(DRM_IOCTL_NEW_CTX)
[what is dev->context_wait for?]


  [the second ioctl triggers DRM(context_switch_complete), which does
   something to dev->context_wait  again]


I dont get why there is a need for both DRM_IOCTL_SWITCH_CTX and
DRM_IOCTL_NEW_CTX

And what does DRM_FLAG_NOCTX really signify?



---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Dri-devel] Married and Lonely people are hoping for someone to save them 4244DHVY4-686mpVQ1088ADW-23

2003-02-22 Thread clintonlioirdhkyj
9519NYbb9-863WYEq0387WkeU3-100DNRT2109huhm3-67l43





8865susD2-466qbkx8828CsDF7-404vOdj5866JOrX2-863cbhl47


Re: [Dri-devel] S3TC (again)

2003-02-22 Thread Sven Luther
On Fri, Feb 21, 2003 at 03:27:21PM -0800, Ian Romanick wrote:
> >Now, if an OpenGL application has a pile of textures already
> >compressed with the S3TC algorithm, then I don't understand why the
> >dri drivers can't simply offer the S3TC interfaces to the hardware,
> >pass the compressed textures to the hardware and let the hardware get
> >on with its licensed decompression of the textures as required.
> >Likewise, if the OpenGL application passes compressed textures to the
> >S3TC API then how it gets hold of the compressed textures in the first
> >place is it's own responsibility -- the OpenGL API just passes them
> >on.
> 
> Look at the ARB_texture_compression and EXT_texture_compression_s3tc
> specs again.  You can specify uncompressed textures and have the driver
> compress the AND you can specify compressed textures and have the driver
> decompress them (to read them back into the application).  For example,
> Quake3 can use the S3's vendor-specific extension (can't remember the
> name of it right now), but it does NOT have ANY textures pre-compressed.
>   It expects the driver to do the work.

Is there not a way to work around this ?

If the hardware doesn't support s3tc, then the driver simply don't
advertize the that it can handle s3tc textures, so you would get out of
the need to decompress the textures in the driver. On the other hand, if
it is not possible to tell the app that you don't know how to compress
textures, and are asked for it, then you just send the texture
uncompressed or something such.

Ideally, there would be a way to tell the apps that you can receive and
use s3tc compressed textures, but not uncompress them yourself.

Friendly,

Sven Luther


---
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Dri-devel] Rates have never been lower 1446Gsml-8

2003-02-22 Thread youngnickyubdc
Hey


  
  

  


  

Your privacy is very important to us, and we only send out 
offers to those who have registered via a partner site of ours. If you do not 
wish to receive special offers from our affiliates in the future, you may delete 
your email from our list at remove. 
We apologize for any inconvenience. 



uu3
9319lkRb1-657GQbW7305OEpQ3-694RPIN9231yHaX6-595l44