aboutsummaryrefslogtreecommitdiffstats
path: root/src/freedreno/vulkan
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2020-06-20 12:39:14 -0700
committerRob Clark <[email protected]>2020-06-26 08:53:00 -0700
commit83b97bf161f50371a09fdc02b3ca045671469b09 (patch)
tree251bcf9e7ff0cfe84bd2f66852d69669e0220f22 /src/freedreno/vulkan
parentfdbe1ffaf74c4b1e913947cff5f3f40ab7b5feca (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.c3
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;