diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-03-15 23:25:55 +0000 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-03-19 03:55:10 +0000 |
commit | b98955e128ca3470d89c925f58567f2369f8072a (patch) | |
tree | 0f77c7c7a6c36fc6f597dace179b4c3fb0f80c98 /src/compiler/spirv | |
parent | 5e6d33a7b6cf7a9753fc8de167341da7f542b7cc (diff) |
panfrost: Rewrite varying assembly
There are two stages to varying assembly in the command stream: creating
the varying buffers in the command stream, and creating the varying meta
descriptors (also in the command stream) linked to the aforementioned
buffers. The previous code for this was ad hoc and brittle, making some
invalid assumptions causing unmaintainable workarounds to pile up across
the driver (both compiler and command stream side).
This patch completely rewrites the varying assembly code. There's a
trivial performance penalty (we now memcpy the varying meta to the
command stream on draw, rather than on compile). That said, the
improvement in flexibility and clarity is well-worth it.
The motivator for these changes was support for gl_PointCoord (and
eventually point sprites for legacy GL), which was impossible to
implement with the old varying assembly code. With the new refactor,
it's super easy; support for gl_PointCoord is included with this patch.
All in all, I'm quite happy with how this turned out.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/compiler/spirv')
0 files changed, 0 insertions, 0 deletions