diff options
author | Rob Clark <[email protected]> | 2020-06-20 12:39:14 -0700 |
---|---|---|
committer | Rob Clark <[email protected]> | 2020-06-26 08:53:00 -0700 |
commit | 83b97bf161f50371a09fdc02b3ca045671469b09 (patch) | |
tree | 251bcf9e7ff0cfe84bd2f66852d69669e0220f22 /src/freedreno/vulkan | |
parent | fdbe1ffaf74c4b1e913947cff5f3f40ab7b5feca (diff) |
freedreno/a6xx+ir3: stop generating pointless binning shaders
Currently we always do sysmem if there is tess. And for GS, the binning
pass VS ends up identical to the draw pass VS, so no point in compiling
it twice. (For GS what we should do someday is generate a binning pass
GS, and possibly if we can do cross-stage linking opts, an optimized
binning pass VS, but the required outputs would somehow have to end up
in the shader variant key.)
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5372>
Diffstat (limited to 'src/freedreno/vulkan')
-rw-r--r-- | src/freedreno/vulkan/tu_pipeline.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c index 54d011b002a..64a92008af2 100644 --- a/src/freedreno/vulkan/tu_pipeline.c +++ b/src/freedreno/vulkan/tu_pipeline.c @@ -2001,7 +2001,8 @@ tu_pipeline_builder_compile_shaders(struct tu_pipeline_builder *builder, const struct tu_shader *vs = builder->shaders[MESA_SHADER_VERTEX]; struct ir3_shader_variant *variant; - if (vs->ir3_shader->stream_output.num_outputs) { + if (vs->ir3_shader->stream_output.num_outputs || + !ir3_has_binning_vs(&key)) { variant = builder->variants[MESA_SHADER_VERTEX]; } else { bool created; |