>>-----Original Message----- >>From: Ian Romanick [mailto:i...@freedesktop.org] >>Sent: 2011年4月6日 11:06 >>To: mesa-dev@lists.freedesktop.org >>Cc: Zou, Nanhai >>Subject: Re: Mesa (master): i965: SNB GT1 has only 32k urb and max 128 urb >>entries. >> >>-----BEGIN PGP SIGNED MESSAGE----- >>Hash: SHA1 >> >>On 03/02/2011 06:31 PM, Nan hai Zou wrote: >>> Module: Mesa >>> Branch: master >>> Commit: 118ecb1a2226494929a87c36b7802b64451ca004 >>> URL: >>http://cgit.freedesktop.org/mesa/mesa/commit/?id=118ecb1a2226494929a87c36b >>7802b64451ca004 >>> >>> Author: Zou Nan hai <nanhai....@intel.com> >>> Date: Thu Mar 3 10:30:06 2011 +0800 >>> >>> i965: SNB GT1 has only 32k urb and max 128 urb entries. >>> >>> Signed-off-by: Zou Nan hai <nanhai....@intel.com> >>> >>> --- >>> >>> src/mesa/drivers/dri/i965/gen6_urb.c | 19 +++++++++++++++---- >>> src/mesa/drivers/dri/intel/intel_chipset.h | 4 ++++ >>> 2 files changed, 19 insertions(+), 4 deletions(-) >>> >>> diff --git a/src/mesa/drivers/dri/i965/gen6_urb.c >>b/src/mesa/drivers/dri/i965/gen6_urb.c >>> index 57be50a..c3819f9 100644 >>> --- a/src/mesa/drivers/dri/i965/gen6_urb.c >>> +++ b/src/mesa/drivers/dri/i965/gen6_urb.c >>> @@ -34,15 +34,26 @@ >>> static void >>> prepare_urb( struct brw_context *brw ) >>> { >>> - brw->urb.nr_vs_entries = 256; >>> - brw->urb.nr_gs_entries = 256; >>> + int urb_size, max_urb_entry; >>> + struct intel_context *intel = &brw->intel; >>> + >>> + if (IS_GT1(intel->intelScreen->deviceID)) { >>> + urb_size = 32 * 1024; >>> + max_urb_entry = 128; >>> + } else { >>> + urb_size = 64 * 1024; >>> + max_urb_entry = 256; >>> + } >>> + >>> + brw->urb.nr_vs_entries = max_urb_entry; >>> + brw->urb.nr_gs_entries = max_urb_entry; >>> >>> /* CACHE_NEW_VS_PROG */ >>> brw->urb.vs_size = MAX2(brw->vs.prog_data->urb_entry_size, 1); >>> >>> - if (256 * brw->urb.vs_size > 64 * 1024) >>> + if (2 * brw->urb.vs_size > urb_size) >> >>Shouldn't this be: >> >> if ((2 * brw->urb.vs_size * brw->urb.nr_vs_entries) > urb_size) Yes, it should be.
Thanks Zou Nanhai >> >>> brw->urb.nr_vs_entries = brw->urb.nr_gs_entries = >>> - (64 * 1024 ) / brw->urb.vs_size; >>> + (urb_size ) / (2 * brw->urb.vs_size); >>> } >>> >>> static void >>> diff --git a/src/mesa/drivers/dri/intel/intel_chipset.h >>b/src/mesa/drivers/dri/intel/intel_chipset.h >>> index 4fecdbe..4ff9140 100644 >>> --- a/src/mesa/drivers/dri/intel/intel_chipset.h >>> +++ b/src/mesa/drivers/dri/intel/intel_chipset.h >>> @@ -133,6 +133,10 @@ >>> devid == PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS || \ >>> devid == PCI_CHIP_SANDYBRIDGE_S) >>> >>> +#define IS_GT1(devid) (devid == PCI_CHIP_SANDYBRIDGE_GT1 || \ >>> + devid == PCI_CHIP_SANDYBRIDGE_M_GT1 || \ >>> + devid == PCI_CHIP_SANDYBRIDGE_S) >>> + >>> #define IS_965(devid) (IS_GEN4(devid) || \ >>> IS_G4X(devid) || \ >>> IS_GEN5(devid) || \ >>-----BEGIN PGP SIGNATURE----- >>Version: GnuPG v1.4.11 (GNU/Linux) >>Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ >> >>iEYEARECAAYFAk2b2KAACgkQX1gOwKyEAw/IjwCePSJRzTgEqn01U9xCXvd6zYbv >>0jQAniOM0tnfCf7EHp3Rw/xBiFx6KbMu >>=pBHg >>-----END PGP SIGNATURE----- _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev