ES31: Implement getMultisamplefv for D3D part.
Implement getMultisamplefv for d3d part.Because standard D3D sample
positions from https://msdn.microsoft.com/en-us/library/windows/
desktop/ff476218.aspx are fixed sample pattern,we put the sample
positions into a constant array in renderer11_utils.cpp with a
function to query it.
BUG=angleproject:1590
TEST=dEQP-GLES31.functional.texture.multisample.samples_*.sample_position
Change-Id: I6e6006ed1c4e22fe006522e9ffd3297247bee75e
Reviewed-on: https://chromium-review.googlesource.com/594970
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/compiler/translator/TextureFunctionHLSL.cpp b/src/compiler/translator/TextureFunctionHLSL.cpp
index bbf69b1..d2b65a6 100644
--- a/src/compiler/translator/TextureFunctionHLSL.cpp
+++ b/src/compiler/translator/TextureFunctionHLSL.cpp
@@ -168,7 +168,12 @@
switch (hlslCoords)
{
case 2:
- return "int3";
+ if (textureFunction.sampler == EbtSampler2DMS ||
+ textureFunction.sampler == EbtISampler2DMS ||
+ textureFunction.sampler == EbtUSampler2DMS)
+ return "int2";
+ else
+ return "int3";
case 3:
return "int4";
default:
@@ -202,6 +207,7 @@
{
case EbtSampler2D:
case EbtSamplerExternalOES:
+ case EbtSampler2DMS:
hlslCoords = 2;
break;
case EbtSamplerCube:
@@ -393,7 +399,12 @@
case TextureFunctionHLSL::TextureFunction::SIZE:
break;
case TextureFunctionHLSL::TextureFunction::FETCH:
- out << ", int mip";
+ if (textureFunction.sampler == EbtSampler2DMS ||
+ textureFunction.sampler == EbtISampler2DMS ||
+ textureFunction.sampler == EbtUSampler2DMS)
+ out << ", int index";
+ else
+ out << ", int mip";
break;
case TextureFunctionHLSL::TextureFunction::GRAD:
break;
@@ -418,6 +429,9 @@
case EbtUSampler2DArray:
case EbtSampler2DShadow:
case EbtSampler2DArrayShadow:
+ case EbtSampler2DMS:
+ case EbtISampler2DMS:
+ case EbtUSampler2DMS:
case EbtSamplerExternalOES:
out << ", int2 offset";
break;
@@ -942,7 +956,12 @@
else if (IsIntegerSampler(textureFunction.sampler) ||
textureFunction.method == TextureFunctionHLSL::TextureFunction::FETCH)
{
- out << ", mip)";
+ if (textureFunction.sampler == EbtSampler2DMS ||
+ textureFunction.sampler == EbtISampler2DMS ||
+ textureFunction.sampler == EbtUSampler2DMS)
+ out << "), index";
+ else
+ out << ", mip)";
}
else if (IsShadowSampler(textureFunction.sampler))
{