Re: DRM and latency..

2004-05-20 Thread Keith Whitwell
Dave Airlie wrote:
It has been pointed out to me by Andrew and  Fernando Pablo Lopez-Lezcano
that we do a lot of sleeping in code that probably should reschedule
rather than sleep,radeon_do_wait_for_idle being a prime example, this has
a DRM_UDELAY(1), this messes up audio latencys,
Now I'm not sure that wholesale replacing these with a conditional
schedule is correct, but in most cases it looks like there should be no
issues doing this, theses functions are all usually called from a process
context,
My main worry is what to do on BSD about this?, should I just define a
DRM_SCHED( delay ) and on Linux do a schedule and do a delay on BSD until
someone steps up to figure it out?
That's been the traditional approach - filp maps to pid on BSD, or at least it 
did initially.  Doing the same thing with delays should be fine.

What you will notice though is a performance cliff when you start to hit the 
delay occasionally.  Or at least that was the case on early 2.4 when I looked 
at this last.

Keith

---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Assert in r200 driver

2004-05-20 Thread Roland Scheidegger
Jon Smirl wrote:
Any ideas about what this is? It is from the Redhat -2 xorg rpm's. All of these
programs ran fine on SW mesa and R128 driver.
[EMAIL PROTECTED] cairogears]$ ./cairogears  -glx COMP
cairogears: r200_cmdbuf.c:295: r200EmitBlit: Assertion `(src_offset  1023) == 0
' failed.
Aborted

[EMAIL PROTECTED] cairogears]$ ./cairogears  -glx TEXT2
cairogears: r200_cmdbuf.c:295: r200EmitBlit: Assertion `(src_offset  1023) == 0
' failed.
Aborted
[EMAIL PROTECTED] cairogears]$ ./cairogears  -glx SHADOW
cairogears: r200_cmdbuf.c:295: r200EmitBlit: Assertion `(src_offset  1023) == 0
' failed.
Aborted
Does this use texture rectangle? There were some bugs in the r200 driver 
which caused such assertion failures. They should be fixed for ages, 
though the fixes might not be in XFree 4.4 / XOrg 6.7, if this is what 
redhat ships. 3D driver in these versions is ancient.
Otherwise, a back trace might be helpful.

Roland

---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: intel i865 chipset docs...

2004-05-20 Thread Roland Scheidegger
Dave Airlie wrote:
Hi,
I've just gotten an i865 system are there any docs out there for
programming the 3d end of this? Intels site for that chipset has no
programmers reference beyond the datasheet which doesn't say muc about 3D
stuff..
Are these docs available non-NDA?
Doesn't this work with the i830 driver? AFAIK i830 and i845G both use 
the same graphic core (intel extreme graphics). i855G/i852G/i865G use 
intel extreme graphics 2, which afaik is exactly the same, except it's 
clocked slightly higher (266Mhz vs. 200Mhz). At least some people have 
docs... http://www.xfree86.org/~dawes/845driver.html though maybe under NDA.
Rumours say though, the Extreme Graphics 3 (rumoured to be renamed to 
Intel Graphics Media Accelerator 900) on i915G (Grantsdale) will be 
different (rumoured to have Pixel Shader 2.0 support for instance) - 
better ask about docs for that ;-).

Roland
---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Mode setting API's

2004-05-20 Thread Ely Levy
Hey,
It's a good question, my impression was that they are not aiming to the
opensource market and only using it as a starting point.
They had discussion if you release the SDK in free source or not and
although they decided that they would still no one say they still would
next time.
Usually when I say that people tell me that opengl is also controled by
companies, the simple diffrance I see is the fact that opengl does have
something to do with hardware and like it or not we need hardware
companies support, but AFAICS this is not the case with openML.
another thing I find weird is the lack of responds from the developers to
the forum they host, and the fact they complitly ignored existing
techonologies like openAL.

I'm not sure it's a good idea to count on them,
I hope the open standard community would release a better more community
aware standard

Ely Levy
System group
Hebrew University
Jerusalem Israel



On Mon, 17 May 2004, Jon Smirl wrote:

 I'm looking at the OpenML spec and it covers the areas that we have been
 discussing plus a lot more. But the Khronos Group doesn't appear to be very Open
 Source friendly.  It seems that I have to apply for membership and return signed
 documents to get a Linux SDK.  But some of their other projects are hosted at
 Sourceforge.  What's their intention, are they Open Source or not?

 --- Keith Whitwell [EMAIL PROTECTED] wrote:
  As I've said, I don't have a deep grasp of the requirements of a putative
  future mode-setting API, but in the course of other reading I came across
  MLdc, which is a part of the OpenML environment.  This is a library API which
  seems to give comprehensive control of mode-setting to an application, but
  also seems to provide a reasonably easy way to set simple modes.  It also has
  an extension mechanism.
 
  It's currently dependent on X to a tiny degree, so there would be some work in
 
  adapting it to become stand-alone, and it probably has no conception of
  things like virtual terminals, etc.
 
  Anyway, the OpenML spec is here:
 
  http://www.khronos.org/openml/spec.html
 
  MLdc is a component of the larger environment.
 
  Keith
 
 
 
  ---
  This SF.Net email is sponsored by: SourceForge.net Broadband
  Sign-up now for SourceForge Broadband and get the fastest
  6.0/768 connection for only $19.95/mo for the first 3 months!
  http://ads.osdn.com/?ad_id=2562alloc_id=6184op=click
  --
  ___
  Dri-devel mailing list
  [EMAIL PROTECTED]
  https://lists.sourceforge.net/lists/listinfo/dri-devel


 =
 Jon Smirl
 [EMAIL PROTECTED]




 __
 Do you Yahoo!?
 SBC Yahoo! - Internet access at a great low price.
 http://promo.yahoo.com/sbc/

 ___
 xserver mailing list
 [EMAIL PROTECTED]
 http://freedesktop.org/mailman/listinfo/xserver



---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] Re: [Dri-devel] Memory management of AGP and VRAM

2004-05-20 Thread Vladimir Dergachev
1. Add a device independent version.  Device independent code could be 
written that would test the version number the same way device dependent code 
does today.  The drawback is that in order to advertise version X.N 
functionality, you also have to adverteise version [1.1, 1.N-1] 
functionality.  Some hardware / drivers may not want to / be able to do that.

2. Add an extension query ioctl.  Give each piece of functionality (i.e., 
all the related vblank functions) a unique number.  Drivers would make a 
query like, Is extension 5 supported?  If that ioctl returns true, then the 
driver could use that functionality.  The disadvantage of this method is that 
it increases the number of ioctl calls that need to be made.  Since the set 
of supported extensions can be tracked in the DRM with a bit string, the 
additional code size should be trivial.

Thoughts?
I don't think this needs to be that complex. We only need a few working 
functions in the kernel:

  * identification (In particular unique identifier to pass via X to apps
so they can find the head again)
  * event reporting (i.e. IRQs and anything else that is relevant)
  * mode setting
  * memory management
  * bitblt
Everything else is best done as device-specific with the true API 
belonging in user-space.

Comments ?
best
  Vladimir Dergachev


---
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562alloc_id=6184op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] Re: [Dri-devel] Memory management of AGP and VRAM

2004-05-20 Thread Keith Whitwell

I don't think this needs to be that complex. We only need a few working 
functions in the kernel:

  * identification (In particular unique identifier to pass via X to apps
so they can find the head again)
  * event reporting (i.e. IRQs and anything else that is relevant)
  * mode setting
  * memory management
  * bitblt
Everything else is best done as device-specific with the true API 
belonging in user-space.

Comments ?
Just to say that bitblt covers a lot of ground; ie. there's lots of varieties 
of blits with quite a few parameters - are you talking about just a simple 
copy within a single framebuffer, or can source and destination have different 
pitches?  what about different pixel formats?  what about fill-blits? etc.

And secondly, that an ioctl per blit probably isn't a useful interface if 
you're trying to do a lot of small blits, like I guess drawing text.  So if 
you wanted this to be maximally useful, some way of saying 'do these n blits' 
would make sense.

And what about cards with no 2d engine?
Keith

---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: DRM and latency..

2004-05-20 Thread Joe O


On Thu, 20 May 2004, Keith Whitwell wrote:

 Dave Airlie wrote:
  It has been pointed out to me by Andrew and  Fernando Pablo Lopez-Lezcano
  that we do a lot of sleeping in code that probably should reschedule
  rather than sleep,radeon_do_wait_for_idle being a prime example, this has
  a DRM_UDELAY(1), this messes up audio latencys,
 
  Now I'm not sure that wholesale replacing these with a conditional
  schedule is correct, but in most cases it looks like there should be no
  issues doing this, theses functions are all usually called from a process
  context,
 
  My main worry is what to do on BSD about this?, should I just define a
  DRM_SCHED( delay ) and on Linux do a schedule and do a delay on BSD until
  someone steps up to figure it out?

 That's been the traditional approach - filp maps to pid on BSD, or at least it
 did initially.  Doing the same thing with delays should be fine.

 What you will notice though is a performance cliff when you start to hit the
 delay occasionally.  Or at least that was the case on early 2.4 when I looked
 at this last.

 Keith


FreeBSD's DRM used to define DRM_DELAY as a macro around a wakeup/tsleep
pair (almost the equivalent of schedule()).  This did result in some
fairly bad stuttering on at least the G400 that using the simple delay
loop (UDELAY) fixed (the wakeup/tsleep also avoided some lockups that the
linux version of that driver had at times, but the stuttering made
many interactive apps fairly useless).

This was with FreeBSD-4.1 to maybe FreeBSD-4.4.

FreeBSD-5.x may have some better facilities for scheduling small delays
in device drivers that are waiting for hardware to return and for quickly
scheduling run time for a user process that is blocking on that device
driver.  But that's not something I know about first hand.


---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] Re: [Dri-devel] Memory management of AGP and VRAM

2004-05-20 Thread Holger Waechtler
Keith Whitwell wrote:

I don't think this needs to be that complex. We only need a few 
working functions in the kernel:

  * identification (In particular unique identifier to pass via X to apps
so they can find the head again)
  * event reporting (i.e. IRQs and anything else that is relevant)
  * mode setting
  * memory management
  * bitblt
Everything else is best done as device-specific with the true API 
belonging in user-space.

Comments ?

Just to say that bitblt covers a lot of ground; ie. there's lots of 
varieties of blits with quite a few parameters - are you talking about 
just a simple copy within a single framebuffer, or can source and 
destination have different pitches?  what about different pixel 
formats?  what about fill-blits? etc.

And secondly, that an ioctl per blit probably isn't a useful interface 
if you're trying to do a lot of small blits, like I guess drawing text.  
So if you wanted this to be maximally useful, some way of saying 'do 
these n blits' would make sense.

And what about cards with no 2d engine?
A command buffer interface (either mmap()'d buffers or buffers copied 
using standardized ioctls) with a common command set might be a general 
approach working on all architectures -- not all card drivers would need 
to implement all command opcodes, a capability ioctl can return a 
bitfield of supported opcodes.

The command buffers might then get verified and executed by the DRM 
drivers - on the userspace side you would only need to implement a few 
pretty generic drivers and the fallback code.

The verification code can probably get shared for most or all cards.
Holger
---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] Re: [Dri-devel] Memory management of AGP and VRAM

2004-05-20 Thread Keith Whitwell
Holger Waechtler wrote:
Keith Whitwell wrote:

I don't think this needs to be that complex. We only need a few 
working functions in the kernel:

  * identification (In particular unique identifier to pass via X to 
apps
so they can find the head again)
  * event reporting (i.e. IRQs and anything else that is relevant)
  * mode setting
  * memory management
  * bitblt

Everything else is best done as device-specific with the true API 
belonging in user-space.

Comments ?

Just to say that bitblt covers a lot of ground; ie. there's lots of 
varieties of blits with quite a few parameters - are you talking about 
just a simple copy within a single framebuffer, or can source and 
destination have different pitches?  what about different pixel 
formats?  what about fill-blits? etc.

And secondly, that an ioctl per blit probably isn't a useful interface 
if you're trying to do a lot of small blits, like I guess drawing 
text.  So if you wanted this to be maximally useful, some way of 
saying 'do these n blits' would make sense.

And what about cards with no 2d engine?

A command buffer interface (either mmap()'d buffers or buffers copied 
using standardized ioctls) with a common command set might be a general 
approach working on all architectures -- not all card drivers would need 
to implement all command opcodes, a capability ioctl can return a 
bitfield of supported opcodes.
Maybe we could use the X11 protocol
(runs away  hides)
Keith

---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Americas Army 2.0 color problem with radeon

2004-05-20 Thread Louis Garcia
Playing AA2 on my FC2 box with a radeon 7500 I noticed that the skin
color on people is way to light. Everything else looks normal. Anyone
have suggestions?

--Thanks


X.org-X11-6.7.0
kernel-2.4.5




---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] Re: [Dri-devel] Memory management of AGP and VRAM

2004-05-20 Thread Vladimir Dergachev
Everything else is best done as device-specific with the true API 
belonging in user-space.

Comments ?
Just to say that bitblt covers a lot of ground; ie. there's lots of varieties 
of blits with quite a few parameters - are you talking about just a simple 
copy within a single framebuffer, or can source and destination have 
different pitches?  what about different pixel formats?  what about 
fill-blits? etc.

And secondly, that an ioctl per blit probably isn't a useful interface if 
you're trying to do a lot of small blits, like I guess drawing text.  So if 
you wanted this to be maximally useful, some way of saying 'do these n blits' 
would make sense.
You are quite right :) I was thinking that we need as much bitblt as one 
would need to implement a scrolling console: i.e. move areas within 
framebuffer and use bitmapped fonts. I think that this can be accomplished 
with an easy API.

For example, what about separating it into two parts:
1) BITBLT ioctl:
 /* easy to check against actualy physical boundaries
to prevent lockups, not virtual partition via memory manager */
typedef struct {
long format;  /* format key */
long offset;  /* location with framebuffer */
long width;
long height;
long pitch;
} SURFACE;
typedef struct {
SURFACE dest;
SURFACE source;
} BLIT;
typedef struct {
long n_items;
BLIT item[1];  /* expanded as needed to allocate n items */
} BITBLT_ARG;
framebuffer-bitblt(FRAMEBUFFER *, (*BITBLT_ARG));   /* in-kernel interface */
ioctl(fd, BITBLT, (BITBLT_ARG *));  /* user-space interface */
2) Memory transfer ioctl: (for exchanging data with framebuffer)
typedef struct {
int direction;/* upload or download */
void *mem_area;
SURFACE framebuffer_surface;
SURFACE memory_surface;
} TRANSFER;
typedef struct {
long n_items;
TRANSFER item[1];  /* expand as needed for n items */
} TRANSFER_ARG;
framebuffer-transfer(FRAMEBUFFER *,TRANSFER_ARG *); /* in-kernel interface */
ioctl(fd, TRANSFER, (TRANSFER_ARG *));   /* user-space interface */

And what about cards with no 2d engine?
VESA framebuffer (and similar) can use plain memcpy.
3d accelerators without direct access to framebuffer would have some way 
of transferring memory to the framebuffer and back as well as blits.

Truly weird hardware would require ingenuity - as appropriate.
Comments ?
  best
  Vladimir Dergachev
Keith

---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: intel i865 chipset docs...

2004-05-20 Thread Dave Airlie

 Doesn't this work with the i830 driver? AFAIK i830 and i845G both use the same
 graphic core (intel extreme graphics). i855G/i852G/i865G use intel extreme
 graphics 2, which afaik is exactly the same, except it's clocked slightly
 higher (266Mhz vs. 200Mhz). At least some people have docs...

yup but I'm seeing some bugs, and I usually fell more comfortable sitting
on a pile of docs :-), I'll get around to some proper debugging soon, just
need time and time :-)

Dave.

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



---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 652] New: dri/xc has an empty lib/Xau

2004-05-20 Thread bugzilla-daemon
http://pdx.freedesktop.org/cgi-bin/bugzilla/show_bug.cgi?id=652

   Summary: dri/xc has an empty lib/Xau
   Product: DRI
   Version: DRI CVS
  Platform: All
   URL: http://freedesktop.org/cgi-
bin/viewcvs.cgi/dri/xc/xc/lib/Xau/
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: General
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


As a result we implicitly depend on /usr/X11R6/lib/libXau.a existing at
compile-time.

Solutions:
- pull in lib/Xau from upstream, patch it back into the build.
- ignore it until we switch to building straight from Mesa.

Reported by shadows on #dri, while attempting to make an ebuild of current CVS.
 The external dependency triggers a sandbox violation.



--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.


---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] Re: [Dri-devel] Memory management of AGP and VRAM

2004-05-20 Thread Vladimir Dergachev
A command buffer interface (either mmap()'d buffers or buffers copied 
using standardized ioctls) with a common command set might be a general 
approach working on all architectures -- not all card drivers would need 
to implement all command opcodes, a capability ioctl can return a bitfield 
of supported opcodes.
Maybe we could use the X11 protocol
Well, X11 protocol was designed rather well.
We can simplify the matters quite a bit by requiring that writes to the fd
always send N whole packets (and don't break on per-packet boundaries).
On the other hand we would probably want to modify the protocol at least 
in the following way:

   1) take into account modern hardware.. no short width anymore,
  more pixel formats.
   2) only require parts essential for console implementation - everything
  else could be passed back to user-space daemon. (Note that if
  user-space daemon is not present this would mean that things like
  line-drawing packets would fail..)
   3) the framebuffer would only emit IRQ and completion events.
1) implies that we are not going to be binary compatible with usual X11 
protocol, so we are implementing a new protocol nevertheless which means 
this whole point rather academic: if one designs a new protocol there is 
no reason not to take into account design of X11.

best
  Vladimir Dergachev
(runs away  hides)
Keith

---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. Take 
an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel