Commit 0ebf1047 authored by Alyssa Rosenzweig's avatar Alyssa Rosenzweig
Browse files

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's avatarAlyssa Rosenzweig <alyssa@rosenzweig.io>
parent a81267f2
......@@ -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;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment