9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "ibrahim via 9fans" <9fans@9fans.net>
To: 9fans <9fans@9fans.net>
Subject: Re: [9fans] suggestion : new service targets for plan9
Date: Fri, 28 Jan 2022 10:27:58 -0500	[thread overview]
Message-ID: <16433836780.fDb0.34398@composer.9fans.topicbox.com> (raw)
In-Reply-To: <7Ad_k2SFVPp1bxcNqGCiOKNrQceD7FS-YAAtZs2SMCoPk8DELtakra290--rxDS7haPlflgT5a4a_ePOTjSNHxpqe_FaenTWFnAgp4SEmp0=@protonmail.com>

[-- Attachment #1: Type: text/plain, Size: 1994 bytes --]

On Friday, 28 January 2022, at 3:11 PM, Philip Silva wrote:
> I didn't deep-dive yet into the internals of it, but isn't it that when combining the images at the end, that transfer of the initial images with lots of data basically happens only once? It seems to me devdraw can be quite performant on certain use cases. (UIs with basic shapes)

Thats true. devdraw prepares its images using memdraw and memlayer. After combining those images we get the results on the display.

The moment you do rendering inside your application you have to transfer images using loadimage and flashimage. There is no message inside devdraw which makes it possible to use images from a client process without copying them into the memlayer infrastructure. 

On Friday, 28 January 2022, at 3:11 PM, Philip Silva wrote:
> Also I wonder what kind of functions it should be providing.
This intermediate or alternative layer should only add putimage switchbuffers supported by shared memory segments. At least there should be two buffers one foreground and one background buffer directly writeable by the client.

One simple way to realize this would be enhancing devdraw with one single protocol which would render a client side image from shared memory (segments). 

You can quite now create memimages but if you realize the rendering you have to use loadimage and flushimage each time your images change.


devdraw is not slow but it can be made faster with only one extra protocol which is missing. 

Enhancing devdraw this way would also solve the problem but not touching devdraw and offering an intermediate level between the graphics driver and devdraw wouldn't break anything. In the end devdraw also transfers its image to the videocard one way or the other.

------------------------------------------
9fans: 9fans
Permalink: https://9fans.topicbox.com/groups/9fans/T2518f9e4fc10ed03-Mbe750adf3a20ec4a7f7c7b5d
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

[-- Attachment #2: Type: text/html, Size: 2833 bytes --]

  reply	other threads:[~2022-01-28 15:28 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-28  2:03 ibrahim via 9fans
2022-01-28  5:22 ` ori
2022-01-28 11:38   ` ibrahim via 9fans
2022-01-28  7:50 ` vic.thacker
2022-01-28 11:49   ` ibrahim via 9fans
2022-01-28  9:55 ` Frank D. Engel, Jr.
2022-01-28 12:13   ` sirjofri
2022-01-28 12:21   ` ibrahim via 9fans
2022-01-28 14:11     ` Philip Silva via 9fans
2022-01-28 15:27       ` ibrahim via 9fans [this message]
2022-01-28 15:44         ` ibrahim via 9fans
2022-01-28 15:49     ` ori

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=16433836780.fDb0.34398@composer.9fans.topicbox.com \
    --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).