Commit 90c7ad67 by Alexis Hetu Committed by Alexis Hétu

Short4 warnings fixed

Switched the Short4 constructor from 'short' to 'unsigned short' in order to accept hexadecimal values, which is generally how Short4 values are initialized. Change-Id: I89eb41bfd65f9071ba42dbb6a06d4349cbb89d67 Reviewed-on: https://swiftshader-review.googlesource.com/5701Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent 53977f1c
......@@ -3270,6 +3270,20 @@ namespace sw
// xyzw.parent = this;
}
UShort4::UShort4(unsigned short xyzw)
{
// xyzw.parent = this;
Constant *constantVector[4];
constantVector[0] = Nucleus::createConstantShort(xyzw);
constantVector[1] = Nucleus::createConstantShort(xyzw);
constantVector[2] = Nucleus::createConstantShort(xyzw);
constantVector[3] = Nucleus::createConstantShort(xyzw);
Value *vector = Nucleus::createConstantVector(constantVector, 4);
storeValue(Nucleus::createBitCast(vector, getType()));
}
UShort4::UShort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w)
{
// xyzw.parent = this;
......
......@@ -1005,6 +1005,7 @@ namespace sw
explicit UShort4(RValue<Float4> cast, bool saturate = false);
UShort4();
UShort4(unsigned short xyzw);
UShort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w);
UShort4(RValue<UShort4> rhs);
UShort4(const UShort4 &rhs);
......
......@@ -545,29 +545,29 @@ namespace sw
break;
case ALPHA_EQUAL:
cmp = CmpEQ(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)));
aMask = SignMask(Pack(cmp, Short4(0x0000, 0x0000, 0x0000, 0x0000)));
aMask = SignMask(Pack(cmp, Short4(0x0000)));
break;
case ALPHA_NOTEQUAL: // a != b ~ !(a == b)
cmp = CmpEQ(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))) ^ Short4((short)0xFFFF, (short)0xFFFF, (short)0xFFFF, (short)0xFFFF); // FIXME
aMask = SignMask(Pack(cmp, Short4(0x0000, 0x0000, 0x0000, 0x0000)));
case ALPHA_NOTEQUAL: // a != b ~ !(a == b)
cmp = CmpEQ(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))) ^ Short4(0xFFFFu); // FIXME
aMask = SignMask(Pack(cmp, Short4(0x0000)));
break;
case ALPHA_LESS: // a < b ~ b > a
case ALPHA_LESS: // a < b ~ b > a
cmp = CmpGT(*Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)), alpha);
aMask = SignMask(Pack(cmp, Short4(0x0000, 0x0000, 0x0000, 0x0000)));
aMask = SignMask(Pack(cmp, Short4(0x0000)));
break;
case ALPHA_GREATEREQUAL: // a >= b ~ (a > b) || (a == b) ~ !(b > a) // TODO: Approximate
case ALPHA_GREATEREQUAL: // a >= b ~ (a > b) || (a == b) ~ !(b > a) // TODO: Approximate
equal = CmpEQ(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)));
cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)));
cmp |= equal;
aMask = SignMask(Pack(cmp, Short4(0x0000, 0x0000, 0x0000, 0x0000)));
aMask = SignMask(Pack(cmp, Short4(0x0000)));
break;
case ALPHA_LESSEQUAL: // a <= b ~ !(a > b)
cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))) ^ Short4((short)0xFFFF, (short)0xFFFF, (short)0xFFFF, (short)0xFFFF); // FIXME
aMask = SignMask(Pack(cmp, Short4(0x0000, 0x0000, 0x0000, 0x0000)));
case ALPHA_LESSEQUAL: // a <= b ~ !(a > b)
cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))) ^ Short4(0xFFFFu); // FIXME
aMask = SignMask(Pack(cmp, Short4(0x0000)));
break;
case ALPHA_GREATER: // a > b
case ALPHA_GREATER: // a > b
cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)));
aMask = SignMask(Pack(cmp, Short4(0x0000, 0x0000, 0x0000, 0x0000)));
aMask = SignMask(Pack(cmp, Short4(0x0000)));
break;
default:
ASSERT(false);
......@@ -1224,9 +1224,9 @@ namespace sw
current.z = pixel.z;
break;
case BLENDOP_NULL:
current.x = Short4(0x0000, 0x0000, 0x0000, 0x0000);
current.y = Short4(0x0000, 0x0000, 0x0000, 0x0000);
current.z = Short4(0x0000, 0x0000, 0x0000, 0x0000);
current.x = Short4(0x0000);
current.y = Short4(0x0000);
current.z = Short4(0x0000);
break;
default:
ASSERT(false);
......@@ -1269,7 +1269,7 @@ namespace sw
current.w = pixel.w;
break;
case BLENDOP_NULL:
current.w = Short4(0x0000, 0x0000, 0x0000, 0x0000);
current.w = Short4(0x0000);
break;
default:
ASSERT(false);
......@@ -1289,14 +1289,14 @@ namespace sw
switch(state.logicalOperation)
{
case LOGICALOP_CLEAR:
current.x = 0;
current.y = 0;
current.z = 0;
current.x = UShort4(0);
current.y = UShort4(0);
current.z = UShort4(0);
break;
case LOGICALOP_SET:
current.x = 0xFFFFu;
current.y = 0xFFFFu;
current.z = 0xFFFFu;
current.x = UShort4(0xFFFFu);
current.y = UShort4(0xFFFFu);
current.z = UShort4(0xFFFFu);
break;
case LOGICALOP_COPY:
ASSERT(false); // Optimized out
......@@ -1396,10 +1396,10 @@ namespace sw
case FORMAT_SRGB8_X8:
case FORMAT_SRGB8_A8:
case FORMAT_R8:
current.x = current.x - As<Short4>(As<UShort4>(current.x) >> 8) + Short4(0x0080, 0x0080, 0x0080, 0x0080);
current.y = current.y - As<Short4>(As<UShort4>(current.y) >> 8) + Short4(0x0080, 0x0080, 0x0080, 0x0080);
current.z = current.z - As<Short4>(As<UShort4>(current.z) >> 8) + Short4(0x0080, 0x0080, 0x0080, 0x0080);
current.w = current.w - As<Short4>(As<UShort4>(current.w) >> 8) + Short4(0x0080, 0x0080, 0x0080, 0x0080);
current.x = current.x - As<Short4>(As<UShort4>(current.x) >> 8) + Short4(0x0080);
current.y = current.y - As<Short4>(As<UShort4>(current.y) >> 8) + Short4(0x0080);
current.z = current.z - As<Short4>(As<UShort4>(current.z) >> 8) + Short4(0x0080);
current.w = current.w - As<Short4>(As<UShort4>(current.w) >> 8) + Short4(0x0080);
break;
default:
break;
......
......@@ -27,8 +27,8 @@ namespace
case sw::SWIZZLE_GREEN: s = c.y; break;
case sw::SWIZZLE_BLUE: s = c.z; break;
case sw::SWIZZLE_ALPHA: s = c.w; break;
case sw::SWIZZLE_ZERO: s = sw::Short4(0x0000, 0x0000, 0x0000, 0x0000); break;
case sw::SWIZZLE_ONE: s = sw::Short4(0x1000, 0x1000, 0x1000, 0x1000); break;
case sw::SWIZZLE_ZERO: s = sw::Short4(0x0000); break;
case sw::SWIZZLE_ONE: s = sw::Short4(0x1000); break;
default: ASSERT(false);
}
}
......@@ -76,17 +76,17 @@ namespace sw
if(state.textureType == TEXTURE_NULL)
{
c.x = Short4(0x0000, 0x0000, 0x0000, 0x0000);
c.y = Short4(0x0000, 0x0000, 0x0000, 0x0000);
c.z = Short4(0x0000, 0x0000, 0x0000, 0x0000);
c.x = Short4(0x0000);
c.y = Short4(0x0000);
c.z = Short4(0x0000);
if(fixed12) // FIXME: Convert to fixed12 at higher level, when required
{
c.w = Short4(0x1000, 0x1000, 0x1000, 0x1000);
c.w = Short4(0x1000);
}
else
{
c.w = Short4((short)0xFFFF, (short)0xFFFF, (short)0xFFFF, (short)0xFFFF); // FIXME
c.w = Short4(0xFFFFu); // FIXME
}
}
else
......@@ -237,21 +237,21 @@ namespace sw
case FORMAT_YV12_BT601:
case FORMAT_YV12_BT709:
case FORMAT_YV12_JFIF:
if(componentCount < 2) c.y = Short4(0x1000, 0x1000, 0x1000, 0x1000);
if(componentCount < 3) c.z = Short4(0x1000, 0x1000, 0x1000, 0x1000);
if(componentCount < 4) c.w = Short4(0x1000, 0x1000, 0x1000, 0x1000);
if(componentCount < 2) c.y = Short4(0x1000);
if(componentCount < 3) c.z = Short4(0x1000);
if(componentCount < 4) c.w = Short4(0x1000);
break;
case FORMAT_A8:
c.w = c.x;
c.x = Short4(0x0000, 0x0000, 0x0000, 0x0000);
c.y = Short4(0x0000, 0x0000, 0x0000, 0x0000);
c.z = Short4(0x0000, 0x0000, 0x0000, 0x0000);
c.x = Short4(0x0000);
c.y = Short4(0x0000);
c.z = Short4(0x0000);
break;
case FORMAT_L8:
case FORMAT_L16:
c.y = c.x;
c.z = c.x;
c.w = Short4(0x1000, 0x1000, 0x1000, 0x1000);
c.w = Short4(0x1000);
break;
case FORMAT_A8L8:
c.w = c.y;
......@@ -259,11 +259,11 @@ namespace sw
c.z = c.x;
break;
case FORMAT_R32F:
c.y = Short4(0x1000, 0x1000, 0x1000, 0x1000);
c.y = Short4(0x1000);
case FORMAT_G32R32F:
c.z = Short4(0x1000, 0x1000, 0x1000, 0x1000);
c.z = Short4(0x1000);
case FORMAT_X32B32G32R32F:
c.w = Short4(0x1000, 0x1000, 0x1000, 0x1000);
c.w = Short4(0x1000);
case FORMAT_A32B32G32R32F:
break;
case FORMAT_D32F:
......@@ -637,7 +637,7 @@ namespace sw
if(hasUnsignedTextureComponent(3)) cc.w = MulHigh(As<UShort4>(cc.w), utri); else cc.w = MulHigh(cc.w, stri);
utri = ~utri;
stri = Short4(0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF) - stri;
stri = Short4(0x7FFF) - stri;
if(hasUnsignedTextureComponent(0)) c.x = MulHigh(As<UShort4>(c.x), utri); else c.x = MulHigh(c.x, stri);
if(hasUnsignedTextureComponent(1)) c.y = MulHigh(As<UShort4>(c.y), utri); else c.y = MulHigh(c.y, stri);
......@@ -724,10 +724,10 @@ namespace sw
Vector4s cSum;
cSum.x = Short4(0, 0, 0, 0);
cSum.y = Short4(0, 0, 0, 0);
cSum.z = Short4(0, 0, 0, 0);
cSum.w = Short4(0, 0, 0, 0);
cSum.x = Short4(0);
cSum.y = Short4(0);
cSum.z = Short4(0);
cSum.w = Short4(0);
Float4 A = *Pointer<Float4>(constants + OFFSET(Constants,uvWeight) + 16 * a);
Float4 B = *Pointer<Float4>(constants + OFFSET(Constants,uvStart) + 16 * a);
......@@ -1752,8 +1752,8 @@ namespace sw
}
}
Short4 www2 = wwww;
wwww = As<Short4>(UnpackLow(wwww, Short4(0x0000, 0x0000, 0x0000, 0x0000)));
www2 = As<Short4>(UnpackHigh(www2, Short4(0x0000, 0x0000, 0x0000, 0x0000)));
wwww = As<Short4>(UnpackLow(wwww, Short4(0x0000)));
www2 = As<Short4>(UnpackHigh(www2, Short4(0x0000)));
wwww = As<Short4>(MulAdd(wwww, *Pointer<Short4>(mipmap + OFFSET(Mipmap,sliceP))));
www2 = As<Short4>(MulAdd(www2, *Pointer<Short4>(mipmap + OFFSET(Mipmap,sliceP))));
uuuu = As<Short4>(As<Int2>(uuuu) + As<Int2>(wwww));
......@@ -1911,8 +1911,8 @@ namespace sw
case FORMAT_G8R8I_SNORM:
case FORMAT_V8U8:
case FORMAT_A8L8:
c.y = (c.x & Short4(0xFF00u, 0xFF00u, 0xFF00u, 0xFF00u)) | As<Short4>(As<UShort4>(c.x) >> 8);
c.x = (c.x & Short4(0x00FFu, 0x00FFu, 0x00FFu, 0x00FFu)) | (c.x << 8);
c.y = (c.x & Short4(0xFF00u)) | As<Short4>(As<UShort4>(c.x) >> 8);
c.x = (c.x & Short4(0x00FFu)) | (c.x << 8);
break;
default:
ASSERT(false);
......@@ -2193,7 +2193,7 @@ namespace sw
convert -= Int4(0x00008000, 0x00008000, 0x00008000, 0x00008000);
convert = As<Int4>(Pack(convert, convert));
return As<Short4>(Int2(convert)) + Short4((short)0x8000, (short)0x8000, (short)0x8000, (short)0x8000);
return As<Short4>(Int2(convert)) + Short4(0x8000u);
}
else // Wrap (or border)
{
......
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