diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-08-07 10:33:15 -0700 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-08-13 09:43:32 -0700 |
commit | e7a05a601eb065b666d07753fa6eca865d3bd160 (patch) | |
tree | 094dad132491ae127bb163a2ece1497184a23da4 /src/gallium/drivers | |
parent | 5b0a1a4e49b49cb61d9369d3aaacfe1d124571c8 (diff) |
panfrost: Fixup stream out information per variant
We could probably get away with doing this once per pipe_shader_state
but let's not jump down that rabbit hole quite yet.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Reviewed-by: Boris Brezillon <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/panfrost/pan_context.c | 7 | ||||
-rw-r--r-- | src/gallium/drivers/panfrost/pan_context.h | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index 79995fa11c7..e023144b9c8 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -2129,6 +2129,13 @@ panfrost_bind_shader_state( &outputs_written); shader_state->compiled = true; + + /* Fixup the stream out information, since what Gallium returns + * normally is mildly insane */ + + shader_state->stream_output = variants->base.stream_output; + shader_state->so_mask = + update_so_info(&shader_state->stream_output, outputs_written); } } diff --git a/src/gallium/drivers/panfrost/pan_context.h b/src/gallium/drivers/panfrost/pan_context.h index cf9b93d68c5..ba27ced9074 100644 --- a/src/gallium/drivers/panfrost/pan_context.h +++ b/src/gallium/drivers/panfrost/pan_context.h @@ -232,6 +232,8 @@ struct panfrost_shader_state { struct mali_attr_meta varyings[PIPE_MAX_ATTRIBS]; gl_varying_slot varyings_loc[PIPE_MAX_ATTRIBS]; + struct pipe_stream_output_info stream_output; + uint64_t so_mask; unsigned sysval_count; unsigned sysval[MAX_SYSVAL_COUNT]; |