Commit 2da04538 by Olli Etuaho Committed by Commit Bot

Add sampler2DMSArray support to HLSL output

This is done with small adjustments to TextureFunctionHLSL. Most of the functionality was already in place before. This changes the categorization of sampler types in BasicTypes.h helper functions: 2D array samplers are no longer treated as 2D samplers, but the two categories are now entirely disjoint. This makes TextureFunctionHLSL a little bit simpler. BUG=angleproject:2775 TEST=angle_unittests, angle_end2end_tests Change-Id: I84d9b56c37b1aaa01ee5921b6f17f8a78698fce2 Reviewed-on: https://chromium-review.googlesource.com/1188562Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
parent e1777558
...@@ -158,11 +158,13 @@ inline bool IsIntegerSampler(TBasicType type) ...@@ -158,11 +158,13 @@ inline bool IsIntegerSampler(TBasicType type)
case EbtISamplerCube: case EbtISamplerCube:
case EbtISampler2DArray: case EbtISampler2DArray:
case EbtISampler2DMS: case EbtISampler2DMS:
case EbtISampler2DMSArray:
case EbtUSampler2D: case EbtUSampler2D:
case EbtUSampler3D: case EbtUSampler3D:
case EbtUSamplerCube: case EbtUSamplerCube:
case EbtUSampler2DArray: case EbtUSampler2DArray:
case EbtUSampler2DMS: case EbtUSampler2DMS:
case EbtUSampler2DMSArray:
return true; return true;
case EbtSampler2D: case EbtSampler2D:
case EbtSampler3D: case EbtSampler3D:
...@@ -175,6 +177,7 @@ inline bool IsIntegerSampler(TBasicType type) ...@@ -175,6 +177,7 @@ inline bool IsIntegerSampler(TBasicType type)
case EbtSamplerCubeShadow: case EbtSamplerCubeShadow:
case EbtSampler2DArrayShadow: case EbtSampler2DArrayShadow:
case EbtSampler2DMS: case EbtSampler2DMS:
case EbtSampler2DMSArray:
return false; return false;
default: default:
assert(!IsSampler(type)); assert(!IsSampler(type));
...@@ -196,6 +199,19 @@ inline bool IsSampler2DMS(TBasicType type) ...@@ -196,6 +199,19 @@ inline bool IsSampler2DMS(TBasicType type)
} }
} }
inline bool IsSampler2DMSArray(TBasicType type)
{
switch (type)
{
case EbtSampler2DMSArray:
case EbtISampler2DMSArray:
case EbtUSampler2DMSArray:
return true;
default:
return false;
}
}
inline bool IsFloatImage(TBasicType type) inline bool IsFloatImage(TBasicType type)
{ {
switch (type) switch (type)
...@@ -246,6 +262,8 @@ inline bool IsUnsignedImage(TBasicType type) ...@@ -246,6 +262,8 @@ inline bool IsUnsignedImage(TBasicType type)
return false; return false;
} }
// Samplers are divided into 4 disjoint categories: 2D, cube, 3D, and array.
// Array samplers are not 2D samplers.
inline bool IsSampler2D(TBasicType type) inline bool IsSampler2D(TBasicType type)
{ {
switch (type) switch (type)
...@@ -253,18 +271,21 @@ inline bool IsSampler2D(TBasicType type) ...@@ -253,18 +271,21 @@ inline bool IsSampler2D(TBasicType type)
case EbtSampler2D: case EbtSampler2D:
case EbtISampler2D: case EbtISampler2D:
case EbtUSampler2D: case EbtUSampler2D:
case EbtSampler2DArray:
case EbtISampler2DArray:
case EbtUSampler2DArray:
case EbtSampler2DRect: case EbtSampler2DRect:
case EbtSamplerExternalOES: case EbtSamplerExternalOES:
case EbtSamplerExternal2DY2YEXT: case EbtSamplerExternal2DY2YEXT:
case EbtSampler2DShadow: case EbtSampler2DShadow:
case EbtSampler2DArrayShadow:
case EbtSampler2DMS: case EbtSampler2DMS:
case EbtISampler2DMS: case EbtISampler2DMS:
case EbtUSampler2DMS: case EbtUSampler2DMS:
return true; return true;
case EbtSampler2DArray:
case EbtISampler2DArray:
case EbtUSampler2DArray:
case EbtSampler2DMSArray:
case EbtISampler2DMSArray:
case EbtUSampler2DMSArray:
case EbtSampler2DArrayShadow:
case EbtSampler3D: case EbtSampler3D:
case EbtISampler3D: case EbtISampler3D:
case EbtUSampler3D: case EbtUSampler3D:
...@@ -296,14 +317,17 @@ inline bool IsSamplerCube(TBasicType type) ...@@ -296,14 +317,17 @@ inline bool IsSamplerCube(TBasicType type)
case EbtSampler2DRect: case EbtSampler2DRect:
case EbtSampler2DArray: case EbtSampler2DArray:
case EbtSampler2DMS: case EbtSampler2DMS:
case EbtSampler2DMSArray:
case EbtISampler2D: case EbtISampler2D:
case EbtISampler3D: case EbtISampler3D:
case EbtISampler2DArray: case EbtISampler2DArray:
case EbtISampler2DMS: case EbtISampler2DMS:
case EbtISampler2DMSArray:
case EbtUSampler2D: case EbtUSampler2D:
case EbtUSampler3D: case EbtUSampler3D:
case EbtUSampler2DArray: case EbtUSampler2DArray:
case EbtUSampler2DMS: case EbtUSampler2DMS:
case EbtUSampler2DMSArray:
case EbtSampler2DShadow: case EbtSampler2DShadow:
case EbtSampler2DArrayShadow: case EbtSampler2DArrayShadow:
return false; return false;
...@@ -329,14 +353,17 @@ inline bool IsSampler3D(TBasicType type) ...@@ -329,14 +353,17 @@ inline bool IsSampler3D(TBasicType type)
case EbtSampler2DRect: case EbtSampler2DRect:
case EbtSampler2DArray: case EbtSampler2DArray:
case EbtSampler2DMS: case EbtSampler2DMS:
case EbtSampler2DMSArray:
case EbtISampler2D: case EbtISampler2D:
case EbtISamplerCube: case EbtISamplerCube:
case EbtISampler2DArray: case EbtISampler2DArray:
case EbtISampler2DMS: case EbtISampler2DMS:
case EbtISampler2DMSArray:
case EbtUSampler2D: case EbtUSampler2D:
case EbtUSamplerCube: case EbtUSamplerCube:
case EbtUSampler2DArray: case EbtUSampler2DArray:
case EbtUSampler2DMS: case EbtUSampler2DMS:
case EbtUSampler2DMSArray:
case EbtSampler2DShadow: case EbtSampler2DShadow:
case EbtSamplerCubeShadow: case EbtSamplerCubeShadow:
case EbtSampler2DArrayShadow: case EbtSampler2DArrayShadow:
...@@ -355,6 +382,9 @@ inline bool IsSamplerArray(TBasicType type) ...@@ -355,6 +382,9 @@ inline bool IsSamplerArray(TBasicType type)
case EbtSampler2DArray: case EbtSampler2DArray:
case EbtISampler2DArray: case EbtISampler2DArray:
case EbtUSampler2DArray: case EbtUSampler2DArray:
case EbtSampler2DMSArray:
case EbtISampler2DMSArray:
case EbtUSampler2DMSArray:
case EbtSampler2DArrayShadow: case EbtSampler2DArrayShadow:
return true; return true;
case EbtSampler2D: case EbtSampler2D:
...@@ -395,11 +425,13 @@ inline bool IsShadowSampler(TBasicType type) ...@@ -395,11 +425,13 @@ inline bool IsShadowSampler(TBasicType type)
case EbtISamplerCube: case EbtISamplerCube:
case EbtISampler2DArray: case EbtISampler2DArray:
case EbtISampler2DMS: case EbtISampler2DMS:
case EbtISampler2DMSArray:
case EbtUSampler2D: case EbtUSampler2D:
case EbtUSampler3D: case EbtUSampler3D:
case EbtUSamplerCube: case EbtUSamplerCube:
case EbtUSampler2DArray: case EbtUSampler2DArray:
case EbtUSampler2DMS: case EbtUSampler2DMS:
case EbtUSampler2DMSArray:
case EbtSampler2D: case EbtSampler2D:
case EbtSampler3D: case EbtSampler3D:
case EbtSamplerCube: case EbtSamplerCube:
...@@ -408,6 +440,7 @@ inline bool IsShadowSampler(TBasicType type) ...@@ -408,6 +440,7 @@ inline bool IsShadowSampler(TBasicType type)
case EbtSampler2DRect: case EbtSampler2DRect:
case EbtSampler2DArray: case EbtSampler2DArray:
case EbtSampler2DMS: case EbtSampler2DMS:
case EbtSampler2DMSArray:
return false; return false;
default: default:
assert(!IsSampler(type)); assert(!IsSampler(type));
......
...@@ -169,14 +169,23 @@ const char *GetSamplerCoordinateTypeString( ...@@ -169,14 +169,23 @@ const char *GetSamplerCoordinateTypeString(
switch (hlslCoords) switch (hlslCoords)
{ {
case 2: case 2:
if (textureFunction.sampler == EbtSampler2DMS || if (IsSampler2DMS(textureFunction.sampler))
textureFunction.sampler == EbtISampler2DMS || {
textureFunction.sampler == EbtUSampler2DMS)
return "int2"; return "int2";
}
else else
{
return "int3"; return "int3";
}
case 3: case 3:
if (IsSampler2DMSArray(textureFunction.sampler))
{
return "int3";
}
else
{
return "int4"; return "int4";
}
default: default:
UNREACHABLE(); UNREACHABLE();
} }
...@@ -234,49 +243,13 @@ int GetHLSLCoordCount(const TextureFunctionHLSL::TextureFunction &textureFunctio ...@@ -234,49 +243,13 @@ int GetHLSLCoordCount(const TextureFunctionHLSL::TextureFunction &textureFunctio
} }
else else
{ {
switch (textureFunction.sampler) if (IsSampler3D(textureFunction.sampler) || IsSamplerArray(textureFunction.sampler) ||
IsSamplerCube(textureFunction.sampler))
{ {
case EbtSampler2D:
return 2;
case EbtSampler2DMS:
return 2;
case EbtSampler3D:
return 3;
case EbtSamplerCube:
return 3;
case EbtSampler2DArray:
return 3;
case EbtSamplerExternalOES:
return 2;
case EbtISampler2D:
return 2;
case EbtISampler2DMS:
return 2;
case EbtISampler3D:
return 3;
case EbtISamplerCube:
return 3; return 3;
case EbtISampler2DArray:
return 3;
case EbtUSampler2D:
return 2;
case EbtUSampler2DMS:
return 2;
case EbtUSampler3D:
return 3;
case EbtUSamplerCube:
return 3;
case EbtUSampler2DArray:
return 3;
case EbtSampler2DShadow:
return 2;
case EbtSamplerCubeShadow:
return 3;
case EbtSampler2DArrayShadow:
return 3;
default:
UNREACHABLE();
} }
ASSERT(IsSampler2D(textureFunction.sampler));
return 2;
} }
return 0; return 0;
} }
...@@ -400,9 +373,8 @@ void OutputTextureFunctionArgumentList(TInfoSinkBase &out, ...@@ -400,9 +373,8 @@ void OutputTextureFunctionArgumentList(TInfoSinkBase &out,
case TextureFunctionHLSL::TextureFunction::SIZE: case TextureFunctionHLSL::TextureFunction::SIZE:
break; break;
case TextureFunctionHLSL::TextureFunction::FETCH: case TextureFunctionHLSL::TextureFunction::FETCH:
if (textureFunction.sampler == EbtSampler2DMS || if (IsSampler2DMS(textureFunction.sampler) ||
textureFunction.sampler == EbtISampler2DMS || IsSampler2DMSArray(textureFunction.sampler))
textureFunction.sampler == EbtUSampler2DMS)
out << ", int index"; out << ", int index";
else else
out << ", int mip"; out << ", int mip";
...@@ -430,13 +402,11 @@ void OutputTextureFunctionArgumentList(TInfoSinkBase &out, ...@@ -430,13 +402,11 @@ void OutputTextureFunctionArgumentList(TInfoSinkBase &out,
case EbtUSampler2DArray: case EbtUSampler2DArray:
case EbtSampler2DShadow: case EbtSampler2DShadow:
case EbtSampler2DArrayShadow: case EbtSampler2DArrayShadow:
case EbtSampler2DMS:
case EbtISampler2DMS:
case EbtUSampler2DMS:
case EbtSamplerExternalOES: case EbtSamplerExternalOES:
out << ", int2 offset"; out << ", int2 offset";
break; break;
default: default:
// Offset is not supported for multisampled textures.
UNREACHABLE(); UNREACHABLE();
} }
} }
...@@ -508,6 +478,11 @@ void OutputTextureSizeFunctionBody(TInfoSinkBase &out, ...@@ -508,6 +478,11 @@ void OutputTextureSizeFunctionBody(TInfoSinkBase &out,
out << " uint width; uint height; uint samples;\n" out << " uint width; uint height; uint samples;\n"
<< " " << textureReference << ".GetDimensions(width, height, samples);\n"; << " " << textureReference << ".GetDimensions(width, height, samples);\n";
} }
else if (IsSampler2DMSArray(textureFunction.sampler))
{
out << " uint width; uint height; uint depth; uint samples;\n"
<< " " << textureReference << ".GetDimensions(width, height, depth, samples);\n";
}
else else
{ {
if (getDimensionsIgnoresBaseLevel) if (getDimensionsIgnoresBaseLevel)
...@@ -697,8 +672,6 @@ void OutputIntegerTextureSampleFunctionComputations( ...@@ -697,8 +672,6 @@ void OutputIntegerTextureSampleFunctionComputations(
} }
else if (textureFunction.method != TextureFunctionHLSL::TextureFunction::FETCH) else if (textureFunction.method != TextureFunctionHLSL::TextureFunction::FETCH)
{ {
if (IsSampler2D(textureFunction.sampler))
{
if (IsSamplerArray(textureFunction.sampler)) if (IsSamplerArray(textureFunction.sampler))
{ {
out << " float width; float height; float layers; float levels;\n"; out << " float width; float height; float layers; float levels;\n";
...@@ -744,7 +717,7 @@ void OutputIntegerTextureSampleFunctionComputations( ...@@ -744,7 +717,7 @@ void OutputIntegerTextureSampleFunctionComputations(
out << " " << textureReference out << " " << textureReference
<< ".GetDimensions(mip, width, height, layers, levels);\n"; << ".GetDimensions(mip, width, height, layers, levels);\n";
} }
else else if (IsSampler2D(textureFunction.sampler))
{ {
out << " float width; float height; float levels;\n"; out << " float width; float height; float levels;\n";
...@@ -758,8 +731,7 @@ void OutputIntegerTextureSampleFunctionComputations( ...@@ -758,8 +731,7 @@ void OutputIntegerTextureSampleFunctionComputations(
} }
else else
{ {
out << " " << textureReference out << " " << textureReference << ".GetDimensions(0, width, height, levels);\n";
<< ".GetDimensions(0, width, height, levels);\n";
if (textureFunction.method == TextureFunctionHLSL::TextureFunction::IMPLICIT || if (textureFunction.method == TextureFunctionHLSL::TextureFunction::IMPLICIT ||
textureFunction.method == TextureFunctionHLSL::TextureFunction::BIAS) textureFunction.method == TextureFunctionHLSL::TextureFunction::BIAS)
...@@ -786,9 +758,7 @@ void OutputIntegerTextureSampleFunctionComputations( ...@@ -786,9 +758,7 @@ void OutputIntegerTextureSampleFunctionComputations(
out << " uint mip = uint(min(max(round(lod), 0), levels - 1));\n"; out << " uint mip = uint(min(max(round(lod), 0), levels - 1));\n";
} }
out << " " << textureReference out << " " << textureReference << ".GetDimensions(mip, width, height, levels);\n";
<< ".GetDimensions(mip, width, height, levels);\n";
}
} }
else if (IsSampler3D(textureFunction.sampler)) else if (IsSampler3D(textureFunction.sampler))
{ {
...@@ -991,9 +961,8 @@ void OutputTextureSampleFunctionReturnStatement( ...@@ -991,9 +961,8 @@ void OutputTextureSampleFunctionReturnStatement(
else if (IsIntegerSampler(textureFunction.sampler) || else if (IsIntegerSampler(textureFunction.sampler) ||
textureFunction.method == TextureFunctionHLSL::TextureFunction::FETCH) textureFunction.method == TextureFunctionHLSL::TextureFunction::FETCH)
{ {
if (textureFunction.sampler == EbtSampler2DMS || if (IsSampler2DMS(textureFunction.sampler) ||
textureFunction.sampler == EbtISampler2DMS || IsSampler2DMSArray(textureFunction.sampler))
textureFunction.sampler == EbtUSampler2DMS)
out << "), index"; out << "), index";
else else
out << ", mip)"; out << ", mip)";
...@@ -1141,6 +1110,9 @@ const char *TextureFunctionHLSL::TextureFunction::getReturnType() const ...@@ -1141,6 +1110,9 @@ const char *TextureFunctionHLSL::TextureFunction::getReturnType() const
case EbtSampler2DArray: case EbtSampler2DArray:
case EbtISampler2DArray: case EbtISampler2DArray:
case EbtUSampler2DArray: case EbtUSampler2DArray:
case EbtSampler2DMSArray:
case EbtISampler2DMSArray:
case EbtUSampler2DMSArray:
case EbtSampler2DArrayShadow: case EbtSampler2DArrayShadow:
return "int3"; return "int3";
default: default:
...@@ -1153,6 +1125,7 @@ const char *TextureFunctionHLSL::TextureFunction::getReturnType() const ...@@ -1153,6 +1125,7 @@ const char *TextureFunctionHLSL::TextureFunction::getReturnType() const
{ {
case EbtSampler2D: case EbtSampler2D:
case EbtSampler2DMS: case EbtSampler2DMS:
case EbtSampler2DMSArray:
case EbtSampler3D: case EbtSampler3D:
case EbtSamplerCube: case EbtSamplerCube:
case EbtSampler2DArray: case EbtSampler2DArray:
...@@ -1160,12 +1133,14 @@ const char *TextureFunctionHLSL::TextureFunction::getReturnType() const ...@@ -1160,12 +1133,14 @@ const char *TextureFunctionHLSL::TextureFunction::getReturnType() const
return "float4"; return "float4";
case EbtISampler2D: case EbtISampler2D:
case EbtISampler2DMS: case EbtISampler2DMS:
case EbtISampler2DMSArray:
case EbtISampler3D: case EbtISampler3D:
case EbtISamplerCube: case EbtISamplerCube:
case EbtISampler2DArray: case EbtISampler2DArray:
return "int4"; return "int4";
case EbtUSampler2D: case EbtUSampler2D:
case EbtUSampler2DMS: case EbtUSampler2DMS:
case EbtUSampler2DMSArray:
case EbtUSampler3D: case EbtUSampler3D:
case EbtUSamplerCube: case EbtUSamplerCube:
case EbtUSampler2DArray: case EbtUSampler2DArray:
......
...@@ -83,6 +83,8 @@ HLSLTextureGroup TextureGroup(const TBasicType type, TLayoutImageInternalFormat ...@@ -83,6 +83,8 @@ HLSLTextureGroup TextureGroup(const TBasicType type, TLayoutImageInternalFormat
return HLSL_TEXTURE_3D; return HLSL_TEXTURE_3D;
case EbtSampler2DMS: case EbtSampler2DMS:
return HLSL_TEXTURE_2D_MS; return HLSL_TEXTURE_2D_MS;
case EbtSampler2DMSArray:
return HLSL_TEXTURE_2D_MS_ARRAY;
case EbtISampler2D: case EbtISampler2D:
return HLSL_TEXTURE_2D_INT4; return HLSL_TEXTURE_2D_INT4;
case EbtISampler3D: case EbtISampler3D:
...@@ -93,6 +95,8 @@ HLSLTextureGroup TextureGroup(const TBasicType type, TLayoutImageInternalFormat ...@@ -93,6 +95,8 @@ HLSLTextureGroup TextureGroup(const TBasicType type, TLayoutImageInternalFormat
return HLSL_TEXTURE_2D_ARRAY_INT4; return HLSL_TEXTURE_2D_ARRAY_INT4;
case EbtISampler2DMS: case EbtISampler2DMS:
return HLSL_TEXTURE_2D_MS_INT4; return HLSL_TEXTURE_2D_MS_INT4;
case EbtISampler2DMSArray:
return HLSL_TEXTURE_2D_MS_ARRAY_INT4;
case EbtUSampler2D: case EbtUSampler2D:
return HLSL_TEXTURE_2D_UINT4; return HLSL_TEXTURE_2D_UINT4;
case EbtUSampler3D: case EbtUSampler3D:
...@@ -103,6 +107,8 @@ HLSLTextureGroup TextureGroup(const TBasicType type, TLayoutImageInternalFormat ...@@ -103,6 +107,8 @@ HLSLTextureGroup TextureGroup(const TBasicType type, TLayoutImageInternalFormat
return HLSL_TEXTURE_2D_ARRAY_UINT4; return HLSL_TEXTURE_2D_ARRAY_UINT4;
case EbtUSampler2DMS: case EbtUSampler2DMS:
return HLSL_TEXTURE_2D_MS_UINT4; return HLSL_TEXTURE_2D_MS_UINT4;
case EbtUSampler2DMSArray:
return HLSL_TEXTURE_2D_MS_ARRAY_UINT4;
case EbtSampler2DShadow: case EbtSampler2DShadow:
return HLSL_TEXTURE_2D_COMPARISON; return HLSL_TEXTURE_2D_COMPARISON;
case EbtSamplerCubeShadow: case EbtSamplerCubeShadow:
...@@ -304,6 +310,8 @@ const char *TextureString(const HLSLTextureGroup textureGroup) ...@@ -304,6 +310,8 @@ const char *TextureString(const HLSLTextureGroup textureGroup)
return "Texture3D<snorm float4>"; return "Texture3D<snorm float4>";
case HLSL_TEXTURE_2D_MS: case HLSL_TEXTURE_2D_MS:
return "Texture2DMS<float4>"; return "Texture2DMS<float4>";
case HLSL_TEXTURE_2D_MS_ARRAY:
return "Texture2DMSArray<float4>";
case HLSL_TEXTURE_2D_INT4: case HLSL_TEXTURE_2D_INT4:
return "Texture2D<int4>"; return "Texture2D<int4>";
case HLSL_TEXTURE_3D_INT4: case HLSL_TEXTURE_3D_INT4:
...@@ -312,6 +320,8 @@ const char *TextureString(const HLSLTextureGroup textureGroup) ...@@ -312,6 +320,8 @@ const char *TextureString(const HLSLTextureGroup textureGroup)
return "Texture2DArray<int4>"; return "Texture2DArray<int4>";
case HLSL_TEXTURE_2D_MS_INT4: case HLSL_TEXTURE_2D_MS_INT4:
return "Texture2DMS<int4>"; return "Texture2DMS<int4>";
case HLSL_TEXTURE_2D_MS_ARRAY_INT4:
return "Texture2DMSArray<int4>";
case HLSL_TEXTURE_2D_UINT4: case HLSL_TEXTURE_2D_UINT4:
return "Texture2D<uint4>"; return "Texture2D<uint4>";
case HLSL_TEXTURE_3D_UINT4: case HLSL_TEXTURE_3D_UINT4:
...@@ -320,6 +330,8 @@ const char *TextureString(const HLSLTextureGroup textureGroup) ...@@ -320,6 +330,8 @@ const char *TextureString(const HLSLTextureGroup textureGroup)
return "Texture2DArray<uint4>"; return "Texture2DArray<uint4>";
case HLSL_TEXTURE_2D_MS_UINT4: case HLSL_TEXTURE_2D_MS_UINT4:
return "Texture2DMS<uint4>"; return "Texture2DMS<uint4>";
case HLSL_TEXTURE_2D_MS_ARRAY_UINT4:
return "Texture2DMSArray<uint4>";
case HLSL_TEXTURE_2D_COMPARISON: case HLSL_TEXTURE_2D_COMPARISON:
return "Texture2D"; return "Texture2D";
case HLSL_TEXTURE_CUBE_COMPARISON: case HLSL_TEXTURE_CUBE_COMPARISON:
...@@ -368,6 +380,8 @@ const char *TextureGroupSuffix(const HLSLTextureGroup type) ...@@ -368,6 +380,8 @@ const char *TextureGroupSuffix(const HLSLTextureGroup type)
return "3D_snorm_float4_"; return "3D_snorm_float4_";
case HLSL_TEXTURE_2D_MS: case HLSL_TEXTURE_2D_MS:
return "2DMS"; return "2DMS";
case HLSL_TEXTURE_2D_MS_ARRAY:
return "2DMSArray";
case HLSL_TEXTURE_2D_INT4: case HLSL_TEXTURE_2D_INT4:
return "2D_int4_"; return "2D_int4_";
case HLSL_TEXTURE_3D_INT4: case HLSL_TEXTURE_3D_INT4:
...@@ -376,6 +390,8 @@ const char *TextureGroupSuffix(const HLSLTextureGroup type) ...@@ -376,6 +390,8 @@ const char *TextureGroupSuffix(const HLSLTextureGroup type)
return "2DArray_int4_"; return "2DArray_int4_";
case HLSL_TEXTURE_2D_MS_INT4: case HLSL_TEXTURE_2D_MS_INT4:
return "2DMS_int4_"; return "2DMS_int4_";
case HLSL_TEXTURE_2D_MS_ARRAY_INT4:
return "2DMSArray_int4_";
case HLSL_TEXTURE_2D_UINT4: case HLSL_TEXTURE_2D_UINT4:
return "2D_uint4_"; return "2D_uint4_";
case HLSL_TEXTURE_3D_UINT4: case HLSL_TEXTURE_3D_UINT4:
...@@ -384,6 +400,8 @@ const char *TextureGroupSuffix(const HLSLTextureGroup type) ...@@ -384,6 +400,8 @@ const char *TextureGroupSuffix(const HLSLTextureGroup type)
return "2DArray_uint4_"; return "2DArray_uint4_";
case HLSL_TEXTURE_2D_MS_UINT4: case HLSL_TEXTURE_2D_MS_UINT4:
return "2DMS_uint4_"; return "2DMS_uint4_";
case HLSL_TEXTURE_2D_MS_ARRAY_UINT4:
return "2DMSArray_uint4_";
case HLSL_TEXTURE_2D_COMPARISON: case HLSL_TEXTURE_2D_COMPARISON:
return "2D_comparison"; return "2D_comparison";
case HLSL_TEXTURE_CUBE_COMPARISON: case HLSL_TEXTURE_CUBE_COMPARISON:
......
...@@ -40,14 +40,17 @@ enum HLSLTextureGroup ...@@ -40,14 +40,17 @@ enum HLSLTextureGroup
HLSL_TEXTURE_2D_ARRAY_SNORM, HLSL_TEXTURE_2D_ARRAY_SNORM,
HLSL_TEXTURE_3D_SNORM, HLSL_TEXTURE_3D_SNORM,
HLSL_TEXTURE_2D_MS, HLSL_TEXTURE_2D_MS,
HLSL_TEXTURE_2D_MS_ARRAY,
HLSL_TEXTURE_2D_INT4, HLSL_TEXTURE_2D_INT4,
HLSL_TEXTURE_3D_INT4, HLSL_TEXTURE_3D_INT4,
HLSL_TEXTURE_2D_ARRAY_INT4, HLSL_TEXTURE_2D_ARRAY_INT4,
HLSL_TEXTURE_2D_MS_INT4, HLSL_TEXTURE_2D_MS_INT4,
HLSL_TEXTURE_2D_MS_ARRAY_INT4,
HLSL_TEXTURE_2D_UINT4, HLSL_TEXTURE_2D_UINT4,
HLSL_TEXTURE_3D_UINT4, HLSL_TEXTURE_3D_UINT4,
HLSL_TEXTURE_2D_ARRAY_UINT4, HLSL_TEXTURE_2D_ARRAY_UINT4,
HLSL_TEXTURE_2D_MS_UINT4, HLSL_TEXTURE_2D_MS_UINT4,
HLSL_TEXTURE_2D_MS_ARRAY_UINT4,
// Comparison samplers // Comparison samplers
......
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