diff options
author | Dave Airlie <[email protected]> | 2015-09-01 12:29:58 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2015-09-01 16:43:22 +1000 |
commit | 0de53ccc8cbee0f63ba25c9e72664b3cbd31be54 (patch) | |
tree | 3e10dbe0d5a36dd0f529f7313d06b9e7983fdf8b | |
parent | f8a938814e8cdbf65153c277f257df8e22fae9c5 (diff) |
r600g: fix calculation for gpr allocation
I've been chasing a geom shader hang on rv635 since I wrote
r600 geom code, and finally I hacked some values from fglrx
in and I could run texelfetch without failures.
This is totally my fault as well, maths fail 101.
This makes geom shaders on r600 not fail heavily.
Cc: "10.6" "11.0" <[email protected]>
Reviewed-by: Alex Deucher <[email protected]>
Reviewed-by: Edward O'Callaghan <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
-rw-r--r-- | src/gallium/drivers/r600/r600_state.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c index 51527631efd..89e959b6b0f 100644 --- a/src/gallium/drivers/r600/r600_state.c +++ b/src/gallium/drivers/r600/r600_state.c @@ -2051,7 +2051,7 @@ bool r600_adjust_gprs(struct r600_context *rctx) /* always privilege vs stage so that at worst we have the * pixel stage producing wrong output (not the vertex * stage) */ - new_num_ps_gprs = max_gprs - ((new_num_vs_gprs - new_num_es_gprs - new_num_gs_gprs) + def_num_clause_temp_gprs * 2); + new_num_ps_gprs = max_gprs - ((new_num_vs_gprs + new_num_es_gprs + new_num_gs_gprs) + def_num_clause_temp_gprs * 2); new_num_vs_gprs = num_vs_gprs; new_num_gs_gprs = num_gs_gprs; new_num_es_gprs = num_es_gprs; |