9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Al Varney varney@ihgp5.ih.att.com
Subject: Graphics issues
Date: Thu, 30 Nov 1995 11:03:53 -0500	[thread overview]
Message-ID: <19951130160353.8qCWQoQAO1IMu1NKispgZDMSe01cjn7pxy_2VE0QvK4@z> (raw)

In article <9511171105.AA16712@idnewt.idsoftware.com>,
John Carmack <9fans@cse.psu.edu> wrote:

>All of my event issues would be resolved with two changes to the =
>current interface:
>
>The mouse device must buffer state transitions, so clicks are =
>never missed.  This could be done transparently to current code.
>
>A raw keyboard device would need to be created that includes key =
>ups if available and time stamps the actions so they can be =
>accurately interleaved with mouse events.

   If you can find some old documentation on the Commodore Amiga,
take a look at its "food chain" that passes keyboard (raw up/down)
and mouse events via messages to an ordered list of processes that
ask for them -- with time stamps.  Looks a lot like the Mac mechanism,
but more "process" oriented.  If the chain is ordered by timestamp,
you have a reasonably integrated mouse/keyboard input mechanism.
And all this could be treated as a raw device (/dev/"raw food")?



>I think that plan9 would be an excellent environment to write a =
>video rate aware graphics/window system.
>
>Digression: In some extreme programming forms (demo coding), =
>drawing is sometimes performed in a controled enough fashion that =
>it can be direct to screen and manage to never produce an =
>inconsistant image by being totally aware of the relationship =
>between the location of the drawing and the current position of =
>the raster, but that isn't generaly useful.
>
>....  If PCs had scan line interrupts, that would even be a =
>practical thing to do...

   Amiga....  While per-scan-line changes in color translation tables
and display content might be OK for demos, it probably isn't useful when
multiple processes are each changing parts of the display simultaneously.
Unless you could have hardware hide the effects.  Maybe buffer vram
writes that are "ahead" of the raster in a "shadow" vram, then write-through
any changed areas after the raster passes ---- ughh, nope, forget it...

>The answer is to keep the window bitmaps in offscreen vram and =
>have the accelerator do the pixel pushing.

   Seriously, why not have the vram be part of the host ram memory space???
(Just don't cache that area.)

>Digression 2:  the next generation of PCI video cards are going to =
>support bus mastering, with the ability to pull pixels directly =
>out of host memory at speeds of up to nearly 100 megs a second.  I =
>doubt the main memory systems will be able to feed them that fast, =
>though.  It will change a lot of design decisions.

   Again, the Amiga model (sort of) has video take pixels from host
memory (and a DMA-based hardware Blitter that can synchronize with
raster position).  You might want to look at this "old" windowing
mechanism that supports a hierarchy of independent Screens
with Windows, although the windowing part seems to borrow a lot from the
Xerox/Mac model.

   Maybe the ultimate answer is non-raster displays.  But how would you "hide"
update details from a screen that instantly shows every pixel change!!

Al Varney







             reply	other threads:[~1995-11-30 16:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1995-11-30 16:03 Al [this message]
  -- strict thread matches above, loose matches on Subject: below --
1995-11-19 19:23 Andrew
1995-11-19 15:31 Dan
1995-11-17 11:05 John
1995-11-16 17:39 rob
1995-11-14 12:24 dhog
1995-11-14  0:48 John
1995-11-12 12:28 John

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=19951130160353.8qCWQoQAO1IMu1NKispgZDMSe01cjn7pxy_2VE0QvK4@z \
    --to=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).