summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/v3d
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-09-10 08:19:48 -0700
committerEric Anholt <[email protected]>2018-12-07 16:48:23 -0800
commit42652ea51e643af9dfa0f1f7409b473b95d0a406 (patch)
tree9b9f53aa7b03012e7acde4935741a5e1f66e66b0 /src/gallium/drivers/v3d
parentfb9bcf5602b96e4b40ab58e98235678668b10a9a (diff)
v3d: Use combined input/output segments.
The HW apparently has some issues (or at least a much more complicated VCM calculation) with non-combined segments, and the closed source driver also uses combined I/O. Until I get the last CTS failure resolved (which does look plausibly like some VPM stomping), let's use combined I/O too.
Diffstat (limited to 'src/gallium/drivers/v3d')
-rw-r--r--src/gallium/drivers/v3d/v3dx_draw.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/gallium/drivers/v3d/v3dx_draw.c b/src/gallium/drivers/v3d/v3dx_draw.c
index bfb4af13ceb..7db1285f11d 100644
--- a/src/gallium/drivers/v3d/v3dx_draw.c
+++ b/src/gallium/drivers/v3d/v3dx_draw.c
@@ -201,12 +201,15 @@ v3d_emit_gl_shader_state(struct v3d_context *v3d,
/* XXX: Use combined input/output size flag in the common
* case.
*/
- shader.coordinate_shader_has_separate_input_and_output_vpm_blocks = true;
- shader.vertex_shader_has_separate_input_and_output_vpm_blocks = true;
+ shader.coordinate_shader_has_separate_input_and_output_vpm_blocks =
+ v3d->prog.cs->prog_data.vs->separate_segments;
+ shader.vertex_shader_has_separate_input_and_output_vpm_blocks =
+ v3d->prog.vs->prog_data.vs->separate_segments;
+
shader.coordinate_shader_input_vpm_segment_size =
- MAX2(v3d->prog.cs->prog_data.vs->vpm_input_size, 1);
+ v3d->prog.cs->prog_data.vs->vpm_input_size;
shader.vertex_shader_input_vpm_segment_size =
- MAX2(v3d->prog.vs->prog_data.vs->vpm_input_size, 1);
+ v3d->prog.vs->prog_data.vs->vpm_input_size;
shader.coordinate_shader_output_vpm_segment_size =
v3d->prog.cs->prog_data.vs->vpm_output_size;