[Mesa-dev] [PATCH 12.0 backport] intel: Fix pixel shader scratch space allocation on Gen9+ platforms.

Kenneth Graunke kenneth at whitecape.org
Tue Nov 8 18:29:08 UTC 2016


We had missed a bit of errata - PS scratch needs to be computed as if
there were 4 subslices per slice, rather than 3.

This is a conservative backport of commit <XXX: include sha>.  It only
increases the scratch amount, unlike the original commit which decreases
it Skylake GT1-3 to avoid overallocating.

Cc: "12.0 11.2" <mesa-stable at lists.freedesktop.org>
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/mesa/drivers/dri/i965/brw_device_info.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_device_info.c b/src/mesa/drivers/dri/i965/brw_device_info.c
index 77bbe78..e191c6c 100644
--- a/src/mesa/drivers/dri/i965/brw_device_info.c
+++ b/src/mesa/drivers/dri/i965/brw_device_info.c
@@ -336,7 +336,7 @@ static const struct brw_device_info brw_device_info_chv = {
    .max_gs_threads = 336,                           \
    .max_hs_threads = 336,                           \
    .max_ds_threads = 336,                           \
-   .max_wm_threads = 64 * 9,                        \
+   .max_wm_threads = 64 * 12,                       \
    .max_cs_threads = 56,                            \
    .urb = {                                         \
       .size = 384,                                  \
@@ -389,7 +389,7 @@ static const struct brw_device_info brw_device_info_bxt = {
    .max_hs_threads = 112,
    .max_ds_threads = 112,
    .max_gs_threads = 112,
-   .max_wm_threads = 64 * 3,
+   .max_wm_threads = 64 * 4,
    .max_cs_threads = 6 * 6,
    .urb = {
       .size = 192,
@@ -412,7 +412,7 @@ static const struct brw_device_info brw_device_info_bxt_2x6 = {
    .max_hs_threads = 56, /* XXX: guess */
    .max_ds_threads = 56,
    .max_gs_threads = 56,
-   .max_wm_threads = 64 * 2,
+   .max_wm_threads = 64 * 4,
    .max_cs_threads = 6 * 6,
    .urb = {
       .size = 128,
@@ -439,7 +439,7 @@ static const struct brw_device_info brw_device_info_kbl_gt1 = {
    .gt = 1,
 
    .max_cs_threads = 7 * 6,
-   .max_wm_threads = KBL_MAX_THREADS_PER_PSD * 2,
+   .max_wm_threads = KBL_MAX_THREADS_PER_PSD * 4,
    .urb.size = 192,
    .num_slices = 1,
 };
@@ -449,7 +449,7 @@ static const struct brw_device_info brw_device_info_kbl_gt1_5 = {
    .gt = 1,
 
    .max_cs_threads = 7 * 6,
-   .max_wm_threads = KBL_MAX_THREADS_PER_PSD * 3,
+   .max_wm_threads = KBL_MAX_THREADS_PER_PSD * 4,
    .num_slices = 1,
 };
 
@@ -457,7 +457,7 @@ static const struct brw_device_info brw_device_info_kbl_gt2 = {
    GEN9_FEATURES,
    .gt = 2,
 
-   .max_wm_threads = KBL_MAX_THREADS_PER_PSD * 3,
+   .max_wm_threads = KBL_MAX_THREADS_PER_PSD * 4,
    .num_slices = 1,
 };
 
@@ -465,7 +465,7 @@ static const struct brw_device_info brw_device_info_kbl_gt3 = {
    GEN9_FEATURES,
    .gt = 3,
 
-   .max_wm_threads = KBL_MAX_THREADS_PER_PSD * 6,
+   .max_wm_threads = KBL_MAX_THREADS_PER_PSD * 8,
    .num_slices = 2,
 };
 
@@ -473,7 +473,7 @@ static const struct brw_device_info brw_device_info_kbl_gt4 = {
    GEN9_FEATURES,
    .gt = 4,
 
-   .max_wm_threads = KBL_MAX_THREADS_PER_PSD * 9,
+   .max_wm_threads = KBL_MAX_THREADS_PER_PSD * 12,
    /*
     * From the "L3 Allocation and Programming" documentation:
     *
-- 
2.10.2



More information about the mesa-dev mailing list