glsl: disable lower_fragdata_array() for NIR drivers
authorTimothy Arceri <tarceri@itsqueeze.com>
Wed, 30 Oct 2019 00:34:27 +0000 (11:34 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Fri, 1 Nov 2019 00:33:54 +0000 (11:33 +1100)
This function was added in 7e414b58640a to work around a defect in
lower_output_reads(). As of the previous commit no NIR driver calls
lower_output_reads().

This change means we don't need the special GLSL IR style
gl_FragData handling for building the resource list in a NIR based
linker.

No shader-db change on SKL i965.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/compiler/glsl/opt_dead_builtin_varyings.cpp

index 853847ebfd55748fa04caedfbe0ade4d7a4f6ce1..3efe6582322a777204db79e7fad64d7c3087bb4a 100644 (file)
@@ -539,7 +539,8 @@ do_dead_builtin_varyings(struct gl_context *ctx,
                          tfeedback_decl *tfeedback_decls)
 {
    /* Lower the gl_FragData array to separate variables. */
-   if (consumer && consumer->Stage == MESA_SHADER_FRAGMENT) {
+   if (consumer && consumer->Stage == MESA_SHADER_FRAGMENT &&
+       !ctx->Const.ShaderCompilerOptions[MESA_SHADER_FRAGMENT].NirOptions) {
       lower_fragdata_array(consumer);
    }