added Spir-V shader generator support

Vulkan support is coming...
This commit is contained in:
Mathieu-Andre Chiasson
2018-12-29 20:28:54 -05:00
committed by Joshua Brookover
parent c5e68e3bbd
commit 4cf4edff09
2 changed files with 16 additions and 4 deletions

View File

@@ -60,7 +60,12 @@ function( add_bgfx_shader FILE FOLDER )
set( GLSL_OUTPUT ${BGFX_DIR}/examples/runtime/shaders/glsl/${FILENAME}.bin )
shaderc_parse( GLSL ${COMMON} LINUX PROFILE 120 OUTPUT ${GLSL_OUTPUT} )
list( APPEND OUTPUTS "GLSL" )
set( OUTPUTS_PRETTY "${OUTPUTS_PRETTY}GLSL" )
set( OUTPUTS_PRETTY "${OUTPUTS_PRETTY}GLSL, " )
# spirv
set( SPIRV_OUTPUT ${BGFX_DIR}/examples/runtime/shaders/spirv/${FILENAME}.bin )
shaderc_parse( SPIRV ${COMMON} LINUX PROFILE spirv OUTPUT ${SPIRV_OUTPUT} )
list( APPEND OUTPUTS "SPIRV" )
set( OUTPUTS_PRETTY "${OUTPUTS_PRETTY}SPIRV" )
set( OUTPUT_FILES "" )
set( COMMANDS "" )
foreach( OUT ${OUTPUTS} )

View File

@@ -47,11 +47,11 @@ function( add_shader ARG_FILE )
set( PLATFORMS ${ARG_PLATFORMS} )
else()
if( MSVC )
set( PLATFORMS dx9 dx11 glsl essl asm.js )
set( PLATFORMS dx9 dx11 glsl essl asm.js spirv )
elseif( APPLE )
set( PLATFORMS metal glsl essl asm.js )
set( PLATFORMS metal glsl essl asm.js spirv )
else()
set( PLATFORMS glsl essl asm.js )
set( PLATFORMS glsl essl asm.js spirv )
endif()
endif()
@@ -75,6 +75,7 @@ function( add_shader ARG_FILE )
if( ARG_GLSL_VERSION )
set( GLSL_PROFILE PROFILE ${ARG_GLSL_VERSION} )
endif()
set( SPIRV_PROFILE PROFILE spirv )
# Add commands
set( OUTPUTS "" )
@@ -117,6 +118,12 @@ function( add_shader ARG_FILE )
ASM_JS
OUTPUT ${OUTPUT}
)
elseif( "${PLATFORM}" STREQUAL "spirv" )
list( APPEND OPTIONS
LINUX
${SPIRV_PROFILE}
OUTPUT ${OUTPUT}
)
else()
message( SEND_ERROR "add_shader given bad platform: ${PLATFORM}" )
return()