Commit 11cb891a by Nicolas Capens Committed by Nicolas Capens

Rename multiSampledBresenham to enableMultiSampling

The pipeline code doesn't need to know whether we're drawing Bresenham lines or anything else. It just needs to know whether or not to enable multisample rasterization for a multisample render target. Also rename multiSample to multiSampleCount. Bug: b/142965928 Change-Id: I34395e90d502c49cd13e0087d4b323d222cb2064 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/40169 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by: 's avatarNicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
parent 0405ba06
...@@ -133,12 +133,12 @@ const PixelProcessor::State PixelProcessor::update(const Context *context) const ...@@ -133,12 +133,12 @@ const PixelProcessor::State PixelProcessor::update(const Context *context) const
state.blendState[i] = context->getBlendState(i); state.blendState[i] = context->getBlendState(i);
} }
state.multiSample = static_cast<unsigned int>(context->sampleCount); state.multiSampleCount = static_cast<unsigned int>(context->sampleCount);
state.multiSampleMask = context->multiSampleMask; state.multiSampleMask = context->multiSampleMask;
state.multiSampledBresenham = (state.multiSample > 1) && context->isDrawLine(true) && state.enableMultiSampling = (state.multiSampleCount > 1) &&
(context->lineRasterizationMode == VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT); !(context->isDrawLine(true) && (context->lineRasterizationMode == VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
if(state.multiSample > 1 && context->pixelShader) if(state.multiSampleCount > 1 && context->pixelShader)
{ {
state.centroid = context->pixelShader->getModes().NeedsCentroid; state.centroid = context->pixelShader->getModes().NeedsCentroid;
} }
......
...@@ -84,9 +84,9 @@ public: ...@@ -84,9 +84,9 @@ public:
unsigned int colorWriteMask; unsigned int colorWriteMask;
VkFormat targetFormat[RENDERTARGETS]; VkFormat targetFormat[RENDERTARGETS];
unsigned int multiSample; unsigned int multiSampleCount;
unsigned int multiSampleMask; unsigned int multiSampleMask;
bool multiSampledBresenham; bool enableMultiSampling;
bool alphaToCoverage; bool alphaToCoverage;
bool centroid; bool centroid;
VkFrontFace frontFace; VkFrontFace frontFace;
......
...@@ -52,7 +52,7 @@ void QuadRasterizer::generate() ...@@ -52,7 +52,7 @@ void QuadRasterizer::generate()
rasterize(yMin, yMax); rasterize(yMin, yMax);
} }
primitive += sizeof(Primitive) * state.multiSample; primitive += sizeof(Primitive) * state.multiSampleCount;
count--; count--;
} }
Until(count == 0); Until(count == 0);
...@@ -101,7 +101,7 @@ void QuadRasterizer::rasterize(Int &yMin, Int &yMax) ...@@ -101,7 +101,7 @@ void QuadRasterizer::rasterize(Int &yMin, Int &yMax)
Int x0b = Int(*Pointer<Short>(primitive + OFFSET(Primitive, outline->left) + (y + 1) * sizeof(Primitive::Span))); Int x0b = Int(*Pointer<Short>(primitive + OFFSET(Primitive, outline->left) + (y + 1) * sizeof(Primitive::Span)));
Int x0 = Min(x0a, x0b); Int x0 = Min(x0a, x0b);
for(unsigned int q = 1; q < state.multiSample; q++) for(unsigned int q = 1; q < state.multiSampleCount; q++)
{ {
x0a = Int(*Pointer<Short>(primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline->left) + (y + 0) * sizeof(Primitive::Span))); x0a = Int(*Pointer<Short>(primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline->left) + (y + 0) * sizeof(Primitive::Span)));
x0b = Int(*Pointer<Short>(primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline->left) + (y + 1) * sizeof(Primitive::Span))); x0b = Int(*Pointer<Short>(primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline->left) + (y + 1) * sizeof(Primitive::Span)));
...@@ -114,7 +114,7 @@ void QuadRasterizer::rasterize(Int &yMin, Int &yMax) ...@@ -114,7 +114,7 @@ void QuadRasterizer::rasterize(Int &yMin, Int &yMax)
Int x1b = Int(*Pointer<Short>(primitive + OFFSET(Primitive, outline->right) + (y + 1) * sizeof(Primitive::Span))); Int x1b = Int(*Pointer<Short>(primitive + OFFSET(Primitive, outline->right) + (y + 1) * sizeof(Primitive::Span)));
Int x1 = Max(x1a, x1b); Int x1 = Max(x1a, x1b);
for(unsigned int q = 1; q < state.multiSample; q++) for(unsigned int q = 1; q < state.multiSampleCount; q++)
{ {
x1a = Int(*Pointer<Short>(primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline->right) + (y + 0) * sizeof(Primitive::Span))); x1a = Int(*Pointer<Short>(primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline->right) + (y + 0) * sizeof(Primitive::Span)));
x1b = Int(*Pointer<Short>(primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline->right) + (y + 1) * sizeof(Primitive::Span))); x1b = Int(*Pointer<Short>(primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline->right) + (y + 1) * sizeof(Primitive::Span)));
...@@ -125,11 +125,11 @@ void QuadRasterizer::rasterize(Int &yMin, Int &yMax) ...@@ -125,11 +125,11 @@ void QuadRasterizer::rasterize(Int &yMin, Int &yMax)
if(interpolateZ()) if(interpolateZ())
{ {
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
Float4 y = yyyy; Float4 y = yyyy;
if(state.multiSample > 1) if(state.multiSampleCount > 1)
{ {
y -= *Pointer<Float4>(constants + OFFSET(Constants, Y) + q * sizeof(float4)); y -= *Pointer<Float4>(constants + OFFSET(Constants, Y) + q * sizeof(float4));
} }
...@@ -176,7 +176,7 @@ void QuadRasterizer::rasterize(Int &yMin, Int &yMax) ...@@ -176,7 +176,7 @@ void QuadRasterizer::rasterize(Int &yMin, Int &yMax)
Short4 xLeft[4]; Short4 xLeft[4];
Short4 xRight[4]; Short4 xRight[4];
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
xLeft[q] = *Pointer<Short4>(primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline) + y * sizeof(Primitive::Span)); xLeft[q] = *Pointer<Short4>(primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline) + y * sizeof(Primitive::Span));
xRight[q] = xLeft[q]; xRight[q] = xLeft[q];
...@@ -190,11 +190,11 @@ void QuadRasterizer::rasterize(Int &yMin, Int &yMax) ...@@ -190,11 +190,11 @@ void QuadRasterizer::rasterize(Int &yMin, Int &yMax)
Short4 xxxx = Short4(x); Short4 xxxx = Short4(x);
Int cMask[4]; Int cMask[4];
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
if(state.multiSampleMask & (1 << q)) if(state.multiSampleMask & (1 << q))
{ {
unsigned int i = state.multiSampledBresenham ? 0 : q; unsigned int i = state.enableMultiSampling ? q : 0;
Short4 mask = CmpGT(xxxx, xLeft[i]) & CmpGT(xRight[i], xxxx); Short4 mask = CmpGT(xxxx, xLeft[i]) & CmpGT(xRight[i], xxxx);
cMask[q] = SignMask(PackSigned(mask, mask)) & 0x0000000F; cMask[q] = SignMask(PackSigned(mask, mask)) & 0x0000000F;
} }
......
...@@ -617,7 +617,7 @@ int DrawCall::setupSolidTriangles(Triangle *triangles, Primitive *primitives, co ...@@ -617,7 +617,7 @@ int DrawCall::setupSolidTriangles(Triangle *triangles, Primitive *primitives, co
{ {
auto &state = drawCall->setupState; auto &state = drawCall->setupState;
int ms = state.multiSample; int ms = state.multiSampleCount;
const DrawData *data = drawCall->data; const DrawData *data = drawCall->data;
int visible = 0; int visible = 0;
...@@ -662,7 +662,7 @@ int DrawCall::setupWireframeTriangles(Triangle *triangles, Primitive *primitives ...@@ -662,7 +662,7 @@ int DrawCall::setupWireframeTriangles(Triangle *triangles, Primitive *primitives
{ {
auto &state = drawCall->setupState; auto &state = drawCall->setupState;
int ms = state.multiSample; int ms = state.multiSampleCount;
int visible = 0; int visible = 0;
for(int i = 0; i < count; i++) for(int i = 0; i < count; i++)
...@@ -710,7 +710,7 @@ int DrawCall::setupPointTriangles(Triangle *triangles, Primitive *primitives, co ...@@ -710,7 +710,7 @@ int DrawCall::setupPointTriangles(Triangle *triangles, Primitive *primitives, co
{ {
auto &state = drawCall->setupState; auto &state = drawCall->setupState;
int ms = state.multiSample; int ms = state.multiSampleCount;
int visible = 0; int visible = 0;
for(int i = 0; i < count; i++) for(int i = 0; i < count; i++)
...@@ -756,7 +756,7 @@ int DrawCall::setupLines(Triangle *triangles, Primitive *primitives, const DrawC ...@@ -756,7 +756,7 @@ int DrawCall::setupLines(Triangle *triangles, Primitive *primitives, const DrawC
auto &state = drawCall->setupState; auto &state = drawCall->setupState;
int visible = 0; int visible = 0;
int ms = state.multiSample; int ms = state.multiSampleCount;
for(int i = 0; i < count; i++) for(int i = 0; i < count; i++)
{ {
...@@ -777,7 +777,7 @@ int DrawCall::setupPoints(Triangle *triangles, Primitive *primitives, const Draw ...@@ -777,7 +777,7 @@ int DrawCall::setupPoints(Triangle *triangles, Primitive *primitives, const Draw
auto &state = drawCall->setupState; auto &state = drawCall->setupState;
int visible = 0; int visible = 0;
int ms = state.multiSample; int ms = state.multiSampleCount;
for(int i = 0; i < count; i++) for(int i = 0; i < count; i++)
{ {
......
...@@ -78,7 +78,7 @@ SetupProcessor::State SetupProcessor::update(const sw::Context *context) const ...@@ -78,7 +78,7 @@ SetupProcessor::State SetupProcessor::update(const sw::Context *context) const
state.frontFace = context->frontFace; state.frontFace = context->frontFace;
state.cullMode = context->cullMode; state.cullMode = context->cullMode;
state.multiSample = context->sampleCount; state.multiSampleCount = context->sampleCount;
state.rasterizerDiscard = context->rasterizerDiscard; state.rasterizerDiscard = context->rasterizerDiscard;
state.numClipDistances = context->vertexShader->getNumOutputClipDistances(); state.numClipDistances = context->vertexShader->getNumOutputClipDistances();
......
...@@ -51,7 +51,7 @@ public: ...@@ -51,7 +51,7 @@ public:
bool interpolateW : 1; bool interpolateW : 1;
VkFrontFace frontFace : BITS(VK_FRONT_FACE_MAX_ENUM); VkFrontFace frontFace : BITS(VK_FRONT_FACE_MAX_ENUM);
VkCullModeFlags cullMode : BITS(VK_CULL_MODE_FLAG_BITS_MAX_ENUM); VkCullModeFlags cullMode : BITS(VK_CULL_MODE_FLAG_BITS_MAX_ENUM);
unsigned int multiSample : 3; // 1, 2 or 4 unsigned int multiSampleCount : 3; // 1, 2 or 4
bool rasterizerDiscard : 1; bool rasterizerDiscard : 1;
unsigned int numClipDistances : 4; // [0 - 8] unsigned int numClipDistances : 4; // [0 - 8]
unsigned int numCullDistances : 4; // [0 - 8] unsigned int numCullDistances : 4; // [0 - 8]
......
...@@ -25,7 +25,7 @@ Int4 PixelProgram::maskAny(Int cMask[4]) const ...@@ -25,7 +25,7 @@ Int4 PixelProgram::maskAny(Int cMask[4]) const
{ {
// See if at least 1 sample is used // See if at least 1 sample is used
Int maskUnion = cMask[0]; Int maskUnion = cMask[0];
for(auto i = 1u; i < state.multiSample; i++) for(auto i = 1u; i < state.multiSampleCount; i++)
{ {
maskUnion |= cMask[i]; maskUnion |= cMask[i];
} }
...@@ -43,7 +43,7 @@ Int4 PixelProgram::maskAny(Int cMask[4], Int sMask[4], Int zMask[4]) const ...@@ -43,7 +43,7 @@ Int4 PixelProgram::maskAny(Int cMask[4], Int sMask[4], Int zMask[4]) const
{ {
// See if at least 1 sample is used // See if at least 1 sample is used
Int maskUnion = cMask[0] & sMask[0] & zMask[0]; Int maskUnion = cMask[0] & sMask[0] & zMask[0];
for(auto i = 1u; i < state.multiSample; i++) for(auto i = 1u; i < state.multiSampleCount; i++)
{ {
maskUnion |= (cMask[i] & sMask[i] & zMask[i]); maskUnion |= (cMask[i] & sMask[i] & zMask[i]);
} }
...@@ -130,7 +130,7 @@ void PixelProgram::applyShader(Int cMask[4], Int sMask[4], Int zMask[4]) ...@@ -130,7 +130,7 @@ void PixelProgram::applyShader(Int cMask[4], Int sMask[4], Int zMask[4])
Int4 laneBits = Int4(1, 2, 4, 8); Int4 laneBits = Int4(1, 2, 4, 8);
Int4 inputSampleMask = Int4(1) & CmpNEQ(Int4(cMask[0]) & laneBits, Int4(0)); Int4 inputSampleMask = Int4(1) & CmpNEQ(Int4(cMask[0]) & laneBits, Int4(0));
for(auto i = 1u; i < state.multiSample; i++) for(auto i = 1u; i < state.multiSampleCount; i++)
{ {
inputSampleMask |= Int4(1 << i) & CmpNEQ(Int4(cMask[i]) & laneBits, Int4(0)); inputSampleMask |= Int4(1 << i) & CmpNEQ(Int4(cMask[i]) & laneBits, Int4(0));
} }
...@@ -163,7 +163,7 @@ void PixelProgram::applyShader(Int cMask[4], Int sMask[4], Int zMask[4]) ...@@ -163,7 +163,7 @@ void PixelProgram::applyShader(Int cMask[4], Int sMask[4], Int zMask[4])
if(spirvShader->getModes().ContainsKill) if(spirvShader->getModes().ContainsKill)
{ {
for(auto i = 0u; i < state.multiSample; i++) for(auto i = 0u; i < state.multiSampleCount; i++)
{ {
cMask[i] &= ~routine.killMask; cMask[i] &= ~routine.killMask;
} }
...@@ -174,7 +174,7 @@ void PixelProgram::applyShader(Int cMask[4], Int sMask[4], Int zMask[4]) ...@@ -174,7 +174,7 @@ void PixelProgram::applyShader(Int cMask[4], Int sMask[4], Int zMask[4])
{ {
auto outputSampleMask = As<SIMD::Int>(routine.getVariable(it->second.Id)[it->second.FirstComponent]); auto outputSampleMask = As<SIMD::Int>(routine.getVariable(it->second.Id)[it->second.FirstComponent]);
for(auto i = 0u; i < state.multiSample; i++) for(auto i = 0u; i < state.multiSampleCount; i++)
{ {
cMask[i] &= SignMask(CmpNEQ(outputSampleMask & SIMD::Int(1 << i), SIMD::Int(0))); cMask[i] &= SignMask(CmpNEQ(outputSampleMask & SIMD::Int(1 << i), SIMD::Int(0)));
} }
...@@ -198,7 +198,7 @@ Bool PixelProgram::alphaTest(Int cMask[4]) ...@@ -198,7 +198,7 @@ Bool PixelProgram::alphaTest(Int cMask[4])
Int pass = cMask[0]; Int pass = cMask[0];
for(unsigned int q = 1; q < state.multiSample; q++) for(unsigned int q = 1; q < state.multiSampleCount; q++)
{ {
pass = pass | cMask[q]; pass = pass | cMask[q];
} }
...@@ -232,7 +232,7 @@ void PixelProgram::rasterOperation(Pointer<Byte> cBuffer[4], Int &x, Int sMask[4 ...@@ -232,7 +232,7 @@ void PixelProgram::rasterOperation(Pointer<Byte> cBuffer[4], Int &x, Int sMask[4
case VK_FORMAT_A8B8G8R8_SRGB_PACK32: case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
case VK_FORMAT_A2B10G10R10_UNORM_PACK32: case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
case VK_FORMAT_A2R10G10B10_UNORM_PACK32: case VK_FORMAT_A2R10G10B10_UNORM_PACK32:
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
if(state.multiSampleMask & (1 << q)) if(state.multiSampleMask & (1 << q))
{ {
...@@ -278,7 +278,7 @@ void PixelProgram::rasterOperation(Pointer<Byte> cBuffer[4], Int &x, Int sMask[4 ...@@ -278,7 +278,7 @@ void PixelProgram::rasterOperation(Pointer<Byte> cBuffer[4], Int &x, Int sMask[4
case VK_FORMAT_A8B8G8R8_SINT_PACK32: case VK_FORMAT_A8B8G8R8_SINT_PACK32:
case VK_FORMAT_A2B10G10R10_UINT_PACK32: case VK_FORMAT_A2B10G10R10_UINT_PACK32:
case VK_FORMAT_A2R10G10B10_UINT_PACK32: case VK_FORMAT_A2R10G10B10_UINT_PACK32:
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
if(state.multiSampleMask & (1 << q)) if(state.multiSampleMask & (1 << q))
{ {
......
...@@ -58,13 +58,13 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu ...@@ -58,13 +58,13 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu
Int zMask[4]; // Depth mask Int zMask[4]; // Depth mask
Int sMask[4]; // Stencil mask Int sMask[4]; // Stencil mask
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
zMask[q] = cMask[q]; zMask[q] = cMask[q];
sMask[q] = cMask[q]; sMask[q] = cMask[q];
} }
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
stencilTest(sBuffer, q, x, sMask[q], cMask[q]); stencilTest(sBuffer, q, x, sMask[q], cMask[q]);
} }
...@@ -76,11 +76,11 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu ...@@ -76,11 +76,11 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu
if(interpolateZ()) if(interpolateZ())
{ {
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
Float4 x = xxxx; Float4 x = xxxx;
if(state.multiSample > 1) if(state.multiSampleCount > 1)
{ {
x -= *Pointer<Float4>(constants + OFFSET(Constants, X) + q * sizeof(float4)); x -= *Pointer<Float4>(constants + OFFSET(Constants, X) + q * sizeof(float4));
} }
...@@ -93,7 +93,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu ...@@ -93,7 +93,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu
if(earlyDepthTest) if(earlyDepthTest)
{ {
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
depthPass = depthPass || depthTest(zBuffer, q, x, z[q], sMask[q], zMask[q], cMask[q]); depthPass = depthPass || depthTest(zBuffer, q, x, z[q], sMask[q], zMask[q], cMask[q]);
} }
...@@ -111,7 +111,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu ...@@ -111,7 +111,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu
{ {
Float4 WWWW(1.0e-9f); Float4 WWWW(1.0e-9f);
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
XXXX += *Pointer<Float4>(constants + OFFSET(Constants, sampleX[q]) + 16 * cMask[q]); XXXX += *Pointer<Float4>(constants + OFFSET(Constants, sampleX[q]) + 16 * cMask[q]);
YYYY += *Pointer<Float4>(constants + OFFSET(Constants, sampleY[q]) + 16 * cMask[q]); YYYY += *Pointer<Float4>(constants + OFFSET(Constants, sampleY[q]) + 16 * cMask[q]);
...@@ -144,7 +144,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu ...@@ -144,7 +144,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu
auto const &input = spirvShader->inputs[interpolant]; auto const &input = spirvShader->inputs[interpolant];
if(input.Type != SpirvShader::ATTRIBTYPE_UNUSED) if(input.Type != SpirvShader::ATTRIBTYPE_UNUSED)
{ {
if(input.Centroid && state.multiSample > 1) if(input.Centroid && state.multiSampleCount > 1)
{ {
routine.inputs[interpolant] = routine.inputs[interpolant] =
interpolateCentroid(XXXX, YYYY, rhwCentroid, interpolateCentroid(XXXX, YYYY, rhwCentroid,
...@@ -170,7 +170,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu ...@@ -170,7 +170,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu
false, true, false); false, true, false);
auto clipMask = SignMask(CmpGE(distance, SIMD::Float(0))); auto clipMask = SignMask(CmpGE(distance, SIMD::Float(0)));
for(auto ms = 0u; ms < state.multiSample; ms++) for(auto ms = 0u; ms < state.multiSampleCount; ms++)
{ {
// TODO: Fragments discarded by clipping do not exist at // TODO: Fragments discarded by clipping do not exist at
// all -- they should not be counted in queries or have // all -- they should not be counted in queries or have
...@@ -223,7 +223,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu ...@@ -223,7 +223,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu
if((spirvShader && spirvShader->getModes().ContainsKill) || state.alphaToCoverage) if((spirvShader && spirvShader->getModes().ContainsKill) || state.alphaToCoverage)
{ {
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
zMask[q] &= cMask[q]; zMask[q] &= cMask[q];
sMask[q] &= cMask[q]; sMask[q] &= cMask[q];
...@@ -234,7 +234,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu ...@@ -234,7 +234,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu
{ {
if(!earlyDepthTest) if(!earlyDepthTest)
{ {
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
depthPass = depthPass || depthTest(zBuffer, q, x, z[q], sMask[q], zMask[q], cMask[q]); depthPass = depthPass || depthTest(zBuffer, q, x, z[q], sMask[q], zMask[q], cMask[q]);
} }
...@@ -242,7 +242,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu ...@@ -242,7 +242,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu
If(depthPass || Bool(earlyDepthTest)) If(depthPass || Bool(earlyDepthTest))
{ {
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
if(state.multiSampleMask & (1 << q)) if(state.multiSampleMask & (1 << q))
{ {
...@@ -260,7 +260,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu ...@@ -260,7 +260,7 @@ void PixelRoutine::quad(Pointer<Byte> cBuffer[RENDERTARGETS], Pointer<Byte> &zBu
} }
} }
for(unsigned int q = 0; q < state.multiSample; q++) for(unsigned int q = 0; q < state.multiSampleCount; q++)
{ {
if(state.multiSampleMask & (1 << q)) if(state.multiSampleMask & (1 << q))
{ {
......
...@@ -166,7 +166,7 @@ void SetupRoutine::generate() ...@@ -166,7 +166,7 @@ void SetupRoutine::generate()
constexpr int subPixM = vk::SUBPIXEL_PRECISION_MASK; constexpr int subPixM = vk::SUBPIXEL_PRECISION_MASK;
constexpr float subPixF = vk::SUBPIXEL_PRECISION_FACTOR; constexpr float subPixF = vk::SUBPIXEL_PRECISION_FACTOR;
if(state.multiSample > 1) if(state.multiSampleCount > 1)
{ {
yMin = (yMin + Constants::yMinMultiSampleOffset) >> subPixB; yMin = (yMin + Constants::yMinMultiSampleOffset) >> subPixB;
yMax = (yMax + Constants::yMaxMultiSampleOffset) >> subPixB; yMax = (yMax + Constants::yMaxMultiSampleOffset) >> subPixB;
...@@ -188,7 +188,7 @@ void SetupRoutine::generate() ...@@ -188,7 +188,7 @@ void SetupRoutine::generate()
Return(0); Return(0);
} }
For(Int q = 0, q < state.multiSample, q++) For(Int q = 0, q < state.multiSampleCount, q++)
{ {
Array<Int> Xq(16); Array<Int> Xq(16);
Array<Int> Yq(16); Array<Int> Yq(16);
...@@ -200,7 +200,7 @@ void SetupRoutine::generate() ...@@ -200,7 +200,7 @@ void SetupRoutine::generate()
Xq[i] = X[i]; Xq[i] = X[i];
Yq[i] = Y[i]; Yq[i] = Y[i];
if(state.multiSample > 1) if(state.multiSampleCount > 1)
{ {
Xq[i] = Xq[i] + *Pointer<Int>(constants + OFFSET(Constants, Xf) + q * sizeof(int)); Xq[i] = Xq[i] + *Pointer<Int>(constants + OFFSET(Constants, Xf) + q * sizeof(int));
Yq[i] = Yq[i] + *Pointer<Int>(constants + OFFSET(Constants, Yf) + q * sizeof(int)); Yq[i] = Yq[i] + *Pointer<Int>(constants + OFFSET(Constants, Yf) + q * sizeof(int));
...@@ -213,7 +213,7 @@ void SetupRoutine::generate() ...@@ -213,7 +213,7 @@ void SetupRoutine::generate()
Pointer<Byte> leftEdge = Pointer<Byte>(primitive + OFFSET(Primitive, outline->left)) + q * sizeof(Primitive); Pointer<Byte> leftEdge = Pointer<Byte>(primitive + OFFSET(Primitive, outline->left)) + q * sizeof(Primitive);
Pointer<Byte> rightEdge = Pointer<Byte>(primitive + OFFSET(Primitive, outline->right)) + q * sizeof(Primitive); Pointer<Byte> rightEdge = Pointer<Byte>(primitive + OFFSET(Primitive, outline->right)) + q * sizeof(Primitive);
if(state.multiSample > 1) if(state.multiSampleCount > 1)
{ {
Int xMin = *Pointer<Int>(data + OFFSET(DrawData, scissorX0)); Int xMin = *Pointer<Int>(data + OFFSET(DrawData, scissorX0));
Int xMax = *Pointer<Int>(data + OFFSET(DrawData, scissorX1)); Int xMax = *Pointer<Int>(data + OFFSET(DrawData, scissorX1));
...@@ -242,7 +242,7 @@ void SetupRoutine::generate() ...@@ -242,7 +242,7 @@ void SetupRoutine::generate()
Until(i >= n); Until(i >= n);
} }
if(state.multiSample == 1) if(state.multiSampleCount == 1)
{ {
For(, yMin < yMax && *Pointer<Short>(leftEdge + yMin * sizeof(Primitive::Span)) == *Pointer<Short>(rightEdge + yMin * sizeof(Primitive::Span)), yMin++) For(, yMin < yMax && *Pointer<Short>(leftEdge + yMin * sizeof(Primitive::Span)) == *Pointer<Short>(rightEdge + yMin * sizeof(Primitive::Span)), yMin++)
{ {
......
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