summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2024-08-19 19:03:29 -0700
committerEric Engestrom <eric@engestrom.ch>2024-08-22 10:47:36 +0200
commitcbd6dc81ae62443516189e89e68a1539a0dd24d0 (patch)
tree2fe6f3e6a34d092d2cb9943da10907f4256c44c4
parentee320276cd72f33742ef425952f2ae280232e422 (diff)
anv: Larger memory pools for huge shaders
At least one ray tracing shader in cp2077 is over 4MB on Xe2. There isn't a memory pool large enough for the allocation, so the driver crashes instead. This commit adds 8MB and 16MB pools. I intend this as a stop gap fix. I would prefer to figure out why this shader is so much larger than on previous platforms. The shader in question has 3824 spills and 8625 fills. That is not good. I suspect dealing with that will also solve the problem, but that will require a bit more time. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11739 Suggested-by: Lionel Landwerlin Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30751> (cherry picked from commit 09cf9fe8abbcdeaa31326e4ad35da18e5b33caaa)
-rw-r--r--.pick_status.json2
-rw-r--r--src/intel/vulkan/anv_private.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/.pick_status.json b/.pick_status.json
index a2644e1b7fd..9baad38e5ad 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -44,7 +44,7 @@
"description": "anv: Larger memory pools for huge shaders",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index 66873879fca..c859c3de414 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -699,7 +699,7 @@ struct anv_fixed_size_state_pool {
};
#define ANV_MIN_STATE_SIZE_LOG2 6
-#define ANV_MAX_STATE_SIZE_LOG2 22
+#define ANV_MAX_STATE_SIZE_LOG2 24
#define ANV_STATE_BUCKETS (ANV_MAX_STATE_SIZE_LOG2 - ANV_MIN_STATE_SIZE_LOG2 + 1)