Updated glslang.
This commit is contained in:
parent
6602a5bd2e
commit
b9b9393a94
100
3rdparty/glslang/Android.mk
vendored
Normal file
100
3rdparty/glslang/Android.mk
vendored
Normal file
@ -0,0 +1,100 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
GLSLANG_OS_FLAGS := -DGLSLANG_OSINCLUDE_UNIX
|
||||
# AMD and NV extensions are turned on by default in upstream Glslang.
|
||||
GLSLANG_DEFINES:= -DAMD_EXTENSIONS -DNV_EXTENSIONS -DENABLE_HLSL $(GLSLANG_OS_FLAGS)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE:=OSDependent
|
||||
LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES)
|
||||
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)
|
||||
LOCAL_SRC_FILES:=glslang/OSDependent/Unix/ossource.cpp
|
||||
LOCAL_C_INCLUDES:=$(LOCAL_PATH) $(LOCAL_PATH)/glslang/OSDependent/Unix/
|
||||
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)/glslang/OSDependent/Unix/
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE:=OGLCompiler
|
||||
LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES)
|
||||
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)
|
||||
LOCAL_SRC_FILES:=OGLCompilersDLL/InitializeDll.cpp
|
||||
LOCAL_C_INCLUDES:=$(LOCAL_PATH)/OGLCompiler
|
||||
LOCAL_STATIC_LIBRARIES:=OSDependent
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
# Build Glslang's HLSL parser library.
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE:=HLSL
|
||||
LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES)
|
||||
LOCAL_SRC_FILES:= \
|
||||
hlsl/hlslAttributes.cpp \
|
||||
hlsl/hlslGrammar.cpp \
|
||||
hlsl/hlslOpMap.cpp \
|
||||
hlsl/hlslParseables.cpp \
|
||||
hlsl/hlslParseHelper.cpp \
|
||||
hlsl/hlslScanContext.cpp \
|
||||
hlsl/hlslTokenStream.cpp
|
||||
LOCAL_C_INCLUDES:=$(LOCAL_PATH) \
|
||||
$(LOCAL_PATH)/hlsl
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
GLSLANG_OUT_PATH=$(if $(call host-path-is-absolute,$(TARGET_OUT)),$(TARGET_OUT),$(abspath $(TARGET_OUT)))
|
||||
|
||||
LOCAL_MODULE:=glslang
|
||||
LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES)
|
||||
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)
|
||||
LOCAL_SRC_FILES:= \
|
||||
glslang/GenericCodeGen/CodeGen.cpp \
|
||||
glslang/GenericCodeGen/Link.cpp \
|
||||
glslang/MachineIndependent/attribute.cpp \
|
||||
glslang/MachineIndependent/Constant.cpp \
|
||||
glslang/MachineIndependent/glslang_tab.cpp \
|
||||
glslang/MachineIndependent/InfoSink.cpp \
|
||||
glslang/MachineIndependent/Initialize.cpp \
|
||||
glslang/MachineIndependent/Intermediate.cpp \
|
||||
glslang/MachineIndependent/intermOut.cpp \
|
||||
glslang/MachineIndependent/IntermTraverse.cpp \
|
||||
glslang/MachineIndependent/iomapper.cpp \
|
||||
glslang/MachineIndependent/limits.cpp \
|
||||
glslang/MachineIndependent/linkValidate.cpp \
|
||||
glslang/MachineIndependent/parseConst.cpp \
|
||||
glslang/MachineIndependent/ParseContextBase.cpp \
|
||||
glslang/MachineIndependent/ParseHelper.cpp \
|
||||
glslang/MachineIndependent/PoolAlloc.cpp \
|
||||
glslang/MachineIndependent/propagateNoContraction.cpp \
|
||||
glslang/MachineIndependent/reflection.cpp \
|
||||
glslang/MachineIndependent/RemoveTree.cpp \
|
||||
glslang/MachineIndependent/Scan.cpp \
|
||||
glslang/MachineIndependent/ShaderLang.cpp \
|
||||
glslang/MachineIndependent/SymbolTable.cpp \
|
||||
glslang/MachineIndependent/Versions.cpp \
|
||||
glslang/MachineIndependent/preprocessor/PpAtom.cpp \
|
||||
glslang/MachineIndependent/preprocessor/PpContext.cpp \
|
||||
glslang/MachineIndependent/preprocessor/Pp.cpp \
|
||||
glslang/MachineIndependent/preprocessor/PpScanner.cpp \
|
||||
glslang/MachineIndependent/preprocessor/PpTokens.cpp
|
||||
LOCAL_C_INCLUDES:=$(LOCAL_PATH) \
|
||||
$(LOCAL_PATH)/glslang/MachineIndependent \
|
||||
$(GLSLANG_OUT_PATH)
|
||||
LOCAL_STATIC_LIBRARIES:=OSDependent OGLCompiler HLSL
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE:=SPIRV
|
||||
LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti -Werror $(GLSLANG_DEFINES)
|
||||
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)
|
||||
LOCAL_SRC_FILES:= \
|
||||
SPIRV/GlslangToSpv.cpp \
|
||||
SPIRV/InReadableOrder.cpp \
|
||||
SPIRV/Logger.cpp \
|
||||
SPIRV/SPVRemapper.cpp \
|
||||
SPIRV/SpvBuilder.cpp \
|
||||
SPIRV/SpvPostProcess.cpp \
|
||||
SPIRV/SpvTools.cpp \
|
||||
SPIRV/disassemble.cpp \
|
||||
SPIRV/doc.cpp
|
||||
LOCAL_C_INCLUDES:=$(LOCAL_PATH) $(LOCAL_PATH)/glslang/SPIRV
|
||||
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)/glslang/SPIRV
|
||||
LOCAL_STATIC_LIBRARIES:=glslang
|
||||
include $(BUILD_STATIC_LIBRARY)
|
3
3rdparty/glslang/SPIRV/GLSL.ext.EXT.h
vendored
3
3rdparty/glslang/SPIRV/GLSL.ext.EXT.h
vendored
@ -28,10 +28,11 @@
|
||||
#define GLSLextEXT_H
|
||||
|
||||
static const int GLSLextEXTVersion = 100;
|
||||
static const int GLSLextEXTRevision = 1;
|
||||
static const int GLSLextEXTRevision = 2;
|
||||
|
||||
static const char* const E_SPV_EXT_shader_stencil_export = "SPV_EXT_shader_stencil_export";
|
||||
static const char* const E_SPV_EXT_shader_viewport_index_layer = "SPV_EXT_shader_viewport_index_layer";
|
||||
static const char* const E_SPV_EXT_fragment_fully_covered = "SPV_EXT_fragment_fully_covered";
|
||||
static const char* const E_SPV_EXT_fragment_invocation_density = "SPV_EXT_fragment_invocation_density";
|
||||
|
||||
#endif // #ifndef GLSLextEXT_H
|
||||
|
18
3rdparty/glslang/SPIRV/GlslangToSpv.cpp
vendored
18
3rdparty/glslang/SPIRV/GlslangToSpv.cpp
vendored
@ -833,6 +833,16 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
builder.addCapability(spv::CapabilityMultiView);
|
||||
return spv::BuiltInViewIndex;
|
||||
|
||||
case glslang::EbvFragSizeEXT:
|
||||
builder.addExtension(spv::E_SPV_EXT_fragment_invocation_density);
|
||||
builder.addCapability(spv::CapabilityFragmentDensityEXT);
|
||||
return spv::BuiltInFragSizeEXT;
|
||||
|
||||
case glslang::EbvFragInvocationCountEXT:
|
||||
builder.addExtension(spv::E_SPV_EXT_fragment_invocation_density);
|
||||
builder.addCapability(spv::CapabilityFragmentDensityEXT);
|
||||
return spv::BuiltInFragInvocationCountEXT;
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
case glslang::EbvViewportMaskNV:
|
||||
if (!memberDeclaration) {
|
||||
@ -1815,6 +1825,12 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
|
||||
unsigned int member = node->getOperand()->getAsBinaryNode()->getRight()->getAsConstantUnion()->getConstArray()[0].getUConst();
|
||||
spv::Id length = builder.createArrayLength(builder.accessChainGetLValue(), member);
|
||||
|
||||
// GLSL semantics say the result of .length() is an int, while SPIR-V says
|
||||
// signedness must be 0. So, convert from SPIR-V unsigned back to GLSL's
|
||||
// AST expectation of a signed result.
|
||||
if (glslangIntermediate->getSource() == glslang::EShSourceGlsl)
|
||||
length = builder.createUnaryOp(spv::OpBitcast, builder.makeIntType(32), length);
|
||||
|
||||
builder.clearAccessChain();
|
||||
builder.setAccessChainRValue(length);
|
||||
|
||||
@ -7153,8 +7169,6 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
||||
builder.addDecoration(id, spv::DecorationInputAttachmentIndex, symbol->getQualifier().layoutAttachment);
|
||||
if (glslangIntermediate->getXfbMode()) {
|
||||
builder.addCapability(spv::CapabilityTransformFeedback);
|
||||
if (symbol->getQualifier().hasXfbStride())
|
||||
builder.addDecoration(id, spv::DecorationXfbStride, symbol->getQualifier().layoutXfbStride);
|
||||
if (symbol->getQualifier().hasXfbBuffer()) {
|
||||
builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer);
|
||||
unsigned stride = glslangIntermediate->getXfbStride(symbol->getQualifier().layoutXfbBuffer);
|
||||
|
2
3rdparty/glslang/SPIRV/SpvBuilder.cpp
vendored
Normal file → Executable file
2
3rdparty/glslang/SPIRV/SpvBuilder.cpp
vendored
Normal file → Executable file
@ -1293,7 +1293,7 @@ Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vec
|
||||
|
||||
Id Builder::createArrayLength(Id base, unsigned int member)
|
||||
{
|
||||
spv::Id intType = makeIntType(32);
|
||||
spv::Id intType = makeUintType(32);
|
||||
Instruction* length = new Instruction(getUniqueId(), intType, OpArrayLength);
|
||||
length->addIdOperand(base);
|
||||
length->addImmediateOperand(member);
|
||||
|
2
3rdparty/glslang/SPIRV/SpvTools.cpp
vendored
2
3rdparty/glslang/SPIRV/SpvTools.cpp
vendored
@ -181,7 +181,7 @@ void SpirvToolsLegalize(const glslang::TIntermediate&, std::vector<unsigned int>
|
||||
optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
|
||||
optimizer.RegisterPass(spvtools::CreateCFGCleanupPass());
|
||||
|
||||
optimizer.Run(spirv.data(), spirv.size(), &spirv, spvtools::ValidatorOptions(), true);
|
||||
optimizer.Run(spirv.data(), spirv.size(), &spirv);
|
||||
}
|
||||
|
||||
}; // end namespace glslang
|
||||
|
10
3rdparty/glslang/SPIRV/doc.cpp
vendored
10
3rdparty/glslang/SPIRV/doc.cpp
vendored
@ -388,12 +388,15 @@ const char* BuiltInString(int builtIn)
|
||||
case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
|
||||
case BuiltInPositionPerViewNV: return "PositionPerViewNV";
|
||||
case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
|
||||
case BuiltInFragmentSizeNV: return "FragmentSizeNV";
|
||||
case BuiltInInvocationsPerPixelNV: return "InvocationsPerPixelNV";
|
||||
// case BuiltInFragmentSizeNV: return "FragmentSizeNV"; // superseded by BuiltInFragSizeEXT
|
||||
// case BuiltInInvocationsPerPixelNV: return "InvocationsPerPixelNV"; // superseded by BuiltInFragInvocationCountEXT
|
||||
case BuiltInBaryCoordNV: return "BaryCoordNV";
|
||||
case BuiltInBaryCoordNoPerspNV: return "BaryCoordNoPerspNV";
|
||||
#endif
|
||||
|
||||
case BuiltInFragSizeEXT: return "FragSizeEXT";
|
||||
case BuiltInFragInvocationCountEXT: return "FragInvocationCountEXT";
|
||||
|
||||
case 5264: return "FullyCoveredEXT";
|
||||
|
||||
|
||||
@ -897,8 +900,9 @@ const char* CapabilityString(int info)
|
||||
case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV";
|
||||
case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV";
|
||||
case CapabilityMeshShadingNV: return "MeshShadingNV";
|
||||
case CapabilityShadingRateNV: return "ShadingRateNV";
|
||||
// case CapabilityShadingRateNV: return "ShadingRateNV"; // superseded by CapabilityFragmentDensityEXT
|
||||
#endif
|
||||
case CapabilityFragmentDensityEXT: return "FragmentDensityEXT";
|
||||
|
||||
case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT";
|
||||
|
||||
|
6
3rdparty/glslang/SPIRV/spirv.hpp
vendored
6
3rdparty/glslang/SPIRV/spirv.hpp
vendored
@ -26,13 +26,14 @@
|
||||
// the Binary Section of the SPIR-V specification.
|
||||
|
||||
// Enumeration tokens for SPIR-V, in various styles:
|
||||
// C, C++, C++11, JSON, Lua, Python
|
||||
// C, C++, C++11, JSON, Lua, Python, C#
|
||||
//
|
||||
// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
|
||||
// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
|
||||
// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
|
||||
// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
|
||||
// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
|
||||
// - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL
|
||||
//
|
||||
// Some tokens act like mask values, which can be OR'd together,
|
||||
// while others are mutually exclusive. The mask-like ones have
|
||||
@ -512,7 +513,9 @@ enum BuiltIn {
|
||||
BuiltInMeshViewIndicesNV = 5281,
|
||||
BuiltInBaryCoordNV = 5286,
|
||||
BuiltInBaryCoordNoPerspNV = 5287,
|
||||
BuiltInFragSizeEXT = 5292,
|
||||
BuiltInFragmentSizeNV = 5292,
|
||||
BuiltInFragInvocationCountEXT = 5293,
|
||||
BuiltInInvocationsPerPixelNV = 5293,
|
||||
BuiltInLaunchIdNV = 5319,
|
||||
BuiltInLaunchSizeNV = 5320,
|
||||
@ -770,6 +773,7 @@ enum Capability {
|
||||
CapabilityImageFootprintNV = 5282,
|
||||
CapabilityFragmentBarycentricNV = 5284,
|
||||
CapabilityComputeDerivativeGroupQuadsNV = 5288,
|
||||
CapabilityFragmentDensityEXT = 5291,
|
||||
CapabilityShadingRateNV = 5291,
|
||||
CapabilityGroupNonUniformPartitionedNV = 5297,
|
||||
CapabilityShaderNonUniformEXT = 5301,
|
||||
|
645
3rdparty/glslang/Test/baseResults/constantUnaryConversion.comp.out
vendored
Normal file
645
3rdparty/glslang/Test/baseResults/constantUnaryConversion.comp.out
vendored
Normal file
@ -0,0 +1,645 @@
|
||||
constantUnaryConversion.comp
|
||||
Shader version: 450
|
||||
Requested GL_KHX_shader_explicit_arithmetic_types
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:48 Function Definition: main( ( global void)
|
||||
0:48 Function Parameters:
|
||||
0:? Linker Objects
|
||||
0:? 'bool_init' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_init' ( const int8_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_init' ( const int16_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_init' ( const int)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_init' ( const int64_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_init' ( const uint8_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_init' ( const uint16_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_init' ( const uint)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_init' ( const uint64_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_init' ( const float16_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_init' ( const float)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_init' ( const double)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_to_bool' ( const bool)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_bool' ( const bool)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'int64_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'uint8_t_to_bool' ( const bool)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_bool' ( const bool)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'uint64_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'float16_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'float32_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'float64_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'bool_to_int8_t' ( const int8_t)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_to_int8_t' ( const int8_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_int8_t' ( const int8_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_int8_t' ( const int8_t)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_to_int8_t' ( const int8_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_to_int8_t' ( const int8_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_int8_t' ( const int8_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_int8_t' ( const int8_t)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_to_int8_t' ( const int8_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_to_int8_t' ( const int8_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_int8_t' ( const int8_t)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_int8_t' ( const int8_t)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_int16_t' ( const int16_t)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_to_int16_t' ( const int16_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_int16_t' ( const int16_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_int16_t' ( const int16_t)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_to_int16_t' ( const int16_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_to_int16_t' ( const int16_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_int16_t' ( const int16_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_int16_t' ( const int16_t)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_to_int16_t' ( const int16_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_to_int16_t' ( const int16_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_int16_t' ( const int16_t)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_int16_t' ( const int16_t)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_int32_t' ( const int)
|
||||
0:? 1 (const int)
|
||||
0:? 'int8_t_to_int32_t' ( const int)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_int32_t' ( const int)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_int32_t' ( const int)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_to_int32_t' ( const int)
|
||||
0:? -4 (const int)
|
||||
0:? 'uint8_t_to_int32_t' ( const int)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_int32_t' ( const int)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_int32_t' ( const int)
|
||||
0:? 3 (const int)
|
||||
0:? 'uint64_t_to_int32_t' ( const int)
|
||||
0:? 4 (const int)
|
||||
0:? 'float16_t_to_int32_t' ( const int)
|
||||
0:? 42 (const int)
|
||||
0:? 'float32_t_to_int32_t' ( const int)
|
||||
0:? 13 (const int)
|
||||
0:? 'float64_t_to_int32_t' ( const int)
|
||||
0:? -4 (const int)
|
||||
0:? 'bool_to_int64_t' ( const int64_t)
|
||||
0:? 1 (const int64_t)
|
||||
0:? 'int8_t_to_int64_t' ( const int64_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_int64_t' ( const int64_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_int64_t' ( const int64_t)
|
||||
0:? -3 (const int64_t)
|
||||
0:? 'int64_t_to_int64_t' ( const int64_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_to_int64_t' ( const int64_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_int64_t' ( const int64_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_int64_t' ( const int64_t)
|
||||
0:? 3 (const int64_t)
|
||||
0:? 'uint64_t_to_int64_t' ( const int64_t)
|
||||
0:? 4 (const int64_t)
|
||||
0:? 'float16_t_to_int64_t' ( const int64_t)
|
||||
0:? 42 (const int64_t)
|
||||
0:? 'float32_t_to_int64_t' ( const int64_t)
|
||||
0:? 13 (const int64_t)
|
||||
0:? 'float64_t_to_int64_t' ( const int64_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'bool_to_uint8_t' ( const uint8_t)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_to_uint8_t' ( const uint8_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_uint8_t' ( const uint8_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_uint8_t' ( const uint8_t)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_to_uint8_t' ( const uint8_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_uint8_t' ( const uint8_t)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_uint16_t' ( const uint16_t)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_to_uint16_t' ( const uint16_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_uint16_t' ( const uint16_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_uint16_t' ( const uint16_t)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_to_uint16_t' ( const uint16_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_uint16_t' ( const uint16_t)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_uint32_t' ( const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'int8_t_to_uint32_t' ( const uint)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_uint32_t' ( const uint)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_uint32_t' ( const uint)
|
||||
0:? 4294967293 (const uint)
|
||||
0:? 'int64_t_to_uint32_t' ( const uint)
|
||||
0:? 4294967292 (const uint)
|
||||
0:? 'uint8_t_to_uint32_t' ( const uint)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_uint32_t' ( const uint)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_uint32_t' ( const uint)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_to_uint32_t' ( const uint)
|
||||
0:? 4 (const uint)
|
||||
0:? 'float16_t_to_uint32_t' ( const uint)
|
||||
0:? 42 (const uint)
|
||||
0:? 'float32_t_to_uint32_t' ( const uint)
|
||||
0:? 13 (const uint)
|
||||
0:? 'float64_t_to_uint32_t' ( const uint)
|
||||
0:? 4294967292 (const uint)
|
||||
0:? 'bool_to_uint64_t' ( const uint64_t)
|
||||
0:? 1 (const uint64_t)
|
||||
0:? 'int8_t_to_uint64_t' ( const uint64_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_uint64_t' ( const uint64_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 18446744073709551613 (const uint64_t)
|
||||
0:? 'int64_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 18446744073709551612 (const uint64_t)
|
||||
0:? 'uint8_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 3 (const uint64_t)
|
||||
0:? 'uint64_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 42 (const uint64_t)
|
||||
0:? 'float32_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 13 (const uint64_t)
|
||||
0:? 'float64_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 18446744073709551612 (const uint64_t)
|
||||
0:? 'bool_to_float16_t' ( const float16_t)
|
||||
0:? 1.000000
|
||||
0:? 'int8_t_to_float16_t' ( const float16_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_float16_t' ( const float16_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_float16_t' ( const float16_t)
|
||||
0:? -3.000000
|
||||
0:? 'int64_t_to_float16_t' ( const float16_t)
|
||||
0:? -4.000000
|
||||
0:? 'uint8_t_to_float16_t' ( const float16_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_float16_t' ( const float16_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_float16_t' ( const float16_t)
|
||||
0:? 3.000000
|
||||
0:? 'uint64_t_to_float16_t' ( const float16_t)
|
||||
0:? 4.000000
|
||||
0:? 'float16_t_to_float16_t' ( const float16_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_float16_t' ( const float16_t)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_float16_t' ( const float16_t)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_float32_t' ( const float)
|
||||
0:? 1.000000
|
||||
0:? 'int8_t_to_float32_t' ( const float)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_float32_t' ( const float)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_float32_t' ( const float)
|
||||
0:? -3.000000
|
||||
0:? 'int64_t_to_float32_t' ( const float)
|
||||
0:? -4.000000
|
||||
0:? 'uint8_t_to_float32_t' ( const float)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_float32_t' ( const float)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_float32_t' ( const float)
|
||||
0:? 3.000000
|
||||
0:? 'uint64_t_to_float32_t' ( const float)
|
||||
0:? 4.000000
|
||||
0:? 'float16_t_to_float32_t' ( const float)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_float32_t' ( const float)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_float32_t' ( const float)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_float64_t' ( const double)
|
||||
0:? 1.000000
|
||||
0:? 'int8_t_to_float64_t' ( const double)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_float64_t' ( const double)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_float64_t' ( const double)
|
||||
0:? -3.000000
|
||||
0:? 'int64_t_to_float64_t' ( const double)
|
||||
0:? -4.000000
|
||||
0:? 'uint8_t_to_float64_t' ( const double)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_float64_t' ( const double)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_float64_t' ( const double)
|
||||
0:? 3.000000
|
||||
0:? 'uint64_t_to_float64_t' ( const double)
|
||||
0:? 4.000000
|
||||
0:? 'float16_t_to_float64_t' ( const double)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_float64_t' ( const double)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_float64_t' ( const double)
|
||||
0:? -4.000000
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHX_shader_explicit_arithmetic_types
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:48 Function Definition: main( ( global void)
|
||||
0:48 Function Parameters:
|
||||
0:? Linker Objects
|
||||
0:? 'bool_init' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_init' ( const int8_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_init' ( const int16_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_init' ( const int)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_init' ( const int64_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_init' ( const uint8_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_init' ( const uint16_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_init' ( const uint)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_init' ( const uint64_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_init' ( const float16_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_init' ( const float)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_init' ( const double)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_to_bool' ( const bool)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_bool' ( const bool)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'int64_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'uint8_t_to_bool' ( const bool)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_bool' ( const bool)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'uint64_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'float16_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'float32_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'float64_t_to_bool' ( const bool)
|
||||
0:? true (const bool)
|
||||
0:? 'bool_to_int8_t' ( const int8_t)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_to_int8_t' ( const int8_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_int8_t' ( const int8_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_int8_t' ( const int8_t)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_to_int8_t' ( const int8_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_to_int8_t' ( const int8_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_int8_t' ( const int8_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_int8_t' ( const int8_t)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_to_int8_t' ( const int8_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_to_int8_t' ( const int8_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_int8_t' ( const int8_t)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_int8_t' ( const int8_t)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_int16_t' ( const int16_t)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_to_int16_t' ( const int16_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_int16_t' ( const int16_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_int16_t' ( const int16_t)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_to_int16_t' ( const int16_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_to_int16_t' ( const int16_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_int16_t' ( const int16_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_int16_t' ( const int16_t)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_to_int16_t' ( const int16_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_to_int16_t' ( const int16_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_int16_t' ( const int16_t)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_int16_t' ( const int16_t)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_int32_t' ( const int)
|
||||
0:? 1 (const int)
|
||||
0:? 'int8_t_to_int32_t' ( const int)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_int32_t' ( const int)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_int32_t' ( const int)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_to_int32_t' ( const int)
|
||||
0:? -4 (const int)
|
||||
0:? 'uint8_t_to_int32_t' ( const int)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_int32_t' ( const int)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_int32_t' ( const int)
|
||||
0:? 3 (const int)
|
||||
0:? 'uint64_t_to_int32_t' ( const int)
|
||||
0:? 4 (const int)
|
||||
0:? 'float16_t_to_int32_t' ( const int)
|
||||
0:? 42 (const int)
|
||||
0:? 'float32_t_to_int32_t' ( const int)
|
||||
0:? 13 (const int)
|
||||
0:? 'float64_t_to_int32_t' ( const int)
|
||||
0:? -4 (const int)
|
||||
0:? 'bool_to_int64_t' ( const int64_t)
|
||||
0:? 1 (const int64_t)
|
||||
0:? 'int8_t_to_int64_t' ( const int64_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_int64_t' ( const int64_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_int64_t' ( const int64_t)
|
||||
0:? -3 (const int64_t)
|
||||
0:? 'int64_t_to_int64_t' ( const int64_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_to_int64_t' ( const int64_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_int64_t' ( const int64_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_int64_t' ( const int64_t)
|
||||
0:? 3 (const int64_t)
|
||||
0:? 'uint64_t_to_int64_t' ( const int64_t)
|
||||
0:? 4 (const int64_t)
|
||||
0:? 'float16_t_to_int64_t' ( const int64_t)
|
||||
0:? 42 (const int64_t)
|
||||
0:? 'float32_t_to_int64_t' ( const int64_t)
|
||||
0:? 13 (const int64_t)
|
||||
0:? 'float64_t_to_int64_t' ( const int64_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'bool_to_uint8_t' ( const uint8_t)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_to_uint8_t' ( const uint8_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_uint8_t' ( const uint8_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_uint8_t' ( const uint8_t)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_to_uint8_t' ( const uint8_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_uint8_t' ( const uint8_t)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_uint8_t' ( const uint8_t)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_uint16_t' ( const uint16_t)
|
||||
0:? true (const bool)
|
||||
0:? 'int8_t_to_uint16_t' ( const uint16_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_uint16_t' ( const uint16_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_uint16_t' ( const uint16_t)
|
||||
0:? -3 (const int)
|
||||
0:? 'int64_t_to_uint16_t' ( const uint16_t)
|
||||
0:? -4 (const int64_t)
|
||||
0:? 'uint8_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_uint16_t' ( const uint16_t)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_uint16_t' ( const uint16_t)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_uint32_t' ( const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'int8_t_to_uint32_t' ( const uint)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_uint32_t' ( const uint)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_uint32_t' ( const uint)
|
||||
0:? 4294967293 (const uint)
|
||||
0:? 'int64_t_to_uint32_t' ( const uint)
|
||||
0:? 4294967292 (const uint)
|
||||
0:? 'uint8_t_to_uint32_t' ( const uint)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_uint32_t' ( const uint)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_uint32_t' ( const uint)
|
||||
0:? 3 (const uint)
|
||||
0:? 'uint64_t_to_uint32_t' ( const uint)
|
||||
0:? 4 (const uint)
|
||||
0:? 'float16_t_to_uint32_t' ( const uint)
|
||||
0:? 42 (const uint)
|
||||
0:? 'float32_t_to_uint32_t' ( const uint)
|
||||
0:? 13 (const uint)
|
||||
0:? 'float64_t_to_uint32_t' ( const uint)
|
||||
0:? 4294967292 (const uint)
|
||||
0:? 'bool_to_uint64_t' ( const uint64_t)
|
||||
0:? 1 (const uint64_t)
|
||||
0:? 'int8_t_to_uint64_t' ( const uint64_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_uint64_t' ( const uint64_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 18446744073709551613 (const uint64_t)
|
||||
0:? 'int64_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 18446744073709551612 (const uint64_t)
|
||||
0:? 'uint8_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 3 (const uint64_t)
|
||||
0:? 'uint64_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 4 (const uint64_t)
|
||||
0:? 'float16_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 42 (const uint64_t)
|
||||
0:? 'float32_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 13 (const uint64_t)
|
||||
0:? 'float64_t_to_uint64_t' ( const uint64_t)
|
||||
0:? 18446744073709551612 (const uint64_t)
|
||||
0:? 'bool_to_float16_t' ( const float16_t)
|
||||
0:? 1.000000
|
||||
0:? 'int8_t_to_float16_t' ( const float16_t)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_float16_t' ( const float16_t)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_float16_t' ( const float16_t)
|
||||
0:? -3.000000
|
||||
0:? 'int64_t_to_float16_t' ( const float16_t)
|
||||
0:? -4.000000
|
||||
0:? 'uint8_t_to_float16_t' ( const float16_t)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_float16_t' ( const float16_t)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_float16_t' ( const float16_t)
|
||||
0:? 3.000000
|
||||
0:? 'uint64_t_to_float16_t' ( const float16_t)
|
||||
0:? 4.000000
|
||||
0:? 'float16_t_to_float16_t' ( const float16_t)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_float16_t' ( const float16_t)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_float16_t' ( const float16_t)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_float32_t' ( const float)
|
||||
0:? 1.000000
|
||||
0:? 'int8_t_to_float32_t' ( const float)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_float32_t' ( const float)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_float32_t' ( const float)
|
||||
0:? -3.000000
|
||||
0:? 'int64_t_to_float32_t' ( const float)
|
||||
0:? -4.000000
|
||||
0:? 'uint8_t_to_float32_t' ( const float)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_float32_t' ( const float)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_float32_t' ( const float)
|
||||
0:? 3.000000
|
||||
0:? 'uint64_t_to_float32_t' ( const float)
|
||||
0:? 4.000000
|
||||
0:? 'float16_t_to_float32_t' ( const float)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_float32_t' ( const float)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_float32_t' ( const float)
|
||||
0:? -4.000000
|
||||
0:? 'bool_to_float64_t' ( const double)
|
||||
0:? 1.000000
|
||||
0:? 'int8_t_to_float64_t' ( const double)
|
||||
0:? -1 (const int)
|
||||
0:? 'int16_t_to_float64_t' ( const double)
|
||||
0:? -2 (const int)
|
||||
0:? 'int32_t_to_float64_t' ( const double)
|
||||
0:? -3.000000
|
||||
0:? 'int64_t_to_float64_t' ( const double)
|
||||
0:? -4.000000
|
||||
0:? 'uint8_t_to_float64_t' ( const double)
|
||||
0:? 1 (const int)
|
||||
0:? 'uint16_t_to_float64_t' ( const double)
|
||||
0:? 2 (const int)
|
||||
0:? 'uint32_t_to_float64_t' ( const double)
|
||||
0:? 3.000000
|
||||
0:? 'uint64_t_to_float64_t' ( const double)
|
||||
0:? 4.000000
|
||||
0:? 'float16_t_to_float64_t' ( const double)
|
||||
0:? 42.000000
|
||||
0:? 'float32_t_to_float64_t' ( const double)
|
||||
0:? 13.000000
|
||||
0:? 'float64_t_to_float64_t' ( const double)
|
||||
0:? -4.000000
|
||||
|
@ -323,10 +323,6 @@ gl_FragCoord origin is upper left
|
||||
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||
0:? 'pos' (layout( location=0) flat in uint)
|
||||
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's type.
|
||||
OpStore %size %20
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 114
|
||||
@ -370,13 +366,13 @@ error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's ty
|
||||
16(sbuf): TypeStruct 15
|
||||
17: TypePointer Uniform 16(sbuf)
|
||||
18(sbuf): 17(ptr) Variable Uniform
|
||||
19: TypeInt 32 1
|
||||
21: 19(int) Constant 0
|
||||
23: 19(int) Constant 2
|
||||
20: TypeInt 32 1
|
||||
21: 20(int) Constant 0
|
||||
23: 20(int) Constant 2
|
||||
25: TypePointer Uniform 6(int)
|
||||
29: TypePointer Function 19(int)
|
||||
29: TypePointer Function 20(int)
|
||||
32: 6(int) Constant 4
|
||||
39: 19(int) Constant 1
|
||||
39: 20(int) Constant 1
|
||||
43: TypeVector 6(int) 2
|
||||
45: TypeVector 8(float) 2
|
||||
47: 8(float) Constant 0
|
||||
@ -384,7 +380,7 @@ error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's ty
|
||||
69: TypeVector 6(int) 3
|
||||
71: TypeVector 8(float) 3
|
||||
80: 6(int) Constant 12
|
||||
95: 19(int) Constant 3
|
||||
95: 20(int) Constant 3
|
||||
99: TypeVector 6(int) 4
|
||||
106: TypePointer Input 6(int)
|
||||
107(pos): 106(ptr) Variable Input
|
||||
@ -409,22 +405,22 @@ error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's ty
|
||||
30(byteAddrTemp): 29(ptr) Variable Function
|
||||
53(byteAddrTemp): 29(ptr) Variable Function
|
||||
78(byteAddrTemp): 29(ptr) Variable Function
|
||||
20: 19(int) ArrayLength 18(sbuf) 0
|
||||
Store 14(size) 20
|
||||
19: 6(int) ArrayLength 18(sbuf) 0
|
||||
Store 14(size) 19
|
||||
22: 6(int) Load 11(pos)
|
||||
24: 19(int) ShiftRightLogical 22 23
|
||||
24: 20(int) ShiftRightLogical 22 23
|
||||
26: 25(ptr) AccessChain 18(sbuf) 21 24
|
||||
27: 6(int) Load 26
|
||||
28: 8(float) ConvertUToF 27
|
||||
31: 6(int) Load 11(pos)
|
||||
33: 6(int) IAdd 31 32
|
||||
34: 19(int) ShiftRightLogical 33 23
|
||||
34: 20(int) ShiftRightLogical 33 23
|
||||
Store 30(byteAddrTemp) 34
|
||||
35: 19(int) Load 30(byteAddrTemp)
|
||||
35: 20(int) Load 30(byteAddrTemp)
|
||||
36: 25(ptr) AccessChain 18(sbuf) 21 35
|
||||
37: 6(int) Load 36
|
||||
38: 19(int) Load 30(byteAddrTemp)
|
||||
40: 19(int) IAdd 38 39
|
||||
38: 20(int) Load 30(byteAddrTemp)
|
||||
40: 20(int) IAdd 38 39
|
||||
41: 25(ptr) AccessChain 18(sbuf) 21 40
|
||||
42: 6(int) Load 41
|
||||
44: 43(ivec2) CompositeConstruct 37 42
|
||||
@ -436,17 +432,17 @@ error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's ty
|
||||
52: 9(fvec4) FAdd 51 50
|
||||
54: 6(int) Load 11(pos)
|
||||
56: 6(int) IAdd 54 55
|
||||
57: 19(int) ShiftRightLogical 56 23
|
||||
57: 20(int) ShiftRightLogical 56 23
|
||||
Store 53(byteAddrTemp) 57
|
||||
58: 19(int) Load 53(byteAddrTemp)
|
||||
58: 20(int) Load 53(byteAddrTemp)
|
||||
59: 25(ptr) AccessChain 18(sbuf) 21 58
|
||||
60: 6(int) Load 59
|
||||
61: 19(int) Load 53(byteAddrTemp)
|
||||
62: 19(int) IAdd 61 39
|
||||
61: 20(int) Load 53(byteAddrTemp)
|
||||
62: 20(int) IAdd 61 39
|
||||
63: 25(ptr) AccessChain 18(sbuf) 21 62
|
||||
64: 6(int) Load 63
|
||||
65: 19(int) Load 53(byteAddrTemp)
|
||||
66: 19(int) IAdd 65 23
|
||||
65: 20(int) Load 53(byteAddrTemp)
|
||||
66: 20(int) IAdd 65 23
|
||||
67: 25(ptr) AccessChain 18(sbuf) 21 66
|
||||
68: 6(int) Load 67
|
||||
70: 69(ivec3) CompositeConstruct 60 64 68
|
||||
@ -458,21 +454,21 @@ error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's ty
|
||||
77: 9(fvec4) FAdd 52 76
|
||||
79: 6(int) Load 11(pos)
|
||||
81: 6(int) IAdd 79 80
|
||||
82: 19(int) ShiftRightLogical 81 23
|
||||
82: 20(int) ShiftRightLogical 81 23
|
||||
Store 78(byteAddrTemp) 82
|
||||
83: 19(int) Load 78(byteAddrTemp)
|
||||
83: 20(int) Load 78(byteAddrTemp)
|
||||
84: 25(ptr) AccessChain 18(sbuf) 21 83
|
||||
85: 6(int) Load 84
|
||||
86: 19(int) Load 78(byteAddrTemp)
|
||||
87: 19(int) IAdd 86 39
|
||||
86: 20(int) Load 78(byteAddrTemp)
|
||||
87: 20(int) IAdd 86 39
|
||||
88: 25(ptr) AccessChain 18(sbuf) 21 87
|
||||
89: 6(int) Load 88
|
||||
90: 19(int) Load 78(byteAddrTemp)
|
||||
91: 19(int) IAdd 90 23
|
||||
90: 20(int) Load 78(byteAddrTemp)
|
||||
91: 20(int) IAdd 90 23
|
||||
92: 25(ptr) AccessChain 18(sbuf) 21 91
|
||||
93: 6(int) Load 92
|
||||
94: 19(int) Load 78(byteAddrTemp)
|
||||
96: 19(int) IAdd 94 95
|
||||
94: 20(int) Load 78(byteAddrTemp)
|
||||
96: 20(int) IAdd 94 95
|
||||
97: 25(ptr) AccessChain 18(sbuf) 21 96
|
||||
98: 6(int) Load 97
|
||||
100: 99(ivec4) CompositeConstruct 85 89 93 98
|
||||
|
@ -175,10 +175,6 @@ gl_FragCoord origin is upper left
|
||||
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||
0:? 'pos' (layout( location=0) flat in uint)
|
||||
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: OpStore Pointer <id> '26[size]'s type does not match Object <id> '33's type.
|
||||
OpStore %size %33
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 78
|
||||
@ -276,7 +272,7 @@ error: OpStore Pointer <id> '26[size]'s type does not match Object <id> '33's ty
|
||||
22: 6(int) IAdd 20 21
|
||||
25: 24(ptr) AccessChain 17(sbuf2) 19 22
|
||||
Store 25 23
|
||||
33: 18(int) ArrayLength 32(sbuf) 0
|
||||
33: 6(int) ArrayLength 32(sbuf) 0
|
||||
Store 26(size) 33
|
||||
Store 34(stride) 35
|
||||
36: 6(int) Load 11(pos)
|
||||
|
@ -187,10 +187,6 @@ gl_FragCoord origin is upper left
|
||||
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||
0:? 'pos' (layout( location=0) flat in uint)
|
||||
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: OpStore Pointer <id> '43[size]'s type does not match Object <id> '44's type.
|
||||
OpStore %size %44
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 96
|
||||
@ -312,7 +308,7 @@ error: OpStore Pointer <id> '43[size]'s type does not match Object <id> '44's ty
|
||||
41: 15(bool) INotEqual 39 35
|
||||
42: 37(ptr) AccessChain 18(mydata) 40
|
||||
Store 42 41
|
||||
44: 24(int) ArrayLength 23(sbuf) 0
|
||||
44: 6(int) ArrayLength 23(sbuf) 0
|
||||
Store 43(size) 44
|
||||
Store 45(stride) 46
|
||||
47: 6(int) Load 11(pos)
|
||||
|
@ -175,10 +175,6 @@ gl_FragCoord origin is upper left
|
||||
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||
0:? 'pos' (layout( location=0) flat in uint)
|
||||
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: OpStore Pointer <id> '26[size]'s type does not match Object <id> '33's type.
|
||||
OpStore %size %33
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 78
|
||||
@ -274,7 +270,7 @@ error: OpStore Pointer <id> '26[size]'s type does not match Object <id> '33's ty
|
||||
22: 6(int) IAdd 20 21
|
||||
25: 24(ptr) AccessChain 17(sbuf2) 19 22
|
||||
Store 25 23
|
||||
33: 18(int) ArrayLength 32(sbuf) 0
|
||||
33: 6(int) ArrayLength 32(sbuf) 0
|
||||
Store 26(size) 33
|
||||
Store 34(stride) 35
|
||||
36: 6(int) Load 11(pos)
|
||||
|
@ -1003,10 +1003,6 @@ gl_FragCoord origin is upper left
|
||||
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||
0:? 'pos' (layout( location=0) flat in uint)
|
||||
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's type.
|
||||
OpStore %size %20
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 239
|
||||
@ -1053,18 +1049,18 @@ error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's ty
|
||||
16(sbuf): TypeStruct 15
|
||||
17: TypePointer Uniform 16(sbuf)
|
||||
18(sbuf): 17(ptr) Variable Uniform
|
||||
19: TypeInt 32 1
|
||||
21: TypePointer Function 19(int)
|
||||
24: 19(int) Constant 2
|
||||
26: 19(int) Constant 0
|
||||
20: TypeInt 32 1
|
||||
21: TypePointer Function 20(int)
|
||||
24: 20(int) Constant 2
|
||||
26: 20(int) Constant 0
|
||||
30: TypePointer Uniform 6(int)
|
||||
45: 19(int) Constant 1
|
||||
45: 20(int) Constant 1
|
||||
49: TypeVector 6(int) 2
|
||||
51: 6(int) Constant 0
|
||||
66: 6(int) Constant 1
|
||||
87: TypeVector 6(int) 3
|
||||
125: 6(int) Constant 2
|
||||
147: 19(int) Constant 3
|
||||
147: 20(int) Constant 3
|
||||
151: TypeVector 6(int) 4
|
||||
219: 6(int) Constant 3
|
||||
231: TypePointer Input 6(int)
|
||||
@ -1094,46 +1090,46 @@ error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's ty
|
||||
73(byteAddrTemp): 21(ptr) Variable Function
|
||||
128(byteAddrTemp): 21(ptr) Variable Function
|
||||
132(byteAddrTemp): 21(ptr) Variable Function
|
||||
20: 19(int) ArrayLength 18(sbuf) 0
|
||||
Store 14(size) 20
|
||||
19: 6(int) ArrayLength 18(sbuf) 0
|
||||
Store 14(size) 19
|
||||
23: 6(int) Load 11(pos)
|
||||
25: 19(int) ShiftRightLogical 23 24
|
||||
25: 20(int) ShiftRightLogical 23 24
|
||||
Store 22(byteAddrTemp) 25
|
||||
27: 19(int) Load 22(byteAddrTemp)
|
||||
27: 20(int) Load 22(byteAddrTemp)
|
||||
28: 6(int) Load 11(pos)
|
||||
29: 19(int) ShiftRightLogical 28 24
|
||||
29: 20(int) ShiftRightLogical 28 24
|
||||
31: 30(ptr) AccessChain 18(sbuf) 26 29
|
||||
32: 6(int) Load 31
|
||||
33: 30(ptr) AccessChain 18(sbuf) 26 27
|
||||
Store 33 32
|
||||
35: 6(int) Load 11(pos)
|
||||
36: 19(int) ShiftRightLogical 35 24
|
||||
36: 20(int) ShiftRightLogical 35 24
|
||||
Store 34(byteAddrTemp) 36
|
||||
37: 19(int) Load 34(byteAddrTemp)
|
||||
37: 20(int) Load 34(byteAddrTemp)
|
||||
39: 6(int) Load 11(pos)
|
||||
40: 19(int) ShiftRightLogical 39 24
|
||||
40: 20(int) ShiftRightLogical 39 24
|
||||
Store 38(byteAddrTemp) 40
|
||||
41: 19(int) Load 38(byteAddrTemp)
|
||||
41: 20(int) Load 38(byteAddrTemp)
|
||||
42: 30(ptr) AccessChain 18(sbuf) 26 41
|
||||
43: 6(int) Load 42
|
||||
44: 19(int) Load 38(byteAddrTemp)
|
||||
46: 19(int) IAdd 44 45
|
||||
44: 20(int) Load 38(byteAddrTemp)
|
||||
46: 20(int) IAdd 44 45
|
||||
47: 30(ptr) AccessChain 18(sbuf) 26 46
|
||||
48: 6(int) Load 47
|
||||
50: 49(ivec2) CompositeConstruct 43 48
|
||||
52: 6(int) CompositeExtract 50 0
|
||||
53: 30(ptr) AccessChain 18(sbuf) 26 37
|
||||
Store 53 52
|
||||
54: 19(int) Load 34(byteAddrTemp)
|
||||
55: 19(int) IAdd 54 45
|
||||
54: 20(int) Load 34(byteAddrTemp)
|
||||
55: 20(int) IAdd 54 45
|
||||
56: 6(int) Load 11(pos)
|
||||
57: 19(int) ShiftRightLogical 56 24
|
||||
57: 20(int) ShiftRightLogical 56 24
|
||||
Store 38(byteAddrTemp) 57
|
||||
58: 19(int) Load 38(byteAddrTemp)
|
||||
58: 20(int) Load 38(byteAddrTemp)
|
||||
59: 30(ptr) AccessChain 18(sbuf) 26 58
|
||||
60: 6(int) Load 59
|
||||
61: 19(int) Load 38(byteAddrTemp)
|
||||
62: 19(int) IAdd 61 45
|
||||
61: 20(int) Load 38(byteAddrTemp)
|
||||
62: 20(int) IAdd 61 45
|
||||
63: 30(ptr) AccessChain 18(sbuf) 26 62
|
||||
64: 6(int) Load 63
|
||||
65: 49(ivec2) CompositeConstruct 60 64
|
||||
@ -1141,61 +1137,61 @@ error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's ty
|
||||
68: 30(ptr) AccessChain 18(sbuf) 26 55
|
||||
Store 68 67
|
||||
70: 6(int) Load 11(pos)
|
||||
71: 19(int) ShiftRightLogical 70 24
|
||||
71: 20(int) ShiftRightLogical 70 24
|
||||
Store 69(byteAddrTemp) 71
|
||||
72: 19(int) Load 69(byteAddrTemp)
|
||||
72: 20(int) Load 69(byteAddrTemp)
|
||||
74: 6(int) Load 11(pos)
|
||||
75: 19(int) ShiftRightLogical 74 24
|
||||
75: 20(int) ShiftRightLogical 74 24
|
||||
Store 73(byteAddrTemp) 75
|
||||
76: 19(int) Load 73(byteAddrTemp)
|
||||
76: 20(int) Load 73(byteAddrTemp)
|
||||
77: 30(ptr) AccessChain 18(sbuf) 26 76
|
||||
78: 6(int) Load 77
|
||||
79: 19(int) Load 73(byteAddrTemp)
|
||||
80: 19(int) IAdd 79 45
|
||||
79: 20(int) Load 73(byteAddrTemp)
|
||||
80: 20(int) IAdd 79 45
|
||||
81: 30(ptr) AccessChain 18(sbuf) 26 80
|
||||
82: 6(int) Load 81
|
||||
83: 19(int) Load 73(byteAddrTemp)
|
||||
84: 19(int) IAdd 83 24
|
||||
83: 20(int) Load 73(byteAddrTemp)
|
||||
84: 20(int) IAdd 83 24
|
||||
85: 30(ptr) AccessChain 18(sbuf) 26 84
|
||||
86: 6(int) Load 85
|
||||
88: 87(ivec3) CompositeConstruct 78 82 86
|
||||
89: 6(int) CompositeExtract 88 0
|
||||
90: 30(ptr) AccessChain 18(sbuf) 26 72
|
||||
Store 90 89
|
||||
91: 19(int) Load 69(byteAddrTemp)
|
||||
92: 19(int) IAdd 91 45
|
||||
91: 20(int) Load 69(byteAddrTemp)
|
||||
92: 20(int) IAdd 91 45
|
||||
93: 6(int) Load 11(pos)
|
||||
94: 19(int) ShiftRightLogical 93 24
|
||||
94: 20(int) ShiftRightLogical 93 24
|
||||
Store 73(byteAddrTemp) 94
|
||||
95: 19(int) Load 73(byteAddrTemp)
|
||||
95: 20(int) Load 73(byteAddrTemp)
|
||||
96: 30(ptr) AccessChain 18(sbuf) 26 95
|
||||
97: 6(int) Load 96
|
||||
98: 19(int) Load 73(byteAddrTemp)
|
||||
99: 19(int) IAdd 98 45
|
||||
98: 20(int) Load 73(byteAddrTemp)
|
||||
99: 20(int) IAdd 98 45
|
||||
100: 30(ptr) AccessChain 18(sbuf) 26 99
|
||||
101: 6(int) Load 100
|
||||
102: 19(int) Load 73(byteAddrTemp)
|
||||
103: 19(int) IAdd 102 24
|
||||
102: 20(int) Load 73(byteAddrTemp)
|
||||
103: 20(int) IAdd 102 24
|
||||
104: 30(ptr) AccessChain 18(sbuf) 26 103
|
||||
105: 6(int) Load 104
|
||||
106: 87(ivec3) CompositeConstruct 97 101 105
|
||||
107: 6(int) CompositeExtract 106 1
|
||||
108: 30(ptr) AccessChain 18(sbuf) 26 92
|
||||
Store 108 107
|
||||
109: 19(int) Load 69(byteAddrTemp)
|
||||
110: 19(int) IAdd 109 24
|
||||
109: 20(int) Load 69(byteAddrTemp)
|
||||
110: 20(int) IAdd 109 24
|
||||
111: 6(int) Load 11(pos)
|
||||
112: 19(int) ShiftRightLogical 111 24
|
||||
112: 20(int) ShiftRightLogical 111 24
|
||||
Store 73(byteAddrTemp) 112
|
||||
113: 19(int) Load 73(byteAddrTemp)
|
||||
113: 20(int) Load 73(byteAddrTemp)
|
||||
114: 30(ptr) AccessChain 18(sbuf) 26 113
|
||||
115: 6(int) Load 114
|
||||
116: 19(int) Load 73(byteAddrTemp)
|
||||
117: 19(int) IAdd 116 45
|
||||
116: 20(int) Load 73(byteAddrTemp)
|
||||
117: 20(int) IAdd 116 45
|
||||
118: 30(ptr) AccessChain 18(sbuf) 26 117
|
||||
119: 6(int) Load 118
|
||||
120: 19(int) Load 73(byteAddrTemp)
|
||||
121: 19(int) IAdd 120 24
|
||||
120: 20(int) Load 73(byteAddrTemp)
|
||||
121: 20(int) IAdd 120 24
|
||||
122: 30(ptr) AccessChain 18(sbuf) 26 121
|
||||
123: 6(int) Load 122
|
||||
124: 87(ivec3) CompositeConstruct 115 119 123
|
||||
@ -1203,97 +1199,97 @@ error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's ty
|
||||
127: 30(ptr) AccessChain 18(sbuf) 26 110
|
||||
Store 127 126
|
||||
129: 6(int) Load 11(pos)
|
||||
130: 19(int) ShiftRightLogical 129 24
|
||||
130: 20(int) ShiftRightLogical 129 24
|
||||
Store 128(byteAddrTemp) 130
|
||||
131: 19(int) Load 128(byteAddrTemp)
|
||||
131: 20(int) Load 128(byteAddrTemp)
|
||||
133: 6(int) Load 11(pos)
|
||||
134: 19(int) ShiftRightLogical 133 24
|
||||
134: 20(int) ShiftRightLogical 133 24
|
||||
Store 132(byteAddrTemp) 134
|
||||
135: 19(int) Load 132(byteAddrTemp)
|
||||
135: 20(int) Load 132(byteAddrTemp)
|
||||
136: 30(ptr) AccessChain 18(sbuf) 26 135
|
||||
137: 6(int) Load 136
|
||||
138: 19(int) Load 132(byteAddrTemp)
|
||||
139: 19(int) IAdd 138 45
|
||||
138: 20(int) Load 132(byteAddrTemp)
|
||||
139: 20(int) IAdd 138 45
|
||||
140: 30(ptr) AccessChain 18(sbuf) 26 139
|
||||
141: 6(int) Load 140
|
||||
142: 19(int) Load 132(byteAddrTemp)
|
||||
143: 19(int) IAdd 142 24
|
||||
142: 20(int) Load 132(byteAddrTemp)
|
||||
143: 20(int) IAdd 142 24
|
||||
144: 30(ptr) AccessChain 18(sbuf) 26 143
|
||||
145: 6(int) Load 144
|
||||
146: 19(int) Load 132(byteAddrTemp)
|
||||
148: 19(int) IAdd 146 147
|
||||
146: 20(int) Load 132(byteAddrTemp)
|
||||
148: 20(int) IAdd 146 147
|
||||
149: 30(ptr) AccessChain 18(sbuf) 26 148
|
||||
150: 6(int) Load 149
|
||||
152: 151(ivec4) CompositeConstruct 137 141 145 150
|
||||
153: 6(int) CompositeExtract 152 0
|
||||
154: 30(ptr) AccessChain 18(sbuf) 26 131
|
||||
Store 154 153
|
||||
155: 19(int) Load 128(byteAddrTemp)
|
||||
156: 19(int) IAdd 155 45
|
||||
155: 20(int) Load 128(byteAddrTemp)
|
||||
156: 20(int) IAdd 155 45
|
||||
157: 6(int) Load 11(pos)
|
||||
158: 19(int) ShiftRightLogical 157 24
|
||||
158: 20(int) ShiftRightLogical 157 24
|
||||
Store 132(byteAddrTemp) 158
|
||||
159: 19(int) Load 132(byteAddrTemp)
|
||||
159: 20(int) Load 132(byteAddrTemp)
|
||||
160: 30(ptr) AccessChain 18(sbuf) 26 159
|
||||
161: 6(int) Load 160
|
||||
162: 19(int) Load 132(byteAddrTemp)
|
||||
163: 19(int) IAdd 162 45
|
||||
162: 20(int) Load 132(byteAddrTemp)
|
||||
163: 20(int) IAdd 162 45
|
||||
164: 30(ptr) AccessChain 18(sbuf) 26 163
|
||||
165: 6(int) Load 164
|
||||
166: 19(int) Load 132(byteAddrTemp)
|
||||
167: 19(int) IAdd 166 24
|
||||
166: 20(int) Load 132(byteAddrTemp)
|
||||
167: 20(int) IAdd 166 24
|
||||
168: 30(ptr) AccessChain 18(sbuf) 26 167
|
||||
169: 6(int) Load 168
|
||||
170: 19(int) Load 132(byteAddrTemp)
|
||||
171: 19(int) IAdd 170 147
|
||||
170: 20(int) Load 132(byteAddrTemp)
|
||||
171: 20(int) IAdd 170 147
|
||||
172: 30(ptr) AccessChain 18(sbuf) 26 171
|
||||
173: 6(int) Load 172
|
||||
174: 151(ivec4) CompositeConstruct 161 165 169 173
|
||||
175: 6(int) CompositeExtract 174 1
|
||||
176: 30(ptr) AccessChain 18(sbuf) 26 156
|
||||
Store 176 175
|
||||
177: 19(int) Load 128(byteAddrTemp)
|
||||
178: 19(int) IAdd 177 24
|
||||
177: 20(int) Load 128(byteAddrTemp)
|
||||
178: 20(int) IAdd 177 24
|
||||
179: 6(int) Load 11(pos)
|
||||
180: 19(int) ShiftRightLogical 179 24
|
||||
180: 20(int) ShiftRightLogical 179 24
|
||||
Store 132(byteAddrTemp) 180
|
||||
181: 19(int) Load 132(byteAddrTemp)
|
||||
181: 20(int) Load 132(byteAddrTemp)
|
||||
182: 30(ptr) AccessChain 18(sbuf) 26 181
|
||||
183: 6(int) Load 182
|
||||
184: 19(int) Load 132(byteAddrTemp)
|
||||
185: 19(int) IAdd 184 45
|
||||
184: 20(int) Load 132(byteAddrTemp)
|
||||
185: 20(int) IAdd 184 45
|
||||
186: 30(ptr) AccessChain 18(sbuf) 26 185
|
||||
187: 6(int) Load 186
|
||||
188: 19(int) Load 132(byteAddrTemp)
|
||||
189: 19(int) IAdd 188 24
|
||||
188: 20(int) Load 132(byteAddrTemp)
|
||||
189: 20(int) IAdd 188 24
|
||||
190: 30(ptr) AccessChain 18(sbuf) 26 189
|
||||
191: 6(int) Load 190
|
||||
192: 19(int) Load 132(byteAddrTemp)
|
||||
193: 19(int) IAdd 192 147
|
||||
192: 20(int) Load 132(byteAddrTemp)
|
||||
193: 20(int) IAdd 192 147
|
||||
194: 30(ptr) AccessChain 18(sbuf) 26 193
|
||||
195: 6(int) Load 194
|
||||
196: 151(ivec4) CompositeConstruct 183 187 191 195
|
||||
197: 6(int) CompositeExtract 196 2
|
||||
198: 30(ptr) AccessChain 18(sbuf) 26 178
|
||||
Store 198 197
|
||||
199: 19(int) Load 128(byteAddrTemp)
|
||||
200: 19(int) IAdd 199 147
|
||||
199: 20(int) Load 128(byteAddrTemp)
|
||||
200: 20(int) IAdd 199 147
|
||||
201: 6(int) Load 11(pos)
|
||||
202: 19(int) ShiftRightLogical 201 24
|
||||
202: 20(int) ShiftRightLogical 201 24
|
||||
Store 132(byteAddrTemp) 202
|
||||
203: 19(int) Load 132(byteAddrTemp)
|
||||
203: 20(int) Load 132(byteAddrTemp)
|
||||
204: 30(ptr) AccessChain 18(sbuf) 26 203
|
||||
205: 6(int) Load 204
|
||||
206: 19(int) Load 132(byteAddrTemp)
|
||||
207: 19(int) IAdd 206 45
|
||||
206: 20(int) Load 132(byteAddrTemp)
|
||||
207: 20(int) IAdd 206 45
|
||||
208: 30(ptr) AccessChain 18(sbuf) 26 207
|
||||
209: 6(int) Load 208
|
||||
210: 19(int) Load 132(byteAddrTemp)
|
||||
211: 19(int) IAdd 210 24
|
||||
210: 20(int) Load 132(byteAddrTemp)
|
||||
211: 20(int) IAdd 210 24
|
||||
212: 30(ptr) AccessChain 18(sbuf) 26 211
|
||||
213: 6(int) Load 212
|
||||
214: 19(int) Load 132(byteAddrTemp)
|
||||
215: 19(int) IAdd 214 147
|
||||
214: 20(int) Load 132(byteAddrTemp)
|
||||
215: 20(int) IAdd 214 147
|
||||
216: 30(ptr) AccessChain 18(sbuf) 26 215
|
||||
217: 6(int) Load 216
|
||||
218: 151(ivec4) CompositeConstruct 205 209 213 217
|
||||
@ -1301,7 +1297,7 @@ error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's ty
|
||||
221: 30(ptr) AccessChain 18(sbuf) 26 200
|
||||
Store 221 220
|
||||
222: 6(int) Load 11(pos)
|
||||
223: 19(int) ShiftRightLogical 222 24
|
||||
223: 20(int) ShiftRightLogical 222 24
|
||||
224: 30(ptr) AccessChain 18(sbuf) 26 223
|
||||
225: 6(int) Load 224
|
||||
226: 8(float) ConvertUToF 225
|
||||
|
@ -1,8 +1,4 @@
|
||||
spv.150.geom
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: Capability GeometryStreams is not allowed by Vulkan 1.0 specification (or requires extension)
|
||||
OpCapability GeometryStreams
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 71
|
||||
|
@ -1,7 +1,7 @@
|
||||
spv.16bitstorage-int.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 171
|
||||
// Id's are bound by 172
|
||||
|
||||
Capability Shader
|
||||
Capability StorageUniformBufferBlock16
|
||||
@ -204,7 +204,10 @@ spv.16bitstorage-int.frag
|
||||
114: 20(int) Constant 7
|
||||
115: 20(int) Constant 6
|
||||
116: TypePointer Uniform 20(int)
|
||||
166: 39(ivec2) ConstantComposite 32 33
|
||||
166: 6(int16_t) Constant 1
|
||||
167: 6(int16_t) Constant 2
|
||||
168: 7(i16vec2) ConstantComposite 166 167
|
||||
170: 6(int16_t) Constant 3
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
69(x0): 68(ptr) Variable Function
|
||||
@ -324,11 +327,9 @@ spv.16bitstorage-int.frag
|
||||
164: 6(int16_t) Load 163
|
||||
165: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 165 164
|
||||
167: 7(i16vec2) SConvert 166
|
||||
168: 42(ptr) AccessChain 19(b2) 32
|
||||
Store 168 167
|
||||
169: 6(int16_t) SConvert 58
|
||||
170: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 170 169
|
||||
169: 42(ptr) AccessChain 19(b2) 32
|
||||
Store 169 168
|
||||
171: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 171 170
|
||||
Return
|
||||
FunctionEnd
|
||||
|
@ -205,8 +205,10 @@ spv.16bitstorage-uint.frag
|
||||
115: 20(int) Constant 7
|
||||
116: 20(int) Constant 6
|
||||
117: TypePointer Uniform 9(int)
|
||||
167: 39(ivec2) ConstantComposite 82 10
|
||||
170: 9(int) Constant 3
|
||||
167: 6(int16_t) Constant 1
|
||||
168: 6(int16_t) Constant 2
|
||||
169: 7(i16vec2) ConstantComposite 167 168
|
||||
171: 6(int16_t) Constant 3
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
69(x0): 68(ptr) Variable Function
|
||||
@ -326,10 +328,8 @@ spv.16bitstorage-uint.frag
|
||||
165: 6(int16_t) Load 164
|
||||
166: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 166 165
|
||||
168: 7(i16vec2) UConvert 167
|
||||
169: 42(ptr) AccessChain 19(b2) 32
|
||||
Store 169 168
|
||||
171: 6(int16_t) UConvert 170
|
||||
170: 42(ptr) AccessChain 19(b2) 32
|
||||
Store 170 169
|
||||
172: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 172 171
|
||||
Return
|
||||
|
@ -1,7 +1,7 @@
|
||||
spv.16bitstorage.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 173
|
||||
// Id's are bound by 172
|
||||
|
||||
Capability Shader
|
||||
Capability StorageUniformBufferBlock16
|
||||
@ -204,9 +204,10 @@ spv.16bitstorage.frag
|
||||
114: 20(int) Constant 7
|
||||
115: 20(int) Constant 6
|
||||
116: TypePointer Uniform 20(int)
|
||||
166: 37(float) Constant 1073741824
|
||||
167: 40(fvec2) ConstantComposite 83 166
|
||||
170: 37(float) Constant 1077936128
|
||||
166:6(float16_t) Constant 15360
|
||||
167:6(float16_t) Constant 16384
|
||||
168: 7(f16vec2) ConstantComposite 166 167
|
||||
170:6(float16_t) Constant 16896
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
70(x0): 69(ptr) Variable Function
|
||||
@ -326,11 +327,9 @@ spv.16bitstorage.frag
|
||||
164:6(float16_t) Load 163
|
||||
165: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 165 164
|
||||
168: 7(f16vec2) FConvert 167
|
||||
169: 43(ptr) AccessChain 19(b2) 32
|
||||
Store 169 168
|
||||
171:6(float16_t) FConvert 170
|
||||
172: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 172 171
|
||||
171: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 171 170
|
||||
Return
|
||||
FunctionEnd
|
||||
|
@ -1,14 +1,14 @@
|
||||
spv.310.comp
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 71
|
||||
// Id's are bound by 72
|
||||
|
||||
Capability Shader
|
||||
Capability DeviceGroup
|
||||
Extension "SPV_KHR_device_group"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main" 53 64
|
||||
EntryPoint GLCompute 4 "main" 53 65
|
||||
ExecutionMode 4 LocalSize 16 32 4
|
||||
Source ESSL 310
|
||||
SourceExtension "GL_EXT_device_group"
|
||||
@ -30,7 +30,7 @@ spv.310.comp
|
||||
MemberName 48(outs) 1 "va"
|
||||
Name 50 "outnames"
|
||||
Name 53 "gl_LocalInvocationID"
|
||||
Name 64 "gl_DeviceIndex"
|
||||
Name 65 "gl_DeviceIndex"
|
||||
Decorate 11 ArrayStride 16
|
||||
MemberDecorate 12(outb) 0 Offset 0
|
||||
MemberDecorate 12(outb) 1 Offset 4
|
||||
@ -48,8 +48,8 @@ spv.310.comp
|
||||
Decorate 48(outs) BufferBlock
|
||||
Decorate 50(outnames) DescriptorSet 0
|
||||
Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 64(gl_DeviceIndex) BuiltIn DeviceIndex
|
||||
Decorate 70 BuiltIn WorkgroupSize
|
||||
Decorate 65(gl_DeviceIndex) BuiltIn DeviceIndex
|
||||
Decorate 71 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
@ -89,15 +89,15 @@ spv.310.comp
|
||||
52: TypePointer Input 51(ivec3)
|
||||
53(gl_LocalInvocationID): 52(ptr) Variable Input
|
||||
54: TypePointer Input 6(int)
|
||||
61: TypePointer Uniform 15(int)
|
||||
63: TypePointer Input 15(int)
|
||||
64(gl_DeviceIndex): 63(ptr) Variable Input
|
||||
65: 6(int) Constant 1
|
||||
66: 6(int) Constant 3400
|
||||
67: 6(int) Constant 16
|
||||
68: 6(int) Constant 32
|
||||
69: 6(int) Constant 4
|
||||
70: 51(ivec3) ConstantComposite 67 68 69
|
||||
62: TypePointer Uniform 15(int)
|
||||
64: TypePointer Input 15(int)
|
||||
65(gl_DeviceIndex): 64(ptr) Variable Input
|
||||
66: 6(int) Constant 1
|
||||
67: 6(int) Constant 3400
|
||||
68: 6(int) Constant 16
|
||||
69: 6(int) Constant 32
|
||||
70: 6(int) Constant 4
|
||||
71: 51(ivec3) ConstantComposite 68 69 70
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
ControlBarrier 7 7 8
|
||||
@ -124,10 +124,11 @@ spv.310.comp
|
||||
58: 22(fvec4) CompositeConstruct 57 57 57 57
|
||||
59: 29(ptr) AccessChain 50(outnames) 26 56
|
||||
Store 59 58
|
||||
60: 15(int) ArrayLength 14(outbname) 3
|
||||
62: 61(ptr) AccessChain 50(outnames) 16
|
||||
Store 62 60
|
||||
MemoryBarrier 65 8
|
||||
MemoryBarrier 7 66
|
||||
60: 6(int) ArrayLength 14(outbname) 3
|
||||
61: 15(int) Bitcast 60
|
||||
63: 62(ptr) AccessChain 50(outnames) 16
|
||||
Store 63 61
|
||||
MemoryBarrier 66 8
|
||||
MemoryBarrier 7 67
|
||||
Return
|
||||
FunctionEnd
|
||||
|
@ -1,8 +1,4 @@
|
||||
spv.420.geom
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: Capability GeometryStreams is not allowed by Vulkan 1.0 specification (or requires extension)
|
||||
OpCapability GeometryStreams
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 72
|
||||
|
@ -1,7 +1,7 @@
|
||||
spv.8bitstorage-int.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 171
|
||||
// Id's are bound by 172
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityUniformAndStorageBuffer8BitAccess
|
||||
@ -203,7 +203,10 @@ spv.8bitstorage-int.frag
|
||||
114: 20(int) Constant 7
|
||||
115: 20(int) Constant 6
|
||||
116: TypePointer Uniform 20(int)
|
||||
166: 39(ivec2) ConstantComposite 32 33
|
||||
166: 6(int8_t) Constant 1
|
||||
167: 6(int8_t) Constant 2
|
||||
168: 7(i8vec2) ConstantComposite 166 167
|
||||
170: 6(int8_t) Constant 3
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
69(x0): 68(ptr) Variable Function
|
||||
@ -323,11 +326,9 @@ spv.8bitstorage-int.frag
|
||||
164: 6(int8_t) Load 163
|
||||
165: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 165 164
|
||||
167: 7(i8vec2) SConvert 166
|
||||
168: 42(ptr) AccessChain 19(b2) 32
|
||||
Store 168 167
|
||||
169: 6(int8_t) SConvert 58
|
||||
170: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 170 169
|
||||
169: 42(ptr) AccessChain 19(b2) 32
|
||||
Store 169 168
|
||||
171: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 171 170
|
||||
Return
|
||||
FunctionEnd
|
||||
|
@ -204,8 +204,10 @@ spv.8bitstorage-uint.frag
|
||||
115: 20(int) Constant 7
|
||||
116: 20(int) Constant 6
|
||||
117: TypePointer Uniform 9(int)
|
||||
167: 39(ivec2) ConstantComposite 82 10
|
||||
170: 9(int) Constant 3
|
||||
167: 6(int8_t) Constant 1
|
||||
168: 6(int8_t) Constant 2
|
||||
169: 7(i8vec2) ConstantComposite 167 168
|
||||
171: 6(int8_t) Constant 3
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
69(x0): 68(ptr) Variable Function
|
||||
@ -325,10 +327,8 @@ spv.8bitstorage-uint.frag
|
||||
165: 6(int8_t) Load 164
|
||||
166: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 166 165
|
||||
168: 7(i8vec2) UConvert 167
|
||||
169: 42(ptr) AccessChain 19(b2) 32
|
||||
Store 169 168
|
||||
171: 6(int8_t) UConvert 170
|
||||
170: 42(ptr) AccessChain 19(b2) 32
|
||||
Store 170 169
|
||||
172: 28(ptr) AccessChain 19(b2) 21
|
||||
Store 172 171
|
||||
Return
|
||||
|
@ -1,8 +1,4 @@
|
||||
spv.builtInXFB.vert
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: Capability TransformFeedback is not allowed by Vulkan 1.0 specification (or requires extension)
|
||||
OpCapability TransformFeedback
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 21
|
||||
|
45
3rdparty/glslang/Test/baseResults/spv.fragmentDensity-es.frag.out
vendored
Normal file
45
3rdparty/glslang/Test/baseResults/spv.fragmentDensity-es.frag.out
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
spv.fragmentDensity-es.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 18
|
||||
|
||||
Capability Shader
|
||||
Capability FragmentDensityEXT
|
||||
Extension "SPV_EXT_fragment_invocation_density"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 9 11 14 16
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source ESSL 310
|
||||
SourceExtension "GL_EXT_fragment_invocation_density"
|
||||
Name 4 "main"
|
||||
Name 9 "FragSize"
|
||||
Name 11 "gl_FragSizeEXT"
|
||||
Name 14 "FragInvocationCount"
|
||||
Name 16 "gl_FragInvocationCountEXT"
|
||||
Decorate 9(FragSize) Location 0
|
||||
Decorate 11(gl_FragSizeEXT) Flat
|
||||
Decorate 11(gl_FragSizeEXT) BuiltIn FragSizeEXT
|
||||
Decorate 14(FragInvocationCount) Location 2
|
||||
Decorate 16(gl_FragInvocationCountEXT) Flat
|
||||
Decorate 16(gl_FragInvocationCountEXT) BuiltIn FragInvocationCountEXT
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeVector 6(int) 2
|
||||
8: TypePointer Output 7(ivec2)
|
||||
9(FragSize): 8(ptr) Variable Output
|
||||
10: TypePointer Input 7(ivec2)
|
||||
11(gl_FragSizeEXT): 10(ptr) Variable Input
|
||||
13: TypePointer Output 6(int)
|
||||
14(FragInvocationCount): 13(ptr) Variable Output
|
||||
15: TypePointer Input 6(int)
|
||||
16(gl_FragInvocationCountEXT): 15(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12: 7(ivec2) Load 11(gl_FragSizeEXT)
|
||||
Store 9(FragSize) 12
|
||||
17: 6(int) Load 16(gl_FragInvocationCountEXT)
|
||||
Store 14(FragInvocationCount) 17
|
||||
Return
|
||||
FunctionEnd
|
7
3rdparty/glslang/Test/baseResults/spv.fragmentDensity-neg.frag.out
vendored
Normal file
7
3rdparty/glslang/Test/baseResults/spv.fragmentDensity-neg.frag.out
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
spv.fragmentDensity-neg.frag
|
||||
ERROR: 0:10: 'gl_FragSizeEXT' : required extension not requested: GL_EXT_fragment_invocation_density
|
||||
ERROR: 0:11: 'gl_FragInvocationCountEXT' : required extension not requested: GL_EXT_fragment_invocation_density
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
48
3rdparty/glslang/Test/baseResults/spv.fragmentDensity.frag.out
vendored
Normal file
48
3rdparty/glslang/Test/baseResults/spv.fragmentDensity.frag.out
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
spv.fragmentDensity.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 21
|
||||
|
||||
Capability Shader
|
||||
Capability FragmentDensityEXT
|
||||
Extension "SPV_EXT_fragment_invocation_density"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 9 13 17 19
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_EXT_fragment_invocation_density"
|
||||
Name 4 "main"
|
||||
Name 9 "FragSize"
|
||||
Name 13 "gl_FragSizeEXT"
|
||||
Name 17 "FragInvocationCount"
|
||||
Name 19 "gl_FragInvocationCountEXT"
|
||||
Decorate 9(FragSize) Location 0
|
||||
Decorate 13(gl_FragSizeEXT) Flat
|
||||
Decorate 13(gl_FragSizeEXT) BuiltIn FragSizeEXT
|
||||
Decorate 17(FragInvocationCount) Location 2
|
||||
Decorate 19(gl_FragInvocationCountEXT) Flat
|
||||
Decorate 19(gl_FragInvocationCountEXT) BuiltIn FragInvocationCountEXT
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 2
|
||||
8: TypePointer Output 7(fvec2)
|
||||
9(FragSize): 8(ptr) Variable Output
|
||||
10: TypeInt 32 1
|
||||
11: TypeVector 10(int) 2
|
||||
12: TypePointer Input 11(ivec2)
|
||||
13(gl_FragSizeEXT): 12(ptr) Variable Input
|
||||
16: TypePointer Output 10(int)
|
||||
17(FragInvocationCount): 16(ptr) Variable Output
|
||||
18: TypePointer Input 10(int)
|
||||
19(gl_FragInvocationCountEXT): 18(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
14: 11(ivec2) Load 13(gl_FragSizeEXT)
|
||||
15: 7(fvec2) ConvertSToF 14
|
||||
Store 9(FragSize) 15
|
||||
20: 10(int) Load 19(gl_FragInvocationCountEXT)
|
||||
Store 17(FragInvocationCount) 20
|
||||
Return
|
||||
FunctionEnd
|
9
3rdparty/glslang/Test/baseResults/spv.fragmentDensity.vert.out
vendored
Normal file
9
3rdparty/glslang/Test/baseResults/spv.fragmentDensity.vert.out
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
spv.fragmentDensity.vert
|
||||
ERROR: 0:10: 'gl_FragSizeEXT' : undeclared identifier
|
||||
ERROR: 0:10: 'assign' : cannot convert from ' temp float' to 'layout( location=0) smooth out highp 2-component vector of uint'
|
||||
ERROR: 0:11: 'gl_FragInvocationCountEXT' : undeclared identifier
|
||||
ERROR: 0:11: 'assign' : cannot convert from ' temp float' to 'layout( location=2) smooth out highp int'
|
||||
ERROR: 4 compilation errors. No code generated.
|
||||
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
@ -4,7 +4,7 @@ spv.shadingRate.frag
|
||||
// Id's are bound by 21
|
||||
|
||||
Capability Shader
|
||||
Capability ShadingRateNV
|
||||
Capability FragmentDensityEXT
|
||||
Extension "SPV_NV_shading_rate"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
@ -19,10 +19,10 @@ spv.shadingRate.frag
|
||||
Name 19 "gl_InvocationsPerPixelNV"
|
||||
Decorate 9(FragmentSize) Location 0
|
||||
Decorate 13(gl_FragmentSizeNV) Flat
|
||||
Decorate 13(gl_FragmentSizeNV) BuiltIn FragmentSizeNV
|
||||
Decorate 13(gl_FragmentSizeNV) BuiltIn FragSizeEXT
|
||||
Decorate 17(InvocationsPerPixel) Location 2
|
||||
Decorate 19(gl_InvocationsPerPixelNV) Flat
|
||||
Decorate 19(gl_InvocationsPerPixelNV) BuiltIn InvocationsPerPixelNV
|
||||
Decorate 19(gl_InvocationsPerPixelNV) BuiltIn FragInvocationCountEXT
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
@ -1,8 +1,4 @@
|
||||
spv.xfb.vert
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: Capability TransformFeedback is not allowed by Vulkan 1.0 specification (or requires extension)
|
||||
OpCapability TransformFeedback
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 16
|
||||
|
@ -1,8 +1,4 @@
|
||||
spv.xfb2.vert
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: Capability TransformFeedback is not allowed by Vulkan 1.0 specification (or requires extension)
|
||||
OpCapability TransformFeedback
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 35
|
||||
|
@ -1,8 +1,4 @@
|
||||
spv.xfb3.vert
|
||||
error: SPIRV-Tools Validation Errors
|
||||
error: Capability TransformFeedback is not allowed by Vulkan 1.0 specification (or requires extension)
|
||||
OpCapability TransformFeedback
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 35
|
||||
|
76
3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out
vendored
Normal file
76
3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
spv.xfbOffsetOnBlockMembersAssignment.vert
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 33
|
||||
|
||||
Capability Shader
|
||||
Capability TransformFeedback
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 10 27 31 32
|
||||
ExecutionMode 4 Xfb
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "block2"
|
||||
MemberName 8(block2) 0 "y1_out"
|
||||
MemberName 8(block2) 1 "y2_out"
|
||||
Name 10 ""
|
||||
Name 25 "gl_PerVertex"
|
||||
MemberName 25(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 25(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 25(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
MemberName 25(gl_PerVertex) 3 "gl_CullDistance"
|
||||
Name 27 ""
|
||||
Name 31 "gl_VertexID"
|
||||
Name 32 "gl_InstanceID"
|
||||
MemberDecorate 8(block2) 0 Offset 0
|
||||
MemberDecorate 8(block2) 1 Offset 4
|
||||
Decorate 8(block2) Block
|
||||
Decorate 10 Location 5
|
||||
Decorate 10 XfbBuffer 2
|
||||
Decorate 10 XfbStride 20
|
||||
MemberDecorate 25(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 25(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 25(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
MemberDecorate 25(gl_PerVertex) 3 BuiltIn CullDistance
|
||||
Decorate 25(gl_PerVertex) Block
|
||||
Decorate 27 XfbBuffer 0
|
||||
Decorate 27 XfbStride 0
|
||||
Decorate 31(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 32(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8(block2): TypeStruct 6(float) 7(fvec4)
|
||||
9: TypePointer Output 8(block2)
|
||||
10: 9(ptr) Variable Output
|
||||
11: TypeInt 32 1
|
||||
12: 11(int) Constant 0
|
||||
13: 6(float) Constant 1088421888
|
||||
14: TypePointer Output 6(float)
|
||||
16: 11(int) Constant 1
|
||||
17: 6(float) Constant 1065353216
|
||||
18: 6(float) Constant 0
|
||||
19: 7(fvec4) ConstantComposite 17 18 18 17
|
||||
20: TypePointer Output 7(fvec4)
|
||||
22: TypeInt 32 0
|
||||
23: 22(int) Constant 1
|
||||
24: TypeArray 6(float) 23
|
||||
25(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 24 24
|
||||
26: TypePointer Output 25(gl_PerVertex)
|
||||
27: 26(ptr) Variable Output
|
||||
28: 7(fvec4) ConstantComposite 18 18 18 18
|
||||
30: TypePointer Input 11(int)
|
||||
31(gl_VertexID): 30(ptr) Variable Input
|
||||
32(gl_InstanceID): 30(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
15: 14(ptr) AccessChain 10 12
|
||||
Store 15 13
|
||||
21: 20(ptr) AccessChain 10 16
|
||||
Store 21 19
|
||||
29: 20(ptr) AccessChain 27 12
|
||||
Store 29 28
|
||||
Return
|
||||
FunctionEnd
|
88
3rdparty/glslang/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out
vendored
Normal file
88
3rdparty/glslang/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out
vendored
Normal file
@ -0,0 +1,88 @@
|
||||
spv.xfbOverlapOffsetCheckWithBlockAndMember.vert
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 39
|
||||
|
||||
Capability Shader
|
||||
Capability TransformFeedback
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 10 33 37 38
|
||||
ExecutionMode 4 Xfb
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "block2"
|
||||
MemberName 8(block2) 0 "v"
|
||||
MemberName 8(block2) 1 "u"
|
||||
MemberName 8(block2) 2 "w"
|
||||
MemberName 8(block2) 3 "x"
|
||||
Name 10 ""
|
||||
Name 31 "gl_PerVertex"
|
||||
MemberName 31(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 31(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 31(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
MemberName 31(gl_PerVertex) 3 "gl_CullDistance"
|
||||
Name 33 ""
|
||||
Name 37 "gl_VertexID"
|
||||
Name 38 "gl_InstanceID"
|
||||
MemberDecorate 8(block2) 0 Offset 12
|
||||
MemberDecorate 8(block2) 1 Offset 28
|
||||
MemberDecorate 8(block2) 2 Offset 40
|
||||
MemberDecorate 8(block2) 3 Offset 56
|
||||
Decorate 8(block2) Block
|
||||
Decorate 10 Location 5
|
||||
Decorate 10 XfbBuffer 3
|
||||
Decorate 10 XfbStride 72
|
||||
MemberDecorate 31(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 31(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 31(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
MemberDecorate 31(gl_PerVertex) 3 BuiltIn CullDistance
|
||||
Decorate 31(gl_PerVertex) Block
|
||||
Decorate 33 XfbBuffer 0
|
||||
Decorate 33 XfbStride 0
|
||||
Decorate 37(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 38(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8(block2): TypeStruct 7(fvec4) 6(float) 7(fvec4) 7(fvec4)
|
||||
9: TypePointer Output 8(block2)
|
||||
10: 9(ptr) Variable Output
|
||||
11: TypeInt 32 1
|
||||
12: 11(int) Constant 0
|
||||
13: 6(float) Constant 1065353216
|
||||
14: 6(float) Constant 0
|
||||
15: 7(fvec4) ConstantComposite 13 14 13 14
|
||||
16: TypePointer Output 7(fvec4)
|
||||
18: 11(int) Constant 1
|
||||
19: 6(float) Constant 1084227584
|
||||
20: TypePointer Output 6(float)
|
||||
22: 11(int) Constant 2
|
||||
23: 7(fvec4) ConstantComposite 13 14 14 13
|
||||
25: 11(int) Constant 3
|
||||
26: 7(fvec4) ConstantComposite 19 14 14 14
|
||||
28: TypeInt 32 0
|
||||
29: 28(int) Constant 1
|
||||
30: TypeArray 6(float) 29
|
||||
31(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 30 30
|
||||
32: TypePointer Output 31(gl_PerVertex)
|
||||
33: 32(ptr) Variable Output
|
||||
34: 7(fvec4) ConstantComposite 14 14 14 14
|
||||
36: TypePointer Input 11(int)
|
||||
37(gl_VertexID): 36(ptr) Variable Input
|
||||
38(gl_InstanceID): 36(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
17: 16(ptr) AccessChain 10 12
|
||||
Store 17 15
|
||||
21: 20(ptr) AccessChain 10 18
|
||||
Store 21 19
|
||||
24: 16(ptr) AccessChain 10 22
|
||||
Store 24 23
|
||||
27: 16(ptr) AccessChain 10 25
|
||||
Store 27 26
|
||||
35: 16(ptr) AccessChain 33 12
|
||||
Store 35 34
|
||||
Return
|
||||
FunctionEnd
|
74
3rdparty/glslang/Test/baseResults/spv.xfbStrideJustOnce.vert.out
vendored
Normal file
74
3rdparty/glslang/Test/baseResults/spv.xfbStrideJustOnce.vert.out
vendored
Normal file
@ -0,0 +1,74 @@
|
||||
spv.xfbStrideJustOnce.vert
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 33
|
||||
|
||||
Capability Shader
|
||||
Capability TransformFeedback
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 10 27 31 32
|
||||
ExecutionMode 4 Xfb
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "block"
|
||||
MemberName 8(block) 0 "y1_out"
|
||||
MemberName 8(block) 1 "y2_out"
|
||||
Name 10 ""
|
||||
Name 25 "gl_PerVertex"
|
||||
MemberName 25(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 25(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 25(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
MemberName 25(gl_PerVertex) 3 "gl_CullDistance"
|
||||
Name 27 ""
|
||||
Name 31 "gl_VertexID"
|
||||
Name 32 "gl_InstanceID"
|
||||
Decorate 8(block) Block
|
||||
Decorate 10 Location 5
|
||||
Decorate 10 XfbBuffer 2
|
||||
Decorate 10 XfbStride 20
|
||||
MemberDecorate 25(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 25(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 25(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
MemberDecorate 25(gl_PerVertex) 3 BuiltIn CullDistance
|
||||
Decorate 25(gl_PerVertex) Block
|
||||
Decorate 27 XfbBuffer 0
|
||||
Decorate 27 XfbStride 0
|
||||
Decorate 31(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 32(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8(block): TypeStruct 6(float) 7(fvec4)
|
||||
9: TypePointer Output 8(block)
|
||||
10: 9(ptr) Variable Output
|
||||
11: TypeInt 32 1
|
||||
12: 11(int) Constant 0
|
||||
13: 6(float) Constant 1088421888
|
||||
14: TypePointer Output 6(float)
|
||||
16: 11(int) Constant 1
|
||||
17: 6(float) Constant 1065353216
|
||||
18: 6(float) Constant 0
|
||||
19: 7(fvec4) ConstantComposite 17 18 18 17
|
||||
20: TypePointer Output 7(fvec4)
|
||||
22: TypeInt 32 0
|
||||
23: 22(int) Constant 1
|
||||
24: TypeArray 6(float) 23
|
||||
25(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 24 24
|
||||
26: TypePointer Output 25(gl_PerVertex)
|
||||
27: 26(ptr) Variable Output
|
||||
28: 7(fvec4) ConstantComposite 18 18 18 18
|
||||
30: TypePointer Input 11(int)
|
||||
31(gl_VertexID): 30(ptr) Variable Input
|
||||
32(gl_InstanceID): 30(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
15: 14(ptr) AccessChain 10 12
|
||||
Store 15 13
|
||||
21: 20(ptr) AccessChain 10 16
|
||||
Store 21 19
|
||||
29: 20(ptr) AccessChain 27 12
|
||||
Store 29 28
|
||||
Return
|
||||
FunctionEnd
|
48
3rdparty/glslang/Test/constantUnaryConversion.comp
vendored
Normal file
48
3rdparty/glslang/Test/constantUnaryConversion.comp
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
#version 450
|
||||
|
||||
#extension GL_KHX_shader_explicit_arithmetic_types : require
|
||||
|
||||
const bool bool_init = true;
|
||||
const int8_t int8_t_init = int8_t(-1);
|
||||
const int16_t int16_t_init = int16_t(-2);
|
||||
const int32_t int32_t_init = int32_t(-3);
|
||||
const int64_t int64_t_init = int64_t(-4);
|
||||
const uint8_t uint8_t_init = uint8_t(1);
|
||||
const uint16_t uint16_t_init = uint16_t(2);
|
||||
const uint32_t uint32_t_init = uint32_t(3);
|
||||
const uint64_t uint64_t_init = uint64_t(4);
|
||||
const float16_t float16_t_init = float16_t(42.0);
|
||||
const float32_t float32_t_init = float32_t(13.0);
|
||||
const float64_t float64_t_init = float64_t(-4.0);
|
||||
|
||||
#define TYPE_TO_TYPE(x, y) \
|
||||
const x y##_to_##x = x(y##_init)
|
||||
|
||||
#define TYPE_TO(x) \
|
||||
TYPE_TO_TYPE(x, bool); \
|
||||
TYPE_TO_TYPE(x, int8_t); \
|
||||
TYPE_TO_TYPE(x, int16_t); \
|
||||
TYPE_TO_TYPE(x, int32_t); \
|
||||
TYPE_TO_TYPE(x, int64_t); \
|
||||
TYPE_TO_TYPE(x, uint8_t); \
|
||||
TYPE_TO_TYPE(x, uint16_t); \
|
||||
TYPE_TO_TYPE(x, uint32_t); \
|
||||
TYPE_TO_TYPE(x, uint64_t); \
|
||||
TYPE_TO_TYPE(x, float16_t); \
|
||||
TYPE_TO_TYPE(x, float32_t); \
|
||||
TYPE_TO_TYPE(x, float64_t)
|
||||
|
||||
TYPE_TO(bool);
|
||||
TYPE_TO(int8_t);
|
||||
TYPE_TO(int16_t);
|
||||
TYPE_TO(int32_t);
|
||||
TYPE_TO(int64_t);
|
||||
TYPE_TO(uint8_t);
|
||||
TYPE_TO(uint16_t);
|
||||
TYPE_TO(uint32_t);
|
||||
TYPE_TO(uint64_t);
|
||||
TYPE_TO(float16_t);
|
||||
TYPE_TO(float32_t);
|
||||
TYPE_TO(float64_t);
|
||||
|
||||
void main() {}
|
11
3rdparty/glslang/Test/spv.fragmentDensity-es.frag
vendored
Normal file
11
3rdparty/glslang/Test/spv.fragmentDensity-es.frag
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
#version 310 es
|
||||
|
||||
#extension GL_EXT_fragment_invocation_density : require
|
||||
|
||||
layout (location = 0) out highp ivec2 FragSize;
|
||||
layout (location = 2) out highp int FragInvocationCount;
|
||||
|
||||
void main () {
|
||||
FragSize = gl_FragSizeEXT;
|
||||
FragInvocationCount = gl_FragInvocationCountEXT;
|
||||
}
|
12
3rdparty/glslang/Test/spv.fragmentDensity-neg.frag
vendored
Normal file
12
3rdparty/glslang/Test/spv.fragmentDensity-neg.frag
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
#version 450
|
||||
|
||||
//make sure the builtins don't exist if the extension isn't enabled.
|
||||
//#extension GL_EXT_fragment_invocation_density : require
|
||||
|
||||
layout (location = 0) out vec2 FragSize;
|
||||
layout (location = 2) out int FragInvocationCount;
|
||||
|
||||
void main () {
|
||||
FragSize = gl_FragSizeEXT;
|
||||
FragInvocationCount = gl_FragInvocationCountEXT;
|
||||
}
|
11
3rdparty/glslang/Test/spv.fragmentDensity.frag
vendored
Normal file
11
3rdparty/glslang/Test/spv.fragmentDensity.frag
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
#version 450
|
||||
|
||||
#extension GL_EXT_fragment_invocation_density : require
|
||||
|
||||
layout (location = 0) out vec2 FragSize;
|
||||
layout (location = 2) out int FragInvocationCount;
|
||||
|
||||
void main () {
|
||||
FragSize = gl_FragSizeEXT;
|
||||
FragInvocationCount = gl_FragInvocationCountEXT;
|
||||
}
|
12
3rdparty/glslang/Test/spv.fragmentDensity.vert
vendored
Normal file
12
3rdparty/glslang/Test/spv.fragmentDensity.vert
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
#version 450
|
||||
|
||||
// try using a fragment-only extension in a vertex shader
|
||||
#extension GL_EXT_fragment_invocation_density : require
|
||||
|
||||
layout (location = 0) out uvec2 FragSize;
|
||||
layout (location = 2) out int FragInvocationCount;
|
||||
|
||||
void main () {
|
||||
FragSize = gl_FragSizeEXT;
|
||||
FragInvocationCount = gl_FragInvocationCountEXT;
|
||||
}
|
13
3rdparty/glslang/Test/spv.xfbOffsetOnBlockMembersAssignment.vert
vendored
Normal file
13
3rdparty/glslang/Test/spv.xfbOffsetOnBlockMembersAssignment.vert
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
#version 450
|
||||
|
||||
layout(xfb_buffer=2) out;
|
||||
layout(location=5, xfb_offset=0) out block2 {
|
||||
float y1_out;
|
||||
vec4 y2_out;
|
||||
};
|
||||
|
||||
void main() {
|
||||
y1_out = 7.0;
|
||||
y2_out = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
gl_Position = vec4(0.0);
|
||||
}
|
19
3rdparty/glslang/Test/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert
vendored
Normal file
19
3rdparty/glslang/Test/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
#version 450
|
||||
|
||||
/* block definition from GLSL spec 4.60, section 4.4.2, Output Layout Qualifiers */
|
||||
|
||||
layout(location=5, xfb_buffer = 3, xfb_offset = 12) out block2 {
|
||||
vec4 v; // v will be written to byte offsets 12 through 27 of buffer
|
||||
float u; // u will be written to offset 28
|
||||
layout(xfb_offset = 40) vec4 w;
|
||||
vec4 x; // x will be written to offset 56, the next available offset
|
||||
};
|
||||
|
||||
void main() {
|
||||
v = vec4(1.0, 0.0, 1.0, 0.0);
|
||||
u = 5.0;
|
||||
w = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
x = vec4(5.0, 0.0, 0.0, 0.0);
|
||||
|
||||
gl_Position = vec4(0.0);
|
||||
}
|
14
3rdparty/glslang/Test/spv.xfbStrideJustOnce.vert
vendored
Normal file
14
3rdparty/glslang/Test/spv.xfbStrideJustOnce.vert
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
#version 450
|
||||
|
||||
layout(xfb_buffer=2) out;
|
||||
|
||||
layout(location=5, xfb_stride=20) out block {
|
||||
float y1_out;
|
||||
vec4 y2_out;
|
||||
};
|
||||
|
||||
void main() {
|
||||
y1_out = 7.0;
|
||||
y2_out = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
gl_Position = vec4(0.0);
|
||||
}
|
6
3rdparty/glslang/glslang/Include/BaseTypes.h
vendored
6
3rdparty/glslang/glslang/Include/BaseTypes.h
vendored
@ -232,6 +232,9 @@ enum TBuiltInVariable {
|
||||
EbvViewIndex,
|
||||
EbvDeviceIndex,
|
||||
|
||||
EbvFragSizeEXT,
|
||||
EbvFragInvocationCountEXT,
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
EbvViewportMaskNV,
|
||||
EbvSecondaryPositionNV,
|
||||
@ -404,6 +407,9 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
|
||||
case EbvViewIndex: return "ViewIndex";
|
||||
case EbvDeviceIndex: return "DeviceIndex";
|
||||
|
||||
case EbvFragSizeEXT: return "FragSizeEXT";
|
||||
case EbvFragInvocationCountEXT: return "FragInvocationCountEXT";
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
case EbvViewportMaskNV: return "ViewportMaskNV";
|
||||
case EbvSecondaryPositionNV: return "SecondaryPositionNV";
|
||||
|
2
3rdparty/glslang/glslang/Include/revision.h
vendored
2
3rdparty/glslang/glslang/Include/revision.h
vendored
@ -1,3 +1,3 @@
|
||||
// This header is generated by the make-revision script.
|
||||
|
||||
#define GLSLANG_PATCH_LEVEL 2992
|
||||
#define GLSLANG_PATCH_LEVEL 3009
|
||||
|
273
3rdparty/glslang/glslang/MachineIndependent/Constant.cpp
vendored
Normal file → Executable file
273
3rdparty/glslang/glslang/MachineIndependent/Constant.cpp
vendored
Normal file → Executable file
@ -670,6 +670,279 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
|
||||
break;
|
||||
}
|
||||
|
||||
case EOpConvInt8ToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getI8Const() != 0); break;
|
||||
case EOpConvUint8ToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getU8Const() != 0); break;
|
||||
case EOpConvInt16ToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getI16Const() != 0); break;
|
||||
case EOpConvUint16ToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getU16Const() != 0); break;
|
||||
case EOpConvIntToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getIConst() != 0); break;
|
||||
case EOpConvUintToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getUConst() != 0); break;
|
||||
case EOpConvInt64ToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getI64Const() != 0); break;
|
||||
case EOpConvUint64ToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getI64Const() != 0); break;
|
||||
case EOpConvFloat16ToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getDConst() != 0); break;
|
||||
case EOpConvFloatToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getDConst() != 0); break;
|
||||
case EOpConvDoubleToBool:
|
||||
newConstArray[i].setBConst(unionArray[i].getDConst() != 0); break;
|
||||
|
||||
case EOpConvBoolToInt8:
|
||||
newConstArray[i].setI8Const(unionArray[i].getBConst()); break;
|
||||
case EOpConvBoolToUint8:
|
||||
newConstArray[i].setU8Const(unionArray[i].getBConst()); break;
|
||||
case EOpConvBoolToInt16:
|
||||
newConstArray[i].setI16Const(unionArray[i].getBConst()); break;
|
||||
case EOpConvBoolToUint16:
|
||||
newConstArray[i].setU16Const(unionArray[i].getBConst()); break;
|
||||
case EOpConvBoolToInt:
|
||||
newConstArray[i].setIConst(unionArray[i].getBConst()); break;
|
||||
case EOpConvBoolToUint:
|
||||
newConstArray[i].setUConst(unionArray[i].getBConst()); break;
|
||||
case EOpConvBoolToInt64:
|
||||
newConstArray[i].setI64Const(unionArray[i].getBConst()); break;
|
||||
case EOpConvBoolToUint64:
|
||||
newConstArray[i].setU64Const(unionArray[i].getBConst()); break;
|
||||
case EOpConvBoolToFloat16:
|
||||
newConstArray[i].setDConst(unionArray[i].getBConst()); break;
|
||||
case EOpConvBoolToFloat:
|
||||
newConstArray[i].setDConst(unionArray[i].getBConst()); break;
|
||||
case EOpConvBoolToDouble:
|
||||
newConstArray[i].setDConst(unionArray[i].getBConst()); break;
|
||||
|
||||
case EOpConvInt8ToInt16:
|
||||
newConstArray[i].setI16Const(unionArray[i].getI8Const()); break;
|
||||
case EOpConvInt8ToInt:
|
||||
newConstArray[i].setIConst(unionArray[i].getI8Const()); break;
|
||||
case EOpConvInt8ToInt64:
|
||||
newConstArray[i].setI64Const(unionArray[i].getI8Const()); break;
|
||||
case EOpConvInt8ToUint8:
|
||||
newConstArray[i].setU8Const(unionArray[i].getI8Const()); break;
|
||||
case EOpConvInt8ToUint16:
|
||||
newConstArray[i].setU16Const(unionArray[i].getI8Const()); break;
|
||||
case EOpConvInt8ToUint:
|
||||
newConstArray[i].setUConst(unionArray[i].getI8Const()); break;
|
||||
case EOpConvInt8ToUint64:
|
||||
newConstArray[i].setU64Const(unionArray[i].getI8Const()); break;
|
||||
case EOpConvUint8ToInt8:
|
||||
newConstArray[i].setI8Const(unionArray[i].getU8Const()); break;
|
||||
case EOpConvUint8ToInt16:
|
||||
newConstArray[i].setI16Const(unionArray[i].getU8Const()); break;
|
||||
case EOpConvUint8ToInt:
|
||||
newConstArray[i].setIConst(unionArray[i].getU8Const()); break;
|
||||
case EOpConvUint8ToInt64:
|
||||
newConstArray[i].setI64Const(unionArray[i].getU8Const()); break;
|
||||
case EOpConvUint8ToUint16:
|
||||
newConstArray[i].setU16Const(unionArray[i].getU8Const()); break;
|
||||
case EOpConvUint8ToUint:
|
||||
newConstArray[i].setUConst(unionArray[i].getU8Const()); break;
|
||||
case EOpConvUint8ToUint64:
|
||||
newConstArray[i].setU64Const(unionArray[i].getU8Const()); break;
|
||||
case EOpConvInt8ToFloat16:
|
||||
newConstArray[i].setDConst(unionArray[i].getI8Const()); break;
|
||||
case EOpConvInt8ToFloat:
|
||||
newConstArray[i].setDConst(unionArray[i].getI8Const()); break;
|
||||
case EOpConvInt8ToDouble:
|
||||
newConstArray[i].setDConst(unionArray[i].getI8Const()); break;
|
||||
case EOpConvUint8ToFloat16:
|
||||
newConstArray[i].setDConst(unionArray[i].getU8Const()); break;
|
||||
case EOpConvUint8ToFloat:
|
||||
newConstArray[i].setDConst(unionArray[i].getU8Const()); break;
|
||||
case EOpConvUint8ToDouble:
|
||||
newConstArray[i].setDConst(unionArray[i].getU8Const()); break;
|
||||
|
||||
case EOpConvInt16ToInt8:
|
||||
newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getI16Const())); break;
|
||||
case EOpConvInt16ToInt:
|
||||
newConstArray[i].setIConst(unionArray[i].getI16Const()); break;
|
||||
case EOpConvInt16ToInt64:
|
||||
newConstArray[i].setI64Const(unionArray[i].getI16Const()); break;
|
||||
case EOpConvInt16ToUint8:
|
||||
newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getI16Const())); break;
|
||||
case EOpConvInt16ToUint16:
|
||||
newConstArray[i].setU16Const(unionArray[i].getI16Const()); break;
|
||||
case EOpConvInt16ToUint:
|
||||
newConstArray[i].setUConst(unionArray[i].getI16Const()); break;
|
||||
case EOpConvInt16ToUint64:
|
||||
newConstArray[i].setU64Const(unionArray[i].getI16Const()); break;
|
||||
case EOpConvUint16ToInt8:
|
||||
newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getU16Const())); break;
|
||||
case EOpConvUint16ToInt16:
|
||||
newConstArray[i].setI16Const(unionArray[i].getU16Const()); break;
|
||||
case EOpConvUint16ToInt:
|
||||
newConstArray[i].setIConst(unionArray[i].getU16Const()); break;
|
||||
case EOpConvUint16ToInt64:
|
||||
newConstArray[i].setI64Const(unionArray[i].getU16Const()); break;
|
||||
case EOpConvUint16ToUint8:
|
||||
newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getU16Const())); break;
|
||||
|
||||
case EOpConvUint16ToUint:
|
||||
newConstArray[i].setUConst(unionArray[i].getU16Const()); break;
|
||||
case EOpConvUint16ToUint64:
|
||||
newConstArray[i].setU64Const(unionArray[i].getU16Const()); break;
|
||||
case EOpConvInt16ToFloat16:
|
||||
newConstArray[i].setDConst(unionArray[i].getI16Const()); break;
|
||||
case EOpConvInt16ToFloat:
|
||||
newConstArray[i].setDConst(unionArray[i].getI16Const()); break;
|
||||
case EOpConvInt16ToDouble:
|
||||
newConstArray[i].setDConst(unionArray[i].getI16Const()); break;
|
||||
case EOpConvUint16ToFloat16:
|
||||
newConstArray[i].setDConst(unionArray[i].getU16Const()); break;
|
||||
case EOpConvUint16ToFloat:
|
||||
newConstArray[i].setDConst(unionArray[i].getU16Const()); break;
|
||||
case EOpConvUint16ToDouble:
|
||||
newConstArray[i].setDConst(unionArray[i].getU16Const()); break;
|
||||
|
||||
case EOpConvIntToInt8:
|
||||
newConstArray[i].setI8Const(unionArray[i].getIConst()); break;
|
||||
case EOpConvIntToInt16:
|
||||
newConstArray[i].setI16Const(unionArray[i].getIConst()); break;
|
||||
case EOpConvIntToInt64:
|
||||
newConstArray[i].setI64Const(unionArray[i].getIConst()); break;
|
||||
case EOpConvIntToUint8:
|
||||
newConstArray[i].setU8Const(unionArray[i].getIConst()); break;
|
||||
case EOpConvIntToUint16:
|
||||
newConstArray[i].setU16Const(unionArray[i].getIConst()); break;
|
||||
case EOpConvIntToUint:
|
||||
newConstArray[i].setUConst(unionArray[i].getIConst()); break;
|
||||
case EOpConvIntToUint64:
|
||||
newConstArray[i].setU64Const(unionArray[i].getIConst()); break;
|
||||
|
||||
case EOpConvUintToInt8:
|
||||
newConstArray[i].setI8Const(unionArray[i].getUConst()); break;
|
||||
case EOpConvUintToInt16:
|
||||
newConstArray[i].setI16Const(unionArray[i].getUConst()); break;
|
||||
case EOpConvUintToInt:
|
||||
newConstArray[i].setIConst(unionArray[i].getUConst()); break;
|
||||
case EOpConvUintToInt64:
|
||||
newConstArray[i].setI64Const(unionArray[i].getUConst()); break;
|
||||
case EOpConvUintToUint8:
|
||||
newConstArray[i].setU8Const(unionArray[i].getUConst()); break;
|
||||
case EOpConvUintToUint16:
|
||||
newConstArray[i].setU16Const(unionArray[i].getUConst()); break;
|
||||
case EOpConvUintToUint64:
|
||||
newConstArray[i].setU64Const(unionArray[i].getUConst()); break;
|
||||
case EOpConvIntToFloat16:
|
||||
newConstArray[i].setDConst(unionArray[i].getIConst()); break;
|
||||
case EOpConvIntToFloat:
|
||||
newConstArray[i].setDConst(unionArray[i].getIConst()); break;
|
||||
case EOpConvIntToDouble:
|
||||
newConstArray[i].setDConst(unionArray[i].getIConst()); break;
|
||||
case EOpConvUintToFloat16:
|
||||
newConstArray[i].setDConst(unionArray[i].getUConst()); break;
|
||||
case EOpConvUintToFloat:
|
||||
newConstArray[i].setDConst(unionArray[i].getUConst()); break;
|
||||
case EOpConvUintToDouble:
|
||||
newConstArray[i].setDConst(unionArray[i].getUConst()); break;
|
||||
case EOpConvInt64ToInt8:
|
||||
newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getI64Const())); break;
|
||||
case EOpConvInt64ToInt16:
|
||||
newConstArray[i].setI16Const(static_cast<int16_t>(unionArray[i].getI64Const())); break;
|
||||
case EOpConvInt64ToInt:
|
||||
newConstArray[i].setIConst(static_cast<int32_t>(unionArray[i].getI64Const())); break;
|
||||
case EOpConvInt64ToUint8:
|
||||
newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getI64Const())); break;
|
||||
case EOpConvInt64ToUint16:
|
||||
newConstArray[i].setU16Const(static_cast<uint16_t>(unionArray[i].getI64Const())); break;
|
||||
case EOpConvInt64ToUint:
|
||||
newConstArray[i].setUConst(static_cast<uint32_t>(unionArray[i].getI64Const())); break;
|
||||
case EOpConvInt64ToUint64:
|
||||
newConstArray[i].setU64Const(unionArray[i].getI64Const()); break;
|
||||
case EOpConvUint64ToInt8:
|
||||
newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getU64Const())); break;
|
||||
case EOpConvUint64ToInt16:
|
||||
newConstArray[i].setI16Const(static_cast<int16_t>(unionArray[i].getU64Const())); break;
|
||||
case EOpConvUint64ToInt:
|
||||
newConstArray[i].setIConst(static_cast<int32_t>(unionArray[i].getU64Const())); break;
|
||||
case EOpConvUint64ToInt64:
|
||||
newConstArray[i].setI64Const(unionArray[i].getU64Const()); break;
|
||||
case EOpConvUint64ToUint8:
|
||||
newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getU64Const())); break;
|
||||
case EOpConvUint64ToUint16:
|
||||
newConstArray[i].setU16Const(static_cast<uint16_t>(unionArray[i].getU64Const())); break;
|
||||
case EOpConvUint64ToUint:
|
||||
newConstArray[i].setUConst(static_cast<uint32_t>(unionArray[i].getU64Const())); break;
|
||||
case EOpConvInt64ToFloat16:
|
||||
newConstArray[i].setDConst(static_cast<double>(unionArray[i].getI64Const())); break;
|
||||
case EOpConvInt64ToFloat:
|
||||
newConstArray[i].setDConst(static_cast<double>(unionArray[i].getI64Const())); break;
|
||||
case EOpConvInt64ToDouble:
|
||||
newConstArray[i].setDConst(static_cast<double>(unionArray[i].getI64Const())); break;
|
||||
case EOpConvUint64ToFloat16:
|
||||
newConstArray[i].setDConst(static_cast<double>(unionArray[i].getU64Const())); break;
|
||||
case EOpConvUint64ToFloat:
|
||||
newConstArray[i].setDConst(static_cast<double>(unionArray[i].getU64Const())); break;
|
||||
case EOpConvUint64ToDouble:
|
||||
newConstArray[i].setDConst(static_cast<double>(unionArray[i].getU64Const())); break;
|
||||
case EOpConvFloat16ToInt8:
|
||||
newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloat16ToInt16:
|
||||
newConstArray[i].setI16Const(static_cast<int16_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloat16ToInt:
|
||||
newConstArray[i].setIConst(static_cast<int32_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloat16ToInt64:
|
||||
newConstArray[i].setI64Const(static_cast<int64_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloat16ToUint8:
|
||||
newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloat16ToUint16:
|
||||
newConstArray[i].setU16Const(static_cast<uint16_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloat16ToUint:
|
||||
newConstArray[i].setUConst(static_cast<uint32_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloat16ToUint64:
|
||||
newConstArray[i].setU64Const(static_cast<uint64_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloat16ToFloat:
|
||||
newConstArray[i].setDConst(unionArray[i].getDConst()); break;
|
||||
case EOpConvFloat16ToDouble:
|
||||
newConstArray[i].setDConst(unionArray[i].getDConst()); break;
|
||||
case EOpConvFloatToInt8:
|
||||
newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloatToInt16:
|
||||
newConstArray[i].setI16Const(static_cast<int16_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloatToInt:
|
||||
newConstArray[i].setIConst(static_cast<int32_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloatToInt64:
|
||||
newConstArray[i].setI64Const(static_cast<int64_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloatToUint8:
|
||||
newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloatToUint16:
|
||||
newConstArray[i].setU16Const(static_cast<uint16_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloatToUint:
|
||||
newConstArray[i].setUConst(static_cast<uint32_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloatToUint64:
|
||||
newConstArray[i].setU64Const(static_cast<uint64_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvFloatToFloat16:
|
||||
newConstArray[i].setDConst(unionArray[i].getDConst()); break;
|
||||
case EOpConvFloatToDouble:
|
||||
newConstArray[i].setDConst(unionArray[i].getDConst()); break;
|
||||
case EOpConvDoubleToInt8:
|
||||
newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvDoubleToInt16:
|
||||
newConstArray[i].setI16Const(static_cast<int16_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvDoubleToInt:
|
||||
newConstArray[i].setIConst(static_cast<int32_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvDoubleToInt64:
|
||||
newConstArray[i].setI64Const(static_cast<int64_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvDoubleToUint8:
|
||||
newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvDoubleToUint16:
|
||||
newConstArray[i].setU16Const(static_cast<uint16_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvDoubleToUint:
|
||||
newConstArray[i].setUConst(static_cast<uint32_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvDoubleToUint64:
|
||||
newConstArray[i].setU64Const(static_cast<uint64_t>(unionArray[i].getDConst())); break;
|
||||
case EOpConvDoubleToFloat16:
|
||||
newConstArray[i].setDConst(unionArray[i].getDConst()); break;
|
||||
case EOpConvDoubleToFloat:
|
||||
newConstArray[i].setDConst(unionArray[i].getDConst()); break;
|
||||
|
||||
|
||||
|
||||
// TODO: 3.0 Functionality: unary constant folding: the rest of the ops have to be fleshed out
|
||||
|
||||
case EOpSinh:
|
||||
|
@ -5939,6 +5939,12 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
"bool gl_HelperInvocation;" // needs qualifier fixed later
|
||||
);
|
||||
|
||||
if (version >= 450)
|
||||
stageBuiltins[EShLangFragment].append( // GL_EXT_fragment_invocation_density
|
||||
"flat in ivec2 gl_FragSizeEXT;"
|
||||
"flat in int gl_FragInvocationCountEXT;"
|
||||
);
|
||||
|
||||
#ifdef AMD_EXTENSIONS
|
||||
if (version >= 450)
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
@ -5959,9 +5965,9 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
);
|
||||
if (version >= 450)
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
"flat in ivec2 gl_FragmentSizeNV;"
|
||||
"flat in ivec2 gl_FragmentSizeNV;" // GL_NV_shading_rate_image
|
||||
"flat in int gl_InvocationsPerPixelNV;"
|
||||
"in vec3 gl_BaryCoordNV;"
|
||||
"in vec3 gl_BaryCoordNV;" // GL_NV_fragment_shader_barycentric
|
||||
"in vec3 gl_BaryCoordNoPerspNV;"
|
||||
);
|
||||
|
||||
@ -6006,13 +6012,19 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
"highp float gl_FragDepthEXT;" // GL_EXT_frag_depth
|
||||
);
|
||||
|
||||
if (version >= 310)
|
||||
stageBuiltins[EShLangFragment].append( // GL_EXT_fragment_invocation_density
|
||||
"flat in ivec2 gl_FragSizeEXT;"
|
||||
"flat in int gl_FragInvocationCountEXT;"
|
||||
);
|
||||
#ifdef NV_EXTENSIONS
|
||||
if (version >= 320)
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
stageBuiltins[EShLangFragment].append( // GL_NV_shading_rate_image
|
||||
"flat in ivec2 gl_FragmentSizeNV;"
|
||||
"flat in int gl_InvocationsPerPixelNV;"
|
||||
);
|
||||
if (version >= 320)
|
||||
if (version >= 320)
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
"in vec3 gl_BaryCoordNV;"
|
||||
"in vec3 gl_BaryCoordNoPerspNV;"
|
||||
@ -8342,6 +8354,14 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((profile != EEsProfile && version >= 450) ||
|
||||
(profile == EEsProfile && version >= 310)) {
|
||||
symbolTable.setVariableExtensions("gl_FragSizeEXT", 1, &E_GL_EXT_fragment_invocation_density);
|
||||
symbolTable.setVariableExtensions("gl_FragInvocationCountEXT", 1, &E_GL_EXT_fragment_invocation_density);
|
||||
BuiltInVariable("gl_FragSizeEXT", EbvFragSizeEXT, symbolTable);
|
||||
BuiltInVariable("gl_FragInvocationCountEXT", EbvFragInvocationCountEXT, symbolTable);
|
||||
}
|
||||
|
||||
symbolTable.setVariableExtensions("gl_FragDepthEXT", 1, &E_GL_EXT_frag_depth);
|
||||
|
||||
if (profile == EEsProfile && version < 320) {
|
||||
|
@ -489,7 +489,7 @@ bool TIntermediate::isConversionAllowed(TOperator op, TIntermTyped* node) const
|
||||
// This is 'mechanism' here, it does any conversion told.
|
||||
// It is about basic type, not about shape.
|
||||
// The policy comes from the shader or the calling code.
|
||||
TIntermUnary* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped* node) const
|
||||
TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped* node) const
|
||||
{
|
||||
//
|
||||
// Add a new newNode for the conversion.
|
||||
@ -712,7 +712,11 @@ TIntermUnary* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
|
||||
TType newType(convertTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows());
|
||||
newNode = addUnaryNode(newOp, node, node->getLoc(), newType);
|
||||
|
||||
// TODO: it seems that some unary folding operations should occur here, but are not
|
||||
if (node->getAsConstantUnion()) {
|
||||
TIntermTyped* folded = node->getAsConstantUnion()->fold(newOp, newType);
|
||||
if (folded)
|
||||
return folded;
|
||||
}
|
||||
|
||||
// Propagate specialization-constant-ness, if allowed
|
||||
if (node->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*newNode))
|
||||
@ -1021,7 +1025,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
|
||||
//
|
||||
// Add a new newNode for the conversion.
|
||||
//
|
||||
TIntermUnary* newNode = createConversion(promoteTo, node);
|
||||
TIntermTyped* newNode = createConversion(promoteTo, node);
|
||||
|
||||
return newNode;
|
||||
}
|
||||
|
@ -6873,6 +6873,16 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
|
||||
|
||||
layoutMemberLocationArrayCheck(loc, memberWithLocation, arraySizes);
|
||||
|
||||
// Ensure that the block has an XfbBuffer assigned. This is needed
|
||||
// because if the block has a XfbOffset assigned, then it is
|
||||
// assumed that it has implicitly assigned the current global
|
||||
// XfbBuffer, and because it's members need to be assigned a
|
||||
// XfbOffset if they lack it.
|
||||
if (currentBlockQualifier.storage == EvqVaryingOut && globalOutputDefaults.hasXfbBuffer()) {
|
||||
if (!currentBlockQualifier.hasXfbBuffer() && currentBlockQualifier.hasXfbOffset())
|
||||
currentBlockQualifier.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer;
|
||||
}
|
||||
|
||||
// Process the members
|
||||
fixBlockLocations(loc, currentBlockQualifier, typeList, memberWithLocation, memberWithoutLocation);
|
||||
fixXfbOffsets(currentBlockQualifier, typeList);
|
||||
|
@ -205,6 +205,7 @@ void TParseVersions::initializeExtensionBehavior()
|
||||
extensionBehavior[E_GL_EXT_nonuniform_qualifier] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_samplerless_texture_functions] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_scalar_block_layout] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_fragment_invocation_density] = EBhDisable;
|
||||
|
||||
extensionBehavior[E_GL_EXT_shader_16bit_storage] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_shader_8bit_storage] = EBhDisable;
|
||||
@ -380,6 +381,7 @@ void TParseVersions::getPreamble(std::string& preamble)
|
||||
"#define GL_EXT_shader_8bit_storage 1\n"
|
||||
"#define GL_EXT_samplerless_texture_functions 1\n"
|
||||
"#define GL_EXT_scalar_block_layout 1\n"
|
||||
"#define GL_EXT_fragment_invocation_density 1\n"
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
"#define GL_KHR_shader_subgroup_basic 1\n"
|
||||
|
@ -167,6 +167,7 @@ const char* const E_GL_EXT_control_flow_attributes = "GL_EXT_control_fl
|
||||
const char* const E_GL_EXT_nonuniform_qualifier = "GL_EXT_nonuniform_qualifier";
|
||||
const char* const E_GL_EXT_samplerless_texture_functions = "GL_EXT_samplerless_texture_functions";
|
||||
const char* const E_GL_EXT_scalar_block_layout = "GL_EXT_scalar_block_layout";
|
||||
const char* const E_GL_EXT_fragment_invocation_density = "GL_EXT_fragment_invocation_density";
|
||||
|
||||
// Arrays of extensions for the above viewportEXTs duplications
|
||||
|
||||
|
@ -732,7 +732,7 @@ protected:
|
||||
bool specConstantPropagates(const TIntermTyped&, const TIntermTyped&);
|
||||
void performTextureUpgradeAndSamplerRemovalTransformation(TIntermNode* root);
|
||||
bool isConversionAllowed(TOperator op, TIntermTyped* node) const;
|
||||
TIntermUnary* createConversion(TBasicType convertTo, TIntermTyped* node) const;
|
||||
TIntermTyped* createConversion(TBasicType convertTo, TIntermTyped* node) const;
|
||||
std::tuple<TBasicType, TBasicType> getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const;
|
||||
bool extensionRequested(const char *extension) const {return requestedExtensions.find(extension) != requestedExtensions.end();}
|
||||
static const char* getResourceName(TResourceType);
|
||||
|
1
3rdparty/glslang/gtests/AST.FromFile.cpp
vendored
1
3rdparty/glslang/gtests/AST.FromFile.cpp
vendored
@ -231,6 +231,7 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"precise_struct_block.vert",
|
||||
"maxClipDistances.vert",
|
||||
"findFunction.frag",
|
||||
"constantUnaryConversion.comp"
|
||||
})),
|
||||
FileNameAsCustomTestSuffix
|
||||
);
|
||||
|
7
3rdparty/glslang/gtests/Spv.FromFile.cpp
vendored
7
3rdparty/glslang/gtests/Spv.FromFile.cpp
vendored
@ -271,6 +271,10 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"spv.flowControl.frag",
|
||||
"spv.forLoop.frag",
|
||||
"spv.forwardFun.frag",
|
||||
"spv.fragmentDensity.frag",
|
||||
"spv.fragmentDensity.vert",
|
||||
"spv.fragmentDensity-es.frag",
|
||||
"spv.fragmentDensity-neg.frag",
|
||||
"spv.fullyCovered.frag",
|
||||
"spv.functionCall.frag",
|
||||
"spv.functionNestedOpaque.vert",
|
||||
@ -443,7 +447,10 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"spv.rankShift.comp",
|
||||
"spv.specConst.vert",
|
||||
"spv.OVR_multiview.vert",
|
||||
"spv.xfbOffsetOnBlockMembersAssignment.vert",
|
||||
"spv.xfbOffsetOnStructMembersAssignment.vert",
|
||||
"spv.xfbOverlapOffsetCheckWithBlockAndMember.vert",
|
||||
"spv.xfbStrideJustOnce.vert",
|
||||
})),
|
||||
FileNameAsCustomTestSuffix
|
||||
);
|
||||
|
4
3rdparty/glslang/known_good.json
vendored
4
3rdparty/glslang/known_good.json
vendored
@ -5,14 +5,14 @@
|
||||
"site" : "github",
|
||||
"subrepo" : "KhronosGroup/SPIRV-Tools",
|
||||
"subdir" : "External/spirv-tools",
|
||||
"commit" : "8e9be303b00ba352ee25dbcd352769641637a853"
|
||||
"commit" : "d543f7dfed9ba02910996121375e57fff92c3c93"
|
||||
},
|
||||
{
|
||||
"name" : "spirv-tools/external/spirv-headers",
|
||||
"site" : "github",
|
||||
"subrepo" : "KhronosGroup/SPIRV-Headers",
|
||||
"subdir" : "External/spirv-tools/external/spirv-headers",
|
||||
"commit" : "a2c529b5dda18838ab4b52f816acfebd774eaab3"
|
||||
"commit" : "282879ca34563020dbe73fd8f7d45bed6755626a"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
12
3rdparty/glslang/ndk_test/Android.mk
vendored
Normal file
12
3rdparty/glslang/ndk_test/Android.mk
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
LOCAL_PATH:= $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_CPP_EXTENSION := .cc .cpp .cxx
|
||||
LOCAL_SRC_FILES:=test.cpp
|
||||
LOCAL_MODULE:=glslang_ndk_test
|
||||
LOCAL_LDLIBS:=-landroid
|
||||
LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti -Werror
|
||||
LOCAL_STATIC_LIBRARIES:=glslang SPIRV HLSL
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
include $(LOCAL_PATH)/../Android.mk
|
5
3rdparty/glslang/ndk_test/jni/Application.mk
vendored
Normal file
5
3rdparty/glslang/ndk_test/jni/Application.mk
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
APP_ABI := all
|
||||
APP_BUILD_SCRIPT := Android.mk
|
||||
APP_STL := gnustl_static
|
||||
APP_PLATFORM := android-9
|
||||
NDK_TOOLCHAIN_VERSION := 4.9
|
19
3rdparty/glslang/ndk_test/test.cpp
vendored
Normal file
19
3rdparty/glslang/ndk_test/test.cpp
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
// Copyright 2018 Google LLC.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#include "SPIRV/GlslangToSpv.h"
|
||||
|
||||
void android_main(struct android_app* state) {
|
||||
int version = glslang::GetSpirvGeneratorVersion();
|
||||
}
|
Loading…
Reference in New Issue
Block a user