All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Kristian Høgsberg" <krh@bitplanet.net>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 11/16] intel: Put urb and thread limits into the chipset struct
Date: Tue,  7 Jun 2011 15:34:16 -0400	[thread overview]
Message-ID: <1307475261-32695-12-git-send-email-krh@bitplanet.net> (raw)
In-Reply-To: <1307475261-32695-1-git-send-email-krh@bitplanet.net>

---
 src/mesa/drivers/dri/i965/brw_context.c   |   53 ++++-------------------------
 src/mesa/drivers/dri/intel/intel_screen.c |   46 +++++++++++++++++++++----
 src/mesa/drivers/dri/intel/intel_screen.h |    7 ++++
 3 files changed, 53 insertions(+), 53 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index d6a99ab..e2263d5 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -177,53 +177,14 @@ GLboolean brwCreateContext( int api,
       brw->CMD_PIPELINE_SELECT = CMD_PIPELINE_SELECT_965;
    }
 
-   /* WM maximum threads is number of EUs times number of threads per EU. */
-   if (intel->gen >= 7) {
-      if (IS_IVB_GT1(intel->intelScreen->deviceID)) {
-	 brw->wm_max_threads = 86;
-	 brw->vs_max_threads = 36;
-	 brw->urb.size = 128;
-	 brw->urb.max_vs_entries = 512;
-	 brw->urb.max_gs_entries = 192;
-      } else if (IS_IVB_GT2(intel->intelScreen->deviceID)) {
-	 brw->wm_max_threads = 86;
-	 brw->vs_max_threads = 128;
-	 brw->urb.size = 256;
-	 brw->urb.max_vs_entries = 704;
-	 brw->urb.max_gs_entries = 320;
-      } else {
-	 assert(!"Unknown gen7 device.");
-      }
-   } else if (intel->gen == 6) {
-      if (IS_SNB_GT2(intel->intelScreen->deviceID)) {
-	 /* This could possibly be 80, but is supposed to require
-	  * disabling of WIZ hashing (bit 6 of GT_MODE, 0x20d0) and a
-	  * GPU reset to change.
-	  */
-	 brw->wm_max_threads = 40;
-	 brw->vs_max_threads = 60;
-	 brw->urb.size = 64;            /* volume 5c.5 section 5.1 */
-	 brw->urb.max_vs_entries = 256; /* volume 2a (see 3DSTATE_URB) */
-      } else {
-	 brw->wm_max_threads = 40;
-	 brw->vs_max_threads = 24;
-	 brw->urb.size = 32;            /* volume 5c.5 section 5.1 */
-	 brw->urb.max_vs_entries = 128; /* volume 2a (see 3DSTATE_URB) */
-      }
-   } else if (intel->gen == 5) {
-      brw->urb.size = 1024;
-      brw->vs_max_threads = 72;
-      brw->wm_max_threads = 12 * 6;
-   } else if (intel->is_g4x) {
-      brw->urb.size = 384;
-      brw->vs_max_threads = 32;
-      brw->wm_max_threads = 10 * 5;
-   } else if (intel->gen < 6) {
-      brw->urb.size = 256;
-      brw->vs_max_threads = 16;
-      brw->wm_max_threads = 8 * 4;
+   brw->wm_max_threads = intel->intelScreen->chipset.wm_max_threads;
+   brw->vs_max_threads = intel->intelScreen->chipset.vs_max_threads;
+   brw->urb.size = intel->intelScreen->chipset.urb_size;
+   brw->urb.max_vs_entries = intel->intelScreen->chipset.urb_max_vs_entries;
+   brw->urb.max_gs_entries = intel->intelScreen->chipset.urb_max_gs_entries;
+
+   if (intel->gen == 4)
       brw->has_negative_rhw_bug = GL_TRUE;
-   }
 
    if (INTEL_DEBUG & DEBUG_SINGLE_THREAD) {
       brw->vs_max_threads = 1;
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index 86b4000..bb178e3 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -471,31 +471,63 @@ extern GLboolean i915CreateContext(int api,
 #else
 
 static const struct intel_chipset intel_chipset_i965 = {
-   .gen = 4
+   .gen = 4,
+   .urb_size = 256,
+   .vs_max_threads = 16,
+   .wm_max_threads = 8 * 4,
 };
 
 static const struct intel_chipset intel_chipset_g4x = {
-   .gen = 4
+   .gen = 4,
+   .urb_size = 384,
+   .vs_max_threads = 32,
+   .wm_max_threads = 10 * 5
 };
 
 static const struct intel_chipset intel_chipset_ilk = {
-   .gen = 5
+   .gen = 5,
+   .urb_size = 1024,
+   .vs_max_threads = 72,
+   .wm_max_threads = 12 * 6
 };
 
 static const struct intel_chipset intel_chipset_snb_gt1 = {
-   .gen = 6
+   .gen = 6,
+   .wm_max_threads = 40,
+   .vs_max_threads = 24,
+   .urb_size = 32,            /* volume 5c.5 section 5.1 */
+   .urb_max_vs_entries = 128  /* volume 2a (see 3DSTATE_URB) */
+
 };
 
 static const struct intel_chipset intel_chipset_snb_gt2 = {
-   .gen = 6
+   .gen = 6,
+   /* This could possibly be 80, but is supposed to require
+    * disabling of WIZ hashing (bit 6 of GT_MODE, 0x20d0) and a
+    * GPU reset to change.
+    */
+   .wm_max_threads = 40,
+   .vs_max_threads = 60,
+   .urb_size = 64,            /* volume 5c.5 section 5.1 */
+   .urb_max_vs_entries = 256  /* volume 2a (see 3DSTATE_URB) */
 };
 
 static const struct intel_chipset intel_chipset_ivb_gt1 = {
-   .gen = 7
+   .gen = 7,
+   .wm_max_threads = 86,
+   .vs_max_threads = 36,
+   .urb_size = 128,
+   .urb_max_vs_entries = 512,
+   .urb_max_gs_entries = 192
 };
 
 static const struct intel_chipset intel_chipset_ivb_gt2 = {
-   .gen = 7
+   .gen = 7,
+   .wm_max_threads = 86,
+   .vs_max_threads = 128,
+   .urb_size = 256,
+   .urb_max_vs_entries = 704,
+   .urb_max_gs_entries = 320
 };
 
 static const struct intel_chipset_map chipset_map[] = {
diff --git a/src/mesa/drivers/dri/intel/intel_screen.h b/src/mesa/drivers/dri/intel/intel_screen.h
index bfcc20d..fba62e0 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.h
+++ b/src/mesa/drivers/dri/intel/intel_screen.h
@@ -37,6 +37,13 @@
 struct intel_chipset {
    int gen;
    GLboolean is_945; 
+
+   /* WM maximum threads is number of EUs times number of threads per EU. */
+   int wm_max_threads;
+   int vs_max_threads;
+   int urb_size;
+   int urb_max_vs_entries;
+   int urb_max_gs_entries;
 };
 
 struct intel_screen
-- 
1.7.4.4

  parent reply	other threads:[~2011-06-07 19:36 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-07 19:34 [PATCH 00/16] Move chipset specific stuff to struct intel_chipset Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 01/16] intel: Use gen number instead of PCI ID in decoder Kristian Høgsberg
2011-06-08  0:52   ` Eric Anholt
2011-06-07 19:34 ` [PATCH 02/16] intel: Use the PCI ID map for determining chipset gen Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 03/16] intel: IS_9XX is just gen >= 3 Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 04/16] intel: Remove unused IS_915 macro Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 05/16] intel: Replace intel_screen::gen with the chipset struct Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 06/16] intel: Add a is_945 bit to chipinfo and use that instead of IS_945 Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 07/16] intel: Remove unused IS_MOBILE and IS_IGD* macros Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 08/16] intel: Replace single use of IS_965 with gen check Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 09/16] intel: Drop unused IS_GEN4 macro Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 10/16] intel: Drop unused IS_GEN5-7 macros Kristian Høgsberg
2011-06-07 19:34 ` Kristian Høgsberg [this message]
2011-06-07 19:34 ` [PATCH 12/16] intel: Drop unused IS_SNB/IVB_GT1/2 macros Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 13/16] intel: Replace IS_G4X macro with an is_g4x bit in the chipset struct Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 14/16] intel: Add is_855ish for handling 855 and 865 specific lod clamping Kristian Høgsberg
2011-06-07 20:22   ` Chris Wilson
2011-06-08  1:13     ` Eric Anholt
2011-06-07 19:34 ` [PATCH 15/16] intel: Get chipset name from PCI ID list Kristian Høgsberg
2011-06-07 19:34 ` [PATCH 16/16] intel: Remove intel_chipsets.h Kristian Høgsberg
2011-06-08 11:51 ` [PATCH 00/16] Move chipset specific stuff to struct intel_chipset Kenneth Graunke
2011-06-08 18:36   ` Kristian Høgsberg

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=1307475261-32695-12-git-send-email-krh@bitplanet.net \
    --to=krh@bitplanet.net \
    --cc=intel-gfx@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.