summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2015-03-29 20:24:57 -0400
committerIlia Mirkin <[email protected]>2015-04-02 00:09:14 -0400
commitd13803c76fd7429df64c1aa3631dcc451e7f1a29 (patch)
tree6ae296dcb3382c048eb638fedba628389e2364e1 /src/gallium/drivers/freedreno
parentf27ec5908416e6a3ea3d770026cd6a1c6ded188f (diff)
freedreno/ir3: add support for FS_COLOR0_WRITES_ALL_CBUFS property
This will enable the driver to tell which regids to link up to which MRT outputs. Signed-off-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno')
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_compiler.c9
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_shader.h2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_compiler.c b/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
index c60025298a6..511cf770ceb 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
@@ -3412,6 +3412,15 @@ compile_instructions(struct ir3_compile_context *ctx)
break;
}
+ case TGSI_TOKEN_TYPE_PROPERTY: {
+ struct tgsi_full_property *prop =
+ &ctx->parser.FullToken.FullProperty;
+ switch (prop->Property.PropertyName) {
+ case TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS:
+ ctx->so->color0_mrt = !!prop->u[0].Data;
+ break;
+ }
+ }
default:
break;
}
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_shader.h b/src/gallium/drivers/freedreno/ir3/ir3_shader.h
index 4b7d03899d6..e5410bf88b2 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_shader.h
+++ b/src/gallium/drivers/freedreno/ir3/ir3_shader.h
@@ -133,7 +133,7 @@ struct ir3_shader_variant {
* to bary.f instructions
*/
uint8_t pos_regid;
- bool frag_coord, frag_face;
+ bool frag_coord, frag_face, color0_mrt;
/* varyings/outputs: */
unsigned outputs_count;