r600: fix color export mask
authorRoland Scheidegger <sroland@vmware.com>
Mon, 5 Mar 2018 19:12:32 +0000 (20:12 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Mon, 5 Mar 2018 19:15:05 +0000 (20:15 +0100)
The r600 code (not the eg one) forgot to copy the ps_color_export_mask
in commit 5b14e06d8b42e2b08ebc52b6c314ef8647d87a1f when updating the
pixel state, leading to misrenderings (probably with MRT).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105262

Tested-by: LoneVVolf <lonewolf@xs4all.nl>
Tested-by: Pavel Vinogradov <public@sourcemage.org>
src/gallium/drivers/r600/r600_state.c

index 7f6da1a3ed23ba3e57e516b7c28e864e01841bf0..923817119f710b06e5ac11f318b95fbcde0fdec6 100644 (file)
@@ -2525,6 +2525,7 @@ void r600_update_ps_state(struct pipe_context *ctx, struct r600_pipe_shader *sha
        }
 
        shader->nr_ps_color_outputs = num_cout;
+       shader->ps_color_export_mask = rshader->ps_color_export_mask;
 
        spi_ps_in_control_0 = S_0286CC_NUM_INTERP(rshader->ninput) |
                                S_0286CC_PERSP_GRADIENT_ENA(1)|