Mail Archives: djgpp/1998/03/23/19:07:49
--------------43519FDBD7F66C4E5D38D5AA
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Shawn Hargreaves wrote:
> I'm in the process of writing a VBE/AF (the SciTech hardware
> accelerator API) driver for Allegro, which had already managed
> to roughly double the speed of the demo game when running in
> page flipping mode on my Matrox card. At present this supports
> a range of hardware drawing functions (area fills and blits),
> but only when they are operating entirely within the video
> memory. VBE/AF also provides the ability to use a bus mastering
> transfer mode on some high end cards, which in theory has the
> potential to speed up blitting from system memory to the screen,
> but I'm unsure if/how I will be able to use this.
>
> To initiate a bus master copy, I need to program the graphics
> controller with the physical memory address of the source data,
> but as far as I can see there is no way for me obtain this
> information! I need some way to allocate a block of contiguous
> physical memory locations, but unless I've missed something,
> there are no DPMI functions to do this (using conventional
> memory will break under Windows). Before I totally give up on
> this idea, does anyone know a way that I could obtain such
> a memory buffer? Even if it is only possible in a few specific
> environments, the potential benefits of this are so great that
> I really want to make it work if that is at all possible...
>
Are you sure there's no function? I remember of one that do
"allocate unmapped memory" or something like that.
You can allocate memory and then lock it so it stay in physical
memory but i don't know if you'll find a function (of DPMI) to give you
this physical adress. :|
> Shawn Hargreaves.
--
^ ^ ^
| | |
+-+-+ Fabrice ILPONSE
| email: fabrice AT asim DOT lip6 DOT fr
|
|
-
--------------43519FDBD7F66C4E5D38D5AA
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
<HTML>
Shawn Hargreaves wrote:
<BLOCKQUOTE TYPE=CITE>I'm in the process of writing a VBE/AF (the SciTech
hardware
<BR>accelerator API) driver for Allegro, which had already managed
<BR>to roughly double the speed of the demo game when running in
<BR>page flipping mode on my Matrox card. At present this supports
<BR>a range of hardware drawing functions (area fills and blits),
<BR>but only when they are operating entirely within the video
<BR>memory. VBE/AF also provides the ability to use a bus mastering
<BR>transfer mode on some high end cards, which in theory has the
<BR>potential to speed up blitting from system memory to the screen,
<BR>but I'm unsure if/how I will be able to use this.
<P>To initiate a bus master copy, I need to program the graphics
<BR>controller with the physical memory address of the source data,
<BR>but as far as I can see there is no way for me obtain this
<BR>information! I need some way to allocate a block of contiguous
<BR>physical memory locations, but unless I've missed something,
<BR>there are no DPMI functions to do this (using conventional
<BR>memory will break under Windows). Before I totally give up on
<BR>this idea, does anyone know a way that I could obtain such
<BR>a memory buffer? Even if it is only possible in a few specific
<BR>environments, the potential benefits of this are so great that
<BR>I really want to make it work if that is at all possible...
<BR> </BLOCKQUOTE>
Are you sure there's no function?
I remember of one that do "allocate unmapped memory" or something like
that.
<P> You can allocate memory and then lock it so it stay
in physical memory but i don't know if you'll find a function (of DPMI)
to give you this physical adress. :|
<BLOCKQUOTE TYPE=CITE>
<P> Shawn Hargreaves.</BLOCKQUOTE>
<PRE>--
^ ^ ^
| | |
+-+-+ Fabrice ILPONSE
| email: fabrice AT asim DOT lip6 DOT fr
|
|
-</PRE>
</HTML>
--------------43519FDBD7F66C4E5D38D5AA--
- Raw text -