diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-04-03 01:48:09 +0000 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-04-04 03:44:15 +0000 |
commit | 7e8de5a707f7279929d7396550024b8cdc6a8c61 (patch) | |
tree | f9dd09dc725259a788c3620b33d2f37ee11afc8f /src/gallium/drivers/panfrost/pan_context.h | |
parent | a83862754e94ea11602ac8c43b940b26775b9c4d (diff) |
panfrost: Implement system values
This patch implements system values via specially-crafted uniforms.
While we previously had an ad hoc system for passing the viewport into
the vertex shader, this commit generalizes the system to allow for
arbitrary system values to be added to both shader stages. While we're
at it, we clean up uniform handling code (which was considerably muddied
to handle the ad hoc viewport uniform).
This commit serves as both a cleanup of the existing codebase and the
precursor to new functionality, like implementing textureSize().
Concurrent with these changes is respecting the depth transform, which
was not possible with the old fixed uniform system and here serves as a
proof-of-correctness test (as well as justifying the NIR changes).
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/gallium/drivers/panfrost/pan_context.h')
-rw-r--r-- | src/gallium/drivers/panfrost/pan_context.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.h b/src/gallium/drivers/panfrost/pan_context.h index 7947169f83b..d071da1c62f 100644 --- a/src/gallium/drivers/panfrost/pan_context.h +++ b/src/gallium/drivers/panfrost/pan_context.h @@ -42,6 +42,8 @@ #include "util/u_blitter.h" #include "util/hash_table.h" +#include "midgard/midgard_compile.h" + /* Forward declare to avoid extra header dep */ struct prim_convert_context; @@ -264,6 +266,9 @@ struct panfrost_shader_state { unsigned general_varying_stride; struct mali_attr_meta varyings[PIPE_MAX_ATTRIBS]; + unsigned sysval_count; + unsigned sysval[MAX_SYSVAL_COUNT]; + /* Information on this particular shader variant */ struct pipe_alpha_state alpha_state; }; |