Updated glslang.
This commit is contained in:
parent
f450d227c0
commit
0bac1a719c
14
3rdparty/glslang/BUILD.gn
vendored
14
3rdparty/glslang/BUILD.gn
vendored
@ -159,7 +159,7 @@ source_set("glslang_sources") {
|
||||
}
|
||||
|
||||
if (is_clang) {
|
||||
cflags_cc = [
|
||||
cflags = [
|
||||
"-Wno-extra-semi",
|
||||
"-Wno-ignored-qualifiers",
|
||||
"-Wno-implicit-fallthrough",
|
||||
@ -181,6 +181,9 @@ source_set("glslang_sources") {
|
||||
"${spirv_tools_dir}:spvtools_opt",
|
||||
"${spirv_tools_dir}:spvtools_val",
|
||||
]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
}
|
||||
|
||||
source_set("glslang_default_resource_limits_sources") {
|
||||
@ -192,6 +195,9 @@ source_set("glslang_default_resource_limits_sources") {
|
||||
":glslang_sources",
|
||||
]
|
||||
public_configs = [ ":glslang_public" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
}
|
||||
|
||||
executable("glslang_validator") {
|
||||
@ -207,6 +213,9 @@ executable("glslang_validator") {
|
||||
":glslang_default_resource_limits_sources",
|
||||
":glslang_sources",
|
||||
]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
}
|
||||
|
||||
executable("spirv-remap") {
|
||||
@ -217,4 +226,7 @@ executable("spirv-remap") {
|
||||
deps = [
|
||||
":glslang_sources",
|
||||
]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
}
|
||||
|
35
3rdparty/glslang/CMakeLists.txt
vendored
35
3rdparty/glslang/CMakeLists.txt
vendored
@ -13,6 +13,7 @@ include(GNUInstallDirs)
|
||||
include(CMakeDependentOption)
|
||||
|
||||
option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
|
||||
option(BUILD_EXTERNAL "Build external dependencies in /External" ON)
|
||||
|
||||
set(LIB_TYPE STATIC)
|
||||
|
||||
@ -36,6 +37,7 @@ option(ENABLE_EMSCRIPTEN_ENVIRONMENT_NODE "If using Emscripten, builds to run on
|
||||
CMAKE_DEPENDENT_OPTION(ENABLE_HLSL "Enables HLSL input support" ON "NOT ENABLE_GLSLANG_WEB" OFF)
|
||||
|
||||
option(ENABLE_OPT "Enables spirv-opt capability if present" ON)
|
||||
option(ENABLE_PCH "Enables Precompiled header" ON)
|
||||
|
||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND WIN32)
|
||||
set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "..." FORCE)
|
||||
@ -51,7 +53,7 @@ endif()
|
||||
|
||||
# Precompiled header macro. Parameters are source file list and filename for pch cpp file.
|
||||
macro(glslang_pch SRCS PCHCPP)
|
||||
if(MSVC AND CMAKE_GENERATOR MATCHES "^Visual Studio")
|
||||
if(MSVC AND CMAKE_GENERATOR MATCHES "^Visual Studio" AND ENABLE_PCH)
|
||||
set(PCH_NAME "$(IntDir)\\pch.pch")
|
||||
# make source files use/depend on PCH_NAME
|
||||
set_source_files_properties(${${SRCS}} PROPERTIES COMPILE_FLAGS "/Yupch.h /FIpch.h /Fp${PCH_NAME} /Zm300" OBJECT_DEPENDS "${PCH_NAME}")
|
||||
@ -148,12 +150,12 @@ endfunction(glslang_set_link_args)
|
||||
|
||||
# CMake needs to find the right version of python, right from the beginning,
|
||||
# otherwise, it will find the wrong version and fail later
|
||||
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External)
|
||||
if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External)
|
||||
find_package(PythonInterp 3 REQUIRED)
|
||||
endif()
|
||||
|
||||
# We depend on these for later projects, so they should come first.
|
||||
add_subdirectory(External)
|
||||
# We depend on these for later projects, so they should come first.
|
||||
add_subdirectory(External)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET SPIRV-Tools-opt)
|
||||
set(ENABLE_OPT OFF)
|
||||
@ -179,3 +181,26 @@ if(ENABLE_HLSL)
|
||||
add_subdirectory(hlsl)
|
||||
endif(ENABLE_HLSL)
|
||||
add_subdirectory(gtests)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
# glslang-testsuite runs a bash script on Windows.
|
||||
# Make sure to use '-o igncr' flag to ignore carriage returns (\r).
|
||||
set(IGNORE_CR_FLAG "")
|
||||
if(WIN32)
|
||||
set(IGNORE_CR_FLAG -o igncr)
|
||||
endif()
|
||||
|
||||
if (CMAKE_CONFIGURATION_TYPES)
|
||||
set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/localResults)
|
||||
set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIGURATION>/glslangValidator)
|
||||
set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIGURATION>/spirv-remap)
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/localResults)
|
||||
set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator)
|
||||
set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap)
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
add_test(NAME glslang-testsuite
|
||||
COMMAND bash ${IGNORE_CR_FLAG} runtests ${RESULTS_PATH} ${VALIDATOR_PATH} ${REMAP_PATH}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/)
|
||||
endif(BUILD_TESTING)
|
||||
|
@ -9,6 +9,7 @@ if(WIN32)
|
||||
endif(WIN32)
|
||||
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
install(TARGETS OGLCompiler
|
||||
install(TARGETS OGLCompiler EXPORT OGLCompilerTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(EXPORT OGLCompilerTargets DESTINATION lib/cmake)
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
2
3rdparty/glslang/README.md
vendored
2
3rdparty/glslang/README.md
vendored
@ -307,7 +307,7 @@ See `ShaderLang.h` and the usage of it in `StandAlone/StandAlone.cpp` for more
|
||||
details. There is a block comment giving more detail above the calls for
|
||||
`setEnvInput, setEnvClient, and setEnvTarget`.
|
||||
|
||||
### C Functional Interface (orignal)
|
||||
### C Functional Interface (original)
|
||||
|
||||
This interface is in roughly the first 2/3 of `ShaderLang.h`, and referred to
|
||||
as the `Sh*()` interface, as all the entry points start `Sh`.
|
||||
|
19
3rdparty/glslang/SPIRV/CMakeLists.txt
vendored
19
3rdparty/glslang/SPIRV/CMakeLists.txt
vendored
@ -36,7 +36,9 @@ set(SPVREMAP_HEADERS
|
||||
add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS})
|
||||
set_property(TARGET SPIRV PROPERTY FOLDER glslang)
|
||||
set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
target_include_directories(SPIRV PUBLIC ..)
|
||||
target_include_directories(SPIRV PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
|
||||
if (ENABLE_SPVREMAPPER)
|
||||
add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
|
||||
@ -57,7 +59,9 @@ if(ENABLE_OPT)
|
||||
PRIVATE ${spirv-tools_SOURCE_DIR}/source
|
||||
)
|
||||
target_link_libraries(SPIRV glslang SPIRV-Tools-opt)
|
||||
target_include_directories(SPIRV PUBLIC ../External)
|
||||
target_include_directories(SPIRV PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
|
||||
else()
|
||||
target_link_libraries(SPIRV glslang)
|
||||
endif(ENABLE_OPT)
|
||||
@ -70,22 +74,25 @@ endif(WIN32)
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
if(BUILD_SHARED_LIBS)
|
||||
if (ENABLE_SPVREMAPPER)
|
||||
install(TARGETS SPVRemapper
|
||||
install(TARGETS SPVRemapper EXPORT SPVRemapperTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
install(TARGETS SPIRV
|
||||
install(TARGETS SPIRV EXPORT SPIRVTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
else()
|
||||
if (ENABLE_SPVREMAPPER)
|
||||
install(TARGETS SPVRemapper
|
||||
install(TARGETS SPVRemapper EXPORT SPVRemapperTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
install(TARGETS SPIRV
|
||||
install(TARGETS SPIRV EXPORT SPIRVTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
install(EXPORT SPVRemapperTargets DESTINATION lib/cmake)
|
||||
install(EXPORT SPIRVTargets DESTINATION lib/cmake)
|
||||
|
||||
install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/)
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
10
3rdparty/glslang/SPIRV/GlslangToSpv.cpp
vendored
10
3rdparty/glslang/SPIRV/GlslangToSpv.cpp
vendored
@ -100,11 +100,11 @@ struct OpDecorations {
|
||||
spv::Decoration precision;
|
||||
|
||||
#ifdef GLSLANG_WEB
|
||||
void addNoContraction(spv::Builder&, spv::Id) const { };
|
||||
void addNonUniform(spv::Builder&, spv::Id) const { };
|
||||
void addNoContraction(spv::Builder&, spv::Id) const { }
|
||||
void addNonUniform(spv::Builder&, spv::Id) const { }
|
||||
#else
|
||||
void addNoContraction(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, noContraction); };
|
||||
void addNonUniform(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, nonUniform); };
|
||||
void addNoContraction(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, noContraction); }
|
||||
void addNonUniform(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, nonUniform); }
|
||||
protected:
|
||||
spv::Decoration noContraction;
|
||||
spv::Decoration nonUniform;
|
||||
@ -6401,7 +6401,7 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
|
||||
scopeId = builder.makeUintConstant(spv::ScopeDevice);
|
||||
}
|
||||
// semantics default to relaxed
|
||||
spv::Id semanticsId = builder.makeUintConstant(lvalueCoherentFlags.isVolatile() ?
|
||||
spv::Id semanticsId = builder.makeUintConstant(lvalueCoherentFlags.isVolatile() && glslangIntermediate->usingVulkanMemoryModel() ?
|
||||
spv::MemorySemanticsVolatileMask :
|
||||
spv::MemorySemanticsMaskNone);
|
||||
spv::Id semanticsId2 = semanticsId;
|
||||
|
14
3rdparty/glslang/StandAlone/CMakeLists.txt
vendored
14
3rdparty/glslang/StandAlone/CMakeLists.txt
vendored
@ -33,21 +33,27 @@ endif(WIN32)
|
||||
|
||||
target_link_libraries(glslangValidator ${LIBRARIES})
|
||||
target_link_libraries(spirv-remap ${LIBRARIES})
|
||||
target_include_directories(glslangValidator PUBLIC ../External)
|
||||
target_include_directories(glslangValidator PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
|
||||
|
||||
if(WIN32)
|
||||
source_group("Source" FILES ${SOURCES})
|
||||
endif(WIN32)
|
||||
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
install(TARGETS glslangValidator
|
||||
install(TARGETS glslangValidator EXPORT glslangValidatorTargets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
install(TARGETS spirv-remap
|
||||
install(TARGETS spirv-remap EXPORT spirv-remapTargets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
install(EXPORT glslangValidatorTargets DESTINATION lib/cmake)
|
||||
install(EXPORT spirv-remapTargets DESTINATION lib/cmake)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
install(TARGETS glslang-default-resource-limits
|
||||
install(TARGETS glslang-default-resource-limits EXPORT glslang-default-resource-limitsTargets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(EXPORT glslang-default-resource-limitsTargets DESTINATION lib/cmake)
|
||||
endif()
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
9
3rdparty/glslang/Test/130.frag
vendored
9
3rdparty/glslang/Test/130.frag
vendored
@ -167,3 +167,12 @@ void qux2()
|
||||
}
|
||||
|
||||
layout(early_fragment_tests) out; // ERROR
|
||||
|
||||
#extension GL_ARB_explicit_uniform_location : enable
|
||||
|
||||
layout(location = 3) uniform vec4 ucolor0; // ERROR: explicit attrib location is also required for version < 330
|
||||
|
||||
#extension GL_ARB_explicit_attrib_location : enable
|
||||
|
||||
layout(location = 4) uniform vec4 ucolor1;
|
||||
|
||||
|
15
3rdparty/glslang/Test/330.frag
vendored
15
3rdparty/glslang/Test/330.frag
vendored
@ -149,4 +149,17 @@ void fooKeyMem()
|
||||
KeyMem.precise;
|
||||
}
|
||||
|
||||
layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range
|
||||
layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range
|
||||
|
||||
layout(location=4) uniform vec4 ucolor0; // ERROR: extension is not enabled
|
||||
|
||||
#extension GL_ARB_explicit_uniform_location : enable
|
||||
|
||||
layout(location=5) uniform vec4 ucolor1;
|
||||
|
||||
layout(location=6) uniform ColorsBuffer // ERROR: location cannot be applied in uniform buffer block
|
||||
{
|
||||
vec4 colors[128];
|
||||
} colorsBuffer;
|
||||
|
||||
|
||||
|
11
3rdparty/glslang/Test/baseResults/130.frag.out
vendored
11
3rdparty/glslang/Test/baseResults/130.frag.out
vendored
@ -29,10 +29,13 @@ ERROR: 0:153: 'early_fragment_tests' : not supported for this version or the ena
|
||||
ERROR: 0:154: 'image load store' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:154: 'iimage2D' : Reserved word.
|
||||
ERROR: 0:169: 'early_fragment_tests' : can only apply to 'in'
|
||||
ERROR: 28 compilation errors. No code generated.
|
||||
ERROR: 0:173: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
|
||||
ERROR: 29 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 130
|
||||
Requested GL_ARB_explicit_attrib_location
|
||||
Requested GL_ARB_explicit_uniform_location
|
||||
Requested GL_ARB_gpu_shader5
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
Requested GL_ARB_shader_image_load_store
|
||||
@ -402,12 +405,16 @@ ERROR: node is still EOpNull!
|
||||
0:? 'gl_FogFragCoord' ( smooth in float)
|
||||
0:? 'iimg2Dbad' (layout( r32i) uniform iimage2D)
|
||||
0:? 'iimg2D' (layout( r32i) uniform iimage2D)
|
||||
0:? 'ucolor0' (layout( location=3) uniform 4-component vector of float)
|
||||
0:? 'ucolor1' (layout( location=4) uniform 4-component vector of float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 130
|
||||
Requested GL_ARB_explicit_attrib_location
|
||||
Requested GL_ARB_explicit_uniform_location
|
||||
Requested GL_ARB_gpu_shader5
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
Requested GL_ARB_shader_image_load_store
|
||||
@ -457,4 +464,6 @@ ERROR: node is still EOpNull!
|
||||
0:? 'gl_FogFragCoord' ( smooth in float)
|
||||
0:? 'iimg2Dbad' (layout( r32i) uniform iimage2D)
|
||||
0:? 'iimg2D' (layout( r32i) uniform iimage2D)
|
||||
0:? 'ucolor0' (layout( location=3) uniform 4-component vector of float)
|
||||
0:? 'ucolor1' (layout( location=4) uniform 4-component vector of float)
|
||||
|
||||
|
12
3rdparty/glslang/Test/baseResults/330.frag.out
vendored
12
3rdparty/glslang/Test/baseResults/330.frag.out
vendored
@ -40,11 +40,14 @@ ERROR: 0:140: 'assign' : cannot convert from ' const float' to ' temp 2-compone
|
||||
ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:141: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float'
|
||||
ERROR: 0:152: 'index' : value must be 0 or 1
|
||||
ERROR: 41 compilation errors. No code generated.
|
||||
ERROR: 0:154: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:160: 'location' : cannot apply to uniform or buffer block
|
||||
ERROR: 43 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 330
|
||||
Requested GL_ARB_enhanced_layouts
|
||||
Requested GL_ARB_explicit_uniform_location
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
ERROR: node is still EOpNull!
|
||||
0:8 Function Definition: main( ( global void)
|
||||
@ -126,6 +129,9 @@ ERROR: node is still EOpNull!
|
||||
0:? 'precise' ( global int)
|
||||
0:? 'KeyMem' ( global structure{ global int precise})
|
||||
0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float)
|
||||
0:? 'ucolor0' (layout( location=4) uniform 4-component vector of float)
|
||||
0:? 'ucolor1' (layout( location=5) uniform 4-component vector of float)
|
||||
0:? 'colorsBuffer' (layout( location=6 column_major shared) uniform block{layout( column_major shared) uniform 128-element array of 4-component vector of float colors})
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -135,6 +141,7 @@ ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData
|
||||
|
||||
Shader version: 330
|
||||
Requested GL_ARB_enhanced_layouts
|
||||
Requested GL_ARB_explicit_uniform_location
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
ERROR: node is still EOpNull!
|
||||
0:8 Function Definition: main( ( global void)
|
||||
@ -191,4 +198,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'precise' ( global int)
|
||||
0:? 'KeyMem' ( global structure{ global int precise})
|
||||
0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float)
|
||||
0:? 'ucolor0' (layout( location=4) uniform 4-component vector of float)
|
||||
0:? 'ucolor1' (layout( location=5) uniform 4-component vector of float)
|
||||
0:? 'colorsBuffer' (layout( location=6 column_major shared) uniform block{layout( column_major shared) uniform 128-element array of 4-component vector of float colors})
|
||||
|
||||
|
@ -85,11 +85,13 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:232: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||
ERROR: 0:233: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||
ERROR: 0:234: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||
ERROR: 0:235: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||
ERROR: 90 compilation errors. No code generated.
|
||||
ERROR: 0:124: 'id' : argument must be compile-time constant
|
||||
ERROR: 0:199: 'id' : argument must be compile-time constant
|
||||
ERROR: 0:236: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||
ERROR: 0:237: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||
ERROR: 0:238: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||
ERROR: 0:239: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||
ERROR: 92 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
@ -352,270 +354,278 @@ ERROR: node is still EOpNull!
|
||||
0:116 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:116 Function Parameters:
|
||||
0:116 'f4' ( in 4-component vector of float)
|
||||
0:117 Sequence
|
||||
0:117 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask)
|
||||
0:118 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask)
|
||||
0:119 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask)
|
||||
0:120 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask)
|
||||
0:121 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask)
|
||||
0:122 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:122 'f4' ( in 4-component vector of float)
|
||||
0:122 Constant:
|
||||
0:122 0 (const uint)
|
||||
0:123 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:118 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask)
|
||||
0:119 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask)
|
||||
0:120 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask)
|
||||
0:121 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask)
|
||||
0:122 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask)
|
||||
0:123 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:123 'f4' ( in 4-component vector of float)
|
||||
0:124 Sequence
|
||||
0:124 move second child to first child ( temp 4-component vector of uint)
|
||||
0:124 'ballot' ( temp 4-component vector of uint)
|
||||
0:124 subgroupBallot ( global 4-component vector of uint)
|
||||
0:124 Constant:
|
||||
0:124 false (const bool)
|
||||
0:125 subgroupInverseBallot ( global bool)
|
||||
0:125 Constant:
|
||||
0:125 1 (const uint)
|
||||
0:125 1 (const uint)
|
||||
0:125 1 (const uint)
|
||||
0:125 1 (const uint)
|
||||
0:126 subgroupBallotBitExtract ( global bool)
|
||||
0:126 'ballot' ( temp 4-component vector of uint)
|
||||
0:126 Constant:
|
||||
0:126 0 (const uint)
|
||||
0:127 subgroupBallotBitCount ( global uint)
|
||||
0:127 'ballot' ( temp 4-component vector of uint)
|
||||
0:128 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:123 Constant:
|
||||
0:123 0 (const uint)
|
||||
0:124 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:124 'f4' ( in 4-component vector of float)
|
||||
0:124 Convert int to uint ( temp uint)
|
||||
0:124 'i' ( temp int)
|
||||
0:125 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:125 'f4' ( in 4-component vector of float)
|
||||
0:126 Sequence
|
||||
0:126 move second child to first child ( temp 4-component vector of uint)
|
||||
0:126 'ballot' ( temp 4-component vector of uint)
|
||||
0:126 subgroupBallot ( global 4-component vector of uint)
|
||||
0:126 Constant:
|
||||
0:126 false (const bool)
|
||||
0:127 subgroupInverseBallot ( global bool)
|
||||
0:127 Constant:
|
||||
0:127 1 (const uint)
|
||||
0:127 1 (const uint)
|
||||
0:127 1 (const uint)
|
||||
0:127 1 (const uint)
|
||||
0:128 subgroupBallotBitExtract ( global bool)
|
||||
0:128 'ballot' ( temp 4-component vector of uint)
|
||||
0:129 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:128 Constant:
|
||||
0:128 0 (const uint)
|
||||
0:129 subgroupBallotBitCount ( global uint)
|
||||
0:129 'ballot' ( temp 4-component vector of uint)
|
||||
0:130 subgroupBallotFindLSB ( global uint)
|
||||
0:130 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:130 'ballot' ( temp 4-component vector of uint)
|
||||
0:131 subgroupBallotFindMSB ( global uint)
|
||||
0:131 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:131 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 Function Definition: vote_works(vf4; ( global void)
|
||||
0:135 Function Parameters:
|
||||
0:135 'f4' ( in 4-component vector of float)
|
||||
0:137 Sequence
|
||||
0:137 subgroupAll ( global bool)
|
||||
0:137 Constant:
|
||||
0:137 true (const bool)
|
||||
0:138 subgroupAny ( global bool)
|
||||
0:138 Constant:
|
||||
0:138 false (const bool)
|
||||
0:139 subgroupAllEqual ( global bool)
|
||||
0:139 'f4' ( in 4-component vector of float)
|
||||
0:144 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:144 Function Parameters:
|
||||
0:144 'f4' ( in 4-component vector of float)
|
||||
0:146 Sequence
|
||||
0:146 subgroupShuffle ( global 4-component vector of float)
|
||||
0:146 'f4' ( in 4-component vector of float)
|
||||
0:146 Constant:
|
||||
0:146 0 (const uint)
|
||||
0:147 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:147 'f4' ( in 4-component vector of float)
|
||||
0:147 Constant:
|
||||
0:147 1 (const uint)
|
||||
0:148 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:132 subgroupBallotFindLSB ( global uint)
|
||||
0:132 'ballot' ( temp 4-component vector of uint)
|
||||
0:133 subgroupBallotFindMSB ( global uint)
|
||||
0:133 'ballot' ( temp 4-component vector of uint)
|
||||
0:137 Function Definition: vote_works(vf4; ( global void)
|
||||
0:137 Function Parameters:
|
||||
0:137 'f4' ( in 4-component vector of float)
|
||||
0:139 Sequence
|
||||
0:139 subgroupAll ( global bool)
|
||||
0:139 Constant:
|
||||
0:139 true (const bool)
|
||||
0:140 subgroupAny ( global bool)
|
||||
0:140 Constant:
|
||||
0:140 false (const bool)
|
||||
0:141 subgroupAllEqual ( global bool)
|
||||
0:141 'f4' ( in 4-component vector of float)
|
||||
0:146 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:146 Function Parameters:
|
||||
0:146 'f4' ( in 4-component vector of float)
|
||||
0:148 Sequence
|
||||
0:148 subgroupShuffle ( global 4-component vector of float)
|
||||
0:148 'f4' ( in 4-component vector of float)
|
||||
0:148 Constant:
|
||||
0:148 1 (const uint)
|
||||
0:149 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:148 0 (const uint)
|
||||
0:149 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:149 'f4' ( in 4-component vector of float)
|
||||
0:149 Constant:
|
||||
0:149 1 (const uint)
|
||||
0:153 Function Definition: arith_works(vf4; ( global void)
|
||||
0:153 Function Parameters:
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:150 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:150 'f4' ( in 4-component vector of float)
|
||||
0:150 Constant:
|
||||
0:150 1 (const uint)
|
||||
0:151 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:151 'f4' ( in 4-component vector of float)
|
||||
0:151 Constant:
|
||||
0:151 1 (const uint)
|
||||
0:155 Function Definition: arith_works(vf4; ( global void)
|
||||
0:155 Function Parameters:
|
||||
0:155 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:156 subgroupAdd ( global 4-component vector of float)
|
||||
0:156 'f4' ( in 4-component vector of float)
|
||||
0:157 subgroupMul ( global 4-component vector of float)
|
||||
0:157 'f4' ( in 4-component vector of float)
|
||||
0:158 subgroupMin ( global 4-component vector of float)
|
||||
0:158 subgroupAdd ( global 4-component vector of float)
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:159 subgroupMax ( global 4-component vector of float)
|
||||
0:159 subgroupMul ( global 4-component vector of float)
|
||||
0:159 'f4' ( in 4-component vector of float)
|
||||
0:160 subgroupAnd ( global 4-component vector of uint)
|
||||
0:160 'ballot' ( temp 4-component vector of uint)
|
||||
0:161 subgroupOr ( global 4-component vector of uint)
|
||||
0:161 'ballot' ( temp 4-component vector of uint)
|
||||
0:162 subgroupXor ( global 4-component vector of uint)
|
||||
0:160 subgroupMin ( global 4-component vector of float)
|
||||
0:160 'f4' ( in 4-component vector of float)
|
||||
0:161 subgroupMax ( global 4-component vector of float)
|
||||
0:161 'f4' ( in 4-component vector of float)
|
||||
0:162 subgroupAnd ( global 4-component vector of uint)
|
||||
0:162 'ballot' ( temp 4-component vector of uint)
|
||||
0:163 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:165 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:163 subgroupOr ( global 4-component vector of uint)
|
||||
0:163 'ballot' ( temp 4-component vector of uint)
|
||||
0:164 subgroupXor ( global 4-component vector of uint)
|
||||
0:164 'ballot' ( temp 4-component vector of uint)
|
||||
0:165 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:165 'f4' ( in 4-component vector of float)
|
||||
0:166 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:166 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:166 'f4' ( in 4-component vector of float)
|
||||
0:167 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:167 'ballot' ( temp 4-component vector of uint)
|
||||
0:168 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:168 'ballot' ( temp 4-component vector of uint)
|
||||
0:169 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:167 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:167 'f4' ( in 4-component vector of float)
|
||||
0:168 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:169 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:169 'ballot' ( temp 4-component vector of uint)
|
||||
0:170 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:172 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:170 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:170 'ballot' ( temp 4-component vector of uint)
|
||||
0:171 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:171 'ballot' ( temp 4-component vector of uint)
|
||||
0:172 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:173 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:173 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:173 'f4' ( in 4-component vector of float)
|
||||
0:174 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:174 'ballot' ( temp 4-component vector of uint)
|
||||
0:175 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:175 'ballot' ( temp 4-component vector of uint)
|
||||
0:176 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:174 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:174 'f4' ( in 4-component vector of float)
|
||||
0:175 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:176 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:180 Function Parameters:
|
||||
0:180 'f4' ( in 4-component vector of float)
|
||||
0:182 Sequence
|
||||
0:182 Sequence
|
||||
0:182 move second child to first child ( temp 4-component vector of uint)
|
||||
0:182 'ballot' ( temp 4-component vector of uint)
|
||||
0:182 Constant:
|
||||
0:182 85 (const uint)
|
||||
0:182 0 (const uint)
|
||||
0:182 0 (const uint)
|
||||
0:182 0 (const uint)
|
||||
0:183 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:183 'f4' ( in 4-component vector of float)
|
||||
0:183 Constant:
|
||||
0:183 2 (const uint)
|
||||
0:184 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:184 'f4' ( in 4-component vector of float)
|
||||
0:184 Constant:
|
||||
0:184 2 (const uint)
|
||||
0:185 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:177 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:177 'ballot' ( temp 4-component vector of uint)
|
||||
0:178 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:178 'ballot' ( temp 4-component vector of uint)
|
||||
0:182 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:182 Function Parameters:
|
||||
0:182 'f4' ( in 4-component vector of float)
|
||||
0:184 Sequence
|
||||
0:184 Sequence
|
||||
0:184 move second child to first child ( temp 4-component vector of uint)
|
||||
0:184 'ballot' ( temp 4-component vector of uint)
|
||||
0:184 Constant:
|
||||
0:184 85 (const uint)
|
||||
0:184 0 (const uint)
|
||||
0:184 0 (const uint)
|
||||
0:184 0 (const uint)
|
||||
0:185 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:185 Constant:
|
||||
0:185 2 (const uint)
|
||||
0:186 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:186 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:186 'f4' ( in 4-component vector of float)
|
||||
0:186 Constant:
|
||||
0:186 2 (const uint)
|
||||
0:187 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:187 'f4' ( in 4-component vector of float)
|
||||
0:187 Constant:
|
||||
0:187 2 (const uint)
|
||||
0:188 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:188 'ballot' ( temp 4-component vector of uint)
|
||||
0:188 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:188 'f4' ( in 4-component vector of float)
|
||||
0:188 Constant:
|
||||
0:188 2 (const uint)
|
||||
0:189 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:189 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:189 'ballot' ( temp 4-component vector of uint)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:193 Function Definition: quad_works(vf4; ( global void)
|
||||
0:193 Function Parameters:
|
||||
0:193 'f4' ( in 4-component vector of float)
|
||||
0:195 Sequence
|
||||
0:195 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:195 Constant:
|
||||
0:195 0 (const uint)
|
||||
0:196 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:196 'f4' ( in 4-component vector of float)
|
||||
0:197 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:197 'f4' ( in 4-component vector of float)
|
||||
0:198 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:190 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:190 'ballot' ( temp 4-component vector of uint)
|
||||
0:190 Constant:
|
||||
0:190 2 (const uint)
|
||||
0:191 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:191 'ballot' ( temp 4-component vector of uint)
|
||||
0:191 Constant:
|
||||
0:191 2 (const uint)
|
||||
0:195 Function Definition: quad_works(vf4; ( global void)
|
||||
0:195 Function Parameters:
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:198 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:202 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:202 Function Parameters:
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:204 Sequence
|
||||
0:204 Sequence
|
||||
0:204 move second child to first child ( temp 4-component vector of uint)
|
||||
0:204 'parti' ( temp 4-component vector of uint)
|
||||
0:204 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:204 'f4' ( in 4-component vector of float)
|
||||
0:205 Sequence
|
||||
0:205 move second child to first child ( temp 4-component vector of uint)
|
||||
0:205 'ballot' ( temp 4-component vector of uint)
|
||||
0:205 Constant:
|
||||
0:205 85 (const uint)
|
||||
0:205 0 (const uint)
|
||||
0:205 0 (const uint)
|
||||
0:205 0 (const uint)
|
||||
0:206 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:206 'f4' ( in 4-component vector of float)
|
||||
0:206 'parti' ( temp 4-component vector of uint)
|
||||
0:207 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:207 'f4' ( in 4-component vector of float)
|
||||
0:207 'parti' ( temp 4-component vector of uint)
|
||||
0:208 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:208 'parti' ( temp 4-component vector of uint)
|
||||
0:209 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:209 'parti' ( temp 4-component vector of uint)
|
||||
0:210 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:210 'ballot' ( temp 4-component vector of uint)
|
||||
0:198 Constant:
|
||||
0:198 0 (const uint)
|
||||
0:199 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:199 'f4' ( in 4-component vector of float)
|
||||
0:199 Convert int to uint ( temp uint)
|
||||
0:199 'i' ( temp int)
|
||||
0:200 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:201 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:201 'f4' ( in 4-component vector of float)
|
||||
0:202 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:206 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:206 Function Parameters:
|
||||
0:206 'f4' ( in 4-component vector of float)
|
||||
0:208 Sequence
|
||||
0:208 Sequence
|
||||
0:208 move second child to first child ( temp 4-component vector of uint)
|
||||
0:208 'parti' ( temp 4-component vector of uint)
|
||||
0:208 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:209 Sequence
|
||||
0:209 move second child to first child ( temp 4-component vector of uint)
|
||||
0:209 'ballot' ( temp 4-component vector of uint)
|
||||
0:209 Constant:
|
||||
0:209 85 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:210 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:210 'f4' ( in 4-component vector of float)
|
||||
0:210 'parti' ( temp 4-component vector of uint)
|
||||
0:211 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:211 'ballot' ( temp 4-component vector of uint)
|
||||
0:211 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:211 'parti' ( temp 4-component vector of uint)
|
||||
0:212 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:212 'ballot' ( temp 4-component vector of uint)
|
||||
0:212 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:213 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:214 'ballot' ( temp 4-component vector of uint)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:215 'f4' ( in 4-component vector of float)
|
||||
0:215 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:215 'ballot' ( temp 4-component vector of uint)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:216 'f4' ( in 4-component vector of float)
|
||||
0:216 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:217 'f4' ( in 4-component vector of float)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:218 'ballot' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:219 'ballot' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:220 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:221 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:221 'ballot' ( temp 4-component vector of uint)
|
||||
0:221 'parti' ( temp 4-component vector of uint)
|
||||
0:222 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:222 'f4' ( in 4-component vector of float)
|
||||
0:222 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:222 'ballot' ( temp 4-component vector of uint)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:223 'f4' ( in 4-component vector of float)
|
||||
0:223 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:224 'f4' ( in 4-component vector of float)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:225 'ballot' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:225 'f4' ( in 4-component vector of float)
|
||||
0:225 'parti' ( temp 4-component vector of uint)
|
||||
0:226 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:226 'ballot' ( temp 4-component vector of uint)
|
||||
0:226 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:226 'f4' ( in 4-component vector of float)
|
||||
0:226 'parti' ( temp 4-component vector of uint)
|
||||
0:230 Function Definition: sm_builtins_err( ( global void)
|
||||
0:230 Function Parameters:
|
||||
0:232 Sequence
|
||||
0:232 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
|
||||
0:233 'gl_SMCountNV' ( flat in uint SMCountNV)
|
||||
0:234 'gl_WarpIDNV' ( flat in uint WarpIDNV)
|
||||
0:235 'gl_SMIDNV' ( flat in uint SMIDNV)
|
||||
0:242 Function Definition: sm_builtins( ( global void)
|
||||
0:242 Function Parameters:
|
||||
0:244 Sequence
|
||||
0:244 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
|
||||
0:245 'gl_SMCountNV' ( flat in uint SMCountNV)
|
||||
0:246 'gl_WarpIDNV' ( flat in uint WarpIDNV)
|
||||
0:247 'gl_SMIDNV' ( flat in uint SMIDNV)
|
||||
0:227 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:227 'parti' ( temp 4-component vector of uint)
|
||||
0:228 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:228 'ballot' ( temp 4-component vector of uint)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:229 'ballot' ( temp 4-component vector of uint)
|
||||
0:229 'parti' ( temp 4-component vector of uint)
|
||||
0:230 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:230 'parti' ( temp 4-component vector of uint)
|
||||
0:234 Function Definition: sm_builtins_err( ( global void)
|
||||
0:234 Function Parameters:
|
||||
0:236 Sequence
|
||||
0:236 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
|
||||
0:237 'gl_SMCountNV' ( flat in uint SMCountNV)
|
||||
0:238 'gl_WarpIDNV' ( flat in uint WarpIDNV)
|
||||
0:239 'gl_SMIDNV' ( flat in uint SMIDNV)
|
||||
0:246 Function Definition: sm_builtins( ( global void)
|
||||
0:246 Function Parameters:
|
||||
0:248 Sequence
|
||||
0:248 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
|
||||
0:249 'gl_SMCountNV' ( flat in uint SMCountNV)
|
||||
0:250 'gl_WarpIDNV' ( flat in uint WarpIDNV)
|
||||
0:251 'gl_SMIDNV' ( flat in uint SMIDNV)
|
||||
0:? Linker Objects
|
||||
0:? 'data' (layout( location=0) out 4-component vector of uint)
|
||||
|
||||
|
40
3rdparty/glslang/Test/baseResults/spv.volatileAtomic.comp.out
vendored
Normal file
40
3rdparty/glslang/Test/baseResults/spv.volatileAtomic.comp.out
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
spv.volatileAtomic.comp
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 18
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main"
|
||||
ExecutionMode 4 LocalSize 1 1 1
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "D"
|
||||
MemberName 8(D) 0 "d"
|
||||
Name 10 "d"
|
||||
Decorate 7 ArrayStride 4
|
||||
MemberDecorate 8(D) 0 Volatile
|
||||
MemberDecorate 8(D) 0 Coherent
|
||||
MemberDecorate 8(D) 0 Offset 0
|
||||
Decorate 8(D) BufferBlock
|
||||
Decorate 10(d) DescriptorSet 0
|
||||
Decorate 10(d) Binding 3
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypeRuntimeArray 6(int)
|
||||
8(D): TypeStruct 7
|
||||
9: TypePointer Uniform 8(D)
|
||||
10(d): 9(ptr) Variable Uniform
|
||||
11: TypeInt 32 1
|
||||
12: 11(int) Constant 0
|
||||
13: TypePointer Uniform 6(int)
|
||||
15: 6(int) Constant 0
|
||||
16: 6(int) Constant 1
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
14: 13(ptr) AccessChain 10(d) 12 12
|
||||
17: 6(int) AtomicExchange 14 16 15 15
|
||||
Return
|
||||
FunctionEnd
|
4
3rdparty/glslang/Test/glsl.450.subgroup.frag
vendored
4
3rdparty/glslang/Test/glsl.450.subgroup.frag
vendored
@ -114,12 +114,14 @@ void main (void)
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
int i;
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcast(f4, i);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
@ -192,7 +194,9 @@ void clustered_works(vec4 f4)
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
int i;
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadBroadcast(f4, i);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
|
23
3rdparty/glslang/Test/runtests
vendored
23
3rdparty/glslang/Test/runtests
vendored
@ -1,11 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
TARGETDIR=localResults
|
||||
# Arguments:
|
||||
# 1- TargetDirectory, where to write test results and intermediary files
|
||||
# 2- Path to glslangValidator
|
||||
# 3- Path to spirv-remap
|
||||
|
||||
TARGETDIR=${1:-localResults}
|
||||
BASEDIR=baseResults
|
||||
EXE=../build/install/bin/glslangValidator
|
||||
REMAPEXE=../build/install/bin/spirv-remap
|
||||
EXE=${2:-../build/install/bin/glslangValidator}
|
||||
REMAPEXE=${3:-../build/install/bin/spirv-remap}
|
||||
HASERROR=0
|
||||
mkdir -p localResults
|
||||
mkdir -p $TARGETDIR
|
||||
|
||||
if [ -a localtestlist ]
|
||||
then
|
||||
@ -55,13 +60,13 @@ diff -b $BASEDIR/hlsl.automap.frag.out $TARGETDIR/hlsl.automap.frag.out || HASER
|
||||
# multi-threaded test
|
||||
#
|
||||
echo Comparing single thread to multithread for all tests in current directory...
|
||||
$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp > singleThread.out
|
||||
$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp -t > multiThread.out
|
||||
diff singleThread.out multiThread.out || HASERROR=1
|
||||
$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp > $TARGETDIR/singleThread.out
|
||||
$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp -t > $TARGETDIR/multiThread.out
|
||||
diff $TARGETDIR/singleThread.out $TARGETDIR/multiThread.out || HASERROR=1
|
||||
if [ $HASERROR -eq 0 ]
|
||||
then
|
||||
rm singleThread.out
|
||||
rm multiThread.out
|
||||
rm $TARGETDIR/singleThread.out
|
||||
rm $TARGETDIR/multiThread.out
|
||||
fi
|
||||
|
||||
#
|
||||
|
8
3rdparty/glslang/Test/spv.volatileAtomic.comp
vendored
Normal file
8
3rdparty/glslang/Test/spv.volatileAtomic.comp
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
#version 450 core
|
||||
|
||||
layout(set=0, binding=3) volatile buffer D { uint d[]; } d;
|
||||
|
||||
void main()
|
||||
{
|
||||
atomicExchange(d.d[0], 0);
|
||||
}
|
9
3rdparty/glslang/glslang/CMakeLists.txt
vendored
9
3rdparty/glslang/glslang/CMakeLists.txt
vendored
@ -82,7 +82,9 @@ add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${H
|
||||
set_property(TARGET glslang PROPERTY FOLDER glslang)
|
||||
set_property(TARGET glslang PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
target_link_libraries(glslang OGLCompiler OSDependent)
|
||||
target_include_directories(glslang PUBLIC ..)
|
||||
target_include_directories(glslang PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
|
||||
if(WIN32 AND BUILD_SHARED_LIBS)
|
||||
set_target_properties(glslang PROPERTIES PREFIX "")
|
||||
@ -102,14 +104,15 @@ endif(WIN32)
|
||||
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
if(BUILD_SHARED_LIBS)
|
||||
install(TARGETS glslang
|
||||
install(TARGETS glslang EXPORT glslangTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
else()
|
||||
install(TARGETS glslang
|
||||
install(TARGETS glslang EXPORT glslangTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
install(EXPORT glslangTargets DESTINATION lib/cmake)
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
|
4
3rdparty/glslang/glslang/Include/Types.h
vendored
4
3rdparty/glslang/glslang/Include/Types.h
vendored
@ -135,8 +135,8 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
||||
bool isYuv() const { return yuv; }
|
||||
#endif
|
||||
void setCombined(bool c) { combined = c; }
|
||||
void setBasicType(TBasicType t) { type = t; };
|
||||
TBasicType getBasicType() const { return type; };
|
||||
void setBasicType(TBasicType t) { type = t; }
|
||||
TBasicType getBasicType() const { return type; }
|
||||
bool isShadow() const { return shadow; }
|
||||
bool isArrayed() const { return arrayed; }
|
||||
|
||||
|
@ -2155,6 +2155,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
|
||||
break;
|
||||
|
||||
case EOpSubgroupBroadcast:
|
||||
case EOpSubgroupQuadBroadcast:
|
||||
if (spvVersion.spv < EShTargetSpv_1_5) {
|
||||
// <id> must be an integral constant expression.
|
||||
if ((*argp)[1]->getAsConstantUnion() == nullptr)
|
||||
@ -5149,7 +5150,8 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
|
||||
return;
|
||||
} else if (id == "location") {
|
||||
profileRequires(loc, EEsProfile, 300, nullptr, "location");
|
||||
const char* exts[2] = { E_GL_ARB_separate_shader_objects, E_GL_ARB_explicit_attrib_location };
|
||||
const char* exts[2] = { E_GL_ARB_separate_shader_objects, E_GL_ARB_explicit_attrib_location };
|
||||
// GL_ARB_explicit_uniform_location requires 330 or GL_ARB_explicit_attrib_location we do not need to add it here
|
||||
profileRequires(loc, ~EEsProfile, 330, 2, exts, "location");
|
||||
if ((unsigned int)value >= TQualifier::layoutLocationEnd)
|
||||
error(loc, "location is too large", id.c_str(), "");
|
||||
@ -5909,8 +5911,9 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier
|
||||
case EvqBuffer:
|
||||
{
|
||||
const char* feature = "location qualifier on uniform or buffer";
|
||||
requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature);
|
||||
profileRequires(loc, ECoreProfile | ECompatibilityProfile, 430, nullptr, feature);
|
||||
requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile | ENoProfile, feature);
|
||||
profileRequires(loc, ~EEsProfile, 330, E_GL_ARB_explicit_attrib_location, feature);
|
||||
profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_explicit_uniform_location, feature);
|
||||
profileRequires(loc, EEsProfile, 310, nullptr, feature);
|
||||
break;
|
||||
}
|
||||
|
@ -283,7 +283,7 @@ public:
|
||||
const TString* entryPoint = nullptr);
|
||||
virtual ~TParseContext();
|
||||
|
||||
bool obeyPrecisionQualifiers() const { return precisionManager.respectingPrecisionQualifiers(); };
|
||||
bool obeyPrecisionQualifiers() const { return precisionManager.respectingPrecisionQualifiers(); }
|
||||
void setPrecisionDefaults();
|
||||
|
||||
void setLimits(const TBuiltInResource&) override;
|
||||
|
@ -174,6 +174,7 @@ void TParseVersions::initializeExtensionBehavior()
|
||||
extensionBehavior[E_GL_ARB_texture_cube_map_array] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_shader_texture_lod] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_explicit_attrib_location] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_explicit_uniform_location] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_shader_image_load_store] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_shader_atomic_counters] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_shader_draw_parameters] = EBhDisable;
|
||||
@ -378,6 +379,7 @@ void TParseVersions::getPreamble(std::string& preamble)
|
||||
"#define GL_ARB_texture_cube_map_array 1\n"
|
||||
"#define GL_ARB_shader_texture_lod 1\n"
|
||||
"#define GL_ARB_explicit_attrib_location 1\n"
|
||||
"#define GL_ARB_explicit_uniform_location 1\n"
|
||||
"#define GL_ARB_shader_image_load_store 1\n"
|
||||
"#define GL_ARB_shader_atomic_counters 1\n"
|
||||
"#define GL_ARB_shader_draw_parameters 1\n"
|
||||
|
@ -126,6 +126,7 @@ const char* const E_GL_ARB_enhanced_layouts = "GL_ARB_enhanced_layou
|
||||
const char* const E_GL_ARB_texture_cube_map_array = "GL_ARB_texture_cube_map_array";
|
||||
const char* const E_GL_ARB_shader_texture_lod = "GL_ARB_shader_texture_lod";
|
||||
const char* const E_GL_ARB_explicit_attrib_location = "GL_ARB_explicit_attrib_location";
|
||||
const char* const E_GL_ARB_explicit_uniform_location = "GL_ARB_explicit_uniform_location";
|
||||
const char* const E_GL_ARB_shader_image_load_store = "GL_ARB_shader_image_load_store";
|
||||
const char* const E_GL_ARB_shader_atomic_counters = "GL_ARB_shader_atomic_counters";
|
||||
const char* const E_GL_ARB_shader_draw_parameters = "GL_ARB_shader_draw_parameters";
|
||||
|
@ -114,7 +114,7 @@ public:
|
||||
bool doAutoLocationMapping() const;
|
||||
TSlotSet::iterator findSlot(int set, int slot);
|
||||
bool checkEmpty(int set, int slot);
|
||||
bool validateInOut(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; };
|
||||
bool validateInOut(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; }
|
||||
int reserveSlot(int set, int slot, int size = 1);
|
||||
int getFreeSlot(int set, int base, int size = 1);
|
||||
int resolveSet(EShLanguage /*stage*/, TVarEntryInfo& ent) override;
|
||||
@ -125,7 +125,7 @@ public:
|
||||
void addStage(EShLanguage stage) override {
|
||||
if (stage < EShLangCount)
|
||||
stageMask[stage] = true;
|
||||
};
|
||||
}
|
||||
uint32_t computeTypeLocationSize(const TType& type, EShLanguage stage);
|
||||
|
||||
TSlotSetMap slots;
|
||||
@ -191,7 +191,7 @@ public:
|
||||
typedef std::map<TString, int> TVarSlotMap; // <resourceName, location/binding>
|
||||
typedef std::map<int, TVarSlotMap> TSlotMap; // <resourceKey, TVarSlotMap>
|
||||
TDefaultGlslIoResolver(const TIntermediate& intermediate);
|
||||
bool validateBinding(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; };
|
||||
bool validateBinding(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; }
|
||||
TResourceType getResourceType(const glslang::TType& type) override;
|
||||
int resolveInOutLocation(EShLanguage stage, TVarEntryInfo& ent) override;
|
||||
int resolveUniformLocation(EShLanguage /*stage*/, TVarEntryInfo& ent) override;
|
||||
@ -209,7 +209,7 @@ public:
|
||||
int buildStorageKey(EShLanguage stage, TStorageQualifier type) {
|
||||
assert(static_cast<uint32_t>(stage) <= 0x0000ffff && static_cast<uint32_t>(type) <= 0x0000ffff);
|
||||
return (stage << 16) | type;
|
||||
};
|
||||
}
|
||||
|
||||
protected:
|
||||
// Use for mark pre stage, to get more interface symbol information.
|
||||
@ -242,7 +242,7 @@ struct TVarLivePair : std::pair<const TString, TVarEntryInfo> {
|
||||
const_cast<TString&>(first) = _Right.first;
|
||||
second = _Right.second;
|
||||
return (*this);
|
||||
};
|
||||
}
|
||||
};
|
||||
typedef std::vector<TVarLivePair> TVarLiveVector;
|
||||
|
||||
@ -253,7 +253,7 @@ public:
|
||||
virtual ~TIoMapper() {}
|
||||
// grow the reflection stage by stage
|
||||
bool virtual addStage(EShLanguage, TIntermediate&, TInfoSink&, TIoMapResolver*);
|
||||
bool virtual doMap(TIoMapResolver*, TInfoSink&) { return true; };
|
||||
bool virtual doMap(TIoMapResolver*, TInfoSink&) { return true; }
|
||||
};
|
||||
|
||||
// I/O mapper for OpenGL
|
||||
|
@ -20,6 +20,7 @@ else()
|
||||
endif()
|
||||
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
install(TARGETS OSDependent
|
||||
install(TARGETS OSDependent EXPORT OSDependentTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(EXPORT OSDependentTargets DESTINATION lib/cmake)
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
@ -15,6 +15,7 @@ if(WIN32)
|
||||
endif(WIN32)
|
||||
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
install(TARGETS OSDependent
|
||||
install(TARGETS OSDependent EXPORT OSDependentTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(EXPORT OSDependentTargets DESTINATION lib/cmake)
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
4
3rdparty/glslang/glslang/Public/ShaderLang.h
vendored
4
3rdparty/glslang/glslang/Public/ShaderLang.h
vendored
@ -487,7 +487,7 @@ public:
|
||||
environment.target.version = version;
|
||||
}
|
||||
|
||||
void getStrings(const char* const* &s, int& n) { s = strings; n = numStrings; };
|
||||
void getStrings(const char* const* &s, int& n) { s = strings; n = numStrings; }
|
||||
|
||||
#ifdef ENABLE_HLSL
|
||||
void setEnvTargetHlslFunctionality1() { environment.target.hlslFunctionality1 = true; }
|
||||
@ -775,7 +775,7 @@ public:
|
||||
TProgram();
|
||||
virtual ~TProgram();
|
||||
void addShader(TShader* shader) { stages[shader->stage].push_back(shader); }
|
||||
std::list<TShader*>& getShaders(EShLanguage stage) { return stages[stage]; };
|
||||
std::list<TShader*>& getShaders(EShLanguage stage) { return stages[stage]; }
|
||||
// Link Validation interface
|
||||
bool link(EShMessages);
|
||||
const char* getInfoLog();
|
||||
|
3
3rdparty/glslang/gtests/CMakeLists.txt
vendored
3
3rdparty/glslang/gtests/CMakeLists.txt
vendored
@ -31,8 +31,9 @@ if(BUILD_TESTING)
|
||||
set_property(TARGET glslangtests PROPERTY FOLDER tests)
|
||||
glslang_set_link_args(glslangtests)
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
install(TARGETS glslangtests
|
||||
install(TARGETS glslangtests EXPORT glslangtestsTargets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(EXPORT glslangtestsTargets DESTINATION lib/cmake)
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
||||
set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test")
|
||||
|
1
3rdparty/glslang/gtests/Spv.FromFile.cpp
vendored
1
3rdparty/glslang/gtests/Spv.FromFile.cpp
vendored
@ -404,6 +404,7 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"spv.storageBuffer.vert",
|
||||
"spv.precise.tese",
|
||||
"spv.precise.tesc",
|
||||
"spv.volatileAtomic.comp",
|
||||
"spv.vulkan100.subgroupArithmetic.comp",
|
||||
"spv.vulkan100.subgroupPartitioned.comp",
|
||||
"spv.xfb.vert",
|
||||
|
5
3rdparty/glslang/hlsl/CMakeLists.txt
vendored
5
3rdparty/glslang/hlsl/CMakeLists.txt
vendored
@ -33,12 +33,13 @@ endif(WIN32)
|
||||
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
if(BUILD_SHARED_LIBS)
|
||||
install(TARGETS HLSL
|
||||
install(TARGETS HLSL EXPORT HLSLTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
else()
|
||||
install(TARGETS HLSL
|
||||
install(TARGETS HLSL EXPORT HLSLTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
install(EXPORT HLSLTargets DESTINATION lib/cmake)
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
Loading…
Reference in New Issue
Block a user