All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/53] Execlists v3
@ 2014-06-13 15:37 oscar.mateo
  2014-06-13 15:37 ` [PATCH 01/53] drm/i915: Extract context backing object allocation oscar.mateo
                   ` (53 more replies)
  0 siblings, 54 replies; 156+ messages in thread
From: oscar.mateo @ 2014-06-13 15:37 UTC (permalink / raw)
  To: intel-gfx

From: Oscar Mateo <oscar.mateo@intel.com>

For a description of this patchset, please check the previous cover letters: [1] and [2].

The main difference with v2 is in how we get to the point of context submission: this time
around, instead of massaging the legacy ringbuffer submission functions (mostly located in intel_ringebuffer.c), I have effectively created a separate path for Execlists submission
in intel_lrc.c (even though everybody knows you shouldn't mess with split timelines). The
alternative path is mostly a clone of the previous, but the idea is that it will differ
significantly in the (so in exchange for duplicated code, we gain the ability to perform
big changes without breaking legacy hardware support). This change was a suggestion by
Daniel Vetter [3].

I know many patches here will be very controversial, so I would appreciate early feedback
in the direction this effort is taking.

The previous IGT test [4] still applies.

[1]
http://lists.freedesktop.org/archives/intel-gfx/2014-March/042563.html
[2]
http://lists.freedesktop.org/archives/intel-gfx/2014-May/044847.html
[3]
http://lists.freedesktop.org/archives/intel-gfx/2014-May/045139.html
[4]
http://lists.freedesktop.org/archives/intel-gfx/2014-May/044846.html

Ben Widawsky (2):
  drm/i915/bdw: Implement context switching (somewhat)
  drm/i915/bdw: Print context state in debugfs

Michel Thierry (1):
  drm/i915/bdw: Two-stage execlist submit process

Oscar Mateo (48):
  drm/i915: Extract context backing object allocation
  drm/i915: Rename ctx->obj to ctx->render_obj
  drm/i915: Add a dev pointer to the context
  drm/i915: Extract ringbuffer destroy & make alloc outside accesible
  drm/i915: Move i915_gem_validate_context() to i915_gem_context.c
  drm/i915/bdw: Introduce one context backing object per engine
  drm/i915/bdw: New file for Logical Ring Contexts and Execlists
  drm/i915/bdw: Macro for LRCs and module option for Execlists
  drm/i915/bdw: Initialization for Logical Ring Contexts
  drm/i915/bdw: A bit more advanced context init/fini
  drm/i915/bdw: Allocate ringbuffers for Logical Ring Contexts
  drm/i915/bdw: Populate LR contexts (somewhat)
  drm/i915/bdw: Deferred creation of user-created LRCs
  drm/i915/bdw: Render moot context reset and switch when LRCs are
    enabled
  drm/i915/bdw: Don't write PDP in the legacy way when using LRCs
  drm/i915/bdw: Skeleton for the new logical rings submission path
  drm/i915/bdw: Generic logical ring init and cleanup
  drm/i915/bdw: New header file for LRs, LRCs and Execlists
  drm/i915: Extract pipe control fini & make init outside accesible
  drm/i915/bdw: GEN-specific logical ring init
  drm/i915/bdw: GEN-specific logical ring set/get seqno
  drm/i915: Make ring_space more generic and outside accesible
  drm/i915: Generalize intel_ring_get_tail
  drm/i915: Make intel_ring_stopped outside accesible
  drm/i915/bdw: GEN-specific logical ring submit context (somewhat)
  drm/i915/bdw: New logical ring submission mechanism
  drm/i915/bdw: GEN-specific logical ring emit request
  drm/i915/bdw: GEN-specific logical ring emit flush
  drm/i915/bdw: Emission of requests with logical rings
  drm/i915/bdw: Ring idle and stop with logical rings
  drm/i915/bdw: Interrupts with logical rings
  drm/i915/bdw: GEN-specific logical ring emit batchbuffer start
  drm/i915: Extract the actual workload submission mechanism from
    execbuffer
  drm/i915: Make move_to_active and retire_commands outside accesible
  drm/i915/bdw: Workload submission mechanism for Execlists
  drm/i915: Abstract the workload submission mechanism away
  drm/i915/bdw: Write the tail pointer, LRC style
  drm/i915/bdw: Avoid non-lite-restore preemptions
  drm/i915/bdw: Make sure gpu reset still works with Execlists
  drm/i915/bdw: Make sure error capture keeps working with Execlists
  drm/i915/bdw: Help out the ctx switch interrupt handler
  drm/i915/bdw: Do not call intel_runtime_pm_get() in an interrupt
  drm/i915/bdw: Display execlists info in debugfs
  drm/i915/bdw: Display context backing obj & ringbuffer info in debugfs
  drm/i915: Extract render state preparation
  drm/i915/bdw: Render state init for Execlists
  drm/i915/bdw: Document Logical Rings, LR contexts and Execlists
  drm/i915/bdw: Enable logical ring contexts

Sourab Gupta (1):
  !UPSTREAM: drm/i915: Use MMIO flips

Thomas Daniel (1):
  drm/i915/bdw: Handle context switch events

 drivers/gpu/drm/i915/Makefile                |    1 +
 drivers/gpu/drm/i915/i915_debugfs.c          |  150 +-
 drivers/gpu/drm/i915/i915_dma.c              |    1 +
 drivers/gpu/drm/i915/i915_drv.h              |   60 +-
 drivers/gpu/drm/i915/i915_gem.c              |   70 +-
 drivers/gpu/drm/i915/i915_gem_context.c      |  242 +++-
 drivers/gpu/drm/i915/i915_gem_execbuffer.c   |  328 ++---
 drivers/gpu/drm/i915/i915_gem_gtt.c          |    5 +
 drivers/gpu/drm/i915/i915_gem_render_state.c |   39 +-
 drivers/gpu/drm/i915/i915_gpu_error.c        |   16 +-
 drivers/gpu/drm/i915/i915_irq.c              |   53 +-
 drivers/gpu/drm/i915/i915_params.c           |   11 +
 drivers/gpu/drm/i915/i915_reg.h              |    5 +
 drivers/gpu/drm/i915/intel_display.c         |  148 +-
 drivers/gpu/drm/i915/intel_drv.h             |    6 +
 drivers/gpu/drm/i915/intel_lrc.c             | 1902 ++++++++++++++++++++++++++
 drivers/gpu/drm/i915/intel_lrc.h             |   99 ++
 drivers/gpu/drm/i915/intel_renderstate.h     |   13 +
 drivers/gpu/drm/i915/intel_ringbuffer.c      |  101 +-
 drivers/gpu/drm/i915/intel_ringbuffer.h      |   53 +-
 20 files changed, 2974 insertions(+), 329 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/intel_lrc.c
 create mode 100644 drivers/gpu/drm/i915/intel_lrc.h

-- 
1.9.0

^ permalink raw reply	[flat|nested] 156+ messages in thread

end of thread, other threads:[~2014-08-10  1:36 UTC | newest]

Thread overview: 156+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-13 15:37 [PATCH 00/53] Execlists v3 oscar.mateo
2014-06-13 15:37 ` [PATCH 01/53] drm/i915: Extract context backing object allocation oscar.mateo
2014-06-13 15:37 ` [PATCH 02/53] drm/i915: Rename ctx->obj to ctx->render_obj oscar.mateo
2014-06-13 17:00   ` Daniel Vetter
2014-06-16 15:20     ` Mateo Lozano, Oscar
2014-06-13 17:15   ` Chris Wilson
2014-06-13 15:37 ` [PATCH 03/53] drm/i915: Add a dev pointer to the context oscar.mateo
2014-06-13 15:37 ` [PATCH 04/53] drm/i915: Extract ringbuffer destroy & make alloc outside accesible oscar.mateo
2014-06-18 21:39   ` Volkin, Bradley D
2014-06-19 10:42     ` Mateo Lozano, Oscar
2014-06-13 15:37 ` [PATCH 05/53] drm/i915: Move i915_gem_validate_context() to i915_gem_context.c oscar.mateo
2014-06-13 17:11   ` Chris Wilson
2014-06-16 15:18     ` Mateo Lozano, Oscar
2014-06-18 20:00       ` Volkin, Bradley D
2014-06-13 15:37 ` [PATCH 06/53] drm/i915/bdw: Introduce one context backing object per engine oscar.mateo
2014-06-18 20:16   ` Daniel Vetter
2014-06-19  8:52     ` Mateo Lozano, Oscar
2014-06-19 10:57       ` Daniel Vetter
2014-06-13 15:37 ` [PATCH 07/53] drm/i915/bdw: New file for Logical Ring Contexts and Execlists oscar.mateo
2014-06-18 20:17   ` Daniel Vetter
2014-06-19  9:01     ` Mateo Lozano, Oscar
2014-06-13 15:37 ` [PATCH 08/53] drm/i915/bdw: Macro for LRCs and module option for Execlists oscar.mateo
2014-06-18 20:19   ` Daniel Vetter
2014-06-19  9:04     ` Mateo Lozano, Oscar
2014-06-13 15:37 ` [PATCH 09/53] drm/i915/bdw: Initialization for Logical Ring Contexts oscar.mateo
2014-06-18 20:24   ` Daniel Vetter
2014-06-19  9:23     ` Mateo Lozano, Oscar
2014-06-19 10:08       ` Daniel Vetter
2014-06-19 10:10         ` Mateo Lozano, Oscar
2014-06-19 10:34           ` Daniel Vetter
2014-06-13 15:37 ` [PATCH 10/53] drm/i915/bdw: A bit more advanced context init/fini oscar.mateo
2014-06-18 22:13   ` Volkin, Bradley D
2014-06-19  6:13     ` Daniel Vetter
2014-06-13 15:37 ` [PATCH 11/53] drm/i915/bdw: Allocate ringbuffers for Logical Ring Contexts oscar.mateo
2014-06-18 22:19   ` Volkin, Bradley D
2014-06-23 12:07     ` Mateo Lozano, Oscar
2014-06-13 15:37 ` [PATCH 12/53] drm/i915/bdw: Populate LR contexts (somewhat) oscar.mateo
2014-06-18 23:24   ` Volkin, Bradley D
2014-06-23 12:42     ` Mateo Lozano, Oscar
2014-06-23 15:05       ` Volkin, Bradley D
2014-06-23 15:11         ` Mateo Lozano, Oscar
2014-06-13 15:37 ` [PATCH 13/53] drm/i915/bdw: Deferred creation of user-created LRCs oscar.mateo
2014-06-18 20:27   ` Daniel Vetter
2014-06-13 15:37 ` [PATCH 14/53] drm/i915/bdw: Render moot context reset and switch when LRCs are enabled oscar.mateo
2014-06-13 15:37 ` [PATCH 15/53] drm/i915/bdw: Don't write PDP in the legacy way when using LRCs oscar.mateo
2014-06-18 23:42   ` Volkin, Bradley D
2014-06-23 12:45     ` Mateo Lozano, Oscar
2014-06-13 15:37 ` [PATCH 16/53] drm/i915/bdw: Skeleton for the new logical rings submission path oscar.mateo
2014-06-13 15:37 ` [PATCH 17/53] drm/i915/bdw: Generic logical ring init and cleanup oscar.mateo
2014-06-13 15:37 ` [PATCH 18/53] drm/i915/bdw: New header file for LRs, LRCs and Execlists oscar.mateo
2014-06-13 15:37 ` [PATCH 19/53] drm/i915: Extract pipe control fini & make init outside accesible oscar.mateo
2014-06-18 20:31   ` Daniel Vetter
2014-06-19  0:04   ` Volkin, Bradley D
2014-06-19 10:58     ` Mateo Lozano, Oscar
2014-06-13 15:37 ` [PATCH 20/53] drm/i915/bdw: GEN-specific logical ring init oscar.mateo
2014-06-13 15:37 ` [PATCH 21/53] drm/i915/bdw: GEN-specific logical ring set/get seqno oscar.mateo
2014-06-13 15:37 ` [PATCH 22/53] drm/i915: Make ring_space more generic and outside accesible oscar.mateo
2014-06-13 15:37 ` [PATCH 23/53] drm/i915: Generalize intel_ring_get_tail oscar.mateo
2014-06-20 20:17   ` Volkin, Bradley D
2014-06-13 15:37 ` [PATCH 24/53] drm/i915: Make intel_ring_stopped outside accesible oscar.mateo
2014-06-13 15:37 ` [PATCH 25/53] drm/i915/bdw: GEN-specific logical ring submit context (somewhat) oscar.mateo
2014-06-20 20:28   ` Volkin, Bradley D
2014-06-23 12:49     ` Mateo Lozano, Oscar
2014-06-13 15:37 ` [PATCH 26/53] drm/i915/bdw: New logical ring submission mechanism oscar.mateo
2014-06-20 21:00   ` Volkin, Bradley D
2014-06-23 13:09     ` Mateo Lozano, Oscar
2014-06-23 13:13       ` Chris Wilson
2014-06-23 13:18         ` Mateo Lozano, Oscar
2014-06-23 13:27           ` Chris Wilson
2014-06-23 13:36             ` Mateo Lozano, Oscar
2014-06-23 13:41               ` Chris Wilson
2014-06-23 14:35                 ` Mateo Lozano, Oscar
2014-06-23 19:10                   ` Volkin, Bradley D
2014-06-24 12:29                     ` Mateo Lozano, Oscar
2014-07-07 12:39                       ` Daniel Vetter
2014-06-24  0:23                   ` Ben Widawsky
2014-06-24 11:45                     ` Mateo Lozano, Oscar
2014-06-24 14:41                       ` Volkin, Bradley D
2014-06-24 17:19         ` Jesse Barnes
2014-06-26 13:28           ` Mateo Lozano, Oscar
2014-07-07 12:41         ` Daniel Vetter
2014-06-13 15:37 ` [PATCH 27/53] drm/i915/bdw: GEN-specific logical ring emit request oscar.mateo
2014-06-20 21:18   ` Volkin, Bradley D
2014-06-23 15:48     ` Mateo Lozano, Oscar
2014-06-13 15:37 ` [PATCH 28/53] drm/i915/bdw: GEN-specific logical ring emit flush oscar.mateo
2014-06-20 21:39   ` Volkin, Bradley D
2014-06-13 15:37 ` [PATCH 29/53] drm/i915/bdw: Emission of requests with logical rings oscar.mateo
2014-06-13 15:37 ` [PATCH 30/53] drm/i915/bdw: Ring idle and stop " oscar.mateo
2014-06-13 15:37 ` [PATCH 31/53] drm/i915/bdw: Interrupts " oscar.mateo
2014-06-13 15:37 ` [PATCH 32/53] drm/i915/bdw: GEN-specific logical ring emit batchbuffer start oscar.mateo
2014-06-13 15:37 ` [PATCH 33/53] drm/i915: Extract the actual workload submission mechanism from execbuffer oscar.mateo
2014-06-13 15:37 ` [PATCH 34/53] drm/i915: Make move_to_active and retire_commands outside accesible oscar.mateo
2014-06-13 15:37 ` [PATCH 35/53] drm/i915/bdw: Workload submission mechanism for Execlists oscar.mateo
2014-06-13 15:37 ` [PATCH 36/53] drm/i915: Abstract the workload submission mechanism away oscar.mateo
2014-06-18 20:40   ` Daniel Vetter
2014-06-13 15:37 ` [PATCH 37/53] drm/i915/bdw: Implement context switching (somewhat) oscar.mateo
2014-06-13 17:00   ` Chris Wilson
2014-06-13 15:37 ` [PATCH 38/53] drm/i915/bdw: Write the tail pointer, LRC style oscar.mateo
2014-06-13 15:37 ` [PATCH 39/53] drm/i915/bdw: Two-stage execlist submit process oscar.mateo
2014-06-13 15:37 ` [PATCH 40/53] drm/i915/bdw: Handle context switch events oscar.mateo
2014-06-13 15:37 ` [PATCH 41/53] drm/i915/bdw: Avoid non-lite-restore preemptions oscar.mateo
2014-06-18 20:49   ` Daniel Vetter
2014-06-23 11:52     ` Mateo Lozano, Oscar
2014-07-07 12:47       ` Daniel Vetter
2014-06-13 15:38 ` [PATCH 42/53] drm/i915/bdw: Make sure gpu reset still works with Execlists oscar.mateo
2014-06-18 20:50   ` Daniel Vetter
2014-06-19  9:37     ` Mateo Lozano, Oscar
2014-06-13 15:38 ` [PATCH 43/53] drm/i915/bdw: Make sure error capture keeps working " oscar.mateo
2014-06-13 16:54   ` Chris Wilson
2014-06-18 20:52   ` Daniel Vetter
2014-06-18 20:53     ` Daniel Vetter
2014-06-13 15:38 ` [PATCH 44/53] drm/i915/bdw: Help out the ctx switch interrupt handler oscar.mateo
2014-06-13 15:38 ` [PATCH 45/53] drm/i915/bdw: Do not call intel_runtime_pm_get() in an interrupt oscar.mateo
2014-06-18 20:54   ` Daniel Vetter
2014-07-26 10:27     ` Chris Wilson
2014-07-28  8:54       ` Daniel Vetter
2014-07-29  7:37         ` Chris Wilson
2014-07-29 10:26           ` Daniel Vetter
2014-08-08  9:20             ` Chris Wilson
2014-08-08  9:37               ` [Intel-gfx] " Daniel Vetter
2014-08-08  9:37                 ` Daniel Vetter
2014-08-08 13:41                 ` [Intel-gfx] " Greg KH
2014-08-08 13:41                   ` Greg KH
2014-08-09  0:18                   ` [Intel-gfx] " Rafael J. Wysocki
2014-08-09  0:18                     ` Rafael J. Wysocki
2014-08-09  0:14                 ` [Intel-gfx] " Rafael J. Wysocki
2014-08-09  0:14                   ` Rafael J. Wysocki
2014-08-09  1:21                   ` [Intel-gfx] " Alan Stern
2014-08-09  1:21                     ` Alan Stern
2014-08-09  8:53                     ` Daniel Vetter
2014-08-09  8:53                       ` Daniel Vetter
2014-08-10  1:55                       ` [Intel-gfx] " Rafael J. Wysocki
2014-08-10  1:55                         ` Rafael J. Wysocki
2014-06-13 15:38 ` [PATCH 46/53] drm/i915/bdw: Display execlists info in debugfs oscar.mateo
2014-06-18 20:59   ` Daniel Vetter
2014-06-13 15:38 ` [PATCH 47/53] drm/i915/bdw: Display context backing obj & ringbuffer " oscar.mateo
2014-06-13 15:38 ` [PATCH 48/53] drm/i915/bdw: Print context state " oscar.mateo
2014-06-13 15:38 ` [PATCH 49/53] drm/i915: Extract render state preparation oscar.mateo
2014-06-13 15:38 ` [PATCH 50/53] drm/i915/bdw: Render state init for Execlists oscar.mateo
2014-06-13 15:38 ` [PATCH 51/53] drm/i915/bdw: Document Logical Rings, LR contexts and Execlists oscar.mateo
2014-06-13 16:51   ` Chris Wilson
2014-06-16 15:24     ` Mateo Lozano, Oscar
2014-06-16 17:56       ` Daniel Vetter
2014-06-17  8:22         ` Mateo Lozano, Oscar
2014-06-17  9:39           ` Daniel Vetter
2014-06-17  9:46             ` Mateo Lozano, Oscar
2014-06-17 10:08               ` Daniel Vetter
2014-06-17 10:12                 ` Mateo Lozano, Oscar
2014-06-13 15:38 ` [PATCH 52/53] drm/i915/bdw: Enable logical ring contexts oscar.mateo
2014-06-13 15:38 ` [PATCH 53/53] !UPSTREAM: drm/i915: Use MMIO flips oscar.mateo
2014-06-18 21:01   ` Daniel Vetter
2014-06-19  9:50     ` Mateo Lozano, Oscar
2014-06-19 10:04       ` Daniel Vetter
2014-06-19 10:13       ` Chris Wilson
2014-06-19 10:33         ` Mateo Lozano, Oscar
2014-06-18 21:26 ` [PATCH 00/53] Execlists v3 Daniel Vetter

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.