mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
i965: Validate math instruction sources.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
fce0612fc2
commit
ada891d472
2 changed files with 23 additions and 9 deletions
|
|
@ -1975,8 +1975,6 @@ void gen6_math(struct brw_codegen *p,
|
|||
|
||||
assert(dest.file == BRW_GENERAL_REGISTER_FILE ||
|
||||
(devinfo->gen >= 7 && dest.file == BRW_MESSAGE_REGISTER_FILE));
|
||||
assert(src0.file == BRW_GENERAL_REGISTER_FILE ||
|
||||
(devinfo->gen >= 8 && src0.file == BRW_IMMEDIATE_VALUE));
|
||||
|
||||
assert(dest.hstride == BRW_HORIZONTAL_STRIDE_1);
|
||||
if (devinfo->gen == 6) {
|
||||
|
|
@ -1994,13 +1992,6 @@ void gen6_math(struct brw_codegen *p,
|
|||
} else {
|
||||
assert(src0.type == BRW_REGISTER_TYPE_F);
|
||||
assert(src1.type == BRW_REGISTER_TYPE_F);
|
||||
if (function == BRW_MATH_FUNCTION_POW) {
|
||||
assert(src1.file == BRW_GENERAL_REGISTER_FILE ||
|
||||
(devinfo->gen >= 8 && src1.file == BRW_IMMEDIATE_VALUE));
|
||||
} else {
|
||||
assert(src1.file == BRW_ARCHITECTURE_REGISTER_FILE &&
|
||||
src1.nr == BRW_ARF_NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/* Source modifiers are ignored for extended math instructions on Gen6. */
|
||||
|
|
|
|||
|
|
@ -152,6 +152,29 @@ TEST_P(validation_test, src1_null_reg)
|
|||
EXPECT_FALSE(validate(p));
|
||||
}
|
||||
|
||||
TEST_P(validation_test, math_src0_null_reg)
|
||||
{
|
||||
if (devinfo.gen >= 6) {
|
||||
gen6_math(p, g0, BRW_MATH_FUNCTION_SIN, null, null);
|
||||
} else {
|
||||
gen4_math(p, g0, BRW_MATH_FUNCTION_SIN, 0, null, BRW_MATH_PRECISION_FULL);
|
||||
}
|
||||
|
||||
EXPECT_FALSE(validate(p));
|
||||
}
|
||||
|
||||
TEST_P(validation_test, math_src1_null_reg)
|
||||
{
|
||||
if (devinfo.gen >= 6) {
|
||||
gen6_math(p, g0, BRW_MATH_FUNCTION_POW, g0, null);
|
||||
EXPECT_FALSE(validate(p));
|
||||
} else {
|
||||
/* Math instructions on Gen4/5 are actually SEND messages with payloads.
|
||||
* src1 is an immediate message descriptor set by gen4_math.
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
TEST_P(validation_test, opcode46)
|
||||
{
|
||||
/* opcode 46 is "push" on Gen 4 and 5
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue