Commit 8a97d389 by John Kessenich

HLSL: Fix #1912: add attribute syntax for nonreadable/nonwritable

parent 2d9b0a35
......@@ -8,9 +8,9 @@ SamplerState g_sSamp : register(s0);
[[spv::format_r11fg11fb10f]] RWTexture2D <int4> g_tTex2di4;
[[spv::format_r8snorm]] RWTexture2D <uint4> g_tTex2du4;
[[spv::format_rg8]] RWTexture3D <float4> g_tTex3df4;
[[spv::format_rgba16i]] RWTexture3D <int4> g_tTex3di4;
[[spv::format_r8i]] RWTexture3D <uint4> g_tTex3du4;
[[spv::format_rg8]] [[spv::nonwritable]] RWTexture3D <float4> g_tTex3df4;
[[spv::format_rgba16i]] [[spv::nonreadable]] RWTexture3D <int4> g_tTex3di4;
[[spv::format_r8i]] [[spv::nonwritable]] [[spv::nonreadable]] RWTexture3D <uint4> g_tTex3du4;
[[spv::format_rgba8ui]] RWTexture1DArray <float4> g_tTex1df4a;
[[spv::format_rg32ui]] RWTexture1DArray <int4> g_tTex1di4a;
......@@ -20,6 +20,32 @@ SamplerState g_sSamp : register(s0);
[[spv::format_r8ui]] RWTexture2DArray <int4> g_tTex2di4a;
[[spv::format_rgba16f]] RWTexture2DArray <uint4> g_tTex2du4a;
[[spv::format_rgba8 ]] RWTexture2DArray<int4> g_tTex01;
[[spv::format_rg16f ]] RWTexture2DArray<int4> g_tTex02;
[[spv::format_r16f ]] RWTexture2DArray<int4> g_tTex03;
[[spv::format_rgb10a2 ]] RWTexture2DArray<int4> g_tTex04;
[[spv::format_rg16 ]] RWTexture2DArray<int4> g_tTex05;
[[spv::format_r32f ]] RWTexture2DArray<int4> g_tTex06;
[[spv::format_rgba16 ]] RWTexture2DArray<int4> g_tTex07;
[[spv::format_r16 ]] RWTexture2DArray<int4> g_tTex08;
[[spv::format_r8 ]] RWTexture2DArray<int4> g_tTex09;
[[spv::format_rgba16snorm ]] RWTexture2DArray<int4> g_tTex10;
[[spv::format_rg16snorm ]] RWTexture2DArray<int4> g_tTex11;
[[spv::format_r16snorm ]] RWTexture2DArray<int4> g_tTex12;
[[spv::format_r8snorm ]] RWTexture2DArray<int4> g_tTex13;
[[spv::format_rgba32i ]] RWTexture2DArray<int4> g_tTex14;
[[spv::format_r32i ]] RWTexture2DArray<int4> g_tTex15;
[[spv::format_r32ui ]] RWTexture2DArray<int4> g_tTex16;
[[spv::format_rg16i ]] RWTexture2DArray<int4> g_tTex17;
[[spv::format_r16i ]] RWTexture2DArray<int4> g_tTex18;
[[spv::format_rg32i ]] RWTexture2DArray<int4> g_tTex19;
[[spv::format_rg8i ]] RWTexture2DArray<int4> g_tTex20;
[[spv::format_rg8ui ]] RWTexture2DArray<int4> g_tTex21;
[[spv::format_rgba32ui ]] RWTexture2DArray<int4> g_tTex22;
[[spv::format_rgba16ui ]] RWTexture2DArray<int4> g_tTex23;
[[spv::format_rg32ui ]] RWTexture2DArray<int4> g_tTex24;
[[spv::format_rg16ui ]] RWTexture2DArray<int4> g_tTex25;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
......
......@@ -116,7 +116,9 @@ namespace glslang {
EatFormatRg8ui,
EatFormatR16ui,
EatFormatR8ui,
EatFormatUnknown
EatFormatUnknown,
EatNonWritable,
EatNonReadable
};
class TIntermAggregate;
......
......@@ -98,7 +98,9 @@ namespace glslang {
if (name == "format_rg8ui") return EatFormatRg8ui;
if (name == "format_r16ui") return EatFormatR16ui;
if (name == "format_r8ui") return EatFormatR8ui;
return EatFormatUnknown;
if (name == "nonwritable") return EatNonWritable;
if (name == "nonreadable") return EatNonReadable;
} else if (nameSpace.size() > 0)
return EatNone;
......
......@@ -1993,6 +1993,9 @@ void HlslParseContext::transferTypeAttributes(const TSourceLoc& loc, const TAttr
case EatFormatR8ui: type.getQualifier().layoutFormat = ElfR8ui; break;
case EatFormatUnknown: type.getQualifier().layoutFormat = ElfNone; break;
case EatNonWritable: type.getQualifier().readonly = true; break;
case EatNonReadable: type.getQualifier().writeonly = true; break;
default:
if (! allowEntry)
warn(loc, "attribute does not apply to a type", "", "");
......
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