From 227a004b5717132c60b6ed018b7aa9fd8c1757f1 Mon Sep 17 00:00:00 2001 From: Frank Richter Date: Thu, 3 Oct 2019 16:36:17 +0200 Subject: [PATCH 1/2] reflection: Write workgroup_size to JSON for compute shaders --- spirv_reflect.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spirv_reflect.cpp b/spirv_reflect.cpp index f3eac7c4..08446f39 100644 --- a/spirv_reflect.cpp +++ b/spirv_reflect.cpp @@ -424,6 +424,15 @@ void CompilerReflection::emit_entry_points() json_stream->begin_json_object(); json_stream->emit_json_key_value("name", e.name); json_stream->emit_json_key_value("mode", execution_model_to_str(e.execution_model)); + if(e.execution_model == ExecutionModelGLCompute) + { + const auto &spv_entry = get_entry_point(e.name, e.execution_model); + json_stream->emit_json_key_array("workgroup_size"); + json_stream->emit_json_array_value(spv_entry.workgroup_size.x); + json_stream->emit_json_array_value(spv_entry.workgroup_size.y); + json_stream->emit_json_array_value(spv_entry.workgroup_size.z); + json_stream->end_json_array(); + } json_stream->end_json_object(); } json_stream->end_json_array(); From 6bb2cf8bb0678cb31fabb1cb730eaddee1e36eb5 Mon Sep 17 00:00:00 2001 From: Frank Richter Date: Thu, 3 Oct 2019 17:06:30 +0200 Subject: [PATCH 2/2] reference: Update to include workgroup_size --- .../asm/op-source-glsl-ssbo-1.asm.comp.json | 7 ++++++- .../asm/op-source-glsl-ssbo-2.asm.comp.json | 7 ++++++- .../asm/op-source-hlsl-uav-1.asm.comp.json | 7 ++++++- .../asm/op-source-hlsl-uav-2.asm.comp.json | 7 ++++++- .../asm/op-source-none-ssbo-1.asm.comp.json | 7 ++++++- .../asm/op-source-none-ssbo-2.asm.comp.json | 7 ++++++- .../asm/op-source-none-uav-1.asm.comp.json | 7 ++++++- .../asm/op-source-none-uav-2.asm.comp.json | 7 ++++++- reference/shaders-reflection/comp/struct-layout.comp.json | 7 ++++++- reference/shaders-reflection/comp/struct-packing.comp.json | 7 ++++++- 10 files changed, 60 insertions(+), 10 deletions(-) diff --git a/reference/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp.json b/reference/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp.json index 6cd7f95d..dbed7480 100644 --- a/reference/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp.json +++ b/reference/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp.json @@ -2,7 +2,12 @@ "entryPoints" : [ { "name" : "main", - "mode" : "comp" + "mode" : "comp", + "workgroup_size" : [ + 1, + 1, + 1 + ] } ], "types" : { diff --git a/reference/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp.json b/reference/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp.json index c2fa5640..1426f18e 100644 --- a/reference/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp.json +++ b/reference/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp.json @@ -2,7 +2,12 @@ "entryPoints" : [ { "name" : "main", - "mode" : "comp" + "mode" : "comp", + "workgroup_size" : [ + 1, + 1, + 1 + ] } ], "types" : { diff --git a/reference/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp.json b/reference/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp.json index 12b0677f..c28ea107 100644 --- a/reference/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp.json +++ b/reference/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp.json @@ -2,7 +2,12 @@ "entryPoints" : [ { "name" : "main", - "mode" : "comp" + "mode" : "comp", + "workgroup_size" : [ + 1, + 1, + 1 + ] } ], "types" : { diff --git a/reference/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp.json b/reference/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp.json index 8da2c74e..99848e75 100644 --- a/reference/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp.json +++ b/reference/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp.json @@ -2,7 +2,12 @@ "entryPoints" : [ { "name" : "main", - "mode" : "comp" + "mode" : "comp", + "workgroup_size" : [ + 1, + 1, + 1 + ] } ], "types" : { diff --git a/reference/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp.json b/reference/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp.json index 6cd7f95d..dbed7480 100644 --- a/reference/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp.json +++ b/reference/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp.json @@ -2,7 +2,12 @@ "entryPoints" : [ { "name" : "main", - "mode" : "comp" + "mode" : "comp", + "workgroup_size" : [ + 1, + 1, + 1 + ] } ], "types" : { diff --git a/reference/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp.json b/reference/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp.json index c2fa5640..1426f18e 100644 --- a/reference/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp.json +++ b/reference/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp.json @@ -2,7 +2,12 @@ "entryPoints" : [ { "name" : "main", - "mode" : "comp" + "mode" : "comp", + "workgroup_size" : [ + 1, + 1, + 1 + ] } ], "types" : { diff --git a/reference/shaders-reflection/asm/op-source-none-uav-1.asm.comp.json b/reference/shaders-reflection/asm/op-source-none-uav-1.asm.comp.json index 12b0677f..c28ea107 100644 --- a/reference/shaders-reflection/asm/op-source-none-uav-1.asm.comp.json +++ b/reference/shaders-reflection/asm/op-source-none-uav-1.asm.comp.json @@ -2,7 +2,12 @@ "entryPoints" : [ { "name" : "main", - "mode" : "comp" + "mode" : "comp", + "workgroup_size" : [ + 1, + 1, + 1 + ] } ], "types" : { diff --git a/reference/shaders-reflection/asm/op-source-none-uav-2.asm.comp.json b/reference/shaders-reflection/asm/op-source-none-uav-2.asm.comp.json index 8da2c74e..99848e75 100644 --- a/reference/shaders-reflection/asm/op-source-none-uav-2.asm.comp.json +++ b/reference/shaders-reflection/asm/op-source-none-uav-2.asm.comp.json @@ -2,7 +2,12 @@ "entryPoints" : [ { "name" : "main", - "mode" : "comp" + "mode" : "comp", + "workgroup_size" : [ + 1, + 1, + 1 + ] } ], "types" : { diff --git a/reference/shaders-reflection/comp/struct-layout.comp.json b/reference/shaders-reflection/comp/struct-layout.comp.json index 3004454b..2ef84cc5 100644 --- a/reference/shaders-reflection/comp/struct-layout.comp.json +++ b/reference/shaders-reflection/comp/struct-layout.comp.json @@ -2,7 +2,12 @@ "entryPoints" : [ { "name" : "main", - "mode" : "comp" + "mode" : "comp", + "workgroup_size" : [ + 1, + 1, + 1 + ] } ], "types" : { diff --git a/reference/shaders-reflection/comp/struct-packing.comp.json b/reference/shaders-reflection/comp/struct-packing.comp.json index 22a41584..9509f3f4 100644 --- a/reference/shaders-reflection/comp/struct-packing.comp.json +++ b/reference/shaders-reflection/comp/struct-packing.comp.json @@ -2,7 +2,12 @@ "entryPoints" : [ { "name" : "main", - "mode" : "comp" + "mode" : "comp", + "workgroup_size" : [ + 1, + 1, + 1 + ] } ], "types" : {