This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: DDraw Blt vs BltFast


>
> On Mon, 11 Mar 2002, Harold Hunt wrote:
>
> > Alexander,
> >
> > Because the following article:
> >
> >
> http://msdn.microsoft.com/library/default.asp?url=
> /library/en-us/wcegmm/htm/
> > ddover_51.asp
> >
> > states that:
> >
> > "BltFast cannot be used on surfaces that have
> an attached clipper."
>
> Ok.
>
> > We use a clipper to account for any other
> Windows window overlaying our
> > window, which would cause a portion of our blit
> destiation to be
> > undrawable... which would mean that we wouldn't
> be allowed to use BltFast.
> >
> > Now... could we use BltFast in DirectDraw
> fullscreen modes?
>
> Not needed. The blitting does not slow down the
> server significantly. I
> think the cygwin socket layer slow much more.

Do you have seen the lmbench results on the cygwin list
http://sources.redhat.com/ml/cygwin/2002-01/msg01719.html
This confirm your statement.

*Local* Communication bandwidths in MB/s - bigger is better
-----------------------------------------------------------
Host                OS  Pipe AF    TCP  File   Mmap  Bcopy
Bcopy  Mem   Mem
                             UNIX      reread reread (libc)
(hand) read write
--------- ------------- ---- ---- ---- ------ ------ ------ 
------ ---- -----
BRAMSCHE  CYGWIN_NT-5.0 93.9 17.6 40.7  335.0  477.7  145.0
134.0 477. 195.9
BRAMSCHE   Linux 2.2.18 343. 235. 64.4  177.7  238.5   71.5
61.4 238.  75.3

I have done some analysing work with this and with the
cygwin daemon (cygserver transport classes) there may be a
way in the future to implement unix domain sockets with
named pipes which speed up unix domain sockets up to 250
MB/s, as I have measured with a quick an dirty sample
implementation. (Unfortunally currently I have no time to
work on)

Another way seems to me in using local connection for the
xtrans layer, but there are two ioctl functions missing in
cygwin I_FDINSERT and I_RECVFD.

I_FDINSERT
Creates a message from specified buffer(s), adds information
about another STREAM, and sends the message downstream.

I_RECVFD
Retrieves the reference to an open file description from a
message written to a STREAMS-based pipe using the I_SENDFD
command, and allocates a new file descriptor in the calling
process that refers to this open file description.

In any case there is some work to do.

Regards
Ralf



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]