From: Daniel Vetter <daniel@ffwll.ch>
To: Thomas Daniel <thomas.daniel@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915/bdw: Render state init for Execlists
Date: Thu, 28 Aug 2014 11:40:29 +0200 [thread overview]
Message-ID: <20140828094029.GA15520@phenom.ffwll.local> (raw)
In-Reply-To: <1408617654-2608-1-git-send-email-thomas.daniel@intel.com>
On Thu, Aug 21, 2014 at 11:40:54AM +0100, Thomas Daniel wrote:
> From: Oscar Mateo <oscar.mateo@intel.com>
>
> The batchbuffer that sets the render context state is submitted
> in a different way, and from different places.
>
> We needed to make both the render state preparation and free functions
> outside accesible, and namespace accordingly. This mess is so that all
> LR, LRC and Execlists functionality can go together in intel_lrc.c: we
> can fix all of this later on, once the interfaces are clear.
>
> v2: Create a separate ctx->rcs_initialized for the Execlists case, as
> suggested by Chris Wilson.
>
> Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
>
> v3: Setup ring status page in lr_context_deferred_create when the
> default context is being created. This means that the render state
> init for the default context is no longer a special case. Execute
> deferred creation of the default context at the end of
> logical_ring_init to allow the render state commands to be submitted.
> Fix style errors reported by checkpatch. Rebased.
>
> Signed-off-by: Thomas Daniel <thomas.daniel@intel.com>
Queued for -next, thanks for the patch.
-Daniel
> ---
> drivers/gpu/drm/i915/i915_drv.h | 4 +-
> drivers/gpu/drm/i915/i915_gem_render_state.c | 40 ++++++++------
> drivers/gpu/drm/i915/i915_gem_render_state.h | 47 +++++++++++++++++
> drivers/gpu/drm/i915/intel_lrc.c | 73 ++++++++++++++++++++------
> drivers/gpu/drm/i915/intel_lrc.h | 2 +
> drivers/gpu/drm/i915/intel_renderstate.h | 8 +--
> 6 files changed, 135 insertions(+), 39 deletions(-)
> create mode 100644 drivers/gpu/drm/i915/i915_gem_render_state.h
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index e449f81..f416e341 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -37,6 +37,7 @@
> #include "intel_ringbuffer.h"
> #include "intel_lrc.h"
> #include "i915_gem_gtt.h"
> +#include "i915_gem_render_state.h"
> #include <linux/io-mapping.h>
> #include <linux/i2c.h>
> #include <linux/i2c-algo-bit.h>
> @@ -635,6 +636,7 @@ struct intel_context {
> } legacy_hw_ctx;
>
> /* Execlists */
> + bool rcs_initialized;
> struct {
> struct drm_i915_gem_object *state;
> struct intel_ringbuffer *ringbuf;
> @@ -2596,8 +2598,6 @@ int i915_gem_context_create_ioctl(struct drm_device *dev, void *data,
> int i915_gem_context_destroy_ioctl(struct drm_device *dev, void *data,
> struct drm_file *file);
>
> -/* i915_gem_render_state.c */
> -int i915_gem_render_state_init(struct intel_engine_cs *ring);
> /* i915_gem_evict.c */
> int __must_check i915_gem_evict_something(struct drm_device *dev,
> struct i915_address_space *vm,
> diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c
> index e60be3f..a9a62d7 100644
> --- a/drivers/gpu/drm/i915/i915_gem_render_state.c
> +++ b/drivers/gpu/drm/i915/i915_gem_render_state.c
> @@ -28,13 +28,6 @@
> #include "i915_drv.h"
> #include "intel_renderstate.h"
>
> -struct render_state {
> - const struct intel_renderstate_rodata *rodata;
> - struct drm_i915_gem_object *obj;
> - u64 ggtt_offset;
> - int gen;
> -};
> -
> static const struct intel_renderstate_rodata *
> render_state_get_rodata(struct drm_device *dev, const int gen)
> {
> @@ -127,30 +120,47 @@ static int render_state_setup(struct render_state *so)
> return 0;
> }
>
> -static void render_state_fini(struct render_state *so)
> +void i915_gem_render_state_fini(struct render_state *so)
> {
> i915_gem_object_ggtt_unpin(so->obj);
> drm_gem_object_unreference(&so->obj->base);
> }
>
> -int i915_gem_render_state_init(struct intel_engine_cs *ring)
> +int i915_gem_render_state_prepare(struct intel_engine_cs *ring,
> + struct render_state *so)
> {
> - struct render_state so;
> int ret;
>
> if (WARN_ON(ring->id != RCS))
> return -ENOENT;
>
> - ret = render_state_init(&so, ring->dev);
> + ret = render_state_init(so, ring->dev);
> if (ret)
> return ret;
>
> - if (so.rodata == NULL)
> + if (so->rodata == NULL)
> return 0;
>
> - ret = render_state_setup(&so);
> + ret = render_state_setup(so);
> + if (ret) {
> + i915_gem_render_state_fini(so);
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> +int i915_gem_render_state_init(struct intel_engine_cs *ring)
> +{
> + struct render_state so;
> + int ret;
> +
> + ret = i915_gem_render_state_prepare(ring, &so);
> if (ret)
> - goto out;
> + return ret;
> +
> + if (so.rodata == NULL)
> + return 0;
>
> ret = ring->dispatch_execbuffer(ring,
> so.ggtt_offset,
> @@ -164,6 +174,6 @@ int i915_gem_render_state_init(struct intel_engine_cs *ring)
> ret = __i915_add_request(ring, NULL, so.obj, NULL);
> /* __i915_add_request moves object to inactive if it fails */
> out:
> - render_state_fini(&so);
> + i915_gem_render_state_fini(&so);
> return ret;
> }
> diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.h b/drivers/gpu/drm/i915/i915_gem_render_state.h
> new file mode 100644
> index 0000000..c44961e
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/i915_gem_render_state.h
> @@ -0,0 +1,47 @@
> +/*
> + * Copyright © 2014 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> + * DEALINGS IN THE SOFTWARE.
> + */
> +
> +#ifndef _I915_GEM_RENDER_STATE_H_
> +#define _I915_GEM_RENDER_STATE_H_
> +
> +#include <linux/types.h>
> +
> +struct intel_renderstate_rodata {
> + const u32 *reloc;
> + const u32 *batch;
> + const u32 batch_items;
> +};
> +
> +struct render_state {
> + const struct intel_renderstate_rodata *rodata;
> + struct drm_i915_gem_object *obj;
> + u64 ggtt_offset;
> + int gen;
> +};
> +
> +int i915_gem_render_state_init(struct intel_engine_cs *ring);
> +void i915_gem_render_state_fini(struct render_state *so);
> +int i915_gem_render_state_prepare(struct intel_engine_cs *ring,
> + struct render_state *so);
> +
> +#endif /* _I915_GEM_RENDER_STATE_H_ */
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index c096b9b..8e51fd0 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -1217,8 +1217,6 @@ void intel_logical_ring_cleanup(struct intel_engine_cs *ring)
> static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *ring)
> {
> int ret;
> - struct intel_context *dctx = ring->default_context;
> - struct drm_i915_gem_object *dctx_obj;
>
> /* Intentionally left blank. */
> ring->buffer = NULL;
> @@ -1232,18 +1230,6 @@ static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *rin
> spin_lock_init(&ring->execlist_lock);
> ring->next_context_status_buffer = 0;
>
> - ret = intel_lr_context_deferred_create(dctx, ring);
> - if (ret)
> - return ret;
> -
> - /* The status page is offset 0 from the context object in LRCs. */
> - dctx_obj = dctx->engine[ring->id].state;
> - ring->status_page.gfx_addr = i915_gem_obj_ggtt_offset(dctx_obj);
> - ring->status_page.page_addr = kmap(sg_page(dctx_obj->pages->sgl));
> - if (ring->status_page.page_addr == NULL)
> - return -ENOMEM;
> - ring->status_page.obj = dctx_obj;
> -
> ret = i915_cmd_parser_init_ring(ring);
> if (ret)
> return ret;
> @@ -1254,7 +1240,9 @@ static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *rin
> return ret;
> }
>
> - return 0;
> + ret = intel_lr_context_deferred_create(ring->default_context, ring);
> +
> + return ret;
> }
>
> static int logical_render_ring_init(struct drm_device *dev)
> @@ -1448,6 +1436,38 @@ cleanup_render_ring:
> return ret;
> }
>
> +int intel_lr_context_render_state_init(struct intel_engine_cs *ring,
> + struct intel_context *ctx)
> +{
> + struct intel_ringbuffer *ringbuf = ctx->engine[ring->id].ringbuf;
> + struct render_state so;
> + struct drm_i915_file_private *file_priv = ctx->file_priv;
> + struct drm_file *file = file_priv ? file_priv->file : NULL;
> + int ret;
> +
> + ret = i915_gem_render_state_prepare(ring, &so);
> + if (ret)
> + return ret;
> +
> + if (so.rodata == NULL)
> + return 0;
> +
> + ret = ring->emit_bb_start(ringbuf,
> + so.ggtt_offset,
> + I915_DISPATCH_SECURE);
> + if (ret)
> + goto out;
> +
> + i915_vma_move_to_active(i915_gem_obj_to_ggtt(so.obj), ring);
> +
> + ret = __i915_add_request(ring, file, so.obj, NULL);
> + /* intel_logical_ring_add_request moves object to inactive if it
> + * fails */
> +out:
> + i915_gem_render_state_fini(&so);
> + return ret;
> +}
> +
> static int
> populate_lr_context(struct intel_context *ctx, struct drm_i915_gem_object *ctx_obj,
> struct intel_engine_cs *ring, struct intel_ringbuffer *ringbuf)
> @@ -1687,6 +1707,29 @@ int intel_lr_context_deferred_create(struct intel_context *ctx,
> ctx->engine[ring->id].ringbuf = ringbuf;
> ctx->engine[ring->id].state = ctx_obj;
>
> + if (ctx == ring->default_context) {
> + /* The status page is offset 0 from the default context object
> + * in LRC mode. */
> + ring->status_page.gfx_addr = i915_gem_obj_ggtt_offset(ctx_obj);
> + ring->status_page.page_addr =
> + kmap(sg_page(ctx_obj->pages->sgl));
> + if (ring->status_page.page_addr == NULL)
> + return -ENOMEM;
> + ring->status_page.obj = ctx_obj;
> + }
> +
> + if (ring->id == RCS && !ctx->rcs_initialized) {
> + ret = intel_lr_context_render_state_init(ring, ctx);
> + if (ret) {
> + DRM_ERROR("Init render state failed: %d\n", ret);
> + ctx->engine[ring->id].ringbuf = NULL;
> + ctx->engine[ring->id].state = NULL;
> + intel_destroy_ringbuffer_obj(ringbuf);
> + goto error;
> + }
> + ctx->rcs_initialized = true;
> + }
> +
> return 0;
>
> error:
> diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h
> index 991d449..33c3b4b 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.h
> +++ b/drivers/gpu/drm/i915/intel_lrc.h
> @@ -62,6 +62,8 @@ static inline void intel_logical_ring_emit(struct intel_ringbuffer *ringbuf,
> int intel_logical_ring_begin(struct intel_ringbuffer *ringbuf, int num_dwords);
>
> /* Logical Ring Contexts */
> +int intel_lr_context_render_state_init(struct intel_engine_cs *ring,
> + struct intel_context *ctx);
> void intel_lr_context_free(struct intel_context *ctx);
> int intel_lr_context_deferred_create(struct intel_context *ctx,
> struct intel_engine_cs *ring);
> diff --git a/drivers/gpu/drm/i915/intel_renderstate.h b/drivers/gpu/drm/i915/intel_renderstate.h
> index fd4f662..6c792d3 100644
> --- a/drivers/gpu/drm/i915/intel_renderstate.h
> +++ b/drivers/gpu/drm/i915/intel_renderstate.h
> @@ -24,13 +24,7 @@
> #ifndef _INTEL_RENDERSTATE_H
> #define _INTEL_RENDERSTATE_H
>
> -#include <linux/types.h>
> -
> -struct intel_renderstate_rodata {
> - const u32 *reloc;
> - const u32 *batch;
> - const u32 batch_items;
> -};
> +#include "i915_drv.h"
>
> extern const struct intel_renderstate_rodata gen6_null_state;
> extern const struct intel_renderstate_rodata gen7_null_state;
> --
> 1.7.9.5
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
next prev parent reply other threads:[~2014-08-28 9:40 UTC|newest]
Thread overview: 137+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-24 16:04 [PATCH 00/43] Execlists v5 Thomas Daniel
2014-07-24 16:04 ` [PATCH 01/43] drm/i915: Reorder the actual workload submission so that args checking is done earlier Thomas Daniel
2014-07-25 8:30 ` Daniel Vetter
2014-07-25 9:16 ` Chris Wilson
2014-07-24 16:04 ` [PATCH 02/43] drm/i915/bdw: New source and header file for LRs, LRCs and Execlists Thomas Daniel
2014-07-24 16:04 ` [PATCH 03/43] drm/i915/bdw: Macro for LRCs and module option for Execlists Thomas Daniel
2014-08-11 13:57 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 04/43] drm/i915/bdw: Initialization for Logical Ring Contexts Thomas Daniel
2014-08-11 14:03 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 05/43] drm/i915/bdw: Introduce one context backing object per engine Thomas Daniel
2014-08-11 13:59 ` [PATCH] drm/i915: WARN if module opt sanitization goes out of order Daniel Vetter
2014-08-11 14:28 ` Damien Lespiau
2014-07-24 16:04 ` [PATCH 06/43] drm/i915/bdw: A bit more advanced LR context alloc/free Thomas Daniel
2014-07-24 16:04 ` [PATCH 07/43] drm/i915/bdw: Allocate ringbuffers for Logical Ring Contexts Thomas Daniel
2014-07-24 16:04 ` [PATCH 08/43] drm/i915/bdw: Add a context and an engine pointers to the ringbuffer Thomas Daniel
2014-08-11 14:14 ` Daniel Vetter
2014-08-11 14:20 ` Daniel Vetter
2014-08-13 13:34 ` Daniel, Thomas
2014-08-13 15:16 ` Daniel Vetter
2014-08-14 15:09 ` Daniel, Thomas
2014-08-14 15:32 ` Daniel Vetter
2014-08-14 15:37 ` Daniel Vetter
2014-08-14 15:56 ` Daniel, Thomas
2014-08-14 16:19 ` Daniel Vetter
2014-08-14 16:27 ` [PATCH] drm/i915: Add temporary ring->ctx backpointer Daniel Vetter
2014-08-14 16:33 ` Daniel, Thomas
2014-07-24 16:04 ` [PATCH 09/43] drm/i915/bdw: Populate LR contexts (somewhat) Thomas Daniel
2014-07-24 16:04 ` [PATCH 10/43] drm/i915/bdw: Deferred creation of user-created LRCs Thomas Daniel
2014-08-11 14:25 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 11/43] drm/i915/bdw: Render moot context reset and switch with Execlists Thomas Daniel
2014-08-11 14:30 ` Daniel Vetter
2014-08-15 10:22 ` Daniel, Thomas
2014-08-15 15:39 ` Daniel Vetter
2014-08-20 15:29 ` [PATCH] " Thomas Daniel
2014-08-20 15:36 ` Chris Wilson
2014-08-25 20:39 ` Daniel Vetter
2014-08-25 22:01 ` Scot Doyle
2014-08-26 5:59 ` Chris Wilson
2014-08-26 13:54 ` Siluvery, Arun
2014-08-26 14:11 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 12/43] drm/i915/bdw: Don't write PDP in the legacy way when using LRCs Thomas Daniel
2014-08-01 13:46 ` Damien Lespiau
2014-08-07 12:17 ` Thomas Daniel
2014-08-08 15:59 ` Damien Lespiau
2014-08-11 14:32 ` Daniel Vetter
2014-08-15 11:01 ` [PATCH] " Thomas Daniel
2014-07-24 16:04 ` [PATCH 13/43] drm/i915: Abstract the legacy workload submission mechanism away Thomas Daniel
2014-08-11 14:36 ` Daniel Vetter
2014-08-11 14:39 ` Daniel Vetter
2014-08-11 14:39 ` Daniel Vetter
2014-08-11 15:02 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 14/43] drm/i915/bdw: Skeleton for the new logical rings submission path Thomas Daniel
2014-07-24 16:04 ` [PATCH 15/43] drm/i915/bdw: Generic logical ring init and cleanup Thomas Daniel
2014-08-11 15:01 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 16/43] drm/i915/bdw: GEN-specific logical ring init Thomas Daniel
2014-08-11 15:04 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 17/43] drm/i915/bdw: GEN-specific logical ring set/get seqno Thomas Daniel
2014-08-11 15:05 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 18/43] drm/i915/bdw: New logical ring submission mechanism Thomas Daniel
2014-08-11 20:40 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 19/43] drm/i915/bdw: GEN-specific logical ring emit request Thomas Daniel
2014-07-24 16:04 ` [PATCH 20/43] drm/i915/bdw: GEN-specific logical ring emit flush Thomas Daniel
2014-07-24 16:04 ` [PATCH 21/43] drm/i915/bdw: Emission of requests with logical rings Thomas Daniel
2014-08-11 20:56 ` Daniel Vetter
2014-08-13 13:34 ` Daniel, Thomas
2014-08-13 15:25 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 22/43] drm/i915/bdw: Ring idle and stop " Thomas Daniel
2014-07-24 16:04 ` [PATCH 23/43] drm/i915/bdw: Interrupts " Thomas Daniel
2014-08-11 21:02 ` Daniel Vetter
2014-08-11 21:08 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 24/43] drm/i915/bdw: GEN-specific logical ring emit batchbuffer start Thomas Daniel
2014-08-11 21:09 ` Daniel Vetter
2014-08-11 21:12 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 25/43] drm/i915/bdw: Workload submission mechanism for Execlists Thomas Daniel
2014-08-11 20:30 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 26/43] drm/i915/bdw: Always use MMIO flips with Execlists Thomas Daniel
2014-08-11 20:34 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 27/43] drm/i915/bdw: Render state init for Execlists Thomas Daniel
2014-08-11 21:25 ` Daniel Vetter
2014-08-13 15:07 ` Daniel, Thomas
2014-08-13 15:30 ` Daniel Vetter
2014-08-14 20:00 ` Daniel Vetter
2014-08-15 8:43 ` Daniel, Thomas
2014-08-20 15:55 ` Daniel, Thomas
2014-08-25 20:55 ` Daniel Vetter
2014-08-21 10:40 ` [PATCH] " Thomas Daniel
2014-08-28 9:40 ` Daniel Vetter [this message]
2014-07-24 16:04 ` [PATCH 28/43] drm/i915/bdw: Implement context switching (somewhat) Thomas Daniel
2014-08-11 21:29 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 29/43] drm/i915/bdw: Write the tail pointer, LRC style Thomas Daniel
2014-08-01 14:33 ` Damien Lespiau
2014-08-11 21:30 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 30/43] drm/i915/bdw: Two-stage execlist submit process Thomas Daniel
2014-08-14 20:05 ` Daniel Vetter
2014-08-14 20:10 ` Daniel Vetter
2014-08-15 8:51 ` Daniel, Thomas
2014-08-15 9:38 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 31/43] drm/i915/bdw: Handle context switch events Thomas Daniel
2014-08-14 20:13 ` Daniel Vetter
2014-08-14 20:17 ` Daniel Vetter
2014-08-14 20:28 ` Daniel Vetter
2014-08-14 20:37 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 32/43] drm/i915/bdw: Avoid non-lite-restore preemptions Thomas Daniel
2014-08-14 20:31 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 33/43] drm/i915/bdw: Help out the ctx switch interrupt handler Thomas Daniel
2014-08-14 20:43 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 34/43] drm/i915/bdw: Make sure gpu reset still works with Execlists Thomas Daniel
2014-08-01 14:42 ` Damien Lespiau
2014-08-06 9:26 ` Daniel, Thomas
2014-08-01 14:46 ` Damien Lespiau
2014-08-06 9:28 ` Daniel, Thomas
2014-07-24 16:04 ` [PATCH 35/43] drm/i915/bdw: Make sure error capture keeps working " Thomas Daniel
2014-08-15 12:14 ` Daniel Vetter
2014-08-21 10:57 ` Daniel, Thomas
2014-08-25 21:00 ` Daniel Vetter
2014-08-25 21:29 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 36/43] drm/i915/bdw: Disable semaphores for Execlists Thomas Daniel
2014-07-24 16:04 ` [PATCH 37/43] drm/i915/bdw: Display execlists info in debugfs Thomas Daniel
2014-08-01 14:54 ` Damien Lespiau
2014-08-07 12:23 ` Thomas Daniel
2014-08-08 16:02 ` Damien Lespiau
2014-07-24 16:04 ` [PATCH 38/43] drm/i915/bdw: Display context backing obj & ringbuffer " Thomas Daniel
2014-07-24 16:04 ` [PATCH 39/43] drm/i915/bdw: Print context state " Thomas Daniel
2014-08-01 15:54 ` Damien Lespiau
2014-08-07 12:24 ` Thomas Daniel
2014-08-08 15:57 ` Damien Lespiau
2014-07-24 16:04 ` [PATCH 40/43] drm/i915/bdw: Document Logical Rings, LR contexts and Execlists Thomas Daniel
2014-08-15 12:42 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 41/43] drm/i915/bdw: Enable Logical Ring Contexts (hence, Execlists) Thomas Daniel
2014-08-18 8:33 ` Jani Nikula
2014-08-18 14:52 ` Daniel, Thomas
2014-07-24 16:04 ` [PATCH 42/43] drm/i915/bdw: Pin the context backing objects to GGTT on-demand Thomas Daniel
2014-08-15 13:03 ` Daniel Vetter
2014-07-24 16:04 ` [PATCH 43/43] drm/i915/bdw: Pin the ringbuffer backing object " Thomas Daniel
2014-07-25 8:35 ` [PATCH 00/43] Execlists v5 Daniel Vetter
2014-08-01 16:09 ` Damien Lespiau
2014-08-01 16:29 ` Jesse Barnes
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=20140828094029.GA15520@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=thomas.daniel@intel.com \
/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