radeonsi: use EXP_NULL for pixel shaders without outputs
authorMarek Olšák <marek.olsak@amd.com>
Sun, 27 Dec 2015 18:36:33 +0000 (19:36 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 7 Jan 2016 17:26:06 +0000 (18:26 +0100)
This never happens currently.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_shader.c
src/gallium/drivers/radeonsi/si_state_shaders.c

index 13e5140..4204db0 100644 (file)
@@ -2153,7 +2153,7 @@ static void si_llvm_emit_fs_epilogue(struct lp_build_tgsi_context * bld_base)
                args[0] = lp_build_const_int32(base->gallivm, 0x0); /* enabled channels */
                args[1] = uint->one; /* whether the EXEC mask is valid */
                args[2] = uint->one; /* DONE bit */
-               args[3] = lp_build_const_int32(base->gallivm, V_008DFC_SQ_EXP_MRT);
+               args[3] = lp_build_const_int32(base->gallivm, V_008DFC_SQ_EXP_NULL);
                args[4] = uint->zero; /* COMPR flag (0 = 32-bit export) */
                args[5] = uint->undef; /* R */
                args[6] = uint->undef; /* G */
index 68ba7ec..af21f3e 100644 (file)
@@ -428,11 +428,8 @@ static void si_shader_ps(struct si_shader *shader)
        colors_written = info->colors_written;
        export_16bpc = shader->key.ps.export_16bpc;
 
-       if (!info->num_outputs) {
-               colors_written = 0x1; /* dummy export */
-               export_16bpc = 0;
-       } else if (info->colors_written == 0x1 &&
-                  info->properties[TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS]) {
+       if (info->colors_written == 0x1 &&
+           info->properties[TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS]) {
                colors_written |= (1 << (shader->key.ps.last_cbuf + 1)) - 1;
        }