1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

VGA memory

Discussion in 'Open Forum' started by Rex Clark, Aug 20, 2008.

  1. Rex Clark

    Joined:
    May 30, 2008
    Messages:
    57
    Likes Received:
    0
    Is there away to map "on board VGA memory" into the systems memory pool
    Example say VGA card has 512mb and your not using a GPU/memory intensive app
    "GAME/PHOTO EDITING" etc
    and assuming 32MB would be adequate for general everyday window GUI usage
    but when needed all VGA memory is available to the GPU
     
  2. Steve Fabian

    Joined:
    May 20, 2008
    Messages:
    3,520
    Likes Received:
    4
    Rex Clark wrote:
    | Is there away to map "on board VGA memory" into the systems memory
    | pool Example say VGA card has 512mb and your not using a GPU/memory
    | intensive app "GAME/PHOTO EDITING" etc
    | and assuming 32MB would be adequate for general everyday window GUI
    | usage but when needed all VGA memory is available to the GPU

    I seriously doubt it is possible to map memory on an external device, e.g.,
    a video card in a PCI or even in an AGP slot, into the main system memory.
    The hardware access mechanisms are different.

    OTOH, if your video memory is actually a dedicated portion of your main
    memory, as is the case with most modern systems with integrated, "on board"
    (i.e., on the motherboard) peripherals, the issue is different. In fact most
    systems nowadays are sold using the deceptive trade practice of explicitly
    listing both the whole memory and the video memory on the "fact summary"
    without disclosing that they are not cumulative. In such a system it may be
    possible to provide a different split of the main memory, but it would be
    dependent on the specific motherboard, and most likely the BIOS.
    --
    Steve
     
  3. logic

    Joined:
    May 30, 2008
    Messages:
    42
    Likes Received:
    0
    From: Steve Fábián
    Sent: Wednesday, August 20, 2008 6:42 AM
    Subject: RE: [Open Forum-t-404] VGA memory

    e.g.,

    Actually, it is my understanding that precisely this is possible, and it is
    in fact how video memory is typically accessed. Part of the memory
    management system -- I'm not sure if it's within the CPU or on the
    motherboard but I suspect the latter -- can be programmed to redirect
    accesses to specific memory addresses to hardware devices. It is also used
    for network card buffer transfers and some kinds of sound cards that do
    accelerated multichannel mixing.

    Back in the day, I used to code fun little graphical things for DOS (mostly
    in QuickBASIC :-), and the video framebuffer, at least when the entire thing
    fit into a single segment (as with video mode 0x13, 320x200 8bpp), was
    directly accessible at memory address 0x000A0000 (segment 0xA000). In that
    model, only 64 KB of the memory on the video card could be exposed at once;
    which 64 KB was determined by the video card. Typically, it would provide an
    interrupt call for changing which "bank" or "plane" of memory (depending on
    the video mode) was visible. Note that the physical memory for that address
    did exist, it was simply inaccessible as long as the video memory mapping
    was in place. Everything from 640 KB up (which is where 0x000A0000 starts)
    was called the "high memory area" and was mapped to various devices,
    including the CMOS EEPROM memory. (Technically speaking, the video card got
    128 KB of mapped space; monochrome text adapters put their text framebuffer
    at 0x000B0000 and colour adapters put text information at 0x000B8000. I
    honestly don't know why it wasn't possible, for cards that had 128 KB or
    more of memory on them, to have the entire 128 KB range from 0x000A0000 to
    0x000BFFFF mapped and usable, but that did not seem to be the case.)

    Nowadays, a 64KB window would be pretty much useless, but I suspect the "AGP
    window" in most BIOSes is a very similar concept -- a region in the memory
    address space dozens (or hundreds?) of megabytes long that directly maps
    across the AGP bus to the video card's RAM. I could be wrong, though, as I
    haven't read up on it.

    I remember discussions back in the day about using video memory to store
    things. Remember, DOS was very constrained -- 16-bit real mode gave you
    about 450 KB of memory to work with with the OS loaded. Typically, VRAM is
    extremely fast for things running on the video card, but significantly
    slower than system memory for regular usage because of having to cross over
    a generally narrower and slower bus. Though it probably doesn't apply
    nowadays, when I was playing with such things, the VRAM in question would be
    used pretty much exclusively for the framebuffer, and would get locked
    temporarily for each scan of the screen. Obviously the video card's DAC gets
    top priority to the memory, so if you were using it for something else, your
    code would often be made to wait until the video chip hit the end of the
    current row being sent to the CRT. :-)

    In any event, even though VRAM *is* mappable to memory address ranges, there
    is no general framework within Windows for doing so that allows the memory
    to be used in the same way as system memory. An application wanting to use
    VRAM for additional storage would have to be specially written to support
    it.

    Jonathan Gilbert
     
  4. Rex Clark

    Joined:
    May 30, 2008
    Messages:
    57
    Likes Received:
    0
    http://gentoo-wiki.com/TIP_Use_memory_on_video_card_as_swap
    Looks like its possible with *nix os types



    | Rex Clark wrote:
    || Is there away to map "on board VGA memory" into the systems memory
    || pool Example say VGA card has 512mb and your not using a GPU/memory
    || intensive app "GAME/PHOTO EDITING" etc
    || and assuming 32MB would be adequate for general everyday window GUI
    || usage but when needed all VGA memory is available to the GPU
    |
    | I seriously doubt it is possible to map memory on an external device,
    e.g.,
    | a video card in a PCI or even in an AGP slot, into the main system memory.
    | The hardware access mechanisms are different.
    |
    | OTOH, if your video memory is actually a dedicated portion of your main
    | memory, as is the case with most modern systems with integrated, "on
    board"
    | (i.e., on the motherboard) peripherals, the issue is different. In fact
    most
    | systems nowadays are sold using the deceptive trade practice of explicitly
    | listing both the whole memory and the video memory on the "fact summary"
    | without disclosing that they are not cumulative. In such a system it may
    be
    | possible to provide a different split of the main memory, but it would be
    | dependent on the specific motherboard, and most likely the BIOS.
    | --
    | Steve
     
  5. DMcCunney

    Joined:
    Jun 7, 2008
    Messages:
    96
    Likes Received:
    3
    On Wed, Aug 20, 2008 at 10:06 PM, Rex Clark <> wrote:

    Note that you are treating the RAM on the video card as a virtual
    disk, configured as either a ramdisk or as swap space. You *can't*
    add the device RAM to the main system memory pool.
    ______
    Dennis
     

Share This Page