mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-29 20:20:24 +01:00
i965: Fix ARL to work on gen6.
RNDD isn't one of the instructions that can do conversion from
execution type to destination type.
Fixes glsl-vs-arrays-3.
(cherry picked from commit 7cec7bf56c)
This commit is contained in:
parent
9a6d7d7eb8
commit
da4ecaef8a
1 changed files with 17 additions and 1 deletions
|
|
@ -658,6 +658,22 @@ static void emit_min( struct brw_compile *p,
|
|||
}
|
||||
}
|
||||
|
||||
static void emit_arl(struct brw_compile *p,
|
||||
struct brw_reg dst,
|
||||
struct brw_reg src)
|
||||
{
|
||||
struct intel_context *intel = &p->brw->intel;
|
||||
|
||||
if (intel->gen >= 6) {
|
||||
struct brw_reg dst_f = retype(dst, BRW_REGISTER_TYPE_F);
|
||||
|
||||
brw_RNDD(p, dst_f, src);
|
||||
brw_MOV(p, dst, dst_f);
|
||||
} else {
|
||||
brw_RNDD(p, dst, src);
|
||||
}
|
||||
}
|
||||
|
||||
static void emit_math1_gen4(struct brw_vs_compile *c,
|
||||
GLuint function,
|
||||
struct brw_reg dst,
|
||||
|
|
@ -1959,7 +1975,7 @@ void brw_vs_emit(struct brw_vs_compile *c )
|
|||
emit_math1(c, BRW_MATH_FUNCTION_EXP, dst, args[0], BRW_MATH_PRECISION_FULL);
|
||||
break;
|
||||
case OPCODE_ARL:
|
||||
brw_RNDD(p, dst, args[0]);
|
||||
emit_arl(p, dst, args[0]);
|
||||
break;
|
||||
case OPCODE_FLR:
|
||||
brw_RNDD(p, dst, args[0]);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue