Updated glslang.
This commit is contained in:
parent
a1184d53c5
commit
ed4c70631b
17
3rdparty/glslang/SPIRV/GLSL.ext.KHR.h
vendored
17
3rdparty/glslang/SPIRV/GLSL.ext.KHR.h
vendored
@ -27,10 +27,17 @@
|
||||
#ifndef GLSLextKHR_H
|
||||
#define GLSLextKHR_H
|
||||
|
||||
// SPV_KHR_shader_ballot
|
||||
static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot";
|
||||
enum BuiltIn;
|
||||
enum Op;
|
||||
enum Capability;
|
||||
|
||||
static const int GLSLextKHRVersion = 100;
|
||||
static const int GLSLextKHRRevision = 1;
|
||||
|
||||
static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot";
|
||||
static const char* const E_SPV_KHR_subgroup_vote = "SPV_KHR_subgroup_vote";
|
||||
static const char* const E_SPV_KHR_device_group = "SPV_KHR_device_group";
|
||||
static const char* const E_SPV_KHR_multiview = "SPV_KHR_multiview";
|
||||
static const char* const E_SPV_KHR_shader_draw_parameters = "SPV_KHR_shader_draw_parameters";
|
||||
|
||||
// SPV_KHR_shader_draw_parameters
|
||||
static const char* const E_SPV_KHR_shader_draw_parameters = "SPV_KHR_shader_draw_parameters";
|
||||
static const char* const E_SPV_KHR_subgroup_vote = "SPV_KHR_subgroup_vote";
|
||||
#endif // #ifndef GLSLextKHR_H
|
||||
|
29
3rdparty/glslang/SPIRV/GLSL.ext.NV.h
vendored
29
3rdparty/glslang/SPIRV/GLSL.ext.NV.h
vendored
@ -38,46 +38,17 @@ static const int GLSLextNVRevision = 5;
|
||||
//SPV_NV_sample_mask_override_coverage
|
||||
const char* const E_SPV_NV_sample_mask_override_coverage = "SPV_NV_sample_mask_override_coverage";
|
||||
|
||||
static const Decoration DecorationOverrideCoverageNV = static_cast<Decoration>(5248);
|
||||
|
||||
|
||||
//SPV_NV_geometry_shader_passthrough
|
||||
const char* const E_SPV_NV_geometry_shader_passthrough = "SPV_NV_geometry_shader_passthrough";
|
||||
|
||||
static const Decoration DecorationPassthroughNV = static_cast<Decoration>(5250);
|
||||
|
||||
static const Capability CapabilityGeometryShaderPassthroughNV = static_cast<Capability>(5251);
|
||||
|
||||
|
||||
//SPV_NV_viewport_array2
|
||||
const char* const E_SPV_NV_viewport_array2 = "SPV_NV_viewport_array2";
|
||||
const char* const E_ARB_shader_viewport_layer_array = "SPV_ARB_shader_viewport_layer_array";
|
||||
|
||||
static const Decoration DecorationViewportRelativeNV = static_cast<Decoration>(5252);
|
||||
|
||||
static const BuiltIn BuiltInViewportMaskNV = static_cast<BuiltIn>(5253);
|
||||
|
||||
static const Capability CapabilityShaderViewportIndexLayerNV = static_cast<Capability>(5254);
|
||||
static const Capability CapabilityShaderViewportMaskNV = static_cast<Capability>(5255);
|
||||
|
||||
|
||||
//SPV_NV_stereo_view_rendering
|
||||
const char* const E_SPV_NV_stereo_view_rendering = "SPV_NV_stereo_view_rendering";
|
||||
|
||||
static const Decoration DecorationSecondaryViewportRelativeNV = static_cast<Decoration>(5256);
|
||||
|
||||
static const BuiltIn BuiltInSecondaryPositionNV = static_cast<BuiltIn>(5257);
|
||||
static const BuiltIn BuiltInSecondaryViewportMaskNV = static_cast<BuiltIn>(5258);
|
||||
|
||||
static const Capability CapabilityShaderStereoViewNV = static_cast<Capability>(5259);
|
||||
|
||||
|
||||
//SPV_NVX_multiview_per_view_attributes
|
||||
const char* const E_SPV_NVX_multiview_per_view_attributes = "SPV_NVX_multiview_per_view_attributes";
|
||||
|
||||
static const BuiltIn BuiltInPositionPerViewNV = static_cast<BuiltIn>(5260);
|
||||
static const BuiltIn BuiltInViewportMaskPerViewNV = static_cast<BuiltIn>(5261);
|
||||
|
||||
static const Capability CapabilityPerViewAttributesNV = static_cast<Capability>(5262);
|
||||
|
||||
#endif // #ifndef GLSLextNV_H
|
19
3rdparty/glslang/SPIRV/GlslangToSpv.cpp
vendored
19
3rdparty/glslang/SPIRV/GlslangToSpv.cpp
vendored
@ -628,6 +628,16 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
return spv::BuiltInBaryCoordPullModelAMD;
|
||||
#endif
|
||||
|
||||
case glslang::EbvDeviceIndex:
|
||||
builder.addExtension(spv::E_SPV_KHR_device_group);
|
||||
builder.addCapability(spv::CapabilityDeviceGroup);
|
||||
return spv::BuiltInDeviceIndex;
|
||||
|
||||
case glslang::EbvViewIndex:
|
||||
builder.addExtension(spv::E_SPV_KHR_multiview);
|
||||
builder.addCapability(spv::CapabilityMultiView);
|
||||
return spv::BuiltInViewIndex;
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
case glslang::EbvViewportMaskNV:
|
||||
builder.addExtension(spv::E_SPV_NV_viewport_array2);
|
||||
@ -1779,7 +1789,8 @@ bool TGlslangToSpvTraverser::visitSelection(glslang::TVisit /* visit */, glslang
|
||||
// Crucially, side effects must be avoided, and there are performance trade-offs.
|
||||
// Return true if good idea (and safe) for OpSelect, false otherwise.
|
||||
const auto selectPolicy = [&]() -> bool {
|
||||
if (node->getBasicType() == glslang::EbtVoid)
|
||||
if ((!node->getType().isScalar() && !node->getType().isVector()) ||
|
||||
node->getBasicType() == glslang::EbtVoid)
|
||||
return false;
|
||||
|
||||
if (node->getTrueBlock() == nullptr ||
|
||||
@ -2730,7 +2741,8 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF
|
||||
for (int p = 0; p < (int)parameters.size(); ++p) {
|
||||
const glslang::TType& paramType = parameters[p]->getAsTyped()->getType();
|
||||
spv::Id typeId = convertGlslangToSpvType(paramType);
|
||||
if (paramType.containsOpaque())
|
||||
if (paramType.containsOpaque() ||
|
||||
(paramType.getBasicType() == glslang::EbtBlock && paramType.getQualifier().storage == glslang::EvqBuffer))
|
||||
typeId = builder.makePointer(TranslateStorageClass(paramType), typeId);
|
||||
else if (paramType.getQualifier().storage != glslang::EvqConstReadOnly)
|
||||
typeId = builder.makePointer(spv::StorageClassFunction, typeId);
|
||||
@ -3210,7 +3222,8 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg
|
||||
for (int a = 0; a < (int)glslangArgs.size(); ++a) {
|
||||
const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType();
|
||||
spv::Id arg;
|
||||
if (paramType.containsOpaque()) {
|
||||
if (paramType.containsOpaque() ||
|
||||
(paramType.getBasicType() == glslang::EbtBlock && qualifiers[a] == glslang::EvqBuffer)) {
|
||||
builder.setAccessChain(lValues[lValueCount]);
|
||||
arg = builder.accessChainGetLValue();
|
||||
++lValueCount;
|
||||
|
33
3rdparty/glslang/SPIRV/doc.cpp
vendored
33
3rdparty/glslang/SPIRV/doc.cpp
vendored
@ -48,6 +48,7 @@
|
||||
namespace spv {
|
||||
extern "C" {
|
||||
// Include C-based headers that don't have a namespace
|
||||
#include "GLSL.ext.KHR.h"
|
||||
#ifdef AMD_EXTENSIONS
|
||||
#include "GLSL.ext.AMD.h"
|
||||
#endif
|
||||
@ -318,15 +319,13 @@ const char* BuiltInString(int builtIn)
|
||||
case 42: return "VertexIndex"; // TBD: put next to VertexId?
|
||||
case 43: return "InstanceIndex"; // TBD: put next to InstanceId?
|
||||
|
||||
case BuiltInCeiling:
|
||||
default: return "Bad";
|
||||
|
||||
case 4416: return "SubgroupEqMaskKHR";
|
||||
case 4417: return "SubgroupGeMaskKHR";
|
||||
case 4418: return "SubgroupGtMaskKHR";
|
||||
case 4419: return "SubgroupLeMaskKHR";
|
||||
case 4420: return "SubgroupLtMaskKHR";
|
||||
|
||||
case 4438: return "DeviceIndex";
|
||||
case 4440: return "ViewIndex";
|
||||
case 4424: return "BaseVertex";
|
||||
case 4425: return "BaseInstance";
|
||||
case 4426: return "DrawIndex";
|
||||
@ -340,13 +339,17 @@ const char* BuiltInString(int builtIn)
|
||||
case 4997: return "BaryCoordSmoothSampleAMD";
|
||||
case 4998: return "BaryCoordPullModelAMD";
|
||||
#endif
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
case 5253: return "ViewportMaskNV";
|
||||
case 5257: return "SecondaryPositionNV";
|
||||
case 5258: return "SecondaryViewportMaskNV";
|
||||
case 5260: return "PositionPerViewNV";
|
||||
case 5261: return "ViewportMaskPerViewNV";
|
||||
case 5261: return "PositionPerViewNV";
|
||||
case 5262: return "ViewportMaskPerViewNV";
|
||||
#endif
|
||||
|
||||
case BuiltInCeiling:
|
||||
default: return "Bad";
|
||||
}
|
||||
}
|
||||
|
||||
@ -823,21 +826,23 @@ const char* CapabilityString(int info)
|
||||
case 56: return "StorageImageWriteWithoutFormat";
|
||||
case 57: return "MultiViewport";
|
||||
|
||||
case CapabilityCeiling:
|
||||
default: return "Bad";
|
||||
|
||||
case 4423: return "SubgroupBallotKHR";
|
||||
case 4427: return "DrawParameters";
|
||||
case 4431: return "SubgroupVoteKHR";
|
||||
|
||||
case 4437: return "DeviceGroup";
|
||||
case 4439: return "MultiView";
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
case 5251: return "GeometryShaderPassthroughNV";
|
||||
case 5254: return "ShaderViewportIndexLayerNV";
|
||||
case 5255: return "ShaderViewportMaskNV";
|
||||
case 5259: return "ShaderStereoViewNV";
|
||||
case 5262: return "PerViewAttributesNV";
|
||||
case 5260: return "PerViewAttributesNV";
|
||||
#endif
|
||||
|
||||
case CapabilityCeiling:
|
||||
default: return "Bad";
|
||||
}
|
||||
}
|
||||
|
||||
@ -1166,10 +1171,6 @@ const char* OpcodeString(int op)
|
||||
case 319: return "OpAtomicFlagClear";
|
||||
case 320: return "OpImageSparseRead";
|
||||
|
||||
case OpcodeCeiling:
|
||||
default:
|
||||
return "Bad";
|
||||
|
||||
case 4421: return "OpSubgroupBallotKHR";
|
||||
case 4422: return "OpSubgroupFirstInvocationKHR";
|
||||
case 4428: return "OpSubgroupAllKHR";
|
||||
@ -1187,6 +1188,10 @@ const char* OpcodeString(int op)
|
||||
case 5006: return "OpGroupUMaxNonUniformAMD";
|
||||
case 5007: return "OpGroupSMaxNonUniformAMD";
|
||||
#endif
|
||||
|
||||
case OpcodeCeiling:
|
||||
default:
|
||||
return "Bad";
|
||||
}
|
||||
}
|
||||
|
||||
|
36
3rdparty/glslang/SPIRV/spirv.hpp
vendored
36
3rdparty/glslang/SPIRV/spirv.hpp
vendored
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2016 The Khronos Group Inc.
|
||||
// Copyright (c) 2014-2017 The Khronos Group Inc.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
@ -47,11 +47,11 @@ namespace spv {
|
||||
typedef unsigned int Id;
|
||||
|
||||
#define SPV_VERSION 0x10000
|
||||
#define SPV_REVISION 8
|
||||
#define SPV_REVISION 10
|
||||
|
||||
static const unsigned int MagicNumber = 0x07230203;
|
||||
static const unsigned int Version = 0x00010000;
|
||||
static const unsigned int Revision = 8;
|
||||
static const unsigned int Revision = 10;
|
||||
static const unsigned int OpCodeMask = 0xffff;
|
||||
static const unsigned int WordCountShift = 16;
|
||||
|
||||
@ -61,7 +61,6 @@ enum SourceLanguage {
|
||||
SourceLanguageGLSL = 2,
|
||||
SourceLanguageOpenCL_C = 3,
|
||||
SourceLanguageOpenCL_CPP = 4,
|
||||
SourceLanguageHLSL = 5,
|
||||
SourceLanguageMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -375,6 +374,10 @@ enum Decoration {
|
||||
DecorationNoContraction = 42,
|
||||
DecorationInputAttachmentIndex = 43,
|
||||
DecorationAlignment = 44,
|
||||
DecorationOverrideCoverageNV = 5248,
|
||||
DecorationPassthroughNV = 5250,
|
||||
DecorationViewportRelativeNV = 5252,
|
||||
DecorationSecondaryViewportRelativeNV = 5256,
|
||||
DecorationMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -428,6 +431,13 @@ enum BuiltIn {
|
||||
BuiltInBaseVertex = 4424,
|
||||
BuiltInBaseInstance = 4425,
|
||||
BuiltInDrawIndex = 4426,
|
||||
BuiltInDeviceIndex = 4438,
|
||||
BuiltInViewIndex = 4440,
|
||||
BuiltInViewportMaskNV = 5253,
|
||||
BuiltInSecondaryPositionNV = 5257,
|
||||
BuiltInSecondaryViewportMaskNV = 5258,
|
||||
BuiltInPositionPerViewNV = 5261,
|
||||
BuiltInViewportMaskPerViewNV = 5262,
|
||||
BuiltInMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -606,6 +616,18 @@ enum Capability {
|
||||
CapabilitySubgroupBallotKHR = 4423,
|
||||
CapabilityDrawParameters = 4427,
|
||||
CapabilitySubgroupVoteKHR = 4431,
|
||||
CapabilityStorageUniformBufferBlock16 = 4433,
|
||||
CapabilityStorageUniform16 = 4434,
|
||||
CapabilityStoragePushConstant16 = 4435,
|
||||
CapabilityStorageInputOutput16 = 4436,
|
||||
CapabilityDeviceGroup = 4437,
|
||||
CapabilityMultiView = 4439,
|
||||
CapabilitySampleMaskOverrideCoverageNV = 5249,
|
||||
CapabilityGeometryShaderPassthroughNV = 5251,
|
||||
CapabilityShaderViewportIndexLayerNV = 5254,
|
||||
CapabilityShaderViewportMaskNV = 5255,
|
||||
CapabilityShaderStereoViewNV = 5259,
|
||||
CapabilityPerViewAttributesNV = 5260,
|
||||
CapabilityMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -906,10 +928,10 @@ enum Op {
|
||||
OpImageSparseRead = 320,
|
||||
OpSubgroupBallotKHR = 4421,
|
||||
OpSubgroupFirstInvocationKHR = 4422,
|
||||
OpSubgroupReadInvocationKHR = 4432,
|
||||
OpSubgroupAllKHR = 4428,
|
||||
OpSubgroupAnyKHR = 4429,
|
||||
OpSubgroupAllKHR = 4428,
|
||||
OpSubgroupAnyKHR = 4429,
|
||||
OpSubgroupAllEqualKHR = 4430,
|
||||
OpSubgroupReadInvocationKHR = 4432,
|
||||
OpMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
|
4
3rdparty/glslang/Test/120.frag
vendored
4
3rdparty/glslang/Test/120.frag
vendored
@ -243,4 +243,6 @@ void voidTernary()
|
||||
b ? foo121111() : foo12111();
|
||||
b ? foo121111() : 4; // ERROR
|
||||
b ? 3 : foo12111(); // ERROR
|
||||
}
|
||||
}
|
||||
|
||||
float halfFloat1 = 1.0h; // syntax ERROR
|
||||
|
1
3rdparty/glslang/Test/badChars.frag
vendored
1
3rdparty/glslang/Test/badChars.frag
vendored
@ -4,3 +4,4 @@
|
||||
#if
|
||||
#endif
|
||||
int a˙
|
||||
#define A "˙
|
@ -52,7 +52,8 @@ ERROR: 0:209: 'assign' : cannot convert from 'const float' to 'temp 4-component
|
||||
ERROR: 0:212: 'sampler2DRect' : Reserved word.
|
||||
ERROR: 0:244: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type 'global void' and a right operand of type 'const int' (or there is no acceptable conversion)
|
||||
ERROR: 0:245: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type 'const int' and a right operand of type 'global void' (or there is no acceptable conversion)
|
||||
ERROR: 53 compilation errors. No code generated.
|
||||
ERROR: 0:248: '' : syntax error
|
||||
ERROR: 54 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 120
|
||||
@ -645,6 +646,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 's2DRbad' (uniform sampler2DRect)
|
||||
0:? 's2DR' (uniform sampler2DRect)
|
||||
0:? 's2DRS' (uniform sampler2DRectShadow)
|
||||
0:? 'halfFloat1' (global float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -688,4 +690,5 @@ ERROR: node is still EOpNull!
|
||||
0:? 's2DRbad' (uniform sampler2DRect)
|
||||
0:? 's2DR' (uniform sampler2DRect)
|
||||
0:? 's2DRS' (uniform sampler2DRectShadow)
|
||||
0:? 'halfFloat1' (global float)
|
||||
|
||||
|
@ -47,12 +47,13 @@ ERROR: 0:142: 'r8_snorm' : does not apply to signed integer images
|
||||
ERROR: 0:143: 'rgba32ui' : does not apply to signed integer images
|
||||
ERROR: 0:144: 'r8ui' : does not apply to signed integer images
|
||||
ERROR: 0:147: 'offset on block member' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:147: 'offset/align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found
|
||||
ERROR: 0:157: 'assign' : cannot convert from 'const float' to 'temp int'
|
||||
ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found
|
||||
ERROR: 0:158: 'assign' : cannot convert from 'const float' to 'temp int'
|
||||
WARNING: 0:161: '[]' : assuming array size of one for compile-time checking of binding numbers for implicitly-sized array
|
||||
ERROR: 50 compilation errors. No code generated.
|
||||
ERROR: 51 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 420
|
||||
|
@ -28,8 +28,9 @@ ERROR: 0:64: 'uniform buffer-member align' : not supported for this version or t
|
||||
ERROR: 0:65: 'uniform buffer-member align' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:65: 'offset on block member' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:66: 'offset on block member' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:64: 'offset/align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:65: 'align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:64: 'align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:65: 'offset/align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:66: 'offset/align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:71: 'offset on block member' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:74: 'gl_MaxTransformFeedbackBuffers' : required extension not requested: GL_ARB_enhanced_layouts
|
||||
ERROR: 0:75: 'gl_MaxTransformFeedbackInterleavedComponents' : required extension not requested: GL_ARB_enhanced_layouts
|
||||
@ -63,7 +64,7 @@ ERROR: 0:221: 'textureQueryLevels' : no matching overloaded function found
|
||||
ERROR: 0:221: 'assign' : cannot convert from 'const float' to 'temp int'
|
||||
ERROR: 0:222: 'textureQueryLevels' : no matching overloaded function found
|
||||
ERROR: 0:222: 'assign' : cannot convert from 'const float' to 'temp int'
|
||||
ERROR: 63 compilation errors. No code generated.
|
||||
ERROR: 64 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 430
|
||||
|
13
3rdparty/glslang/Test/baseResults/440.frag.out
vendored
13
3rdparty/glslang/Test/baseResults/440.frag.out
vendored
@ -22,11 +22,11 @@ ERROR: 0:38: 'offset' : only applies to block members, not blocks
|
||||
ERROR: 0:39: 'output block' : not supported in this stage: fragment
|
||||
ERROR: 0:39: 'layout' : offset/align can only be used on a uniform or buffer
|
||||
ERROR: 0:39: 'offset' : only applies to block members, not blocks
|
||||
ERROR: 0:42: 'offset/align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:43: 'offset/align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:42: 'align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:43: 'align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:43: 'layout' : offset/align can only be used on a uniform or buffer
|
||||
ERROR: 0:44: 'output block' : not supported in this stage: fragment
|
||||
ERROR: 0:44: 'offset/align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:44: 'align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:44: 'layout' : offset/align can only be used on a uniform or buffer
|
||||
ERROR: 0:46: 'offset' : cannot specify on a variable declaration
|
||||
ERROR: 0:47: 'layout' : offset/align can only be used on a uniform or buffer
|
||||
@ -37,8 +37,9 @@ ERROR: 0:52: 'layout' : offset/align can only be used on a uniform or buffer
|
||||
ERROR: 0:54: 'layout' : matrix or packing qualifiers can only be used on a uniform or buffer
|
||||
ERROR: 0:55: 'layout' : cannot specify packing on a variable declaration
|
||||
ERROR: 0:57: 'align' : must be a power of 2
|
||||
ERROR: 0:58: 'align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:63: 'align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:58: 'offset/align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:62: 'offset/align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:63: 'offset/align' : can only be used with std140 or std430 layout packing
|
||||
ERROR: 0:62: 'layout' : offset/align can only be used on a uniform or buffer
|
||||
ERROR: 0:63: 'layout' : offset/align can only be used on a uniform or buffer
|
||||
ERROR: 0:84: 'align' : must be a power of 2
|
||||
@ -48,7 +49,7 @@ ERROR: 0:103: 'align' : must be a power of 2
|
||||
ERROR: 0:105: 'align' : must be a power of 2
|
||||
ERROR: 0:102: 'offset' : cannot lie in previous members
|
||||
ERROR: 0:104: 'offset' : must be a multiple of the member's alignment
|
||||
ERROR: 48 compilation errors. No code generated.
|
||||
ERROR: 49 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 440
|
||||
|
@ -5,8 +5,9 @@ ERROR: 0:3: '#error' : A <bad token> B
|
||||
ERROR: 0:4: 'preprocessor evaluation' : bad expression
|
||||
ERROR: 0:4: '#if' : unexpected tokens following directive
|
||||
ERROR: 0:6: '€' : unexpected token
|
||||
ERROR: 0:7: 'string' : End of line in string
|
||||
ERROR: 0:7: '' : syntax error
|
||||
ERROR: 7 compilation errors. No code generated.
|
||||
ERROR: 8 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 100
|
||||
|
@ -1,80 +1,131 @@
|
||||
hlsl.intrinsics.f1632.frag
|
||||
ERROR: 0:3: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 0:16: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 0:23: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 0:30: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 4 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
ERROR: node is still EOpNull!
|
||||
0:2 Function Definition: PixelShaderFunctionS(f1; (temp float)
|
||||
0:? Sequence
|
||||
0:2 Function Definition: PixelShaderFunctionS(u1; (temp float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:2 'inF0' (in uint)
|
||||
0:? Sequence
|
||||
0:3 ERROR: Bad unary op
|
||||
(temp uint)
|
||||
0:3 'inF0' (in float)
|
||||
0:5 Branch: Return with expression
|
||||
0:5 Constant:
|
||||
0:5 0.000000
|
||||
0:9 Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'inF0' (in 1-component vector of float)
|
||||
0:3 Branch: Return with expression
|
||||
0:3 direct index (temp float)
|
||||
0:3 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:3 'inF0' (in uint)
|
||||
0:3 Constant:
|
||||
0:3 0 (const int)
|
||||
0:7 Function Definition: PixelShaderFunction1(vu1; (temp 1-component vector of float)
|
||||
0:7 Function Parameters:
|
||||
0:7 'inF0' (in 1-component vector of uint)
|
||||
0:? Sequence
|
||||
0:11 Branch: Return with expression
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:15 Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of float)
|
||||
0:15 Function Parameters:
|
||||
0:15 'inF0' (in 2-component vector of float)
|
||||
0:8 Branch: Return with expression
|
||||
0:8 Constant:
|
||||
0:8 0.000000
|
||||
0:12 Function Definition: PixelShaderFunction2(vu2; (temp 2-component vector of float)
|
||||
0:12 Function Parameters:
|
||||
0:12 'inF0' (in 2-component vector of uint)
|
||||
0:? Sequence
|
||||
0:13 Branch: Return with expression
|
||||
0:13 Construct vec2 (temp 2-component vector of float)
|
||||
0:13 direct index (temp float)
|
||||
0:13 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:13 direct index (temp uint)
|
||||
0:13 'inF0' (in 2-component vector of uint)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 direct index (temp float)
|
||||
0:13 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:13 direct index (temp uint)
|
||||
0:13 'inF0' (in 2-component vector of uint)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:17 Function Definition: PixelShaderFunction3(vu3; (temp 3-component vector of float)
|
||||
0:17 Function Parameters:
|
||||
0:17 'inF0' (in 3-component vector of uint)
|
||||
0:? Sequence
|
||||
0:16 ERROR: Bad unary op
|
||||
(temp 2-component vector of uint)
|
||||
0:16 'inF0' (in 2-component vector of float)
|
||||
0:18 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:22 Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of float)
|
||||
0:18 Construct vec3 (temp 3-component vector of float)
|
||||
0:18 direct index (temp float)
|
||||
0:18 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:18 direct index (temp uint)
|
||||
0:18 'inF0' (in 3-component vector of uint)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:18 direct index (temp float)
|
||||
0:18 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:18 direct index (temp uint)
|
||||
0:18 'inF0' (in 3-component vector of uint)
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:18 direct index (temp float)
|
||||
0:18 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:18 direct index (temp uint)
|
||||
0:18 'inF0' (in 3-component vector of uint)
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:22 Function Definition: PixelShaderFunction(vu4; (temp 4-component vector of float)
|
||||
0:22 Function Parameters:
|
||||
0:22 'inF0' (in 3-component vector of float)
|
||||
0:22 'inF0' (in 4-component vector of uint)
|
||||
0:? Sequence
|
||||
0:23 ERROR: Bad unary op
|
||||
(temp 3-component vector of uint)
|
||||
0:23 'inF0' (in 3-component vector of float)
|
||||
0:25 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:29 Function Definition: @PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:29 Function Parameters:
|
||||
0:29 'inF0' (in 4-component vector of float)
|
||||
0:23 Branch: Return with expression
|
||||
0:23 Construct vec4 (temp 4-component vector of float)
|
||||
0:23 direct index (temp float)
|
||||
0:23 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:23 direct index (temp uint)
|
||||
0:23 'inF0' (in 4-component vector of uint)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 direct index (temp float)
|
||||
0:23 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:23 direct index (temp uint)
|
||||
0:23 'inF0' (in 4-component vector of uint)
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 direct index (temp float)
|
||||
0:23 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:23 direct index (temp uint)
|
||||
0:23 'inF0' (in 4-component vector of uint)
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 direct index (temp float)
|
||||
0:23 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:23 direct index (temp uint)
|
||||
0:23 'inF0' (in 4-component vector of uint)
|
||||
0:23 Constant:
|
||||
0:23 3 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:27 Function Definition: @main( (temp 4-component vector of float)
|
||||
0:27 Function Parameters:
|
||||
0:? Sequence
|
||||
0:30 ERROR: Bad unary op
|
||||
(temp 4-component vector of uint)
|
||||
0:30 'inF0' (in 4-component vector of float)
|
||||
0:32 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:29 Function Definition: PixelShaderFunction( (temp void)
|
||||
0:29 Function Parameters:
|
||||
0:28 Branch: Return with expression
|
||||
0:28 Constant:
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:27 Function Definition: main( (temp void)
|
||||
0:27 Function Parameters:
|
||||
0:? Sequence
|
||||
0:29 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'inF0' (temp 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:29 move second child to first child (temp 4-component vector of float)
|
||||
0:27 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:29 Function Call: @PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:? 'inF0' (temp 4-component vector of float)
|
||||
0:27 Function Call: @main( (temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -82,72 +133,256 @@ Linked fragment stage:
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
ERROR: node is still EOpNull!
|
||||
0:2 Function Definition: PixelShaderFunctionS(f1; (temp float)
|
||||
0:? Sequence
|
||||
0:2 Function Definition: PixelShaderFunctionS(u1; (temp float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:2 'inF0' (in uint)
|
||||
0:? Sequence
|
||||
0:3 ERROR: Bad unary op
|
||||
(temp uint)
|
||||
0:3 'inF0' (in float)
|
||||
0:5 Branch: Return with expression
|
||||
0:5 Constant:
|
||||
0:5 0.000000
|
||||
0:9 Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'inF0' (in 1-component vector of float)
|
||||
0:3 Branch: Return with expression
|
||||
0:3 direct index (temp float)
|
||||
0:3 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:3 'inF0' (in uint)
|
||||
0:3 Constant:
|
||||
0:3 0 (const int)
|
||||
0:7 Function Definition: PixelShaderFunction1(vu1; (temp 1-component vector of float)
|
||||
0:7 Function Parameters:
|
||||
0:7 'inF0' (in 1-component vector of uint)
|
||||
0:? Sequence
|
||||
0:11 Branch: Return with expression
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:15 Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of float)
|
||||
0:15 Function Parameters:
|
||||
0:15 'inF0' (in 2-component vector of float)
|
||||
0:8 Branch: Return with expression
|
||||
0:8 Constant:
|
||||
0:8 0.000000
|
||||
0:12 Function Definition: PixelShaderFunction2(vu2; (temp 2-component vector of float)
|
||||
0:12 Function Parameters:
|
||||
0:12 'inF0' (in 2-component vector of uint)
|
||||
0:? Sequence
|
||||
0:13 Branch: Return with expression
|
||||
0:13 Construct vec2 (temp 2-component vector of float)
|
||||
0:13 direct index (temp float)
|
||||
0:13 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:13 direct index (temp uint)
|
||||
0:13 'inF0' (in 2-component vector of uint)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 direct index (temp float)
|
||||
0:13 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:13 direct index (temp uint)
|
||||
0:13 'inF0' (in 2-component vector of uint)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:17 Function Definition: PixelShaderFunction3(vu3; (temp 3-component vector of float)
|
||||
0:17 Function Parameters:
|
||||
0:17 'inF0' (in 3-component vector of uint)
|
||||
0:? Sequence
|
||||
0:16 ERROR: Bad unary op
|
||||
(temp 2-component vector of uint)
|
||||
0:16 'inF0' (in 2-component vector of float)
|
||||
0:18 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:22 Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of float)
|
||||
0:18 Construct vec3 (temp 3-component vector of float)
|
||||
0:18 direct index (temp float)
|
||||
0:18 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:18 direct index (temp uint)
|
||||
0:18 'inF0' (in 3-component vector of uint)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:18 direct index (temp float)
|
||||
0:18 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:18 direct index (temp uint)
|
||||
0:18 'inF0' (in 3-component vector of uint)
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:18 direct index (temp float)
|
||||
0:18 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:18 direct index (temp uint)
|
||||
0:18 'inF0' (in 3-component vector of uint)
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:22 Function Definition: PixelShaderFunction(vu4; (temp 4-component vector of float)
|
||||
0:22 Function Parameters:
|
||||
0:22 'inF0' (in 3-component vector of float)
|
||||
0:22 'inF0' (in 4-component vector of uint)
|
||||
0:? Sequence
|
||||
0:23 ERROR: Bad unary op
|
||||
(temp 3-component vector of uint)
|
||||
0:23 'inF0' (in 3-component vector of float)
|
||||
0:25 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:29 Function Definition: @PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:29 Function Parameters:
|
||||
0:29 'inF0' (in 4-component vector of float)
|
||||
0:23 Branch: Return with expression
|
||||
0:23 Construct vec4 (temp 4-component vector of float)
|
||||
0:23 direct index (temp float)
|
||||
0:23 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:23 direct index (temp uint)
|
||||
0:23 'inF0' (in 4-component vector of uint)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 direct index (temp float)
|
||||
0:23 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:23 direct index (temp uint)
|
||||
0:23 'inF0' (in 4-component vector of uint)
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 direct index (temp float)
|
||||
0:23 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:23 direct index (temp uint)
|
||||
0:23 'inF0' (in 4-component vector of uint)
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 direct index (temp float)
|
||||
0:23 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:23 direct index (temp uint)
|
||||
0:23 'inF0' (in 4-component vector of uint)
|
||||
0:23 Constant:
|
||||
0:23 3 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:27 Function Definition: @main( (temp 4-component vector of float)
|
||||
0:27 Function Parameters:
|
||||
0:? Sequence
|
||||
0:30 ERROR: Bad unary op
|
||||
(temp 4-component vector of uint)
|
||||
0:30 'inF0' (in 4-component vector of float)
|
||||
0:32 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:29 Function Definition: PixelShaderFunction( (temp void)
|
||||
0:29 Function Parameters:
|
||||
0:28 Branch: Return with expression
|
||||
0:28 Constant:
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:27 Function Definition: main( (temp void)
|
||||
0:27 Function Parameters:
|
||||
0:? Sequence
|
||||
0:29 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'inF0' (temp 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:29 move second child to first child (temp 4-component vector of float)
|
||||
0:27 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:29 Function Call: @PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:? 'inF0' (temp 4-component vector of float)
|
||||
0:27 Function Call: @main( (temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 103
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 101
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Name 4 "main"
|
||||
Name 11 "PixelShaderFunctionS(u1;"
|
||||
Name 10 "inF0"
|
||||
Name 14 "PixelShaderFunction1(vu1;"
|
||||
Name 13 "inF0"
|
||||
Name 21 "PixelShaderFunction2(vu2;"
|
||||
Name 20 "inF0"
|
||||
Name 28 "PixelShaderFunction3(vu3;"
|
||||
Name 27 "inF0"
|
||||
Name 35 "PixelShaderFunction(vu4;"
|
||||
Name 34 "inF0"
|
||||
Name 38 "@main("
|
||||
Name 101 "@entryPointOutput"
|
||||
Decorate 101(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypePointer Function 6(int)
|
||||
8: TypeFloat 32
|
||||
9: TypeFunction 8(float) 7(ptr)
|
||||
16: TypeVector 6(int) 2
|
||||
17: TypePointer Function 16(ivec2)
|
||||
18: TypeVector 8(float) 2
|
||||
19: TypeFunction 18(fvec2) 17(ptr)
|
||||
23: TypeVector 6(int) 3
|
||||
24: TypePointer Function 23(ivec3)
|
||||
25: TypeVector 8(float) 3
|
||||
26: TypeFunction 25(fvec3) 24(ptr)
|
||||
30: TypeVector 6(int) 4
|
||||
31: TypePointer Function 30(ivec4)
|
||||
32: TypeVector 8(float) 4
|
||||
33: TypeFunction 32(fvec4) 31(ptr)
|
||||
37: TypeFunction 32(fvec4)
|
||||
42: 6(int) Constant 0
|
||||
46: 8(float) Constant 0
|
||||
53: 6(int) Constant 1
|
||||
69: 6(int) Constant 2
|
||||
89: 6(int) Constant 3
|
||||
97: 32(fvec4) ConstantComposite 46 46 46 46
|
||||
100: TypePointer Output 32(fvec4)
|
||||
101(@entryPointOutput): 100(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
102: 32(fvec4) FunctionCall 38(@main()
|
||||
Store 101(@entryPointOutput) 102
|
||||
Return
|
||||
FunctionEnd
|
||||
11(PixelShaderFunctionS(u1;): 8(float) Function None 9
|
||||
10(inF0): 7(ptr) FunctionParameter
|
||||
12: Label
|
||||
40: 6(int) Load 10(inF0)
|
||||
41: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 40
|
||||
43: 8(float) CompositeExtract 41 0
|
||||
ReturnValue 43
|
||||
FunctionEnd
|
||||
14(PixelShaderFunction1(vu1;): 8(float) Function None 9
|
||||
13(inF0): 7(ptr) FunctionParameter
|
||||
15: Label
|
||||
ReturnValue 46
|
||||
FunctionEnd
|
||||
21(PixelShaderFunction2(vu2;): 18(fvec2) Function None 19
|
||||
20(inF0): 17(ptr) FunctionParameter
|
||||
22: Label
|
||||
49: 7(ptr) AccessChain 20(inF0) 42
|
||||
50: 6(int) Load 49
|
||||
51: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 50
|
||||
52: 8(float) CompositeExtract 51 0
|
||||
54: 7(ptr) AccessChain 20(inF0) 53
|
||||
55: 6(int) Load 54
|
||||
56: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 55
|
||||
57: 8(float) CompositeExtract 56 0
|
||||
58: 18(fvec2) CompositeConstruct 52 57
|
||||
ReturnValue 58
|
||||
FunctionEnd
|
||||
28(PixelShaderFunction3(vu3;): 25(fvec3) Function None 26
|
||||
27(inF0): 24(ptr) FunctionParameter
|
||||
29: Label
|
||||
61: 7(ptr) AccessChain 27(inF0) 42
|
||||
62: 6(int) Load 61
|
||||
63: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 62
|
||||
64: 8(float) CompositeExtract 63 0
|
||||
65: 7(ptr) AccessChain 27(inF0) 53
|
||||
66: 6(int) Load 65
|
||||
67: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 66
|
||||
68: 8(float) CompositeExtract 67 0
|
||||
70: 7(ptr) AccessChain 27(inF0) 69
|
||||
71: 6(int) Load 70
|
||||
72: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 71
|
||||
73: 8(float) CompositeExtract 72 0
|
||||
74: 25(fvec3) CompositeConstruct 64 68 73
|
||||
ReturnValue 74
|
||||
FunctionEnd
|
||||
35(PixelShaderFunction(vu4;): 32(fvec4) Function None 33
|
||||
34(inF0): 31(ptr) FunctionParameter
|
||||
36: Label
|
||||
77: 7(ptr) AccessChain 34(inF0) 42
|
||||
78: 6(int) Load 77
|
||||
79: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 78
|
||||
80: 8(float) CompositeExtract 79 0
|
||||
81: 7(ptr) AccessChain 34(inF0) 53
|
||||
82: 6(int) Load 81
|
||||
83: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 82
|
||||
84: 8(float) CompositeExtract 83 0
|
||||
85: 7(ptr) AccessChain 34(inF0) 69
|
||||
86: 6(int) Load 85
|
||||
87: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 86
|
||||
88: 8(float) CompositeExtract 87 0
|
||||
90: 7(ptr) AccessChain 34(inF0) 89
|
||||
91: 6(int) Load 90
|
||||
92: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 91
|
||||
93: 8(float) CompositeExtract 92 0
|
||||
94: 32(fvec4) CompositeConstruct 80 84 88 93
|
||||
ReturnValue 94
|
||||
FunctionEnd
|
||||
38(@main(): 32(fvec4) Function None 37
|
||||
39: Label
|
||||
ReturnValue 97
|
||||
FunctionEnd
|
||||
|
401
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out
vendored
Normal file
401
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out
vendored
Normal file
@ -0,0 +1,401 @@
|
||||
hlsl.intrinsics.f3216.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:2 Function Definition: PixelShaderFunctionS(f1; (temp uint)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:? Sequence
|
||||
0:3 Branch: Return with expression
|
||||
0:3 packHalf2x16 (temp uint)
|
||||
0:3 Construct vec2 (temp 2-component vector of float)
|
||||
0:3 'inF0' (in float)
|
||||
0:3 Constant:
|
||||
0:3 0.000000
|
||||
0:7 Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of uint)
|
||||
0:7 Function Parameters:
|
||||
0:7 'inF0' (in 1-component vector of float)
|
||||
0:? Sequence
|
||||
0:8 Branch: Return with expression
|
||||
0:8 Construct uint (temp 1-component vector of uint)
|
||||
0:8 packHalf2x16 (temp uint)
|
||||
0:8 Construct vec2 (temp 2-component vector of float)
|
||||
0:8 Construct float (in float)
|
||||
0:8 'inF0' (in 1-component vector of float)
|
||||
0:8 Constant:
|
||||
0:8 0.000000
|
||||
0:12 Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of uint)
|
||||
0:12 Function Parameters:
|
||||
0:12 'inF0' (in 2-component vector of float)
|
||||
0:? Sequence
|
||||
0:13 Branch: Return with expression
|
||||
0:13 Construct uvec2 (temp 2-component vector of uint)
|
||||
0:13 packHalf2x16 (temp uint)
|
||||
0:13 Construct vec2 (temp 2-component vector of float)
|
||||
0:13 direct index (temp float)
|
||||
0:13 'inF0' (in 2-component vector of float)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0.000000
|
||||
0:13 packHalf2x16 (temp uint)
|
||||
0:13 Construct vec2 (temp 2-component vector of float)
|
||||
0:13 direct index (temp float)
|
||||
0:13 'inF0' (in 2-component vector of float)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0.000000
|
||||
0:17 Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of uint)
|
||||
0:17 Function Parameters:
|
||||
0:17 'inF0' (in 3-component vector of float)
|
||||
0:? Sequence
|
||||
0:18 Branch: Return with expression
|
||||
0:18 Construct uvec3 (temp 3-component vector of uint)
|
||||
0:18 packHalf2x16 (temp uint)
|
||||
0:18 Construct vec2 (temp 2-component vector of float)
|
||||
0:18 direct index (temp float)
|
||||
0:18 'inF0' (in 3-component vector of float)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0.000000
|
||||
0:18 packHalf2x16 (temp uint)
|
||||
0:18 Construct vec2 (temp 2-component vector of float)
|
||||
0:18 direct index (temp float)
|
||||
0:18 'inF0' (in 3-component vector of float)
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0.000000
|
||||
0:18 packHalf2x16 (temp uint)
|
||||
0:18 Construct vec2 (temp 2-component vector of float)
|
||||
0:18 direct index (temp float)
|
||||
0:18 'inF0' (in 3-component vector of float)
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0.000000
|
||||
0:22 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of uint)
|
||||
0:22 Function Parameters:
|
||||
0:22 'inF0' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:23 Branch: Return with expression
|
||||
0:23 Construct uvec4 (temp 4-component vector of uint)
|
||||
0:23 packHalf2x16 (temp uint)
|
||||
0:23 Construct vec2 (temp 2-component vector of float)
|
||||
0:23 direct index (temp float)
|
||||
0:23 'inF0' (in 4-component vector of float)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:23 packHalf2x16 (temp uint)
|
||||
0:23 Construct vec2 (temp 2-component vector of float)
|
||||
0:23 direct index (temp float)
|
||||
0:23 'inF0' (in 4-component vector of float)
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:23 packHalf2x16 (temp uint)
|
||||
0:23 Construct vec2 (temp 2-component vector of float)
|
||||
0:23 direct index (temp float)
|
||||
0:23 'inF0' (in 4-component vector of float)
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:23 packHalf2x16 (temp uint)
|
||||
0:23 Construct vec2 (temp 2-component vector of float)
|
||||
0:23 direct index (temp float)
|
||||
0:23 'inF0' (in 4-component vector of float)
|
||||
0:23 Constant:
|
||||
0:23 3 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:27 Function Definition: @main( (temp 4-component vector of float)
|
||||
0:27 Function Parameters:
|
||||
0:? Sequence
|
||||
0:28 Branch: Return with expression
|
||||
0:28 Constant:
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:27 Function Definition: main( (temp void)
|
||||
0:27 Function Parameters:
|
||||
0:? Sequence
|
||||
0:27 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:27 Function Call: @main( (temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:2 Function Definition: PixelShaderFunctionS(f1; (temp uint)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:? Sequence
|
||||
0:3 Branch: Return with expression
|
||||
0:3 packHalf2x16 (temp uint)
|
||||
0:3 Construct vec2 (temp 2-component vector of float)
|
||||
0:3 'inF0' (in float)
|
||||
0:3 Constant:
|
||||
0:3 0.000000
|
||||
0:7 Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of uint)
|
||||
0:7 Function Parameters:
|
||||
0:7 'inF0' (in 1-component vector of float)
|
||||
0:? Sequence
|
||||
0:8 Branch: Return with expression
|
||||
0:8 Construct uint (temp 1-component vector of uint)
|
||||
0:8 packHalf2x16 (temp uint)
|
||||
0:8 Construct vec2 (temp 2-component vector of float)
|
||||
0:8 Construct float (in float)
|
||||
0:8 'inF0' (in 1-component vector of float)
|
||||
0:8 Constant:
|
||||
0:8 0.000000
|
||||
0:12 Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of uint)
|
||||
0:12 Function Parameters:
|
||||
0:12 'inF0' (in 2-component vector of float)
|
||||
0:? Sequence
|
||||
0:13 Branch: Return with expression
|
||||
0:13 Construct uvec2 (temp 2-component vector of uint)
|
||||
0:13 packHalf2x16 (temp uint)
|
||||
0:13 Construct vec2 (temp 2-component vector of float)
|
||||
0:13 direct index (temp float)
|
||||
0:13 'inF0' (in 2-component vector of float)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0.000000
|
||||
0:13 packHalf2x16 (temp uint)
|
||||
0:13 Construct vec2 (temp 2-component vector of float)
|
||||
0:13 direct index (temp float)
|
||||
0:13 'inF0' (in 2-component vector of float)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0.000000
|
||||
0:17 Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of uint)
|
||||
0:17 Function Parameters:
|
||||
0:17 'inF0' (in 3-component vector of float)
|
||||
0:? Sequence
|
||||
0:18 Branch: Return with expression
|
||||
0:18 Construct uvec3 (temp 3-component vector of uint)
|
||||
0:18 packHalf2x16 (temp uint)
|
||||
0:18 Construct vec2 (temp 2-component vector of float)
|
||||
0:18 direct index (temp float)
|
||||
0:18 'inF0' (in 3-component vector of float)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0.000000
|
||||
0:18 packHalf2x16 (temp uint)
|
||||
0:18 Construct vec2 (temp 2-component vector of float)
|
||||
0:18 direct index (temp float)
|
||||
0:18 'inF0' (in 3-component vector of float)
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0.000000
|
||||
0:18 packHalf2x16 (temp uint)
|
||||
0:18 Construct vec2 (temp 2-component vector of float)
|
||||
0:18 direct index (temp float)
|
||||
0:18 'inF0' (in 3-component vector of float)
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:18 Constant:
|
||||
0:18 0.000000
|
||||
0:22 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of uint)
|
||||
0:22 Function Parameters:
|
||||
0:22 'inF0' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:23 Branch: Return with expression
|
||||
0:23 Construct uvec4 (temp 4-component vector of uint)
|
||||
0:23 packHalf2x16 (temp uint)
|
||||
0:23 Construct vec2 (temp 2-component vector of float)
|
||||
0:23 direct index (temp float)
|
||||
0:23 'inF0' (in 4-component vector of float)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:23 packHalf2x16 (temp uint)
|
||||
0:23 Construct vec2 (temp 2-component vector of float)
|
||||
0:23 direct index (temp float)
|
||||
0:23 'inF0' (in 4-component vector of float)
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:23 packHalf2x16 (temp uint)
|
||||
0:23 Construct vec2 (temp 2-component vector of float)
|
||||
0:23 direct index (temp float)
|
||||
0:23 'inF0' (in 4-component vector of float)
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:23 packHalf2x16 (temp uint)
|
||||
0:23 Construct vec2 (temp 2-component vector of float)
|
||||
0:23 direct index (temp float)
|
||||
0:23 'inF0' (in 4-component vector of float)
|
||||
0:23 Constant:
|
||||
0:23 3 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:27 Function Definition: @main( (temp 4-component vector of float)
|
||||
0:27 Function Parameters:
|
||||
0:? Sequence
|
||||
0:28 Branch: Return with expression
|
||||
0:28 Constant:
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:28 0.000000
|
||||
0:27 Function Definition: main( (temp void)
|
||||
0:27 Function Parameters:
|
||||
0:? Sequence
|
||||
0:27 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:27 Function Call: @main( (temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 106
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 104
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Name 4 "main"
|
||||
Name 11 "PixelShaderFunctionS(f1;"
|
||||
Name 10 "inF0"
|
||||
Name 14 "PixelShaderFunction1(vf1;"
|
||||
Name 13 "inF0"
|
||||
Name 21 "PixelShaderFunction2(vf2;"
|
||||
Name 20 "inF0"
|
||||
Name 28 "PixelShaderFunction3(vf3;"
|
||||
Name 27 "inF0"
|
||||
Name 35 "PixelShaderFunction(vf4;"
|
||||
Name 34 "inF0"
|
||||
Name 38 "@main("
|
||||
Name 104 "@entryPointOutput"
|
||||
Decorate 104(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypePointer Function 6(float)
|
||||
8: TypeInt 32 0
|
||||
9: TypeFunction 8(int) 7(ptr)
|
||||
16: TypeVector 6(float) 2
|
||||
17: TypePointer Function 16(fvec2)
|
||||
18: TypeVector 8(int) 2
|
||||
19: TypeFunction 18(ivec2) 17(ptr)
|
||||
23: TypeVector 6(float) 3
|
||||
24: TypePointer Function 23(fvec3)
|
||||
25: TypeVector 8(int) 3
|
||||
26: TypeFunction 25(ivec3) 24(ptr)
|
||||
30: TypeVector 6(float) 4
|
||||
31: TypePointer Function 30(fvec4)
|
||||
32: TypeVector 8(int) 4
|
||||
33: TypeFunction 32(ivec4) 31(ptr)
|
||||
37: TypeFunction 30(fvec4)
|
||||
41: 6(float) Constant 0
|
||||
51: 8(int) Constant 0
|
||||
56: 8(int) Constant 1
|
||||
72: 8(int) Constant 2
|
||||
92: 8(int) Constant 3
|
||||
100: 30(fvec4) ConstantComposite 41 41 41 41
|
||||
103: TypePointer Output 30(fvec4)
|
||||
104(@entryPointOutput): 103(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
105: 30(fvec4) FunctionCall 38(@main()
|
||||
Store 104(@entryPointOutput) 105
|
||||
Return
|
||||
FunctionEnd
|
||||
11(PixelShaderFunctionS(f1;): 8(int) Function None 9
|
||||
10(inF0): 7(ptr) FunctionParameter
|
||||
12: Label
|
||||
40: 6(float) Load 10(inF0)
|
||||
42: 16(fvec2) CompositeConstruct 40 41
|
||||
43: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 42
|
||||
ReturnValue 43
|
||||
FunctionEnd
|
||||
14(PixelShaderFunction1(vf1;): 8(int) Function None 9
|
||||
13(inF0): 7(ptr) FunctionParameter
|
||||
15: Label
|
||||
46: 6(float) Load 13(inF0)
|
||||
47: 16(fvec2) CompositeConstruct 46 41
|
||||
48: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 47
|
||||
ReturnValue 48
|
||||
FunctionEnd
|
||||
21(PixelShaderFunction2(vf2;): 18(ivec2) Function None 19
|
||||
20(inF0): 17(ptr) FunctionParameter
|
||||
22: Label
|
||||
52: 7(ptr) AccessChain 20(inF0) 51
|
||||
53: 6(float) Load 52
|
||||
54: 16(fvec2) CompositeConstruct 53 41
|
||||
55: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 54
|
||||
57: 7(ptr) AccessChain 20(inF0) 56
|
||||
58: 6(float) Load 57
|
||||
59: 16(fvec2) CompositeConstruct 58 41
|
||||
60: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 59
|
||||
61: 18(ivec2) CompositeConstruct 55 60
|
||||
ReturnValue 61
|
||||
FunctionEnd
|
||||
28(PixelShaderFunction3(vf3;): 25(ivec3) Function None 26
|
||||
27(inF0): 24(ptr) FunctionParameter
|
||||
29: Label
|
||||
64: 7(ptr) AccessChain 27(inF0) 51
|
||||
65: 6(float) Load 64
|
||||
66: 16(fvec2) CompositeConstruct 65 41
|
||||
67: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 66
|
||||
68: 7(ptr) AccessChain 27(inF0) 56
|
||||
69: 6(float) Load 68
|
||||
70: 16(fvec2) CompositeConstruct 69 41
|
||||
71: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 70
|
||||
73: 7(ptr) AccessChain 27(inF0) 72
|
||||
74: 6(float) Load 73
|
||||
75: 16(fvec2) CompositeConstruct 74 41
|
||||
76: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 75
|
||||
77: 25(ivec3) CompositeConstruct 67 71 76
|
||||
ReturnValue 77
|
||||
FunctionEnd
|
||||
35(PixelShaderFunction(vf4;): 32(ivec4) Function None 33
|
||||
34(inF0): 31(ptr) FunctionParameter
|
||||
36: Label
|
||||
80: 7(ptr) AccessChain 34(inF0) 51
|
||||
81: 6(float) Load 80
|
||||
82: 16(fvec2) CompositeConstruct 81 41
|
||||
83: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 82
|
||||
84: 7(ptr) AccessChain 34(inF0) 56
|
||||
85: 6(float) Load 84
|
||||
86: 16(fvec2) CompositeConstruct 85 41
|
||||
87: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 86
|
||||
88: 7(ptr) AccessChain 34(inF0) 72
|
||||
89: 6(float) Load 88
|
||||
90: 16(fvec2) CompositeConstruct 89 41
|
||||
91: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 90
|
||||
93: 7(ptr) AccessChain 34(inF0) 92
|
||||
94: 6(float) Load 93
|
||||
95: 16(fvec2) CompositeConstruct 94 41
|
||||
96: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 95
|
||||
97: 32(ivec4) CompositeConstruct 83 87 91 96
|
||||
ReturnValue 97
|
||||
FunctionEnd
|
||||
38(@main(): 30(fvec4) Function None 37
|
||||
39: Label
|
||||
ReturnValue 100
|
||||
FunctionEnd
|
@ -1,6 +1,5 @@
|
||||
hlsl.intrinsics.negative.frag
|
||||
ERROR: 0:10: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:12: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 0:23: 'length' : ambiguous best function under implicit type conversion
|
||||
ERROR: 0:25: 'normalize' : ambiguous best function under implicit type conversion
|
||||
ERROR: 0:26: 'reflect' : ambiguous best function under implicit type conversion
|
||||
@ -13,16 +12,13 @@ ERROR: 0:47: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:49: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:50: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:51: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:52: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 0:57: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:64: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:66: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:67: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:68: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 0:73: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:84: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:85: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 0:90: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:117: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:117: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
@ -63,7 +59,7 @@ ERROR: 0:133: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:133: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:133: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:133: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 64 compilation errors. No code generated.
|
||||
ERROR: 60 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
@ -111,10 +107,12 @@ ERROR: node is still EOpNull!
|
||||
0:9 3 (const int)
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:12 ERROR: Bad unary op
|
||||
(temp float)
|
||||
0:12 Convert float to uint (temp uint)
|
||||
0:12 'inF0' (in float)
|
||||
0:12 direct index (temp float)
|
||||
0:12 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:12 Convert float to uint (temp uint)
|
||||
0:12 'inF0' (in float)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:13 findMSB (temp uint)
|
||||
0:13 Convert float to uint (temp uint)
|
||||
0:13 'inF0' (in float)
|
||||
@ -195,10 +193,25 @@ ERROR: node is still EOpNull!
|
||||
0:50 0.000000
|
||||
0:51 Constant:
|
||||
0:51 0.000000
|
||||
0:52 ERROR: Bad unary op
|
||||
(temp 2-component vector of float)
|
||||
0:52 Convert float to uint (temp 2-component vector of uint)
|
||||
0:52 'inF0' (in 2-component vector of float)
|
||||
0:52 Construct vec2 (temp 2-component vector of float)
|
||||
0:52 direct index (temp float)
|
||||
0:52 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:52 direct index (temp uint)
|
||||
0:52 Convert float to uint (temp 2-component vector of uint)
|
||||
0:52 'inF0' (in 2-component vector of float)
|
||||
0:52 Constant:
|
||||
0:52 0 (const int)
|
||||
0:52 Constant:
|
||||
0:52 0 (const int)
|
||||
0:52 direct index (temp float)
|
||||
0:52 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:52 direct index (temp uint)
|
||||
0:52 Convert float to uint (temp 2-component vector of uint)
|
||||
0:52 'inF0' (in 2-component vector of float)
|
||||
0:52 Constant:
|
||||
0:52 1 (const int)
|
||||
0:52 Constant:
|
||||
0:52 0 (const int)
|
||||
0:53 findMSB (temp 2-component vector of uint)
|
||||
0:53 Convert float to uint (temp 2-component vector of uint)
|
||||
0:53 'inF0' (in 2-component vector of float)
|
||||
@ -230,10 +243,34 @@ ERROR: node is still EOpNull!
|
||||
0:66 0.000000
|
||||
0:67 Constant:
|
||||
0:67 0.000000
|
||||
0:68 ERROR: Bad unary op
|
||||
(temp 3-component vector of float)
|
||||
0:68 Convert float to uint (temp 3-component vector of uint)
|
||||
0:68 'inF0' (in 3-component vector of float)
|
||||
0:68 Construct vec3 (temp 3-component vector of float)
|
||||
0:68 direct index (temp float)
|
||||
0:68 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:68 direct index (temp uint)
|
||||
0:68 Convert float to uint (temp 3-component vector of uint)
|
||||
0:68 'inF0' (in 3-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 0 (const int)
|
||||
0:68 Constant:
|
||||
0:68 0 (const int)
|
||||
0:68 direct index (temp float)
|
||||
0:68 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:68 direct index (temp uint)
|
||||
0:68 Convert float to uint (temp 3-component vector of uint)
|
||||
0:68 'inF0' (in 3-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 1 (const int)
|
||||
0:68 Constant:
|
||||
0:68 0 (const int)
|
||||
0:68 direct index (temp float)
|
||||
0:68 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:68 direct index (temp uint)
|
||||
0:68 Convert float to uint (temp 3-component vector of uint)
|
||||
0:68 'inF0' (in 3-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 2 (const int)
|
||||
0:68 Constant:
|
||||
0:68 0 (const int)
|
||||
0:69 findMSB (temp 3-component vector of uint)
|
||||
0:69 Convert float to uint (temp 3-component vector of uint)
|
||||
0:69 'inF0' (in 3-component vector of float)
|
||||
@ -269,10 +306,43 @@ ERROR: node is still EOpNull!
|
||||
0:83 'inF1' (in 4-component vector of float)
|
||||
0:84 Constant:
|
||||
0:84 0.000000
|
||||
0:85 ERROR: Bad unary op
|
||||
(temp 4-component vector of float)
|
||||
0:85 Convert float to uint (temp 4-component vector of uint)
|
||||
0:85 'inF0' (in 4-component vector of float)
|
||||
0:85 Construct vec4 (temp 4-component vector of float)
|
||||
0:85 direct index (temp float)
|
||||
0:85 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:85 direct index (temp uint)
|
||||
0:85 Convert float to uint (temp 4-component vector of uint)
|
||||
0:85 'inF0' (in 4-component vector of float)
|
||||
0:85 Constant:
|
||||
0:85 0 (const int)
|
||||
0:85 Constant:
|
||||
0:85 0 (const int)
|
||||
0:85 direct index (temp float)
|
||||
0:85 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:85 direct index (temp uint)
|
||||
0:85 Convert float to uint (temp 4-component vector of uint)
|
||||
0:85 'inF0' (in 4-component vector of float)
|
||||
0:85 Constant:
|
||||
0:85 1 (const int)
|
||||
0:85 Constant:
|
||||
0:85 0 (const int)
|
||||
0:85 direct index (temp float)
|
||||
0:85 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:85 direct index (temp uint)
|
||||
0:85 Convert float to uint (temp 4-component vector of uint)
|
||||
0:85 'inF0' (in 4-component vector of float)
|
||||
0:85 Constant:
|
||||
0:85 2 (const int)
|
||||
0:85 Constant:
|
||||
0:85 0 (const int)
|
||||
0:85 direct index (temp float)
|
||||
0:85 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:85 direct index (temp uint)
|
||||
0:85 Convert float to uint (temp 4-component vector of uint)
|
||||
0:85 'inF0' (in 4-component vector of float)
|
||||
0:85 Constant:
|
||||
0:85 3 (const int)
|
||||
0:85 Constant:
|
||||
0:85 0 (const int)
|
||||
0:86 findMSB (temp 4-component vector of uint)
|
||||
0:86 Convert float to uint (temp 4-component vector of uint)
|
||||
0:86 'inF0' (in 4-component vector of float)
|
||||
@ -499,10 +569,12 @@ ERROR: node is still EOpNull!
|
||||
0:9 3 (const int)
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:12 ERROR: Bad unary op
|
||||
(temp float)
|
||||
0:12 Convert float to uint (temp uint)
|
||||
0:12 'inF0' (in float)
|
||||
0:12 direct index (temp float)
|
||||
0:12 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:12 Convert float to uint (temp uint)
|
||||
0:12 'inF0' (in float)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:13 findMSB (temp uint)
|
||||
0:13 Convert float to uint (temp uint)
|
||||
0:13 'inF0' (in float)
|
||||
@ -583,10 +655,25 @@ ERROR: node is still EOpNull!
|
||||
0:50 0.000000
|
||||
0:51 Constant:
|
||||
0:51 0.000000
|
||||
0:52 ERROR: Bad unary op
|
||||
(temp 2-component vector of float)
|
||||
0:52 Convert float to uint (temp 2-component vector of uint)
|
||||
0:52 'inF0' (in 2-component vector of float)
|
||||
0:52 Construct vec2 (temp 2-component vector of float)
|
||||
0:52 direct index (temp float)
|
||||
0:52 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:52 direct index (temp uint)
|
||||
0:52 Convert float to uint (temp 2-component vector of uint)
|
||||
0:52 'inF0' (in 2-component vector of float)
|
||||
0:52 Constant:
|
||||
0:52 0 (const int)
|
||||
0:52 Constant:
|
||||
0:52 0 (const int)
|
||||
0:52 direct index (temp float)
|
||||
0:52 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:52 direct index (temp uint)
|
||||
0:52 Convert float to uint (temp 2-component vector of uint)
|
||||
0:52 'inF0' (in 2-component vector of float)
|
||||
0:52 Constant:
|
||||
0:52 1 (const int)
|
||||
0:52 Constant:
|
||||
0:52 0 (const int)
|
||||
0:53 findMSB (temp 2-component vector of uint)
|
||||
0:53 Convert float to uint (temp 2-component vector of uint)
|
||||
0:53 'inF0' (in 2-component vector of float)
|
||||
@ -618,10 +705,34 @@ ERROR: node is still EOpNull!
|
||||
0:66 0.000000
|
||||
0:67 Constant:
|
||||
0:67 0.000000
|
||||
0:68 ERROR: Bad unary op
|
||||
(temp 3-component vector of float)
|
||||
0:68 Convert float to uint (temp 3-component vector of uint)
|
||||
0:68 'inF0' (in 3-component vector of float)
|
||||
0:68 Construct vec3 (temp 3-component vector of float)
|
||||
0:68 direct index (temp float)
|
||||
0:68 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:68 direct index (temp uint)
|
||||
0:68 Convert float to uint (temp 3-component vector of uint)
|
||||
0:68 'inF0' (in 3-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 0 (const int)
|
||||
0:68 Constant:
|
||||
0:68 0 (const int)
|
||||
0:68 direct index (temp float)
|
||||
0:68 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:68 direct index (temp uint)
|
||||
0:68 Convert float to uint (temp 3-component vector of uint)
|
||||
0:68 'inF0' (in 3-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 1 (const int)
|
||||
0:68 Constant:
|
||||
0:68 0 (const int)
|
||||
0:68 direct index (temp float)
|
||||
0:68 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:68 direct index (temp uint)
|
||||
0:68 Convert float to uint (temp 3-component vector of uint)
|
||||
0:68 'inF0' (in 3-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 2 (const int)
|
||||
0:68 Constant:
|
||||
0:68 0 (const int)
|
||||
0:69 findMSB (temp 3-component vector of uint)
|
||||
0:69 Convert float to uint (temp 3-component vector of uint)
|
||||
0:69 'inF0' (in 3-component vector of float)
|
||||
@ -657,10 +768,43 @@ ERROR: node is still EOpNull!
|
||||
0:83 'inF1' (in 4-component vector of float)
|
||||
0:84 Constant:
|
||||
0:84 0.000000
|
||||
0:85 ERROR: Bad unary op
|
||||
(temp 4-component vector of float)
|
||||
0:85 Convert float to uint (temp 4-component vector of uint)
|
||||
0:85 'inF0' (in 4-component vector of float)
|
||||
0:85 Construct vec4 (temp 4-component vector of float)
|
||||
0:85 direct index (temp float)
|
||||
0:85 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:85 direct index (temp uint)
|
||||
0:85 Convert float to uint (temp 4-component vector of uint)
|
||||
0:85 'inF0' (in 4-component vector of float)
|
||||
0:85 Constant:
|
||||
0:85 0 (const int)
|
||||
0:85 Constant:
|
||||
0:85 0 (const int)
|
||||
0:85 direct index (temp float)
|
||||
0:85 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:85 direct index (temp uint)
|
||||
0:85 Convert float to uint (temp 4-component vector of uint)
|
||||
0:85 'inF0' (in 4-component vector of float)
|
||||
0:85 Constant:
|
||||
0:85 1 (const int)
|
||||
0:85 Constant:
|
||||
0:85 0 (const int)
|
||||
0:85 direct index (temp float)
|
||||
0:85 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:85 direct index (temp uint)
|
||||
0:85 Convert float to uint (temp 4-component vector of uint)
|
||||
0:85 'inF0' (in 4-component vector of float)
|
||||
0:85 Constant:
|
||||
0:85 2 (const int)
|
||||
0:85 Constant:
|
||||
0:85 0 (const int)
|
||||
0:85 direct index (temp float)
|
||||
0:85 unpackHalf2x16 (temp 2-component vector of float)
|
||||
0:85 direct index (temp uint)
|
||||
0:85 Convert float to uint (temp 4-component vector of uint)
|
||||
0:85 'inF0' (in 4-component vector of float)
|
||||
0:85 Constant:
|
||||
0:85 3 (const int)
|
||||
0:85 Constant:
|
||||
0:85 0 (const int)
|
||||
0:86 findMSB (temp 4-component vector of uint)
|
||||
0:86 Convert float to uint (temp 4-component vector of uint)
|
||||
0:86 'inF0' (in 4-component vector of float)
|
||||
|
@ -50,16 +50,36 @@ gl_FragCoord origin is upper left
|
||||
0:15 'r08' (temp uint)
|
||||
0:15 Constant:
|
||||
0:15 58 (const uint)
|
||||
0:18 move second child to first child (temp 4-component vector of float)
|
||||
0:18 color: direct index for structure (temp 4-component vector of float)
|
||||
0:18 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||
0:16 Sequence
|
||||
0:16 move second child to first child (temp float)
|
||||
0:16 'r09' (temp float)
|
||||
0:16 Constant:
|
||||
0:16 1.000000
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child (temp float)
|
||||
0:17 'r10' (temp float)
|
||||
0:17 Constant:
|
||||
0:17 1.000000
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child (temp float)
|
||||
0:18 'r11' (temp float)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:18 Construct vec4 (temp 4-component vector of float)
|
||||
0:18 Convert int to float (temp float)
|
||||
0:18 'r07' (temp int)
|
||||
0:19 Branch: Return with expression
|
||||
0:19 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||
0:18 1.100000
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child (temp float)
|
||||
0:19 'r12' (temp float)
|
||||
0:19 Constant:
|
||||
0:19 1.100000
|
||||
0:22 move second child to first child (temp 4-component vector of float)
|
||||
0:22 color: direct index for structure (temp 4-component vector of float)
|
||||
0:22 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Construct vec4 (temp 4-component vector of float)
|
||||
0:22 Convert int to float (temp float)
|
||||
0:22 'r07' (temp int)
|
||||
0:23 Branch: Return with expression
|
||||
0:23 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||
0:5 Function Definition: main( (temp void)
|
||||
0:5 Function Parameters:
|
||||
0:? Sequence
|
||||
@ -128,16 +148,36 @@ gl_FragCoord origin is upper left
|
||||
0:15 'r08' (temp uint)
|
||||
0:15 Constant:
|
||||
0:15 58 (const uint)
|
||||
0:18 move second child to first child (temp 4-component vector of float)
|
||||
0:18 color: direct index for structure (temp 4-component vector of float)
|
||||
0:18 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||
0:16 Sequence
|
||||
0:16 move second child to first child (temp float)
|
||||
0:16 'r09' (temp float)
|
||||
0:16 Constant:
|
||||
0:16 1.000000
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child (temp float)
|
||||
0:17 'r10' (temp float)
|
||||
0:17 Constant:
|
||||
0:17 1.000000
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child (temp float)
|
||||
0:18 'r11' (temp float)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:18 Construct vec4 (temp 4-component vector of float)
|
||||
0:18 Convert int to float (temp float)
|
||||
0:18 'r07' (temp int)
|
||||
0:19 Branch: Return with expression
|
||||
0:19 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||
0:18 1.100000
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child (temp float)
|
||||
0:19 'r12' (temp float)
|
||||
0:19 Constant:
|
||||
0:19 1.100000
|
||||
0:22 move second child to first child (temp 4-component vector of float)
|
||||
0:22 color: direct index for structure (temp 4-component vector of float)
|
||||
0:22 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Construct vec4 (temp 4-component vector of float)
|
||||
0:22 Convert int to float (temp float)
|
||||
0:22 'r07' (temp int)
|
||||
0:23 Branch: Return with expression
|
||||
0:23 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||
0:5 Function Definition: main( (temp void)
|
||||
0:5 Function Parameters:
|
||||
0:? Sequence
|
||||
@ -153,12 +193,12 @@ gl_FragCoord origin is upper left
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 49
|
||||
// Id's are bound by 54
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 46
|
||||
EntryPoint Fragment 4 "main" 51
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Name 4 "main"
|
||||
Name 8 "PS_OUTPUT"
|
||||
@ -173,9 +213,13 @@ gl_FragCoord origin is upper left
|
||||
Name 28 "r06"
|
||||
Name 30 "r07"
|
||||
Name 32 "r08"
|
||||
Name 35 "ps_output"
|
||||
Name 46 "color"
|
||||
Decorate 46(color) Location 0
|
||||
Name 34 "r09"
|
||||
Name 35 "r10"
|
||||
Name 36 "r11"
|
||||
Name 38 "r12"
|
||||
Name 40 "ps_output"
|
||||
Name 51 "color"
|
||||
Decorate 51(color) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@ -195,16 +239,17 @@ gl_FragCoord origin is upper left
|
||||
29: 24(int) Constant 6
|
||||
31: 24(int) Constant 57
|
||||
33: 15(int) Constant 58
|
||||
34: TypePointer Function 8(PS_OUTPUT)
|
||||
36: 24(int) Constant 0
|
||||
40: TypePointer Function 7(fvec4)
|
||||
45: TypePointer Output 7(fvec4)
|
||||
46(color): 45(ptr) Variable Output
|
||||
37: 6(float) Constant 1066192077
|
||||
39: TypePointer Function 8(PS_OUTPUT)
|
||||
41: 24(int) Constant 0
|
||||
45: TypePointer Function 7(fvec4)
|
||||
50: TypePointer Output 7(fvec4)
|
||||
51(color): 50(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
47:8(PS_OUTPUT) FunctionCall 10(@main()
|
||||
48: 7(fvec4) CompositeExtract 47 0
|
||||
Store 46(color) 48
|
||||
52:8(PS_OUTPUT) FunctionCall 10(@main()
|
||||
53: 7(fvec4) CompositeExtract 52 0
|
||||
Store 51(color) 53
|
||||
Return
|
||||
FunctionEnd
|
||||
10(@main():8(PS_OUTPUT) Function None 9
|
||||
@ -218,7 +263,11 @@ gl_FragCoord origin is upper left
|
||||
28(r06): 25(ptr) Variable Function
|
||||
30(r07): 25(ptr) Variable Function
|
||||
32(r08): 16(ptr) Variable Function
|
||||
35(ps_output): 34(ptr) Variable Function
|
||||
34(r09): 12(ptr) Variable Function
|
||||
35(r10): 12(ptr) Variable Function
|
||||
36(r11): 12(ptr) Variable Function
|
||||
38(r12): 12(ptr) Variable Function
|
||||
40(ps_output): 39(ptr) Variable Function
|
||||
Store 13(r00) 14
|
||||
Store 17(r01) 18
|
||||
Store 19(r02) 20
|
||||
@ -228,11 +277,15 @@ gl_FragCoord origin is upper left
|
||||
Store 28(r06) 29
|
||||
Store 30(r07) 31
|
||||
Store 32(r08) 33
|
||||
37: 24(int) Load 30(r07)
|
||||
38: 6(float) ConvertSToF 37
|
||||
39: 7(fvec4) CompositeConstruct 38 38 38 38
|
||||
41: 40(ptr) AccessChain 35(ps_output) 36
|
||||
Store 41 39
|
||||
42:8(PS_OUTPUT) Load 35(ps_output)
|
||||
ReturnValue 42
|
||||
Store 34(r09) 14
|
||||
Store 35(r10) 14
|
||||
Store 36(r11) 37
|
||||
Store 38(r12) 37
|
||||
42: 24(int) Load 30(r07)
|
||||
43: 6(float) ConvertSToF 42
|
||||
44: 7(fvec4) CompositeConstruct 43 43 43 43
|
||||
46: 45(ptr) AccessChain 40(ps_output) 41
|
||||
Store 46 44
|
||||
47:8(PS_OUTPUT) Load 40(ps_output)
|
||||
ReturnValue 47
|
||||
FunctionEnd
|
||||
|
@ -6,104 +6,110 @@ WARNING: 0:30: 'register' : ignoring shader_profile
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:34 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:34 Function Parameters:
|
||||
0:34 'input' (in 4-component vector of float)
|
||||
0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:40 Function Parameters:
|
||||
0:40 'input' (in 4-component vector of float)
|
||||
0:40 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:? Sequence
|
||||
0:45 Compare Equal (temp bool)
|
||||
0:45 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:45 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:46 move second child to first child (temp 4-component vector of float)
|
||||
0:46 i: direct index for structure (temp 4-component vector of float)
|
||||
0:46 's2' (global structure{temp 4-component vector of float i})
|
||||
0:46 Constant:
|
||||
0:46 0 (const int)
|
||||
0:46 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:46 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:46 Constant:
|
||||
0:46 7 (const int)
|
||||
0:50 move second child to first child (temp structure{})
|
||||
0:50 'e' (temp structure{})
|
||||
0:50 e: direct index for structure (temp structure{})
|
||||
0:50 'ce' (temp structure{temp structure{} e})
|
||||
0:50 Constant:
|
||||
0:50 0 (const int)
|
||||
0:52 Branch: Return with expression
|
||||
0:52 'input' (in 4-component vector of float)
|
||||
0:40 Function Definition: PixelShaderFunction( (temp void)
|
||||
0:40 Function Parameters:
|
||||
0:? Sequence
|
||||
0:39 Compare Equal (temp bool)
|
||||
0:39 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:39 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:40 move second child to first child (temp 4-component vector of float)
|
||||
0:40 i: direct index for structure (temp 4-component vector of float)
|
||||
0:40 's2' (global structure{temp 4-component vector of float i})
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:40 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 7 (const int)
|
||||
0:42 Branch: Return with expression
|
||||
0:42 'input' (in 4-component vector of float)
|
||||
0:34 Function Definition: PixelShaderFunction( (temp void)
|
||||
0:34 Function Parameters:
|
||||
0:? Sequence
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:34 Sequence
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:34 a: direct index for structure (temp 4-component vector of float)
|
||||
0:40 Sequence
|
||||
0:40 move second child to first child (temp 4-component vector of float)
|
||||
0:40 a: direct index for structure (temp 4-component vector of float)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 a: direct index for structure (smooth temp 4-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 b: direct index for structure (temp bool)
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 a: direct index for structure (smooth temp 4-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 move second child to first child (temp bool)
|
||||
0:40 b: direct index for structure (temp bool)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 b: direct index for structure (flat temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 move second child to first child (temp 1-component vector of float)
|
||||
0:34 c: direct index for structure (temp 1-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 b: direct index for structure (flat temp bool)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 move second child to first child (temp 1-component vector of float)
|
||||
0:40 c: direct index for structure (temp 1-component vector of float)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 c: direct index for structure (centroid noperspective temp 1-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 move second child to first child (temp 2-component vector of float)
|
||||
0:34 d: direct index for structure (temp 2-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 2 (const int)
|
||||
0:40 c: direct index for structure (centroid noperspective temp 1-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 2 (const int)
|
||||
0:40 move second child to first child (temp 2-component vector of float)
|
||||
0:40 d: direct index for structure (temp 2-component vector of float)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 d: direct index for structure (centroid sample temp 2-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff1: direct index for structure (temp bool)
|
||||
0:40 Constant:
|
||||
0:40 3 (const int)
|
||||
0:40 d: direct index for structure (centroid sample temp 2-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 3 (const int)
|
||||
0:40 move second child to first child (temp bool)
|
||||
0:40 ff1: direct index for structure (temp bool)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 4 (const int)
|
||||
0:40 Constant:
|
||||
0:40 4 (const int)
|
||||
0:? 's_ff1' (in bool Face)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff2: direct index for structure (temp bool)
|
||||
0:40 move second child to first child (temp bool)
|
||||
0:40 ff2: direct index for structure (temp bool)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 5 (const int)
|
||||
0:34 ff2: direct index for structure (temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 4 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff3: direct index for structure (temp bool)
|
||||
0:40 Constant:
|
||||
0:40 5 (const int)
|
||||
0:40 ff2: direct index for structure (temp bool)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 4 (const int)
|
||||
0:40 move second child to first child (temp bool)
|
||||
0:40 ff3: direct index for structure (temp bool)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 6 (const int)
|
||||
0:34 ff3: direct index for structure (temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 5 (const int)
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:34 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 6 (const int)
|
||||
0:40 ff3: direct index for structure (temp bool)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 5 (const int)
|
||||
0:40 move second child to first child (temp 4-component vector of float)
|
||||
0:40 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 7 (const int)
|
||||
0:34 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 6 (const int)
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 7 (const int)
|
||||
0:40 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 6 (const int)
|
||||
0:40 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:34 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:40 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:? Linker Objects
|
||||
@ -121,104 +127,110 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:34 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:34 Function Parameters:
|
||||
0:34 'input' (in 4-component vector of float)
|
||||
0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:40 Function Parameters:
|
||||
0:40 'input' (in 4-component vector of float)
|
||||
0:40 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:? Sequence
|
||||
0:45 Compare Equal (temp bool)
|
||||
0:45 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:45 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:46 move second child to first child (temp 4-component vector of float)
|
||||
0:46 i: direct index for structure (temp 4-component vector of float)
|
||||
0:46 's2' (global structure{temp 4-component vector of float i})
|
||||
0:46 Constant:
|
||||
0:46 0 (const int)
|
||||
0:46 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:46 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:46 Constant:
|
||||
0:46 7 (const int)
|
||||
0:50 move second child to first child (temp structure{})
|
||||
0:50 'e' (temp structure{})
|
||||
0:50 e: direct index for structure (temp structure{})
|
||||
0:50 'ce' (temp structure{temp structure{} e})
|
||||
0:50 Constant:
|
||||
0:50 0 (const int)
|
||||
0:52 Branch: Return with expression
|
||||
0:52 'input' (in 4-component vector of float)
|
||||
0:40 Function Definition: PixelShaderFunction( (temp void)
|
||||
0:40 Function Parameters:
|
||||
0:? Sequence
|
||||
0:39 Compare Equal (temp bool)
|
||||
0:39 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:39 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:40 move second child to first child (temp 4-component vector of float)
|
||||
0:40 i: direct index for structure (temp 4-component vector of float)
|
||||
0:40 's2' (global structure{temp 4-component vector of float i})
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:40 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 7 (const int)
|
||||
0:42 Branch: Return with expression
|
||||
0:42 'input' (in 4-component vector of float)
|
||||
0:34 Function Definition: PixelShaderFunction( (temp void)
|
||||
0:34 Function Parameters:
|
||||
0:? Sequence
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:34 Sequence
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:34 a: direct index for structure (temp 4-component vector of float)
|
||||
0:40 Sequence
|
||||
0:40 move second child to first child (temp 4-component vector of float)
|
||||
0:40 a: direct index for structure (temp 4-component vector of float)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 a: direct index for structure (smooth temp 4-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 b: direct index for structure (temp bool)
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 a: direct index for structure (smooth temp 4-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 move second child to first child (temp bool)
|
||||
0:40 b: direct index for structure (temp bool)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 b: direct index for structure (flat temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 move second child to first child (temp 1-component vector of float)
|
||||
0:34 c: direct index for structure (temp 1-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 b: direct index for structure (flat temp bool)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 move second child to first child (temp 1-component vector of float)
|
||||
0:40 c: direct index for structure (temp 1-component vector of float)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 c: direct index for structure (centroid noperspective temp 1-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 move second child to first child (temp 2-component vector of float)
|
||||
0:34 d: direct index for structure (temp 2-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 2 (const int)
|
||||
0:40 c: direct index for structure (centroid noperspective temp 1-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 2 (const int)
|
||||
0:40 move second child to first child (temp 2-component vector of float)
|
||||
0:40 d: direct index for structure (temp 2-component vector of float)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 d: direct index for structure (centroid sample temp 2-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff1: direct index for structure (temp bool)
|
||||
0:40 Constant:
|
||||
0:40 3 (const int)
|
||||
0:40 d: direct index for structure (centroid sample temp 2-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 3 (const int)
|
||||
0:40 move second child to first child (temp bool)
|
||||
0:40 ff1: direct index for structure (temp bool)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 4 (const int)
|
||||
0:40 Constant:
|
||||
0:40 4 (const int)
|
||||
0:? 's_ff1' (in bool Face)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff2: direct index for structure (temp bool)
|
||||
0:40 move second child to first child (temp bool)
|
||||
0:40 ff2: direct index for structure (temp bool)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 5 (const int)
|
||||
0:34 ff2: direct index for structure (temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 4 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff3: direct index for structure (temp bool)
|
||||
0:40 Constant:
|
||||
0:40 5 (const int)
|
||||
0:40 ff2: direct index for structure (temp bool)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 4 (const int)
|
||||
0:40 move second child to first child (temp bool)
|
||||
0:40 ff3: direct index for structure (temp bool)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 6 (const int)
|
||||
0:34 ff3: direct index for structure (temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 5 (const int)
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:34 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 6 (const int)
|
||||
0:40 ff3: direct index for structure (temp bool)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 5 (const int)
|
||||
0:40 move second child to first child (temp 4-component vector of float)
|
||||
0:40 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 7 (const int)
|
||||
0:34 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 6 (const int)
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 7 (const int)
|
||||
0:40 ff4: direct index for structure (temp 4-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 6 (const int)
|
||||
0:40 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:34 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:40 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
|
||||
0:? Linker Objects
|
||||
@ -231,12 +243,12 @@ gl_FragCoord origin is upper left
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 97
|
||||
// Id's are bound by 105
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 43 48 71 86
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 51 56 79 94
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 11 "IN_S"
|
||||
@ -257,49 +269,54 @@ gl_FragCoord origin is upper left
|
||||
Name 28 ""
|
||||
MemberName 28 0 "i"
|
||||
Name 30 "s2"
|
||||
Name 41 "input"
|
||||
Name 43 "input"
|
||||
Name 45 "s"
|
||||
Name 46 "IN_S"
|
||||
MemberName 46(IN_S) 0 "a"
|
||||
MemberName 46(IN_S) 1 "b"
|
||||
MemberName 46(IN_S) 2 "c"
|
||||
MemberName 46(IN_S) 3 "d"
|
||||
MemberName 46(IN_S) 4 "ff2"
|
||||
MemberName 46(IN_S) 5 "ff3"
|
||||
MemberName 46(IN_S) 6 "ff4"
|
||||
Name 48 "s"
|
||||
Name 71 "s_ff1"
|
||||
Name 86 "@entryPointOutput"
|
||||
Name 87 "param"
|
||||
Name 89 "param"
|
||||
Name 93 "myS"
|
||||
MemberName 93(myS) 0 "b"
|
||||
MemberName 93(myS) 1 "c"
|
||||
MemberName 93(myS) 2 "a"
|
||||
MemberName 93(myS) 3 "d"
|
||||
Name 94 "$Global"
|
||||
MemberName 94($Global) 0 "s1"
|
||||
MemberName 94($Global) 1 "ff5"
|
||||
MemberName 94($Global) 2 "ff6"
|
||||
Name 96 ""
|
||||
Decorate 43(input) Location 0
|
||||
MemberDecorate 46(IN_S) 1 Flat
|
||||
MemberDecorate 46(IN_S) 2 NoPerspective
|
||||
MemberDecorate 46(IN_S) 2 Centroid
|
||||
MemberDecorate 46(IN_S) 3 Centroid
|
||||
Decorate 48(s) Location 1
|
||||
Decorate 71(s_ff1) BuiltIn FrontFacing
|
||||
Decorate 86(@entryPointOutput) Location 0
|
||||
MemberDecorate 93(myS) 0 Offset 0
|
||||
MemberDecorate 93(myS) 1 Offset 4
|
||||
MemberDecorate 93(myS) 2 Offset 16
|
||||
MemberDecorate 93(myS) 3 Offset 32
|
||||
MemberDecorate 94($Global) 0 Offset 0
|
||||
MemberDecorate 94($Global) 1 Offset 1620
|
||||
MemberDecorate 94($Global) 2 Offset 1636
|
||||
Decorate 94($Global) Block
|
||||
Decorate 96 DescriptorSet 0
|
||||
Name 38 "empty"
|
||||
Name 40 "e"
|
||||
Name 41 "containEmpty"
|
||||
MemberName 41(containEmpty) 0 "e"
|
||||
Name 43 "ce"
|
||||
Name 49 "input"
|
||||
Name 51 "input"
|
||||
Name 53 "s"
|
||||
Name 54 "IN_S"
|
||||
MemberName 54(IN_S) 0 "a"
|
||||
MemberName 54(IN_S) 1 "b"
|
||||
MemberName 54(IN_S) 2 "c"
|
||||
MemberName 54(IN_S) 3 "d"
|
||||
MemberName 54(IN_S) 4 "ff2"
|
||||
MemberName 54(IN_S) 5 "ff3"
|
||||
MemberName 54(IN_S) 6 "ff4"
|
||||
Name 56 "s"
|
||||
Name 79 "s_ff1"
|
||||
Name 94 "@entryPointOutput"
|
||||
Name 95 "param"
|
||||
Name 97 "param"
|
||||
Name 101 "myS"
|
||||
MemberName 101(myS) 0 "b"
|
||||
MemberName 101(myS) 1 "c"
|
||||
MemberName 101(myS) 2 "a"
|
||||
MemberName 101(myS) 3 "d"
|
||||
Name 102 "$Global"
|
||||
MemberName 102($Global) 0 "s1"
|
||||
MemberName 102($Global) 1 "ff5"
|
||||
MemberName 102($Global) 2 "ff6"
|
||||
Name 104 ""
|
||||
Decorate 51(input) Location 0
|
||||
MemberDecorate 54(IN_S) 1 Flat
|
||||
MemberDecorate 54(IN_S) 2 NoPerspective
|
||||
MemberDecorate 54(IN_S) 2 Centroid
|
||||
MemberDecorate 54(IN_S) 3 Centroid
|
||||
Decorate 56(s) Location 1
|
||||
Decorate 79(s_ff1) BuiltIn FrontFacing
|
||||
Decorate 94(@entryPointOutput) Location 0
|
||||
MemberDecorate 101(myS) 0 Offset 0
|
||||
MemberDecorate 101(myS) 1 Offset 4
|
||||
MemberDecorate 101(myS) 2 Offset 16
|
||||
MemberDecorate 101(myS) 3 Offset 32
|
||||
MemberDecorate 102($Global) 0 Offset 0
|
||||
MemberDecorate 102($Global) 1 Offset 1620
|
||||
MemberDecorate 102($Global) 2 Offset 1636
|
||||
Decorate 102($Global) Block
|
||||
Decorate 104 DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@ -320,76 +337,80 @@ gl_FragCoord origin is upper left
|
||||
32: 31(int) Constant 0
|
||||
33: 31(int) Constant 7
|
||||
36: TypePointer Private 7(fvec4)
|
||||
42: TypePointer Input 7(fvec4)
|
||||
43(input): 42(ptr) Variable Input
|
||||
46(IN_S): TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 7(fvec4)
|
||||
47: TypePointer Input 46(IN_S)
|
||||
48(s): 47(ptr) Variable Input
|
||||
52: 31(int) Constant 1
|
||||
53: TypePointer Input 9(bool)
|
||||
56: TypePointer Function 9(bool)
|
||||
58: 31(int) Constant 2
|
||||
59: TypePointer Input 6(float)
|
||||
62: TypePointer Function 6(float)
|
||||
64: 31(int) Constant 3
|
||||
65: TypePointer Input 10(fvec2)
|
||||
68: TypePointer Function 10(fvec2)
|
||||
70: 31(int) Constant 4
|
||||
71(s_ff1): 53(ptr) Variable Input
|
||||
74: 31(int) Constant 5
|
||||
78: 31(int) Constant 6
|
||||
85: TypePointer Output 7(fvec4)
|
||||
86(@entryPointOutput): 85(ptr) Variable Output
|
||||
92: TypeInt 32 0
|
||||
93(myS): TypeStruct 92(int) 92(int) 7(fvec4) 7(fvec4)
|
||||
94($Global): TypeStruct 93(myS) 6(float) 6(float)
|
||||
95: TypePointer Uniform 94($Global)
|
||||
96: 95(ptr) Variable Uniform
|
||||
38(empty): TypeStruct
|
||||
39: TypePointer Function 38(empty)
|
||||
41(containEmpty): TypeStruct 38(empty)
|
||||
42: TypePointer Function 41(containEmpty)
|
||||
50: TypePointer Input 7(fvec4)
|
||||
51(input): 50(ptr) Variable Input
|
||||
54(IN_S): TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 7(fvec4)
|
||||
55: TypePointer Input 54(IN_S)
|
||||
56(s): 55(ptr) Variable Input
|
||||
60: 31(int) Constant 1
|
||||
61: TypePointer Input 9(bool)
|
||||
64: TypePointer Function 9(bool)
|
||||
66: 31(int) Constant 2
|
||||
67: TypePointer Input 6(float)
|
||||
70: TypePointer Function 6(float)
|
||||
72: 31(int) Constant 3
|
||||
73: TypePointer Input 10(fvec2)
|
||||
76: TypePointer Function 10(fvec2)
|
||||
78: 31(int) Constant 4
|
||||
79(s_ff1): 61(ptr) Variable Input
|
||||
82: 31(int) Constant 5
|
||||
86: 31(int) Constant 6
|
||||
93: TypePointer Output 7(fvec4)
|
||||
94(@entryPointOutput): 93(ptr) Variable Output
|
||||
100: TypeInt 32 0
|
||||
101(myS): TypeStruct 100(int) 100(int) 7(fvec4) 7(fvec4)
|
||||
102($Global): TypeStruct 101(myS) 6(float) 6(float)
|
||||
103: TypePointer Uniform 102($Global)
|
||||
104: 103(ptr) Variable Uniform
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
41(input): 8(ptr) Variable Function
|
||||
45(s): 12(ptr) Variable Function
|
||||
87(param): 8(ptr) Variable Function
|
||||
89(param): 12(ptr) Variable Function
|
||||
44: 7(fvec4) Load 43(input)
|
||||
Store 41(input) 44
|
||||
49: 42(ptr) AccessChain 48(s) 32
|
||||
50: 7(fvec4) Load 49
|
||||
51: 8(ptr) AccessChain 45(s) 32
|
||||
Store 51 50
|
||||
54: 53(ptr) AccessChain 48(s) 52
|
||||
55: 9(bool) Load 54
|
||||
57: 56(ptr) AccessChain 45(s) 52
|
||||
Store 57 55
|
||||
60: 59(ptr) AccessChain 48(s) 58
|
||||
61: 6(float) Load 60
|
||||
63: 62(ptr) AccessChain 45(s) 58
|
||||
Store 63 61
|
||||
66: 65(ptr) AccessChain 48(s) 64
|
||||
67: 10(fvec2) Load 66
|
||||
69: 68(ptr) AccessChain 45(s) 64
|
||||
Store 69 67
|
||||
72: 9(bool) Load 71(s_ff1)
|
||||
73: 56(ptr) AccessChain 45(s) 70
|
||||
Store 73 72
|
||||
75: 53(ptr) AccessChain 48(s) 70
|
||||
76: 9(bool) Load 75
|
||||
77: 56(ptr) AccessChain 45(s) 74
|
||||
Store 77 76
|
||||
79: 53(ptr) AccessChain 48(s) 74
|
||||
80: 9(bool) Load 79
|
||||
81: 56(ptr) AccessChain 45(s) 78
|
||||
49(input): 8(ptr) Variable Function
|
||||
53(s): 12(ptr) Variable Function
|
||||
95(param): 8(ptr) Variable Function
|
||||
97(param): 12(ptr) Variable Function
|
||||
52: 7(fvec4) Load 51(input)
|
||||
Store 49(input) 52
|
||||
57: 50(ptr) AccessChain 56(s) 32
|
||||
58: 7(fvec4) Load 57
|
||||
59: 8(ptr) AccessChain 53(s) 32
|
||||
Store 59 58
|
||||
62: 61(ptr) AccessChain 56(s) 60
|
||||
63: 9(bool) Load 62
|
||||
65: 64(ptr) AccessChain 53(s) 60
|
||||
Store 65 63
|
||||
68: 67(ptr) AccessChain 56(s) 66
|
||||
69: 6(float) Load 68
|
||||
71: 70(ptr) AccessChain 53(s) 66
|
||||
Store 71 69
|
||||
74: 73(ptr) AccessChain 56(s) 72
|
||||
75: 10(fvec2) Load 74
|
||||
77: 76(ptr) AccessChain 53(s) 72
|
||||
Store 77 75
|
||||
80: 9(bool) Load 79(s_ff1)
|
||||
81: 64(ptr) AccessChain 53(s) 78
|
||||
Store 81 80
|
||||
82: 42(ptr) AccessChain 48(s) 78
|
||||
83: 7(fvec4) Load 82
|
||||
84: 8(ptr) AccessChain 45(s) 33
|
||||
Store 84 83
|
||||
88: 7(fvec4) Load 41(input)
|
||||
Store 87(param) 88
|
||||
90: 11(IN_S) Load 45(s)
|
||||
Store 89(param) 90
|
||||
91: 7(fvec4) FunctionCall 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;) 87(param) 89(param)
|
||||
Store 86(@entryPointOutput) 91
|
||||
83: 61(ptr) AccessChain 56(s) 78
|
||||
84: 9(bool) Load 83
|
||||
85: 64(ptr) AccessChain 53(s) 82
|
||||
Store 85 84
|
||||
87: 61(ptr) AccessChain 56(s) 82
|
||||
88: 9(bool) Load 87
|
||||
89: 64(ptr) AccessChain 53(s) 86
|
||||
Store 89 88
|
||||
90: 50(ptr) AccessChain 56(s) 86
|
||||
91: 7(fvec4) Load 90
|
||||
92: 8(ptr) AccessChain 53(s) 33
|
||||
Store 92 91
|
||||
96: 7(fvec4) Load 49(input)
|
||||
Store 95(param) 96
|
||||
98: 11(IN_S) Load 53(s)
|
||||
Store 97(param) 98
|
||||
99: 7(fvec4) FunctionCall 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;) 95(param) 97(param)
|
||||
Store 94(@entryPointOutput) 99
|
||||
Return
|
||||
FunctionEnd
|
||||
16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;): 7(fvec4) Function None 13
|
||||
@ -397,6 +418,8 @@ gl_FragCoord origin is upper left
|
||||
15(s): 12(ptr) FunctionParameter
|
||||
17: Label
|
||||
21(s3): 20(ptr) Variable Function
|
||||
40(e): 39(ptr) Variable Function
|
||||
43(ce): 42(ptr) Variable Function
|
||||
22: 19(FS) Load 21(s3)
|
||||
23: 19(FS) Load 21(s3)
|
||||
24: 18(bvec3) CompositeExtract 22 0
|
||||
@ -407,6 +430,9 @@ gl_FragCoord origin is upper left
|
||||
35: 7(fvec4) Load 34
|
||||
37: 36(ptr) AccessChain 30(s2) 32
|
||||
Store 37 35
|
||||
38: 7(fvec4) Load 14(input)
|
||||
ReturnValue 38
|
||||
44: 39(ptr) AccessChain 43(ce) 32
|
||||
45: 38(empty) Load 44
|
||||
Store 40(e) 45
|
||||
46: 7(fvec4) Load 14(input)
|
||||
ReturnValue 46
|
||||
FunctionEnd
|
||||
|
84
3rdparty/glslang/Test/baseResults/hlsl.structStructName.frag.out
vendored
Executable file
84
3rdparty/glslang/Test/baseResults/hlsl.structStructName.frag.out
vendored
Executable file
@ -0,0 +1,84 @@
|
||||
hlsl.structStructName.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:4 Function Definition: @main( (temp int)
|
||||
0:4 Function Parameters:
|
||||
0:? Sequence
|
||||
0:6 Branch: Return with expression
|
||||
0:6 s: direct index for structure (temp int)
|
||||
0:6 't' (temp structure{temp int s})
|
||||
0:6 Constant:
|
||||
0:6 0 (const int)
|
||||
0:4 Function Definition: main( (temp void)
|
||||
0:4 Function Parameters:
|
||||
0:? Sequence
|
||||
0:4 move second child to first child (temp int)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out int)
|
||||
0:4 Function Call: @main( (temp int)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out int)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:4 Function Definition: @main( (temp int)
|
||||
0:4 Function Parameters:
|
||||
0:? Sequence
|
||||
0:6 Branch: Return with expression
|
||||
0:6 s: direct index for structure (temp int)
|
||||
0:6 't' (temp structure{temp int s})
|
||||
0:6 Constant:
|
||||
0:6 0 (const int)
|
||||
0:4 Function Definition: main( (temp void)
|
||||
0:4 Function Parameters:
|
||||
0:? Sequence
|
||||
0:4 move second child to first child (temp int)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out int)
|
||||
0:4 Function Call: @main( (temp int)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out int)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 22
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 20
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Name 4 "main"
|
||||
Name 8 "@main("
|
||||
Name 10 "S"
|
||||
MemberName 10(S) 0 "s"
|
||||
Name 12 "t"
|
||||
Name 20 "@entryPointOutput"
|
||||
Decorate 20(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeFunction 6(int)
|
||||
10(S): TypeStruct 6(int)
|
||||
11: TypePointer Function 10(S)
|
||||
13: 6(int) Constant 0
|
||||
14: TypePointer Function 6(int)
|
||||
19: TypePointer Output 6(int)
|
||||
20(@entryPointOutput): 19(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
21: 6(int) FunctionCall 8(@main()
|
||||
Store 20(@entryPointOutput) 21
|
||||
Return
|
||||
FunctionEnd
|
||||
8(@main(): 6(int) Function None 7
|
||||
9: Label
|
||||
12(t): 11(ptr) Variable Function
|
||||
15: 14(ptr) AccessChain 12(t) 13
|
||||
16: 6(int) Load 15
|
||||
ReturnValue 16
|
||||
FunctionEnd
|
@ -8,8 +8,8 @@ gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:8 AtomicAdd (temp void)
|
||||
0:8 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:8 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:8 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:8 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:8 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:8 Constant:
|
||||
0:8 0 (const uint)
|
||||
0:8 right-shift (temp int)
|
||||
@ -23,8 +23,8 @@ gl_FragCoord origin is upper left
|
||||
0:9 'u' (temp uint)
|
||||
0:9 AtomicAdd (temp uint)
|
||||
0:9 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:9 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:9 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:9 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:9 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:9 Constant:
|
||||
0:9 0 (const uint)
|
||||
0:9 right-shift (temp int)
|
||||
@ -36,8 +36,8 @@ gl_FragCoord origin is upper left
|
||||
0:9 1 (const int)
|
||||
0:10 AtomicAnd (temp void)
|
||||
0:10 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:10 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:10 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:10 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:10 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 right-shift (temp int)
|
||||
@ -51,8 +51,8 @@ gl_FragCoord origin is upper left
|
||||
0:11 'u' (temp uint)
|
||||
0:11 AtomicAnd (temp uint)
|
||||
0:11 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:11 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:11 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:11 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:11 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 right-shift (temp int)
|
||||
@ -67,8 +67,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Convert int to uint (temp uint)
|
||||
0:12 AtomicCompSwap (temp int)
|
||||
0:12 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:12 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:12 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 right-shift (temp int)
|
||||
@ -84,8 +84,8 @@ gl_FragCoord origin is upper left
|
||||
0:14 'u' (temp uint)
|
||||
0:14 AtomicExchange (temp uint)
|
||||
0:14 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:14 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:14 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:14 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:14 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:14 Constant:
|
||||
0:14 0 (const uint)
|
||||
0:14 right-shift (temp int)
|
||||
@ -97,8 +97,8 @@ gl_FragCoord origin is upper left
|
||||
0:14 1 (const int)
|
||||
0:15 AtomicMax (temp void)
|
||||
0:15 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:15 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:15 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:15 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:15 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:15 Constant:
|
||||
0:15 0 (const uint)
|
||||
0:15 right-shift (temp int)
|
||||
@ -112,8 +112,8 @@ gl_FragCoord origin is upper left
|
||||
0:16 'u' (temp uint)
|
||||
0:16 AtomicMax (temp uint)
|
||||
0:16 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:16 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:16 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:16 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:16 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:16 Constant:
|
||||
0:16 0 (const uint)
|
||||
0:16 right-shift (temp int)
|
||||
@ -125,8 +125,8 @@ gl_FragCoord origin is upper left
|
||||
0:16 1 (const int)
|
||||
0:17 AtomicMin (temp void)
|
||||
0:17 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:17 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:17 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:17 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:17 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:17 Constant:
|
||||
0:17 0 (const uint)
|
||||
0:17 right-shift (temp int)
|
||||
@ -140,8 +140,8 @@ gl_FragCoord origin is upper left
|
||||
0:18 'u' (temp uint)
|
||||
0:18 AtomicMin (temp uint)
|
||||
0:18 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:18 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:18 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:18 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:18 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:18 Constant:
|
||||
0:18 0 (const uint)
|
||||
0:18 right-shift (temp int)
|
||||
@ -153,8 +153,8 @@ gl_FragCoord origin is upper left
|
||||
0:18 1 (const int)
|
||||
0:19 AtomicOr (temp void)
|
||||
0:19 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:19 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:19 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:19 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:19 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:19 Constant:
|
||||
0:19 0 (const uint)
|
||||
0:19 right-shift (temp int)
|
||||
@ -168,8 +168,8 @@ gl_FragCoord origin is upper left
|
||||
0:20 'u' (temp uint)
|
||||
0:20 AtomicOr (temp uint)
|
||||
0:20 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:20 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:20 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:20 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 right-shift (temp int)
|
||||
@ -181,8 +181,8 @@ gl_FragCoord origin is upper left
|
||||
0:20 1 (const int)
|
||||
0:21 AtomicXor (temp void)
|
||||
0:21 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:21 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:21 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:21 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:21 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:21 Constant:
|
||||
0:21 0 (const uint)
|
||||
0:21 right-shift (temp int)
|
||||
@ -196,8 +196,8 @@ gl_FragCoord origin is upper left
|
||||
0:22 'u' (temp uint)
|
||||
0:22 AtomicXor (temp uint)
|
||||
0:22 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:22 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:22 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:22 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:22 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:22 Constant:
|
||||
0:22 0 (const uint)
|
||||
0:22 right-shift (temp int)
|
||||
@ -211,8 +211,8 @@ gl_FragCoord origin is upper left
|
||||
0:24 Construct vec4 (temp 4-component vector of float)
|
||||
0:24 Convert uint to float (temp float)
|
||||
0:24 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:24 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:24 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:24 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:24 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:24 Constant:
|
||||
0:24 0 (const uint)
|
||||
0:24 right-shift (temp int)
|
||||
@ -230,7 +230,7 @@ gl_FragCoord origin is upper left
|
||||
0:5 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:? 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
@ -247,8 +247,8 @@ gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:8 AtomicAdd (temp void)
|
||||
0:8 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:8 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:8 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:8 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:8 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:8 Constant:
|
||||
0:8 0 (const uint)
|
||||
0:8 right-shift (temp int)
|
||||
@ -262,8 +262,8 @@ gl_FragCoord origin is upper left
|
||||
0:9 'u' (temp uint)
|
||||
0:9 AtomicAdd (temp uint)
|
||||
0:9 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:9 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:9 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:9 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:9 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:9 Constant:
|
||||
0:9 0 (const uint)
|
||||
0:9 right-shift (temp int)
|
||||
@ -275,8 +275,8 @@ gl_FragCoord origin is upper left
|
||||
0:9 1 (const int)
|
||||
0:10 AtomicAnd (temp void)
|
||||
0:10 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:10 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:10 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:10 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:10 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 right-shift (temp int)
|
||||
@ -290,8 +290,8 @@ gl_FragCoord origin is upper left
|
||||
0:11 'u' (temp uint)
|
||||
0:11 AtomicAnd (temp uint)
|
||||
0:11 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:11 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:11 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:11 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:11 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 right-shift (temp int)
|
||||
@ -306,8 +306,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Convert int to uint (temp uint)
|
||||
0:12 AtomicCompSwap (temp int)
|
||||
0:12 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:12 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:12 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 right-shift (temp int)
|
||||
@ -323,8 +323,8 @@ gl_FragCoord origin is upper left
|
||||
0:14 'u' (temp uint)
|
||||
0:14 AtomicExchange (temp uint)
|
||||
0:14 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:14 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:14 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:14 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:14 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:14 Constant:
|
||||
0:14 0 (const uint)
|
||||
0:14 right-shift (temp int)
|
||||
@ -336,8 +336,8 @@ gl_FragCoord origin is upper left
|
||||
0:14 1 (const int)
|
||||
0:15 AtomicMax (temp void)
|
||||
0:15 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:15 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:15 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:15 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:15 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:15 Constant:
|
||||
0:15 0 (const uint)
|
||||
0:15 right-shift (temp int)
|
||||
@ -351,8 +351,8 @@ gl_FragCoord origin is upper left
|
||||
0:16 'u' (temp uint)
|
||||
0:16 AtomicMax (temp uint)
|
||||
0:16 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:16 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:16 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:16 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:16 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:16 Constant:
|
||||
0:16 0 (const uint)
|
||||
0:16 right-shift (temp int)
|
||||
@ -364,8 +364,8 @@ gl_FragCoord origin is upper left
|
||||
0:16 1 (const int)
|
||||
0:17 AtomicMin (temp void)
|
||||
0:17 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:17 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:17 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:17 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:17 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:17 Constant:
|
||||
0:17 0 (const uint)
|
||||
0:17 right-shift (temp int)
|
||||
@ -379,8 +379,8 @@ gl_FragCoord origin is upper left
|
||||
0:18 'u' (temp uint)
|
||||
0:18 AtomicMin (temp uint)
|
||||
0:18 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:18 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:18 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:18 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:18 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:18 Constant:
|
||||
0:18 0 (const uint)
|
||||
0:18 right-shift (temp int)
|
||||
@ -392,8 +392,8 @@ gl_FragCoord origin is upper left
|
||||
0:18 1 (const int)
|
||||
0:19 AtomicOr (temp void)
|
||||
0:19 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:19 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:19 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:19 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:19 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:19 Constant:
|
||||
0:19 0 (const uint)
|
||||
0:19 right-shift (temp int)
|
||||
@ -407,8 +407,8 @@ gl_FragCoord origin is upper left
|
||||
0:20 'u' (temp uint)
|
||||
0:20 AtomicOr (temp uint)
|
||||
0:20 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:20 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:20 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:20 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 right-shift (temp int)
|
||||
@ -420,8 +420,8 @@ gl_FragCoord origin is upper left
|
||||
0:20 1 (const int)
|
||||
0:21 AtomicXor (temp void)
|
||||
0:21 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:21 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:21 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:21 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:21 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:21 Constant:
|
||||
0:21 0 (const uint)
|
||||
0:21 right-shift (temp int)
|
||||
@ -435,8 +435,8 @@ gl_FragCoord origin is upper left
|
||||
0:22 'u' (temp uint)
|
||||
0:22 AtomicXor (temp uint)
|
||||
0:22 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:22 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:22 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:22 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:22 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:22 Constant:
|
||||
0:22 0 (const uint)
|
||||
0:22 right-shift (temp int)
|
||||
@ -450,8 +450,8 @@ gl_FragCoord origin is upper left
|
||||
0:24 Construct vec4 (temp 4-component vector of float)
|
||||
0:24 Convert uint to float (temp float)
|
||||
0:24 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:24 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:24 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:24 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:24 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:24 Constant:
|
||||
0:24 0 (const uint)
|
||||
0:24 right-shift (temp int)
|
||||
@ -469,7 +469,7 @@ gl_FragCoord origin is upper left
|
||||
0:5 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint sbuf})
|
||||
0:? 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
@ -486,8 +486,8 @@ gl_FragCoord origin is upper left
|
||||
Name 12 "@main(u1;"
|
||||
Name 11 "pos"
|
||||
Name 15 "sbuf"
|
||||
MemberName 15(sbuf) 0 "sbuf"
|
||||
Name 17 ""
|
||||
MemberName 15(sbuf) 0 "@data"
|
||||
Name 17 "sbuf"
|
||||
Name 29 "u"
|
||||
Name 78 "pos"
|
||||
Name 80 "pos"
|
||||
@ -496,7 +496,7 @@ gl_FragCoord origin is upper left
|
||||
Decorate 14 ArrayStride 4
|
||||
MemberDecorate 15(sbuf) 0 Offset 0
|
||||
Decorate 15(sbuf) BufferBlock
|
||||
Decorate 17 DescriptorSet 0
|
||||
Decorate 17(sbuf) DescriptorSet 0
|
||||
Decorate 80(pos) Location 0
|
||||
Decorate 83(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
@ -509,7 +509,7 @@ gl_FragCoord origin is upper left
|
||||
14: TypeRuntimeArray 6(int)
|
||||
15(sbuf): TypeStruct 14
|
||||
16: TypePointer Uniform 15(sbuf)
|
||||
17: 16(ptr) Variable Uniform
|
||||
17(sbuf): 16(ptr) Variable Uniform
|
||||
18: TypeInt 32 1
|
||||
19: 18(int) Constant 0
|
||||
20: 18(int) Constant 8
|
||||
@ -539,59 +539,59 @@ gl_FragCoord origin is upper left
|
||||
13: Label
|
||||
29(u): 7(ptr) Variable Function
|
||||
22: 18(int) ShiftRightArithmetic 20 21
|
||||
24: 23(ptr) AccessChain 17 19 22
|
||||
24: 23(ptr) AccessChain 17(sbuf) 19 22
|
||||
28: 2 AtomicIAdd 24 26 27 25
|
||||
30: 18(int) ShiftRightArithmetic 20 21
|
||||
31: 23(ptr) AccessChain 17 19 30
|
||||
31: 23(ptr) AccessChain 17(sbuf) 19 30
|
||||
32: 6(int) AtomicIAdd 31 26 27 25
|
||||
Store 29(u) 32
|
||||
33: 18(int) ShiftRightArithmetic 20 21
|
||||
34: 23(ptr) AccessChain 17 19 33
|
||||
34: 23(ptr) AccessChain 17(sbuf) 19 33
|
||||
35: 2 AtomicAnd 34 26 27 25
|
||||
36: 18(int) ShiftRightArithmetic 20 21
|
||||
37: 23(ptr) AccessChain 17 19 36
|
||||
37: 23(ptr) AccessChain 17(sbuf) 19 36
|
||||
38: 6(int) AtomicAnd 37 26 27 25
|
||||
Store 29(u) 38
|
||||
39: 18(int) ShiftRightArithmetic 20 21
|
||||
40: 23(ptr) AccessChain 17 19 39
|
||||
40: 23(ptr) AccessChain 17(sbuf) 19 39
|
||||
41: 18(int) AtomicCompareExchange 40 26 27 27 21 25
|
||||
42: 6(int) Bitcast 41
|
||||
Store 29(u) 42
|
||||
43: 18(int) ShiftRightArithmetic 20 21
|
||||
44: 23(ptr) AccessChain 17 19 43
|
||||
44: 23(ptr) AccessChain 17(sbuf) 19 43
|
||||
45: 6(int) AtomicExchange 44 26 27 25
|
||||
Store 29(u) 45
|
||||
46: 18(int) ShiftRightArithmetic 20 21
|
||||
47: 23(ptr) AccessChain 17 19 46
|
||||
47: 23(ptr) AccessChain 17(sbuf) 19 46
|
||||
48: 2 AtomicSMax 47 26 27 25
|
||||
49: 18(int) ShiftRightArithmetic 20 21
|
||||
50: 23(ptr) AccessChain 17 19 49
|
||||
50: 23(ptr) AccessChain 17(sbuf) 19 49
|
||||
51: 6(int) AtomicUMax 50 26 27 25
|
||||
Store 29(u) 51
|
||||
52: 18(int) ShiftRightArithmetic 20 21
|
||||
53: 23(ptr) AccessChain 17 19 52
|
||||
53: 23(ptr) AccessChain 17(sbuf) 19 52
|
||||
54: 2 AtomicSMin 53 26 27 25
|
||||
55: 18(int) ShiftRightArithmetic 20 21
|
||||
56: 23(ptr) AccessChain 17 19 55
|
||||
56: 23(ptr) AccessChain 17(sbuf) 19 55
|
||||
57: 6(int) AtomicUMin 56 26 27 25
|
||||
Store 29(u) 57
|
||||
58: 18(int) ShiftRightArithmetic 20 21
|
||||
59: 23(ptr) AccessChain 17 19 58
|
||||
59: 23(ptr) AccessChain 17(sbuf) 19 58
|
||||
60: 2 AtomicOr 59 26 27 25
|
||||
61: 18(int) ShiftRightArithmetic 20 21
|
||||
62: 23(ptr) AccessChain 17 19 61
|
||||
62: 23(ptr) AccessChain 17(sbuf) 19 61
|
||||
63: 6(int) AtomicOr 62 26 27 25
|
||||
Store 29(u) 63
|
||||
64: 18(int) ShiftRightArithmetic 20 21
|
||||
65: 23(ptr) AccessChain 17 19 64
|
||||
65: 23(ptr) AccessChain 17(sbuf) 19 64
|
||||
66: 2 AtomicXor 65 26 27 25
|
||||
67: 18(int) ShiftRightArithmetic 20 21
|
||||
68: 23(ptr) AccessChain 17 19 67
|
||||
68: 23(ptr) AccessChain 17(sbuf) 19 67
|
||||
69: 6(int) AtomicXor 68 26 27 25
|
||||
Store 29(u) 69
|
||||
70: 6(int) Load 11(pos)
|
||||
71: 18(int) ShiftRightLogical 70 21
|
||||
72: 23(ptr) AccessChain 17 19 71
|
||||
72: 23(ptr) AccessChain 17(sbuf) 19 71
|
||||
73: 6(int) Load 72
|
||||
74: 8(float) ConvertUToF 73
|
||||
75: 9(fvec4) CompositeConstruct 74 74 74 74
|
||||
|
@ -10,8 +10,8 @@ gl_FragCoord origin is upper left
|
||||
0:7 move second child to first child (temp uint)
|
||||
0:7 'size' (temp uint)
|
||||
0:7 array length (temp uint)
|
||||
0:7 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:7 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:7 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:7 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:7 Constant:
|
||||
0:7 0 (const uint)
|
||||
0:12 Branch: Return with expression
|
||||
@ -19,9 +19,9 @@ gl_FragCoord origin is upper left
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:9 add (temp 4-component vector of float)
|
||||
0:9 Convert uint to float (temp float)
|
||||
0:9 indirect index (layout(row_major std430 ) readonly buffer uint)
|
||||
0:9 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:9 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:9 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:9 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:9 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:9 Constant:
|
||||
0:9 0 (const uint)
|
||||
0:9 right-shift (temp int)
|
||||
@ -42,14 +42,14 @@ gl_FragCoord origin is upper left
|
||||
0:10 2 (const int)
|
||||
0:? Construct vec2 (temp 2-component vector of uint)
|
||||
0:10 indirect index (temp float)
|
||||
0:10 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:10 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:10 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:10 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'byteAddrTemp' (temp int)
|
||||
0:10 indirect index (temp float)
|
||||
0:10 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:10 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:10 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:10 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 add (temp int)
|
||||
@ -74,14 +74,14 @@ gl_FragCoord origin is upper left
|
||||
0:11 2 (const int)
|
||||
0:? Construct vec3 (temp 3-component vector of uint)
|
||||
0:11 indirect index (temp float)
|
||||
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:11 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:11 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'byteAddrTemp' (temp int)
|
||||
0:11 indirect index (temp float)
|
||||
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:11 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:11 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 add (temp int)
|
||||
@ -89,8 +89,8 @@ gl_FragCoord origin is upper left
|
||||
0:11 Constant:
|
||||
0:11 1 (const int)
|
||||
0:11 indirect index (temp float)
|
||||
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:11 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:11 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 add (temp int)
|
||||
@ -112,14 +112,14 @@ gl_FragCoord origin is upper left
|
||||
0:12 2 (const int)
|
||||
0:? Construct vec4 (temp 4-component vector of uint)
|
||||
0:12 indirect index (temp float)
|
||||
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:12 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 'byteAddrTemp' (temp int)
|
||||
0:12 indirect index (temp float)
|
||||
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:12 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 add (temp int)
|
||||
@ -127,8 +127,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:12 indirect index (temp float)
|
||||
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:12 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 add (temp int)
|
||||
@ -136,8 +136,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Constant:
|
||||
0:12 2 (const int)
|
||||
0:12 indirect index (temp float)
|
||||
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:12 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 add (temp int)
|
||||
@ -155,7 +155,7 @@ gl_FragCoord origin is upper left
|
||||
0:5 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:? 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
@ -174,8 +174,8 @@ gl_FragCoord origin is upper left
|
||||
0:7 move second child to first child (temp uint)
|
||||
0:7 'size' (temp uint)
|
||||
0:7 array length (temp uint)
|
||||
0:7 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:7 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:7 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:7 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:7 Constant:
|
||||
0:7 0 (const uint)
|
||||
0:12 Branch: Return with expression
|
||||
@ -183,9 +183,9 @@ gl_FragCoord origin is upper left
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:9 add (temp 4-component vector of float)
|
||||
0:9 Convert uint to float (temp float)
|
||||
0:9 indirect index (layout(row_major std430 ) readonly buffer uint)
|
||||
0:9 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:9 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:9 indirect index (layout(row_major std430 ) buffer uint)
|
||||
0:9 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:9 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:9 Constant:
|
||||
0:9 0 (const uint)
|
||||
0:9 right-shift (temp int)
|
||||
@ -206,14 +206,14 @@ gl_FragCoord origin is upper left
|
||||
0:10 2 (const int)
|
||||
0:? Construct vec2 (temp 2-component vector of uint)
|
||||
0:10 indirect index (temp float)
|
||||
0:10 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:10 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:10 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:10 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'byteAddrTemp' (temp int)
|
||||
0:10 indirect index (temp float)
|
||||
0:10 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:10 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:10 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:10 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 add (temp int)
|
||||
@ -238,14 +238,14 @@ gl_FragCoord origin is upper left
|
||||
0:11 2 (const int)
|
||||
0:? Construct vec3 (temp 3-component vector of uint)
|
||||
0:11 indirect index (temp float)
|
||||
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:11 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:11 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'byteAddrTemp' (temp int)
|
||||
0:11 indirect index (temp float)
|
||||
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:11 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:11 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 add (temp int)
|
||||
@ -253,8 +253,8 @@ gl_FragCoord origin is upper left
|
||||
0:11 Constant:
|
||||
0:11 1 (const int)
|
||||
0:11 indirect index (temp float)
|
||||
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:11 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:11 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 add (temp int)
|
||||
@ -276,14 +276,14 @@ gl_FragCoord origin is upper left
|
||||
0:12 2 (const int)
|
||||
0:? Construct vec4 (temp 4-component vector of uint)
|
||||
0:12 indirect index (temp float)
|
||||
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:12 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 'byteAddrTemp' (temp int)
|
||||
0:12 indirect index (temp float)
|
||||
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:12 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 add (temp int)
|
||||
@ -291,8 +291,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:12 indirect index (temp float)
|
||||
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:12 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 add (temp int)
|
||||
@ -300,8 +300,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Constant:
|
||||
0:12 2 (const int)
|
||||
0:12 indirect index (temp float)
|
||||
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
||||
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:12 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of uint)
|
||||
0:12 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 add (temp int)
|
||||
@ -319,7 +319,7 @@ gl_FragCoord origin is upper left
|
||||
0:5 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
||||
0:? 'sbuf' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of uint @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
@ -337,8 +337,8 @@ gl_FragCoord origin is upper left
|
||||
Name 11 "pos"
|
||||
Name 14 "size"
|
||||
Name 16 "sbuf"
|
||||
MemberName 16(sbuf) 0 "sbuf"
|
||||
Name 18 ""
|
||||
MemberName 16(sbuf) 0 "@data"
|
||||
Name 18 "sbuf"
|
||||
Name 30 "byteAddrTemp"
|
||||
Name 53 "byteAddrTemp"
|
||||
Name 78 "byteAddrTemp"
|
||||
@ -350,7 +350,7 @@ gl_FragCoord origin is upper left
|
||||
MemberDecorate 16(sbuf) 0 NonWritable
|
||||
MemberDecorate 16(sbuf) 0 Offset 0
|
||||
Decorate 16(sbuf) BufferBlock
|
||||
Decorate 18 DescriptorSet 0
|
||||
Decorate 18(sbuf) DescriptorSet 0
|
||||
Decorate 107(pos) Location 0
|
||||
Decorate 110(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
@ -363,7 +363,7 @@ gl_FragCoord origin is upper left
|
||||
15: TypeRuntimeArray 6(int)
|
||||
16(sbuf): TypeStruct 15
|
||||
17: TypePointer Uniform 16(sbuf)
|
||||
18: 17(ptr) Variable Uniform
|
||||
18(sbuf): 17(ptr) Variable Uniform
|
||||
19: TypeInt 32 1
|
||||
21: 19(int) Constant 0
|
||||
23: 19(int) Constant 2
|
||||
@ -403,11 +403,11 @@ gl_FragCoord origin is upper left
|
||||
30(byteAddrTemp): 29(ptr) Variable Function
|
||||
53(byteAddrTemp): 29(ptr) Variable Function
|
||||
78(byteAddrTemp): 29(ptr) Variable Function
|
||||
20: 19(int) ArrayLength 18 0
|
||||
20: 19(int) ArrayLength 18(sbuf) 0
|
||||
Store 14(size) 20
|
||||
22: 6(int) Load 11(pos)
|
||||
24: 19(int) ShiftRightLogical 22 23
|
||||
26: 25(ptr) AccessChain 18 21 24
|
||||
26: 25(ptr) AccessChain 18(sbuf) 21 24
|
||||
27: 6(int) Load 26
|
||||
28: 8(float) ConvertUToF 27
|
||||
31: 6(int) Load 11(pos)
|
||||
@ -415,11 +415,11 @@ gl_FragCoord origin is upper left
|
||||
34: 19(int) ShiftRightLogical 33 23
|
||||
Store 30(byteAddrTemp) 34
|
||||
35: 19(int) Load 30(byteAddrTemp)
|
||||
36: 25(ptr) AccessChain 18 21 35
|
||||
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
|
||||
41: 25(ptr) AccessChain 18 21 40
|
||||
41: 25(ptr) AccessChain 18(sbuf) 21 40
|
||||
42: 6(int) Load 41
|
||||
44: 43(ivec2) CompositeConstruct 37 42
|
||||
46: 45(fvec2) ConvertUToF 44
|
||||
@ -433,15 +433,15 @@ gl_FragCoord origin is upper left
|
||||
57: 19(int) ShiftRightLogical 56 23
|
||||
Store 53(byteAddrTemp) 57
|
||||
58: 19(int) Load 53(byteAddrTemp)
|
||||
59: 25(ptr) AccessChain 18 21 58
|
||||
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
|
||||
63: 25(ptr) AccessChain 18 21 62
|
||||
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
|
||||
67: 25(ptr) AccessChain 18 21 66
|
||||
67: 25(ptr) AccessChain 18(sbuf) 21 66
|
||||
68: 6(int) Load 67
|
||||
70: 69(ivec3) CompositeConstruct 60 64 68
|
||||
72: 71(fvec3) ConvertUToF 70
|
||||
@ -455,19 +455,19 @@ gl_FragCoord origin is upper left
|
||||
82: 19(int) ShiftRightLogical 81 23
|
||||
Store 78(byteAddrTemp) 82
|
||||
83: 19(int) Load 78(byteAddrTemp)
|
||||
84: 25(ptr) AccessChain 18 21 83
|
||||
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
|
||||
88: 25(ptr) AccessChain 18 21 87
|
||||
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
|
||||
92: 25(ptr) AccessChain 18 21 91
|
||||
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
|
||||
97: 25(ptr) AccessChain 18 21 96
|
||||
97: 25(ptr) AccessChain 18(sbuf) 21 96
|
||||
98: 6(int) Load 97
|
||||
100: 99(ivec4) CompositeConstruct 85 89 93 98
|
||||
101: 9(fvec4) ConvertUToF 100
|
||||
|
@ -7,9 +7,9 @@ gl_FragCoord origin is upper left
|
||||
0:12 'pos' (in uint)
|
||||
0:? Sequence
|
||||
0:13 move second child to first child (temp float)
|
||||
0:13 indirect index (layout(row_major std430 ) coherent temp float)
|
||||
0:13 sbuf2: direct index for structure (layout(row_major std430 ) coherent buffer implicitly-sized array of float)
|
||||
0:13 'anon@1' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of float sbuf2})
|
||||
0:13 indirect index (layout(row_major std430 ) buffer float)
|
||||
0:13 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:13 'sbuf2' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:13 Constant:
|
||||
0:13 0 (const uint)
|
||||
0:13 add (temp uint)
|
||||
@ -22,8 +22,8 @@ gl_FragCoord origin is upper left
|
||||
0:17 move second child to first child (temp uint)
|
||||
0:17 'size' (temp uint)
|
||||
0:17 array length (temp uint)
|
||||
0:17 sbuf: direct index for structure (layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:17 'anon@0' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:17 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:17 'sbuf' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:17 Constant:
|
||||
0:17 0 (const uint)
|
||||
0:17 move second child to first child (temp uint)
|
||||
@ -33,9 +33,9 @@ gl_FragCoord origin is upper left
|
||||
0:19 Test condition and select (temp void)
|
||||
0:19 Condition
|
||||
0:19 test: direct index for structure (temp bool)
|
||||
0:19 indirect index (layout(row_major std430 ) coherent temp structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 sbuf: direct index for structure (layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 'anon@0' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:19 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 'sbuf' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:19 Constant:
|
||||
0:19 0 (const uint)
|
||||
0:19 'pos' (in uint)
|
||||
@ -46,17 +46,17 @@ gl_FragCoord origin is upper left
|
||||
0:? Construct vec4 (temp 4-component vector of float)
|
||||
0:20 add (temp 3-component vector of float)
|
||||
0:20 color: direct index for structure (temp 3-component vector of float)
|
||||
0:20 indirect index (layout(row_major std430 ) coherent temp structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 sbuf: direct index for structure (layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 'anon@0' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 'sbuf' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:20 indirect index (layout(row_major std430 ) coherent temp float)
|
||||
0:20 sbuf2: direct index for structure (layout(row_major std430 ) coherent buffer implicitly-sized array of float)
|
||||
0:20 'anon@1' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of float sbuf2})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer float)
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:20 'sbuf2' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
@ -80,8 +80,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:? 'anon@1' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of float sbuf2})
|
||||
0:? 'sbuf' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:? 'sbuf2' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
@ -97,9 +97,9 @@ gl_FragCoord origin is upper left
|
||||
0:12 'pos' (in uint)
|
||||
0:? Sequence
|
||||
0:13 move second child to first child (temp float)
|
||||
0:13 indirect index (layout(row_major std430 ) coherent temp float)
|
||||
0:13 sbuf2: direct index for structure (layout(row_major std430 ) coherent buffer implicitly-sized array of float)
|
||||
0:13 'anon@1' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of float sbuf2})
|
||||
0:13 indirect index (layout(row_major std430 ) buffer float)
|
||||
0:13 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:13 'sbuf2' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:13 Constant:
|
||||
0:13 0 (const uint)
|
||||
0:13 add (temp uint)
|
||||
@ -112,8 +112,8 @@ gl_FragCoord origin is upper left
|
||||
0:17 move second child to first child (temp uint)
|
||||
0:17 'size' (temp uint)
|
||||
0:17 array length (temp uint)
|
||||
0:17 sbuf: direct index for structure (layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:17 'anon@0' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:17 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:17 'sbuf' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:17 Constant:
|
||||
0:17 0 (const uint)
|
||||
0:17 move second child to first child (temp uint)
|
||||
@ -123,9 +123,9 @@ gl_FragCoord origin is upper left
|
||||
0:19 Test condition and select (temp void)
|
||||
0:19 Condition
|
||||
0:19 test: direct index for structure (temp bool)
|
||||
0:19 indirect index (layout(row_major std430 ) coherent temp structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 sbuf: direct index for structure (layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 'anon@0' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:19 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 'sbuf' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:19 Constant:
|
||||
0:19 0 (const uint)
|
||||
0:19 'pos' (in uint)
|
||||
@ -136,17 +136,17 @@ gl_FragCoord origin is upper left
|
||||
0:? Construct vec4 (temp 4-component vector of float)
|
||||
0:20 add (temp 3-component vector of float)
|
||||
0:20 color: direct index for structure (temp 3-component vector of float)
|
||||
0:20 indirect index (layout(row_major std430 ) coherent temp structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 sbuf: direct index for structure (layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 'anon@0' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 'sbuf' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:20 indirect index (layout(row_major std430 ) coherent temp float)
|
||||
0:20 sbuf2: direct index for structure (layout(row_major std430 ) coherent buffer implicitly-sized array of float)
|
||||
0:20 'anon@1' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of float sbuf2})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer float)
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:20 'sbuf2' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
@ -170,8 +170,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:? 'anon@1' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) coherent buffer implicitly-sized array of float sbuf2})
|
||||
0:? 'sbuf' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:? 'sbuf2' (layout(row_major std430 ) coherent buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
@ -188,15 +188,15 @@ gl_FragCoord origin is upper left
|
||||
Name 12 "@main(u1;"
|
||||
Name 11 "pos"
|
||||
Name 15 "sbuf2"
|
||||
MemberName 15(sbuf2) 0 "sbuf2"
|
||||
Name 17 ""
|
||||
MemberName 15(sbuf2) 0 "@data"
|
||||
Name 17 "sbuf2"
|
||||
Name 26 "size"
|
||||
Name 28 "sb_t"
|
||||
MemberName 28(sb_t) 0 "color"
|
||||
MemberName 28(sb_t) 1 "test"
|
||||
Name 30 "sbuf"
|
||||
MemberName 30(sbuf) 0 "sbuf"
|
||||
Name 32 ""
|
||||
MemberName 30(sbuf) 0 "@data"
|
||||
Name 32 "sbuf"
|
||||
Name 34 "stride"
|
||||
Name 69 "pos"
|
||||
Name 71 "pos"
|
||||
@ -206,7 +206,7 @@ gl_FragCoord origin is upper left
|
||||
MemberDecorate 15(sbuf2) 0 Coherent
|
||||
MemberDecorate 15(sbuf2) 0 Offset 0
|
||||
Decorate 15(sbuf2) BufferBlock
|
||||
Decorate 17 DescriptorSet 0
|
||||
Decorate 17(sbuf2) DescriptorSet 0
|
||||
MemberDecorate 28(sb_t) 0 Coherent
|
||||
MemberDecorate 28(sb_t) 0 Offset 0
|
||||
MemberDecorate 28(sb_t) 1 Coherent
|
||||
@ -215,7 +215,7 @@ gl_FragCoord origin is upper left
|
||||
MemberDecorate 30(sbuf) 0 Coherent
|
||||
MemberDecorate 30(sbuf) 0 Offset 0
|
||||
Decorate 30(sbuf) BufferBlock
|
||||
Decorate 32 DescriptorSet 0
|
||||
Decorate 32(sbuf) DescriptorSet 0
|
||||
Decorate 71(pos) Location 0
|
||||
Decorate 74(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
@ -228,7 +228,7 @@ gl_FragCoord origin is upper left
|
||||
14: TypeRuntimeArray 8(float)
|
||||
15(sbuf2): TypeStruct 14
|
||||
16: TypePointer Uniform 15(sbuf2)
|
||||
17: 16(ptr) Variable Uniform
|
||||
17(sbuf2): 16(ptr) Variable Uniform
|
||||
18: TypeInt 32 1
|
||||
19: 18(int) Constant 0
|
||||
21: 6(int) Constant 1
|
||||
@ -239,7 +239,7 @@ gl_FragCoord origin is upper left
|
||||
29: TypeRuntimeArray 28(sb_t)
|
||||
30(sbuf): TypeStruct 29
|
||||
31: TypePointer Uniform 30(sbuf)
|
||||
32: 31(ptr) Variable Uniform
|
||||
32(sbuf): 31(ptr) Variable Uniform
|
||||
35: 6(int) Constant 16
|
||||
37: 18(int) Constant 1
|
||||
38: TypePointer Uniform 6(int)
|
||||
@ -270,23 +270,23 @@ gl_FragCoord origin is upper left
|
||||
34(stride): 7(ptr) Variable Function
|
||||
20: 6(int) Load 11(pos)
|
||||
22: 6(int) IAdd 20 21
|
||||
25: 24(ptr) AccessChain 17 19 22
|
||||
25: 24(ptr) AccessChain 17(sbuf2) 19 22
|
||||
Store 25 23
|
||||
33: 18(int) ArrayLength 32 0
|
||||
33: 18(int) ArrayLength 32(sbuf) 0
|
||||
Store 26(size) 33
|
||||
Store 34(stride) 35
|
||||
36: 6(int) Load 11(pos)
|
||||
39: 38(ptr) AccessChain 32 19 36 37
|
||||
39: 38(ptr) AccessChain 32(sbuf) 19 36 37
|
||||
40: 6(int) Load 39
|
||||
43: 41(bool) INotEqual 40 42
|
||||
SelectionMerge 45 None
|
||||
BranchConditional 43 44 61
|
||||
44: Label
|
||||
46: 6(int) Load 11(pos)
|
||||
48: 47(ptr) AccessChain 32 19 46 19
|
||||
48: 47(ptr) AccessChain 32(sbuf) 19 46 19
|
||||
49: 27(fvec3) Load 48
|
||||
50: 6(int) Load 11(pos)
|
||||
51: 24(ptr) AccessChain 17 19 50
|
||||
51: 24(ptr) AccessChain 17(sbuf2) 19 50
|
||||
52: 8(float) Load 51
|
||||
53: 27(fvec3) CompositeConstruct 52 52 52
|
||||
54: 27(fvec3) FAdd 49 53
|
||||
|
266
3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out
vendored
Normal file
266
3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out
vendored
Normal file
@ -0,0 +1,266 @@
|
||||
hlsl.structbuffer.fn.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:9 Function Definition: get(block--vu4[0]1;u1; (temp 4-component vector of uint)
|
||||
0:9 Function Parameters:
|
||||
0:9 'sb' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:9 'bufferOffset' (in uint)
|
||||
0:? Sequence
|
||||
0:10 Branch: Return with expression
|
||||
0:10 indirect index (layout(row_major std430 ) buffer 4-component vector of uint)
|
||||
0:10 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint)
|
||||
0:10 'sb' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'bufferOffset' (in uint)
|
||||
0:14 Function Definition: set(block--vu4[0]1;u1;vu4; (temp void)
|
||||
0:14 Function Parameters:
|
||||
0:14 'sb' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:14 'bufferOffset' (in uint)
|
||||
0:14 'data' (in 4-component vector of uint)
|
||||
0:? Sequence
|
||||
0:15 move second child to first child (temp 4-component vector of uint)
|
||||
0:15 indirect index (layout(row_major std430 ) buffer 4-component vector of uint)
|
||||
0:15 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint)
|
||||
0:15 'sb' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:15 Constant:
|
||||
0:15 0 (const uint)
|
||||
0:15 'bufferOffset' (in uint)
|
||||
0:15 'data' (in 4-component vector of uint)
|
||||
0:19 Function Definition: @main(u1; (temp 4-component vector of float)
|
||||
0:19 Function Parameters:
|
||||
0:19 'pos' (in uint)
|
||||
0:? Sequence
|
||||
0:20 Function Call: set(block--vu4[0]1;u1;vu4; (temp void)
|
||||
0:20 'sbuf2' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:20 Constant:
|
||||
0:20 2 (const uint)
|
||||
0:20 Function Call: get(block--vu4[0]1;u1; (temp 4-component vector of uint)
|
||||
0:20 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:20 Constant:
|
||||
0:20 3 (const uint)
|
||||
0:22 Branch: Return with expression
|
||||
0:22 Constant:
|
||||
0:22 0.000000
|
||||
0:22 0.000000
|
||||
0:22 0.000000
|
||||
0:22 0.000000
|
||||
0:19 Function Definition: main( (temp void)
|
||||
0:19 Function Parameters:
|
||||
0:? Sequence
|
||||
0:19 move second child to first child (temp uint)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
0:19 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:19 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:? 'sbuf2' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:? 'sbuf3' (layout(binding=12 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of 3-component vector of uint @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:9 Function Definition: get(block--vu4[0]1;u1; (temp 4-component vector of uint)
|
||||
0:9 Function Parameters:
|
||||
0:9 'sb' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:9 'bufferOffset' (in uint)
|
||||
0:? Sequence
|
||||
0:10 Branch: Return with expression
|
||||
0:10 indirect index (layout(row_major std430 ) buffer 4-component vector of uint)
|
||||
0:10 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint)
|
||||
0:10 'sb' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'bufferOffset' (in uint)
|
||||
0:14 Function Definition: set(block--vu4[0]1;u1;vu4; (temp void)
|
||||
0:14 Function Parameters:
|
||||
0:14 'sb' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:14 'bufferOffset' (in uint)
|
||||
0:14 'data' (in 4-component vector of uint)
|
||||
0:? Sequence
|
||||
0:15 move second child to first child (temp 4-component vector of uint)
|
||||
0:15 indirect index (layout(row_major std430 ) buffer 4-component vector of uint)
|
||||
0:15 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint)
|
||||
0:15 'sb' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:15 Constant:
|
||||
0:15 0 (const uint)
|
||||
0:15 'bufferOffset' (in uint)
|
||||
0:15 'data' (in 4-component vector of uint)
|
||||
0:19 Function Definition: @main(u1; (temp 4-component vector of float)
|
||||
0:19 Function Parameters:
|
||||
0:19 'pos' (in uint)
|
||||
0:? Sequence
|
||||
0:20 Function Call: set(block--vu4[0]1;u1;vu4; (temp void)
|
||||
0:20 'sbuf2' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:20 Constant:
|
||||
0:20 2 (const uint)
|
||||
0:20 Function Call: get(block--vu4[0]1;u1; (temp 4-component vector of uint)
|
||||
0:20 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:20 Constant:
|
||||
0:20 3 (const uint)
|
||||
0:22 Branch: Return with expression
|
||||
0:22 Constant:
|
||||
0:22 0.000000
|
||||
0:22 0.000000
|
||||
0:22 0.000000
|
||||
0:22 0.000000
|
||||
0:19 Function Definition: main( (temp void)
|
||||
0:19 Function Parameters:
|
||||
0:? Sequence
|
||||
0:19 move second child to first child (temp uint)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
0:19 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:19 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:? 'sbuf2' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of 4-component vector of uint @data})
|
||||
0:? 'sbuf3' (layout(binding=12 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of 3-component vector of uint @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 71
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 59 62
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Name 4 "main"
|
||||
Name 9 ""
|
||||
MemberName 9 0 "@data"
|
||||
Name 15 "get(block--vu4[0]1;u1;"
|
||||
Name 13 "sb"
|
||||
Name 14 "bufferOffset"
|
||||
Name 18 ""
|
||||
MemberName 18 0 "@data"
|
||||
Name 25 "set(block--vu4[0]1;u1;vu4;"
|
||||
Name 22 "sb"
|
||||
Name 23 "bufferOffset"
|
||||
Name 24 "data"
|
||||
Name 31 "@main(u1;"
|
||||
Name 30 "pos"
|
||||
Name 44 "sbuf2"
|
||||
Name 46 "sbuf"
|
||||
Name 48 "param"
|
||||
Name 50 "param"
|
||||
Name 51 "param"
|
||||
Name 57 "pos"
|
||||
Name 59 "pos"
|
||||
Name 62 "@entryPointOutput"
|
||||
Name 63 "param"
|
||||
Name 68 "sbuf3"
|
||||
MemberName 68(sbuf3) 0 "@data"
|
||||
Name 70 "sbuf3"
|
||||
Decorate 8 ArrayStride 16
|
||||
MemberDecorate 9 0 NonWritable
|
||||
MemberDecorate 9 0 Offset 0
|
||||
Decorate 9 BufferBlock
|
||||
Decorate 17 ArrayStride 16
|
||||
MemberDecorate 18 0 Offset 0
|
||||
Decorate 18 BufferBlock
|
||||
Decorate 44(sbuf2) DescriptorSet 0
|
||||
Decorate 46(sbuf) DescriptorSet 0
|
||||
Decorate 46(sbuf) Binding 10
|
||||
Decorate 59(pos) Location 0
|
||||
Decorate 62(@entryPointOutput) Location 0
|
||||
Decorate 67 ArrayStride 16
|
||||
MemberDecorate 68(sbuf3) 0 NonWritable
|
||||
MemberDecorate 68(sbuf3) 0 Offset 0
|
||||
Decorate 68(sbuf3) BufferBlock
|
||||
Decorate 70(sbuf3) DescriptorSet 0
|
||||
Decorate 70(sbuf3) Binding 12
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypeVector 6(int) 4
|
||||
8: TypeRuntimeArray 7(ivec4)
|
||||
9: TypeStruct 8
|
||||
10: TypePointer Uniform 9(struct)
|
||||
11: TypePointer Function 6(int)
|
||||
12: TypeFunction 7(ivec4) 10(ptr) 11(ptr)
|
||||
17: TypeRuntimeArray 7(ivec4)
|
||||
18: TypeStruct 17
|
||||
19: TypePointer Uniform 18(struct)
|
||||
20: TypePointer Function 7(ivec4)
|
||||
21: TypeFunction 2 19(ptr) 11(ptr) 20(ptr)
|
||||
27: TypeFloat 32
|
||||
28: TypeVector 27(float) 4
|
||||
29: TypeFunction 28(fvec4) 11(ptr)
|
||||
33: TypeInt 32 1
|
||||
34: 33(int) Constant 0
|
||||
36: TypePointer Uniform 7(ivec4)
|
||||
44(sbuf2): 19(ptr) Variable Uniform
|
||||
45: 6(int) Constant 2
|
||||
46(sbuf): 10(ptr) Variable Uniform
|
||||
47: 6(int) Constant 3
|
||||
53: 27(float) Constant 0
|
||||
54: 28(fvec4) ConstantComposite 53 53 53 53
|
||||
58: TypePointer Input 6(int)
|
||||
59(pos): 58(ptr) Variable Input
|
||||
61: TypePointer Output 28(fvec4)
|
||||
62(@entryPointOutput): 61(ptr) Variable Output
|
||||
66: TypeVector 6(int) 3
|
||||
67: TypeRuntimeArray 66(ivec3)
|
||||
68(sbuf3): TypeStruct 67
|
||||
69: TypePointer Uniform 68(sbuf3)
|
||||
70(sbuf3): 69(ptr) Variable Uniform
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
57(pos): 11(ptr) Variable Function
|
||||
63(param): 11(ptr) Variable Function
|
||||
60: 6(int) Load 59(pos)
|
||||
Store 57(pos) 60
|
||||
64: 6(int) Load 57(pos)
|
||||
Store 63(param) 64
|
||||
65: 28(fvec4) FunctionCall 31(@main(u1;) 63(param)
|
||||
Store 62(@entryPointOutput) 65
|
||||
Return
|
||||
FunctionEnd
|
||||
15(get(block--vu4[0]1;u1;): 7(ivec4) Function None 12
|
||||
13(sb): 10(ptr) FunctionParameter
|
||||
14(bufferOffset): 11(ptr) FunctionParameter
|
||||
16: Label
|
||||
35: 6(int) Load 14(bufferOffset)
|
||||
37: 36(ptr) AccessChain 13(sb) 34 35
|
||||
38: 7(ivec4) Load 37
|
||||
ReturnValue 38
|
||||
FunctionEnd
|
||||
25(set(block--vu4[0]1;u1;vu4;): 2 Function None 21
|
||||
22(sb): 19(ptr) FunctionParameter
|
||||
23(bufferOffset): 11(ptr) FunctionParameter
|
||||
24(data): 20(ptr) FunctionParameter
|
||||
26: Label
|
||||
41: 6(int) Load 23(bufferOffset)
|
||||
42: 7(ivec4) Load 24(data)
|
||||
43: 36(ptr) AccessChain 22(sb) 34 41
|
||||
Store 43 42
|
||||
Return
|
||||
FunctionEnd
|
||||
31(@main(u1;): 28(fvec4) Function None 29
|
||||
30(pos): 11(ptr) FunctionParameter
|
||||
32: Label
|
||||
48(param): 11(ptr) Variable Function
|
||||
50(param): 11(ptr) Variable Function
|
||||
51(param): 20(ptr) Variable Function
|
||||
Store 48(param) 47
|
||||
49: 7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 46(sbuf) 48(param)
|
||||
Store 50(param) 45
|
||||
Store 51(param) 49
|
||||
52: 2 FunctionCall 25(set(block--vu4[0]1;u1;vu4;) 44(sbuf2) 50(param) 51(param)
|
||||
ReturnValue 54
|
||||
FunctionEnd
|
@ -9,9 +9,9 @@ gl_FragCoord origin is upper left
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (temp structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 'mydata' (temp structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 indirect index (layout(binding=10 row_major std430 ) readonly buffer structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 sbuf: direct index for structure (layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 'anon@0' (layout(binding=10 row_major std430 ) readonly buffer block{layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} sbuf})
|
||||
0:13 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} @data})
|
||||
0:13 Constant:
|
||||
0:13 0 (const uint)
|
||||
0:13 'pos' (in uint)
|
||||
@ -19,8 +19,8 @@ gl_FragCoord origin is upper left
|
||||
0:17 move second child to first child (temp uint)
|
||||
0:17 'size' (temp uint)
|
||||
0:17 array length (temp uint)
|
||||
0:17 sbuf: direct index for structure (layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:17 'anon@0' (layout(binding=10 row_major std430 ) readonly buffer block{layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} sbuf})
|
||||
0:17 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:17 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} @data})
|
||||
0:17 Constant:
|
||||
0:17 0 (const uint)
|
||||
0:17 move second child to first child (temp uint)
|
||||
@ -30,9 +30,9 @@ gl_FragCoord origin is upper left
|
||||
0:19 Test condition and select (temp void)
|
||||
0:19 Condition
|
||||
0:19 test: direct index for structure (temp bool)
|
||||
0:19 indirect index (layout(binding=10 row_major std430 ) readonly temp structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:19 sbuf: direct index for structure (layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:19 'anon@0' (layout(binding=10 row_major std430 ) readonly buffer block{layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} sbuf})
|
||||
0:19 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:19 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:19 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} @data})
|
||||
0:19 Constant:
|
||||
0:19 0 (const uint)
|
||||
0:19 'pos' (in uint)
|
||||
@ -43,17 +43,17 @@ gl_FragCoord origin is upper left
|
||||
0:? Construct vec4 (temp 4-component vector of float)
|
||||
0:20 add (temp 3-component vector of float)
|
||||
0:20 color: direct index for structure (temp 3-component vector of float)
|
||||
0:20 indirect index (layout(binding=10 row_major std430 ) readonly temp structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:20 sbuf: direct index for structure (layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:20 'anon@0' (layout(binding=10 row_major std430 ) readonly buffer block{layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} sbuf})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:20 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:20 indirect index (layout(row_major std430 ) readonly temp float)
|
||||
0:20 sbuf2: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of float)
|
||||
0:20 'anon@1' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of float sbuf2})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer float)
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:20 'sbuf2' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
@ -86,8 +86,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout(binding=10 row_major std430 ) readonly buffer block{layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} sbuf})
|
||||
0:? 'anon@1' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of float sbuf2})
|
||||
0:? 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} @data})
|
||||
0:? 'sbuf2' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
@ -105,9 +105,9 @@ gl_FragCoord origin is upper left
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (temp structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 'mydata' (temp structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 indirect index (layout(binding=10 row_major std430 ) readonly buffer structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 sbuf: direct index for structure (layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 'anon@0' (layout(binding=10 row_major std430 ) readonly buffer block{layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} sbuf})
|
||||
0:13 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:13 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} @data})
|
||||
0:13 Constant:
|
||||
0:13 0 (const uint)
|
||||
0:13 'pos' (in uint)
|
||||
@ -115,8 +115,8 @@ gl_FragCoord origin is upper left
|
||||
0:17 move second child to first child (temp uint)
|
||||
0:17 'size' (temp uint)
|
||||
0:17 array length (temp uint)
|
||||
0:17 sbuf: direct index for structure (layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:17 'anon@0' (layout(binding=10 row_major std430 ) readonly buffer block{layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} sbuf})
|
||||
0:17 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:17 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} @data})
|
||||
0:17 Constant:
|
||||
0:17 0 (const uint)
|
||||
0:17 move second child to first child (temp uint)
|
||||
@ -126,9 +126,9 @@ gl_FragCoord origin is upper left
|
||||
0:19 Test condition and select (temp void)
|
||||
0:19 Condition
|
||||
0:19 test: direct index for structure (temp bool)
|
||||
0:19 indirect index (layout(binding=10 row_major std430 ) readonly temp structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:19 sbuf: direct index for structure (layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:19 'anon@0' (layout(binding=10 row_major std430 ) readonly buffer block{layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} sbuf})
|
||||
0:19 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:19 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:19 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} @data})
|
||||
0:19 Constant:
|
||||
0:19 0 (const uint)
|
||||
0:19 'pos' (in uint)
|
||||
@ -139,17 +139,17 @@ gl_FragCoord origin is upper left
|
||||
0:? Construct vec4 (temp 4-component vector of float)
|
||||
0:20 add (temp 3-component vector of float)
|
||||
0:20 color: direct index for structure (temp 3-component vector of float)
|
||||
0:20 indirect index (layout(binding=10 row_major std430 ) readonly temp structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:20 sbuf: direct index for structure (layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:20 'anon@0' (layout(binding=10 row_major std430 ) readonly buffer block{layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} sbuf})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2})
|
||||
0:20 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:20 indirect index (layout(row_major std430 ) readonly temp float)
|
||||
0:20 sbuf2: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of float)
|
||||
0:20 'anon@1' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of float sbuf2})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer float)
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:20 'sbuf2' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
@ -182,8 +182,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout(binding=10 row_major std430 ) readonly buffer block{layout(binding=10 row_major std430 ) readonly buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} sbuf})
|
||||
0:? 'anon@1' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of float sbuf2})
|
||||
0:? 'sbuf' (layout(binding=10 row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test, temp bool test2} @data})
|
||||
0:? 'sbuf2' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
@ -209,13 +209,13 @@ gl_FragCoord origin is upper left
|
||||
MemberName 19(sb_t) 1 "test"
|
||||
MemberName 19(sb_t) 2 "test2"
|
||||
Name 21 "sbuf"
|
||||
MemberName 21(sbuf) 0 "sbuf"
|
||||
Name 23 ""
|
||||
MemberName 21(sbuf) 0 "@data"
|
||||
Name 23 "sbuf"
|
||||
Name 40 "size"
|
||||
Name 42 "stride"
|
||||
Name 57 "sbuf2"
|
||||
MemberName 57(sbuf2) 0 "sbuf2"
|
||||
Name 59 ""
|
||||
MemberName 57(sbuf2) 0 "@data"
|
||||
Name 59 "sbuf2"
|
||||
Name 85 "pos"
|
||||
Name 87 "pos"
|
||||
Name 90 "@entryPointOutput"
|
||||
@ -230,13 +230,13 @@ gl_FragCoord origin is upper left
|
||||
MemberDecorate 21(sbuf) 0 NonWritable
|
||||
MemberDecorate 21(sbuf) 0 Offset 0
|
||||
Decorate 21(sbuf) BufferBlock
|
||||
Decorate 23 DescriptorSet 0
|
||||
Decorate 23 Binding 10
|
||||
Decorate 23(sbuf) DescriptorSet 0
|
||||
Decorate 23(sbuf) Binding 10
|
||||
Decorate 56 ArrayStride 4
|
||||
MemberDecorate 57(sbuf2) 0 NonWritable
|
||||
MemberDecorate 57(sbuf2) 0 Offset 0
|
||||
Decorate 57(sbuf2) BufferBlock
|
||||
Decorate 59 DescriptorSet 0
|
||||
Decorate 59(sbuf2) DescriptorSet 0
|
||||
Decorate 87(pos) Location 0
|
||||
Decorate 90(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
@ -254,7 +254,7 @@ gl_FragCoord origin is upper left
|
||||
20: TypeRuntimeArray 19(sb_t)
|
||||
21(sbuf): TypeStruct 20
|
||||
22: TypePointer Uniform 21(sbuf)
|
||||
23: 22(ptr) Variable Uniform
|
||||
23(sbuf): 22(ptr) Variable Uniform
|
||||
24: TypeInt 32 1
|
||||
25: 24(int) Constant 0
|
||||
27: TypePointer Uniform 19(sb_t)
|
||||
@ -269,7 +269,7 @@ gl_FragCoord origin is upper left
|
||||
56: TypeRuntimeArray 8(float)
|
||||
57(sbuf2): TypeStruct 56
|
||||
58: TypePointer Uniform 57(sbuf2)
|
||||
59: 58(ptr) Variable Uniform
|
||||
59(sbuf2): 58(ptr) Variable Uniform
|
||||
61: TypePointer Uniform 8(float)
|
||||
66: 8(float) Constant 0
|
||||
73: TypePointer Function 8(float)
|
||||
@ -296,7 +296,7 @@ gl_FragCoord origin is upper left
|
||||
40(size): 7(ptr) Variable Function
|
||||
42(stride): 7(ptr) Variable Function
|
||||
26: 6(int) Load 11(pos)
|
||||
28: 27(ptr) AccessChain 23 25 26
|
||||
28: 27(ptr) AccessChain 23(sbuf) 25 26
|
||||
29: 19(sb_t) Load 28
|
||||
30: 14(fvec3) CompositeExtract 29 0
|
||||
32: 31(ptr) AccessChain 18(mydata) 25
|
||||
@ -307,21 +307,21 @@ gl_FragCoord origin is upper left
|
||||
37: 6(int) CompositeExtract 29 2
|
||||
39: 35(ptr) AccessChain 18(mydata) 38
|
||||
Store 39 37
|
||||
41: 24(int) ArrayLength 23 0
|
||||
41: 24(int) ArrayLength 23(sbuf) 0
|
||||
Store 40(size) 41
|
||||
Store 42(stride) 43
|
||||
44: 6(int) Load 11(pos)
|
||||
46: 45(ptr) AccessChain 23 25 44 34
|
||||
46: 45(ptr) AccessChain 23(sbuf) 25 44 34
|
||||
47: 6(int) Load 46
|
||||
49: 15(bool) INotEqual 47 48
|
||||
SelectionMerge 51 None
|
||||
BranchConditional 49 50 72
|
||||
50: Label
|
||||
52: 6(int) Load 11(pos)
|
||||
54: 53(ptr) AccessChain 23 25 52 25
|
||||
54: 53(ptr) AccessChain 23(sbuf) 25 52 25
|
||||
55: 14(fvec3) Load 54
|
||||
60: 6(int) Load 11(pos)
|
||||
62: 61(ptr) AccessChain 59 25 60
|
||||
62: 61(ptr) AccessChain 59(sbuf2) 25 60
|
||||
63: 8(float) Load 62
|
||||
64: 14(fvec3) CompositeConstruct 63 63 63
|
||||
65: 14(fvec3) FAdd 55 64
|
||||
|
@ -7,9 +7,9 @@ gl_FragCoord origin is upper left
|
||||
0:12 'pos' (in uint)
|
||||
0:? Sequence
|
||||
0:13 move second child to first child (temp float)
|
||||
0:13 indirect index (layout(row_major std430 ) temp float)
|
||||
0:13 sbuf2: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:13 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float sbuf2})
|
||||
0:13 indirect index (layout(row_major std430 ) buffer float)
|
||||
0:13 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:13 'sbuf2' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:13 Constant:
|
||||
0:13 0 (const uint)
|
||||
0:13 add (temp uint)
|
||||
@ -22,8 +22,8 @@ gl_FragCoord origin is upper left
|
||||
0:17 move second child to first child (temp uint)
|
||||
0:17 'size' (temp uint)
|
||||
0:17 array length (temp uint)
|
||||
0:17 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:17 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:17 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:17 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:17 Constant:
|
||||
0:17 0 (const uint)
|
||||
0:17 move second child to first child (temp uint)
|
||||
@ -33,9 +33,9 @@ gl_FragCoord origin is upper left
|
||||
0:19 Test condition and select (temp void)
|
||||
0:19 Condition
|
||||
0:19 test: direct index for structure (temp bool)
|
||||
0:19 indirect index (layout(row_major std430 ) temp structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:19 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:19 Constant:
|
||||
0:19 0 (const uint)
|
||||
0:19 'pos' (in uint)
|
||||
@ -46,17 +46,17 @@ gl_FragCoord origin is upper left
|
||||
0:? Construct vec4 (temp 4-component vector of float)
|
||||
0:20 add (temp 3-component vector of float)
|
||||
0:20 color: direct index for structure (temp 3-component vector of float)
|
||||
0:20 indirect index (layout(row_major std430 ) temp structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:20 indirect index (layout(row_major std430 ) temp float)
|
||||
0:20 sbuf2: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:20 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float sbuf2})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer float)
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:20 'sbuf2' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
@ -80,8 +80,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float sbuf2})
|
||||
0:? 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:? 'sbuf2' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
@ -97,9 +97,9 @@ gl_FragCoord origin is upper left
|
||||
0:12 'pos' (in uint)
|
||||
0:? Sequence
|
||||
0:13 move second child to first child (temp float)
|
||||
0:13 indirect index (layout(row_major std430 ) temp float)
|
||||
0:13 sbuf2: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:13 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float sbuf2})
|
||||
0:13 indirect index (layout(row_major std430 ) buffer float)
|
||||
0:13 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:13 'sbuf2' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:13 Constant:
|
||||
0:13 0 (const uint)
|
||||
0:13 add (temp uint)
|
||||
@ -112,8 +112,8 @@ gl_FragCoord origin is upper left
|
||||
0:17 move second child to first child (temp uint)
|
||||
0:17 'size' (temp uint)
|
||||
0:17 array length (temp uint)
|
||||
0:17 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:17 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:17 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:17 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:17 Constant:
|
||||
0:17 0 (const uint)
|
||||
0:17 move second child to first child (temp uint)
|
||||
@ -123,9 +123,9 @@ gl_FragCoord origin is upper left
|
||||
0:19 Test condition and select (temp void)
|
||||
0:19 Condition
|
||||
0:19 test: direct index for structure (temp bool)
|
||||
0:19 indirect index (layout(row_major std430 ) temp structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:19 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:19 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:19 Constant:
|
||||
0:19 0 (const uint)
|
||||
0:19 'pos' (in uint)
|
||||
@ -136,17 +136,17 @@ gl_FragCoord origin is upper left
|
||||
0:? Construct vec4 (temp 4-component vector of float)
|
||||
0:20 add (temp 3-component vector of float)
|
||||
0:20 color: direct index for structure (temp 3-component vector of float)
|
||||
0:20 indirect index (layout(row_major std430 ) temp structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 sbuf: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test})
|
||||
0:20 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:20 indirect index (layout(row_major std430 ) temp float)
|
||||
0:20 sbuf2: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:20 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float sbuf2})
|
||||
0:20 indirect index (layout(row_major std430 ) buffer float)
|
||||
0:20 @data: direct index for structure (layout(row_major std430 ) buffer implicitly-sized array of float)
|
||||
0:20 'sbuf2' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:20 Constant:
|
||||
0:20 0 (const uint)
|
||||
0:20 'pos' (in uint)
|
||||
@ -170,8 +170,8 @@ gl_FragCoord origin is upper left
|
||||
0:12 Function Call: @main(u1; (temp 4-component vector of float)
|
||||
0:? 'pos' (temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} sbuf})
|
||||
0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float sbuf2})
|
||||
0:? 'sbuf' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of structure{temp 3-component vector of float color, temp bool test} @data})
|
||||
0:? 'sbuf2' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer implicitly-sized array of float @data})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'pos' (layout(location=0 ) in uint)
|
||||
|
||||
@ -188,15 +188,15 @@ gl_FragCoord origin is upper left
|
||||
Name 12 "@main(u1;"
|
||||
Name 11 "pos"
|
||||
Name 15 "sbuf2"
|
||||
MemberName 15(sbuf2) 0 "sbuf2"
|
||||
Name 17 ""
|
||||
MemberName 15(sbuf2) 0 "@data"
|
||||
Name 17 "sbuf2"
|
||||
Name 26 "size"
|
||||
Name 28 "sb_t"
|
||||
MemberName 28(sb_t) 0 "color"
|
||||
MemberName 28(sb_t) 1 "test"
|
||||
Name 30 "sbuf"
|
||||
MemberName 30(sbuf) 0 "sbuf"
|
||||
Name 32 ""
|
||||
MemberName 30(sbuf) 0 "@data"
|
||||
Name 32 "sbuf"
|
||||
Name 34 "stride"
|
||||
Name 69 "pos"
|
||||
Name 71 "pos"
|
||||
@ -205,13 +205,13 @@ gl_FragCoord origin is upper left
|
||||
Decorate 14 ArrayStride 4
|
||||
MemberDecorate 15(sbuf2) 0 Offset 0
|
||||
Decorate 15(sbuf2) BufferBlock
|
||||
Decorate 17 DescriptorSet 0
|
||||
Decorate 17(sbuf2) DescriptorSet 0
|
||||
MemberDecorate 28(sb_t) 0 Offset 0
|
||||
MemberDecorate 28(sb_t) 1 Offset 12
|
||||
Decorate 29 ArrayStride 16
|
||||
MemberDecorate 30(sbuf) 0 Offset 0
|
||||
Decorate 30(sbuf) BufferBlock
|
||||
Decorate 32 DescriptorSet 0
|
||||
Decorate 32(sbuf) DescriptorSet 0
|
||||
Decorate 71(pos) Location 0
|
||||
Decorate 74(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
@ -224,7 +224,7 @@ gl_FragCoord origin is upper left
|
||||
14: TypeRuntimeArray 8(float)
|
||||
15(sbuf2): TypeStruct 14
|
||||
16: TypePointer Uniform 15(sbuf2)
|
||||
17: 16(ptr) Variable Uniform
|
||||
17(sbuf2): 16(ptr) Variable Uniform
|
||||
18: TypeInt 32 1
|
||||
19: 18(int) Constant 0
|
||||
21: 6(int) Constant 1
|
||||
@ -235,7 +235,7 @@ gl_FragCoord origin is upper left
|
||||
29: TypeRuntimeArray 28(sb_t)
|
||||
30(sbuf): TypeStruct 29
|
||||
31: TypePointer Uniform 30(sbuf)
|
||||
32: 31(ptr) Variable Uniform
|
||||
32(sbuf): 31(ptr) Variable Uniform
|
||||
35: 6(int) Constant 16
|
||||
37: 18(int) Constant 1
|
||||
38: TypePointer Uniform 6(int)
|
||||
@ -266,23 +266,23 @@ gl_FragCoord origin is upper left
|
||||
34(stride): 7(ptr) Variable Function
|
||||
20: 6(int) Load 11(pos)
|
||||
22: 6(int) IAdd 20 21
|
||||
25: 24(ptr) AccessChain 17 19 22
|
||||
25: 24(ptr) AccessChain 17(sbuf2) 19 22
|
||||
Store 25 23
|
||||
33: 18(int) ArrayLength 32 0
|
||||
33: 18(int) ArrayLength 32(sbuf) 0
|
||||
Store 26(size) 33
|
||||
Store 34(stride) 35
|
||||
36: 6(int) Load 11(pos)
|
||||
39: 38(ptr) AccessChain 32 19 36 37
|
||||
39: 38(ptr) AccessChain 32(sbuf) 19 36 37
|
||||
40: 6(int) Load 39
|
||||
43: 41(bool) INotEqual 40 42
|
||||
SelectionMerge 45 None
|
||||
BranchConditional 43 44 61
|
||||
44: Label
|
||||
46: 6(int) Load 11(pos)
|
||||
48: 47(ptr) AccessChain 32 19 46 19
|
||||
48: 47(ptr) AccessChain 32(sbuf) 19 46 19
|
||||
49: 27(fvec3) Load 48
|
||||
50: 6(int) Load 11(pos)
|
||||
51: 24(ptr) AccessChain 17 19 50
|
||||
51: 24(ptr) AccessChain 17(sbuf2) 19 50
|
||||
52: 8(float) Load 51
|
||||
53: 27(fvec3) CompositeConstruct 52 52 52
|
||||
54: 27(fvec3) FAdd 49 53
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -3,12 +3,12 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 509
|
||||
// Id's are bound by 532
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11 22 212 288 485 503 508
|
||||
EntryPoint Fragment 4 "main" 11 22 212 288 485 526 531
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
@ -24,13 +24,15 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
||||
Name 305 "b"
|
||||
Name 342 "ub42"
|
||||
Name 485 "FragColor"
|
||||
Name 503 "uiv4"
|
||||
Name 505 "ub"
|
||||
Name 508 "uuv4"
|
||||
Name 503 "m1"
|
||||
Name 510 "m2"
|
||||
Name 526 "uiv4"
|
||||
Name 528 "ub"
|
||||
Name 531 "uuv4"
|
||||
Decorate 22(ui) Flat
|
||||
Decorate 288(uui) Flat
|
||||
Decorate 503(uiv4) Flat
|
||||
Decorate 508(uuv4) Flat
|
||||
Decorate 526(uiv4) Flat
|
||||
Decorate 531(uuv4) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@ -65,14 +67,24 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
||||
472: 18(int) Constant 17
|
||||
484: TypePointer Output 7(fvec4)
|
||||
485(FragColor): 484(ptr) Variable Output
|
||||
501: TypeVector 18(int) 4
|
||||
502: TypePointer Input 501(ivec4)
|
||||
503(uiv4): 502(ptr) Variable Input
|
||||
504: TypePointer Private 178(bool)
|
||||
505(ub): 504(ptr) Variable Private
|
||||
506: TypeVector 141(int) 4
|
||||
507: TypePointer Input 506(ivec4)
|
||||
508(uuv4): 507(ptr) Variable Input
|
||||
501: TypeMatrix 7(fvec4) 4
|
||||
502: TypePointer Function 501
|
||||
504: 6(float) Constant 0
|
||||
505: 7(fvec4) ConstantComposite 461 504 504 504
|
||||
506: 7(fvec4) ConstantComposite 504 461 504 504
|
||||
507: 7(fvec4) ConstantComposite 504 504 461 504
|
||||
508: 7(fvec4) ConstantComposite 504 504 504 461
|
||||
509: 501 ConstantComposite 505 506 507 508
|
||||
511: 7(fvec4) ConstantComposite 504 504 504 504
|
||||
512: 501 ConstantComposite 511 511 511 511
|
||||
524: TypeVector 18(int) 4
|
||||
525: TypePointer Input 524(ivec4)
|
||||
526(uiv4): 525(ptr) Variable Input
|
||||
527: TypePointer Private 178(bool)
|
||||
528(ub): 527(ptr) Variable Private
|
||||
529: TypeVector 141(int) 4
|
||||
530: TypePointer Input 529(ivec4)
|
||||
531(uuv4): 530(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(v): 8(ptr) Variable Function
|
||||
@ -81,6 +93,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
||||
285(u): 284(ptr) Variable Function
|
||||
305(b): 304(ptr) Variable Function
|
||||
486: 8(ptr) Variable Function
|
||||
503(m1): 502(ptr) Variable Function
|
||||
510(m2): 502(ptr) Variable Function
|
||||
513: 502(ptr) Variable Function
|
||||
12: 7(fvec4) Load 11(uv4)
|
||||
13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
|
||||
Store 9(v) 13
|
||||
@ -666,5 +681,24 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
||||
489: Label
|
||||
500: 7(fvec4) Load 486
|
||||
Store 485(FragColor) 500
|
||||
Store 503(m1) 509
|
||||
Store 510(m2) 512
|
||||
514: 178(bool) Load 305(b)
|
||||
SelectionMerge 516 None
|
||||
BranchConditional 514 515 518
|
||||
515: Label
|
||||
517: 501 Load 503(m1)
|
||||
Store 513 517
|
||||
Branch 516
|
||||
518: Label
|
||||
519: 501 Load 510(m2)
|
||||
Store 513 519
|
||||
Branch 516
|
||||
516: Label
|
||||
520: 8(ptr) AccessChain 513 405
|
||||
521: 7(fvec4) Load 520
|
||||
522: 7(fvec4) Load 485(FragColor)
|
||||
523: 7(fvec4) FAdd 522 521
|
||||
Store 485(FragColor) 523
|
||||
Return
|
||||
FunctionEnd
|
||||
|
38
3rdparty/glslang/Test/baseResults/spv.deviceGroup.frag.out
vendored
Executable file
38
3rdparty/glslang/Test/baseResults/spv.deviceGroup.frag.out
vendored
Executable file
@ -0,0 +1,38 @@
|
||||
spv.deviceGroup.frag
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 17
|
||||
|
||||
Capability Shader
|
||||
Capability DeviceGroup
|
||||
Extension "SPV_KHR_device_group"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 9
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_EXT_device_group"
|
||||
Name 4 "main"
|
||||
Name 9 "color"
|
||||
Name 12 "gl_DeviceIndex"
|
||||
Decorate 12(gl_DeviceIndex) BuiltIn DeviceIndex
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Output 7(fvec4)
|
||||
9(color): 8(ptr) Variable Output
|
||||
10: TypeInt 32 1
|
||||
11: TypePointer UniformConstant 10(int)
|
||||
12(gl_DeviceIndex): 11(ptr) Variable UniformConstant
|
||||
15: 6(float) Constant 0
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13: 10(int) Load 12(gl_DeviceIndex)
|
||||
14: 6(float) ConvertSToF 13
|
||||
16: 7(fvec4) CompositeConstruct 14 15 15 15
|
||||
Store 9(color) 16
|
||||
Return
|
||||
FunctionEnd
|
59
3rdparty/glslang/Test/baseResults/spv.drawParams.vert.out
vendored
Executable file
59
3rdparty/glslang/Test/baseResults/spv.drawParams.vert.out
vendored
Executable file
@ -0,0 +1,59 @@
|
||||
spv.drawParams.vert
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 29
|
||||
|
||||
Capability Shader
|
||||
Capability DrawParameters
|
||||
Extension "SPV_KHR_shader_draw_parameters"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 10 13 16 21
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_ARB_shader_draw_parameters"
|
||||
Name 4 "main"
|
||||
Name 8 "a"
|
||||
Name 10 "gl_BaseVertexARB"
|
||||
Name 12 "b"
|
||||
Name 13 "gl_BaseInstanceARB"
|
||||
Name 15 "c"
|
||||
Name 16 "gl_DrawIDARB"
|
||||
Name 21 "pos"
|
||||
Decorate 10(gl_BaseVertexARB) BuiltIn BaseVertex
|
||||
Decorate 13(gl_BaseInstanceARB) BuiltIn BaseInstance
|
||||
Decorate 16(gl_DrawIDARB) BuiltIn DrawIndex
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: TypePointer Input 6(int)
|
||||
10(gl_BaseVertexARB): 9(ptr) Variable Input
|
||||
13(gl_BaseInstanceARB): 9(ptr) Variable Input
|
||||
16(gl_DrawIDARB): 9(ptr) Variable Input
|
||||
18: TypeFloat 32
|
||||
19: TypeVector 18(float) 3
|
||||
20: TypePointer Output 19(fvec3)
|
||||
21(pos): 20(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(a): 7(ptr) Variable Function
|
||||
12(b): 7(ptr) Variable Function
|
||||
15(c): 7(ptr) Variable Function
|
||||
11: 6(int) Load 10(gl_BaseVertexARB)
|
||||
Store 8(a) 11
|
||||
14: 6(int) Load 13(gl_BaseInstanceARB)
|
||||
Store 12(b) 14
|
||||
17: 6(int) Load 16(gl_DrawIDARB)
|
||||
Store 15(c) 17
|
||||
22: 6(int) Load 8(a)
|
||||
23: 18(float) ConvertSToF 22
|
||||
24: 6(int) Load 12(b)
|
||||
25: 18(float) ConvertSToF 24
|
||||
26: 6(int) Load 15(c)
|
||||
27: 18(float) ConvertSToF 26
|
||||
28: 19(fvec3) CompositeConstruct 23 25 27
|
||||
Store 21(pos) 28
|
||||
Return
|
||||
FunctionEnd
|
38
3rdparty/glslang/Test/baseResults/spv.multiView.frag.out
vendored
Executable file
38
3rdparty/glslang/Test/baseResults/spv.multiView.frag.out
vendored
Executable file
@ -0,0 +1,38 @@
|
||||
spv.multiView.frag
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 17
|
||||
|
||||
Capability Shader
|
||||
Capability MultiView
|
||||
Extension "SPV_KHR_multiview"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 9
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_EXT_multiview"
|
||||
Name 4 "main"
|
||||
Name 9 "color"
|
||||
Name 12 "gl_ViewIndex"
|
||||
Decorate 12(gl_ViewIndex) BuiltIn ViewIndex
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Output 7(fvec4)
|
||||
9(color): 8(ptr) Variable Output
|
||||
10: TypeInt 32 1
|
||||
11: TypePointer UniformConstant 10(int)
|
||||
12(gl_ViewIndex): 11(ptr) Variable UniformConstant
|
||||
15: 6(float) Constant 0
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13: 10(int) Load 12(gl_ViewIndex)
|
||||
14: 6(float) ConvertSToF 13
|
||||
16: 7(fvec4) CompositeConstruct 14 15 15 15
|
||||
Store 9(color) 16
|
||||
Return
|
||||
FunctionEnd
|
@ -13,7 +13,7 @@ Warning, version 400 is not yet complete; most version-specific features are pre
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
Name 9 "arraySize"
|
||||
Name 14 "foo(vf4[s1516];"
|
||||
Name 14 "foo(vf4[s1518];"
|
||||
Name 13 "p"
|
||||
Name 17 "builtin_spec_constant("
|
||||
Name 20 "color"
|
||||
@ -104,10 +104,10 @@ Warning, version 400 is not yet complete; most version-specific features are pre
|
||||
Store 20(color) 46
|
||||
48: 10 Load 22(ucol)
|
||||
Store 47(param) 48
|
||||
49: 2 FunctionCall 14(foo(vf4[s1516];) 47(param)
|
||||
49: 2 FunctionCall 14(foo(vf4[s1518];) 47(param)
|
||||
Return
|
||||
FunctionEnd
|
||||
14(foo(vf4[s1516];): 2 Function None 12
|
||||
14(foo(vf4[s1518];): 2 Function None 12
|
||||
13(p): 11(ptr) FunctionParameter
|
||||
15: Label
|
||||
54: 24(ptr) AccessChain 53(dupUcol) 23
|
||||
|
@ -16,15 +16,15 @@ spv.ssbo.autoassign.frag
|
||||
MemberName 14(BufType) 0 "va"
|
||||
MemberName 14(BufType) 1 "vb"
|
||||
Name 16 "SB0"
|
||||
MemberName 16(SB0) 0 "SB0"
|
||||
Name 18 ""
|
||||
MemberName 16(SB0) 0 "@data"
|
||||
Name 18 "SB0"
|
||||
Name 26 "TestCB"
|
||||
MemberName 26(TestCB) 0 "W"
|
||||
MemberName 26(TestCB) 1 "H"
|
||||
Name 28 ""
|
||||
Name 55 "SB1"
|
||||
MemberName 55(SB1) 0 "SB1"
|
||||
Name 57 ""
|
||||
MemberName 55(SB1) 0 "@data"
|
||||
Name 57 "SB1"
|
||||
Name 86 "pos"
|
||||
Name 88 "pos"
|
||||
Name 91 "@entryPointOutput"
|
||||
@ -37,8 +37,8 @@ spv.ssbo.autoassign.frag
|
||||
MemberDecorate 16(SB0) 0 NonWritable
|
||||
MemberDecorate 16(SB0) 0 Offset 0
|
||||
Decorate 16(SB0) BufferBlock
|
||||
Decorate 18 DescriptorSet 0
|
||||
Decorate 18 Binding 30
|
||||
Decorate 18(SB0) DescriptorSet 0
|
||||
Decorate 18(SB0) Binding 30
|
||||
MemberDecorate 26(TestCB) 0 Offset 0
|
||||
MemberDecorate 26(TestCB) 1 Offset 4
|
||||
Decorate 26(TestCB) Block
|
||||
@ -47,8 +47,8 @@ spv.ssbo.autoassign.frag
|
||||
Decorate 54 ArrayStride 32
|
||||
MemberDecorate 55(SB1) 0 Offset 0
|
||||
Decorate 55(SB1) BufferBlock
|
||||
Decorate 57 DescriptorSet 0
|
||||
Decorate 57 Binding 31
|
||||
Decorate 57(SB1) DescriptorSet 0
|
||||
Decorate 57(SB1) Binding 31
|
||||
Decorate 88(pos) Location 0
|
||||
Decorate 91(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
@ -61,7 +61,7 @@ spv.ssbo.autoassign.frag
|
||||
15: TypeRuntimeArray 14(BufType)
|
||||
16(SB0): TypeStruct 15
|
||||
17: TypePointer Uniform 16(SB0)
|
||||
18: 17(ptr) Variable Uniform
|
||||
18(SB0): 17(ptr) Variable Uniform
|
||||
19: TypeInt 32 1
|
||||
20: 19(int) Constant 0
|
||||
21: TypeInt 32 0
|
||||
@ -77,7 +77,7 @@ spv.ssbo.autoassign.frag
|
||||
54: TypeRuntimeArray 14(BufType)
|
||||
55(SB1): TypeStruct 54
|
||||
56: TypePointer Uniform 55(SB1)
|
||||
57: 56(ptr) Variable Uniform
|
||||
57(SB1): 56(ptr) Variable Uniform
|
||||
87: TypePointer Input 7(fvec4)
|
||||
88(pos): 87(ptr) Variable Input
|
||||
90: TypePointer Output 7(fvec4)
|
||||
@ -107,7 +107,7 @@ spv.ssbo.autoassign.frag
|
||||
35: 23(ptr) AccessChain 10(pos) 34
|
||||
36: 6(float) Load 35
|
||||
37: 6(float) FAdd 33 36
|
||||
39: 38(ptr) AccessChain 18 20 37 20
|
||||
39: 38(ptr) AccessChain 18(SB0) 20 37 20
|
||||
40: 7(fvec4) Load 39
|
||||
41: 23(ptr) AccessChain 10(pos) 22
|
||||
42: 6(float) Load 41
|
||||
@ -118,7 +118,7 @@ spv.ssbo.autoassign.frag
|
||||
47: 23(ptr) AccessChain 10(pos) 34
|
||||
48: 6(float) Load 47
|
||||
49: 6(float) FAdd 46 48
|
||||
51: 38(ptr) AccessChain 18 20 49 50
|
||||
51: 38(ptr) AccessChain 18(SB0) 20 49 50
|
||||
52: 7(fvec4) Load 51
|
||||
53: 7(fvec4) FAdd 40 52
|
||||
Store 13(vTmp) 53
|
||||
@ -131,7 +131,7 @@ spv.ssbo.autoassign.frag
|
||||
64: 23(ptr) AccessChain 10(pos) 34
|
||||
65: 6(float) Load 64
|
||||
66: 6(float) FAdd 63 65
|
||||
67: 38(ptr) AccessChain 57 20 66 20
|
||||
67: 38(ptr) AccessChain 57(SB1) 20 66 20
|
||||
68: 7(fvec4) Load 67
|
||||
69: 23(ptr) AccessChain 10(pos) 22
|
||||
70: 6(float) Load 69
|
||||
@ -142,7 +142,7 @@ spv.ssbo.autoassign.frag
|
||||
75: 23(ptr) AccessChain 10(pos) 34
|
||||
76: 6(float) Load 75
|
||||
77: 6(float) FAdd 74 76
|
||||
78: 38(ptr) AccessChain 57 20 77 50
|
||||
78: 38(ptr) AccessChain 57(SB1) 20 77 50
|
||||
79: 7(fvec4) Load 78
|
||||
80: 7(fvec4) FAdd 68 79
|
||||
81: 7(fvec4) Load 13(vTmp)
|
||||
|
@ -5,7 +5,10 @@ ERROR: 0:40: '##' : unexpected location; end of replacement list
|
||||
ERROR: 0:49: '##' : combined tokens are too long
|
||||
ERROR: 0:52: '##' : not supported for these tokens
|
||||
ERROR: 0:69: '##' : combined token is invalid
|
||||
ERROR: 5 compilation errors. No code generated.
|
||||
ERROR: 0:82: 'macro expansion' : Too few args in Macro rec
|
||||
ERROR: 0:82: '##' : unexpected location
|
||||
ERROR: 0:82: '##' : unexpected location
|
||||
ERROR: 8 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
|
33
3rdparty/glslang/Test/hlsl.intrinsics.f1632.frag
vendored
33
3rdparty/glslang/Test/hlsl.intrinsics.f1632.frag
vendored
@ -1,34 +1,29 @@
|
||||
float PixelShaderFunctionS(float inF0)
|
||||
float PixelShaderFunctionS(uint inF0)
|
||||
{
|
||||
f32tof16(inF0);
|
||||
|
||||
return 0.0;
|
||||
return f16tof32(inF0);
|
||||
}
|
||||
|
||||
float1 PixelShaderFunction1(float1 inF0)
|
||||
float1 PixelShaderFunction1(uint1 inF0)
|
||||
{
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return 0.0;
|
||||
return f16tof32(inF0);
|
||||
}
|
||||
|
||||
float2 PixelShaderFunction2(float2 inF0)
|
||||
float2 PixelShaderFunction2(uint2 inF0)
|
||||
{
|
||||
f32tof16(inF0);
|
||||
|
||||
return float2(1,2);
|
||||
return f16tof32(inF0);
|
||||
}
|
||||
|
||||
float3 PixelShaderFunction3(float3 inF0)
|
||||
float3 PixelShaderFunction3(uint3 inF0)
|
||||
{
|
||||
f32tof16(inF0);
|
||||
|
||||
return float3(1,2,3);
|
||||
return f16tof32(inF0);
|
||||
}
|
||||
|
||||
float4 PixelShaderFunction(float4 inF0)
|
||||
float4 PixelShaderFunction(uint4 inF0)
|
||||
{
|
||||
f32tof16(inF0);
|
||||
|
||||
return float4(1,2,3,4);
|
||||
return f16tof32(inF0);
|
||||
}
|
||||
|
||||
float4 main() : SV_Target0
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
29
3rdparty/glslang/Test/hlsl.intrinsics.f3216.frag
vendored
Normal file
29
3rdparty/glslang/Test/hlsl.intrinsics.f3216.frag
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
uint PixelShaderFunctionS(float inF0)
|
||||
{
|
||||
return f32tof16(inF0);
|
||||
}
|
||||
|
||||
uint1 PixelShaderFunction1(float1 inF0)
|
||||
{
|
||||
return f32tof16(inF0);
|
||||
}
|
||||
|
||||
uint2 PixelShaderFunction2(float2 inF0)
|
||||
{
|
||||
return f32tof16(inF0);
|
||||
}
|
||||
|
||||
uint3 PixelShaderFunction3(float3 inF0)
|
||||
{
|
||||
return f32tof16(inF0);
|
||||
}
|
||||
|
||||
uint4 PixelShaderFunction(float4 inF0)
|
||||
{
|
||||
return f32tof16(inF0);
|
||||
}
|
||||
|
||||
float4 main() : SV_Target0
|
||||
{
|
||||
return 0;
|
||||
}
|
@ -13,6 +13,10 @@ PS_OUTPUT main()
|
||||
int r06 = 6L; // upper long int
|
||||
int r07 = 071; // octal
|
||||
uint r08 = 072u; // unsigned octal
|
||||
float r09 = 1.h; // half
|
||||
float r10 = 1.H; // half
|
||||
float r11 = 1.1h; // half
|
||||
float r12 = 1.1H; // half
|
||||
|
||||
PS_OUTPUT ps_output;
|
||||
ps_output.color = r07; // gets 71 octal = 57 decimal
|
||||
|
14
3rdparty/glslang/Test/hlsl.struct.frag
vendored
14
3rdparty/glslang/Test/hlsl.struct.frag
vendored
@ -12,7 +12,7 @@ struct myS {
|
||||
|
||||
myS s1;
|
||||
|
||||
static struct {
|
||||
static class {
|
||||
float4 i;
|
||||
} s2;
|
||||
|
||||
@ -30,14 +30,24 @@ struct IN_S {
|
||||
float ff5 : packoffset(c101.y) : register(ps_5_0, s[5]);
|
||||
float ff6 : packoffset(c102.y) : register(s3[5]);
|
||||
|
||||
struct empty {};
|
||||
|
||||
struct containEmpty {
|
||||
empty e;
|
||||
};
|
||||
|
||||
float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0
|
||||
{
|
||||
struct FS {
|
||||
class FS {
|
||||
bool3 b3;
|
||||
} s3;
|
||||
|
||||
s3 == s3;
|
||||
s2.i = s.ff4;
|
||||
|
||||
containEmpty ce;
|
||||
empty e;
|
||||
e = ce.e;
|
||||
|
||||
return input;
|
||||
}
|
||||
|
7
3rdparty/glslang/Test/hlsl.structStructName.frag
vendored
Executable file
7
3rdparty/glslang/Test/hlsl.structStructName.frag
vendored
Executable file
@ -0,0 +1,7 @@
|
||||
struct S { int s; };
|
||||
|
||||
int main()
|
||||
{
|
||||
struct S t;
|
||||
return t.s;
|
||||
}
|
23
3rdparty/glslang/Test/hlsl.structbuffer.fn.frag
vendored
Normal file
23
3rdparty/glslang/Test/hlsl.structbuffer.fn.frag
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
StructuredBuffer<uint4> sbuf : register(t10);
|
||||
RWStructuredBuffer<uint4> sbuf2;
|
||||
|
||||
// Not shared, because of type difference.
|
||||
StructuredBuffer<uint3> sbuf3 : register(t12);
|
||||
|
||||
uint4 get(in StructuredBuffer<uint4> sb, uint bufferOffset)
|
||||
{
|
||||
return sb[bufferOffset];
|
||||
}
|
||||
|
||||
void set(in RWStructuredBuffer<uint4> sb, uint bufferOffset, uint4 data)
|
||||
{
|
||||
sb[bufferOffset] = data;
|
||||
}
|
||||
|
||||
float4 main(uint pos : FOO) : SV_Target0
|
||||
{
|
||||
set(sbuf2, 2, get(sbuf, 3));
|
||||
|
||||
return 0;
|
||||
}
|
3
3rdparty/glslang/Test/spv.Operations.frag
vendored
3
3rdparty/glslang/Test/spv.Operations.frag
vendored
@ -135,4 +135,7 @@ void main()
|
||||
b = !b;
|
||||
|
||||
FragColor = b ? vec4(i) + vec4(f) + v : v;
|
||||
|
||||
mat4 m1 = mat4(1.0), m2 = mat4(0.0);
|
||||
FragColor += (b ? m1 : m2)[1];
|
||||
}
|
||||
|
9
3rdparty/glslang/Test/spv.deviceGroup.frag
vendored
Normal file
9
3rdparty/glslang/Test/spv.deviceGroup.frag
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#version 450
|
||||
|
||||
#extension GL_EXT_device_group : enable
|
||||
|
||||
out vec4 color;
|
||||
|
||||
void main() {
|
||||
color = vec4(gl_DeviceIndex, 0, 0, 0);
|
||||
}
|
13
3rdparty/glslang/Test/spv.drawParams.vert
vendored
Normal file
13
3rdparty/glslang/Test/spv.drawParams.vert
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
#version 450
|
||||
|
||||
#extension GL_ARB_shader_draw_parameters : enable
|
||||
|
||||
out vec3 pos;
|
||||
|
||||
void main()
|
||||
{
|
||||
int a = gl_BaseVertexARB;
|
||||
int b = gl_BaseInstanceARB;
|
||||
int c = gl_DrawIDARB;
|
||||
pos = vec3(a, b, c);
|
||||
}
|
9
3rdparty/glslang/Test/spv.multiView.frag
vendored
Normal file
9
3rdparty/glslang/Test/spv.multiView.frag
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#version 450
|
||||
|
||||
#extension GL_EXT_multiview : enable
|
||||
|
||||
out vec4 color;
|
||||
|
||||
void main() {
|
||||
color = vec4(gl_ViewIndex, 0, 0, 0);
|
||||
}
|
3
3rdparty/glslang/Test/tokenPaste.vert
vendored
3
3rdparty/glslang/Test/tokenPaste.vert
vendored
@ -77,3 +77,6 @@ uniform M_OUTER(argPaste);
|
||||
#define M_NEST2(q) int q ## suff
|
||||
#define M_OUTER2(p) M_NEST2(p ## 20)
|
||||
uniform M_OUTER2(argPaste);
|
||||
|
||||
#define rec(x)##
|
||||
rec(rec())
|
4
3rdparty/glslang/glslang/Include/BaseTypes.h
vendored
4
3rdparty/glslang/glslang/Include/BaseTypes.h
vendored
@ -203,6 +203,9 @@ enum TBuiltInVariable {
|
||||
EbvBaryCoordPullModel,
|
||||
#endif
|
||||
|
||||
EbvViewIndex,
|
||||
EbvDeviceIndex,
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
EbvViewportMaskNV,
|
||||
EbvSecondaryPositionNV,
|
||||
@ -210,6 +213,7 @@ enum TBuiltInVariable {
|
||||
EbvPositionPerViewNV,
|
||||
EbvViewportMaskPerViewNV,
|
||||
#endif
|
||||
|
||||
// HLSL built-ins that live only temporarily, until they get remapped
|
||||
// to one of the above.
|
||||
EbvFragDepthGreater,
|
||||
|
2
3rdparty/glslang/glslang/Include/Types.h
vendored
2
3rdparty/glslang/glslang/Include/Types.h
vendored
@ -188,6 +188,8 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
||||
case EbtFloat: break;
|
||||
case EbtInt: s.append("i"); break;
|
||||
case EbtUint: s.append("u"); break;
|
||||
case EbtInt64: s.append("i64"); break;
|
||||
case EbtUint64: s.append("u64"); break;
|
||||
default: break; // some compilers want this
|
||||
}
|
||||
if (image) {
|
||||
|
4
3rdparty/glslang/glslang/Include/revision.h
vendored
4
3rdparty/glslang/glslang/Include/revision.h
vendored
@ -2,5 +2,5 @@
|
||||
// For the version, it uses the latest git tag followed by the number of commits.
|
||||
// For the date, it uses the current date (when then script is run).
|
||||
|
||||
#define GLSLANG_REVISION "Overload400-PrecQual.1845"
|
||||
#define GLSLANG_DATE "24-Feb-2017"
|
||||
#define GLSLANG_REVISION "Overload400-PrecQual.1875"
|
||||
#define GLSLANG_DATE "03-Mar-2017"
|
||||
|
@ -85,6 +85,8 @@ TBuiltIns::TBuiltIns()
|
||||
prefixes[EbtFloat] = "";
|
||||
prefixes[EbtInt] = "i";
|
||||
prefixes[EbtUint] = "u";
|
||||
prefixes[EbtInt64] = "i64";
|
||||
prefixes[EbtUint64] = "u64";
|
||||
postfixes[2] = "2";
|
||||
postfixes[3] = "3";
|
||||
postfixes[4] = "4";
|
||||
@ -103,6 +105,7 @@ TBuiltIns::~TBuiltIns()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Add all context-independent built-in functions and variables that are present
|
||||
// for the given version and profile. Share common ones across stages, otherwise
|
||||
@ -3698,6 +3701,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
"\n");
|
||||
}
|
||||
|
||||
if (profile != EEsProfile) {
|
||||
commonBuiltins.append("uniform int gl_ViewIndex;");
|
||||
commonBuiltins.append("uniform int gl_DeviceIndex;"); // GL_EXT_device_group
|
||||
}
|
||||
|
||||
// printf("%s\n", commonBuiltins.c_str());
|
||||
// printf("%s\n", stageBuiltins[EShLangFragment].c_str());
|
||||
}
|
||||
@ -5308,6 +5316,13 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
||||
symbolTable.setFunctionExtensions("imageAtomicExchange", 1, &E_GL_OES_shader_image_atomic);
|
||||
symbolTable.setFunctionExtensions("imageAtomicCompSwap", 1, &E_GL_OES_shader_image_atomic);
|
||||
}
|
||||
|
||||
if (profile != EEsProfile) {
|
||||
symbolTable.setFunctionExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group);
|
||||
BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable);
|
||||
symbolTable.setFunctionExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview);
|
||||
BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable);
|
||||
}
|
||||
break;
|
||||
|
||||
case EShLangCompute:
|
||||
|
@ -5597,11 +5597,10 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
|
||||
|
||||
mergeObjectLayoutQualifiers(defaultQualification, currentBlockQualifier, true);
|
||||
|
||||
// "The offset qualifier can only be used on block members of blocks declared with std140 or std430 layouts."
|
||||
// "The align qualifier can only be used on blocks or block members, and only for blocks declared with std140 or std430 layouts."
|
||||
if (currentBlockQualifier.hasAlign() || currentBlockQualifier.hasAlign()) {
|
||||
if (currentBlockQualifier.hasAlign()) {
|
||||
if (defaultQualification.layoutPacking != ElpStd140 && defaultQualification.layoutPacking != ElpStd430) {
|
||||
error(loc, "can only be used with std140 or std430 layout packing", "offset/align", "");
|
||||
error(loc, "can only be used with std140 or std430 layout packing", "align", "");
|
||||
defaultQualification.layoutAlign = -1;
|
||||
}
|
||||
}
|
||||
@ -5643,9 +5642,12 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
|
||||
}
|
||||
} else
|
||||
memberWithoutLocation = true;
|
||||
if (memberQualifier.hasAlign()) {
|
||||
|
||||
// "The offset qualifier can only be used on block members of blocks declared with std140 or std430 layouts."
|
||||
// "The align qualifier can only be used on blocks or block members, and only for blocks declared with std140 or std430 layouts."
|
||||
if (memberQualifier.hasAlign() || memberQualifier.hasOffset()) {
|
||||
if (defaultQualification.layoutPacking != ElpStd140 && defaultQualification.layoutPacking != ElpStd430)
|
||||
error(memberLoc, "can only be used with std140 or std430 layout packing", "align", "");
|
||||
error(memberLoc, "can only be used with std140 or std430 layout packing", "offset/align", "");
|
||||
}
|
||||
|
||||
TQualifier newMemberQualification = defaultQualification;
|
||||
|
@ -103,7 +103,11 @@ void TType::buildMangledName(TString& mangledName)
|
||||
mangledName += "M";
|
||||
break;
|
||||
case EbtStruct:
|
||||
mangledName += "struct-";
|
||||
case EbtBlock:
|
||||
if (basicType == EbtStruct)
|
||||
mangledName += "struct-";
|
||||
else
|
||||
mangledName += "block-";
|
||||
if (typeName)
|
||||
mangledName += *typeName;
|
||||
for (unsigned int i = 0; i < structure->size(); ++i) {
|
||||
|
@ -232,6 +232,10 @@ void TParseVersions::initializeExtensionBehavior()
|
||||
extensionBehavior[E_GL_OES_tessellation_point_size] = EBhDisable;
|
||||
extensionBehavior[E_GL_OES_texture_buffer] = EBhDisable;
|
||||
extensionBehavior[E_GL_OES_texture_cube_map_array] = EBhDisable;
|
||||
|
||||
// EXT extensions
|
||||
extensionBehavior[E_GL_EXT_device_group] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_multiview] = EBhDisable;
|
||||
}
|
||||
|
||||
// Get code that is not part of a shared symbol table, is specific to this shader,
|
||||
@ -683,7 +687,7 @@ void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op)
|
||||
}
|
||||
|
||||
#ifdef AMD_EXTENSIONS
|
||||
// Call for any operation needing GLSL float16 data-type support.
|
||||
// Call for any operation needing float16 data-type support.
|
||||
void TParseVersions::float16Check(const TSourceLoc& loc, const char* op, bool builtIn)
|
||||
{
|
||||
if (!builtIn) {
|
||||
|
@ -132,6 +132,10 @@ const char* const E_GL_ARB_sparse_texture_clamp = "GL_ARB_sparse_texture
|
||||
const char* const E_GL_EXT_shader_non_constant_global_initializers = "GL_EXT_shader_non_constant_global_initializers";
|
||||
const char* const E_GL_EXT_shader_image_load_formatted = "GL_EXT_shader_image_load_formatted";
|
||||
|
||||
// EXT extensions
|
||||
const char* const E_GL_EXT_device_group = "GL_EXT_device_group";
|
||||
const char* const E_GL_EXT_multiview = "GL_EXT_multiview";
|
||||
|
||||
// #line and #include
|
||||
const char* const E_GL_GOOGLE_cpp_style_line_directive = "GL_GOOGLE_cpp_style_line_directive";
|
||||
const char* const E_GL_GOOGLE_include_directive = "GL_GOOGLE_include_directive";
|
||||
|
@ -986,6 +986,8 @@ TPpContext::TokenStream* TPpContext::PrescanMacroArg(TokenStream& arg, TPpToken*
|
||||
int token;
|
||||
while ((token = scanToken(ppToken)) != tMarkerInput::marker && token != EndOfInput) {
|
||||
token = tokenPaste(token, *ppToken);
|
||||
if (token == tMarkerInput::marker || token == EndOfInput)
|
||||
break;
|
||||
if (token == PpAtomIdentifier && MacroExpand(ppToken, false, newLineOkay) != 0)
|
||||
continue;
|
||||
expandedArg->putToken(token, ppToken);
|
||||
@ -1050,7 +1052,7 @@ int TPpContext::tMacroInput::scan(TPpToken* ppToken)
|
||||
// TODO: preprocessor: properly handle whitespace (or lack of it) between tokens when expanding
|
||||
if (token == PpAtomIdentifier) {
|
||||
int i;
|
||||
for (i = mac->args.size() - 1; i >= 0; i--)
|
||||
for (i = (int)mac->args.size() - 1; i >= 0; i--)
|
||||
if (strcmp(pp->atomStrings.getString(mac->args[i]), ppToken->name) == 0)
|
||||
break;
|
||||
if (i >= 0) {
|
||||
|
@ -236,7 +236,7 @@ public:
|
||||
void reset() { current = 0; }
|
||||
|
||||
protected:
|
||||
void putSubtoken(int);
|
||||
void putSubtoken(char);
|
||||
int getSubtoken();
|
||||
void ungetSubtoken();
|
||||
|
||||
|
@ -101,9 +101,16 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken)
|
||||
{
|
||||
bool HasDecimalOrExponent = false;
|
||||
int isDouble = 0;
|
||||
bool generateFloat16 = false;
|
||||
bool acceptFloat16 = parseContext.intermediate.getSource() == EShSourceHlsl;
|
||||
bool isFloat16 = false;
|
||||
bool requireHF = false;
|
||||
#ifdef AMD_EXTENSIONS
|
||||
int isFloat16 = 0;
|
||||
bool enableFloat16 = parseContext.version >= 450 && parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float);
|
||||
if (parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float)) {
|
||||
acceptFloat16 = true;
|
||||
generateFloat16 = true;
|
||||
requireHF = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
const auto saveName = [&](int ch) {
|
||||
@ -158,21 +165,27 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken)
|
||||
saveName(ch2);
|
||||
isDouble = 1;
|
||||
}
|
||||
} else if (acceptFloat16 && (ch == 'h' || ch == 'H')) {
|
||||
#ifdef AMD_EXTENSIONS
|
||||
} else if (enableFloat16 && (ch == 'h' || ch == 'H')) {
|
||||
parseContext.float16Check(ppToken->loc, "half floating-point suffix");
|
||||
if (generateFloat16)
|
||||
parseContext.float16Check(ppToken->loc, "half floating-point suffix");
|
||||
#endif
|
||||
if (!HasDecimalOrExponent)
|
||||
parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", "");
|
||||
int ch2 = getChar();
|
||||
if (ch2 != 'f' && ch2 != 'F') {
|
||||
ungetChar();
|
||||
ungetChar();
|
||||
if (requireHF) {
|
||||
int ch2 = getChar();
|
||||
if (ch2 != 'f' && ch2 != 'F') {
|
||||
ungetChar();
|
||||
ungetChar();
|
||||
} else {
|
||||
saveName(ch);
|
||||
saveName(ch2);
|
||||
isFloat16 = generateFloat16;
|
||||
}
|
||||
} else {
|
||||
saveName(ch);
|
||||
saveName(ch2);
|
||||
isFloat16 = 1;
|
||||
isFloat16 = generateFloat16;
|
||||
}
|
||||
#endif
|
||||
} else if (ch == 'f' || ch == 'F') {
|
||||
parseContext.profileRequires(ppToken->loc, EEsProfile, 300, nullptr, "floating-point suffix");
|
||||
if (! parseContext.relaxedErrors())
|
||||
@ -197,10 +210,8 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken)
|
||||
// Return the right token type
|
||||
if (isDouble)
|
||||
return PpAtomConstDouble;
|
||||
#ifdef AMD_EXTENSIONS
|
||||
else if (isFloat16)
|
||||
return PpAtomConstFloat16;
|
||||
#endif
|
||||
else
|
||||
return PpAtomConstFloat;
|
||||
}
|
||||
@ -216,6 +227,15 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken)
|
||||
int ii = 0;
|
||||
unsigned long long ival = 0;
|
||||
bool enableInt64 = pp->parseContext.version >= 450 && pp->parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_int64);
|
||||
bool acceptHalf = pp->parseContext.intermediate.getSource() == EShSourceHlsl;
|
||||
#ifdef AMD_EXTENSIONS
|
||||
if (pp->parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float))
|
||||
acceptHalf = true;
|
||||
#endif
|
||||
|
||||
const auto floatingPointChar = [&](int ch) { return ch == '.' || ch == 'e' || ch == 'E' ||
|
||||
ch == 'f' || ch == 'F' ||
|
||||
(acceptHalf && (ch == 'h' || ch == 'H')); };
|
||||
|
||||
ppToken->ival = 0;
|
||||
ppToken->i64val = 0;
|
||||
@ -380,7 +400,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken)
|
||||
ch = getch();
|
||||
} while (ch >= '0' && ch <= '9');
|
||||
}
|
||||
if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'E' || ch == 'F')
|
||||
if (floatingPointChar(ch))
|
||||
return pp->lFloatConst(len, ch, ppToken);
|
||||
|
||||
// wasn't a float, so must be octal...
|
||||
@ -435,9 +455,9 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken)
|
||||
}
|
||||
ch = getch();
|
||||
} while (ch >= '0' && ch <= '9');
|
||||
if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'E' || ch == 'F') {
|
||||
if (floatingPointChar(ch))
|
||||
return pp->lFloatConst(len, ch, ppToken);
|
||||
} else {
|
||||
else {
|
||||
// Finish handling signed and unsigned integers
|
||||
int numericLen = len;
|
||||
bool isUnsigned = false;
|
||||
|
@ -96,9 +96,8 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
namespace glslang {
|
||||
|
||||
// push onto back of stream
|
||||
void TPpContext::TokenStream::putSubtoken(int subtoken)
|
||||
void TPpContext::TokenStream::putSubtoken(char subtoken)
|
||||
{
|
||||
assert((subtoken & ~0xff) == 0);
|
||||
data.push_back(static_cast<unsigned char>(subtoken));
|
||||
}
|
||||
|
||||
@ -125,7 +124,8 @@ void TPpContext::TokenStream::putToken(int token, TPpToken* ppToken)
|
||||
const char* s;
|
||||
char* str = NULL;
|
||||
|
||||
putSubtoken(token);
|
||||
assert((token & ~0xff) == 0);
|
||||
putSubtoken(static_cast<char>(token));
|
||||
|
||||
switch (token) {
|
||||
case PpAtomIdentifier:
|
||||
|
@ -127,9 +127,7 @@ enum EFixedAtoms {
|
||||
PpAtomConstUint64,
|
||||
PpAtomConstFloat,
|
||||
PpAtomConstDouble,
|
||||
#ifdef AMD_EXTENSIONS
|
||||
PpAtomConstFloat16,
|
||||
#endif
|
||||
PpAtomConstString,
|
||||
|
||||
// Identifiers
|
||||
|
8
3rdparty/glslang/glslang/Public/ShaderLang.h
vendored
8
3rdparty/glslang/glslang/Public/ShaderLang.h
vendored
@ -203,14 +203,6 @@ SH_IMPORT_EXPORT int ShCompile(
|
||||
EShMessages messages = EShMsgDefault // warnings and errors
|
||||
);
|
||||
|
||||
SH_IMPORT_EXPORT int ShLink(
|
||||
const ShHandle, // linker object
|
||||
const ShHandle h[], // compiler objects to link together
|
||||
const int numHandles,
|
||||
ShHandle uniformMap, // updated with new uniforms
|
||||
short int** uniformsAccessed, // returned with indexes of uniforms accessed
|
||||
int* numUniformsAccessed);
|
||||
|
||||
SH_IMPORT_EXPORT int ShLinkExt(
|
||||
const ShHandle, // linker object
|
||||
const ShHandle h[], // compiler objects to link together
|
||||
|
5
3rdparty/glslang/gtests/Hlsl.FromFile.cpp
vendored
5
3rdparty/glslang/gtests/Hlsl.FromFile.cpp
vendored
@ -132,7 +132,8 @@ INSTANTIATE_TEST_CASE_P(
|
||||
{"hlsl.intrinsics.evalfns.frag", "main"},
|
||||
{"hlsl.intrinsics.d3dcolortoubyte4.frag", "main"},
|
||||
{"hlsl.intrinsics.double.frag", "PixelShaderFunction"},
|
||||
{"hlsl.intrinsics.f1632.frag", "PixelShaderFunction"},
|
||||
{"hlsl.intrinsics.f1632.frag", "main"},
|
||||
{"hlsl.intrinsics.f3216.frag", "main"},
|
||||
{"hlsl.intrinsics.frag", "main"},
|
||||
{"hlsl.intrinsics.lit.frag", "PixelShaderFunction"},
|
||||
{"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"},
|
||||
@ -225,10 +226,12 @@ INSTANTIATE_TEST_CASE_P(
|
||||
{"hlsl.structbuffer.atomics.frag", "main"},
|
||||
{"hlsl.structbuffer.byte.frag", "main"},
|
||||
{"hlsl.structbuffer.coherent.frag", "main"},
|
||||
{"hlsl.structbuffer.fn.frag", "main"},
|
||||
{"hlsl.structbuffer.rw.frag", "main"},
|
||||
{"hlsl.structbuffer.rwbyte.frag", "main"},
|
||||
{"hlsl.structin.vert", "main"},
|
||||
{"hlsl.structIoFourWay.frag", "main"},
|
||||
{"hlsl.structStructName.frag", "main"},
|
||||
{"hlsl.intrinsics.vert", "VertexShaderFunction"},
|
||||
{"hlsl.matType.frag", "PixelShaderFunction"},
|
||||
{"hlsl.matType.bool.frag", "main"},
|
||||
|
9
3rdparty/glslang/gtests/Spv.FromFile.cpp
vendored
9
3rdparty/glslang/gtests/Spv.FromFile.cpp
vendored
@ -225,7 +225,9 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"spv.dataOutIndirect.vert",
|
||||
"spv.deepRvalue.frag",
|
||||
"spv.depthOut.frag",
|
||||
"spv.deviceGroup.frag",
|
||||
"spv.discard-dce.frag",
|
||||
"spv.drawParams.vert",
|
||||
"spv.doWhileLoop.frag",
|
||||
"spv.earlyReturnDiscard.frag",
|
||||
"spv.flowControl.frag",
|
||||
@ -234,8 +236,10 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"spv.functionCall.frag",
|
||||
"spv.functionNestedOpaque.vert",
|
||||
"spv.functionSemantics.frag",
|
||||
"spv.GeometryShaderPassthrough.geom",
|
||||
"spv.interpOps.frag",
|
||||
"spv.int64.frag",
|
||||
"spv.intOps.vert",
|
||||
"spv.layoutNested.vert",
|
||||
"spv.length.frag",
|
||||
"spv.localAggregates.frag",
|
||||
@ -248,16 +252,17 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"spv.merge-unreachable.frag",
|
||||
"spv.multiStruct.comp",
|
||||
"spv.multiStructFuncall.frag",
|
||||
"spv.multiView.frag",
|
||||
"spv.newTexture.frag",
|
||||
"spv.noDeadDecorations.vert",
|
||||
"spv.nonSquare.vert",
|
||||
"spv.noWorkgroup.comp",
|
||||
"spv.offsets.frag",
|
||||
"spv.Operations.frag",
|
||||
"spv.intOps.vert",
|
||||
"spv.noWorkgroup.comp",
|
||||
"spv.precision.frag",
|
||||
"spv.prepost.frag",
|
||||
"spv.qualifiers.vert",
|
||||
"spv.sampleMaskOverrideCoverage.frag",
|
||||
"spv.shaderBallot.comp",
|
||||
"spv.shaderDrawParams.vert",
|
||||
"spv.shaderGroupVote.comp",
|
||||
|
102
3rdparty/glslang/hlsl/hlslGrammar.cpp
vendored
102
3rdparty/glslang/hlsl/hlslGrammar.cpp
vendored
@ -406,36 +406,13 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node, TIntermNode*& node2)
|
||||
}
|
||||
}
|
||||
|
||||
TString* blockName = idToken.string;
|
||||
|
||||
// For structbuffers, we couldn't create the block type while accepting the
|
||||
// template type, because we need the identifier name. Now that we have that,
|
||||
// we can create the buffer type.
|
||||
// TODO: how to determine this without looking for implicit array sizes?
|
||||
if (variableType.getBasicType() == EbtBlock) {
|
||||
const int memberCount = variableType.getStruct()->size();
|
||||
assert(memberCount > 0);
|
||||
|
||||
TType* contentType = (*variableType.getStruct())[memberCount-1].type;
|
||||
|
||||
// Set the field name and qualifier from the declaration, now that we know it.
|
||||
if (contentType->isRuntimeSizedArray()) {
|
||||
contentType->getQualifier() = variableType.getQualifier();
|
||||
blockName = nullptr; // this will be an anonymous block...
|
||||
contentType->setFieldName(*idToken.string); // field name is declaration name
|
||||
variableType.setTypeName(*idToken.string);
|
||||
}
|
||||
}
|
||||
|
||||
// Hand off the actual declaration
|
||||
|
||||
// TODO: things scoped within an annotation need their own name space;
|
||||
// TODO: strings are not yet handled.
|
||||
if (variableType.getBasicType() != EbtString && parseContext.getAnnotationNestingLevel() == 0) {
|
||||
if (typedefDecl)
|
||||
parseContext.declareTypedef(idToken.loc, *idToken.string, variableType);
|
||||
else if (variableType.getBasicType() == EbtBlock)
|
||||
parseContext.declareBlock(idToken.loc, variableType, blockName);
|
||||
parseContext.declareBlock(idToken.loc, variableType, idToken.string);
|
||||
else {
|
||||
if (variableType.getQualifier().storage == EvqUniform && ! variableType.containsOpaque()) {
|
||||
// this isn't really an individual variable, but a member of the $Global buffer
|
||||
@ -1282,6 +1259,7 @@ bool HlslGrammar::acceptType(TType& type)
|
||||
return acceptStructBufferType(type);
|
||||
break;
|
||||
|
||||
case EHTokClass:
|
||||
case EHTokStruct:
|
||||
case EHTokCBuffer:
|
||||
case EHTokTBuffer:
|
||||
@ -1291,9 +1269,8 @@ bool HlslGrammar::acceptType(TType& type)
|
||||
// An identifier could be for a user-defined type.
|
||||
// Note we cache the symbol table lookup, to save for a later rule
|
||||
// when this is not a type.
|
||||
token.symbol = parseContext.symbolTable.find(*token.string);
|
||||
if (token.symbol && token.symbol->getAsVariable() && token.symbol->getAsVariable()->isUserType()) {
|
||||
type.shallowCopy(token.symbol->getType());
|
||||
token.symbol = parseContext.lookupUserType(*token.string, type);
|
||||
if (token.symbol != nullptr) {
|
||||
advanceToken();
|
||||
return true;
|
||||
} else
|
||||
@ -1752,9 +1729,11 @@ bool HlslGrammar::acceptType(TType& type)
|
||||
// struct
|
||||
// : struct_type IDENTIFIER post_decls LEFT_BRACE struct_declaration_list RIGHT_BRACE
|
||||
// | struct_type post_decls LEFT_BRACE struct_declaration_list RIGHT_BRACE
|
||||
// | struct_type IDENTIFIER // use of previously declared struct type
|
||||
//
|
||||
// struct_type
|
||||
// : STRUCT
|
||||
// | CLASS
|
||||
// | CBUFFER
|
||||
// | TBUFFER
|
||||
//
|
||||
@ -1770,8 +1749,9 @@ bool HlslGrammar::acceptStruct(TType& type)
|
||||
// TBUFFER
|
||||
else if (acceptTokenClass(EHTokTBuffer))
|
||||
storageQualifier = EvqBuffer;
|
||||
// CLASS
|
||||
// STRUCT
|
||||
else if (! acceptTokenClass(EHTokStruct))
|
||||
else if (! acceptTokenClass(EHTokClass) && ! acceptTokenClass(EHTokStruct))
|
||||
return false;
|
||||
|
||||
// IDENTIFIER
|
||||
@ -1784,12 +1764,18 @@ bool HlslGrammar::acceptStruct(TType& type)
|
||||
// post_decls
|
||||
TQualifier postDeclQualifier;
|
||||
postDeclQualifier.clear();
|
||||
acceptPostDecls(postDeclQualifier);
|
||||
bool postDeclsFound = acceptPostDecls(postDeclQualifier);
|
||||
|
||||
// LEFT_BRACE
|
||||
// struct_type IDENTIFIER
|
||||
if (! acceptTokenClass(EHTokLeftBrace)) {
|
||||
expected("{");
|
||||
return false;
|
||||
if (structName.size() > 0 && !postDeclsFound && parseContext.lookupUserType(structName, type) != nullptr) {
|
||||
// struct_type IDENTIFIER
|
||||
return true;
|
||||
} else {
|
||||
expected("{");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// struct_declaration_list
|
||||
@ -1888,18 +1874,26 @@ bool HlslGrammar::acceptStructBufferType(TType& type)
|
||||
TArraySizes unsizedArray;
|
||||
unsizedArray.addInnerSize(UnsizedArraySize);
|
||||
templateType->newArraySizes(unsizedArray);
|
||||
templateType->getQualifier().storage = storage;
|
||||
templateType->getQualifier().readonly = readonly;
|
||||
|
||||
// field name is canonical for all structbuffers
|
||||
templateType->setFieldName("@data");
|
||||
|
||||
// Create block type. TODO: hidden internal uint member when needed
|
||||
|
||||
TTypeList* blockStruct = new TTypeList;
|
||||
TTypeLoc member = { templateType, token.loc };
|
||||
blockStruct->push_back(member);
|
||||
|
||||
// This is the type of the buffer block (SSBO)
|
||||
TType blockType(blockStruct, "", templateType->getQualifier());
|
||||
|
||||
// It's not until we see the name during declaration that we can set the
|
||||
// field name. That happens in HlslGrammar::acceptDeclaration.
|
||||
blockType.getQualifier().storage = storage;
|
||||
blockType.getQualifier().readonly = readonly;
|
||||
|
||||
// We may have created an equivalent type before, in which case we should use its
|
||||
// deep structure.
|
||||
parseContext.shareStructBufferType(blockType);
|
||||
|
||||
type.shallowCopy(blockType);
|
||||
|
||||
return true;
|
||||
@ -2527,8 +2521,8 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node)
|
||||
~tFinalize() { parseContext.finalizeFlattening(); }
|
||||
HlslParseContext& parseContext;
|
||||
private:
|
||||
const tFinalize& operator=(const tFinalize& f);
|
||||
tFinalize(const tFinalize& f);
|
||||
const tFinalize& operator=(const tFinalize& f) { return *this; }
|
||||
tFinalize(const tFinalize& f) : parseContext(f.parseContext) { }
|
||||
} finalize(parseContext);
|
||||
|
||||
// Initialize the flattening accumulation data, so we can track data across multiple bracket or
|
||||
@ -3289,11 +3283,18 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes)
|
||||
// COLON LAYOUT layout_qualifier_list
|
||||
// annotations // optional
|
||||
//
|
||||
void HlslGrammar::acceptPostDecls(TQualifier& qualifier)
|
||||
// Return true if any tokens were accepted. That is,
|
||||
// false can be returned on successfully recognizing nothing,
|
||||
// not necessarily meaning bad syntax.
|
||||
//
|
||||
bool HlslGrammar::acceptPostDecls(TQualifier& qualifier)
|
||||
{
|
||||
bool found = false;
|
||||
|
||||
do {
|
||||
// COLON
|
||||
if (acceptTokenClass(EHTokColon)) {
|
||||
found = true;
|
||||
HlslToken idToken;
|
||||
if (peekTokenClass(EHTokLayout))
|
||||
acceptLayoutQualifierList(qualifier);
|
||||
@ -3301,18 +3302,18 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier)
|
||||
// PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN
|
||||
if (! acceptTokenClass(EHTokLeftParen)) {
|
||||
expected("(");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
HlslToken locationToken;
|
||||
if (! acceptIdentifier(locationToken)) {
|
||||
expected("c[subcomponent][.component]");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
HlslToken componentToken;
|
||||
if (acceptTokenClass(EHTokDot)) {
|
||||
if (! acceptIdentifier(componentToken)) {
|
||||
expected("component");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (! acceptTokenClass(EHTokRightParen)) {
|
||||
@ -3322,19 +3323,19 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier)
|
||||
parseContext.handlePackOffset(locationToken.loc, qualifier, *locationToken.string, componentToken.string);
|
||||
} else if (! acceptIdentifier(idToken)) {
|
||||
expected("layout, semantic, packoffset, or register");
|
||||
return;
|
||||
return false;
|
||||
} else if (*idToken.string == "register") {
|
||||
// REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt (COMMA SPACEN)opt RIGHT_PAREN
|
||||
// LEFT_PAREN
|
||||
if (! acceptTokenClass(EHTokLeftParen)) {
|
||||
expected("(");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
HlslToken registerDesc; // for Type#
|
||||
HlslToken profile;
|
||||
if (! acceptIdentifier(registerDesc)) {
|
||||
expected("register number description");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
if (registerDesc.string->size() > 1 && !isdigit((*registerDesc.string)[1]) &&
|
||||
acceptTokenClass(EHTokComma)) {
|
||||
@ -3343,7 +3344,7 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier)
|
||||
profile = registerDesc;
|
||||
if (! acceptIdentifier(registerDesc)) {
|
||||
expected("register number description");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
int subComponent = 0;
|
||||
@ -3351,7 +3352,7 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier)
|
||||
// LEFT_BRACKET subcomponent RIGHT_BRACKET
|
||||
if (! peekTokenClass(EHTokIntConstant)) {
|
||||
expected("literal integer");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
subComponent = token.i;
|
||||
advanceToken();
|
||||
@ -3365,7 +3366,7 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier)
|
||||
if (acceptTokenClass(EHTokComma)) {
|
||||
if (! acceptIdentifier(spaceDesc)) {
|
||||
expected ("space identifier");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// RIGHT_PAREN
|
||||
@ -3378,12 +3379,15 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier)
|
||||
// semantic, in idToken.string
|
||||
parseContext.handleSemantic(idToken.loc, qualifier, *idToken.string);
|
||||
}
|
||||
} else if (peekTokenClass(EHTokLeftAngle))
|
||||
} else if (peekTokenClass(EHTokLeftAngle)) {
|
||||
found = true;
|
||||
acceptAnnotations(qualifier);
|
||||
else
|
||||
} else
|
||||
break;
|
||||
|
||||
} while (true);
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
} // end namespace glslang
|
||||
|
2
3rdparty/glslang/hlsl/hlslGrammar.h
vendored
2
3rdparty/glslang/hlsl/hlslGrammar.h
vendored
@ -114,7 +114,7 @@ namespace glslang {
|
||||
bool acceptCaseLabel(TIntermNode*&);
|
||||
bool acceptDefaultLabel(TIntermNode*&);
|
||||
void acceptArraySpecifier(TArraySizes*&);
|
||||
void acceptPostDecls(TQualifier&);
|
||||
bool acceptPostDecls(TQualifier&);
|
||||
bool acceptDefaultParameterDeclaration(const TType&, TIntermTyped*&);
|
||||
|
||||
HlslParseContext& parseContext; // state of parsing and helper functions for building the intermediate
|
||||
|
274
3rdparty/glslang/hlsl/hlslParseHelper.cpp
vendored
274
3rdparty/glslang/hlsl/hlslParseHelper.cpp
vendored
@ -691,6 +691,22 @@ TIntermTyped* HlslParseContext::handleBracketOperator(const TSourceLoc& loc, TIn
|
||||
}
|
||||
}
|
||||
|
||||
// Handle operator[] on structured buffers: this indexes into the array element of the buffer.
|
||||
// indexStructBufferContent returns nullptr if it isn't a structuredbuffer (SSBO).
|
||||
TIntermTyped* sbArray = indexStructBufferContent(loc, base);
|
||||
if (sbArray != nullptr) {
|
||||
if (sbArray == nullptr)
|
||||
return nullptr;
|
||||
|
||||
// Now we'll apply the [] index to that array
|
||||
const TOperator idxOp = (index->getQualifier().storage == EvqConst) ? EOpIndexDirect : EOpIndexIndirect;
|
||||
|
||||
TIntermTyped* element = intermediate.addIndex(idxOp, sbArray, index, loc);
|
||||
const TType derefType(sbArray->getType(), 0);
|
||||
element->setType(derefType);
|
||||
return element;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -866,9 +882,7 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt
|
||||
const int vecSize = sampler.isShadow() ? 1 : 4; // TODO: handle arbitrary sample return sizes
|
||||
return intermediate.addMethod(base, TType(sampler.type, EvqTemporary, vecSize), &field, loc);
|
||||
}
|
||||
} else if (isStructBufferMethod(field) &&
|
||||
base->getType().isRuntimeSizedArray() &&
|
||||
(base->getQualifier().storage == EvqUniform || base->getQualifier().storage == EvqBuffer)) {
|
||||
} else if (isStructBufferType(base->getType())) {
|
||||
TType retType(base->getType(), 0);
|
||||
return intermediate.addMethod(base, retType, &field, loc);
|
||||
} else if (field == "Append" ||
|
||||
@ -1919,9 +1933,11 @@ void HlslParseContext::remapNonEntryPointIO(TFunction& function)
|
||||
if (function.getType().getBasicType() != EbtVoid)
|
||||
clearUniformInputOutput(function.getWritableType().getQualifier());
|
||||
|
||||
// parameters
|
||||
// parameters.
|
||||
// References to structuredbuffer types are left unmodified
|
||||
for (int i = 0; i < function.getParamCount(); i++)
|
||||
clearUniformInputOutput(function[i].type->getQualifier());
|
||||
if (!isReference(*function[i].type))
|
||||
clearUniformInputOutput(function[i].type->getQualifier());
|
||||
}
|
||||
|
||||
// Handle function returns, including type conversions to the function return type
|
||||
@ -2284,13 +2300,17 @@ void HlslParseContext::decomposeStructBufferMethods(const TSourceLoc& loc, TInte
|
||||
|
||||
const TOperator op = node->getAsOperator()->getOp();
|
||||
TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr;
|
||||
|
||||
TIntermTyped* argArray = argAggregate ? argAggregate->getSequence()[0]->getAsTyped() : nullptr; // array
|
||||
|
||||
// Bail out if not a block method
|
||||
if (argArray == nullptr || !argArray->getType().isRuntimeSizedArray())
|
||||
if (argAggregate == nullptr)
|
||||
return;
|
||||
|
||||
// Buffer is the object upon which method is called, so always arg 0
|
||||
TIntermTyped* bufferObj = argAggregate->getSequence()[0]->getAsTyped();
|
||||
|
||||
// Index to obtain the runtime sized array out of the buffer.
|
||||
TIntermTyped* argArray = indexStructBufferContent(loc, bufferObj);
|
||||
if (argArray == nullptr)
|
||||
return; // It might not be a struct buffer method.
|
||||
|
||||
switch (op) {
|
||||
case EOpMethodLoad:
|
||||
{
|
||||
@ -2432,7 +2452,7 @@ void HlslParseContext::decomposeStructBufferMethods(const TSourceLoc& loc, TInte
|
||||
|
||||
case EOpMethodGetDimensions:
|
||||
{
|
||||
const int numArgs = argAggregate->getSequence().size();
|
||||
const int numArgs = (int)argAggregate->getSequence().size();
|
||||
TIntermTyped* argNumItems = argAggregate->getSequence()[1]->getAsTyped(); // out num items
|
||||
TIntermTyped* argStride = numArgs > 2 ? argAggregate->getSequence()[2]->getAsTyped() : nullptr; // out stride
|
||||
|
||||
@ -3564,10 +3584,107 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*&
|
||||
}
|
||||
|
||||
case EOpF16tof32:
|
||||
{
|
||||
// input uvecN with low 16 bits of each component holding a float16. convert to float32.
|
||||
TIntermTyped* argValue = node->getAsUnaryNode()->getOperand();
|
||||
TIntermTyped* zero = intermediate.addConstantUnion(0, loc, true);
|
||||
const int vecSize = argValue->getType().getVectorSize();
|
||||
|
||||
TOperator constructOp = EOpNull;
|
||||
switch (vecSize) {
|
||||
case 1: constructOp = EOpNull; break; // direct use, no construct needed
|
||||
case 2: constructOp = EOpConstructVec2; break;
|
||||
case 3: constructOp = EOpConstructVec3; break;
|
||||
case 4: constructOp = EOpConstructVec4; break;
|
||||
default: assert(0); break;
|
||||
}
|
||||
|
||||
// For scalar case, we don't need to construct another type.
|
||||
TIntermAggregate* result = (vecSize > 1) ? new TIntermAggregate(constructOp) : nullptr;
|
||||
|
||||
if (result) {
|
||||
result->setType(TType(EbtFloat, EvqTemporary, vecSize));
|
||||
result->setLoc(loc);
|
||||
}
|
||||
|
||||
for (int idx = 0; idx < vecSize; ++idx) {
|
||||
TIntermTyped* idxConst = intermediate.addConstantUnion(idx, loc, true);
|
||||
TIntermTyped* component = argValue->getType().isVector() ?
|
||||
intermediate.addIndex(EOpIndexDirect, argValue, idxConst, loc) : argValue;
|
||||
|
||||
if (component != argValue)
|
||||
component->setType(TType(argValue->getBasicType(), EvqTemporary));
|
||||
|
||||
TIntermTyped* unpackOp = new TIntermUnary(EOpUnpackHalf2x16);
|
||||
unpackOp->setType(TType(EbtFloat, EvqTemporary, 2));
|
||||
unpackOp->getAsUnaryNode()->setOperand(component);
|
||||
unpackOp->setLoc(loc);
|
||||
|
||||
TIntermTyped* lowOrder = intermediate.addIndex(EOpIndexDirect, unpackOp, zero, loc);
|
||||
|
||||
if (result != nullptr) {
|
||||
result->getSequence().push_back(lowOrder);
|
||||
node = result;
|
||||
} else {
|
||||
node = lowOrder;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case EOpF32tof16:
|
||||
{
|
||||
// Temporary until decomposition is available.
|
||||
error(loc, "unimplemented intrinsic: handle natively", "f32tof16", "");
|
||||
// input floatN converted to 16 bit float in low order bits of each component of uintN
|
||||
TIntermTyped* argValue = node->getAsUnaryNode()->getOperand();
|
||||
|
||||
TIntermTyped* zero = intermediate.addConstantUnion(0.0, EbtFloat, loc, true);
|
||||
const int vecSize = argValue->getType().getVectorSize();
|
||||
|
||||
TOperator constructOp = EOpNull;
|
||||
switch (vecSize) {
|
||||
case 1: constructOp = EOpNull; break; // direct use, no construct needed
|
||||
case 2: constructOp = EOpConstructUVec2; break;
|
||||
case 3: constructOp = EOpConstructUVec3; break;
|
||||
case 4: constructOp = EOpConstructUVec4; break;
|
||||
default: assert(0); break;
|
||||
}
|
||||
|
||||
// For scalar case, we don't need to construct another type.
|
||||
TIntermAggregate* result = (vecSize > 1) ? new TIntermAggregate(constructOp) : nullptr;
|
||||
|
||||
if (result) {
|
||||
result->setType(TType(EbtUint, EvqTemporary, vecSize));
|
||||
result->setLoc(loc);
|
||||
}
|
||||
|
||||
for (int idx = 0; idx < vecSize; ++idx) {
|
||||
TIntermTyped* idxConst = intermediate.addConstantUnion(idx, loc, true);
|
||||
TIntermTyped* component = argValue->getType().isVector() ?
|
||||
intermediate.addIndex(EOpIndexDirect, argValue, idxConst, loc) : argValue;
|
||||
|
||||
if (component != argValue)
|
||||
component->setType(TType(argValue->getBasicType(), EvqTemporary));
|
||||
|
||||
TIntermAggregate* vec2ComponentAndZero = new TIntermAggregate(EOpConstructVec2);
|
||||
vec2ComponentAndZero->getSequence().push_back(component);
|
||||
vec2ComponentAndZero->getSequence().push_back(zero);
|
||||
vec2ComponentAndZero->setType(TType(EbtFloat, EvqTemporary, 2));
|
||||
vec2ComponentAndZero->setLoc(loc);
|
||||
|
||||
TIntermTyped* packOp = new TIntermUnary(EOpPackHalf2x16);
|
||||
packOp->getAsUnaryNode()->setOperand(vec2ComponentAndZero);
|
||||
packOp->setLoc(loc);
|
||||
packOp->setType(TType(EbtUint, EvqTemporary));
|
||||
|
||||
if (result != nullptr) {
|
||||
result->getSequence().push_back(packOp);
|
||||
node = result;
|
||||
} else {
|
||||
node = packOp;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@ -3637,13 +3754,13 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct
|
||||
// Find it in the symbol table.
|
||||
//
|
||||
const TFunction* fnCandidate = nullptr;
|
||||
bool builtIn;
|
||||
bool builtIn = false;
|
||||
|
||||
// TODO: this needs improvement: there's no way at present to look up a signature in
|
||||
// the symbol table for an arbitrary type. This is a temporary hack until that ability exists.
|
||||
// It will have false positives, since it doesn't check arg counts or types.
|
||||
if (arguments && arguments->getAsAggregate()) {
|
||||
if (arguments->getAsAggregate()->getSequence()[0]->getAsTyped()->getType().isRuntimeSizedArray()) {
|
||||
if (isStructBufferType(arguments->getAsAggregate()->getSequence()[0]->getAsTyped()->getType())) {
|
||||
if (isStructBufferMethod(function->getName())) {
|
||||
const TString mangle = function->getName() + "(";
|
||||
TSymbol* symbol = symbolTable.find(mangle, &builtIn);
|
||||
@ -5033,6 +5150,101 @@ void HlslParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& n
|
||||
trackLinkage(*block);
|
||||
}
|
||||
|
||||
//
|
||||
// Generate index to the array element in a structure buffer (SSBO)
|
||||
//
|
||||
TIntermTyped* HlslParseContext::indexStructBufferContent(const TSourceLoc& loc, TIntermTyped* buffer) const
|
||||
{
|
||||
// Bail out if not a struct buffer
|
||||
if (buffer == nullptr || ! isStructBufferType(buffer->getType()))
|
||||
return nullptr;
|
||||
|
||||
// Runtime sized array is always the last element.
|
||||
const TTypeList* bufferStruct = buffer->getType().getStruct();
|
||||
TIntermTyped* arrayPosition = intermediate.addConstantUnion(unsigned(bufferStruct->size()-1), loc);
|
||||
|
||||
TIntermTyped* argArray = intermediate.addIndex(EOpIndexDirectStruct, buffer, arrayPosition, loc);
|
||||
argArray->setType(*(*bufferStruct)[bufferStruct->size()-1].type);
|
||||
|
||||
return argArray;
|
||||
}
|
||||
|
||||
//
|
||||
// IFF type is a structuredbuffer/byteaddressbuffer type, return the content
|
||||
// (template) type. E.g, StructuredBuffer<MyType> -> MyType. Else return nullptr.
|
||||
//
|
||||
TType* HlslParseContext::getStructBufferContentType(const TType& type) const
|
||||
{
|
||||
if (type.getBasicType() != EbtBlock)
|
||||
return nullptr;
|
||||
|
||||
const int memberCount = (int)type.getStruct()->size();
|
||||
assert(memberCount > 0);
|
||||
|
||||
TType* contentType = (*type.getStruct())[memberCount-1].type;
|
||||
|
||||
return contentType->isRuntimeSizedArray() ? contentType : nullptr;
|
||||
}
|
||||
|
||||
//
|
||||
// If an existing struct buffer has a sharable type, then share it.
|
||||
//
|
||||
void HlslParseContext::shareStructBufferType(TType& type)
|
||||
{
|
||||
// PackOffset must be equivalent to share types on a per-member basis.
|
||||
// Note: cannot use auto type due to recursion. Thus, this is a std::function.
|
||||
const std::function<bool(TType& lhs, TType& rhs)>
|
||||
compareQualifiers = [&](TType& lhs, TType& rhs) -> bool {
|
||||
if (lhs.getQualifier().layoutOffset != rhs.getQualifier().layoutOffset)
|
||||
return false;
|
||||
|
||||
if (lhs.isStruct() != rhs.isStruct())
|
||||
return false;
|
||||
|
||||
if (lhs.isStruct() && rhs.isStruct()) {
|
||||
if (lhs.getStruct()->size() != rhs.getStruct()->size())
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < int(lhs.getStruct()->size()); ++i)
|
||||
if (!compareQualifiers(*(*lhs.getStruct())[i].type, *(*rhs.getStruct())[i].type))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
// We need to compare certain qualifiers in addition to the type.
|
||||
const auto typeEqual = [compareQualifiers](TType& lhs, TType& rhs) -> bool {
|
||||
if (lhs.getQualifier().readonly != rhs.getQualifier().readonly)
|
||||
return false;
|
||||
|
||||
// If both are structures, recursively look for packOffset equality
|
||||
// as well as type equality.
|
||||
return compareQualifiers(lhs, rhs) && lhs == rhs;
|
||||
};
|
||||
|
||||
// TString typeName;
|
||||
// type.appendMangledName(typeName);
|
||||
// type.setTypeName(typeName);
|
||||
|
||||
// This is an exhaustive O(N) search, but real world shaders have
|
||||
// only a small number of these.
|
||||
for (int idx = 0; idx < int(structBufferTypes.size()); ++idx) {
|
||||
// If the deep structure matches, modulo qualifiers, use it
|
||||
if (typeEqual(*structBufferTypes[idx], type)) {
|
||||
type.shallowCopy(*structBufferTypes[idx]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise, remember it:
|
||||
TType* typeCopy = new TType;
|
||||
typeCopy->shallowCopy(type);
|
||||
structBufferTypes.push_back(typeCopy);
|
||||
|
||||
// structBuffTypes.push_back(type.getWritableStruct());
|
||||
}
|
||||
|
||||
void HlslParseContext::paramFix(TType& type)
|
||||
{
|
||||
switch (type.getQualifier().storage) {
|
||||
@ -5043,6 +5255,18 @@ void HlslParseContext::paramFix(TType& type)
|
||||
case EvqTemporary:
|
||||
type.getQualifier().storage = EvqIn;
|
||||
break;
|
||||
case EvqBuffer:
|
||||
{
|
||||
// SSBO parameter. These do not go through the declareBlock path since they are fn parameters.
|
||||
correctUniform(type.getQualifier());
|
||||
TQualifier bufferQualifier = globalBufferDefaults;
|
||||
mergeObjectLayoutQualifiers(bufferQualifier, type.getQualifier(), true);
|
||||
bufferQualifier.storage = type.getQualifier().storage;
|
||||
bufferQualifier.readonly = type.getQualifier().readonly;
|
||||
bufferQualifier.coherent = type.getQualifier().coherent;
|
||||
type.getQualifier() = bufferQualifier;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -5874,6 +6098,19 @@ void HlslParseContext::declareStruct(const TSourceLoc& loc, TString& structName,
|
||||
ioTypeMap[type.getStruct()] = newLists;
|
||||
}
|
||||
|
||||
// Lookup a user-type by name.
|
||||
// If found, fill in the type and return the defining symbol.
|
||||
// If not found, return nullptr.
|
||||
TSymbol* HlslParseContext::lookupUserType(const TString& typeName, TType& type)
|
||||
{
|
||||
TSymbol* symbol = symbolTable.find(typeName);
|
||||
if (symbol && symbol->getAsVariable() && symbol->getAsVariable()->isUserType()) {
|
||||
type.shallowCopy(symbol->getType());
|
||||
return symbol;
|
||||
} else
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//
|
||||
// Do everything necessary to handle a variable (non-block) declaration.
|
||||
// Either redeclaring a variable, or making a new one, updating the symbol
|
||||
@ -5914,6 +6151,7 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i
|
||||
if (it != ioTypeMap.end())
|
||||
type.setStruct(it->second.uniform);
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -6551,8 +6789,6 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS
|
||||
error(memberLoc, "member cannot contradict block (or what block inherited from global)", "xfb_buffer", "");
|
||||
}
|
||||
|
||||
if (memberQualifier.hasPacking())
|
||||
error(memberLoc, "member of block cannot have a packing layout qualifier", typeList[member].type->getFieldName().c_str(), "");
|
||||
if (memberQualifier.hasLocation()) {
|
||||
switch (type.getQualifier().storage) {
|
||||
case EvqVaryingIn:
|
||||
@ -6564,10 +6800,6 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS
|
||||
}
|
||||
} else
|
||||
memberWithoutLocation = true;
|
||||
if (memberQualifier.hasAlign()) {
|
||||
if (defaultQualification.layoutPacking != ElpStd140 && defaultQualification.layoutPacking != ElpStd430)
|
||||
error(memberLoc, "can only be used with std140 or std430 layout packing", "align", "");
|
||||
}
|
||||
|
||||
TQualifier newMemberQualification = defaultQualification;
|
||||
mergeQualifiers(newMemberQualification, memberQualifier);
|
||||
|
15
3rdparty/glslang/hlsl/hlslParseHelper.h
vendored
15
3rdparty/glslang/hlsl/hlslParseHelper.h
vendored
@ -133,6 +133,7 @@ public:
|
||||
const TFunction* findFunction(const TSourceLoc& loc, TFunction& call, bool& builtIn, TIntermTyped*& args);
|
||||
void declareTypedef(const TSourceLoc&, TString& identifier, const TType&);
|
||||
void declareStruct(const TSourceLoc&, TString& structName, TType&);
|
||||
TSymbol* lookupUserType(const TString&, TType&);
|
||||
TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, TType&, TIntermTyped* initializer = 0);
|
||||
void lengthenList(const TSourceLoc&, TIntermSequence& list, int size);
|
||||
TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&);
|
||||
@ -180,6 +181,9 @@ public:
|
||||
void initFlattening() { flattenLevel.push_back(0); flattenOffset.push_back(0); }
|
||||
void finalizeFlattening() { flattenLevel.pop_back(); flattenOffset.pop_back(); }
|
||||
|
||||
// Share struct buffer deep types
|
||||
void shareStructBufferType(TType&);
|
||||
|
||||
protected:
|
||||
struct TFlattenData {
|
||||
TFlattenData() : nextBinding(TQualifier::layoutBindingEnd) { }
|
||||
@ -248,6 +252,14 @@ protected:
|
||||
bool isSamplerMethod(const TString& name) const;
|
||||
bool isStructBufferMethod(const TString& name) const;
|
||||
|
||||
TType* getStructBufferContentType(const TType& type) const;
|
||||
bool isStructBufferType(const TType& type) const { return getStructBufferContentType(type) != nullptr; }
|
||||
TIntermTyped* indexStructBufferContent(const TSourceLoc& loc, TIntermTyped* buffer) const;
|
||||
|
||||
// Return true if this type is a reference. This is not currently a type method in case that's
|
||||
// a language specific answer.
|
||||
bool isReference(const TType& type) const { return isStructBufferType(type); }
|
||||
|
||||
// Pass through to base class after remembering builtin mappings.
|
||||
using TParseContextBase::trackLinkage;
|
||||
void trackLinkage(TSymbol& variable) override;
|
||||
@ -330,6 +342,9 @@ protected:
|
||||
// Structure splitting data:
|
||||
TMap<int, TVariable*> splitIoVars; // variables with the builtin interstage IO removed, indexed by unique ID.
|
||||
|
||||
// Structuredbuffer shared types. Typically there are only a few.
|
||||
TVector<TType*> structBufferTypes;
|
||||
|
||||
// The builtin interstage IO map considers e.g, EvqPosition on input and output separately, so that we
|
||||
// can build the linkage correctly if position appears on both sides. Otherwise, multiple positions
|
||||
// are considered identical.
|
||||
|
3
3rdparty/glslang/hlsl/hlslScanContext.cpp
vendored
3
3rdparty/glslang/hlsl/hlslScanContext.cpp
vendored
@ -327,6 +327,7 @@ void HlslScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["RWStructuredBuffer"] = EHTokRWStructuredBuffer;
|
||||
(*KeywordMap)["StructuredBuffer"] = EHTokStructuredBuffer;
|
||||
|
||||
(*KeywordMap)["class"] = EHTokClass;
|
||||
(*KeywordMap)["struct"] = EHTokStruct;
|
||||
(*KeywordMap)["cbuffer"] = EHTokCBuffer;
|
||||
(*KeywordMap)["tbuffer"] = EHTokTBuffer;
|
||||
@ -354,7 +355,6 @@ void HlslScanContext::fillInKeywordMap()
|
||||
ReservedSet->insert("auto");
|
||||
ReservedSet->insert("catch");
|
||||
ReservedSet->insert("char");
|
||||
ReservedSet->insert("class");
|
||||
ReservedSet->insert("const_cast");
|
||||
ReservedSet->insert("enum");
|
||||
ReservedSet->insert("explicit");
|
||||
@ -740,6 +740,7 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier()
|
||||
return keyword;
|
||||
|
||||
// variable, user type, ...
|
||||
case EHTokClass:
|
||||
case EHTokStruct:
|
||||
case EHTokTypedef:
|
||||
case EHTokCBuffer:
|
||||
|
1
3rdparty/glslang/hlsl/hlslTokens.h
vendored
1
3rdparty/glslang/hlsl/hlslTokens.h
vendored
@ -268,6 +268,7 @@ enum EHlslTokenClass {
|
||||
// variable, user type, ...
|
||||
EHTokIdentifier,
|
||||
EHTokTypeName,
|
||||
EHTokClass,
|
||||
EHTokStruct,
|
||||
EHTokCBuffer,
|
||||
EHTokTBuffer,
|
||||
|
Loading…
x
Reference in New Issue
Block a user