Kaynağa Gözat

i965: Fix assertions about register types for INT DIV in brw_math.

BRW_MATH_FUNCTION_REMAINDER was missing.  Also, it seems worthwhile to
assert that INT DIV's arguments are signed/unsigned integers.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
tags/mesa-8.0-rc1
Kenneth Graunke 14 yıl önce
ebeveyn
işleme
ee2bf3a4b6
1 değiştirilmiş dosya ile 11 ekleme ve 4 silme
  1. 11
    4
      src/mesa/drivers/dri/i965/brw_eu_emit.c

+ 11
- 4
src/mesa/drivers/dri/i965/brw_eu_emit.c Dosyayı Görüntüle

@@ -1478,8 +1478,11 @@ void brw_math( struct brw_compile *p,
assert(!src.negate);
assert(!src.abs);

if (function != BRW_MATH_FUNCTION_INT_DIV_QUOTIENT &&
function != BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER) {
if (function == BRW_MATH_FUNCTION_INT_DIV_QUOTIENT ||
function == BRW_MATH_FUNCTION_INT_DIV_REMAINDER ||
function == BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER) {
assert(src.type != BRW_REGISTER_TYPE_F);
} else {
assert(src.type == BRW_REGISTER_TYPE_F);
}

@@ -1538,8 +1541,12 @@ void brw_math2(struct brw_compile *p,
assert(src0.hstride == BRW_HORIZONTAL_STRIDE_1);
assert(src1.hstride == BRW_HORIZONTAL_STRIDE_1);

if (function != BRW_MATH_FUNCTION_INT_DIV_QUOTIENT &&
function != BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER) {
if (function == BRW_MATH_FUNCTION_INT_DIV_QUOTIENT ||
function == BRW_MATH_FUNCTION_INT_DIV_REMAINDER ||
function == BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER) {
assert(src0.type != BRW_REGISTER_TYPE_F);
assert(src1.type != BRW_REGISTER_TYPE_F);
} else {
assert(src0.type == BRW_REGISTER_TYPE_F);
assert(src1.type == BRW_REGISTER_TYPE_F);
}

Loading…
İptal
Kaydet