Skip to content

Commit a84571c

Browse files
sparmarNVantiagainst
authored andcommitted
Add support for missing CallableNV shader stage
1 parent e2ddeea commit a84571c

File tree

7 files changed

+20
-0
lines changed

7 files changed

+20
-0
lines changed

glslc/src/shader_stage.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ shaderc_shader_kind MapStageNameToForcedKind(const string_piece& stage_name) {
5050
{"rchit", shaderc_glsl_closesthit_shader },
5151
{"rmiss", shaderc_glsl_miss_shader },
5252
{"rint", shaderc_glsl_intersection_shader },
53+
{"rcall", shaderc_glsl_callable_shader },
5354
{"task", shaderc_glsl_task_shader },
5455
{"mesh", shaderc_glsl_mesh_shader },
5556
#endif
@@ -84,6 +85,7 @@ shaderc_shader_kind DeduceDefaultShaderKindFromFileName(
8485
{"rchit", shaderc_glsl_default_closesthit_shader },
8586
{"rmiss", shaderc_glsl_default_miss_shader },
8687
{"rint", shaderc_glsl_default_intersection_shader },
88+
{"rcall", shaderc_glsl_default_callable_shader },
8789
{"task", shaderc_glsl_default_task_shader },
8890
{"mesh", shaderc_glsl_default_mesh_shader },
8991
#endif

glslc/src/stage_test.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ TEST(DeduceDefaultShaderKindFromFileName, ValidStage) {
6565
EXPECT_EQ(shaderc_glsl_default_intersection_shader,
6666
glslc::DeduceDefaultShaderKindFromFileName("a.rint"));
6767

68+
EXPECT_EQ(shaderc_glsl_default_callable_shader,
69+
glslc::DeduceDefaultShaderKindFromFileName("a.rcall"));
70+
6871
EXPECT_EQ(shaderc_glsl_default_task_shader,
6972
glslc::DeduceDefaultShaderKindFromFileName("a.task"));
7073

libshaderc/include/shaderc/shaderc.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,19 @@ typedef enum {
8484
shaderc_closesthit_shader,
8585
shaderc_miss_shader,
8686
shaderc_intersection_shader,
87+
shaderc_callable_shader,
8788
shaderc_glsl_raygen_shader = shaderc_raygen_shader,
8889
shaderc_glsl_anyhit_shader = shaderc_anyhit_shader,
8990
shaderc_glsl_closesthit_shader = shaderc_closesthit_shader,
9091
shaderc_glsl_miss_shader = shaderc_miss_shader,
9192
shaderc_glsl_intersection_shader = shaderc_intersection_shader,
93+
shaderc_glsl_callable_shader = shaderc_callable_shader,
9294
shaderc_glsl_default_raygen_shader,
9395
shaderc_glsl_default_anyhit_shader,
9496
shaderc_glsl_default_closesthit_shader,
9597
shaderc_glsl_default_miss_shader,
9698
shaderc_glsl_default_intersection_shader,
99+
shaderc_glsl_default_callable_shader,
97100
shaderc_task_shader,
98101
shaderc_mesh_shader,
99102
shaderc_glsl_task_shader = shaderc_task_shader,

libshaderc/src/shaderc.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ EShLanguage GetForcedStage(shaderc_shader_kind kind) {
6868
return EShLangMissNV;
6969
case shaderc_glsl_intersection_shader:
7070
return EShLangIntersectNV;
71+
case shaderc_glsl_callable_shader:
72+
return EShLangCallableNV;
7173
case shaderc_glsl_task_shader:
7274
return EShLangTaskNV;
7375
case shaderc_glsl_mesh_shader:
@@ -87,6 +89,7 @@ EShLanguage GetForcedStage(shaderc_shader_kind kind) {
8789
case shaderc_glsl_default_closesthit_shader:
8890
case shaderc_glsl_default_miss_shader:
8991
case shaderc_glsl_default_intersection_shader:
92+
case shaderc_glsl_default_callable_shader:
9093
case shaderc_glsl_default_task_shader:
9194
case shaderc_glsl_default_mesh_shader:
9295
#endif
@@ -153,6 +156,7 @@ class StageDeducer {
153156
case shaderc_glsl_closesthit_shader:
154157
case shaderc_glsl_miss_shader:
155158
case shaderc_glsl_intersection_shader:
159+
case shaderc_glsl_callable_shader:
156160
case shaderc_glsl_task_shader:
157161
case shaderc_glsl_mesh_shader:
158162
#endif
@@ -180,6 +184,8 @@ class StageDeducer {
180184
return EShLangMissNV;
181185
case shaderc_glsl_default_intersection_shader:
182186
return EShLangIntersectNV;
187+
case shaderc_glsl_default_callable_shader:
188+
return EShLangCallableNV;
183189
case shaderc_glsl_default_task_shader:
184190
return EShLangTaskNV;
185191
case shaderc_glsl_default_mesh_shader:

libshaderc/src/shaderc_private.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ inline shaderc_util::Compiler::Stage shaderc_convert_specific_stage(
122122
return shaderc_util::Compiler::Stage::ClosestHitNV;
123123
case shaderc_miss_shader:
124124
return shaderc_util::Compiler::Stage::MissNV;
125+
case shaderc_callable_shader:
126+
return shaderc_util::Compiler::Stage::CallableNV;
125127
case shaderc_task_shader:
126128
return shaderc_util::Compiler::Stage::TaskNV;
127129
case shaderc_mesh_shader:

libshaderc/src/shaderc_private_test.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ TEST(ConvertSpecificStage, Exhaustive) {
4141
shaderc_convert_specific_stage(shaderc_intersection_shader));
4242
EXPECT_EQ(shaderc_util::Compiler::Stage::MissNV,
4343
shaderc_convert_specific_stage(shaderc_miss_shader));
44+
EXPECT_EQ(shaderc_util::Compiler::Stage::CallableNV,
45+
shaderc_convert_specific_stage(shaderc_callable_shader));
4446
EXPECT_EQ(shaderc_util::Compiler::Stage::TaskNV,
4547
shaderc_convert_specific_stage(shaderc_task_shader));
4648
EXPECT_EQ(shaderc_util::Compiler::Stage::MeshNV,

libshaderc_util/include/libshaderc_util/compiler.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ class Compiler {
175175
AnyHitNV,
176176
ClosestHitNV,
177177
MissNV,
178+
CallableNV,
178179
TaskNV,
179180
MeshNV,
180181
#endif
@@ -193,6 +194,7 @@ class Compiler {
193194
Stage::AnyHitNV,
194195
Stage::ClosestHitNV,
195196
Stage::MissNV,
197+
Stage::CallableNV,
196198
Stage::TaskNV,
197199
Stage::MeshNV,
198200
#endif

0 commit comments

Comments
 (0)