Skip to content

Commit 2c2294d

Browse files
authored
SPIR-V image operations (shader-slang#3163)
* Add __truncate and __sampledType for spirv_asm Allows some texture tests to start passing * add __isVector Currently unused * Add 1-vector legalization pass (WIP) * Add capabilities for image types * neaten instruction dumping * add 1-vector test * Add a couple of cases to vec1 legalization * Remove texture tests from expected failures * comment * regenerate vs projects * Remove redundant define form synchapi emulation * refactoring image methods * All sample functions refactored * Remove incorrect glsl intrinsics Partially addresses shader-slang#3174 * __subscript image ops via writing funcs * Extract texture struct writing from core.meta.slang * Abstract out cuda intrinsic * Remvoe erroneous call to opDecorateIndex * spirv asm IR utils * Correct position of loads for SPIR-V asm inst operands * Raise constructors to global scope during spir-v legalization * Correct snippet output * Implement most texture sampling ops for SPIR-V * Legalize 1-vectors for glsl too * Make SPIR-V inst operands non-hoistable * Better 1-vector legalization * Put textures in ptrs for spirv * insert missing break * Add vec1 legalization test * Add some missing pieces to slang-ir-insts * Greatly neaten vec1 legalization * a * Neaten vec1 legalization * Add image read and write intrinsics for spir-v * Squash warnings * regenerate vs projects * Drop redundant guards * Drop 5 tests from expected failure list * Inst numbering changes to cross compile tests * vec1 legalization tests only on vk * Correct location of asm op emit * Inline constant in spirv-asm * Correct signedness for lane in wave intrinsics * Extract element from float1 for cuda * squash warnings * Neaten spirv-emit * dedupe more capabilities * warnings * neaten assert * comments * comments
1 parent 641f7bd commit 2c2294d

35 files changed

+2399
-1474
lines changed

build/visual-studio/slang/slang.vcxproj

+4
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,7 @@ IF EXIST ..\..\..\external\slang-glslang\bin\windows-aarch64\release\slang-glsla
404404
<ClInclude Include="..\..\..\source\slang\slang-ir-legalize-mesh-outputs.h" />
405405
<ClInclude Include="..\..\..\source\slang\slang-ir-legalize-uniform-buffer-load.h" />
406406
<ClInclude Include="..\..\..\source\slang\slang-ir-legalize-varying-params.h" />
407+
<ClInclude Include="..\..\..\source\slang\slang-ir-legalize-vector-types.h" />
407408
<ClInclude Include="..\..\..\source\slang\slang-ir-link.h" />
408409
<ClInclude Include="..\..\..\source\slang\slang-ir-liveness.h" />
409410
<ClInclude Include="..\..\..\source\slang\slang-ir-loop-inversion.h" />
@@ -505,6 +506,7 @@ IF EXIST ..\..\..\external\slang-glslang\bin\windows-aarch64\release\slang-glsla
505506
<ClInclude Include="..\..\..\source\slang\slang-serialize-value-type-info.h" />
506507
<ClInclude Include="..\..\..\source\slang\slang-serialize.h" />
507508
<ClInclude Include="..\..\..\source\slang\slang-spirv-val.h" />
509+
<ClInclude Include="..\..\..\source\slang\slang-stdlib-textures.h" />
508510
<ClInclude Include="..\..\..\source\slang\slang-syntax.h" />
509511
<ClInclude Include="..\..\..\source\slang\slang-type-layout.h" />
510512
<ClInclude Include="..\..\..\source\slang\slang-type-system-shared.h" />
@@ -616,6 +618,7 @@ IF EXIST ..\..\..\external\slang-glslang\bin\windows-aarch64\release\slang-glsla
616618
<ClCompile Include="..\..\..\source\slang\slang-ir-legalize-types.cpp" />
617619
<ClCompile Include="..\..\..\source\slang\slang-ir-legalize-uniform-buffer-load.cpp" />
618620
<ClCompile Include="..\..\..\source\slang\slang-ir-legalize-varying-params.cpp" />
621+
<ClCompile Include="..\..\..\source\slang\slang-ir-legalize-vector-types.cpp" />
619622
<ClCompile Include="..\..\..\source\slang\slang-ir-link.cpp" />
620623
<ClCompile Include="..\..\..\source\slang\slang-ir-liveness.cpp" />
621624
<ClCompile Include="..\..\..\source\slang\slang-ir-loop-inversion.cpp" />
@@ -715,6 +718,7 @@ IF EXIST ..\..\..\external\slang-glslang\bin\windows-aarch64\release\slang-glsla
715718
<ClCompile Include="..\..\..\source\slang\slang-spirv-core-grammar-embed.cpp" />
716719
<ClCompile Include="..\..\..\source\slang\slang-spirv-val.cpp" />
717720
<ClCompile Include="..\..\..\source\slang\slang-stdlib-api.cpp" />
721+
<ClCompile Include="..\..\..\source\slang\slang-stdlib-textures.cpp" />
718722
<ClCompile Include="..\..\..\source\slang\slang-stdlib.cpp" />
719723
<ClCompile Include="..\..\..\source\slang\slang-syntax.cpp" />
720724
<ClCompile Include="..\..\..\source\slang\slang-type-layout.cpp" />

build/visual-studio/slang/slang.vcxproj.filters

+12
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,9 @@
300300
<ClInclude Include="..\..\..\source\slang\slang-ir-legalize-varying-params.h">
301301
<Filter>Header Files</Filter>
302302
</ClInclude>
303+
<ClInclude Include="..\..\..\source\slang\slang-ir-legalize-vector-types.h">
304+
<Filter>Header Files</Filter>
305+
</ClInclude>
303306
<ClInclude Include="..\..\..\source\slang\slang-ir-link.h">
304307
<Filter>Header Files</Filter>
305308
</ClInclude>
@@ -603,6 +606,9 @@
603606
<ClInclude Include="..\..\..\source\slang\slang-spirv-val.h">
604607
<Filter>Header Files</Filter>
605608
</ClInclude>
609+
<ClInclude Include="..\..\..\source\slang\slang-stdlib-textures.h">
610+
<Filter>Header Files</Filter>
611+
</ClInclude>
606612
<ClInclude Include="..\..\..\source\slang\slang-syntax.h">
607613
<Filter>Header Files</Filter>
608614
</ClInclude>
@@ -932,6 +938,9 @@
932938
<ClCompile Include="..\..\..\source\slang\slang-ir-legalize-varying-params.cpp">
933939
<Filter>Source Files</Filter>
934940
</ClCompile>
941+
<ClCompile Include="..\..\..\source\slang\slang-ir-legalize-vector-types.cpp">
942+
<Filter>Source Files</Filter>
943+
</ClCompile>
935944
<ClCompile Include="..\..\..\source\slang\slang-ir-link.cpp">
936945
<Filter>Source Files</Filter>
937946
</ClCompile>
@@ -1229,6 +1238,9 @@
12291238
<ClCompile Include="..\..\..\source\slang\slang-stdlib-api.cpp">
12301239
<Filter>Source Files</Filter>
12311240
</ClCompile>
1241+
<ClCompile Include="..\..\..\source\slang\slang-stdlib-textures.cpp">
1242+
<Filter>Source Files</Filter>
1243+
</ClCompile>
12321244
<ClCompile Include="..\..\..\source\slang\slang-stdlib.cpp">
12331245
<Filter>Source Files</Filter>
12341246
</ClCompile>

0 commit comments

Comments
 (0)