mirror of
https://github.com/lbgos/rift-s-linux.git
synced 2026-10-29 02:01:23 +01:00
cmake: Make it possible to select SPIR-V version to target
This commit is contained in:
1 parent
6fdd8ab93a
commit
8d660b6994
2 files changed
+19
-18
No files matched your search
+17
-18
@@ -7,30 +7,29 @@ if(NOT GLSLANGVALIDATOR_COMMAND)
|
||||
message(FATAL_ERROR "glslangValidator required - source maintained at https://github.com/KhronosGroup/glslang")
|
||||
endif()
|
||||
|
||||
#
|
||||
# Generate a SPIR-V header file, with the given var name. Returns the header.
|
||||
#
|
||||
function(spirv_shader ret GLSL VAR)
|
||||
set(HEADER "${CMAKE_CURRENT_BINARY_DIR}/${GLSL}.h")
|
||||
set(GLSL "${CMAKE_CURRENT_SOURCE_DIR}/${GLSL}")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${HEADER}
|
||||
COMMAND ${GLSLANGVALIDATOR_COMMAND} -V ${GLSL} --vn ${VAR} -o ${HEADER}
|
||||
DEPENDS ${GLSL})
|
||||
|
||||
|
||||
set(${ret} "${HEADER}" PARENT_SCOPE)
|
||||
endfunction(spirv_shader)
|
||||
|
||||
#
|
||||
# Generate SPIR-V header files from the arguments. Returns a list of headers.
|
||||
#
|
||||
function(spirv_shaders ret)
|
||||
set(options)
|
||||
set(oneValueArgs SPIRV_VERSION)
|
||||
set(multiValueArgs SOURCES)
|
||||
cmake_parse_arguments(_spirvshaders "${options}" "${oneValueArgs}"
|
||||
"${multiValueArgs}" ${ARGN})
|
||||
|
||||
foreach(GLSL ${ARGN})
|
||||
if(NOT _spirvshaders_SPIRV_VERSION)
|
||||
set(_spirvshaders_SPIRV_VERSION 1.0)
|
||||
endif()
|
||||
|
||||
foreach(GLSL ${_spirvshaders_SOURCES})
|
||||
string(MAKE_C_IDENTIFIER ${GLSL} IDENTIFIER)
|
||||
spirv_shader(HEADER ${GLSL} ${IDENTIFIER})
|
||||
set(HEADER "${CMAKE_CURRENT_BINARY_DIR}/${GLSL}.h")
|
||||
set(GLSL "${CMAKE_CURRENT_SOURCE_DIR}/${GLSL}")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${HEADER}
|
||||
COMMAND ${GLSLANGVALIDATOR_COMMAND} -V --target-env spirv${_spirvshaders_SPIRV_VERSION} ${GLSL} --vn ${IDENTIFIER} -o ${HEADER}
|
||||
DEPENDS ${GLSL})
|
||||
list(APPEND HEADERS ${HEADER})
|
||||
endforeach()
|
||||
|
||||
|
||||
@@ -91,6 +91,8 @@ endif()
|
||||
if(XRT_HAVE_VULKAN)
|
||||
spirv_shaders(
|
||||
SHADER_HEADERS
|
||||
SPIRV_VERSION 1.0 # Currently targeting Vulkan 1.0
|
||||
SOURCES
|
||||
shaders/clear.comp
|
||||
shaders/distortion.comp
|
||||
shaders/distortion_timewarp.comp
|
||||
|
||||
Reference in new issue
Block a user