Commit 48ef1252 by Nicolas Capens

Don't use Long1 for stencil operations.

Bug swiftshader:15 Change-Id: I4fa5356109e35ac13f9f8d5a97e9059262901051 Reviewed-on: https://swiftshader-review.googlesource.com/7950Reviewed-by: 's avatarNicolas Capens <capn@google.com> Tested-by: 's avatarNicolas Capens <capn@google.com> Reviewed-on: https://swiftshader-review.googlesource.com/8156Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
parent 65047119
...@@ -3051,6 +3051,7 @@ namespace sw ...@@ -3051,6 +3051,7 @@ namespace sw
int height2 = (height + 1) & ~1; int height2 = (height + 1) & ~1;
// FIXME: Unpacking byte4 to short4 in the sampler currently involves reading 8 bytes, // FIXME: Unpacking byte4 to short4 in the sampler currently involves reading 8 bytes,
// and stencil operations also read 8 bytes per four 8-bit stencil values,
// so we have to allocate 4 extra bytes to avoid buffer overruns. // so we have to allocate 4 extra bytes to avoid buffer overruns.
return allocateZero(size(width2, height2, depth, format) + 4); return allocateZero(size(width2, height2, depth, format) + 4);
} }
......
...@@ -321,7 +321,7 @@ namespace sw ...@@ -321,7 +321,7 @@ namespace sw
buffer += q * *Pointer<Int>(data + OFFSET(DrawData,stencilSliceB)); buffer += q * *Pointer<Int>(data + OFFSET(DrawData,stencilSliceB));
} }
Byte8 value = As<Byte8>(Long1(*Pointer<UInt>(buffer))); Byte8 value = *Pointer<Byte8>(buffer);
Byte8 valueCCW = value; Byte8 valueCCW = value;
if(!state.noStencilMask) if(!state.noStencilMask)
...@@ -763,7 +763,7 @@ namespace sw ...@@ -763,7 +763,7 @@ namespace sw
buffer += q * *Pointer<Int>(data + OFFSET(DrawData,stencilSliceB)); buffer += q * *Pointer<Int>(data + OFFSET(DrawData,stencilSliceB));
} }
Byte8 bufferValue = As<Byte8>(Long1(*Pointer<UInt>(buffer))); Byte8 bufferValue = *Pointer<Byte8>(buffer);
Byte8 newValue; Byte8 newValue;
stencilOperation(newValue, bufferValue, state.stencilPassOperation, state.stencilZFailOperation, state.stencilFailOperation, false, zMask, sMask); stencilOperation(newValue, bufferValue, state.stencilPassOperation, state.stencilZFailOperation, state.stencilFailOperation, false, zMask, sMask);
......
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