From 30068d75fb97fecc163253fb331daddbb09234e6 Mon Sep 17 00:00:00 2001 From: Devon Date: Thu, 20 Mar 2025 00:38:52 -0600 Subject: Make image format reflection easier (#6550) * image format json reflection * format code * use direct include --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> --- tests/reflection/texture-resource-type.slang | 7 +- .../texture-resource-type.slang.expected | 104 ++++++++++++++++++--- tests/reflection/used-parameters.slang.expected | 16 +++- 3 files changed, 108 insertions(+), 19 deletions(-) (limited to 'tests') diff --git a/tests/reflection/texture-resource-type.slang b/tests/reflection/texture-resource-type.slang index 2455ba611..36f7ff8d2 100644 --- a/tests/reflection/texture-resource-type.slang +++ b/tests/reflection/texture-resource-type.slang @@ -1,12 +1,13 @@ // texture-resource-type.slang -// Tests reflection of inner texture type. +// Tests reflection of inner texture type and formats. //TEST:REFLECTION:-stage compute -entry main -target hlsl Texture2D NoParameters; Texture2D FloatTexture; Texture2D FloatTwoTexture; +Texture2D FloatThreeTexture; Texture2D FloatFourTexture; Texture2D IntTexture; Texture2D IntTwoTexture; @@ -14,6 +15,10 @@ Texture2D IntFourTexture; Texture2D UintTexture; Texture2D UintTwoTexture; Texture2D UintFourTexture; +[format("r11f_g11f_b10f")] +Texture2D R11G11B10Texture; +[format("rgb10_a2ui")] +Texture2D RGB10_A2_UI_Texture; [numthreads(1, 1, 1)] void main(uint3 dispatchThreadID : SV_DispatchThreadID) diff --git a/tests/reflection/texture-resource-type.slang.expected b/tests/reflection/texture-resource-type.slang.expected index 48d1f0f79..c318a8330 100644 --- a/tests/reflection/texture-resource-type.slang.expected +++ b/tests/reflection/texture-resource-type.slang.expected @@ -49,8 +49,24 @@ standard output = { } }, { - "name": "FloatFourTexture", + "name": "FloatThreeTexture", "binding": {"kind": "shaderResource", "index": 3}, + "type": { + "kind": "resource", + "baseShape": "texture2D", + "resultType": { + "kind": "vector", + "elementCount": 3, + "elementType": { + "kind": "scalar", + "scalarType": "float32" + } + } + } + }, + { + "name": "FloatFourTexture", + "binding": {"kind": "shaderResource", "index": 4}, "type": { "kind": "resource", "baseShape": "texture2D", @@ -66,7 +82,8 @@ standard output = { }, { "name": "IntTexture", - "binding": {"kind": "shaderResource", "index": 4}, + "binding": {"kind": "shaderResource", "index": 5}, + "format": "r32i", "type": { "kind": "resource", "baseShape": "texture2D", @@ -78,7 +95,8 @@ standard output = { }, { "name": "IntTwoTexture", - "binding": {"kind": "shaderResource", "index": 5}, + "binding": {"kind": "shaderResource", "index": 6}, + "format": "rg32i", "type": { "kind": "resource", "baseShape": "texture2D", @@ -94,7 +112,8 @@ standard output = { }, { "name": "IntFourTexture", - "binding": {"kind": "shaderResource", "index": 6}, + "binding": {"kind": "shaderResource", "index": 7}, + "format": "rgba32i", "type": { "kind": "resource", "baseShape": "texture2D", @@ -110,7 +129,8 @@ standard output = { }, { "name": "UintTexture", - "binding": {"kind": "shaderResource", "index": 7}, + "binding": {"kind": "shaderResource", "index": 8}, + "format": "r32ui", "type": { "kind": "resource", "baseShape": "texture2D", @@ -122,7 +142,8 @@ standard output = { }, { "name": "UintTwoTexture", - "binding": {"kind": "shaderResource", "index": 8}, + "binding": {"kind": "shaderResource", "index": 9}, + "format": "rg32ui", "type": { "kind": "resource", "baseShape": "texture2D", @@ -138,13 +159,48 @@ standard output = { }, { "name": "UintFourTexture", - "binding": {"kind": "shaderResource", "index": 9}, + "binding": {"kind": "shaderResource", "index": 10}, + "format": "rgba32ui", + "type": { + "kind": "resource", + "baseShape": "texture2D", + "resultType": { + "kind": "vector", + "elementCount": 4, + "elementType": { + "kind": "scalar", + "scalarType": "uint32" + } + } + } + }, + { + "name": "R11G11B10Texture", + "binding": {"kind": "shaderResource", "index": 11}, + "format": "r11f_g11f_b10f", "type": { "kind": "resource", "baseShape": "texture2D", "resultType": { "kind": "vector", "elementCount": 4, + "elementType": { + "kind": "scalar", + "scalarType": "float32" + } + } + } + }, + { + "name": "RGB10_A2_UI_Texture", + "binding": {"kind": "shaderResource", "index": 12}, + "format": "rgb10_a2ui", + "type": { + "kind": "resource", + "baseShape": "texture2D", + "resultType": { + "kind": "vector", + "elementCount": 3, "elementType": { "kind": "scalar", "scalarType": "uint32" @@ -186,32 +242,52 @@ standard output = { "binding": {"kind": "shaderResource", "index": 2, "used": 0} }, { - "name": "FloatFourTexture", + "name": "FloatThreeTexture", "binding": {"kind": "shaderResource", "index": 3, "used": 0} }, { - "name": "IntTexture", + "name": "FloatFourTexture", "binding": {"kind": "shaderResource", "index": 4, "used": 0} }, + { + "name": "IntTexture", + "binding": {"kind": "shaderResource", "index": 5, "used": 0}, + "format": "r32i" + }, { "name": "IntTwoTexture", - "binding": {"kind": "shaderResource", "index": 5, "used": 0} + "binding": {"kind": "shaderResource", "index": 6, "used": 0}, + "format": "rg32i" }, { "name": "IntFourTexture", - "binding": {"kind": "shaderResource", "index": 6, "used": 0} + "binding": {"kind": "shaderResource", "index": 7, "used": 0}, + "format": "rgba32i" }, { "name": "UintTexture", - "binding": {"kind": "shaderResource", "index": 7, "used": 0} + "binding": {"kind": "shaderResource", "index": 8, "used": 0}, + "format": "r32ui" }, { "name": "UintTwoTexture", - "binding": {"kind": "shaderResource", "index": 8, "used": 0} + "binding": {"kind": "shaderResource", "index": 9, "used": 0}, + "format": "rg32ui" }, { "name": "UintFourTexture", - "binding": {"kind": "shaderResource", "index": 9, "used": 0} + "binding": {"kind": "shaderResource", "index": 10, "used": 0}, + "format": "rgba32ui" + }, + { + "name": "R11G11B10Texture", + "binding": {"kind": "shaderResource", "index": 11, "used": 0}, + "format": "r11f_g11f_b10f" + }, + { + "name": "RGB10_A2_UI_Texture", + "binding": {"kind": "shaderResource", "index": 12, "used": 0}, + "format": "rgb10_a2ui" } ] } diff --git a/tests/reflection/used-parameters.slang.expected b/tests/reflection/used-parameters.slang.expected index 0a4fba104..59b1ae14d 100644 --- a/tests/reflection/used-parameters.slang.expected +++ b/tests/reflection/used-parameters.slang.expected @@ -137,6 +137,7 @@ standard output = { { "name": "UsedBuffer", "binding": {"kind": "shaderResource", "index": 2}, + "format": "r32ui", "type": { "kind": "resource", "baseShape": "textureBuffer" @@ -145,6 +146,7 @@ standard output = { { "name": "UnusedBuffer", "binding": {"kind": "shaderResource", "index": 3}, + "format": "r32ui", "type": { "kind": "resource", "baseShape": "textureBuffer" @@ -211,6 +213,7 @@ standard output = { { "name": "UsedRWBuffer", "binding": {"kind": "unorderedAccess", "index": 2}, + "format": "r32ui", "type": { "kind": "resource", "baseShape": "textureBuffer", @@ -220,6 +223,7 @@ standard output = { { "name": "UnusedRWBuffer", "binding": {"kind": "unorderedAccess", "index": 3}, + "format": "r32ui", "type": { "kind": "resource", "baseShape": "textureBuffer", @@ -321,11 +325,13 @@ standard output = { }, { "name": "UsedBuffer", - "binding": {"kind": "shaderResource", "index": 2, "used": 1} + "binding": {"kind": "shaderResource", "index": 2, "used": 1}, + "format": "r32ui" }, { "name": "UnusedBuffer", - "binding": {"kind": "shaderResource", "index": 3, "used": 0} + "binding": {"kind": "shaderResource", "index": 3, "used": 0}, + "format": "r32ui" }, { "name": "UsedStructuredBuffer", @@ -345,11 +351,13 @@ standard output = { }, { "name": "UsedRWBuffer", - "binding": {"kind": "unorderedAccess", "index": 2, "used": 1} + "binding": {"kind": "unorderedAccess", "index": 2, "used": 1}, + "format": "r32ui" }, { "name": "UnusedRWBuffer", - "binding": {"kind": "unorderedAccess", "index": 3, "used": 0} + "binding": {"kind": "unorderedAccess", "index": 3, "used": 0}, + "format": "r32ui" }, { "name": "UsedRWStructuredBuffer", -- cgit v1.2.3