summaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
authorRafael Antognolli <[email protected]>2017-12-18 15:23:11 -0800
committerRafael Antognolli <[email protected]>2017-12-19 12:32:24 -0800
commit85789831b487c08eb4817fb902efc2e6b614d9ac (patch)
treefbfa6d7b8adbf1d9f2485b57687cd18a2f1e1d5f /src/intel
parent4237c3d64570fb1fd295473f3fa9e45a83946a81 (diff)
intel/compiler/gen10: Disable push constants.
We still have gpu hangs on Cannonlake when using push constants, so disable them for now until we have a proper fix for these hangs. v2: Add warning message when creating context too. Signed-off-by: Rafael Antognolli <[email protected]> Cc: Ben Widawsky <[email protected]> Cc: Kenneth Graunke <[email protected]> Reviewed-by: Ben Widawsky <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/compiler/brw_fs.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index 3717c50e32a..6d9f0eccb29 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -2096,6 +2096,15 @@ fs_visitor::assign_constant_locations()
if (subgroup_id_index >= 0)
max_push_components--; /* Save a slot for the thread ID */
+ /* FIXME: We currently have some GPU hangs that happen apparently when using
+ * push constants. Since we have no solution for such hangs yet, just
+ * go ahead and use pull constants for now.
+ */
+ if (devinfo->gen == 10 && compiler->supports_pull_constants) {
+ compiler->shader_perf_log(log_data, "Disabling push constants.");
+ max_push_components = 0;
+ }
+
/* We push small arrays, but no bigger than 16 floats. This is big enough
* for a vec4 but hopefully not large enough to push out other stuff. We
* should probably use a better heuristic at some point.