All of lore.kernel.org
 help / color / mirror / Atom feed
From: Keith Packard <keithp@keithp.com>
To: mesa-dev@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 0/8] Add DRIimage-based DRI3/Present loader
Date: Tue, 05 Nov 2013 08:40:22 -0800	[thread overview]
Message-ID: <8661s6kdjd.fsf@miki.keithp.com> (raw)
In-Reply-To: <1383618208-21310-1-git-send-email-keithp@keithp.com>


[-- Attachment #1.1: Type: text/plain, Size: 2975 bytes --]

Keith Packard <keithp@keithp.com> writes:

> This sequence first adds a a couple of new DRIimage extensions to the
> dri/common, dri/i915 and dri/i965 directories which define a
> loader-independent API for managing window system operations.
>
> The last patch adds a new DRI3000 loader using those new interfaces.

I've figured out that I can also re-use dri2CreateNewScreen2 for the
image driver bits, as long as I change that function to also look up the
image loader. That means there are *no* new dri_util functions needed.

To recap, the changes needed to support using the DRIimageExtension
interfaces for allocating buffers from the driver in the loader are:

    DRIimageDriverExtension

        A proper subset of DRIdri2DriverExtension, which uses
        the same five functions involved in creating new objects:

           /* Common DRI functions, shared with DRI2 */
           __DRIcreateNewScreen2        createNewScreen2;
           __DRIcreateNewDrawable       createNewDrawable;
           __DRIcreateNewContext        createNewContext;
           __DRIcreateContextAttribs    createContextAttribs;
           __DRIgetAPIMask              getAPIMask;
        
    DRIimageLoaderExtension

        Contains just two functions, one to allocate buffers and one to
        copy the fake front to the real front when flushing stuff.

	   /**
	    * Allocate color buffers.
	    *
	    * \param driDrawable
	    * \param width              Width of allocated buffers
	    * \param height             Height of allocated buffers
	    * \param format             one of __DRI_IMAGE_FORMAT_*
	    * \param stamp              Address of variable to be updated when
	    *                           getBuffers must be called again
	    * \param loaderPrivate      The loaderPrivate for driDrawable
	    * \param buffer_mask        Set of buffers to allocate
	    * \param buffers            Returned buffers
	    */
	   int (*getBuffers)(__DRIdrawable *driDrawable,
	                     int *width, int *height,
	                     unsigned int format,
	                     uint32_t *stamp,
	                     void *loaderPrivate,
	                     uint32_t buffer_mask,
	                     struct __DRIimageList *buffers);
	
	    /**
	     * Flush pending front-buffer rendering
	     *
	     * Any rendering that has been performed to the
	     * fake front will be flushed to the front
	     *
	     * \param driDrawable    Drawable whose front-buffer is to be flushed
	     * \param loaderPrivate  Loader's private data that was previously passed
	     *                       into __DRIdri2ExtensionRec::createNewDrawable
	     */
	    void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate);

Each driver will need to have a path to use the image loader to get
color buffers using the DRIimageLoaderExtension getBuffers function.

-- 
keith.packard@intel.com

[-- Attachment #1.2: Type: application/pgp-signature, Size: 827 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2013-11-05 16:40 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-05  2:23 [PATCH 0/8] Add DRIimage-based DRI3/Present loader Keith Packard
2013-11-05  2:23 ` [PATCH 1/8] drivers/dri/common: A few dri2 functions are not actually DRI2 specific Keith Packard
2013-11-05  2:23 ` [PATCH 2/8] dri/intel: Split out DRI2 buffer update code to separate function Keith Packard
2013-11-05  2:23 ` [PATCH 3/8] dri/intel: Add explicit size parameter to intel_region_alloc_for_fd Keith Packard
2013-11-05 22:23   ` Kristian Høgsberg
2013-11-06  0:52     ` Keith Packard
2013-11-07  5:17     ` Christopher James Halse Rogers
2013-11-07  5:42       ` Keith Packard
2013-11-05  2:23 ` [PATCH 4/8] Define __DRI_IMAGE_FORMAT_SARGB8 Keith Packard
2013-11-05  2:23 ` [PATCH 5/8] dri/common: Add functions mapping MESA_FORMAT_* <-> __DRI_IMAGE_FORMAT_* Keith Packard
2013-11-05  3:01   ` Jordan Justen
2013-11-05  4:11     ` Keith Packard
2013-11-05 22:53       ` Jordan Justen
2013-11-05 22:35   ` Kristian Høgsberg
2013-11-06  0:54     ` Keith Packard
2013-11-05  2:23 ` [PATCH 6/8] dri/i915, dri/i965: Use driGLFormatToImageFormat and driImageFormatToGLFormat Keith Packard
2013-11-05 22:37   ` [PATCH 6/8] dri/i915,dri/i965: " Kristian Høgsberg
2013-11-05  2:23 ` [PATCH 7/8] dri: add __DRIimageLoaderExtension and __DRIimageDriverExtension Keith Packard
2013-11-05 20:05   ` Eric Anholt
2013-11-05 23:47     ` Keith Packard
2013-11-05 22:59   ` Kristian Høgsberg
2013-11-06  0:59     ` Keith Packard
2013-11-06  2:48       ` Kristian Høgsberg
2013-11-06  6:25   ` Kristian Høgsberg
2013-11-06 14:55     ` Keith Packard
2013-11-06 16:17       ` Kristian Høgsberg
2013-11-06 18:09         ` Keith Packard
2013-11-06 19:06           ` Kristian Høgsberg
2013-11-06 19:29             ` Keith Packard
2013-11-05  2:23 ` [PATCH 8/8] Add DRI3+Present loader Keith Packard
2013-11-05 23:10   ` Eric Anholt
2013-11-06  2:32     ` Keith Packard
2013-11-05 16:40 ` Keith Packard [this message]
2013-11-05 20:04   ` [PATCH 0/8] Add DRIimage-based DRI3/Present loader Eric Anholt
2013-11-05 22:09     ` Kristian Høgsberg
2013-11-05 23:54     ` Keith Packard

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=8661s6kdjd.fsf@miki.keithp.com \
    --to=keithp@keithp.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=mesa-dev@lists.freedesktop.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.