Skip to content

Commit

Permalink
Address review comments
Browse files Browse the repository at this point in the history
* Use add_subdirectory() instead of include()
* Use glslang instead of glslangValidator
* Update Github actions CI to install Vulkan SDK
  • Loading branch information
saurabhnv committed Mar 18, 2024
1 parent 2803411 commit d709430
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 29 deletions.
5 changes: 5 additions & 0 deletions .github/workflows/presubmit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ jobs:
cd OpenCL-Headers
ln -s CL OpenCL # For OSX builds
cd ..
- name: Install Vulkan SDK
uses: humbletim/install-vulkan-sdk@main
with:
version: 1.3.275.0
cache: true
- name: Build
shell: bash
run: ./presubmit.sh
Expand Down
16 changes: 1 addition & 15 deletions presubmit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ set -e

export TOP=$(pwd)

GLSLANG_URL_Windows="https://github.com/KhronosGroup/glslang/releases/download/main-tot/glslang-master-windows-Release.zip"
GLSLANG_URL_Linux="https://github.com/KhronosGroup/glslang/releases/download/main-tot/glslang-main-linux-Release.zip"
GLSLANG_URL_macOS="https://github.com/KhronosGroup/glslang/releases/download/main-tot/glslang-main-osx-Release.zip"

TOOLCHAIN_URL_arm="https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz"
TOOLCHAIN_URL_aarch64="https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz"

Expand Down Expand Up @@ -84,15 +80,6 @@ cmake .. -G Ninja \
-C helper.cmake ..
cmake --build . -j2

#glslangValidator tool (prebuilt)
cd ${TOP}
mkdir spirvTools
cd spirvTools
GLSLANG_URL_VAR=GLSLANG_URL_${RUNNER_OS}
GLSLANG_URL=${!GLSLANG_URL_VAR}
curl -Lo glslang.zip ${GLSLANG_URL}
unzip glslang.zip

# Build CTS
cd ${TOP}
ls -l
Expand All @@ -117,6 +104,5 @@ cmake .. -G Ninja \
-DGL_IS_SUPPORTED=${BUILD_OPENGL_TEST} \
-DVULKAN_IS_SUPPORTED=${BUILD_VULKAN_TEST} \
-DVULKAN_INCLUDE_DIR=${TOP}/Vulkan-Headers/include/ \
-DVULKAN_LIB_DIR=${TOP}/Vulkan-Loader/build/loader/ \
-DGLSLANG_VALIDATOR_DIR=${TOP}/spirvTools/bin/
-DVULKAN_LIB_DIR=${TOP}/Vulkan-Loader/build/loader/
cmake --build . -j3
2 changes: 1 addition & 1 deletion test_conformance/vulkan/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@ set_source_files_properties(
PROPERTIES LANGUAGE CXX)
include_directories("../common/vulkan_wrapper")

include(shaders/CMakeLists.txt)
add_subdirectory(shaders)

include(../CMakeCommon.txt)
25 changes: 12 additions & 13 deletions test_conformance/vulkan/shaders/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
# CMP0007:NEW - Don't ignore empty elements in a list
cmake_policy(SET CMP0007 NEW)
find_program(
Vulkan_glslangValidator_binary
NAMES glslangValidator
HINTS $ENV{VULKAN_SDK} ${GLSLANG_VALIDATOR_DIR})
Vulkan_glslang_binary
NAMES glslang
HINTS $ENV{VULKAN_SDK})

if(${Vulkan_glslangValidator_binary} STREQUAL "Vulkan_glslangValidator_binary-NOTFOUND")
message(FATAL_ERROR "glslangValidator tool (part of Vulkan SDK) is a prerequisite to compile shaders to spir-v")
if(${Vulkan_glslang_binary} STREQUAL "Vulkan_glslang_binary-NOTFOUND")
message(FATAL_ERROR "glslang tool (part of Vulkan SDK) is a prerequisite to compile shaders to spir-v")
else()
message(STATUS "Found glslangValidator: ${Vulkan_glslangValidator_binary}")
message(STATUS "Found glslang: ${Vulkan_glslang_binary}")

set(SHADER_DIR_NAME "shaders")
set(IMAGE2D_SHADER_IN_FILE "${SHADER_DIR_NAME}/image2D.comp")
set(IMAGE2D_SHADER_TMP_OUT_FILE "${SHADER_DIR_NAME}/tmp_image2D.comp")
set(BUFFER_SHADER_INPUT_FILE "${SHADER_DIR_NAME}/buffer")
set(IMAGE2D_FORMATS_LIST_IN_FILE "${SHADER_DIR_NAME}/image2D_test_formats.txt")
set(IMAGE2D_SHADER_IN_FILE "image2D.comp")
set(IMAGE2D_SHADER_TMP_OUT_FILE "tmp_image2D.comp")
set(BUFFER_SHADER_IN_FILE "buffer")
set(IMAGE2D_FORMATS_LIST_IN_FILE "image2D_test_formats.txt")

file(READ ${IMAGE2D_SHADER_IN_FILE} IMAGE2D_SHADER_UNFORMAT_CONTENT)
file(STRINGS ${IMAGE2D_FORMATS_LIST_IN_FILE} IMAGE2D_FORMATS_LIST)
Expand All @@ -26,7 +25,7 @@ else()
string(REPLACE "GLSL_TYPE_PREFIX" "${GLSL_TYPE_PREFIX}" IMAGE2D_SHADER_CONTENT "${IMAGE2D_SHADER_CONTENT}")
file(WRITE ${IMAGE2D_SHADER_TMP_OUT_FILE} "${IMAGE2D_SHADER_CONTENT}")
execute_process(
COMMAND ${Vulkan_glslangValidator_binary} --target-env vulkan1.0 -o ${SHADER_DIR_NAME}/image2D_${GLSL_FORMAT}.spv ${IMAGE2D_SHADER_TMP_OUT_FILE}
COMMAND ${Vulkan_glslang_binary} --target-env vulkan1.0 -o image2D_${GLSL_FORMAT}.spv ${IMAGE2D_SHADER_TMP_OUT_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE commandStatus
OUTPUT_QUIET)
Expand All @@ -35,7 +34,7 @@ else()
endif()
endforeach(IMAGE2D_FORMAT)
execute_process(
COMMAND ${Vulkan_glslangValidator_binary} --target-env vulkan1.0 -o ${BUFFER_SHADER_INPUT_FILE}.spv ${BUFFER_SHADER_INPUT_FILE}.comp
COMMAND ${Vulkan_glslang_binary} --target-env vulkan1.0 -o ${BUFFER_SHADER_IN_FILE}.spv ${BUFFER_SHADER_IN_FILE}.comp
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE commandStatus
OUTPUT_QUIET)
Expand Down

0 comments on commit d709430

Please sign in to comment.