Mesa (main): d3d12: Don't add a second dual-source output for Heaven
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Feb 10 21:00:55 UTC 2022
Module: Mesa
Branch: main
Commit: 2360c25d630875cfc49160e1ef4b2b0c9257c634
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2360c25d630875cfc49160e1ef4b2b0c9257c634
Author: Jesse Natalie <jenatali at microsoft.com>
Date: Wed Feb 9 15:22:40 2022 -0800
d3d12: Don't add a second dual-source output for Heaven
Reviewed-by: Sil Vilerino <sivileri at microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14965>
---
src/gallium/drivers/d3d12/d3d12_compiler.cpp | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/d3d12/d3d12_compiler.cpp b/src/gallium/drivers/d3d12/d3d12_compiler.cpp
index 2975adc485f..f52ce424c86 100644
--- a/src/gallium/drivers/d3d12/d3d12_compiler.cpp
+++ b/src/gallium/drivers/d3d12/d3d12_compiler.cpp
@@ -285,12 +285,17 @@ missing_dual_src_outputs(struct d3d12_context *ctx)
continue;
nir_variable *var = nir_intrinsic_get_var(intr, 0);
- if (var->data.mode != nir_var_shader_out ||
- (var->data.location != FRAG_RESULT_COLOR &&
- var->data.location != FRAG_RESULT_DATA0))
+ if (var->data.mode != nir_var_shader_out)
continue;
- indices_seen |= 1u << var->data.index;
+ unsigned index = var->data.index;
+ if (var->data.location > FRAG_RESULT_DATA0)
+ index = var->data.location - FRAG_RESULT_DATA0;
+ else if (var->data.location != FRAG_RESULT_COLOR &&
+ var->data.location != FRAG_RESULT_DATA0)
+ continue;
+
+ indices_seen |= 1u << index;
if ((indices_seen & 3) == 3)
return 0;
}
More information about the mesa-commit
mailing list