[Intel-gfx] [PATCH 00/53] Execlists v3
oscar.mateo at intel.com
oscar.mateo at intel.com
Fri Jun 13 17:37:18 CEST 2014
From: Oscar Mateo <oscar.mateo at 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
More information about the Intel-gfx
mailing list