Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/3] Add Pooled EU support to BXT
@ 2015-07-20  9:46 Arun Siluvery
  2015-07-20  9:46 ` [PATCH v3 1/3] drm/i915: Do kunmap if renderstate parsing fails Arun Siluvery
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Arun Siluvery @ 2015-07-20  9:46 UTC (permalink / raw)
  To: intel-gfx; +Cc: Mika Kuoppala

v1: http://lists.freedesktop.org/archives/intel-gfx/2015-July/071951.html
v2: http://lists.freedesktop.org/archives/intel-gfx/2015-July/071963.html

v3: Only code change is to change the type of aux_batch_offset from u64 to u32.

Chris completed the review so resending all patches with r-b tag.
http://lists.freedesktop.org/archives/intel-gfx/2015-July/071971.html

Patch1 is separately sent by Mika, since there is a dependency I have included
it in this series (which is also reviewed).


Arun Siluvery (2):
  drm/i915: Add provision to extend Golden context batch
  drm/i915:bxt: Enable Pooled EU support

Mika Kuoppala (1):
  drm/i915: Do kunmap if renderstate parsing fails

 drivers/gpu/drm/i915/i915_dma.c              |  3 ++
 drivers/gpu/drm/i915/i915_drv.c              |  1 +
 drivers/gpu/drm/i915/i915_drv.h              |  5 +-
 drivers/gpu/drm/i915/i915_gem_render_state.c | 68 +++++++++++++++++++++++++++-
 drivers/gpu/drm/i915/i915_gem_render_state.h |  2 +
 drivers/gpu/drm/i915/i915_reg.h              |  2 +
 drivers/gpu/drm/i915/intel_lrc.c             |  6 +++
 include/uapi/drm/i915_drm.h                  |  1 +
 8 files changed, 85 insertions(+), 3 deletions(-)

-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread
* [PATCH v2 4/4] drm/i915:bxt: Enable Pooled EU support
@ 2015-07-17 18:13 Arun Siluvery
  2015-07-17 18:55 ` [PATCH v3 3/3] " Arun Siluvery
  0 siblings, 1 reply; 6+ messages in thread
From: Arun Siluvery @ 2015-07-17 18:13 UTC (permalink / raw)
  To: intel-gfx; +Cc: Mika Kuoppala

This mode allows to assign EUs to pools which can process work collectively.
The command to enable this mode should be issued as part of context initialization.

The pooled mode is global, once enabled it has to stay the same across all
contexts until HW reset hence this is sent in auxiliary golden context batch.
Thanks to Mika for the preliminary review and comments.

v2: explain why this is enabled in golden context, use feature flag while
enabling the support (Chris)

Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Armin Reese <armin.c.reese@intel.com>
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gem_render_state.c | 15 +++++++++++++++
 drivers/gpu/drm/i915/i915_reg.h              |  2 ++
 2 files changed, 17 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c
index 5026a62..e4ff342 100644
--- a/drivers/gpu/drm/i915/i915_gem_render_state.c
+++ b/drivers/gpu/drm/i915/i915_gem_render_state.c
@@ -93,6 +93,7 @@ free_gem:
 
 static int render_state_setup(struct render_state *so)
 {
+	struct drm_device *dev = so->obj->base.dev;
 	const struct intel_renderstate_rodata *rodata = so->rodata;
 	unsigned int i = 0, reloc_index = 0;
 	struct page *page;
@@ -134,6 +135,20 @@ static int render_state_setup(struct render_state *so)
 
 	so->aux_batch_offset = i * sizeof(u32);
 
+	if (HAS_POOLED_EU(dev)) {
+		u32 pool_config = 0;
+		struct drm_i915_private *dev_priv = to_i915(dev);
+
+		OUT_BATCH(d, i, GEN9_MEDIA_POOL_STATE);
+		OUT_BATCH(d, i, GEN9_MEDIA_POOL_ENABLE);
+		if (dev_priv->info.subslice_total == 3)
+			pool_config = 0x00777000;
+		OUT_BATCH(d, i, pool_config);
+		OUT_BATCH(d, i, 0);
+		OUT_BATCH(d, i, 0);
+		OUT_BATCH(d, i, 0);
+	}
+
 	OUT_BATCH(d, i, MI_BATCH_BUFFER_END);
 	so->aux_batch_size = (i * sizeof(u32)) - so->aux_batch_offset;
 
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 9a2ffad..e052499 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -379,6 +379,8 @@
  */
 #define GFX_INSTR(opcode, flags) ((0x3 << 29) | ((opcode) << 24) | (flags))
 
+#define GEN9_MEDIA_POOL_STATE     ((0x3 << 29) | (0x2 << 27) | (0x5 << 16) | 4)
+#define   GEN9_MEDIA_POOL_ENABLE  (1 << 31)
 #define GFX_OP_RASTER_RULES    ((0x3<<29)|(0x7<<24))
 #define GFX_OP_SCISSOR         ((0x3<<29)|(0x1c<<24)|(0x10<<19))
 #define   SC_UPDATE_SCISSOR       (0x1<<1)
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

end of thread, other threads:[~2015-07-21  7:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-20  9:46 [PATCH v3 0/3] Add Pooled EU support to BXT Arun Siluvery
2015-07-20  9:46 ` [PATCH v3 1/3] drm/i915: Do kunmap if renderstate parsing fails Arun Siluvery
2015-07-20  9:46 ` [PATCH v3 2/3] drm/i915: Add provision to extend Golden context batch Arun Siluvery
2015-07-20  9:46 ` [PATCH v3 3/3] drm/i915:bxt: Enable Pooled EU support Arun Siluvery
2015-07-21  7:33   ` Daniel Vetter
  -- strict thread matches above, loose matches on Subject: below --
2015-07-17 18:13 [PATCH v2 4/4] " Arun Siluvery
2015-07-17 18:55 ` [PATCH v3 3/3] " Arun Siluvery

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox