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 ...@@ -3270,6 +3270,20 @@ namespace sw
// xyzw.parent = this; // 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) UShort4::UShort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w)
{ {
// xyzw.parent = this; // xyzw.parent = this;
......
...@@ -1005,6 +1005,7 @@ namespace sw ...@@ -1005,6 +1005,7 @@ namespace sw
explicit UShort4(RValue<Float4> cast, bool saturate = false); explicit UShort4(RValue<Float4> cast, bool saturate = false);
UShort4(); UShort4();
UShort4(unsigned short xyzw);
UShort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w); UShort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w);
UShort4(RValue<UShort4> rhs); UShort4(RValue<UShort4> rhs);
UShort4(const UShort4 &rhs); UShort4(const UShort4 &rhs);
......
...@@ -545,29 +545,29 @@ namespace sw ...@@ -545,29 +545,29 @@ namespace sw
break; break;
case ALPHA_EQUAL: case ALPHA_EQUAL:
cmp = CmpEQ(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))); 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; break;
case ALPHA_NOTEQUAL: // a != b ~ !(a == b) 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 cmp = CmpEQ(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))) ^ Short4(0xFFFFu); // FIXME
aMask = SignMask(Pack(cmp, Short4(0x0000, 0x0000, 0x0000, 0x0000))); aMask = SignMask(Pack(cmp, Short4(0x0000)));
break; 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); 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; 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))); equal = CmpEQ(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)));
cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))); cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)));
cmp |= equal; cmp |= equal;
aMask = SignMask(Pack(cmp, Short4(0x0000, 0x0000, 0x0000, 0x0000))); aMask = SignMask(Pack(cmp, Short4(0x0000)));
break; break;
case ALPHA_LESSEQUAL: // a <= b ~ !(a > b) 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 cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))) ^ Short4(0xFFFFu); // FIXME
aMask = SignMask(Pack(cmp, Short4(0x0000, 0x0000, 0x0000, 0x0000))); aMask = SignMask(Pack(cmp, Short4(0x0000)));
break; break;
case ALPHA_GREATER: // a > b case ALPHA_GREATER: // a > b
cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))); 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; break;
default: default:
ASSERT(false); ASSERT(false);
...@@ -1224,9 +1224,9 @@ namespace sw ...@@ -1224,9 +1224,9 @@ namespace sw
current.z = pixel.z; current.z = pixel.z;
break; break;
case BLENDOP_NULL: case BLENDOP_NULL:
current.x = Short4(0x0000, 0x0000, 0x0000, 0x0000); current.x = Short4(0x0000);
current.y = Short4(0x0000, 0x0000, 0x0000, 0x0000); current.y = Short4(0x0000);
current.z = Short4(0x0000, 0x0000, 0x0000, 0x0000); current.z = Short4(0x0000);
break; break;
default: default:
ASSERT(false); ASSERT(false);
...@@ -1269,7 +1269,7 @@ namespace sw ...@@ -1269,7 +1269,7 @@ namespace sw
current.w = pixel.w; current.w = pixel.w;
break; break;
case BLENDOP_NULL: case BLENDOP_NULL:
current.w = Short4(0x0000, 0x0000, 0x0000, 0x0000); current.w = Short4(0x0000);
break; break;
default: default:
ASSERT(false); ASSERT(false);
...@@ -1289,14 +1289,14 @@ namespace sw ...@@ -1289,14 +1289,14 @@ namespace sw
switch(state.logicalOperation) switch(state.logicalOperation)
{ {
case LOGICALOP_CLEAR: case LOGICALOP_CLEAR:
current.x = 0; current.x = UShort4(0);
current.y = 0; current.y = UShort4(0);
current.z = 0; current.z = UShort4(0);
break; break;
case LOGICALOP_SET: case LOGICALOP_SET:
current.x = 0xFFFFu; current.x = UShort4(0xFFFFu);
current.y = 0xFFFFu; current.y = UShort4(0xFFFFu);
current.z = 0xFFFFu; current.z = UShort4(0xFFFFu);
break; break;
case LOGICALOP_COPY: case LOGICALOP_COPY:
ASSERT(false); // Optimized out ASSERT(false); // Optimized out
...@@ -1396,10 +1396,10 @@ namespace sw ...@@ -1396,10 +1396,10 @@ namespace sw
case FORMAT_SRGB8_X8: case FORMAT_SRGB8_X8:
case FORMAT_SRGB8_A8: case FORMAT_SRGB8_A8:
case FORMAT_R8: case FORMAT_R8:
current.x = current.x - As<Short4>(As<UShort4>(current.x) >> 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, 0x0080, 0x0080, 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, 0x0080, 0x0080, 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, 0x0080, 0x0080, 0x0080); current.w = current.w - As<Short4>(As<UShort4>(current.w) >> 8) + Short4(0x0080);
break; break;
default: default:
break; break;
......
...@@ -27,8 +27,8 @@ namespace ...@@ -27,8 +27,8 @@ namespace
case sw::SWIZZLE_GREEN: s = c.y; break; case sw::SWIZZLE_GREEN: s = c.y; break;
case sw::SWIZZLE_BLUE: s = c.z; break; case sw::SWIZZLE_BLUE: s = c.z; break;
case sw::SWIZZLE_ALPHA: s = c.w; break; case sw::SWIZZLE_ALPHA: s = c.w; break;
case sw::SWIZZLE_ZERO: s = sw::Short4(0x0000, 0x0000, 0x0000, 0x0000); break; case sw::SWIZZLE_ZERO: s = sw::Short4(0x0000); break;
case sw::SWIZZLE_ONE: s = sw::Short4(0x1000, 0x1000, 0x1000, 0x1000); break; case sw::SWIZZLE_ONE: s = sw::Short4(0x1000); break;
default: ASSERT(false); default: ASSERT(false);
} }
} }
...@@ -76,17 +76,17 @@ namespace sw ...@@ -76,17 +76,17 @@ namespace sw
if(state.textureType == TEXTURE_NULL) if(state.textureType == TEXTURE_NULL)
{ {
c.x = Short4(0x0000, 0x0000, 0x0000, 0x0000); c.x = Short4(0x0000);
c.y = Short4(0x0000, 0x0000, 0x0000, 0x0000); c.y = Short4(0x0000);
c.z = Short4(0x0000, 0x0000, 0x0000, 0x0000); c.z = Short4(0x0000);
if(fixed12) // FIXME: Convert to fixed12 at higher level, when required if(fixed12) // FIXME: Convert to fixed12 at higher level, when required
{ {
c.w = Short4(0x1000, 0x1000, 0x1000, 0x1000); c.w = Short4(0x1000);
} }
else else
{ {
c.w = Short4((short)0xFFFF, (short)0xFFFF, (short)0xFFFF, (short)0xFFFF); // FIXME c.w = Short4(0xFFFFu); // FIXME
} }
} }
else else
...@@ -237,21 +237,21 @@ namespace sw ...@@ -237,21 +237,21 @@ namespace sw
case FORMAT_YV12_BT601: case FORMAT_YV12_BT601:
case FORMAT_YV12_BT709: case FORMAT_YV12_BT709:
case FORMAT_YV12_JFIF: case FORMAT_YV12_JFIF:
if(componentCount < 2) c.y = Short4(0x1000, 0x1000, 0x1000, 0x1000); if(componentCount < 2) c.y = Short4(0x1000);
if(componentCount < 3) c.z = Short4(0x1000, 0x1000, 0x1000, 0x1000); if(componentCount < 3) c.z = Short4(0x1000);
if(componentCount < 4) c.w = Short4(0x1000, 0x1000, 0x1000, 0x1000); if(componentCount < 4) c.w = Short4(0x1000);
break; break;
case FORMAT_A8: case FORMAT_A8:
c.w = c.x; c.w = c.x;
c.x = Short4(0x0000, 0x0000, 0x0000, 0x0000); c.x = Short4(0x0000);
c.y = Short4(0x0000, 0x0000, 0x0000, 0x0000); c.y = Short4(0x0000);
c.z = Short4(0x0000, 0x0000, 0x0000, 0x0000); c.z = Short4(0x0000);
break; break;
case FORMAT_L8: case FORMAT_L8:
case FORMAT_L16: case FORMAT_L16:
c.y = c.x; c.y = c.x;
c.z = c.x; c.z = c.x;
c.w = Short4(0x1000, 0x1000, 0x1000, 0x1000); c.w = Short4(0x1000);
break; break;
case FORMAT_A8L8: case FORMAT_A8L8:
c.w = c.y; c.w = c.y;
...@@ -259,11 +259,11 @@ namespace sw ...@@ -259,11 +259,11 @@ namespace sw
c.z = c.x; c.z = c.x;
break; break;
case FORMAT_R32F: case FORMAT_R32F:
c.y = Short4(0x1000, 0x1000, 0x1000, 0x1000); c.y = Short4(0x1000);
case FORMAT_G32R32F: case FORMAT_G32R32F:
c.z = Short4(0x1000, 0x1000, 0x1000, 0x1000); c.z = Short4(0x1000);
case FORMAT_X32B32G32R32F: case FORMAT_X32B32G32R32F:
c.w = Short4(0x1000, 0x1000, 0x1000, 0x1000); c.w = Short4(0x1000);
case FORMAT_A32B32G32R32F: case FORMAT_A32B32G32R32F:
break; break;
case FORMAT_D32F: case FORMAT_D32F:
...@@ -637,7 +637,7 @@ namespace sw ...@@ -637,7 +637,7 @@ namespace sw
if(hasUnsignedTextureComponent(3)) cc.w = MulHigh(As<UShort4>(cc.w), utri); else cc.w = MulHigh(cc.w, stri); if(hasUnsignedTextureComponent(3)) cc.w = MulHigh(As<UShort4>(cc.w), utri); else cc.w = MulHigh(cc.w, stri);
utri = ~utri; 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(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); if(hasUnsignedTextureComponent(1)) c.y = MulHigh(As<UShort4>(c.y), utri); else c.y = MulHigh(c.y, stri);
...@@ -724,10 +724,10 @@ namespace sw ...@@ -724,10 +724,10 @@ namespace sw
Vector4s cSum; Vector4s cSum;
cSum.x = Short4(0, 0, 0, 0); cSum.x = Short4(0);
cSum.y = Short4(0, 0, 0, 0); cSum.y = Short4(0);
cSum.z = Short4(0, 0, 0, 0); cSum.z = Short4(0);
cSum.w = Short4(0, 0, 0, 0); cSum.w = Short4(0);
Float4 A = *Pointer<Float4>(constants + OFFSET(Constants,uvWeight) + 16 * a); Float4 A = *Pointer<Float4>(constants + OFFSET(Constants,uvWeight) + 16 * a);
Float4 B = *Pointer<Float4>(constants + OFFSET(Constants,uvStart) + 16 * a); Float4 B = *Pointer<Float4>(constants + OFFSET(Constants,uvStart) + 16 * a);
...@@ -1752,8 +1752,8 @@ namespace sw ...@@ -1752,8 +1752,8 @@ namespace sw
} }
} }
Short4 www2 = wwww; Short4 www2 = wwww;
wwww = As<Short4>(UnpackLow(wwww, Short4(0x0000, 0x0000, 0x0000, 0x0000))); wwww = As<Short4>(UnpackLow(wwww, Short4(0x0000)));
www2 = As<Short4>(UnpackHigh(www2, Short4(0x0000, 0x0000, 0x0000, 0x0000))); www2 = As<Short4>(UnpackHigh(www2, Short4(0x0000)));
wwww = As<Short4>(MulAdd(wwww, *Pointer<Short4>(mipmap + OFFSET(Mipmap,sliceP)))); wwww = As<Short4>(MulAdd(wwww, *Pointer<Short4>(mipmap + OFFSET(Mipmap,sliceP))));
www2 = As<Short4>(MulAdd(www2, *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)); uuuu = As<Short4>(As<Int2>(uuuu) + As<Int2>(wwww));
...@@ -1911,8 +1911,8 @@ namespace sw ...@@ -1911,8 +1911,8 @@ namespace sw
case FORMAT_G8R8I_SNORM: case FORMAT_G8R8I_SNORM:
case FORMAT_V8U8: case FORMAT_V8U8:
case FORMAT_A8L8: case FORMAT_A8L8:
c.y = (c.x & Short4(0xFF00u, 0xFF00u, 0xFF00u, 0xFF00u)) | As<Short4>(As<UShort4>(c.x) >> 8); c.y = (c.x & Short4(0xFF00u)) | As<Short4>(As<UShort4>(c.x) >> 8);
c.x = (c.x & Short4(0x00FFu, 0x00FFu, 0x00FFu, 0x00FFu)) | (c.x << 8); c.x = (c.x & Short4(0x00FFu)) | (c.x << 8);
break; break;
default: default:
ASSERT(false); ASSERT(false);
...@@ -2193,7 +2193,7 @@ namespace sw ...@@ -2193,7 +2193,7 @@ namespace sw
convert -= Int4(0x00008000, 0x00008000, 0x00008000, 0x00008000); convert -= Int4(0x00008000, 0x00008000, 0x00008000, 0x00008000);
convert = As<Int4>(Pack(convert, convert)); 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) 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