Skip to content

Commit 132a91e

Browse files
authored
Merge branch 'master' into fix/workgraphcs_fix_blocking_issue_for_lionel
2 parents 1a9a1c5 + eee974d commit 132a91e

File tree

129 files changed

+4201
-1181
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+4201
-1181
lines changed

.github/workflows/ci.yml

+8-4
Original file line numberDiff line numberDiff line change
@@ -169,23 +169,26 @@ jobs:
169169
-server-count 8 \
170170
-category ${{ matrix.test-category }} \
171171
-api all-cpu \
172-
-expected-failure-list tests/expected-failure-github.txt
172+
-expected-failure-list tests/expected-failure-github.txt \
173+
-show-adapter-info
173174
elif [[ "${{matrix.has-gpu}}" == "true" ]]; then
174175
"$bin_dir/slang-test" \
175176
-use-test-server \
176177
-category ${{ matrix.test-category }} \
177178
-api all-dx12 \
178179
-expected-failure-list tests/expected-failure-github.txt \
179180
-expected-failure-list tests/expected-failure-record-replay-tests.txt \
180-
-expected-failure-list tests/expected-failure-github-runner.txt
181+
-expected-failure-list tests/expected-failure-github-runner.txt \
182+
-show-adapter-info
181183
else
182184
"$bin_dir/slang-test" \
183185
-use-test-server \
184186
-category ${{ matrix.test-category }} \
185187
-api all-dx12 \
186188
-expected-failure-list tests/expected-failure-github.txt \
187189
-expected-failure-list tests/expected-failure-record-replay-tests.txt \
188-
-expected-failure-list tests/expected-failure-github-runner.txt
190+
-expected-failure-list tests/expected-failure-github-runner.txt \
191+
-show-adapter-info
189192
fi
190193
- name: Run Slang examples
191194
if: steps.filter.outputs.should-run == 'true' && matrix.platform != 'wasm' && matrix.full-gpu-tests
@@ -211,7 +214,8 @@ jobs:
211214
-category ${{ matrix.test-category }} \
212215
-emit-spirv-via-glsl \
213216
-api vk \
214-
-expected-failure-list tests/expected-failure.txt
217+
-expected-failure-list tests/expected-failure.txt \
218+
-show-adapter-info
215219
- uses: actions/upload-artifact@v4
216220
if: steps.filter.outputs.should-run == 'true' && ! matrix.full-gpu-tests
217221
with:

.github/workflows/release-linux-glibc-2-17.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,11 @@ jobs:
3535
id: package
3636
run: |
3737
triggering_ref=${{ github.ref_name }}
38-
version=${triggering_ref#v}
38+
if [[ $triggering_ref =~ ^v[0-9] ]]; then
39+
version=${triggering_ref#v}
40+
else
41+
version=$triggering_ref
42+
fi
3943
base=$(pwd)/slang-${version}-linux-x86_64-glibc-2.17
4044
4145
sudo mv "$(pwd)/build/dist-release/slang.zip" "${base}.zip"

.github/workflows/release.yml

+6-1
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,12 @@ jobs:
169169
cpack --preset "$config-debug-info" -G TGZ
170170
171171
triggering_ref=${{ github.ref_name }}
172-
base=slang-${triggering_ref#v}-${{matrix.os}}-${{matrix.platform}}
172+
if [[ $triggering_ref =~ ^v[0-9] ]]; then
173+
version=${triggering_ref#v}
174+
else
175+
version=$triggering_ref
176+
fi
177+
base=slang-${version}-${{matrix.os}}-${{matrix.platform}}
173178
174179
# Move main packages
175180
mv "$(pwd)/build/dist-${config}/slang.zip" "${base}.zip"

CMakeLists.txt

+71-14
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,55 @@ option(
166166
)
167167
mark_as_advanced(SLANG_SPIRV_HEADERS_INCLUDE_DIR)
168168

169+
# Options for user defined paths for external modules.
170+
advanced_option(
171+
SLANG_OVERRIDE_LZ4_PATH
172+
"Build using user defined path for LZ4"
173+
OFF
174+
)
175+
advanced_option(
176+
SLANG_OVERRIDE_MINIZ_PATH
177+
"Build using user defined path for Miniz"
178+
OFF
179+
)
180+
advanced_option(
181+
SLANG_OVERRIDE_UNORDERED_DENSE_PATH
182+
"Build using user defined path for unordered_dense"
183+
OFF
184+
)
185+
advanced_option(
186+
SLANG_OVERRIDE_VULKAN_HEADERS_PATH
187+
"Build using user defined path for Vulkan headers"
188+
OFF
189+
)
190+
advanced_option(
191+
SLANG_OVERRIDE_SPIRV_HEADERS_PATH
192+
"Build using user defined path for SPIR-V headers"
193+
OFF
194+
)
195+
advanced_option(
196+
SLANG_OVERRIDE_SPIRV_TOOLS_PATH
197+
"Build using user defined path for SPIR-V tools"
198+
OFF
199+
)
200+
advanced_option(
201+
SLANG_OVERRIDE_GLSLANG_PATH
202+
"Build using user defined path for glslang"
203+
OFF
204+
)
205+
206+
advanced_option(
207+
SLANG_EXCLUDE_DAWN
208+
"Optionally exclude webgpu_dawn from the build"
209+
OFF
210+
)
211+
212+
advanced_option(
213+
SLANG_EXCLUDE_TINT
214+
"Optionally exclude slang-tint from the build"
215+
OFF
216+
)
217+
169218
if(${SLANG_USE_SYSTEM_LZ4})
170219
add_compile_definitions(SLANG_USE_SYSTEM_LZ4_HEADER)
171220
endif()
@@ -178,6 +227,10 @@ if(${SLANG_USE_SYSTEM_UNORDERED_DENSE})
178227
add_compile_definitions(SLANG_USE_SYSTEM_UNORDERED_DENSE_HEADER)
179228
endif()
180229

230+
if(SLANG_OVERRIDE_SPIRV_HEADERS_PATH)
231+
add_compile_definitions(SLANG_USE_SYSTEM_SPIRV_HEADER)
232+
endif()
233+
181234
enum_option(
182235
SLANG_LIB_TYPE
183236
# Default
@@ -251,24 +304,28 @@ if(SLANG_SLANG_LLVM_FLAVOR MATCHES FETCH_BINARY)
251304
)
252305
endif()
253306

254-
set(webgpu_dawn_release_tag "webgpu_dawn-0")
255-
if(
256-
CMAKE_SYSTEM_NAME MATCHES "Windows"
257-
AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64"
258-
)
259-
set(SLANG_WEBGPU_DAWN_BINARY_URL
260-
"https://github.com/shader-slang/dawn/releases/download/${webgpu_dawn_release_tag}/webgpu_dawn-windows-x64.zip"
307+
if(NOT SLANG_EXCLUDE_DAWN)
308+
set(webgpu_dawn_release_tag "webgpu_dawn-0")
309+
if(
310+
CMAKE_SYSTEM_NAME MATCHES "Windows"
311+
AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64"
261312
)
313+
set(SLANG_WEBGPU_DAWN_BINARY_URL
314+
"https://github.com/shader-slang/dawn/releases/download/${webgpu_dawn_release_tag}/webgpu_dawn-windows-x64.zip"
315+
)
316+
endif()
262317
endif()
263318

264-
set(slang_tint_release_tag "slang-tint-0")
265-
if(
266-
CMAKE_SYSTEM_NAME MATCHES "Windows"
267-
AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64"
268-
)
269-
set(SLANG_SLANG_TINT_BINARY_URL
270-
"https://github.com/shader-slang/dawn/releases/download/${slang_tint_release_tag}/slang-tint-windows-x64.zip"
319+
if(NOT SLANG_EXCLUDE_TINT)
320+
set(slang_tint_release_tag "slang-tint-0")
321+
if(
322+
CMAKE_SYSTEM_NAME MATCHES "Windows"
323+
AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64"
271324
)
325+
set(SLANG_SLANG_TINT_BINARY_URL
326+
"https://github.com/shader-slang/dawn/releases/download/${slang_tint_release_tag}/slang-tint-windows-x64.zip"
327+
)
328+
endif()
272329
endif()
273330

274331
#

cmake/SlangTarget.cmake

+79-4
Original file line numberDiff line numberDiff line change
@@ -195,15 +195,90 @@ function(slang_add_target dir type)
195195
if(type STREQUAL "MODULE")
196196
set(library_subdir ${module_subdir})
197197
endif()
198+
199+
# Respect user-defined CMAKE_*_OUTPUT_DIRECTORY variables if they are set
200+
if(DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
201+
set(archive_output_dir "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}")
202+
else()
203+
set(archive_output_dir "${output_dir}/${archive_subdir}")
204+
endif()
205+
206+
if(DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
207+
set(library_output_dir "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
208+
else()
209+
set(library_output_dir "${output_dir}/${library_subdir}")
210+
endif()
211+
212+
if(DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
213+
set(runtime_output_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
214+
set(pdb_output_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
215+
else()
216+
set(runtime_output_dir "${output_dir}/${runtime_subdir}")
217+
set(pdb_output_dir "${output_dir}/${runtime_subdir}")
218+
endif()
219+
198220
set_target_properties(
199221
${target}
200222
PROPERTIES
201-
ARCHIVE_OUTPUT_DIRECTORY "${output_dir}/${archive_subdir}"
202-
LIBRARY_OUTPUT_DIRECTORY "${output_dir}/${library_subdir}"
203-
RUNTIME_OUTPUT_DIRECTORY "${output_dir}/${runtime_subdir}"
204-
PDB_OUTPUT_DIRECTORY "${output_dir}/${runtime_subdir}"
223+
ARCHIVE_OUTPUT_DIRECTORY "${archive_output_dir}"
224+
LIBRARY_OUTPUT_DIRECTORY "${library_output_dir}"
225+
RUNTIME_OUTPUT_DIRECTORY "${runtime_output_dir}"
226+
PDB_OUTPUT_DIRECTORY "${pdb_output_dir}"
205227
)
206228

229+
# For Multi-Config generators we also need to set per-config output directories
230+
# if user-defined paths are provided
231+
if(DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
232+
set_target_properties(
233+
${target}
234+
PROPERTIES
235+
ARCHIVE_OUTPUT_DIRECTORY_DEBUG
236+
"${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}"
237+
ARCHIVE_OUTPUT_DIRECTORY_RELEASE
238+
"${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}"
239+
ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO
240+
"${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}"
241+
ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL
242+
"${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}"
243+
)
244+
endif()
245+
246+
if(DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
247+
set_target_properties(
248+
${target}
249+
PROPERTIES
250+
LIBRARY_OUTPUT_DIRECTORY_DEBUG
251+
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
252+
LIBRARY_OUTPUT_DIRECTORY_RELEASE
253+
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
254+
LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO
255+
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
256+
LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL
257+
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
258+
)
259+
endif()
260+
261+
if(DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
262+
set_target_properties(
263+
${target}
264+
PROPERTIES
265+
RUNTIME_OUTPUT_DIRECTORY_DEBUG
266+
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
267+
RUNTIME_OUTPUT_DIRECTORY_RELEASE
268+
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
269+
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO
270+
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
271+
RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL
272+
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
273+
PDB_OUTPUT_DIRECTORY_DEBUG "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
274+
PDB_OUTPUT_DIRECTORY_RELEASE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
275+
PDB_OUTPUT_DIRECTORY_RELWITHDEBINFO
276+
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
277+
PDB_OUTPUT_DIRECTORY_MINSIZEREL
278+
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
279+
)
280+
endif()
281+
207282
set(debug_configs "Debug,RelWithDebInfo")
208283
if(SLANG_ENABLE_RELEASE_DEBUG_INFO)
209284
set(debug_configs "Debug,RelWithDebInfo,Release")

docs/user-guide/a3-02-reference-capability-atoms.md

+3
Original file line numberDiff line numberDiff line change
@@ -1076,6 +1076,9 @@ Compound Capabilities
10761076
`shader5_sm_5_0`
10771077
> Capabilities required to use sm_5_0 features apart of GL_ARB_gpu_shader5
10781078
1079+
`pack_vector`
1080+
> Capabilities required to use pack/unpack intrinsics on packed vector data
1081+
10791082
`subgroup_basic`
10801083
> Capabilities required to use GLSL-style subgroup operations 'subgroup_basic'
10811084

0 commit comments

Comments
 (0)