diff --git a/src/gallium/drivers/crocus/crocus_state.c b/src/gallium/drivers/crocus/crocus_state.c index 38a04af3160..aeec07b6a2c 100644 --- a/src/gallium/drivers/crocus/crocus_state.c +++ b/src/gallium/drivers/crocus/crocus_state.c @@ -6464,7 +6464,8 @@ crocus_upload_dirty_render_state(struct crocus_context *ice, ps.BindingTableEntryCount = shader->bt.size_bytes / 4; ps.FloatingPointMode = prog_data->use_alt_mode; #if GFX_VER >= 8 - ps.MaximumNumberofThreadsPerPSD = 64 - 2; + ps.MaximumNumberofThreadsPerPSD = + batch->screen->devinfo.max_threads_per_psd - 2; #else ps.MaximumNumberofThreads = batch->screen->devinfo.max_wm_threads - 1; #endif diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index d491fb8cb8f..d6757ec5453 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -4567,9 +4567,8 @@ iris_store_fs_state(const struct intel_device_info *devinfo, ps.VectorMaskEnable = true; ps.BindingTableEntryCount = shader->bt.size_bytes / 4; ps.FloatingPointMode = prog_data->use_alt_mode; - ps.MaximumNumberofThreadsPerPSD = (GFX_VERx10 >= 125 ? 96 - 1 : - GFX_VER == 8 ? 64 - 2 : - 64 - 1); + ps.MaximumNumberofThreadsPerPSD = + devinfo->max_threads_per_psd - (GFX_VER == 8 ? 2 : 1); ps.PushConstantEnable = prog_data->ubo_ranges[0].length > 0; diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h index a4516cf87cc..11d7bb6c107 100644 --- a/src/intel/blorp/blorp_genX_exec.h +++ b/src/intel/blorp/blorp_genX_exec.h @@ -890,12 +890,9 @@ blorp_emit_ps_config(struct blorp_batch *batch, * * In Gfx8 the format is U8-2 whereas in Gfx9+ it is U9-1. */ - if (GFX_VERx10 >= 125) - ps.MaximumNumberofThreadsPerPSD = 96 - 1; - else if (GFX_VER >= 9) - ps.MaximumNumberofThreadsPerPSD = 64 - 1; - else - ps.MaximumNumberofThreadsPerPSD = 64 - 2; + const struct intel_device_info *devinfo = batch->blorp->compiler->devinfo; + ps.MaximumNumberofThreadsPerPSD = + devinfo->max_threads_per_psd - (GFX_VER == 8 ? 2 : 1); switch (params->fast_clear_op) { case ISL_AUX_OP_NONE: diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c index 6957c3bdf24..b48d66c837c 100644 --- a/src/intel/vulkan/genX_pipeline.c +++ b/src/intel/vulkan/genX_pipeline.c @@ -2329,12 +2329,9 @@ emit_3dstate_ps(struct anv_graphics_pipeline *pipeline, ps.SampleMask = 0xff; #endif -#if GFX_VERx10 >= 125 - ps.MaximumNumberofThreadsPerPSD = 96 - 1; -#elif GFX_VER >= 9 - ps.MaximumNumberofThreadsPerPSD = 64 - 1; -#elif GFX_VER >= 8 - ps.MaximumNumberofThreadsPerPSD = 64 - 2; +#if GFX_VER >= 8 + ps.MaximumNumberofThreadsPerPSD = + devinfo->max_threads_per_psd - (GFX_VER == 8 ? 2 : 1); #else ps.MaximumNumberofThreads = devinfo->max_wm_threads - 1; #endif