summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-04-28 15:21:34 +0000
committerAlyssa Rosenzweig <[email protected]>2019-04-28 21:34:32 +0000
commit0ebf1047a4fcb8c6703c5d3f8bd1d7e47a478e46 (patch)
treecd9e925dbc94744bef9959c6312340b015a49c03
parenta81267f228575335446ec2a2e6ca64a3df7dba5e (diff)
panfrost: Use fp32 (not fp16) varyings
In a perfect world, we'd use fp16 varyings for mediump and fp32 for highp, allowing us to get a performance win without sacrificing conformance. Unfortunately, we're not there (yet), so it's better we assume always fp32 than always fp16 to avoid artefacts / breaking a lot of deqp. Signed-off-by: Alyssa Rosenzweig <[email protected]>
-rw-r--r--src/gallium/drivers/panfrost/pan_assemble.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gallium/drivers/panfrost/pan_assemble.c b/src/gallium/drivers/panfrost/pan_assemble.c
index 52226311832..a6ba5fa6790 100644
--- a/src/gallium/drivers/panfrost/pan_assemble.c
+++ b/src/gallium/drivers/panfrost/pan_assemble.c
@@ -112,7 +112,7 @@ panfrost_shader_compile(struct panfrost_context *ctx, struct mali_shader_meta *m
/* Default to a vec4 varying */
struct mali_attr_meta v = {
- .format = MALI_RGBA16F,
+ .format = MALI_RGBA32F,
.swizzle = default_vec4_swizzle,
.unknown1 = 0x2,
};
@@ -136,12 +136,12 @@ panfrost_shader_compile(struct panfrost_context *ctx, struct mali_shader_meta *m
state->reads_point_coord = true;
} else {
v.index = 0;
- v.src_offset = 8 * (general_purpose_count++);
+ v.src_offset = 16 * (general_purpose_count++);
}
state->varyings[i] = v;
}
- /* Set the stride for the general purpose fp16 vec4 varyings */
- state->general_varying_stride = (2 * 4) * general_purpose_count;
+ /* Set the stride for the general purpose fp32 vec4 varyings */
+ state->general_varying_stride = (4 * 4) * general_purpose_count;
}