diff options
author | David Li <davli@nvidia.com> | 2015-04-24 02:02:08 -0400 |
---|---|---|
committer | Ishan Mittal <imittal@nvidia.com> | 2015-05-18 02:01:47 -0400 |
commit | 11e732387debdc3e89ad1d7a096a0b54de975c77 (patch) | |
tree | 255eaa9a592497acb149924ea109b807196ac055 | |
parent | 024c14c3f55ad87fec6517f0a3ef1e61073c75fd (diff) |
gpu: nvgpu: fix setting gr_pd_ab_dist_cfg1_r()
gr_*__set_alpha_circular_buffer_size() left max_batches field of
gr_pd_ab_dist_cfg1_r as 0 which results in too many alpha beta
transitions and poor performance when tessellation or geometry
shaders are used
Change-Id: If18feb1119e9672005455155dc56337cd444a1f1
Signed-off-by: David Li <davli@nvidia.com>
Reviewed-on: http://git-master/r/735476
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/gr_gm20b.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index b709a980..d0c5da0e 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -4692,7 +4692,8 @@ static void gk20a_gr_set_alpha_circular_buffer_size(struct gk20a *g, u32 data) | |||
4692 | gr_pd_ab_dist_cfg1_max_output_granularity_v(); | 4692 | gr_pd_ab_dist_cfg1_max_output_granularity_v(); |
4693 | 4693 | ||
4694 | gk20a_writel(g, gr_pd_ab_dist_cfg1_r(), | 4694 | gk20a_writel(g, gr_pd_ab_dist_cfg1_r(), |
4695 | gr_pd_ab_dist_cfg1_max_output_f(pd_ab_max_output)); | 4695 | gr_pd_ab_dist_cfg1_max_output_f(pd_ab_max_output) | |
4696 | gr_pd_ab_dist_cfg1_max_batches_init_f()); | ||
4696 | 4697 | ||
4697 | for (gpc_index = 0; gpc_index < gr->gpc_count; gpc_index++) { | 4698 | for (gpc_index = 0; gpc_index < gr->gpc_count; gpc_index++) { |
4698 | stride = proj_gpc_stride_v() * gpc_index; | 4699 | stride = proj_gpc_stride_v() * gpc_index; |
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c index e318f002..74761258 100644 --- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c | |||
@@ -324,7 +324,8 @@ static void gr_gm20b_set_alpha_circular_buffer_size(struct gk20a *g, u32 data) | |||
324 | gr_pd_ab_dist_cfg1_max_output_granularity_v(); | 324 | gr_pd_ab_dist_cfg1_max_output_granularity_v(); |
325 | 325 | ||
326 | gk20a_writel(g, gr_pd_ab_dist_cfg1_r(), | 326 | gk20a_writel(g, gr_pd_ab_dist_cfg1_r(), |
327 | gr_pd_ab_dist_cfg1_max_output_f(pd_ab_max_output)); | 327 | gr_pd_ab_dist_cfg1_max_output_f(pd_ab_max_output) | |
328 | gr_pd_ab_dist_cfg1_max_batches_init_f()); | ||
328 | 329 | ||
329 | for (gpc_index = 0; gpc_index < gr->gpc_count; gpc_index++) { | 330 | for (gpc_index = 0; gpc_index < gr->gpc_count; gpc_index++) { |
330 | stride = proj_gpc_stride_v() * gpc_index; | 331 | stride = proj_gpc_stride_v() * gpc_index; |