Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Johannes van Waveren 2016-10-21 17:21:46 +09:00
commit 2f4c832d47
484 changed files with 101726 additions and 19867 deletions

3
.gitignore vendored
View File

@ -3,8 +3,11 @@
*.so
*.exe
tags
TAGS
build/
Test/localResults/
Test/multiThread.out
Test/singleThread.out
Test/vert.spv
Test/frag.spv
External/googletest

View File

@ -1,12 +1,18 @@
cmake_minimum_required(VERSION 2.8.12)
cmake_minimum_required(VERSION 2.8.11)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" ON)
enable_testing()
set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix")
project(glslang)
if(ENABLE_AMD_EXTENSIONS)
add_definitions(-DAMD_EXTENSIONS)
endif(ENABLE_AMD_EXTENSIONS)
if(WIN32)
set(CMAKE_DEBUG_POSTFIX "d")
include(ChooseMSVCCRT.cmake)
@ -19,8 +25,14 @@ else(WIN32)
endif(WIN32)
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs
-Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable)
add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over.
add_definitions(-std=c++11)
elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
add_definitions(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs
-Wunused-parameter -Wunused-value -Wunused-variable)
add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over.
add_definitions(-std=c++11)
endif()

View File

@ -34,7 +34,7 @@
#define SH_EXPORTING
#include <assert.h>
#include <cassert>
#include "InitializeDll.h"
#include "../glslang/Include/InitializeGlobals.h"

View File

@ -98,7 +98,7 @@ options. See REMAPPING AND OPTIMIZATION OPTIONS.
On error, the function supplied to registerErrorHandler() will be invoked.
This can be a standard C/C++ function, a lambda function, or a functor.
The default handler simply calls exit(5); The error handler is a static
members, so need only be set up once, not once per spirvbin_t instance.
member, so need only be set up once, not once per spirvbin_t instance.
Log messages are supplied to registerLogHandler(). By default, log
messages are eaten silently. The log handler is also a static member.

View File

@ -13,12 +13,15 @@ glslang
An OpenGL and OpenGL ES shader front end and validator.
There are two components:
There are several components:
1. A front-end library for programmatic parsing of GLSL/ESSL into an AST.
1. A GLSL/ESSL front-end for reference validation and translation of GLSL/ESSL into an AST.
2. A standalone wrapper, `glslangValidator`, that can be used as a shader
validation tool.
2. An HLSL front-end for translation of a broad generic HLL into the AST.
3. A SPIR-V back end for translating the AST to SPIR-V.
4. A standalone wrapper, `glslangValidator`, that can be used as a command-line tool for the above.
How to add a feature protected by a version/extension/stage/profile: See the
comment in `glslang/MachineIndependent/Versions.cpp`.
@ -54,14 +57,24 @@ Building
### Build steps
#### 1) Check-Out External Projects
#### 1) Check-Out this project
```bash
cd <the directory glslang was cloned to, External will be a subdirectory>
cd <parent of where you want glslang to be>
# If using SSH
git clone git@github.com:KhronosGroup/glslang.git
# Or if using HTTPS
git clone https://github.com/KhronosGroup/glslang.git
```
#### 2) Check-Out External Projects
```bash
cd <the directory glslang was cloned to, "External" will be a subdirectory>
git clone https://github.com/google/googletest.git External/googletest
```
#### 2) Configure
#### 3) Configure
Assume the source directory is `$SOURCE_DIR` and
the build directory is `$BUILD_DIR`:
@ -84,7 +97,7 @@ cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX=`pwd`/install
The CMake GUI also works for Windows (version 3.4.1 tested).
#### 3) Build and Install
#### 4) Build and Install
```bash
# for Linux:

View File

@ -3,27 +3,46 @@ set(SOURCES
InReadableOrder.cpp
Logger.cpp
SpvBuilder.cpp
SPVRemapper.cpp
doc.cpp
disassemble.cpp)
set(SPVREMAP_SOURCES
SPVRemapper.cpp
doc.cpp)
set(HEADERS
bitutils.h
spirv.hpp
GLSL.std.450.h
GLSL.ext.KHR.h
GlslangToSpv.h
hex_float.h
Logger.h
SpvBuilder.h
SPVRemapper.h
spvIR.h
doc.h
disassemble.h)
set(SPVREMAP_HEADERS
SPVRemapper.h
doc.h)
if(ENABLE_AMD_EXTENSIONS)
list(APPEND
HEADERS
GLSL.ext.AMD.h)
endif(ENABLE_AMD_EXTENSIONS)
add_library(SPIRV STATIC ${SOURCES} ${HEADERS})
set_property(TARGET SPIRV PROPERTY FOLDER glslang)
add_library(SPVRemapper STATIC ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
set_property(TARGET SPVRemapper PROPERTY FOLDER glslang)
if(WIN32)
source_group("Source" FILES ${SOURCES} ${HEADERS})
source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
endif(WIN32)
install(TARGETS SPIRV
install(TARGETS SPIRV SPVRemapper
ARCHIVE DESTINATION lib)

116
SPIRV/GLSL.ext.AMD.h Normal file
View File

@ -0,0 +1,116 @@
/*
** Copyright (c) 2014-2016 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"),
** to deal in the Materials without restriction, including without limitation
** the rights to use, copy, modify, merge, publish, distribute, sublicense,
** and/or sell copies of the Materials, and to permit persons to whom the
** Materials are furnished to do so, subject to the following conditions:
**
** The above copyright notice and this permission notice shall be included in
** all copies or substantial portions of the Materials.
**
** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
**
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
** IN THE MATERIALS.
*/
#ifndef GLSLextAMD_H
#define GLSLextAMD_H
enum BuiltIn;
enum Decoration;
enum Op;
static const int GLSLextAMDVersion = 100;
static const int GLSLextAMDRevision = 2;
// SPV_AMD_shader_ballot
static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot";
static const Op OpGroupIAddNonUniformAMD = static_cast<Op>(5000);
static const Op OpGroupFAddNonUniformAMD = static_cast<Op>(5001);
static const Op OpGroupFMinNonUniformAMD = static_cast<Op>(5002);
static const Op OpGroupUMinNonUniformAMD = static_cast<Op>(5003);
static const Op OpGroupSMinNonUniformAMD = static_cast<Op>(5004);
static const Op OpGroupFMaxNonUniformAMD = static_cast<Op>(5005);
static const Op OpGroupUMaxNonUniformAMD = static_cast<Op>(5006);
static const Op OpGroupSMaxNonUniformAMD = static_cast<Op>(5007);
enum ShaderBallotAMD {
ShaderBallotBadAMD = 0, // Don't use
SwizzleInvocationsAMD = 1,
SwizzleInvocationsMaskedAMD = 2,
WriteInvocationAMD = 3,
MbcntAMD = 4,
ShaderBallotCountAMD
};
// SPV_AMD_shader_trinary_minmax
static const char* const E_SPV_AMD_shader_trinary_minmax = "SPV_AMD_shader_trinary_minmax";
enum ShaderTrinaryMinMaxAMD {
ShaderTrinaryMinMaxBadAMD = 0, // Don't use
FMin3AMD = 1,
UMin3AMD = 2,
SMin3AMD = 3,
FMax3AMD = 4,
UMax3AMD = 5,
SMax3AMD = 6,
FMid3AMD = 7,
UMid3AMD = 8,
SMid3AMD = 9,
ShaderTrinaryMinMaxCountAMD
};
// SPV_AMD_shader_explicit_vertex_parameter
static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter";
static const BuiltIn BuiltInBaryCoordNoPerspAMD = static_cast<BuiltIn>(4992);
static const BuiltIn BuiltInBaryCoordNoPerspCentroidAMD = static_cast<BuiltIn>(4993);
static const BuiltIn BuiltInBaryCoordNoPerspSampleAMD = static_cast<BuiltIn>(4994);
static const BuiltIn BuiltInBaryCoordSmoothAMD = static_cast<BuiltIn>(4995);
static const BuiltIn BuiltInBaryCoordSmoothCentroidAMD = static_cast<BuiltIn>(4996);
static const BuiltIn BuiltInBaryCoordSmoothSampleAMD = static_cast<BuiltIn>(4997);
static const BuiltIn BuiltInBaryCoordPullModelAMD = static_cast<BuiltIn>(4998);
static const Decoration DecorationExplicitInterpAMD = static_cast<Decoration>(4999);
enum ShaderExplicitVertexParameterAMD {
ShaderExplicitVertexParameterBadAMD = 0, // Don't use
InterpolateAtVertexAMD = 1,
ShaderExplicitVertexParameterCountAMD
};
// SPV_AMD_gcn_shader
static const char* const E_SPV_AMD_gcn_shader = "SPV_AMD_gcn_shader";
enum GcnShaderAMD {
GcnShaderBadAMD = 0, // Don't use
CubeFaceIndexAMD = 1,
CubeFaceCoordAMD = 2,
TimeAMD = 3,
GcnShaderCountAMD
};
// SPV_AMD_gpu_shader_half_float
static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_half_float";
#endif // #ifndef GLSLextAMD_H

36
SPIRV/GLSL.ext.KHR.h Normal file
View File

@ -0,0 +1,36 @@
/*
** Copyright (c) 2014-2016 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"),
** to deal in the Materials without restriction, including without limitation
** the rights to use, copy, modify, merge, publish, distribute, sublicense,
** and/or sell copies of the Materials, and to permit persons to whom the
** Materials are furnished to do so, subject to the following conditions:
**
** The above copyright notice and this permission notice shall be included in
** all copies or substantial portions of the Materials.
**
** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
**
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
** IN THE MATERIALS.
*/
#ifndef GLSLextKHR_H
#define GLSLextKHR_H
// SPV_KHR_shader_ballot
static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot";
// SPV_KHR_shader_draw_parameters
static const char* const E_SPV_KHR_shader_draw_parameters = "SPV_KHR_shader_draw_parameters";
#endif // #ifndef GLSLextKHR_H

File diff suppressed because it is too large Load Diff

View File

@ -127,6 +127,33 @@ namespace spv {
}
}
// Return the size of a type in 32-bit words. This currently only
// handles ints and floats, and is only invoked by queries which must be
// integer types. If ever needed, it can be generalized.
unsigned spirvbin_t::typeSizeInWords(spv::Id id) const
{
const unsigned typeStart = idPos(id);
const spv::Op opCode = asOpCode(typeStart);
switch (opCode) {
case spv::OpTypeInt: // fall through...
case spv::OpTypeFloat: return (spv[typeStart+2]+31)/32;
default:
return 0;
}
}
// Looks up the type of a given const or variable ID, and
// returns its size in 32-bit words.
unsigned spirvbin_t::idTypeSizeInWords(spv::Id id) const
{
const auto tid_it = idTypeSizeMap.find(id);
if (tid_it == idTypeSizeMap.end())
error("type size for ID not found");
return tid_it->second;
}
// Is this an opcode we should remove when using --strip?
bool spirvbin_t::isStripOp(spv::Op opCode) const
{
@ -140,6 +167,7 @@ namespace spv {
}
}
// Return true if this opcode is flow control
bool spirvbin_t::isFlowCtrl(spv::Op opCode) const
{
switch (opCode) {
@ -155,6 +183,7 @@ namespace spv {
}
}
// Return true if this opcode defines a type
bool spirvbin_t::isTypeOp(spv::Op opCode) const
{
switch (opCode) {
@ -182,6 +211,7 @@ namespace spv {
}
}
// Return true if this opcode defines a constant
bool spirvbin_t::isConstOp(spv::Op opCode) const
{
switch (opCode) {
@ -324,7 +354,7 @@ namespace spv {
fnPosDCE.clear();
fnCalls.clear();
typeConstPos.clear();
typeConstPosR.clear();
idPosR.clear();
entryPoint = spv::NoResult;
largestNewId = 0;
@ -340,6 +370,25 @@ namespace spv {
if ((options & STRIP) && isStripOp(opCode))
stripInst(start);
unsigned word = start+1;
spv::Id typeId = spv::NoResult;
if (spv::InstructionDesc[opCode].hasType())
typeId = asId(word++);
// If there's a result ID, remember the size of its type
if (spv::InstructionDesc[opCode].hasResult()) {
const spv::Id resultId = asId(word++);
idPosR[resultId] = start;
if (typeId != spv::NoResult) {
const unsigned idTypeSize = typeSizeInWords(typeId);
if (idTypeSize != 0)
idTypeSizeMap[resultId] = idTypeSize;
}
}
if (opCode == spv::Op::OpName) {
const spv::Id target = asId(start+1);
const std::string name = literalString(start+2);
@ -363,11 +412,9 @@ namespace spv {
} else if (isConstOp(opCode)) {
assert(asId(start + 2) != spv::NoResult);
typeConstPos.insert(start);
typeConstPosR[asId(start + 2)] = start;
} else if (isTypeOp(opCode)) {
assert(asId(start + 1) != spv::NoResult);
typeConstPos.insert(start);
typeConstPosR[asId(start + 1)] = start;
}
return false;
@ -436,10 +483,19 @@ namespace spv {
return nextInst;
}
// Circular buffer so we can look back at previous unmapped values during the mapping pass.
static const unsigned idBufferSize = 4;
spv::Id idBuffer[idBufferSize];
unsigned idBufferPos = 0;
// Store IDs from instruction in our map
for (int op = 0; numOperands > 0; ++op, --numOperands) {
switch (spv::InstructionDesc[opCode].operands.getClass(op)) {
case spv::OperandId:
case spv::OperandScope:
case spv::OperandMemorySemantics:
idBuffer[idBufferPos] = asId(word);
idBufferPos = (idBufferPos + 1) % idBufferSize;
idFn(asId(word++));
break;
@ -457,13 +513,25 @@ namespace spv {
// word += numOperands;
return nextInst;
case spv::OperandVariableLiteralId:
while (numOperands > 0) {
++word; // immediate
idFn(asId(word++)); // ID
numOperands -= 2;
case spv::OperandVariableLiteralId: {
if (opCode == OpSwitch) {
// word-2 is the position of the selector ID. OpSwitch Literals match its type.
// In case the IDs are currently being remapped, we get the word[-2] ID from
// the circular idBuffer.
const unsigned literalSizePos = (idBufferPos+idBufferSize-2) % idBufferSize;
const unsigned literalSize = idTypeSizeInWords(idBuffer[literalSizePos]);
const unsigned numLiteralIdPairs = (nextInst-word) / (1+literalSize);
for (unsigned arg=0; arg<numLiteralIdPairs; ++arg) {
word += literalSize; // literal
idFn(asId(word++)); // label
}
} else {
assert(0); // currentely, only OpSwitch uses OperandVariableLiteralId
}
return nextInst;
}
case spv::OperandLiteralString: {
const int stringWordCount = literalStringWords(literalString(word));
@ -500,9 +568,7 @@ namespace spv {
case spv::OperandSelect:
case spv::OperandLoop:
case spv::OperandFunction:
case spv::OperandMemorySemantics:
case spv::OperandMemoryAccess:
case spv::OperandScope:
case spv::OperandGroupOperation:
case spv::OperandKernelEnqueueFlags:
case spv::OperandKernelProfilingInfo:
@ -966,23 +1032,27 @@ namespace spv {
std::unordered_map<spv::Id, int> typeUseCount;
// Count total type usage
process(inst_fn_nop,
[&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; }
);
// This is not the most efficient algorithm, but this is an offline tool, and
// it's easy to write this way. Can be improved opportunistically if needed.
bool changed = true;
while (changed) {
changed = false;
strip();
typeUseCount.clear();
// Remove types from deleted code
for (const auto& fn : fnPosDCE)
// Count total type usage
process(inst_fn_nop,
[&](spv::Id& id) { if (isType[id]) --typeUseCount[id]; },
fn.second.first, fn.second.second);
[&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; }
);
// Remove single reference types
for (const auto typeStart : typeConstPos) {
const spv::Id typeId = asTypeConstId(typeStart);
if (typeUseCount[typeId] == 1) {
--typeUseCount[typeId];
stripInst(typeStart);
// Remove single reference types
for (const auto typeStart : typeConstPos) {
const spv::Id typeId = asTypeConstId(typeStart);
if (typeUseCount[typeId] == 1) {
changed = true;
--typeUseCount[typeId];
stripInst(typeStart);
}
}
}
}
@ -1060,12 +1130,12 @@ namespace spv {
}
#endif // NOTDEF
// Return start position in SPV of given type. error if not found.
unsigned spirvbin_t::typePos(spv::Id id) const
// Return start position in SPV of given Id. error if not found.
unsigned spirvbin_t::idPos(spv::Id id) const
{
const auto tid_it = typeConstPosR.find(id);
if (tid_it == typeConstPosR.end())
error("type ID not found");
const auto tid_it = idPosR.find(id);
if (tid_it == idPosR.end())
error("ID not found");
return tid_it->second;
}
@ -1083,11 +1153,11 @@ namespace spv {
case spv::OpTypeInt: return 3 + (spv[typeStart+3]);
case spv::OpTypeFloat: return 5;
case spv::OpTypeVector:
return 6 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1);
return 6 + hashType(idPos(spv[typeStart+2])) * (spv[typeStart+3] - 1);
case spv::OpTypeMatrix:
return 30 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1);
return 30 + hashType(idPos(spv[typeStart+2])) * (spv[typeStart+3] - 1);
case spv::OpTypeImage:
return 120 + hashType(typePos(spv[typeStart+2])) +
return 120 + hashType(idPos(spv[typeStart+2])) +
spv[typeStart+3] + // dimensionality
spv[typeStart+4] * 8 * 16 + // depth
spv[typeStart+5] * 4 * 16 + // arrayed
@ -1098,24 +1168,24 @@ namespace spv {
case spv::OpTypeSampledImage:
return 502;
case spv::OpTypeArray:
return 501 + hashType(typePos(spv[typeStart+2])) * spv[typeStart+3];
return 501 + hashType(idPos(spv[typeStart+2])) * spv[typeStart+3];
case spv::OpTypeRuntimeArray:
return 5000 + hashType(typePos(spv[typeStart+2]));
return 5000 + hashType(idPos(spv[typeStart+2]));
case spv::OpTypeStruct:
{
std::uint32_t hash = 10000;
for (unsigned w=2; w < wordCount; ++w)
hash += w * hashType(typePos(spv[typeStart+w]));
hash += w * hashType(idPos(spv[typeStart+w]));
return hash;
}
case spv::OpTypeOpaque: return 6000 + spv[typeStart+2];
case spv::OpTypePointer: return 100000 + hashType(typePos(spv[typeStart+3]));
case spv::OpTypePointer: return 100000 + hashType(idPos(spv[typeStart+3]));
case spv::OpTypeFunction:
{
std::uint32_t hash = 200000;
for (unsigned w=2; w < wordCount; ++w)
hash += w * hashType(typePos(spv[typeStart+w]));
hash += w * hashType(idPos(spv[typeStart+w]));
return hash;
}
@ -1132,14 +1202,14 @@ namespace spv {
case spv::OpConstantFalse: return 300008;
case spv::OpConstantComposite:
{
std::uint32_t hash = 300011 + hashType(typePos(spv[typeStart+1]));
std::uint32_t hash = 300011 + hashType(idPos(spv[typeStart+1]));
for (unsigned w=3; w < wordCount; ++w)
hash += w * hashType(typePos(spv[typeStart+w]));
hash += w * hashType(idPos(spv[typeStart+w]));
return hash;
}
case spv::OpConstant:
{
std::uint32_t hash = 400011 + hashType(typePos(spv[typeStart+1]));
std::uint32_t hash = 400011 + hashType(idPos(spv[typeStart+1]));
for (unsigned w=3; w < wordCount; ++w)
hash += w * spv[typeStart+w];
return hash;
@ -1212,19 +1282,19 @@ namespace spv {
msg(3, 4, std::string("ID bound: ") + std::to_string(bound()));
strip(); // strip out data we decided to eliminate
if (options & OPT_LOADSTORE) optLoadStore();
if (options & OPT_FWD_LS) forwardLoadStores();
if (options & DCE_FUNCS) dceFuncs();
if (options & DCE_VARS) dceVars();
if (options & DCE_TYPES) dceTypes();
strip(); // strip out data we decided to eliminate
if (options & MAP_TYPES) mapTypeConst();
if (options & MAP_NAMES) mapNames();
if (options & MAP_FUNCS) mapFnBodies();
mapRemainder(); // map any unmapped IDs
applyMap(); // Now remap each shader to the new IDs we've come up with
strip(); // strip out data we decided to eliminate
}
// remap from a memory image

View File

@ -38,7 +38,7 @@
#include <string>
#include <vector>
#include <stdlib.h>
#include <cstdlib>
namespace spv {
@ -74,7 +74,8 @@ public:
} // namespace SPV
#if !defined (use_cpp11)
#include <stdio.h>
#include <cstdio>
#include <cstdint>
namespace spv {
class spirvbin_t : public spirvbin_base_t
@ -82,7 +83,7 @@ class spirvbin_t : public spirvbin_base_t
public:
spirvbin_t(int /*verbose = 0*/) { }
void remap(std::vector<unsigned int>& /*spv*/, unsigned int /*opts = 0*/)
void remap(std::vector<std::uint32_t>& /*spv*/, unsigned int /*opts = 0*/)
{
printf("Tool not compiled for C++11, which is required for SPIR-V remapping.\n");
exit(5);
@ -159,16 +160,21 @@ private:
typedef std::set<int> posmap_t;
typedef std::unordered_map<spv::Id, int> posmap_rev_t;
// Maps and ID to the size of its base type, if known.
typedef std::unordered_map<spv::Id, unsigned> typesize_map_t;
// handle error
void error(const std::string& txt) const { errorHandler(txt); }
bool isConstOp(spv::Op opCode) const;
bool isTypeOp(spv::Op opCode) const;
bool isStripOp(spv::Op opCode) const;
bool isFlowCtrl(spv::Op opCode) const;
range_t literalRange(spv::Op opCode) const;
range_t typeRange(spv::Op opCode) const;
range_t constRange(spv::Op opCode) const;
bool isConstOp(spv::Op opCode) const;
bool isTypeOp(spv::Op opCode) const;
bool isStripOp(spv::Op opCode) const;
bool isFlowCtrl(spv::Op opCode) const;
range_t literalRange(spv::Op opCode) const;
range_t typeRange(spv::Op opCode) const;
range_t constRange(spv::Op opCode) const;
unsigned typeSizeInWords(spv::Id id) const;
unsigned idTypeSizeInWords(spv::Id id) const;
spv::Id& asId(unsigned word) { return spv[word]; }
const spv::Id& asId(unsigned word) const { return spv[word]; }
@ -177,10 +183,10 @@ private:
spv::Decoration asDecoration(unsigned word) const { return spv::Decoration(spv[word]); }
unsigned asWordCount(unsigned word) const { return opWordCount(spv[word]); }
spv::Id asTypeConstId(unsigned word) const { return asId(word + (isTypeOp(asOpCode(word)) ? 1 : 2)); }
unsigned typePos(spv::Id id) const;
unsigned idPos(spv::Id id) const;
static unsigned opWordCount(spirword_t data) { return data >> spv::WordCountShift; }
static spv::Op opOpCode(spirword_t data) { return spv::Op(data & spv::OpCodeMask); }
static unsigned opWordCount(spirword_t data) { return data >> spv::WordCountShift; }
static spv::Op opOpCode(spirword_t data) { return spv::Op(data & spv::OpCodeMask); }
// Header access & set methods
spirword_t magic() const { return spv[0]; } // return magic number
@ -263,8 +269,9 @@ private:
// Which functions are called, anywhere in the module, with a call count
std::unordered_map<spv::Id, int> fnCalls;
posmap_t typeConstPos; // word positions that define types & consts (ordered)
posmap_rev_t typeConstPosR; // reverse map from IDs to positions
posmap_t typeConstPos; // word positions that define types & consts (ordered)
posmap_rev_t idPosR; // reverse map from IDs to positions
typesize_map_t idTypeSizeMap; // maps each ID to its type size, if known.
std::vector<spv::Id> idMapL; // ID {M}ap from {L}ocal to {G}lobal IDs

View File

@ -38,14 +38,18 @@
// SpvBuilder.h.
//
#include <assert.h>
#include <stdlib.h>
#include <cassert>
#include <cstdlib>
#include <unordered_set>
#include <algorithm>
#include "SpvBuilder.h"
#ifdef AMD_EXTENSIONS
#include "hex_float.h"
#endif
#ifndef _WIN32
#include <cstdio>
#endif
@ -785,6 +789,36 @@ Id Builder::makeDoubleConstant(double d, bool specConstant)
return c->getResultId();
}
#ifdef AMD_EXTENSIONS
Id Builder::makeFloat16Constant(float f16, bool specConstant)
{
Op opcode = specConstant ? OpSpecConstant : OpConstant;
Id typeId = makeFloatType(16);
spvutils::HexFloat<spvutils::FloatProxy<float>> fVal(f16);
spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>> f16Val(0);
fVal.castTo(f16Val, spvutils::kRoundToZero);
unsigned value = f16Val.value().getAsFloat().get_value();
// See if we already made it. Applies only to regular constants, because specialization constants
// must remain distinct for the purpose of applying a SpecId decoration.
if (!specConstant) {
Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, value);
if (existing)
return existing;
}
Instruction* c = new Instruction(getUniqueId(), typeId, opcode);
c->addImmediateOperand(value);
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(c));
groupedConstants[OpTypeFloat].push_back(c);
module.mapInstruction(c);
return c->getResultId();
}
#endif
Id Builder::findCompositeConstant(Op typeClass, std::vector<Id>& comps) const
{
Instruction* constant = 0;
@ -907,7 +941,7 @@ void Builder::addLine(Id target, Id fileName, int lineNum, int column)
void Builder::addDecoration(Id id, Decoration decoration, int num)
{
if (decoration == (spv::Decoration)spv::BadValue)
if (decoration == spv::DecorationMax)
return;
Instruction* dec = new Instruction(OpDecorate);
dec->addIdOperand(id);
@ -931,7 +965,7 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat
}
// Comments in header
Function* Builder::makeEntrypoint(const char* entryPoint)
Function* Builder::makeEntryPoint(const char* entryPoint)
{
assert(! mainFunction);
@ -1328,15 +1362,20 @@ Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source, std:
// Comments in header
Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, std::vector<unsigned>& channels)
{
assert(getNumComponents(source) == (int)channels.size());
if (channels.size() == 1 && getNumComponents(source) == 1)
return createCompositeInsert(source, target, typeId, channels.front());
Instruction* swizzle = new Instruction(getUniqueId(), typeId, OpVectorShuffle);
assert(isVector(source));
assert(isVector(target));
swizzle->addIdOperand(target);
swizzle->addIdOperand(source);
if (accessChain.component != NoResult)
// For dynamic component selection, source does not involve in l-value swizzle
swizzle->addIdOperand(target);
else {
assert(getNumComponents(source) == (int)channels.size());
assert(isVector(source));
swizzle->addIdOperand(source);
}
// Set up an identity shuffle from the base value to the result value
unsigned int components[4];
@ -1345,8 +1384,12 @@ Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, std::vector<uns
components[i] = i;
// Punch in the l-value swizzle
for (int i = 0; i < (int)channels.size(); ++i)
components[channels[i]] = numTargetComponents + i;
for (int i = 0; i < (int)channels.size(); ++i) {
if (accessChain.component != NoResult)
components[i] = channels[i]; // Only shuffle the base value
else
components[channels[i]] = numTargetComponents + i;
}
// finish the instruction with these components selectors
for (int i = 0; i < numTargetComponents; ++i)
@ -2118,9 +2161,6 @@ void Builder::accessChainStore(Id rvalue)
transferAccessChainSwizzle(true);
Id base = collapseAccessChain();
if (accessChain.swizzle.size() && accessChain.component != NoResult)
logger->missingFunctionality("simultaneous l-value swizzle and dynamic component selection");
// If swizzle still exists, it is out-of-order or not full, we must load the target vector,
// extract and insert elements to perform writeMask and/or swizzle.
Id source = NoResult;
@ -2312,7 +2352,11 @@ void Builder::dump(std::vector<unsigned int>& out) const
capInst.dump(out);
}
// TBD: OpExtension ...
for (auto it = extensions.cbegin(); it != extensions.cend(); ++it) {
Instruction extInst(0, 0, OpExtension);
extInst.addStringOperand(*it);
extInst.dump(out);
}
dumpInstructions(out, imports);
Instruction memInst(0, 0, OpMemoryModel);
@ -2331,10 +2375,10 @@ void Builder::dump(std::vector<unsigned int>& out) const
sourceInst.addImmediateOperand(sourceVersion);
sourceInst.dump(out);
}
for (int e = 0; e < (int)extensions.size(); ++e) {
Instruction extInst(0, 0, OpSourceExtension);
extInst.addStringOperand(extensions[e]);
extInst.dump(out);
for (int e = 0; e < (int)sourceExtensions.size(); ++e) {
Instruction sourceExtInst(0, 0, OpSourceExtension);
sourceExtInst.addStringOperand(sourceExtensions[e]);
sourceExtInst.dump(out);
}
dumpInstructions(out, names);
dumpInstructions(out, lines);

View File

@ -70,7 +70,8 @@ public:
source = lang;
sourceVersion = version;
}
void addSourceExtension(const char* ext) { extensions.push_back(ext); }
void addSourceExtension(const char* ext) { sourceExtensions.push_back(ext); }
void addExtension(const char* ext) { extensions.insert(ext); }
Id import(const char*);
void setMemoryModel(spv::AddressingModel addr, spv::MemoryModel mem)
{
@ -190,6 +191,9 @@ public:
Id makeUint64Constant(unsigned long long u, bool specConstant = false) { return makeInt64Constant(makeUintType(64), u, specConstant); }
Id makeFloatConstant(float f, bool specConstant = false);
Id makeDoubleConstant(double d, bool specConstant = false);
#ifdef AMD_EXTENSIONS
Id makeFloat16Constant(float f16, bool specConstant = false);
#endif
// Turn the array of constants into a proper spv constant of the requested type.
Id makeCompositeConstant(Id type, std::vector<Id>& comps, bool specConst = false);
@ -209,7 +213,7 @@ public:
// Make the entry-point function. The returned pointer is only valid
// for the lifetime of this builder.
Function* makeEntrypoint(const char*);
Function* makeEntryPoint(const char*);
// Make a shader-style function, and create its entry block if entry is non-zero.
// Return the function, pass back the entry.
@ -466,7 +470,7 @@ public:
//
// the SPIR-V builder maintains a single active chain that
// the following methods operated on
// the following methods operate on
//
// for external save and restore
@ -551,7 +555,8 @@ public:
SourceLanguage source;
int sourceVersion;
std::vector<const char*> extensions;
std::set<const char*> extensions;
std::vector<const char*> sourceExtensions;
AddressingModel addressModel;
MemoryModel memoryModel;
std::set<spv::Capability> capabilities;

81
SPIRV/bitutils.h Normal file
View File

@ -0,0 +1,81 @@
// Copyright (c) 2015-2016 The Khronos Group Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef LIBSPIRV_UTIL_BITUTILS_H_
#define LIBSPIRV_UTIL_BITUTILS_H_
#include <cstdint>
#include <cstring>
namespace spvutils {
// Performs a bitwise copy of source to the destination type Dest.
template <typename Dest, typename Src>
Dest BitwiseCast(Src source) {
Dest dest;
static_assert(sizeof(source) == sizeof(dest),
"BitwiseCast: Source and destination must have the same size");
std::memcpy(&dest, &source, sizeof(dest));
return dest;
}
// SetBits<T, First, Num> returns an integer of type <T> with bits set
// for position <First> through <First + Num - 1>, counting from the least
// significant bit. In particular when Num == 0, no positions are set to 1.
// A static assert will be triggered if First + Num > sizeof(T) * 8, that is,
// a bit that will not fit in the underlying type is set.
template <typename T, size_t First = 0, size_t Num = 0>
struct SetBits {
static_assert(First < sizeof(T) * 8,
"Tried to set a bit that is shifted too far.");
const static T get = (T(1) << First) | SetBits<T, First + 1, Num - 1>::get;
};
template <typename T, size_t Last>
struct SetBits<T, Last, 0> {
const static T get = T(0);
};
// This is all compile-time so we can put our tests right here.
static_assert(SetBits<uint32_t, 0, 0>::get == uint32_t(0x00000000),
"SetBits failed");
static_assert(SetBits<uint32_t, 0, 1>::get == uint32_t(0x00000001),
"SetBits failed");
static_assert(SetBits<uint32_t, 31, 1>::get == uint32_t(0x80000000),
"SetBits failed");
static_assert(SetBits<uint32_t, 1, 2>::get == uint32_t(0x00000006),
"SetBits failed");
static_assert(SetBits<uint32_t, 30, 2>::get == uint32_t(0xc0000000),
"SetBits failed");
static_assert(SetBits<uint32_t, 0, 31>::get == uint32_t(0x7FFFFFFF),
"SetBits failed");
static_assert(SetBits<uint32_t, 0, 32>::get == uint32_t(0xFFFFFFFF),
"SetBits failed");
static_assert(SetBits<uint32_t, 16, 16>::get == uint32_t(0xFFFF0000),
"SetBits failed");
static_assert(SetBits<uint64_t, 0, 1>::get == uint64_t(0x0000000000000001LL),
"SetBits failed");
static_assert(SetBits<uint64_t, 63, 1>::get == uint64_t(0x8000000000000000LL),
"SetBits failed");
static_assert(SetBits<uint64_t, 62, 2>::get == uint64_t(0xc000000000000000LL),
"SetBits failed");
static_assert(SetBits<uint64_t, 31, 1>::get == uint64_t(0x0000000080000000LL),
"SetBits failed");
static_assert(SetBits<uint64_t, 16, 16>::get == uint64_t(0x00000000FFFF0000LL),
"SetBits failed");
} // namespace spvutils
#endif // LIBSPIRV_UTIL_BITUTILS_H_

View File

@ -36,24 +36,33 @@
// Disassembler for SPIR-V.
//
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <cstdlib>
#include <cstring>
#include <cassert>
#include <iomanip>
#include <stack>
#include <sstream>
#include <cstring>
namespace spv {
// Include C-based headers that don't have a namespace
#include "GLSL.std.450.h"
}
const char* GlslStd450DebugNames[spv::GLSLstd450Count];
#include "disassemble.h"
#include "doc.h"
namespace spv {
extern "C" {
// Include C-based headers that don't have a namespace
#include "GLSL.std.450.h"
#ifdef AMD_EXTENSIONS
#include "GLSL.ext.AMD.h"
#endif
}
}
const char* GlslStd450DebugNames[spv::GLSLstd450Count];
namespace spv {
#ifdef AMD_EXTENSIONS
static const char* GLSLextAMDGetDebugNames(const char*, unsigned);
#endif
static void Kill(std::ostream& out, const char* message)
{
@ -64,6 +73,9 @@ static void Kill(std::ostream& out, const char* message)
// used to identify the extended instruction library imported when printing
enum ExtInstSet {
GLSL450Inst,
#ifdef AMD_EXTENSIONS
GLSLextAMDInst,
#endif
OpenCLExtInst,
};
@ -205,10 +217,12 @@ void SpirvStream::outputIndent()
void SpirvStream::formatId(Id id, std::stringstream& idStream)
{
if (id >= bound)
Kill(out, "Bad <id>");
if (id != 0) {
// On instructions with no IDs, this is called with "0", which does not
// have to be within ID bounds on null shaders.
if (id >= bound)
Kill(out, "Bad <id>");
idStream << id;
if (idDescriptor[id].size() > 0)
idStream << "(" << idDescriptor[id] << ")";
@ -322,7 +336,7 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
idDescriptor[resultId] = (const char*)(&stream[word]);
}
else {
if (idDescriptor[resultId].size() == 0) {
if (resultId != 0 && idDescriptor[resultId].size() == 0) {
switch (opCode) {
case OpTypeInt:
idDescriptor[resultId] = "int";
@ -446,14 +460,26 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
--numOperands;
if (opCode == OpExtInst) {
ExtInstSet extInstSet = GLSL450Inst;
if (0 == memcmp("OpenCL", (const char*)(idDescriptor[stream[word-2]].c_str()), 6)) {
const char* name = idDescriptor[stream[word - 2]].c_str();
if (0 == memcmp("OpenCL", name, 6)) {
extInstSet = OpenCLExtInst;
#ifdef AMD_EXTENSIONS
} else if (strcmp(spv::E_SPV_AMD_shader_ballot, name) == 0 ||
strcmp(spv::E_SPV_AMD_shader_trinary_minmax, name) == 0 ||
strcmp(spv::E_SPV_AMD_shader_explicit_vertex_parameter, name) == 0 ||
strcmp(spv::E_SPV_AMD_gcn_shader, name) == 0) {
extInstSet = GLSLextAMDInst;
#endif
}
unsigned entrypoint = stream[word - 1];
if (extInstSet == GLSL450Inst) {
if (entrypoint < GLSLstd450Count) {
out << "(" << GlslStd450DebugNames[entrypoint] << ")";
}
#ifdef AMD_EXTENSIONS
} else if (extInstSet == GLSLextAMDInst) {
out << "(" << GLSLextAMDGetDebugNames(name, entrypoint) << ")";
#endif
}
}
break;
@ -561,6 +587,50 @@ static void GLSLstd450GetDebugNames(const char** names)
names[GLSLstd450InterpolateAtOffset] = "InterpolateAtOffset";
}
#ifdef AMD_EXTENSIONS
static const char* GLSLextAMDGetDebugNames(const char* name, unsigned entrypoint)
{
if (strcmp(name, spv::E_SPV_AMD_shader_ballot) == 0) {
switch (entrypoint) {
case SwizzleInvocationsAMD: return "SwizzleInvocationsAMD";
case SwizzleInvocationsMaskedAMD: return "SwizzleInvocationsMaskedAMD";
case WriteInvocationAMD: return "WriteInvocationAMD";
case MbcntAMD: return "MbcntAMD";
default: return "Bad";
}
} else if (strcmp(name, spv::E_SPV_AMD_shader_trinary_minmax) == 0) {
switch (entrypoint) {
case FMin3AMD: return "FMin3AMD";
case UMin3AMD: return "UMin3AMD";
case SMin3AMD: return "SMin3AMD";
case FMax3AMD: return "FMax3AMD";
case UMax3AMD: return "UMax3AMD";
case SMax3AMD: return "SMax3AMD";
case FMid3AMD: return "FMid3AMD";
case UMid3AMD: return "UMid3AMD";
case SMid3AMD: return "SMid3AMD";
default: return "Bad";
}
} else if (strcmp(name, spv::E_SPV_AMD_shader_explicit_vertex_parameter) == 0) {
switch (entrypoint) {
case InterpolateAtVertexAMD: return "InterpolateAtVertexAMD";
default: return "Bad";
}
}
else if (strcmp(name, spv::E_SPV_AMD_gcn_shader) == 0) {
switch (entrypoint) {
case CubeFaceIndexAMD: return "CubeFaceIndexAMD";
case CubeFaceCoordAMD: return "CubeFaceCoordAMD";
case TimeAMD: return "TimeAMD";
default:
break;
}
}
return "Bad";
}
#endif
void Disassemble(std::ostream& out, const std::vector<unsigned int>& stream)
{
SpirvStream SpirvStream(out, stream);

View File

@ -33,7 +33,7 @@
//POSSIBILITY OF SUCH DAMAGE.
//
// 1) Programatically fill in instruction/operand information.
// 1) Programmatically fill in instruction/operand information.
// This can be used for disassembly, printing documentation, etc.
//
// 2) Print documentation from this parameterization.
@ -41,10 +41,19 @@
#include "doc.h"
#include <stdio.h>
#include <string.h>
#include <cstdio>
#include <cstring>
#include <algorithm>
namespace spv {
extern "C" {
// Include C-based headers that don't have a namespace
#ifdef AMD_EXTENSIONS
#include "GLSL.ext.AMD.h"
#endif
}
}
namespace spv {
//
@ -243,6 +252,10 @@ const char* DecorationString(int decoration)
case DecorationCeiling:
default: return "Bad";
#ifdef AMD_EXTENSIONS
case 4999: return "ExplicitInterpAMD";
#endif
}
}
@ -298,6 +311,26 @@ const char* BuiltInString(int builtIn)
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 4424: return "BaseVertex";
case 4425: return "BaseInstance";
case 4426: return "DrawIndex";
#ifdef AMD_EXTENSIONS
case 4992: return "BaryCoordNoPerspAMD";
case 4993: return "BaryCoordNoPerspCentroidAMD";
case 4994: return "BaryCoordNoPerspSampleAMD";
case 4995: return "BaryCoordSmoothAMD";
case 4996: return "BaryCoordSmoothCentroidAMD";
case 4997: return "BaryCoordSmoothSampleAMD";
case 4998: return "BaryCoordPullModelAMD";
#endif
}
}
@ -776,6 +809,9 @@ const char* CapabilityString(int info)
case CapabilityCeiling:
default: return "Bad";
case 4423: return "SubgroupBallotKHR";
case 4427: return "DrawParameters";
}
}
@ -1107,12 +1143,26 @@ const char* OpcodeString(int op)
case OpcodeCeiling:
default:
return "Bad";
case 4421: return "OpSubgroupBallotKHR";
case 4422: return "OpSubgroupFirstInvocationKHR";
#ifdef AMD_EXTENSIONS
case 5000: return "OpGroupIAddNonUniformAMD";
case 5001: return "OpGroupFAddNonUniformAMD";
case 5002: return "OpGroupFMinNonUniformAMD";
case 5003: return "OpGroupUMinNonUniformAMD";
case 5004: return "OpGroupSMinNonUniformAMD";
case 5005: return "OpGroupFMaxNonUniformAMD";
case 5006: return "OpGroupUMaxNonUniformAMD";
case 5007: return "OpGroupSMaxNonUniformAMD";
#endif
}
}
// The set of objects that hold all the instruction/operand
// parameterization information.
InstructionParameters InstructionDesc[OpcodeCeiling];
InstructionParameters InstructionDesc[OpCodeMask + 1];
OperandParameters ExecutionModeOperands[ExecutionModeCeiling];
OperandParameters DecorationOperands[DecorationCeiling];
@ -2703,6 +2753,52 @@ void Parameterize()
InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Num Events'");
InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Wait Events'");
InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Ret Event'");
InstructionDesc[OpSubgroupBallotKHR].operands.push(OperandId, "'Predicate'");
InstructionDesc[OpSubgroupFirstInvocationKHR].operands.push(OperandId, "'Value'");
#ifdef AMD_EXTENSIONS
InstructionDesc[OpGroupIAddNonUniformAMD].capabilities.push_back(CapabilityGroups);
InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandId, "'X'");
InstructionDesc[OpGroupFAddNonUniformAMD].capabilities.push_back(CapabilityGroups);
InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandId, "'X'");
InstructionDesc[OpGroupUMinNonUniformAMD].capabilities.push_back(CapabilityGroups);
InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandId, "'X'");
InstructionDesc[OpGroupSMinNonUniformAMD].capabilities.push_back(CapabilityGroups);
InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandId, "X");
InstructionDesc[OpGroupFMinNonUniformAMD].capabilities.push_back(CapabilityGroups);
InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandId, "X");
InstructionDesc[OpGroupUMaxNonUniformAMD].capabilities.push_back(CapabilityGroups);
InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandId, "X");
InstructionDesc[OpGroupSMaxNonUniformAMD].capabilities.push_back(CapabilityGroups);
InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandId, "X");
InstructionDesc[OpGroupFMaxNonUniformAMD].capabilities.push_back(CapabilityGroups);
InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandId, "X");
#endif
}
}; // end spv namespace

View File

@ -149,7 +149,7 @@ enum OperandClass {
OperandMemorySemantics,
OperandMemoryAccess,
OperandScope,
OperandGroupOperation,
OperandGroupOperation,
OperandKernelEnqueueFlags,
OperandKernelProfilingInfo,
OperandCapability,

1078
SPIRV/hex_float.h Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -64,8 +64,7 @@ class Module;
const Id NoResult = 0;
const Id NoType = 0;
const unsigned int BadValue = 0xFFFFFFFF;
const Decoration NoPrecision = (Decoration)BadValue;
const Decoration NoPrecision = DecorationMax;
const MemorySemanticsMask MemorySemanticsAllMemory =
(MemorySemanticsMask)(MemorySemanticsSequentiallyConsistentMask |
MemorySemanticsUniformMemoryMask |

View File

@ -24,6 +24,7 @@ set(LIBRARIES
OSDependent
HLSL
SPIRV
SPVRemapper
glslang-default-resource-limits)
if(WIN32)

View File

@ -241,8 +241,10 @@ std::string GetDefaultTBuiltInResourceString()
void DecodeResourceLimits(TBuiltInResource* resources, char* config)
{
const char* delims = " \t\n\r";
#pragma warning(suppress: 4996)
const char* token = strtok(config, delims);
while (token) {
#pragma warning(suppress: 4996)
const char* valueStr = strtok(0, delims);
if (valueStr == 0 || ! (valueStr[0] == '-' || (valueStr[0] >= '0' && valueStr[0] <= '9'))) {
printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", valueStr ? valueStr : "");
@ -438,6 +440,7 @@ void DecodeResourceLimits(TBuiltInResource* resources, char* config)
else
printf("Warning: unrecognized limit (%s) in configuration file.\n", token);
#pragma warning(suppress: 4996)
token = strtok(0, delims);
}
}

View File

@ -1,6 +1,6 @@
//
//Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
//Copyright (C) 2013 LunarG, Inc.
//Copyright (C) 2013-2016 LunarG, Inc.
//
//All rights reserved.
//
@ -46,9 +46,11 @@
#include "../SPIRV/GLSL.std.450.h"
#include "../SPIRV/doc.h"
#include "../SPIRV/disassemble.h"
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <cstring>
#include <cstdlib>
#include <cctype>
#include <cmath>
#include <array>
#include "../glslang/OSDependent/osinclude.h"
@ -78,6 +80,9 @@ enum TOptions {
EOptionOutputHexadecimal = (1 << 16),
EOptionReadHlsl = (1 << 17),
EOptionCascadingErrors = (1 << 18),
EOptionAutoMapBindings = (1 << 19),
EOptionFlattenUniformArrays = (1 << 20),
EOptionNoStorageFormat = (1 << 21),
};
//
@ -96,7 +101,7 @@ enum TFailCode {
//
// Forward declarations.
//
EShLanguage FindLanguage(const std::string& name);
EShLanguage FindLanguage(const std::string& name, bool parseSuffix=true);
void CompileFile(const char* fileName, ShHandle);
void usage();
void FreeFileData(char** data);
@ -155,6 +160,11 @@ int Options = 0;
const char* ExecutableName = nullptr;
const char* binaryFileName = nullptr;
const char* entryPointName = nullptr;
const char* shaderStageName = nullptr;
std::array<unsigned int, EShLangCount> baseSamplerBinding;
std::array<unsigned int, EShLangCount> baseTextureBinding;
std::array<unsigned int, EShLangCount> baseUboBinding;
//
// Create the default name for saving a binary if -o is not provided.
@ -203,6 +213,35 @@ void Error(const char* message)
exit(EFailUsage);
}
//
// Process an optional binding base of the form:
// --argname [stage] base
// Where stage is one of the forms accepted by FindLanguage, and base is an integer
//
void ProcessBindingBase(int& argc, char**& argv, std::array<unsigned int, EShLangCount>& base)
{
if (argc < 2)
usage();
if (!isdigit(argv[1][0])) {
if (argc < 3) // this form needs one more argument
usage();
// Parse form: --argname stage base
const EShLanguage lang = FindLanguage(argv[1], false);
base[lang] = atoi(argv[2]);
argc-= 2;
argv+= 2;
} else {
// Parse form: --argname base
for (int lang=0; lang<EShLangCount; ++lang)
base[lang] = atoi(argv[1]);
argc--;
argv++;
}
}
//
// Do all command-line argument parsing. This includes building up the work-items
// to be processed later, and saving all the command-line options.
@ -211,6 +250,10 @@ void Error(const char* message)
//
void ProcessArguments(int argc, char* argv[])
{
baseSamplerBinding.fill(0);
baseTextureBinding.fill(0);
baseUboBinding.fill(0);
ExecutableName = argv[0];
NumWorkItems = argc; // will include some empties where the '-' options were, but it doesn't matter, they'll be 0
Work = new glslang::TWorkItem*[NumWorkItems];
@ -222,6 +265,40 @@ void ProcessArguments(int argc, char* argv[])
for (; argc >= 1; argc--, argv++) {
if (argv[0][0] == '-') {
switch (argv[0][1]) {
case '-':
{
std::string lowerword(argv[0]+2);
std::transform(lowerword.begin(), lowerword.end(), lowerword.begin(), ::tolower);
// handle --word style options
if (lowerword == "shift-sampler-bindings" || // synonyms
lowerword == "shift-sampler-binding" ||
lowerword == "ssb") {
ProcessBindingBase(argc, argv, baseSamplerBinding);
} else if (lowerword == "shift-texture-bindings" || // synonyms
lowerword == "shift-texture-binding" ||
lowerword == "stb") {
ProcessBindingBase(argc, argv, baseTextureBinding);
} else if (lowerword == "shift-ubo-bindings" || // synonyms
lowerword == "shift-ubo-binding" ||
lowerword == "sub") {
ProcessBindingBase(argc, argv, baseUboBinding);
} else if (lowerword == "auto-map-bindings" || // synonyms
lowerword == "auto-map-binding" ||
lowerword == "amb") {
Options |= EOptionAutoMapBindings;
} else if (lowerword == "flatten-uniform-arrays" || // synonyms
lowerword == "flatten-uniform-array" ||
lowerword == "fua") {
Options |= EOptionFlattenUniformArrays;
} else if (lowerword == "no-storage-format" || // synonyms
lowerword == "nsf") {
Options |= EOptionNoStorageFormat;
} else {
usage();
}
}
break;
case 'H':
Options |= EOptionHumanReadableSpv;
if ((Options & EOptionSpv) == 0) {
@ -236,6 +313,15 @@ void ProcessArguments(int argc, char* argv[])
Options |= EOptionVulkanRules;
Options |= EOptionLinkProgram;
break;
case 'S':
shaderStageName = argv[1];
if (argc > 0) {
argc--;
argv++;
}
else
Error("no <stage> specified for -S");
break;
case 'G':
Options |= EOptionSpv;
Options |= EOptionLinkProgram;
@ -330,6 +416,10 @@ void ProcessArguments(int argc, char* argv[])
// -o or -x makes no sense if there is no target binary
if (binaryFileName && (Options & EOptionSpv) == 0)
Error("no binary generation requested (e.g., -V)");
if ((Options & EOptionFlattenUniformArrays) != 0 &&
(Options & EOptionReadHlsl) == 0)
Error("uniform array flattening only valid when compiling HLSL source.");
}
//
@ -402,7 +492,26 @@ void StderrIfNonEmpty(const char* str)
struct ShaderCompUnit {
EShLanguage stage;
std::string fileName;
char** text; // memory owned/managed externally
char** text; // memory owned/managed externally
const char* fileNameList[1];
// Need to have a special constructors to adjust the fileNameList, since back end needs a list of ptrs
ShaderCompUnit(EShLanguage istage, std::string &ifileName, char** itext)
{
stage = istage;
fileName = ifileName;
text = itext;
fileNameList[0] = fileName.c_str();
}
ShaderCompUnit(const ShaderCompUnit &rhs)
{
stage = rhs.stage;
fileName = rhs.fileName;
text = rhs.text;
fileNameList[0] = fileName.c_str();
}
};
//
@ -429,9 +538,19 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
for (auto it = compUnits.cbegin(); it != compUnits.cend(); ++it) {
const auto &compUnit = *it;
glslang::TShader* shader = new glslang::TShader(compUnit.stage);
shader->setStrings(compUnit.text, 1);
shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, 1);
if (entryPointName) // HLSL todo: this needs to be tracked per compUnits
shader->setEntryPoint(entryPointName);
shader->setShiftSamplerBinding(baseSamplerBinding[compUnit.stage]);
shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]);
shader->setShiftUboBinding(baseUboBinding[compUnit.stage]);
shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0);
shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0);
if (Options & EOptionAutoMapBindings)
shader->setAutoMapBindings(true);
shaders.push_back(shader);
const int defaultVersion = Options & EOptionDefaultDesktop? 110: 100;
@ -470,6 +589,12 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
if (! (Options & EOptionOutputPreprocessed) && ! program.link(messages))
LinkFailed = true;
// Map IO
if (Options & EOptionSpv) {
if (!program.mapIO())
LinkFailed = true;
}
// Report
if (! (Options & EOptionSuppressInfolog) &&
! (Options & EOptionMemoryLeakMode)) {
@ -548,11 +673,11 @@ void CompileAndLinkShaderFiles()
// they are all getting linked together.)
glslang::TWorkItem* workItem;
while (Worklist.remove(workItem)) {
ShaderCompUnit compUnit = {
ShaderCompUnit compUnit(
FindLanguage(workItem->name),
workItem->name,
ReadFileData(workItem->name.c_str())
};
);
if (! compUnit.text) {
usage();
@ -596,6 +721,8 @@ int C_DECL main(int argc, char* argv[])
printf("SPIR-V Version %s\n", spirvVersion.c_str());
printf("GLSL.std.450 Version %d, Revision %d\n", GLSLstd450Version, GLSLstd450Revision);
printf("Khronos Tool ID %d\n", glslang::GetKhronosToolId());
printf("GL_KHR_vulkan_glsl version %d\n", 100);
printf("ARB_GL_gl_spirv version %d\n", 100);
if (Worklist.empty())
return ESuccess;
}
@ -674,15 +801,25 @@ int C_DECL main(int argc, char* argv[])
// .frag = fragment
// .comp = compute
//
EShLanguage FindLanguage(const std::string& name)
EShLanguage FindLanguage(const std::string& name, bool parseSuffix)
{
size_t ext = name.rfind('.');
if (ext == std::string::npos) {
usage();
return EShLangVertex;
size_t ext = 0;
// Search for a suffix on a filename: e.g, "myfile.frag". If given
// the suffix directly, we skip looking the '.'
if (parseSuffix) {
ext = name.rfind('.');
if (ext == std::string::npos) {
usage();
return EShLangVertex;
}
++ext;
}
std::string suffix = name.substr(ext + 1, std::string::npos);
std::string suffix = name.substr(ext, std::string::npos);
if (shaderStageName)
suffix = shaderStageName;
if (suffix == "vert")
return EShLangVertex;
else if (suffix == "tesc")
@ -776,6 +913,8 @@ void usage()
" -H print human readable form of SPIR-V; turns on -V\n"
" -E print pre-processed GLSL; cannot be used with -l;\n"
" errors will appear on stderr.\n"
" -S <stage> uses explicit stage specified, rather then the file extension.\n"
" valid choices are vert, tesc, tese, geom, frag, or comp\n"
" -c configuration dump;\n"
" creates the default configuration file (redirect to a .conf file)\n"
" -C cascading errors; risks crashes from accumulation of error recoveries\n"
@ -795,6 +934,25 @@ void usage()
" -v print version strings\n"
" -w suppress warnings (except as required by #extension : warn)\n"
" -x save 32-bit hexadecimal numbers as text, requires a binary option (e.g., -V)\n"
"\n"
" --shift-sampler-binding [stage] num set base binding number for samplers\n"
" --ssb [stage] num synonym for --shift-sampler-binding\n"
"\n"
" --shift-texture-binding [stage] num set base binding number for textures\n"
" --stb [stage] num synonym for --shift-texture-binding\n"
"\n"
" --shift-UBO-binding [stage] num set base binding number for UBOs\n"
" --sub [stage] num synonym for --shift-UBO-binding\n"
"\n"
" --auto-map-bindings automatically bind uniform variables without\n"
" explicit bindings.\n"
" --amb synonym for --auto-map-bindings\n"
"\n"
" --flatten-uniform-arrays flatten uniform texture & sampler arrays to scalars\n"
" --fua synonym for --flatten-uniform-arrays\n"
"\n"
" --no-storage-format use Unknown image format\n"
" --nsf synonym for --no-storage-format\n"
);
exit(EFailUsage);

View File

@ -192,6 +192,8 @@ void foo213()
gl_ClipDistance[1] = 0.3; // ERROR
}
int gl_ModelViewMatrix[] = 0;
// token pasting (ERRORS...)
#define mac abc##def

View File

@ -4,6 +4,103 @@ in double d; // ERROR, no doubles
in dvec3 d3; // ERROR, no doubles
in dmat4 dm4; // ERROR, no doubles
void main()
{
// function selection under type conversion
void foo1(double a, uint b) {}
void foo1(double a, int b) {}
void foo1(double a, float b) {}
void foo1(double a, double b){}
void foo2(double a, float b) {}
void foo2(double a, double b){}
void foo3(double a, float b) {}
void foo3(float a, double b) {}
void ftd( int, float, double) {}
void ftd( uint, float, double) {}
void ftd(float, double, double) {}
void main()
{
double d;
uint u;
int i;
float f;
foo1(d, d);
foo1(d, u);
foo1(d, i);
foo1(d, f);
foo1(f, d);
foo1(f, u);
foo1(f, i);
foo1(f, f);
foo1(u, d);
foo1(u, u);
foo1(u, i);
foo1(u, f);
foo1(i, d);
foo1(i, u);
foo1(i, i);
foo1(i, f);
foo2(d, d);
foo2(d, u);
foo2(d, i);
foo2(d, f);
foo2(f, d);
foo2(f, u);
foo2(f, i);
foo2(f, f);
foo2(u, d);
foo2(u, u);
foo2(u, i);
foo2(u, f);
foo2(i, d);
foo2(i, u);
foo2(i, i);
foo2(i, f);
foo3(d, d); // ERROR, no match
foo3(d, u);
foo3(d, i);
foo3(d, f);
foo3(f, d);
foo3(f, u); // ERROR, ambiguous
foo3(f, i); // ERROR, ambiguous
foo3(f, f); // ERROR, ambiguous
foo3(u, d);
foo3(u, u); // ERROR, ambiguous
foo3(u, i); // ERROR, ambiguous
foo3(u, f); // ERROR, ambiguous
foo3(i, d);
foo3(i, u); // ERROR, ambiguous
foo3(i, i); // ERROR, ambiguous
foo3(i, f); // ERROR, ambiguous
ftd(i, f, f);
ftd(u, f, f);
}
void itf(int, float, int);
void itf(int, double, int);
void tf()
{
double d;
uint u;
int i;
float f;
itf(i, i, i);
itf(i, u, i);
}

View File

@ -10,3 +10,5 @@ void main()
layout(depth_less) in float depth; // ERROR: depth_less only applies to gl_FragDepth
layout(depth_any) out float gl_FragDepth; // ERROR, done after use
layout(binding=0) uniform atomic_uint a[];

View File

@ -51,6 +51,18 @@ struct S4 {
S3 s[2];
};
struct Single1 { int f; };
Single1 single1 = { 10 };
struct Single2 { uvec2 v; };
Single2 single2 = { { 1, 2 } };
struct Single3 { Single1 s1; };
Single3 single3 = { { 3 } };
struct Single4 { Single2 s1; };
Single4 single4 = { { { 4u, 5u } } };
const S4 constructed = S4(uvec2(1, 2),
S3[2](S3(3.0, mat2x3(4.0)),
S3(5.0, mat2x3(6.0))));

View File

@ -156,4 +156,6 @@ void qlod()
levels = textureQueryLevels(samp1D); // ERROR, not until 430
levels = textureQueryLevels(samp1Ds); // ERROR, not until 430
}
}
layout(binding=0) writeonly uniform image1D badArray[];

View File

@ -63,6 +63,20 @@ layout(location = 1, component = 1) out; // ERROR, no global set
layout(location = 50, component = 3) out int be;
layout(location = 50, component = 0) out vec3 bf;
layout(location = 51, component = 1) out double dfo; // ERROR, odd component
layout(location = 52, component = 2) out dvec2 dvo; // ERROR, overflow
layout(location = 53) out double dfo2;
layout(location = 53, component = 2) out vec2 ffv2; // okay, fits
layout(location = 54) out dvec4 dvec4out; // uses up location 55 too
layout(location = 55) out float overf; // ERROR, collides with previous dvec4
layout(location = 56, component = 1) out vec2 df2o;
layout(location = 56, component = 3) out float sf2o;
layout(location = 57, component = 2) out vec2 dv3o;
layout(location = 57, component = 3) out float sf4o; // ERROR, overlapping component
layout(location=58) out flat dvec3 dv3o2; // uses part of location 59
layout(location=59, component=2) out flat double dfo3; // okay, fits
layout(location=59, component=0) out flat double dfo4; // ERROR, overlaps the dvec3 in starting in 58
out bblck1 {
vec4 bbv;
} bbinst1;

4
Test/badMacroArgs.frag Executable file
View File

@ -0,0 +1,4 @@
#version 400
#define m(a) a
m()

View File

@ -241,7 +241,7 @@ ERROR: node is still EOpNull!
0:122 'sExt' (uniform lowp samplerExternalOES)
0:122 Construct vec3 (temp lowp 3-component vector of float)
0:122 'f13' (invariant global mediump float)
0:123 textureProj (global lowp 4-component vector of float)
0:123 textureProj (global lowp 4-component vector of float, operation at mediump)
0:123 'sExt' (uniform lowp samplerExternalOES)
0:123 direct index (smooth temp mediump 4-component vector of float)
0:123 'v' (smooth in 3-element array of mediump 4-component vector of float)
@ -278,7 +278,7 @@ ERROR: node is still EOpNull!
0:145 'a' (in mediump int)
0:145 'b' (in mediump float)
0:147 Sequence
0:147 textureProjGrad (global lowp 4-component vector of float)
0:147 textureProjGrad (global lowp 4-component vector of float, operation at mediump)
0:147 's2Dg' (uniform lowp sampler2D)
0:147 Construct vec3 (temp mediump 3-component vector of float)
0:147 'f13' (invariant global mediump float)
@ -299,17 +299,17 @@ ERROR: node is still EOpNull!
0:158 Function Definition: foo323433( (global void)
0:158 Function Parameters:
0:160 Sequence
0:160 textureLod (global lowp 4-component vector of float)
0:160 textureLod (global lowp 4-component vector of float, operation at mediump)
0:160 's2Dg' (uniform lowp sampler2D)
0:160 'uv2' (invariant uniform mediump 2-component vector of float)
0:160 'f13' (invariant global mediump float)
0:161 textureProjGrad (global lowp 4-component vector of float)
0:161 textureProjGrad (global lowp 4-component vector of float, operation at mediump)
0:161 's2Dg' (uniform lowp sampler2D)
0:161 Construct vec3 (temp mediump 3-component vector of float)
0:161 'f13' (invariant global mediump float)
0:161 'uv2' (invariant uniform mediump 2-component vector of float)
0:161 'uv2' (invariant uniform mediump 2-component vector of float)
0:162 textureGrad (global lowp 4-component vector of float)
0:162 textureGrad (global lowp 4-component vector of float, operation at mediump)
0:162 's2Dg' (uniform lowp sampler2D)
0:162 'uv2' (invariant uniform mediump 2-component vector of float)
0:162 'uv2' (invariant uniform mediump 2-component vector of float)
@ -579,7 +579,7 @@ ERROR: node is still EOpNull!
0:122 'sExt' (uniform lowp samplerExternalOES)
0:122 Construct vec3 (temp lowp 3-component vector of float)
0:122 'f13' (invariant global mediump float)
0:123 textureProj (global lowp 4-component vector of float)
0:123 textureProj (global lowp 4-component vector of float, operation at mediump)
0:123 'sExt' (uniform lowp samplerExternalOES)
0:123 direct index (smooth temp mediump 4-component vector of float)
0:123 'v' (smooth in 3-element array of mediump 4-component vector of float)
@ -616,7 +616,7 @@ ERROR: node is still EOpNull!
0:145 'a' (in mediump int)
0:145 'b' (in mediump float)
0:147 Sequence
0:147 textureProjGrad (global lowp 4-component vector of float)
0:147 textureProjGrad (global lowp 4-component vector of float, operation at mediump)
0:147 's2Dg' (uniform lowp sampler2D)
0:147 Construct vec3 (temp mediump 3-component vector of float)
0:147 'f13' (invariant global mediump float)
@ -637,17 +637,17 @@ ERROR: node is still EOpNull!
0:158 Function Definition: foo323433( (global void)
0:158 Function Parameters:
0:160 Sequence
0:160 textureLod (global lowp 4-component vector of float)
0:160 textureLod (global lowp 4-component vector of float, operation at mediump)
0:160 's2Dg' (uniform lowp sampler2D)
0:160 'uv2' (invariant uniform mediump 2-component vector of float)
0:160 'f13' (invariant global mediump float)
0:161 textureProjGrad (global lowp 4-component vector of float)
0:161 textureProjGrad (global lowp 4-component vector of float, operation at mediump)
0:161 's2Dg' (uniform lowp sampler2D)
0:161 Construct vec3 (temp mediump 3-component vector of float)
0:161 'f13' (invariant global mediump float)
0:161 'uv2' (invariant uniform mediump 2-component vector of float)
0:161 'uv2' (invariant uniform mediump 2-component vector of float)
0:162 textureGrad (global lowp 4-component vector of float)
0:162 textureGrad (global lowp 4-component vector of float, operation at mediump)
0:162 's2Dg' (uniform lowp sampler2D)
0:162 'uv2' (invariant uniform mediump 2-component vector of float)
0:162 'uv2' (invariant uniform mediump 2-component vector of float)

View File

@ -23,7 +23,7 @@ ERROR: 0:84: 'z' : vector field selection out of range
ERROR: 0:85: 'assign' : l-value required
ERROR: 0:91: 'int' : overloaded functions must have the same return type
ERROR: 0:91: 'main' : function already has a body
ERROR: 0:91: 'int' : main function cannot return a value
ERROR: 0:91: 'int' : entry point cannot return a value
ERROR: 0:92: 'main' : function cannot take any parameter(s)
ERROR: 0:94: 'a' : variables with qualifier 'const' must be initialized
ERROR: 0:97: 'out' : overloaded functions must have the same parameter storage qualifiers for argument 1

View File

@ -75,10 +75,11 @@ ERROR: 0:191: '=' : cannot convert from 'temp float' to 'temp int'
ERROR: 0:192: 'gl_ClipDistance' : undeclared identifier
ERROR: 0:192: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
ERROR: 0:192: 'assign' : l-value required (can't modify a const)
ERROR: 0:198: 'token pasting (##)' : not supported for this version or the enabled extensions
ERROR: 0:198: '##' : token pasting not implemented (internal error)
ERROR: 0:198: '' : syntax error
ERROR: 79 compilation errors. No code generated.
ERROR: 0:195: 'gl_ModelViewMatrix' : identifiers starting with "gl_" are reserved
ERROR: 0:200: 'token pasting (##)' : not supported for this version or the enabled extensions
ERROR: 0:200: '##' : token pasting not implemented (internal error)
ERROR: 0:200: '' : syntax error
ERROR: 80 compilation errors. No code generated.
Shader version: 120

View File

@ -732,7 +732,7 @@ ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot con
ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'
ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float
ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'temp structure{global float s, global float t}'
ERROR: 0:58: 'initializer list' : wrong number of structure members
ERROR: 0:70: 'initializer list' : wrong number of structure members
ERROR: 13 compilation errors. No code generated.
@ -770,51 +770,73 @@ ERROR: node is still EOpNull!
0:42 5.000000
0:42 5.200000
0:42 1.100000
0:67 Sequence
0:67 move second child to first child (temp 3-component vector of float)
0:67 'av3' (global 3-component vector of float)
0:67 Construct vec3 (global 3-component vector of float)
0:67 'vc1' (global float)
0:67 'vc2' (global float)
0:67 'vc3' (global float)
0:68 Sequence
0:68 move second child to first child (temp 3-component vector of float)
0:68 'bv3' (global 3-component vector of float)
0:68 Construct vec3 (temp 3-component vector of float)
0:68 'vc1' (global float)
0:68 'vc2' (global float)
0:68 'vc3' (global float)
0:70 Function Definition: main( (global void)
0:70 Function Parameters:
0:72 Sequence
0:72 MemoryBarrier (global void)
0:74 Test condition and select (temp void)
0:74 Condition
0:74 Compare Equal (temp bool)
0:74 Constant:
0:74 1 (const uint)
0:74 2 (const uint)
0:74 3.000000
0:74 4.000000
0:74 0.000000
0:74 0.000000
0:74 0.000000
0:74 4.000000
0:74 0.000000
0:74 5.000000
0:74 6.000000
0:74 0.000000
0:74 0.000000
0:74 0.000000
0:74 6.000000
0:74 0.000000
0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:74 true case is null
0:76 Test condition and select (temp void)
0:76 Condition
0:76 Constant:
0:76 true (const bool)
0:76 true case is null
0:55 Sequence
0:55 move second child to first child (temp structure{global int f})
0:55 'single1' (global structure{global int f})
0:55 Constant:
0:55 10 (const int)
0:58 Sequence
0:58 move second child to first child (temp structure{global 2-component vector of uint v})
0:58 'single2' (global structure{global 2-component vector of uint v})
0:58 Constant:
0:58 1 (const uint)
0:58 2 (const uint)
0:61 Sequence
0:61 move second child to first child (temp structure{global structure{global int f} s1})
0:61 'single3' (global structure{global structure{global int f} s1})
0:61 Constant:
0:61 3 (const int)
0:64 Sequence
0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1})
0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:64 Constant:
0:64 4 (const uint)
0:64 5 (const uint)
0:79 Sequence
0:79 move second child to first child (temp 3-component vector of float)
0:79 'av3' (global 3-component vector of float)
0:79 Construct vec3 (global 3-component vector of float)
0:79 'vc1' (global float)
0:79 'vc2' (global float)
0:79 'vc3' (global float)
0:80 Sequence
0:80 move second child to first child (temp 3-component vector of float)
0:80 'bv3' (global 3-component vector of float)
0:80 Construct vec3 (temp 3-component vector of float)
0:80 'vc1' (global float)
0:80 'vc2' (global float)
0:80 'vc3' (global float)
0:82 Function Definition: main( (global void)
0:82 Function Parameters:
0:84 Sequence
0:84 MemoryBarrier (global void)
0:86 Test condition and select (temp void)
0:86 Condition
0:86 Compare Equal (temp bool)
0:86 Constant:
0:86 1 (const uint)
0:86 2 (const uint)
0:86 3.000000
0:86 4.000000
0:86 0.000000
0:86 0.000000
0:86 0.000000
0:86 4.000000
0:86 0.000000
0:86 5.000000
0:86 6.000000
0:86 0.000000
0:86 0.000000
0:86 0.000000
0:86 6.000000
0:86 0.000000
0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:86 true case is null
0:88 Test condition and select (temp void)
0:88 Condition
0:88 Constant:
0:88 true (const bool)
0:88 true case is null
0:? Linker Objects
0:? 'a' (const 2X2 matrix of float)
0:? 1.000000
@ -840,6 +862,10 @@ ERROR: node is still EOpNull!
0:? 'c3' (global 4X2 matrix of float)
0:? 'd2' (global implicitly-sized array of structure{global float s, global float t})
0:? 'b5' (global 5-element array of float)
0:? 'single1' (global structure{global int f})
0:? 'single2' (global structure{global 2-component vector of uint v})
0:? 'single3' (global structure{global structure{global int f} s1})
0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:? 1 (const uint)
0:? 2 (const uint)
@ -1524,51 +1550,73 @@ ERROR: node is still EOpNull!
0:42 5.000000
0:42 5.200000
0:42 1.100000
0:67 Sequence
0:67 move second child to first child (temp 3-component vector of float)
0:67 'av3' (global 3-component vector of float)
0:67 Construct vec3 (global 3-component vector of float)
0:67 'vc1' (global float)
0:67 'vc2' (global float)
0:67 'vc3' (global float)
0:68 Sequence
0:68 move second child to first child (temp 3-component vector of float)
0:68 'bv3' (global 3-component vector of float)
0:68 Construct vec3 (temp 3-component vector of float)
0:68 'vc1' (global float)
0:68 'vc2' (global float)
0:68 'vc3' (global float)
0:70 Function Definition: main( (global void)
0:70 Function Parameters:
0:72 Sequence
0:72 MemoryBarrier (global void)
0:74 Test condition and select (temp void)
0:74 Condition
0:74 Compare Equal (temp bool)
0:74 Constant:
0:74 1 (const uint)
0:74 2 (const uint)
0:74 3.000000
0:74 4.000000
0:74 0.000000
0:74 0.000000
0:74 0.000000
0:74 4.000000
0:74 0.000000
0:74 5.000000
0:74 6.000000
0:74 0.000000
0:74 0.000000
0:74 0.000000
0:74 6.000000
0:74 0.000000
0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:74 true case is null
0:76 Test condition and select (temp void)
0:76 Condition
0:76 Constant:
0:76 true (const bool)
0:76 true case is null
0:55 Sequence
0:55 move second child to first child (temp structure{global int f})
0:55 'single1' (global structure{global int f})
0:55 Constant:
0:55 10 (const int)
0:58 Sequence
0:58 move second child to first child (temp structure{global 2-component vector of uint v})
0:58 'single2' (global structure{global 2-component vector of uint v})
0:58 Constant:
0:58 1 (const uint)
0:58 2 (const uint)
0:61 Sequence
0:61 move second child to first child (temp structure{global structure{global int f} s1})
0:61 'single3' (global structure{global structure{global int f} s1})
0:61 Constant:
0:61 3 (const int)
0:64 Sequence
0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1})
0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:64 Constant:
0:64 4 (const uint)
0:64 5 (const uint)
0:79 Sequence
0:79 move second child to first child (temp 3-component vector of float)
0:79 'av3' (global 3-component vector of float)
0:79 Construct vec3 (global 3-component vector of float)
0:79 'vc1' (global float)
0:79 'vc2' (global float)
0:79 'vc3' (global float)
0:80 Sequence
0:80 move second child to first child (temp 3-component vector of float)
0:80 'bv3' (global 3-component vector of float)
0:80 Construct vec3 (temp 3-component vector of float)
0:80 'vc1' (global float)
0:80 'vc2' (global float)
0:80 'vc3' (global float)
0:82 Function Definition: main( (global void)
0:82 Function Parameters:
0:84 Sequence
0:84 MemoryBarrier (global void)
0:86 Test condition and select (temp void)
0:86 Condition
0:86 Compare Equal (temp bool)
0:86 Constant:
0:86 1 (const uint)
0:86 2 (const uint)
0:86 3.000000
0:86 4.000000
0:86 0.000000
0:86 0.000000
0:86 0.000000
0:86 4.000000
0:86 0.000000
0:86 5.000000
0:86 6.000000
0:86 0.000000
0:86 0.000000
0:86 0.000000
0:86 6.000000
0:86 0.000000
0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:86 true case is null
0:88 Test condition and select (temp void)
0:88 Condition
0:88 Constant:
0:88 true (const bool)
0:88 true case is null
0:? Linker Objects
0:? 'patchIn' (patch in 4-component vector of float)
0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
@ -1616,6 +1664,10 @@ ERROR: node is still EOpNull!
0:? 'c3' (global 4X2 matrix of float)
0:? 'd2' (global 1-element array of structure{global float s, global float t})
0:? 'b5' (global 5-element array of float)
0:? 'single1' (global structure{global int f})
0:? 'single2' (global structure{global 2-component vector of uint v})
0:? 'single3' (global structure{global structure{global int f} s1})
0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:? 1 (const uint)
0:? 2 (const uint)

View File

@ -28,7 +28,7 @@ ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled
ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions
ERROR: 0:100: 'arrays of arrays' : not supported for this version or the enabled extensions
ERROR: 0:100: 'array-of-array of block' : not supported with this profile: es
ERROR: 0:111: 'variable indexing fragment shader ouput array' : not supported with this profile: es
ERROR: 0:111: 'variable indexing fragment shader output array' : not supported with this profile: es
ERROR: 0:119: '==' : can't use with samplers or structs containing samplers
ERROR: 0:120: '!=' : can't use with samplers or structs containing samplers
ERROR: 0:121: '==' : can't use with samplers or structs containing samplers
@ -72,20 +72,20 @@ ERROR: node is still EOpNull!
0:59 1.200000
0:60 move second child to first child (temp lowp float)
0:60 'f' (temp lowp float)
0:60 textureOffset (global lowp float)
0:60 textureOffset (global lowp float, operation at mediump)
0:60 's2DShadow' (uniform lowp sampler2DShadow)
0:60 'c3D' (smooth in lowp 3-component vector of float)
0:60 'ic2D' (flat in mediump 2-component vector of int)
0:60 'c1D' (smooth in lowp float)
0:61 move second child to first child (temp lowp 4-component vector of float)
0:61 'v' (temp lowp 4-component vector of float)
0:61 textureFetch (global lowp 4-component vector of float)
0:61 textureFetch (global lowp 4-component vector of float, operation at mediump)
0:61 's3D' (uniform lowp sampler3D)
0:61 'ic3D' (flat in mediump 3-component vector of int)
0:61 'ic1D' (flat in mediump int)
0:62 move second child to first child (temp lowp 4-component vector of float)
0:62 'v' (temp lowp 4-component vector of float)
0:62 textureFetchOffset (global lowp 4-component vector of float)
0:62 textureFetchOffset (global lowp 4-component vector of float, operation at mediump)
0:62 direct index (temp lowp sampler2D)
0:62 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
0:62 Constant:
@ -96,14 +96,14 @@ ERROR: node is still EOpNull!
0:62 'ic2D' (flat in mediump 2-component vector of int)
0:63 move second child to first child (temp lowp float)
0:63 'f' (temp lowp float)
0:63 textureLodOffset (global lowp float)
0:63 textureLodOffset (global lowp float, operation at mediump)
0:63 's2DShadow' (uniform lowp sampler2DShadow)
0:63 'c3D' (smooth in lowp 3-component vector of float)
0:63 'c1D' (smooth in lowp float)
0:63 'ic2D' (flat in mediump 2-component vector of int)
0:64 move second child to first child (temp lowp 4-component vector of float)
0:64 'v' (temp lowp 4-component vector of float)
0:64 textureProjLodOffset (global lowp 4-component vector of float)
0:64 textureProjLodOffset (global lowp 4-component vector of float, operation at mediump)
0:64 's2D' (uniform lowp sampler2D)
0:64 'c3D' (smooth in lowp 3-component vector of float)
0:64 'c1D' (smooth in lowp float)
@ -117,7 +117,7 @@ ERROR: node is still EOpNull!
0:65 'c3D' (smooth in lowp 3-component vector of float)
0:66 move second child to first child (temp lowp float)
0:66 'f' (temp lowp float)
0:66 textureGradOffset (global lowp float)
0:66 textureGradOffset (global lowp float, operation at mediump)
0:66 's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
0:66 'c4D' (smooth temp lowp 4-component vector of float)
0:66 'c2D' (smooth in lowp 2-component vector of float)
@ -132,7 +132,7 @@ ERROR: node is still EOpNull!
0:67 'c3D' (smooth in lowp 3-component vector of float)
0:68 move second child to first child (temp lowp 4-component vector of float)
0:68 'v' (temp lowp 4-component vector of float)
0:68 textureProjGradOffset (global lowp 4-component vector of float)
0:68 textureProjGradOffset (global lowp 4-component vector of float, operation at mediump)
0:68 's2D' (uniform lowp sampler2D)
0:68 'c3D' (smooth in lowp 3-component vector of float)
0:68 'c2D' (smooth in lowp 2-component vector of float)
@ -152,7 +152,7 @@ ERROR: node is still EOpNull!
0:72 'c2D' (smooth in lowp 2-component vector of float)
0:73 move second child to first child (temp mediump 4-component vector of int)
0:73 'iv' (temp mediump 4-component vector of int)
0:73 textureProjOffset (global lowp 4-component vector of int)
0:73 textureProjOffset (global lowp 4-component vector of int, operation at mediump)
0:73 'is2D' (uniform lowp isampler2D)
0:73 'c4D' (smooth temp lowp 4-component vector of float)
0:73 'ic2D' (flat in mediump 2-component vector of int)
@ -184,7 +184,7 @@ ERROR: node is still EOpNull!
0:77 'c1D' (smooth in lowp float)
0:78 move second child to first child (temp mediump 4-component vector of int)
0:78 'iv' (temp mediump 4-component vector of int)
0:78 textureFetch (global lowp 4-component vector of int)
0:78 textureFetch (global lowp 4-component vector of int, operation at mediump)
0:78 'is2DArray' (uniform lowp isampler2DArray)
0:78 'ic3D' (flat in mediump 3-component vector of int)
0:78 'ic1D' (flat in mediump int)
@ -196,7 +196,7 @@ ERROR: node is still EOpNull!
0:80 0 (const int)
0:80 Constant:
0:80 1 (const int)
0:80 textureSize (global highp 2-component vector of int)
0:80 textureSize (global highp 2-component vector of int, operation at lowp)
0:80 'sCubeShadow' (uniform lowp samplerCubeShadow)
0:80 Constant:
0:80 2 (const int)
@ -428,20 +428,20 @@ ERROR: node is still EOpNull!
0:59 1.200000
0:60 move second child to first child (temp lowp float)
0:60 'f' (temp lowp float)
0:60 textureOffset (global lowp float)
0:60 textureOffset (global lowp float, operation at mediump)
0:60 's2DShadow' (uniform lowp sampler2DShadow)
0:60 'c3D' (smooth in lowp 3-component vector of float)
0:60 'ic2D' (flat in mediump 2-component vector of int)
0:60 'c1D' (smooth in lowp float)
0:61 move second child to first child (temp lowp 4-component vector of float)
0:61 'v' (temp lowp 4-component vector of float)
0:61 textureFetch (global lowp 4-component vector of float)
0:61 textureFetch (global lowp 4-component vector of float, operation at mediump)
0:61 's3D' (uniform lowp sampler3D)
0:61 'ic3D' (flat in mediump 3-component vector of int)
0:61 'ic1D' (flat in mediump int)
0:62 move second child to first child (temp lowp 4-component vector of float)
0:62 'v' (temp lowp 4-component vector of float)
0:62 textureFetchOffset (global lowp 4-component vector of float)
0:62 textureFetchOffset (global lowp 4-component vector of float, operation at mediump)
0:62 direct index (temp lowp sampler2D)
0:62 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
0:62 Constant:
@ -452,14 +452,14 @@ ERROR: node is still EOpNull!
0:62 'ic2D' (flat in mediump 2-component vector of int)
0:63 move second child to first child (temp lowp float)
0:63 'f' (temp lowp float)
0:63 textureLodOffset (global lowp float)
0:63 textureLodOffset (global lowp float, operation at mediump)
0:63 's2DShadow' (uniform lowp sampler2DShadow)
0:63 'c3D' (smooth in lowp 3-component vector of float)
0:63 'c1D' (smooth in lowp float)
0:63 'ic2D' (flat in mediump 2-component vector of int)
0:64 move second child to first child (temp lowp 4-component vector of float)
0:64 'v' (temp lowp 4-component vector of float)
0:64 textureProjLodOffset (global lowp 4-component vector of float)
0:64 textureProjLodOffset (global lowp 4-component vector of float, operation at mediump)
0:64 's2D' (uniform lowp sampler2D)
0:64 'c3D' (smooth in lowp 3-component vector of float)
0:64 'c1D' (smooth in lowp float)
@ -473,7 +473,7 @@ ERROR: node is still EOpNull!
0:65 'c3D' (smooth in lowp 3-component vector of float)
0:66 move second child to first child (temp lowp float)
0:66 'f' (temp lowp float)
0:66 textureGradOffset (global lowp float)
0:66 textureGradOffset (global lowp float, operation at mediump)
0:66 's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
0:66 'c4D' (smooth temp lowp 4-component vector of float)
0:66 'c2D' (smooth in lowp 2-component vector of float)
@ -488,7 +488,7 @@ ERROR: node is still EOpNull!
0:67 'c3D' (smooth in lowp 3-component vector of float)
0:68 move second child to first child (temp lowp 4-component vector of float)
0:68 'v' (temp lowp 4-component vector of float)
0:68 textureProjGradOffset (global lowp 4-component vector of float)
0:68 textureProjGradOffset (global lowp 4-component vector of float, operation at mediump)
0:68 's2D' (uniform lowp sampler2D)
0:68 'c3D' (smooth in lowp 3-component vector of float)
0:68 'c2D' (smooth in lowp 2-component vector of float)
@ -508,7 +508,7 @@ ERROR: node is still EOpNull!
0:72 'c2D' (smooth in lowp 2-component vector of float)
0:73 move second child to first child (temp mediump 4-component vector of int)
0:73 'iv' (temp mediump 4-component vector of int)
0:73 textureProjOffset (global lowp 4-component vector of int)
0:73 textureProjOffset (global lowp 4-component vector of int, operation at mediump)
0:73 'is2D' (uniform lowp isampler2D)
0:73 'c4D' (smooth temp lowp 4-component vector of float)
0:73 'ic2D' (flat in mediump 2-component vector of int)
@ -540,7 +540,7 @@ ERROR: node is still EOpNull!
0:77 'c1D' (smooth in lowp float)
0:78 move second child to first child (temp mediump 4-component vector of int)
0:78 'iv' (temp mediump 4-component vector of int)
0:78 textureFetch (global lowp 4-component vector of int)
0:78 textureFetch (global lowp 4-component vector of int, operation at mediump)
0:78 'is2DArray' (uniform lowp isampler2DArray)
0:78 'ic3D' (flat in mediump 3-component vector of int)
0:78 'ic1D' (flat in mediump int)
@ -552,7 +552,7 @@ ERROR: node is still EOpNull!
0:80 0 (const int)
0:80 Constant:
0:80 1 (const int)
0:80 textureSize (global highp 2-component vector of int)
0:80 textureSize (global highp 2-component vector of int, operation at lowp)
0:80 'sCubeShadow' (uniform lowp samplerCubeShadow)
0:80 Constant:
0:80 2 (const int)

View File

@ -9,7 +9,7 @@ ERROR: 0:12: '' : vertex input cannot be further qualified
ERROR: 0:13: '' : interpolation qualifiers must appear before storage and precision qualifiers
ERROR: 0:14: '' : in/out must appear before const
ERROR: 0:15: '' : precision qualifier must appear as last qualifier
ERROR: 0:16: '' : can only have one interpolation qualifier (flat, smooth, noperspective)
ERROR: 0:16: '' : can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD)
ERROR: 0:17: 'sample' : Reserved word.
ERROR: 0:17: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
ERROR: 0:18: 'uniform' : too many storage qualifiers
@ -175,7 +175,7 @@ ERROR: node is still EOpNull!
0:120 Sequence
0:120 move second child to first child (temp highp 2-component vector of int)
0:120 'x1' (temp highp 2-component vector of int)
0:120 textureSize (global highp 2-component vector of int)
0:120 textureSize (global highp 2-component vector of int, operation at lowp)
0:120 's2D' (uniform lowp sampler2D)
0:120 Constant:
0:120 2 (const int)
@ -184,7 +184,7 @@ ERROR: node is still EOpNull!
0:122 Sequence
0:122 move second child to first child (temp highp 3-component vector of int)
0:122 'x3' (temp highp 3-component vector of int)
0:122 textureSize (global highp 3-component vector of int)
0:122 textureSize (global highp 3-component vector of int, operation at lowp)
0:122 's2DAS' (uniform lowp sampler2DArrayShadow)
0:122 Constant:
0:122 -1 (const int)
@ -193,7 +193,7 @@ ERROR: node is still EOpNull!
0:124 Sequence
0:124 move second child to first child (temp highp 4-component vector of float)
0:124 'x4' (temp highp 4-component vector of float)
0:124 texture (global lowp 4-component vector of float)
0:124 texture (global lowp 4-component vector of float, operation at highp)
0:124 's2D' (uniform lowp sampler2D)
0:124 'c2D' (in highp 2-component vector of float)
0:125 Constant:
@ -217,7 +217,7 @@ ERROR: node is still EOpNull!
0:128 Sequence
0:128 move second child to first child (temp highp float)
0:128 'x6' (temp highp float)
0:128 textureProjGradOffset (global lowp float)
0:128 textureProjGradOffset (global lowp float, operation at highp)
0:128 's2DS' (uniform lowp sampler2DShadow)
0:128 'invIn' (invariant in highp 4-component vector of float)
0:128 Constant:
@ -459,7 +459,7 @@ ERROR: node is still EOpNull!
0:120 Sequence
0:120 move second child to first child (temp highp 2-component vector of int)
0:120 'x1' (temp highp 2-component vector of int)
0:120 textureSize (global highp 2-component vector of int)
0:120 textureSize (global highp 2-component vector of int, operation at lowp)
0:120 's2D' (uniform lowp sampler2D)
0:120 Constant:
0:120 2 (const int)
@ -468,7 +468,7 @@ ERROR: node is still EOpNull!
0:122 Sequence
0:122 move second child to first child (temp highp 3-component vector of int)
0:122 'x3' (temp highp 3-component vector of int)
0:122 textureSize (global highp 3-component vector of int)
0:122 textureSize (global highp 3-component vector of int, operation at lowp)
0:122 's2DAS' (uniform lowp sampler2DArrayShadow)
0:122 Constant:
0:122 -1 (const int)
@ -477,7 +477,7 @@ ERROR: node is still EOpNull!
0:124 Sequence
0:124 move second child to first child (temp highp 4-component vector of float)
0:124 'x4' (temp highp 4-component vector of float)
0:124 texture (global lowp 4-component vector of float)
0:124 texture (global lowp 4-component vector of float, operation at highp)
0:124 's2D' (uniform lowp sampler2D)
0:124 'c2D' (in highp 2-component vector of float)
0:125 Constant:
@ -501,7 +501,7 @@ ERROR: node is still EOpNull!
0:128 Sequence
0:128 move second child to first child (temp highp float)
0:128 'x6' (temp highp float)
0:128 textureProjGradOffset (global lowp float)
0:128 textureProjGradOffset (global lowp float, operation at highp)
0:128 's2DS' (uniform lowp sampler2DShadow)
0:128 'invIn' (invariant in highp 4-component vector of float)
0:128 Constant:

View File

@ -128,12 +128,12 @@ ERROR: node is still EOpNull!
0:52 Sequence
0:52 move second child to first child (temp 2-component vector of bool)
0:52 'b10' (temp 2-component vector of bool)
0:52 isnan (global 2-component vector of bool)
0:52 isnan (global 2-component vector of bool, operation at mediump)
0:52 'v2a' (global mediump 2-component vector of float)
0:53 Sequence
0:53 move second child to first child (temp 4-component vector of bool)
0:53 'b11' (temp 4-component vector of bool)
0:53 isinf (global 4-component vector of bool)
0:53 isinf (global 4-component vector of bool, operation at mediump)
0:53 'v4' (global mediump 4-component vector of float)
0:56 Sequence
0:56 move second child to first child (temp highp int)
@ -158,17 +158,17 @@ ERROR: node is still EOpNull!
0:62 Sequence
0:62 move second child to first child (temp highp uint)
0:62 'u19' (temp mediump uint)
0:62 packSnorm2x16 (global highp uint)
0:62 packSnorm2x16 (global highp uint, operation at mediump)
0:62 'v2a' (global mediump 2-component vector of float)
0:63 Sequence
0:63 move second child to first child (temp mediump 2-component vector of float)
0:63 move second child to first child (temp highp 2-component vector of float)
0:63 'v20' (temp mediump 2-component vector of float)
0:63 unpackSnorm2x16 (global mediump 2-component vector of float)
0:63 unpackSnorm2x16 (global highp 2-component vector of float)
0:63 'uy' (global mediump uint)
0:64 Sequence
0:64 move second child to first child (temp highp uint)
0:64 'u15' (temp mediump uint)
0:64 packUnorm2x16 (global highp uint)
0:64 packUnorm2x16 (global highp uint, operation at mediump)
0:64 'v2a' (global mediump 2-component vector of float)
0:65 Sequence
0:65 move second child to first child (temp highp 2-component vector of float)
@ -178,12 +178,12 @@ ERROR: node is still EOpNull!
0:66 Sequence
0:66 move second child to first child (temp highp uint)
0:66 'u17' (temp mediump uint)
0:66 packHalf2x16 (global highp uint)
0:66 packHalf2x16 (global highp uint, operation at mediump)
0:66 'v2b' (global mediump 2-component vector of float)
0:67 Sequence
0:67 move second child to first child (temp mediump 2-component vector of float)
0:67 'v18' (temp mediump 2-component vector of float)
0:67 unpackHalf2x16 (global mediump 2-component vector of float)
0:67 unpackHalf2x16 (global mediump 2-component vector of float, operation at highp)
0:67 'uy' (global mediump uint)
0:70 Constant:
0:70 0.000000
@ -335,12 +335,12 @@ ERROR: node is still EOpNull!
0:52 Sequence
0:52 move second child to first child (temp 2-component vector of bool)
0:52 'b10' (temp 2-component vector of bool)
0:52 isnan (global 2-component vector of bool)
0:52 isnan (global 2-component vector of bool, operation at mediump)
0:52 'v2a' (global mediump 2-component vector of float)
0:53 Sequence
0:53 move second child to first child (temp 4-component vector of bool)
0:53 'b11' (temp 4-component vector of bool)
0:53 isinf (global 4-component vector of bool)
0:53 isinf (global 4-component vector of bool, operation at mediump)
0:53 'v4' (global mediump 4-component vector of float)
0:56 Sequence
0:56 move second child to first child (temp highp int)
@ -365,17 +365,17 @@ ERROR: node is still EOpNull!
0:62 Sequence
0:62 move second child to first child (temp highp uint)
0:62 'u19' (temp mediump uint)
0:62 packSnorm2x16 (global highp uint)
0:62 packSnorm2x16 (global highp uint, operation at mediump)
0:62 'v2a' (global mediump 2-component vector of float)
0:63 Sequence
0:63 move second child to first child (temp mediump 2-component vector of float)
0:63 move second child to first child (temp highp 2-component vector of float)
0:63 'v20' (temp mediump 2-component vector of float)
0:63 unpackSnorm2x16 (global mediump 2-component vector of float)
0:63 unpackSnorm2x16 (global highp 2-component vector of float)
0:63 'uy' (global mediump uint)
0:64 Sequence
0:64 move second child to first child (temp highp uint)
0:64 'u15' (temp mediump uint)
0:64 packUnorm2x16 (global highp uint)
0:64 packUnorm2x16 (global highp uint, operation at mediump)
0:64 'v2a' (global mediump 2-component vector of float)
0:65 Sequence
0:65 move second child to first child (temp highp 2-component vector of float)
@ -385,12 +385,12 @@ ERROR: node is still EOpNull!
0:66 Sequence
0:66 move second child to first child (temp highp uint)
0:66 'u17' (temp mediump uint)
0:66 packHalf2x16 (global highp uint)
0:66 packHalf2x16 (global highp uint, operation at mediump)
0:66 'v2b' (global mediump 2-component vector of float)
0:67 Sequence
0:67 move second child to first child (temp mediump 2-component vector of float)
0:67 'v18' (temp mediump 2-component vector of float)
0:67 unpackHalf2x16 (global mediump 2-component vector of float)
0:67 unpackHalf2x16 (global mediump 2-component vector of float, operation at highp)
0:67 'uy' (global mediump uint)
0:70 Constant:
0:70 0.000000

View File

@ -122,7 +122,7 @@ ERROR: node is still EOpNull!
0:61 2 (const int)
0:61 Constant:
0:61 4.700000
0:62 array length (temp highp int)
0:62 array length (temp int)
0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
0:62 Constant:
@ -178,9 +178,9 @@ ERROR: node is still EOpNull!
0:92 0 (const int)
0:92 0 (const int)
0:92 0 (const int)
0:93 imageLoad (global highp 4-component vector of float)
0:93 imageLoad (global mediump 4-component vector of float)
0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D)
0:93 Construct ivec2 (temp highp 2-component vector of int)
0:93 Construct ivec2 (temp mediump 2-component vector of int)
0:93 'i' (temp highp int)
0:93 'i' (temp highp int)
0:94 imageLoad (global highp 4-component vector of int)
@ -549,7 +549,7 @@ ERROR: node is still EOpNull!
0:61 2 (const int)
0:61 Constant:
0:61 4.700000
0:62 array length (temp highp int)
0:62 array length (temp int)
0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
0:62 Constant:
@ -605,9 +605,9 @@ ERROR: node is still EOpNull!
0:92 0 (const int)
0:92 0 (const int)
0:92 0 (const int)
0:93 imageLoad (global highp 4-component vector of float)
0:93 imageLoad (global mediump 4-component vector of float)
0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D)
0:93 Construct ivec2 (temp highp 2-component vector of int)
0:93 Construct ivec2 (temp mediump 2-component vector of int)
0:93 'i' (temp highp int)
0:93 'i' (temp highp int)
0:94 imageLoad (global highp 4-component vector of int)

View File

@ -353,7 +353,7 @@ ERROR: node is still EOpNull!
0:101 3 (const int)
0:102 move second child to first child (temp highp 2-component vector of int)
0:102 'v2' (temp highp 2-component vector of int)
0:102 textureSize (global highp 2-component vector of int)
0:102 textureSize (global highp 2-component vector of int, operation at mediump)
0:102 's2dms' (uniform mediump sampler2DMS)
0:103 move second child to first child (temp highp 2-component vector of int)
0:103 'v2' (temp highp 2-component vector of int)
@ -361,19 +361,19 @@ ERROR: node is still EOpNull!
0:103 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
0:104 move second child to first child (temp highp 3-component vector of int)
0:104 'v3' (temp highp 3-component vector of int)
0:104 imageQuerySize (global highp 3-component vector of int)
0:104 imageQuerySize (global highp 3-component vector of int, operation at mediump)
0:104 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
0:105 move second child to first child (temp highp 2-component vector of int)
0:105 'v2' (temp highp 2-component vector of int)
0:105 imageQuerySize (global highp 2-component vector of int)
0:105 imageQuerySize (global highp 2-component vector of int, operation at mediump)
0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube)
0:106 move second child to first child (temp highp 3-component vector of int)
0:106 'v3' (temp highp 3-component vector of int)
0:106 imageQuerySize (global highp 3-component vector of int)
0:106 imageQuerySize (global highp 3-component vector of int, operation at mediump)
0:106 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
0:107 move second child to first child (temp highp 2-component vector of int)
0:107 'v2' (temp highp 2-component vector of int)
0:107 imageQuerySize (global highp 2-component vector of int)
0:107 imageQuerySize (global highp 2-component vector of int, operation at mediump)
0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D)
0:165 Function Definition: fooIO( (global void)
0:165 Function Parameters:
@ -1234,7 +1234,7 @@ ERROR: node is still EOpNull!
0:101 3 (const int)
0:102 move second child to first child (temp highp 2-component vector of int)
0:102 'v2' (temp highp 2-component vector of int)
0:102 textureSize (global highp 2-component vector of int)
0:102 textureSize (global highp 2-component vector of int, operation at mediump)
0:102 's2dms' (uniform mediump sampler2DMS)
0:103 move second child to first child (temp highp 2-component vector of int)
0:103 'v2' (temp highp 2-component vector of int)
@ -1242,19 +1242,19 @@ ERROR: node is still EOpNull!
0:103 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
0:104 move second child to first child (temp highp 3-component vector of int)
0:104 'v3' (temp highp 3-component vector of int)
0:104 imageQuerySize (global highp 3-component vector of int)
0:104 imageQuerySize (global highp 3-component vector of int, operation at mediump)
0:104 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
0:105 move second child to first child (temp highp 2-component vector of int)
0:105 'v2' (temp highp 2-component vector of int)
0:105 imageQuerySize (global highp 2-component vector of int)
0:105 imageQuerySize (global highp 2-component vector of int, operation at mediump)
0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube)
0:106 move second child to first child (temp highp 3-component vector of int)
0:106 'v3' (temp highp 3-component vector of int)
0:106 imageQuerySize (global highp 3-component vector of int)
0:106 imageQuerySize (global highp 3-component vector of int, operation at mediump)
0:106 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
0:107 move second child to first child (temp highp 2-component vector of int)
0:107 'v2' (temp highp 2-component vector of int)
0:107 imageQuerySize (global highp 2-component vector of int)
0:107 imageQuerySize (global highp 2-component vector of int, operation at mediump)
0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D)
0:165 Function Definition: fooIO( (global void)
0:165 Function Parameters:

View File

@ -125,12 +125,12 @@ ERROR: node is still EOpNull!
0:17 'u1' (temp highp uint)
0:17 'u1' (temp highp uint)
0:17 'u1' (temp highp uint)
0:19 uMulExtended (global void)
0:19 uMulExtended (global highp void)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
0:21 iMulExtended (global void)
0:21 iMulExtended (global highp void)
0:21 'i4' (temp highp 4-component vector of int)
0:21 'i4' (temp highp 4-component vector of int)
0:21 'i4' (temp highp 4-component vector of int)
@ -179,27 +179,27 @@ ERROR: node is still EOpNull!
0:31 'u4' (temp highp 4-component vector of uint)
0:32 move second child to first child (temp highp int)
0:32 'i1' (temp highp int)
0:32 bitCount (global highp int)
0:32 bitCount (global lowp int, operation at highp)
0:32 'i1' (temp highp int)
0:33 move second child to first child (temp highp 3-component vector of int)
0:33 'i3' (temp highp 3-component vector of int)
0:33 bitCount (global highp 3-component vector of int)
0:33 bitCount (global lowp 3-component vector of int, operation at highp)
0:33 'u3' (temp highp 3-component vector of uint)
0:34 move second child to first child (temp highp 2-component vector of int)
0:34 'i2' (temp highp 2-component vector of int)
0:34 findLSB (global highp 2-component vector of int)
0:34 findLSB (global lowp 2-component vector of int, operation at highp)
0:34 'i2' (temp highp 2-component vector of int)
0:35 move second child to first child (temp highp 4-component vector of int)
0:35 'i4' (temp highp 4-component vector of int)
0:35 findLSB (global highp 4-component vector of int)
0:35 findLSB (global lowp 4-component vector of int, operation at highp)
0:35 'u4' (temp highp 4-component vector of uint)
0:36 move second child to first child (temp highp int)
0:36 'i1' (temp highp int)
0:36 findMSB (global highp int)
0:36 findMSB (global lowp int, operation at highp)
0:36 'i1' (temp highp int)
0:37 move second child to first child (temp highp 2-component vector of int)
0:37 'i2' (temp highp 2-component vector of int)
0:37 findMSB (global highp 2-component vector of int)
0:37 findMSB (global lowp 2-component vector of int, operation at highp)
0:37 'u2' (temp highp 2-component vector of uint)
0:40 move second child to first child (temp highp 3-component vector of float)
0:40 'v3' (temp highp 3-component vector of float)
@ -213,19 +213,19 @@ ERROR: node is still EOpNull!
0:42 'i2' (temp highp 2-component vector of int)
0:45 move second child to first child (temp highp uint)
0:45 'u1' (temp highp uint)
0:45 PackUnorm4x8 (global highp uint)
0:45 PackUnorm4x8 (global highp uint, operation at mediump)
0:45 'v4' (temp mediump 4-component vector of float)
0:46 move second child to first child (temp highp uint)
0:46 'u1' (temp highp uint)
0:46 PackSnorm4x8 (global highp uint)
0:46 PackSnorm4x8 (global highp uint, operation at mediump)
0:46 'v4' (temp mediump 4-component vector of float)
0:47 move second child to first child (temp highp 4-component vector of float)
0:47 move second child to first child (temp mediump 4-component vector of float)
0:47 'v4' (temp mediump 4-component vector of float)
0:47 UnpackUnorm4x8 (global highp 4-component vector of float)
0:47 UnpackUnorm4x8 (global mediump 4-component vector of float, operation at highp)
0:47 'u1' (temp highp uint)
0:48 move second child to first child (temp highp 4-component vector of float)
0:48 move second child to first child (temp mediump 4-component vector of float)
0:48 'v4' (temp mediump 4-component vector of float)
0:48 UnpackSnorm4x8 (global highp 4-component vector of float)
0:48 UnpackSnorm4x8 (global mediump 4-component vector of float, operation at highp)
0:48 'u1' (temp highp uint)
0:60 Function Definition: foo( (global void)
0:60 Function Parameters:
@ -340,7 +340,7 @@ ERROR: node is still EOpNull!
0:165 0.100000
0:165 Convert float to int (temp lowp 2-component vector of int)
0:165 'inf' (in highp 2-component vector of float)
0:166 textureGatherOffsets (global lowp 4-component vector of float)
0:166 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:166 direct index (temp lowp sampler2D)
0:166 'sArray' (uniform 4-element array of lowp sampler2D)
0:166 Constant:
@ -404,7 +404,7 @@ ERROR: node is still EOpNull!
0:180 0.100000
0:180 Convert float to int (temp lowp 2-component vector of int)
0:180 'inf' (in highp 2-component vector of float)
0:181 textureGatherOffsets (global lowp 4-component vector of float)
0:181 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:181 direct index (temp lowp sampler2D)
0:181 'sArray' (uniform 4-element array of lowp sampler2D)
0:181 Constant:
@ -421,7 +421,7 @@ ERROR: node is still EOpNull!
0:181 0 (const int)
0:181 0 (const int)
0:181 0 (const int)
0:182 textureGatherOffsets (global lowp 4-component vector of float)
0:182 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:182 direct index (temp lowp sampler2D)
0:182 'sArray' (uniform 4-element array of lowp sampler2D)
0:182 Constant:
@ -1056,12 +1056,12 @@ ERROR: node is still EOpNull!
0:17 'u1' (temp highp uint)
0:17 'u1' (temp highp uint)
0:17 'u1' (temp highp uint)
0:19 uMulExtended (global void)
0:19 uMulExtended (global highp void)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
0:21 iMulExtended (global void)
0:21 iMulExtended (global highp void)
0:21 'i4' (temp highp 4-component vector of int)
0:21 'i4' (temp highp 4-component vector of int)
0:21 'i4' (temp highp 4-component vector of int)
@ -1110,27 +1110,27 @@ ERROR: node is still EOpNull!
0:31 'u4' (temp highp 4-component vector of uint)
0:32 move second child to first child (temp highp int)
0:32 'i1' (temp highp int)
0:32 bitCount (global highp int)
0:32 bitCount (global lowp int, operation at highp)
0:32 'i1' (temp highp int)
0:33 move second child to first child (temp highp 3-component vector of int)
0:33 'i3' (temp highp 3-component vector of int)
0:33 bitCount (global highp 3-component vector of int)
0:33 bitCount (global lowp 3-component vector of int, operation at highp)
0:33 'u3' (temp highp 3-component vector of uint)
0:34 move second child to first child (temp highp 2-component vector of int)
0:34 'i2' (temp highp 2-component vector of int)
0:34 findLSB (global highp 2-component vector of int)
0:34 findLSB (global lowp 2-component vector of int, operation at highp)
0:34 'i2' (temp highp 2-component vector of int)
0:35 move second child to first child (temp highp 4-component vector of int)
0:35 'i4' (temp highp 4-component vector of int)
0:35 findLSB (global highp 4-component vector of int)
0:35 findLSB (global lowp 4-component vector of int, operation at highp)
0:35 'u4' (temp highp 4-component vector of uint)
0:36 move second child to first child (temp highp int)
0:36 'i1' (temp highp int)
0:36 findMSB (global highp int)
0:36 findMSB (global lowp int, operation at highp)
0:36 'i1' (temp highp int)
0:37 move second child to first child (temp highp 2-component vector of int)
0:37 'i2' (temp highp 2-component vector of int)
0:37 findMSB (global highp 2-component vector of int)
0:37 findMSB (global lowp 2-component vector of int, operation at highp)
0:37 'u2' (temp highp 2-component vector of uint)
0:40 move second child to first child (temp highp 3-component vector of float)
0:40 'v3' (temp highp 3-component vector of float)
@ -1144,19 +1144,19 @@ ERROR: node is still EOpNull!
0:42 'i2' (temp highp 2-component vector of int)
0:45 move second child to first child (temp highp uint)
0:45 'u1' (temp highp uint)
0:45 PackUnorm4x8 (global highp uint)
0:45 PackUnorm4x8 (global highp uint, operation at mediump)
0:45 'v4' (temp mediump 4-component vector of float)
0:46 move second child to first child (temp highp uint)
0:46 'u1' (temp highp uint)
0:46 PackSnorm4x8 (global highp uint)
0:46 PackSnorm4x8 (global highp uint, operation at mediump)
0:46 'v4' (temp mediump 4-component vector of float)
0:47 move second child to first child (temp highp 4-component vector of float)
0:47 move second child to first child (temp mediump 4-component vector of float)
0:47 'v4' (temp mediump 4-component vector of float)
0:47 UnpackUnorm4x8 (global highp 4-component vector of float)
0:47 UnpackUnorm4x8 (global mediump 4-component vector of float, operation at highp)
0:47 'u1' (temp highp uint)
0:48 move second child to first child (temp highp 4-component vector of float)
0:48 move second child to first child (temp mediump 4-component vector of float)
0:48 'v4' (temp mediump 4-component vector of float)
0:48 UnpackSnorm4x8 (global highp 4-component vector of float)
0:48 UnpackSnorm4x8 (global mediump 4-component vector of float, operation at highp)
0:48 'u1' (temp highp uint)
0:60 Function Definition: foo( (global void)
0:60 Function Parameters:
@ -1271,7 +1271,7 @@ ERROR: node is still EOpNull!
0:165 0.100000
0:165 Convert float to int (temp lowp 2-component vector of int)
0:165 'inf' (in highp 2-component vector of float)
0:166 textureGatherOffsets (global lowp 4-component vector of float)
0:166 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:166 direct index (temp lowp sampler2D)
0:166 'sArray' (uniform 4-element array of lowp sampler2D)
0:166 Constant:
@ -1335,7 +1335,7 @@ ERROR: node is still EOpNull!
0:180 0.100000
0:180 Convert float to int (temp lowp 2-component vector of int)
0:180 'inf' (in highp 2-component vector of float)
0:181 textureGatherOffsets (global lowp 4-component vector of float)
0:181 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:181 direct index (temp lowp sampler2D)
0:181 'sArray' (uniform 4-element array of lowp sampler2D)
0:181 Constant:
@ -1352,7 +1352,7 @@ ERROR: node is still EOpNull!
0:181 0 (const int)
0:181 0 (const int)
0:181 0 (const int)
0:182 textureGatherOffsets (global lowp 4-component vector of float)
0:182 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:182 direct index (temp lowp sampler2D)
0:182 'sArray' (uniform 4-element array of lowp sampler2D)
0:182 Constant:

View File

@ -310,7 +310,7 @@ ERROR: node is still EOpNull!
0:96 1 (const int)
0:98 Constant:
0:98 7 (const int)
0:99 array length (temp highp int)
0:99 array length (temp int)
0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)
0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
@ -622,7 +622,7 @@ ERROR: node is still EOpNull!
0:96 1 (const int)
0:98 Constant:
0:98 7 (const int)
0:99 array length (temp highp int)
0:99 array length (temp int)
0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)
0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})

View File

@ -3,13 +3,288 @@ Warning, version 400 is not yet complete; most version-specific features are pre
ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
ERROR: 3 compilation errors. No code generated.
ERROR: 0:70: 'foo3' : no matching overloaded function found
ERROR: 0:76: 'foo3' : ambiguous best function under implicit type conversion
ERROR: 0:77: 'foo3' : ambiguous best function under implicit type conversion
ERROR: 0:78: 'foo3' : ambiguous best function under implicit type conversion
ERROR: 0:81: 'foo3' : ambiguous best function under implicit type conversion
ERROR: 0:82: 'foo3' : ambiguous best function under implicit type conversion
ERROR: 0:83: 'foo3' : ambiguous best function under implicit type conversion
ERROR: 0:86: 'foo3' : ambiguous best function under implicit type conversion
ERROR: 0:87: 'foo3' : ambiguous best function under implicit type conversion
ERROR: 0:88: 'foo3' : ambiguous best function under implicit type conversion
ERROR: 13 compilation errors. No code generated.
Shader version: 400
ERROR: node is still EOpNull!
0:7 Function Definition: main( (global void)
0:7 Function Parameters:
0:8 Function Definition: foo1(d1;u1; (global void)
0:8 Function Parameters:
0:8 'a' (in double)
0:8 'b' (in uint)
0:9 Function Definition: foo1(d1;i1; (global void)
0:9 Function Parameters:
0:9 'a' (in double)
0:9 'b' (in int)
0:10 Function Definition: foo1(d1;f1; (global void)
0:10 Function Parameters:
0:10 'a' (in double)
0:10 'b' (in float)
0:11 Function Definition: foo1(d1;d1; (global void)
0:11 Function Parameters:
0:11 'a' (in double)
0:11 'b' (in double)
0:13 Function Definition: foo2(d1;f1; (global void)
0:13 Function Parameters:
0:13 'a' (in double)
0:13 'b' (in float)
0:14 Function Definition: foo2(d1;d1; (global void)
0:14 Function Parameters:
0:14 'a' (in double)
0:14 'b' (in double)
0:16 Function Definition: foo3(d1;f1; (global void)
0:16 Function Parameters:
0:16 'a' (in double)
0:16 'b' (in float)
0:17 Function Definition: foo3(f1;d1; (global void)
0:17 Function Parameters:
0:17 'a' (in float)
0:17 'b' (in double)
0:19 Function Definition: ftd(i1;f1;d1; (global void)
0:19 Function Parameters:
0:19 '' (in int)
0:19 '' (in float)
0:19 '' (in double)
0:20 Function Definition: ftd(u1;f1;d1; (global void)
0:20 Function Parameters:
0:20 '' (in uint)
0:20 '' (in float)
0:20 '' (in double)
0:21 Function Definition: ftd(f1;d1;d1; (global void)
0:21 Function Parameters:
0:21 '' (in float)
0:21 '' (in double)
0:21 '' (in double)
0:23 Function Definition: main( (global void)
0:23 Function Parameters:
0:? Sequence
0:30 Function Call: foo1(d1;d1; (global void)
0:30 'd' (temp double)
0:30 'd' (temp double)
0:31 Function Call: foo1(d1;u1; (global void)
0:31 'd' (temp double)
0:31 'u' (temp uint)
0:32 Function Call: foo1(d1;i1; (global void)
0:32 'd' (temp double)
0:32 'i' (temp int)
0:33 Function Call: foo1(d1;f1; (global void)
0:33 'd' (temp double)
0:33 'f' (temp float)
0:35 Function Call: foo1(d1;d1; (global void)
0:35 Convert float to double (temp double)
0:35 'f' (temp float)
0:35 'd' (temp double)
0:36 Function Call: foo1(d1;u1; (global void)
0:36 Convert float to double (temp double)
0:36 'f' (temp float)
0:36 'u' (temp uint)
0:37 Function Call: foo1(d1;i1; (global void)
0:37 Convert float to double (temp double)
0:37 'f' (temp float)
0:37 'i' (temp int)
0:38 Function Call: foo1(d1;f1; (global void)
0:38 Convert float to double (temp double)
0:38 'f' (temp float)
0:38 'f' (temp float)
0:40 Function Call: foo1(d1;d1; (global void)
0:40 Convert uint to double (temp double)
0:40 'u' (temp uint)
0:40 'd' (temp double)
0:41 Function Call: foo1(d1;u1; (global void)
0:41 Convert uint to double (temp double)
0:41 'u' (temp uint)
0:41 'u' (temp uint)
0:42 Function Call: foo1(d1;i1; (global void)
0:42 Convert uint to double (temp double)
0:42 'u' (temp uint)
0:42 'i' (temp int)
0:43 Function Call: foo1(d1;f1; (global void)
0:43 Convert uint to double (temp double)
0:43 'u' (temp uint)
0:43 'f' (temp float)
0:45 Function Call: foo1(d1;d1; (global void)
0:45 Convert int to double (temp double)
0:45 'i' (temp int)
0:45 'd' (temp double)
0:46 Function Call: foo1(d1;u1; (global void)
0:46 Convert int to double (temp double)
0:46 'i' (temp int)
0:46 'u' (temp uint)
0:47 Function Call: foo1(d1;i1; (global void)
0:47 Convert int to double (temp double)
0:47 'i' (temp int)
0:47 'i' (temp int)
0:48 Function Call: foo1(d1;f1; (global void)
0:48 Convert int to double (temp double)
0:48 'i' (temp int)
0:48 'f' (temp float)
0:50 Function Call: foo2(d1;d1; (global void)
0:50 'd' (temp double)
0:50 'd' (temp double)
0:51 Function Call: foo2(d1;f1; (global void)
0:51 'd' (temp double)
0:51 Convert uint to float (temp float)
0:51 'u' (temp uint)
0:52 Function Call: foo2(d1;f1; (global void)
0:52 'd' (temp double)
0:52 Convert int to float (temp float)
0:52 'i' (temp int)
0:53 Function Call: foo2(d1;f1; (global void)
0:53 'd' (temp double)
0:53 'f' (temp float)
0:55 Function Call: foo2(d1;d1; (global void)
0:55 Convert float to double (temp double)
0:55 'f' (temp float)
0:55 'd' (temp double)
0:56 Function Call: foo2(d1;f1; (global void)
0:56 Convert float to double (temp double)
0:56 'f' (temp float)
0:56 Convert uint to float (temp float)
0:56 'u' (temp uint)
0:57 Function Call: foo2(d1;f1; (global void)
0:57 Convert float to double (temp double)
0:57 'f' (temp float)
0:57 Convert int to float (temp float)
0:57 'i' (temp int)
0:58 Function Call: foo2(d1;f1; (global void)
0:58 Convert float to double (temp double)
0:58 'f' (temp float)
0:58 'f' (temp float)
0:60 Function Call: foo2(d1;d1; (global void)
0:60 Convert uint to double (temp double)
0:60 'u' (temp uint)
0:60 'd' (temp double)
0:61 Function Call: foo2(d1;f1; (global void)
0:61 Convert uint to double (temp double)
0:61 'u' (temp uint)
0:61 Convert uint to float (temp float)
0:61 'u' (temp uint)
0:62 Function Call: foo2(d1;f1; (global void)
0:62 Convert uint to double (temp double)
0:62 'u' (temp uint)
0:62 Convert int to float (temp float)
0:62 'i' (temp int)
0:63 Function Call: foo2(d1;f1; (global void)
0:63 Convert uint to double (temp double)
0:63 'u' (temp uint)
0:63 'f' (temp float)
0:65 Function Call: foo2(d1;d1; (global void)
0:65 Convert int to double (temp double)
0:65 'i' (temp int)
0:65 'd' (temp double)
0:66 Function Call: foo2(d1;f1; (global void)
0:66 Convert int to double (temp double)
0:66 'i' (temp int)
0:66 Convert uint to float (temp float)
0:66 'u' (temp uint)
0:67 Function Call: foo2(d1;f1; (global void)
0:67 Convert int to double (temp double)
0:67 'i' (temp int)
0:67 Convert int to float (temp float)
0:67 'i' (temp int)
0:68 Function Call: foo2(d1;f1; (global void)
0:68 Convert int to double (temp double)
0:68 'i' (temp int)
0:68 'f' (temp float)
0:70 Constant:
0:70 0.000000
0:71 Function Call: foo3(d1;f1; (global void)
0:71 'd' (temp double)
0:71 Convert uint to float (temp float)
0:71 'u' (temp uint)
0:72 Function Call: foo3(d1;f1; (global void)
0:72 'd' (temp double)
0:72 Convert int to float (temp float)
0:72 'i' (temp int)
0:73 Function Call: foo3(d1;f1; (global void)
0:73 'd' (temp double)
0:73 'f' (temp float)
0:75 Function Call: foo3(f1;d1; (global void)
0:75 'f' (temp float)
0:75 'd' (temp double)
0:76 Function Call: foo3(d1;f1; (global void)
0:76 Convert float to double (temp double)
0:76 'f' (temp float)
0:76 Convert uint to float (temp float)
0:76 'u' (temp uint)
0:77 Function Call: foo3(d1;f1; (global void)
0:77 Convert float to double (temp double)
0:77 'f' (temp float)
0:77 Convert int to float (temp float)
0:77 'i' (temp int)
0:78 Function Call: foo3(d1;f1; (global void)
0:78 Convert float to double (temp double)
0:78 'f' (temp float)
0:78 'f' (temp float)
0:80 Function Call: foo3(f1;d1; (global void)
0:80 Convert uint to float (temp float)
0:80 'u' (temp uint)
0:80 'd' (temp double)
0:81 Function Call: foo3(d1;f1; (global void)
0:81 Convert uint to double (temp double)
0:81 'u' (temp uint)
0:81 Convert uint to float (temp float)
0:81 'u' (temp uint)
0:82 Function Call: foo3(d1;f1; (global void)
0:82 Convert uint to double (temp double)
0:82 'u' (temp uint)
0:82 Convert int to float (temp float)
0:82 'i' (temp int)
0:83 Function Call: foo3(d1;f1; (global void)
0:83 Convert uint to double (temp double)
0:83 'u' (temp uint)
0:83 'f' (temp float)
0:85 Function Call: foo3(f1;d1; (global void)
0:85 Convert int to float (temp float)
0:85 'i' (temp int)
0:85 'd' (temp double)
0:86 Function Call: foo3(d1;f1; (global void)
0:86 Convert int to double (temp double)
0:86 'i' (temp int)
0:86 Convert uint to float (temp float)
0:86 'u' (temp uint)
0:87 Function Call: foo3(d1;f1; (global void)
0:87 Convert int to double (temp double)
0:87 'i' (temp int)
0:87 Convert int to float (temp float)
0:87 'i' (temp int)
0:88 Function Call: foo3(d1;f1; (global void)
0:88 Convert int to double (temp double)
0:88 'i' (temp int)
0:88 'f' (temp float)
0:90 Function Call: ftd(i1;f1;d1; (global void)
0:90 'i' (temp int)
0:90 'f' (temp float)
0:90 Convert float to double (temp double)
0:90 'f' (temp float)
0:91 Function Call: ftd(u1;f1;d1; (global void)
0:91 'u' (temp uint)
0:91 'f' (temp float)
0:91 Convert float to double (temp double)
0:91 'f' (temp float)
0:97 Function Definition: tf( (global void)
0:97 Function Parameters:
0:? Sequence
0:104 Function Call: itf(i1;f1;i1; (global void)
0:104 'i' (temp int)
0:104 Convert int to float (temp float)
0:104 'i' (temp int)
0:104 'i' (temp int)
0:105 Function Call: itf(i1;f1;i1; (global void)
0:105 'i' (temp int)
0:105 Convert uint to float (temp float)
0:105 'u' (temp uint)
0:105 'i' (temp int)
0:? Linker Objects
0:? 'd' (in double)
0:? 'd3' (in 3-component vector of double)
@ -23,8 +298,273 @@ Linked vertex stage:
Shader version: 400
ERROR: node is still EOpNull!
0:7 Function Definition: main( (global void)
0:7 Function Parameters:
0:8 Function Definition: foo1(d1;u1; (global void)
0:8 Function Parameters:
0:8 'a' (in double)
0:8 'b' (in uint)
0:9 Function Definition: foo1(d1;i1; (global void)
0:9 Function Parameters:
0:9 'a' (in double)
0:9 'b' (in int)
0:10 Function Definition: foo1(d1;f1; (global void)
0:10 Function Parameters:
0:10 'a' (in double)
0:10 'b' (in float)
0:11 Function Definition: foo1(d1;d1; (global void)
0:11 Function Parameters:
0:11 'a' (in double)
0:11 'b' (in double)
0:13 Function Definition: foo2(d1;f1; (global void)
0:13 Function Parameters:
0:13 'a' (in double)
0:13 'b' (in float)
0:14 Function Definition: foo2(d1;d1; (global void)
0:14 Function Parameters:
0:14 'a' (in double)
0:14 'b' (in double)
0:16 Function Definition: foo3(d1;f1; (global void)
0:16 Function Parameters:
0:16 'a' (in double)
0:16 'b' (in float)
0:17 Function Definition: foo3(f1;d1; (global void)
0:17 Function Parameters:
0:17 'a' (in float)
0:17 'b' (in double)
0:19 Function Definition: ftd(i1;f1;d1; (global void)
0:19 Function Parameters:
0:19 '' (in int)
0:19 '' (in float)
0:19 '' (in double)
0:20 Function Definition: ftd(u1;f1;d1; (global void)
0:20 Function Parameters:
0:20 '' (in uint)
0:20 '' (in float)
0:20 '' (in double)
0:21 Function Definition: ftd(f1;d1;d1; (global void)
0:21 Function Parameters:
0:21 '' (in float)
0:21 '' (in double)
0:21 '' (in double)
0:23 Function Definition: main( (global void)
0:23 Function Parameters:
0:? Sequence
0:30 Function Call: foo1(d1;d1; (global void)
0:30 'd' (temp double)
0:30 'd' (temp double)
0:31 Function Call: foo1(d1;u1; (global void)
0:31 'd' (temp double)
0:31 'u' (temp uint)
0:32 Function Call: foo1(d1;i1; (global void)
0:32 'd' (temp double)
0:32 'i' (temp int)
0:33 Function Call: foo1(d1;f1; (global void)
0:33 'd' (temp double)
0:33 'f' (temp float)
0:35 Function Call: foo1(d1;d1; (global void)
0:35 Convert float to double (temp double)
0:35 'f' (temp float)
0:35 'd' (temp double)
0:36 Function Call: foo1(d1;u1; (global void)
0:36 Convert float to double (temp double)
0:36 'f' (temp float)
0:36 'u' (temp uint)
0:37 Function Call: foo1(d1;i1; (global void)
0:37 Convert float to double (temp double)
0:37 'f' (temp float)
0:37 'i' (temp int)
0:38 Function Call: foo1(d1;f1; (global void)
0:38 Convert float to double (temp double)
0:38 'f' (temp float)
0:38 'f' (temp float)
0:40 Function Call: foo1(d1;d1; (global void)
0:40 Convert uint to double (temp double)
0:40 'u' (temp uint)
0:40 'd' (temp double)
0:41 Function Call: foo1(d1;u1; (global void)
0:41 Convert uint to double (temp double)
0:41 'u' (temp uint)
0:41 'u' (temp uint)
0:42 Function Call: foo1(d1;i1; (global void)
0:42 Convert uint to double (temp double)
0:42 'u' (temp uint)
0:42 'i' (temp int)
0:43 Function Call: foo1(d1;f1; (global void)
0:43 Convert uint to double (temp double)
0:43 'u' (temp uint)
0:43 'f' (temp float)
0:45 Function Call: foo1(d1;d1; (global void)
0:45 Convert int to double (temp double)
0:45 'i' (temp int)
0:45 'd' (temp double)
0:46 Function Call: foo1(d1;u1; (global void)
0:46 Convert int to double (temp double)
0:46 'i' (temp int)
0:46 'u' (temp uint)
0:47 Function Call: foo1(d1;i1; (global void)
0:47 Convert int to double (temp double)
0:47 'i' (temp int)
0:47 'i' (temp int)
0:48 Function Call: foo1(d1;f1; (global void)
0:48 Convert int to double (temp double)
0:48 'i' (temp int)
0:48 'f' (temp float)
0:50 Function Call: foo2(d1;d1; (global void)
0:50 'd' (temp double)
0:50 'd' (temp double)
0:51 Function Call: foo2(d1;f1; (global void)
0:51 'd' (temp double)
0:51 Convert uint to float (temp float)
0:51 'u' (temp uint)
0:52 Function Call: foo2(d1;f1; (global void)
0:52 'd' (temp double)
0:52 Convert int to float (temp float)
0:52 'i' (temp int)
0:53 Function Call: foo2(d1;f1; (global void)
0:53 'd' (temp double)
0:53 'f' (temp float)
0:55 Function Call: foo2(d1;d1; (global void)
0:55 Convert float to double (temp double)
0:55 'f' (temp float)
0:55 'd' (temp double)
0:56 Function Call: foo2(d1;f1; (global void)
0:56 Convert float to double (temp double)
0:56 'f' (temp float)
0:56 Convert uint to float (temp float)
0:56 'u' (temp uint)
0:57 Function Call: foo2(d1;f1; (global void)
0:57 Convert float to double (temp double)
0:57 'f' (temp float)
0:57 Convert int to float (temp float)
0:57 'i' (temp int)
0:58 Function Call: foo2(d1;f1; (global void)
0:58 Convert float to double (temp double)
0:58 'f' (temp float)
0:58 'f' (temp float)
0:60 Function Call: foo2(d1;d1; (global void)
0:60 Convert uint to double (temp double)
0:60 'u' (temp uint)
0:60 'd' (temp double)
0:61 Function Call: foo2(d1;f1; (global void)
0:61 Convert uint to double (temp double)
0:61 'u' (temp uint)
0:61 Convert uint to float (temp float)
0:61 'u' (temp uint)
0:62 Function Call: foo2(d1;f1; (global void)
0:62 Convert uint to double (temp double)
0:62 'u' (temp uint)
0:62 Convert int to float (temp float)
0:62 'i' (temp int)
0:63 Function Call: foo2(d1;f1; (global void)
0:63 Convert uint to double (temp double)
0:63 'u' (temp uint)
0:63 'f' (temp float)
0:65 Function Call: foo2(d1;d1; (global void)
0:65 Convert int to double (temp double)
0:65 'i' (temp int)
0:65 'd' (temp double)
0:66 Function Call: foo2(d1;f1; (global void)
0:66 Convert int to double (temp double)
0:66 'i' (temp int)
0:66 Convert uint to float (temp float)
0:66 'u' (temp uint)
0:67 Function Call: foo2(d1;f1; (global void)
0:67 Convert int to double (temp double)
0:67 'i' (temp int)
0:67 Convert int to float (temp float)
0:67 'i' (temp int)
0:68 Function Call: foo2(d1;f1; (global void)
0:68 Convert int to double (temp double)
0:68 'i' (temp int)
0:68 'f' (temp float)
0:70 Constant:
0:70 0.000000
0:71 Function Call: foo3(d1;f1; (global void)
0:71 'd' (temp double)
0:71 Convert uint to float (temp float)
0:71 'u' (temp uint)
0:72 Function Call: foo3(d1;f1; (global void)
0:72 'd' (temp double)
0:72 Convert int to float (temp float)
0:72 'i' (temp int)
0:73 Function Call: foo3(d1;f1; (global void)
0:73 'd' (temp double)
0:73 'f' (temp float)
0:75 Function Call: foo3(f1;d1; (global void)
0:75 'f' (temp float)
0:75 'd' (temp double)
0:76 Function Call: foo3(d1;f1; (global void)
0:76 Convert float to double (temp double)
0:76 'f' (temp float)
0:76 Convert uint to float (temp float)
0:76 'u' (temp uint)
0:77 Function Call: foo3(d1;f1; (global void)
0:77 Convert float to double (temp double)
0:77 'f' (temp float)
0:77 Convert int to float (temp float)
0:77 'i' (temp int)
0:78 Function Call: foo3(d1;f1; (global void)
0:78 Convert float to double (temp double)
0:78 'f' (temp float)
0:78 'f' (temp float)
0:80 Function Call: foo3(f1;d1; (global void)
0:80 Convert uint to float (temp float)
0:80 'u' (temp uint)
0:80 'd' (temp double)
0:81 Function Call: foo3(d1;f1; (global void)
0:81 Convert uint to double (temp double)
0:81 'u' (temp uint)
0:81 Convert uint to float (temp float)
0:81 'u' (temp uint)
0:82 Function Call: foo3(d1;f1; (global void)
0:82 Convert uint to double (temp double)
0:82 'u' (temp uint)
0:82 Convert int to float (temp float)
0:82 'i' (temp int)
0:83 Function Call: foo3(d1;f1; (global void)
0:83 Convert uint to double (temp double)
0:83 'u' (temp uint)
0:83 'f' (temp float)
0:85 Function Call: foo3(f1;d1; (global void)
0:85 Convert int to float (temp float)
0:85 'i' (temp int)
0:85 'd' (temp double)
0:86 Function Call: foo3(d1;f1; (global void)
0:86 Convert int to double (temp double)
0:86 'i' (temp int)
0:86 Convert uint to float (temp float)
0:86 'u' (temp uint)
0:87 Function Call: foo3(d1;f1; (global void)
0:87 Convert int to double (temp double)
0:87 'i' (temp int)
0:87 Convert int to float (temp float)
0:87 'i' (temp int)
0:88 Function Call: foo3(d1;f1; (global void)
0:88 Convert int to double (temp double)
0:88 'i' (temp int)
0:88 'f' (temp float)
0:90 Function Call: ftd(i1;f1;d1; (global void)
0:90 'i' (temp int)
0:90 'f' (temp float)
0:90 Convert float to double (temp double)
0:90 'f' (temp float)
0:91 Function Call: ftd(u1;f1;d1; (global void)
0:91 'u' (temp uint)
0:91 'f' (temp float)
0:91 Convert float to double (temp double)
0:91 'f' (temp float)
0:97 Function Definition: tf( (global void)
0:97 Function Parameters:
0:? Sequence
0:104 Function Call: itf(i1;f1;i1; (global void)
0:104 'i' (temp int)
0:104 Convert int to float (temp float)
0:104 'i' (temp int)
0:104 'i' (temp int)
0:105 Function Call: itf(i1;f1;i1; (global void)
0:105 'i' (temp int)
0:105 Convert uint to float (temp float)
0:105 'u' (temp uint)
0:105 'i' (temp int)
0:? Linker Objects
0:? 'd' (in double)
0:? 'd3' (in 3-component vector of double)

View File

@ -3,6 +3,7 @@ Warning, version 420 is not yet complete; most version-specific features are pre
ERROR: 0:4: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
ERROR: 0:11: 'layout qualifier' : can only apply depth layout to gl_FragDepth
ERROR: 0:12: 'gl_FragDepth' : cannot redeclare after use
WARNING: 0:14: 'atomic_uint' : implicitly sized atomic_uint array treated as having one element for tracking the default offset
ERROR: 3 compilation errors. No code generated.
@ -20,6 +21,7 @@ ERROR: node is still EOpNull!
0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
0:? 'depth' (smooth in float)
0:? 'a' (layout(binding=0 offset=0 ) uniform implicitly-sized array of atomic_uint)
Linked fragment stage:
@ -39,4 +41,5 @@ ERROR: node is still EOpNull!
0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
0:? 'depth' (smooth in float)
0:? 'a' (layout(binding=0 offset=0 ) uniform 1-element array of atomic_uint)

View File

@ -132,7 +132,7 @@ ERROR: node is still EOpNull!
Linked geometry stage:
ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point
ERROR: Linking geometry stage: Missing entry point: Each stage requires one entry point
ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)

View File

@ -12,7 +12,7 @@ ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot con
ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'
ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float
ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'temp structure{global float s, global float t}'
ERROR: 0:58: 'initializer list' : wrong number of structure members
ERROR: 0:70: 'initializer list' : wrong number of structure members
ERROR: 13 compilation errors. No code generated.
@ -50,51 +50,73 @@ ERROR: node is still EOpNull!
0:42 5.000000
0:42 5.200000
0:42 1.100000
0:67 Sequence
0:67 move second child to first child (temp 3-component vector of float)
0:67 'av3' (global 3-component vector of float)
0:67 Construct vec3 (global 3-component vector of float)
0:67 'vc1' (global float)
0:67 'vc2' (global float)
0:67 'vc3' (global float)
0:68 Sequence
0:68 move second child to first child (temp 3-component vector of float)
0:68 'bv3' (global 3-component vector of float)
0:68 Construct vec3 (temp 3-component vector of float)
0:68 'vc1' (global float)
0:68 'vc2' (global float)
0:68 'vc3' (global float)
0:70 Function Definition: main( (global void)
0:70 Function Parameters:
0:72 Sequence
0:72 MemoryBarrier (global void)
0:74 Test condition and select (temp void)
0:74 Condition
0:74 Compare Equal (temp bool)
0:74 Constant:
0:74 1 (const uint)
0:74 2 (const uint)
0:74 3.000000
0:74 4.000000
0:74 0.000000
0:74 0.000000
0:74 0.000000
0:74 4.000000
0:74 0.000000
0:74 5.000000
0:74 6.000000
0:74 0.000000
0:74 0.000000
0:74 0.000000
0:74 6.000000
0:74 0.000000
0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:74 true case is null
0:76 Test condition and select (temp void)
0:76 Condition
0:76 Constant:
0:76 true (const bool)
0:76 true case is null
0:55 Sequence
0:55 move second child to first child (temp structure{global int f})
0:55 'single1' (global structure{global int f})
0:55 Constant:
0:55 10 (const int)
0:58 Sequence
0:58 move second child to first child (temp structure{global 2-component vector of uint v})
0:58 'single2' (global structure{global 2-component vector of uint v})
0:58 Constant:
0:58 1 (const uint)
0:58 2 (const uint)
0:61 Sequence
0:61 move second child to first child (temp structure{global structure{global int f} s1})
0:61 'single3' (global structure{global structure{global int f} s1})
0:61 Constant:
0:61 3 (const int)
0:64 Sequence
0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1})
0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:64 Constant:
0:64 4 (const uint)
0:64 5 (const uint)
0:79 Sequence
0:79 move second child to first child (temp 3-component vector of float)
0:79 'av3' (global 3-component vector of float)
0:79 Construct vec3 (global 3-component vector of float)
0:79 'vc1' (global float)
0:79 'vc2' (global float)
0:79 'vc3' (global float)
0:80 Sequence
0:80 move second child to first child (temp 3-component vector of float)
0:80 'bv3' (global 3-component vector of float)
0:80 Construct vec3 (temp 3-component vector of float)
0:80 'vc1' (global float)
0:80 'vc2' (global float)
0:80 'vc3' (global float)
0:82 Function Definition: main( (global void)
0:82 Function Parameters:
0:84 Sequence
0:84 MemoryBarrier (global void)
0:86 Test condition and select (temp void)
0:86 Condition
0:86 Compare Equal (temp bool)
0:86 Constant:
0:86 1 (const uint)
0:86 2 (const uint)
0:86 3.000000
0:86 4.000000
0:86 0.000000
0:86 0.000000
0:86 0.000000
0:86 4.000000
0:86 0.000000
0:86 5.000000
0:86 6.000000
0:86 0.000000
0:86 0.000000
0:86 0.000000
0:86 6.000000
0:86 0.000000
0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:86 true case is null
0:88 Test condition and select (temp void)
0:88 Condition
0:88 Constant:
0:88 true (const bool)
0:88 true case is null
0:? Linker Objects
0:? 'a' (const 2X2 matrix of float)
0:? 1.000000
@ -120,6 +142,10 @@ ERROR: node is still EOpNull!
0:? 'c3' (global 4X2 matrix of float)
0:? 'd2' (global implicitly-sized array of structure{global float s, global float t})
0:? 'b5' (global 5-element array of float)
0:? 'single1' (global structure{global int f})
0:? 'single2' (global structure{global 2-component vector of uint v})
0:? 'single3' (global structure{global structure{global int f} s1})
0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:? 1 (const uint)
0:? 2 (const uint)
@ -200,51 +226,73 @@ ERROR: node is still EOpNull!
0:42 5.000000
0:42 5.200000
0:42 1.100000
0:67 Sequence
0:67 move second child to first child (temp 3-component vector of float)
0:67 'av3' (global 3-component vector of float)
0:67 Construct vec3 (global 3-component vector of float)
0:67 'vc1' (global float)
0:67 'vc2' (global float)
0:67 'vc3' (global float)
0:68 Sequence
0:68 move second child to first child (temp 3-component vector of float)
0:68 'bv3' (global 3-component vector of float)
0:68 Construct vec3 (temp 3-component vector of float)
0:68 'vc1' (global float)
0:68 'vc2' (global float)
0:68 'vc3' (global float)
0:70 Function Definition: main( (global void)
0:70 Function Parameters:
0:72 Sequence
0:72 MemoryBarrier (global void)
0:74 Test condition and select (temp void)
0:74 Condition
0:74 Compare Equal (temp bool)
0:74 Constant:
0:74 1 (const uint)
0:74 2 (const uint)
0:74 3.000000
0:74 4.000000
0:74 0.000000
0:74 0.000000
0:74 0.000000
0:74 4.000000
0:74 0.000000
0:74 5.000000
0:74 6.000000
0:74 0.000000
0:74 0.000000
0:74 0.000000
0:74 6.000000
0:74 0.000000
0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:74 true case is null
0:76 Test condition and select (temp void)
0:76 Condition
0:76 Constant:
0:76 true (const bool)
0:76 true case is null
0:55 Sequence
0:55 move second child to first child (temp structure{global int f})
0:55 'single1' (global structure{global int f})
0:55 Constant:
0:55 10 (const int)
0:58 Sequence
0:58 move second child to first child (temp structure{global 2-component vector of uint v})
0:58 'single2' (global structure{global 2-component vector of uint v})
0:58 Constant:
0:58 1 (const uint)
0:58 2 (const uint)
0:61 Sequence
0:61 move second child to first child (temp structure{global structure{global int f} s1})
0:61 'single3' (global structure{global structure{global int f} s1})
0:61 Constant:
0:61 3 (const int)
0:64 Sequence
0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1})
0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:64 Constant:
0:64 4 (const uint)
0:64 5 (const uint)
0:79 Sequence
0:79 move second child to first child (temp 3-component vector of float)
0:79 'av3' (global 3-component vector of float)
0:79 Construct vec3 (global 3-component vector of float)
0:79 'vc1' (global float)
0:79 'vc2' (global float)
0:79 'vc3' (global float)
0:80 Sequence
0:80 move second child to first child (temp 3-component vector of float)
0:80 'bv3' (global 3-component vector of float)
0:80 Construct vec3 (temp 3-component vector of float)
0:80 'vc1' (global float)
0:80 'vc2' (global float)
0:80 'vc3' (global float)
0:82 Function Definition: main( (global void)
0:82 Function Parameters:
0:84 Sequence
0:84 MemoryBarrier (global void)
0:86 Test condition and select (temp void)
0:86 Condition
0:86 Compare Equal (temp bool)
0:86 Constant:
0:86 1 (const uint)
0:86 2 (const uint)
0:86 3.000000
0:86 4.000000
0:86 0.000000
0:86 0.000000
0:86 0.000000
0:86 4.000000
0:86 0.000000
0:86 5.000000
0:86 6.000000
0:86 0.000000
0:86 0.000000
0:86 0.000000
0:86 6.000000
0:86 0.000000
0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:86 true case is null
0:88 Test condition and select (temp void)
0:88 Condition
0:88 Constant:
0:88 true (const bool)
0:88 true case is null
0:? Linker Objects
0:? 'a' (const 2X2 matrix of float)
0:? 1.000000
@ -270,6 +318,10 @@ ERROR: node is still EOpNull!
0:? 'c3' (global 4X2 matrix of float)
0:? 'd2' (global 1-element array of structure{global float s, global float t})
0:? 'b5' (global 5-element array of float)
0:? 'single1' (global structure{global int f})
0:? 'single2' (global structure{global 2-component vector of uint v})
0:? 'single3' (global structure{global structure{global int f} s1})
0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:? 1 (const uint)
0:? 2 (const uint)

View File

@ -4,7 +4,7 @@ ERROR: 0:2: '#version' : must occur first in shader
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420
ERROR: 0:7: '' : vertex input cannot be further qualified
ERROR: 0:11: '' : can only have one interpolation qualifier (flat, smooth, noperspective)
ERROR: 0:11: '' : can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD)
ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
ERROR: 0:13: 'uniform' : too many storage qualifiers
ERROR: 0:18: '=' : global const initializers must be constant 'const int'
@ -51,6 +51,7 @@ 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.
@ -299,6 +300,7 @@ ERROR: node is still EOpNull!
0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})
0:? 'samp1D' (uniform sampler1D)
0:? 'samp1Ds' (uniform sampler1DShadow)
0:? 'badArray' (layout(binding=0 ) writeonly uniform implicitly-sized array of image1D)
0:? 'gl_VertexID' (gl_VertexId int VertexId)
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
@ -551,6 +553,7 @@ ERROR: node is still EOpNull!
0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})
0:? 'samp1D' (uniform sampler1D)
0:? 'samp1Ds' (uniform sampler1DShadow)
0:? 'badArray' (layout(binding=0 ) writeonly uniform 1-element array of image1D)
0:? 'gl_VertexID' (gl_VertexId int VertexId)
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)

View File

@ -39,7 +39,7 @@ ERROR: node is still EOpNull!
Linked geometry stage:
ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point
ERROR: Linking geometry stage: Missing entry point: Each stage requires one entry point
ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)

View File

@ -266,7 +266,7 @@ ERROR: node is still EOpNull!
Linked vertex stage:
ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point
ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point
ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries:
ERROR: xfb_buffer 3, xfb_stride 64, minimum stride needed: 80

View File

@ -122,7 +122,7 @@ ERROR: node is still EOpNull!
Linked fragment stage:
ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point
Shader version: 440
ERROR: node is still EOpNull!

View File

@ -19,74 +19,79 @@ ERROR: 0:55: 'component' : type overflows the available 4 components
ERROR: 0:57: 'component' : cannot apply to a matrix, structure, or block
ERROR: 0:58: 'component' : cannot apply to a matrix, structure, or block
ERROR: 0:61: 'location/component/index' : cannot declare a default, use a full declaration
ERROR: 0:81: 'xfb layout qualifier' : can only be used on an output
ERROR: 0:87: 'xfb_offset' : cannot declare a default, use a full declaration
ERROR: 0:97: 'xfb_buffer' : member cannot contradict block (or what block inherited from global)
ERROR: 0:102: 'xfb_buffer' : member cannot contradict block (or what block inherited from global)
ERROR: 0:102: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3
ERROR: 0:103: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2
ERROR: 0:105: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2
ERROR: 0:108: 'xfb_stride' : all stride settings must match for xfb buffer 15
ERROR: 0:112: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1
ERROR: 0:114: 'xfb_stride' : all stride settings must match for xfb buffer 3
ERROR: 0:115: 'xfb_stride' : all stride settings must match for xfb buffer 3
ERROR: 0:119: 'xfb_stride' : all stride settings must match for xfb buffer 3
ERROR: 0:117: 'xfb_stride' : all stride settings must match for xfb buffer 3
ERROR: 0:138: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0
ERROR: 0:143: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
ERROR: 0:144: 'xfb_offset' : must be a multiple of size of first component
ERROR: 0:145: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8
ERROR: 0:147: 'xfb_offset' : must be a multiple of size of first component
ERROR: 0:148: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8
ERROR: 0:152: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
ERROR: 0:155: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
ERROR: 0:155: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64
ERROR: 0:66: 'component' : doubles cannot start on an odd-numbered component
ERROR: 0:67: 'component' : type overflows the available 4 components
ERROR: 0:71: 'location' : overlapping use of location 55
ERROR: 0:75: 'location' : overlapping use of location 57
ERROR: 0:78: 'location' : overlapping use of location 59
ERROR: 0:95: 'xfb layout qualifier' : can only be used on an output
ERROR: 0:101: 'xfb_offset' : cannot declare a default, use a full declaration
ERROR: 0:111: 'xfb_buffer' : member cannot contradict block (or what block inherited from global)
ERROR: 0:116: 'xfb_buffer' : member cannot contradict block (or what block inherited from global)
ERROR: 0:116: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3
ERROR: 0:117: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2
ERROR: 0:119: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2
ERROR: 0:122: 'xfb_stride' : all stride settings must match for xfb buffer 15
ERROR: 0:126: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1
ERROR: 0:128: 'xfb_stride' : all stride settings must match for xfb buffer 3
ERROR: 0:129: 'xfb_stride' : all stride settings must match for xfb buffer 3
ERROR: 0:133: 'xfb_stride' : all stride settings must match for xfb buffer 3
ERROR: 0:131: 'xfb_stride' : all stride settings must match for xfb buffer 3
ERROR: 0:152: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0
ERROR: 0:157: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
ERROR: 0:165: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters
ERROR: 0:165: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters
ERROR: 0:165: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters
ERROR: 0:173: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input)
ERROR: 0:174: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input)
ERROR: 0:175: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input)
ERROR: 0:176: 'glBaseInstanceARB' : undeclared identifier
ERROR: 49 compilation errors. No code generated.
ERROR: 0:158: 'xfb_offset' : must be a multiple of size of first component
ERROR: 0:159: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8
ERROR: 0:161: 'xfb_offset' : must be a multiple of size of first component
ERROR: 0:162: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8
ERROR: 0:166: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
ERROR: 0:169: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
ERROR: 0:169: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64
ERROR: 0:171: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
ERROR: 0:179: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters
ERROR: 0:179: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters
ERROR: 0:179: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters
ERROR: 0:187: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input)
ERROR: 0:188: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input)
ERROR: 0:189: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input)
ERROR: 0:190: 'glBaseInstanceARB' : undeclared identifier
ERROR: 54 compilation errors. No code generated.
Shader version: 440
Requested GL_ARB_shader_draw_parameters
in xfb mode
ERROR: node is still EOpNull!
0:163 Function Definition: drawParamsBad( (global int)
0:163 Function Parameters:
0:165 Sequence
0:165 Branch: Return with expression
0:165 add (temp int)
0:165 add (temp int)
0:165 'gl_BaseVertexARB' (in int BaseVertex)
0:165 'gl_BaseInstanceARB' (in int BaseInstance)
0:165 'gl_DrawIDARB' (in int DrawId)
0:170 Function Definition: drawParams( (global int)
0:170 Function Parameters:
0:172 Sequence
0:172 Branch: Return with expression
0:172 add (temp int)
0:172 add (temp int)
0:172 'gl_BaseVertexARB' (in int BaseVertex)
0:172 'gl_BaseInstanceARB' (in int BaseInstance)
0:172 'gl_DrawIDARB' (in int DrawId)
0:173 move second child to first child (temp int)
0:173 'gl_BaseVertexARB' (in int BaseVertex)
0:173 Constant:
0:173 3 (const int)
0:174 move second child to first child (temp int)
0:174 'gl_BaseInstanceARB' (in int BaseInstance)
0:174 Constant:
0:174 3 (const int)
0:175 move second child to first child (temp int)
0:175 'gl_DrawIDARB' (in int DrawId)
0:175 Constant:
0:175 3 (const int)
0:176 'glBaseInstanceARB' (temp float)
0:177 Function Definition: drawParamsBad( (global int)
0:177 Function Parameters:
0:179 Sequence
0:179 Branch: Return with expression
0:179 add (temp int)
0:179 add (temp int)
0:179 'gl_BaseVertexARB' (in int BaseVertex)
0:179 'gl_BaseInstanceARB' (in int BaseInstance)
0:179 'gl_DrawIDARB' (in int DrawId)
0:184 Function Definition: drawParams( (global int)
0:184 Function Parameters:
0:186 Sequence
0:186 Branch: Return with expression
0:186 add (temp int)
0:186 add (temp int)
0:186 'gl_BaseVertexARB' (in int BaseVertex)
0:186 'gl_BaseInstanceARB' (in int BaseInstance)
0:186 'gl_DrawIDARB' (in int DrawId)
0:187 move second child to first child (temp int)
0:187 'gl_BaseVertexARB' (in int BaseVertex)
0:187 Constant:
0:187 3 (const int)
0:188 move second child to first child (temp int)
0:188 'gl_BaseInstanceARB' (in int BaseInstance)
0:188 Constant:
0:188 3 (const int)
0:189 move second child to first child (temp int)
0:189 'gl_DrawIDARB' (in int DrawId)
0:189 Constant:
0:189 3 (const int)
0:190 'glBaseInstanceARB' (temp float)
0:? Linker Objects
0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float)
0:? 'b' (layout(location=2 component=1 ) in float)
@ -119,6 +124,19 @@ ERROR: node is still EOpNull!
0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss})
0:? 'be' (layout(location=50 component=3 ) smooth out int)
0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)
0:? 'dfo' (layout(location=51 component=1 ) smooth out double)
0:? 'dvo' (layout(location=52 component=2 ) smooth out 2-component vector of double)
0:? 'dfo2' (layout(location=53 ) smooth out double)
0:? 'ffv2' (layout(location=53 component=2 ) smooth out 2-component vector of float)
0:? 'dvec4out' (layout(location=54 ) smooth out 4-component vector of double)
0:? 'overf' (layout(location=55 ) smooth out float)
0:? 'df2o' (layout(location=56 component=1 ) smooth out 2-component vector of float)
0:? 'sf2o' (layout(location=56 component=3 ) smooth out float)
0:? 'dv3o' (layout(location=57 component=2 ) smooth out 2-component vector of float)
0:? 'sf4o' (layout(location=57 component=3 ) smooth out float)
0:? 'dv3o2' (layout(location=58 ) flat out 3-component vector of double)
0:? 'dfo3' (layout(location=59 component=2 ) flat out double)
0:? 'dfo4' (layout(location=59 component=0 ) flat out double)
0:? 'bbinst1' (out block{out 4-component vector of float bbv})
0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
0:? 'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv})
@ -142,7 +160,7 @@ ERROR: node is still EOpNull!
Linked vertex stage:
ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point
ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point
ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries:
ERROR: xfb_buffer 0, xfb_stride 92, minimum stride needed: 96
ERROR: Linking vertex stage: xfb_stride must be multiple of 8 for buffer holding a double:
@ -156,37 +174,37 @@ Shader version: 440
Requested GL_ARB_shader_draw_parameters
in xfb mode
ERROR: node is still EOpNull!
0:163 Function Definition: drawParamsBad( (global int)
0:163 Function Parameters:
0:165 Sequence
0:165 Branch: Return with expression
0:165 add (temp int)
0:165 add (temp int)
0:165 'gl_BaseVertexARB' (in int BaseVertex)
0:165 'gl_BaseInstanceARB' (in int BaseInstance)
0:165 'gl_DrawIDARB' (in int DrawId)
0:170 Function Definition: drawParams( (global int)
0:170 Function Parameters:
0:172 Sequence
0:172 Branch: Return with expression
0:172 add (temp int)
0:172 add (temp int)
0:172 'gl_BaseVertexARB' (in int BaseVertex)
0:172 'gl_BaseInstanceARB' (in int BaseInstance)
0:172 'gl_DrawIDARB' (in int DrawId)
0:173 move second child to first child (temp int)
0:173 'gl_BaseVertexARB' (in int BaseVertex)
0:173 Constant:
0:173 3 (const int)
0:174 move second child to first child (temp int)
0:174 'gl_BaseInstanceARB' (in int BaseInstance)
0:174 Constant:
0:174 3 (const int)
0:175 move second child to first child (temp int)
0:175 'gl_DrawIDARB' (in int DrawId)
0:175 Constant:
0:175 3 (const int)
0:176 'glBaseInstanceARB' (temp float)
0:177 Function Definition: drawParamsBad( (global int)
0:177 Function Parameters:
0:179 Sequence
0:179 Branch: Return with expression
0:179 add (temp int)
0:179 add (temp int)
0:179 'gl_BaseVertexARB' (in int BaseVertex)
0:179 'gl_BaseInstanceARB' (in int BaseInstance)
0:179 'gl_DrawIDARB' (in int DrawId)
0:184 Function Definition: drawParams( (global int)
0:184 Function Parameters:
0:186 Sequence
0:186 Branch: Return with expression
0:186 add (temp int)
0:186 add (temp int)
0:186 'gl_BaseVertexARB' (in int BaseVertex)
0:186 'gl_BaseInstanceARB' (in int BaseInstance)
0:186 'gl_DrawIDARB' (in int DrawId)
0:187 move second child to first child (temp int)
0:187 'gl_BaseVertexARB' (in int BaseVertex)
0:187 Constant:
0:187 3 (const int)
0:188 move second child to first child (temp int)
0:188 'gl_BaseInstanceARB' (in int BaseInstance)
0:188 Constant:
0:188 3 (const int)
0:189 move second child to first child (temp int)
0:189 'gl_DrawIDARB' (in int DrawId)
0:189 Constant:
0:189 3 (const int)
0:190 'glBaseInstanceARB' (temp float)
0:? Linker Objects
0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float)
0:? 'b' (layout(location=2 component=1 ) in float)
@ -219,6 +237,19 @@ ERROR: node is still EOpNull!
0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss})
0:? 'be' (layout(location=50 component=3 ) smooth out int)
0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)
0:? 'dfo' (layout(location=51 component=1 ) smooth out double)
0:? 'dvo' (layout(location=52 component=2 ) smooth out 2-component vector of double)
0:? 'dfo2' (layout(location=53 ) smooth out double)
0:? 'ffv2' (layout(location=53 component=2 ) smooth out 2-component vector of float)
0:? 'dvec4out' (layout(location=54 ) smooth out 4-component vector of double)
0:? 'overf' (layout(location=55 ) smooth out float)
0:? 'df2o' (layout(location=56 component=1 ) smooth out 2-component vector of float)
0:? 'sf2o' (layout(location=56 component=3 ) smooth out float)
0:? 'dv3o' (layout(location=57 component=2 ) smooth out 2-component vector of float)
0:? 'sf4o' (layout(location=57 component=3 ) smooth out float)
0:? 'dv3o2' (layout(location=58 ) flat out 3-component vector of double)
0:? 'dfo3' (layout(location=59 component=2 ) flat out double)
0:? 'dfo4' (layout(location=59 component=0 ) flat out double)
0:? 'bbinst1' (out block{out 4-component vector of float bbv})
0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
0:? 'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv})

View File

@ -9,7 +9,7 @@ local_size = (1, 1, 1)
Linked compute stage:
ERROR: Linking compute stage: Missing entry point: Each stage requires one "void main()" entry point
ERROR: Linking compute stage: Missing entry point: Each stage requires one entry point
Shader version: 450
local_size = (1, 1, 1)

View File

@ -17,7 +17,7 @@ ERROR: node is still EOpNull!
Linked fragment stage:
ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point
Shader version: 100
ERROR: node is still EOpNull!

View File

@ -0,0 +1,7 @@
badMacroArgs.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:4: 'macro expansion' : Too few args in Macro m
ERROR: 0:4: '' : compilation terminated
ERROR: 2 compilation errors. No code generated.

View File

@ -0,0 +1,22 @@
cppBad.vert
ERROR: 0:2: 'preprocessor evaluation' : bad expression
ERROR: 0:2: '#if' : unexpected tokens following directive
ERROR: 0:5: 'string' : End of line in string
ERROR: 0:5: 'macro expansion' : expected '(' following n
ERROR: 0:5: '' : syntax error
ERROR: 5 compilation errors. No code generated.
Shader version: 100
ERROR: node is still EOpNull!
0:? Linker Objects
Linked vertex stage:
ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point
Shader version: 100
ERROR: node is still EOpNull!
0:? Linker Objects

View File

@ -4,7 +4,7 @@ ERROR: 0:152: '#else' : #else after #else
ERROR: 0:161: '#elif' : #elif after #else
ERROR: 0:169: '#else' : #else after #else
ERROR: 0:177: 'macro expansion' : End of input in macro FUNC
ERROR: 0:178: '' : syntax error
ERROR: 0:178: '' : compilation terminated
ERROR: 6 compilation errors. No code generated.

View File

@ -138,7 +138,7 @@ Shader version: 400
Linked fragment stage:
ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point
Shader version: 400
0:? Sequence

View File

@ -1,6 +1,6 @@
errors.frag
ERROR: 0:1: 'main' : function cannot take any parameter(s)
ERROR: 0:1: 'int' : main function cannot return a value
ERROR: 0:1: 'int' : entry point cannot return a value
ERROR: 2 compilation errors. No code generated.

View File

@ -0,0 +1,207 @@
hlsl.amend.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: f1( (temp void)
0:5 Function Parameters:
0:? Sequence
0:6 vector-scale (temp 4-component vector of float)
0:6 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float)
0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:6 Constant:
0:6 0 (const uint)
0:6 b: direct index for structure (layout(offset=16 ) uniform float)
0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:6 Constant:
0:6 1 (const uint)
0:12 Function Definition: f2( (temp void)
0:12 Function Parameters:
0:? Sequence
0:13 add (temp float)
0:13 add (temp float)
0:13 direct index (temp float)
0:13 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float)
0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:13 Constant:
0:13 0 (const uint)
0:13 Constant:
0:13 0 (const int)
0:13 b: direct index for structure (layout(offset=16 ) uniform float)
0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:13 Constant:
0:13 1 (const uint)
0:13 direct index (temp float)
0:13 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:13 Constant:
0:13 2 (const uint)
0:13 Constant:
0:13 0 (const int)
0:17 Function Definition: f3( (temp void)
0:17 Function Parameters:
0:? Sequence
0:18 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:18 Constant:
0:18 2 (const uint)
0:24 Function Definition: f4( (temp void)
0:24 Function Parameters:
0:? Sequence
0:25 vector-scale (temp 4-component vector of float)
0:25 Convert int to float (temp float)
0:25 d: direct index for structure (layout(offset=44 ) uniform int)
0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:25 Constant:
0:25 3 (const uint)
0:25 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float)
0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:25 Constant:
0:25 0 (const uint)
0:? Linker Objects
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: f1( (temp void)
0:5 Function Parameters:
0:? Sequence
0:6 vector-scale (temp 4-component vector of float)
0:6 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float)
0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:6 Constant:
0:6 0 (const uint)
0:6 b: direct index for structure (layout(offset=16 ) uniform float)
0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:6 Constant:
0:6 1 (const uint)
0:12 Function Definition: f2( (temp void)
0:12 Function Parameters:
0:? Sequence
0:13 add (temp float)
0:13 add (temp float)
0:13 direct index (temp float)
0:13 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float)
0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:13 Constant:
0:13 0 (const uint)
0:13 Constant:
0:13 0 (const int)
0:13 b: direct index for structure (layout(offset=16 ) uniform float)
0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:13 Constant:
0:13 1 (const uint)
0:13 direct index (temp float)
0:13 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:13 Constant:
0:13 2 (const uint)
0:13 Constant:
0:13 0 (const int)
0:17 Function Definition: f3( (temp void)
0:17 Function Parameters:
0:? Sequence
0:18 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:18 Constant:
0:18 2 (const uint)
0:24 Function Definition: f4( (temp void)
0:24 Function Parameters:
0:? Sequence
0:25 vector-scale (temp 4-component vector of float)
0:25 Convert int to float (temp float)
0:25 d: direct index for structure (layout(offset=44 ) uniform int)
0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:25 Constant:
0:25 3 (const uint)
0:25 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float)
0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:25 Constant:
0:25 0 (const uint)
0:? Linker Objects
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 47
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "f1"
ExecutionMode 4 OriginUpperLeft
Name 4 "f1"
Name 6 "f2("
Name 8 "f3("
Name 10 "f4("
Name 16 "$Global"
MemberName 16($Global) 0 "a"
MemberName 16($Global) 1 "b"
MemberName 16($Global) 2 "c"
MemberName 16($Global) 3 "d"
MemberName 16($Global) 4 "e"
Name 18 ""
MemberDecorate 16($Global) 0 Offset 0
MemberDecorate 16($Global) 1 Offset 16
MemberDecorate 16($Global) 2 Offset 32
MemberDecorate 16($Global) 3 Offset 44
MemberDecorate 16($Global) 4 Offset 48
Decorate 16($Global) Block
Decorate 18 DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
12: TypeFloat 32
13: TypeVector 12(float) 4
14: TypeVector 12(float) 3
15: TypeInt 32 1
16($Global): TypeStruct 13(fvec4) 12(float) 14(fvec3) 15(int) 15(int)
17: TypePointer Uniform 16($Global)
18: 17(ptr) Variable Uniform
19: 15(int) Constant 0
20: TypePointer Uniform 13(fvec4)
23: 15(int) Constant 1
24: TypePointer Uniform 12(float)
28: TypeInt 32 0
29: 28(int) Constant 0
35: 15(int) Constant 2
39: 15(int) Constant 3
40: TypePointer Uniform 15(int)
4(f1): 2 Function None 3
5: Label
21: 20(ptr) AccessChain 18 19
22: 13(fvec4) Load 21
25: 24(ptr) AccessChain 18 23
26: 12(float) Load 25
27: 13(fvec4) VectorTimesScalar 22 26
Return
FunctionEnd
6(f2(): 2 Function None 3
7: Label
30: 24(ptr) AccessChain 18 19 29
31: 12(float) Load 30
32: 24(ptr) AccessChain 18 23
33: 12(float) Load 32
34: 12(float) FAdd 31 33
36: 24(ptr) AccessChain 18 35 29
37: 12(float) Load 36
38: 12(float) FAdd 34 37
Return
FunctionEnd
8(f3(): 2 Function None 3
9: Label
Return
FunctionEnd
10(f4(): 2 Function None 3
11: Label
41: 40(ptr) AccessChain 18 39
42: 15(int) Load 41
43: 12(float) ConvertSToF 42
44: 20(ptr) AccessChain 18 19
45: 13(fvec4) Load 44
46: 13(fvec4) VectorTimesScalar 45 43
Return
FunctionEnd

View File

@ -0,0 +1,526 @@
hlsl.array.flatten.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:17 Function Definition: TestFn1( (temp 4-component vector of float)
0:17 Function Parameters:
0:? Sequence
0:18 Branch: Return with expression
0:18 texture (temp 4-component vector of float)
0:18 Construct combined texture-sampler (temp sampler1D)
0:? 'g_tex[1]' (uniform texture1D)
0:? 'g_samp[1]' (uniform sampler)
0:18 Constant:
0:18 0.200000
0:22 Function Definition: TestFn2(t11[3];p1[3]; (temp 4-component vector of float)
0:22 Function Parameters:
0:22 'l_tex' (in 3-element array of texture1D)
0:22 'l_samp' (in 3-element array of sampler)
0:? Sequence
0:23 Branch: Return with expression
0:23 texture (temp 4-component vector of float)
0:23 Construct combined texture-sampler (temp sampler1D)
0:23 direct index (temp texture1D)
0:23 'l_tex' (in 3-element array of texture1D)
0:23 Constant:
0:23 2 (const int)
0:23 direct index (temp sampler)
0:23 'l_samp' (in 3-element array of sampler)
0:23 Constant:
0:23 2 (const int)
0:23 Constant:
0:23 0.200000
0:26 Sequence
0:26 move second child to first child (temp 5-element array of int)
0:26 'not_flattened_a' (global 5-element array of int)
0:26 Constant:
0:26 1 (const int)
0:26 2 (const int)
0:26 3 (const int)
0:26 4 (const int)
0:26 5 (const int)
0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void)
0:31 Function Parameters:
0:31 'ps_output' (out structure{temp 4-component vector of float color})
0:? Sequence
0:33 Sequence
0:33 Sequence
0:33 move second child to first child (temp sampler)
0:33 direct index (temp sampler)
0:33 'local_sampler_array' (temp 3-element array of sampler)
0:33 Constant:
0:33 0 (const int)
0:? 'g_samp[0]' (uniform sampler)
0:33 move second child to first child (temp sampler)
0:33 direct index (temp sampler)
0:33 'local_sampler_array' (temp 3-element array of sampler)
0:33 Constant:
0:33 1 (const int)
0:? 'g_samp[1]' (uniform sampler)
0:33 move second child to first child (temp sampler)
0:33 direct index (temp sampler)
0:33 'local_sampler_array' (temp 3-element array of sampler)
0:33 Constant:
0:33 2 (const int)
0:? 'g_samp[2]' (uniform sampler)
0:34 Sequence
0:34 Sequence
0:34 move second child to first child (temp texture1D)
0:34 direct index (temp texture1D)
0:34 'local_texture_array' (temp 3-element array of texture1D)
0:34 Constant:
0:34 0 (const int)
0:? 'g_tex[0]' (uniform texture1D)
0:34 move second child to first child (temp texture1D)
0:34 direct index (temp texture1D)
0:34 'local_texture_array' (temp 3-element array of texture1D)
0:34 Constant:
0:34 1 (const int)
0:? 'g_tex[1]' (uniform texture1D)
0:34 move second child to first child (temp texture1D)
0:34 direct index (temp texture1D)
0:34 'local_texture_array' (temp 3-element array of texture1D)
0:34 Constant:
0:34 2 (const int)
0:? 'g_tex[2]' (uniform texture1D)
0:35 Sequence
0:35 move second child to first child (temp 4-element array of float)
0:35 'local_float_array' (temp 4-element array of float)
0:35 g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float)
0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
0:35 Constant:
0:35 2 (const uint)
0:37 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:37 add (temp 4-component vector of float)
0:37 Function Call: TestFn1( (temp 4-component vector of float)
0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float)
0:37 Comma (temp 3-element array of texture1D)
0:37 Sequence
0:37 move second child to first child (temp texture1D)
0:37 direct index (temp texture1D)
0:37 'aggShadow' (temp 3-element array of texture1D)
0:37 Constant:
0:37 0 (const int)
0:? 'g_tex[0]' (uniform texture1D)
0:37 move second child to first child (temp texture1D)
0:37 direct index (temp texture1D)
0:37 'aggShadow' (temp 3-element array of texture1D)
0:37 Constant:
0:37 1 (const int)
0:? 'g_tex[1]' (uniform texture1D)
0:37 move second child to first child (temp texture1D)
0:37 direct index (temp texture1D)
0:37 'aggShadow' (temp 3-element array of texture1D)
0:37 Constant:
0:37 2 (const int)
0:? 'g_tex[2]' (uniform texture1D)
0:37 'aggShadow' (temp 3-element array of texture1D)
0:37 Comma (temp 3-element array of sampler)
0:37 Sequence
0:37 move second child to first child (temp sampler)
0:37 direct index (temp sampler)
0:37 'aggShadow' (temp 3-element array of sampler)
0:37 Constant:
0:37 0 (const int)
0:? 'g_samp[0]' (uniform sampler)
0:37 move second child to first child (temp sampler)
0:37 direct index (temp sampler)
0:37 'aggShadow' (temp 3-element array of sampler)
0:37 Constant:
0:37 1 (const int)
0:? 'g_samp[1]' (uniform sampler)
0:37 move second child to first child (temp sampler)
0:37 direct index (temp sampler)
0:37 'aggShadow' (temp 3-element array of sampler)
0:37 Constant:
0:37 2 (const int)
0:? 'g_samp[2]' (uniform sampler)
0:37 'aggShadow' (temp 3-element array of sampler)
0:? Linker Objects
0:? 'g_tex[0]' (uniform texture1D)
0:? 'g_tex[1]' (uniform texture1D)
0:? 'g_tex[2]' (uniform texture1D)
0:? 'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D)
0:? 'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D)
0:? 'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D)
0:? 'g_samp[0]' (uniform sampler)
0:? 'g_samp[1]' (uniform sampler)
0:? 'g_samp[2]' (uniform sampler)
0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler)
0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler)
0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler)
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
0:? 'not_flattened_a' (global 5-element array of int)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:17 Function Definition: TestFn1( (temp 4-component vector of float)
0:17 Function Parameters:
0:? Sequence
0:18 Branch: Return with expression
0:18 texture (temp 4-component vector of float)
0:18 Construct combined texture-sampler (temp sampler1D)
0:? 'g_tex[1]' (uniform texture1D)
0:? 'g_samp[1]' (uniform sampler)
0:18 Constant:
0:18 0.200000
0:22 Function Definition: TestFn2(t11[3];p1[3]; (temp 4-component vector of float)
0:22 Function Parameters:
0:22 'l_tex' (in 3-element array of texture1D)
0:22 'l_samp' (in 3-element array of sampler)
0:? Sequence
0:23 Branch: Return with expression
0:23 texture (temp 4-component vector of float)
0:23 Construct combined texture-sampler (temp sampler1D)
0:23 direct index (temp texture1D)
0:23 'l_tex' (in 3-element array of texture1D)
0:23 Constant:
0:23 2 (const int)
0:23 direct index (temp sampler)
0:23 'l_samp' (in 3-element array of sampler)
0:23 Constant:
0:23 2 (const int)
0:23 Constant:
0:23 0.200000
0:26 Sequence
0:26 move second child to first child (temp 5-element array of int)
0:26 'not_flattened_a' (global 5-element array of int)
0:26 Constant:
0:26 1 (const int)
0:26 2 (const int)
0:26 3 (const int)
0:26 4 (const int)
0:26 5 (const int)
0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void)
0:31 Function Parameters:
0:31 'ps_output' (out structure{temp 4-component vector of float color})
0:? Sequence
0:33 Sequence
0:33 Sequence
0:33 move second child to first child (temp sampler)
0:33 direct index (temp sampler)
0:33 'local_sampler_array' (temp 3-element array of sampler)
0:33 Constant:
0:33 0 (const int)
0:? 'g_samp[0]' (uniform sampler)
0:33 move second child to first child (temp sampler)
0:33 direct index (temp sampler)
0:33 'local_sampler_array' (temp 3-element array of sampler)
0:33 Constant:
0:33 1 (const int)
0:? 'g_samp[1]' (uniform sampler)
0:33 move second child to first child (temp sampler)
0:33 direct index (temp sampler)
0:33 'local_sampler_array' (temp 3-element array of sampler)
0:33 Constant:
0:33 2 (const int)
0:? 'g_samp[2]' (uniform sampler)
0:34 Sequence
0:34 Sequence
0:34 move second child to first child (temp texture1D)
0:34 direct index (temp texture1D)
0:34 'local_texture_array' (temp 3-element array of texture1D)
0:34 Constant:
0:34 0 (const int)
0:? 'g_tex[0]' (uniform texture1D)
0:34 move second child to first child (temp texture1D)
0:34 direct index (temp texture1D)
0:34 'local_texture_array' (temp 3-element array of texture1D)
0:34 Constant:
0:34 1 (const int)
0:? 'g_tex[1]' (uniform texture1D)
0:34 move second child to first child (temp texture1D)
0:34 direct index (temp texture1D)
0:34 'local_texture_array' (temp 3-element array of texture1D)
0:34 Constant:
0:34 2 (const int)
0:? 'g_tex[2]' (uniform texture1D)
0:35 Sequence
0:35 move second child to first child (temp 4-element array of float)
0:35 'local_float_array' (temp 4-element array of float)
0:35 g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float)
0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
0:35 Constant:
0:35 2 (const uint)
0:37 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:37 add (temp 4-component vector of float)
0:37 Function Call: TestFn1( (temp 4-component vector of float)
0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float)
0:37 Comma (temp 3-element array of texture1D)
0:37 Sequence
0:37 move second child to first child (temp texture1D)
0:37 direct index (temp texture1D)
0:37 'aggShadow' (temp 3-element array of texture1D)
0:37 Constant:
0:37 0 (const int)
0:? 'g_tex[0]' (uniform texture1D)
0:37 move second child to first child (temp texture1D)
0:37 direct index (temp texture1D)
0:37 'aggShadow' (temp 3-element array of texture1D)
0:37 Constant:
0:37 1 (const int)
0:? 'g_tex[1]' (uniform texture1D)
0:37 move second child to first child (temp texture1D)
0:37 direct index (temp texture1D)
0:37 'aggShadow' (temp 3-element array of texture1D)
0:37 Constant:
0:37 2 (const int)
0:? 'g_tex[2]' (uniform texture1D)
0:37 'aggShadow' (temp 3-element array of texture1D)
0:37 Comma (temp 3-element array of sampler)
0:37 Sequence
0:37 move second child to first child (temp sampler)
0:37 direct index (temp sampler)
0:37 'aggShadow' (temp 3-element array of sampler)
0:37 Constant:
0:37 0 (const int)
0:? 'g_samp[0]' (uniform sampler)
0:37 move second child to first child (temp sampler)
0:37 direct index (temp sampler)
0:37 'aggShadow' (temp 3-element array of sampler)
0:37 Constant:
0:37 1 (const int)
0:? 'g_samp[1]' (uniform sampler)
0:37 move second child to first child (temp sampler)
0:37 direct index (temp sampler)
0:37 'aggShadow' (temp 3-element array of sampler)
0:37 Constant:
0:37 2 (const int)
0:? 'g_samp[2]' (uniform sampler)
0:37 'aggShadow' (temp 3-element array of sampler)
0:? Linker Objects
0:? 'g_tex[0]' (uniform texture1D)
0:? 'g_tex[1]' (uniform texture1D)
0:? 'g_tex[2]' (uniform texture1D)
0:? 'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D)
0:? 'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D)
0:? 'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D)
0:? 'g_samp[0]' (uniform sampler)
0:? 'g_samp[1]' (uniform sampler)
0:? 'g_samp[2]' (uniform sampler)
0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler)
0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler)
0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler)
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
0:? 'not_flattened_a' (global 5-element array of int)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 123
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 99
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 9 "TestFn1("
Name 22 "TestFn2(t11[3];p1[3];"
Name 20 "l_tex"
Name 21 "l_samp"
Name 28 "not_flattened_a"
Name 36 "g_tex[1]"
Name 39 "g_samp[1]"
Name 55 "local_sampler_array"
Name 57 "g_samp[0]"
Name 62 "g_samp[2]"
Name 65 "local_texture_array"
Name 66 "g_tex[0]"
Name 71 "g_tex[2]"
Name 77 "local_float_array"
Name 83 "$Global"
MemberName 83($Global) 0 "g_mats"
MemberName 83($Global) 1 "g_mats_explicit"
MemberName 83($Global) 2 "g_floats"
Name 85 ""
Name 99 "color"
Name 101 "aggShadow"
Name 108 "aggShadow"
Name 117 "g_tex_explicit[0]"
Name 118 "g_tex_explicit[1]"
Name 119 "g_tex_explicit[2]"
Name 120 "g_samp_explicit[0]"
Name 121 "g_samp_explicit[1]"
Name 122 "g_samp_explicit[2]"
Decorate 36(g_tex[1]) DescriptorSet 0
Decorate 39(g_samp[1]) DescriptorSet 0
Decorate 57(g_samp[0]) DescriptorSet 0
Decorate 62(g_samp[2]) DescriptorSet 0
Decorate 66(g_tex[0]) DescriptorSet 0
Decorate 71(g_tex[2]) DescriptorSet 0
Decorate 80 ArrayStride 48
Decorate 81 ArrayStride 48
Decorate 82 ArrayStride 16
MemberDecorate 83($Global) 0 RowMajor
MemberDecorate 83($Global) 0 Offset 0
MemberDecorate 83($Global) 0 MatrixStride 16
MemberDecorate 83($Global) 1 RowMajor
MemberDecorate 83($Global) 1 Offset 192
MemberDecorate 83($Global) 1 MatrixStride 16
MemberDecorate 83($Global) 2 Offset 384
Decorate 83($Global) Block
Decorate 85 DescriptorSet 0
Decorate 99(color) Location 0
Decorate 117(g_tex_explicit[0]) DescriptorSet 0
Decorate 117(g_tex_explicit[0]) Binding 1
Decorate 118(g_tex_explicit[1]) DescriptorSet 0
Decorate 118(g_tex_explicit[1]) Binding 2
Decorate 119(g_tex_explicit[2]) DescriptorSet 0
Decorate 119(g_tex_explicit[2]) Binding 3
Decorate 120(g_samp_explicit[0]) DescriptorSet 0
Decorate 120(g_samp_explicit[0]) Binding 5
Decorate 121(g_samp_explicit[1]) DescriptorSet 0
Decorate 121(g_samp_explicit[1]) Binding 6
Decorate 122(g_samp_explicit[2]) DescriptorSet 0
Decorate 122(g_samp_explicit[2]) Binding 7
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeFunction 7(fvec4)
11: TypeImage 6(float) 1D sampled format:Unknown
12: TypeInt 32 0
13: 12(int) Constant 3
14: TypeArray 11 13
15: TypePointer UniformConstant 14
16: TypeSampler
17: TypeArray 16 13
18: TypePointer UniformConstant 17
19: TypeFunction 7(fvec4) 15(ptr) 18(ptr)
24: TypeInt 32 1
25: 12(int) Constant 5
26: TypeArray 24(int) 25
27: TypePointer Private 26
28(not_flattened_a): 27(ptr) Variable Private
29: 24(int) Constant 1
30: 24(int) Constant 2
31: 24(int) Constant 3
32: 24(int) Constant 4
33: 24(int) Constant 5
34: 26 ConstantComposite 29 30 31 32 33
35: TypePointer UniformConstant 11
36(g_tex[1]): 35(ptr) Variable UniformConstant
38: TypePointer UniformConstant 16
39(g_samp[1]): 38(ptr) Variable UniformConstant
41: TypeSampledImage 11
43: 6(float) Constant 1045220557
55(local_sampler_array): 18(ptr) Variable UniformConstant
56: 24(int) Constant 0
57(g_samp[0]): 38(ptr) Variable UniformConstant
62(g_samp[2]): 38(ptr) Variable UniformConstant
65(local_texture_array): 15(ptr) Variable UniformConstant
66(g_tex[0]): 35(ptr) Variable UniformConstant
71(g_tex[2]): 35(ptr) Variable UniformConstant
74: 12(int) Constant 4
75: TypeArray 6(float) 74
76: TypePointer Function 75
78: TypeVector 6(float) 3
79: TypeMatrix 78(fvec3) 3
80: TypeArray 79 74
81: TypeArray 79 74
82: TypeArray 6(float) 74
83($Global): TypeStruct 80 81 82
84: TypePointer Uniform 83($Global)
85: 84(ptr) Variable Uniform
86: TypePointer Uniform 82
90: TypePointer Function 6(float)
98: TypePointer Output 7(fvec4)
99(color): 98(ptr) Variable Output
101(aggShadow): 15(ptr) Variable UniformConstant
108(aggShadow): 18(ptr) Variable UniformConstant
117(g_tex_explicit[0]): 35(ptr) Variable UniformConstant
118(g_tex_explicit[1]): 35(ptr) Variable UniformConstant
119(g_tex_explicit[2]): 35(ptr) Variable UniformConstant
120(g_samp_explicit[0]): 38(ptr) Variable UniformConstant
121(g_samp_explicit[1]): 38(ptr) Variable UniformConstant
122(g_samp_explicit[2]): 38(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
77(local_float_array): 76(ptr) Variable Function
Store 28(not_flattened_a) 34
58: 16 Load 57(g_samp[0])
59: 38(ptr) AccessChain 55(local_sampler_array) 56
Store 59 58
60: 16 Load 39(g_samp[1])
61: 38(ptr) AccessChain 55(local_sampler_array) 29
Store 61 60
63: 16 Load 62(g_samp[2])
64: 38(ptr) AccessChain 55(local_sampler_array) 30
Store 64 63
67: 11 Load 66(g_tex[0])
68: 35(ptr) AccessChain 65(local_texture_array) 56
Store 68 67
69: 11 Load 36(g_tex[1])
70: 35(ptr) AccessChain 65(local_texture_array) 29
Store 70 69
72: 11 Load 71(g_tex[2])
73: 35(ptr) AccessChain 65(local_texture_array) 30
Store 73 72
87: 86(ptr) AccessChain 85 30
88: 82 Load 87
89: 6(float) CompositeExtract 88 0
91: 90(ptr) AccessChain 77(local_float_array) 56
Store 91 89
92: 6(float) CompositeExtract 88 1
93: 90(ptr) AccessChain 77(local_float_array) 29
Store 93 92
94: 6(float) CompositeExtract 88 2
95: 90(ptr) AccessChain 77(local_float_array) 30
Store 95 94
96: 6(float) CompositeExtract 88 3
97: 90(ptr) AccessChain 77(local_float_array) 31
Store 97 96
100: 7(fvec4) FunctionCall 9(TestFn1()
102: 11 Load 66(g_tex[0])
103: 35(ptr) AccessChain 101(aggShadow) 56
Store 103 102
104: 11 Load 36(g_tex[1])
105: 35(ptr) AccessChain 101(aggShadow) 29
Store 105 104
106: 11 Load 71(g_tex[2])
107: 35(ptr) AccessChain 101(aggShadow) 30
Store 107 106
109: 16 Load 57(g_samp[0])
110: 38(ptr) AccessChain 108(aggShadow) 56
Store 110 109
111: 16 Load 39(g_samp[1])
112: 38(ptr) AccessChain 108(aggShadow) 29
Store 112 111
113: 16 Load 62(g_samp[2])
114: 38(ptr) AccessChain 108(aggShadow) 30
Store 114 113
115: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 101(aggShadow) 108(aggShadow)
116: 7(fvec4) FAdd 100 115
Store 99(color) 116
Return
FunctionEnd
9(TestFn1(): 7(fvec4) Function None 8
10: Label
37: 11 Load 36(g_tex[1])
40: 16 Load 39(g_samp[1])
42: 41 SampledImage 37 40
44: 7(fvec4) ImageSampleImplicitLod 42 43
ReturnValue 44
FunctionEnd
22(TestFn2(t11[3];p1[3];): 7(fvec4) Function None 19
20(l_tex): 15(ptr) FunctionParameter
21(l_samp): 18(ptr) FunctionParameter
23: Label
47: 35(ptr) AccessChain 20(l_tex) 30
48: 11 Load 47
49: 38(ptr) AccessChain 21(l_samp) 30
50: 16 Load 49
51: 41 SampledImage 48 50
52: 7(fvec4) ImageSampleImplicitLod 51 43
ReturnValue 52
FunctionEnd

View File

@ -2,50 +2,64 @@ hlsl.array.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
0:8 Function Parameters:
0:8 'i' (in int)
0:8 'input' (in 3-element array of 4-component vector of float)
0:8 'i' (layout(location=0 ) in int)
0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:? Sequence
0:10 Branch: Return with expression
0:10 add (temp 4-component vector of float)
0:10 Sequence
0:10 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 direct index (temp 4-component vector of float)
0:10 'a' (global 4-element array of 4-component vector of float)
0:10 Constant:
0:10 1 (const int)
0:10 indirect index (temp 4-component vector of float)
0:10 'a' (global 4-element array of 4-component vector of float)
0:10 'i' (in int)
0:10 add (temp 4-component vector of float)
0:10 direct index (temp 4-component vector of float)
0:10 'input' (in 3-element array of 4-component vector of float)
0:10 Constant:
0:10 2 (const int)
0:10 indirect index (temp 4-component vector of float)
0:10 'input' (in 3-element array of 4-component vector of float)
0:10 'i' (in int)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 direct index (temp 4-component vector of float)
0:10 'b' (temp 10-element array of 4-component vector of float)
0:10 Constant:
0:10 5 (const int)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 direct index (layout(offset=0 ) temp 4-component vector of float)
0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 1 (const int)
0:10 indirect index (layout(offset=0 ) temp 4-component vector of float)
0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10 Constant:
0:10 0 (const uint)
0:10 'i' (layout(location=0 ) in int)
0:10 direct index (layout(location=1 ) temp 4-component vector of float)
0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10 Constant:
0:10 2 (const int)
0:10 indirect index (layout(location=1 ) temp 4-component vector of float)
0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10 'i' (layout(location=0 ) in int)
0:10 direct index (temp 4-component vector of float)
0:10 'b' (temp 10-element array of 4-component vector of float)
0:10 Constant:
0:10 5 (const int)
0:10 indirect index (temp 4-component vector of float)
0:10 'b' (temp 10-element array of 4-component vector of float)
0:10 'i' (in int)
0:10 'i' (layout(location=0 ) in int)
0:10 indirect index (temp 4-component vector of float)
0:10 m: direct index for structure (temp 7-element array of 4-component vector of float)
0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m})
0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
0:10 'i' (in int)
0:10 indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m})
0:10 s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m})
0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10 Constant:
0:10 1 (const uint)
0:10 'i' (layout(location=0 ) in int)
0:10 Constant:
0:10 0 (const int)
0:10 'i' (in int)
0:10 'i' (layout(location=0 ) in int)
0:10 Branch: Return
0:? Linker Objects
0:? 'a' (global 4-element array of 4-component vector of float)
0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:? 'i' (layout(location=0 ) in int)
0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
Linked fragment stage:
@ -54,129 +68,158 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
0:8 Function Parameters:
0:8 'i' (in int)
0:8 'input' (in 3-element array of 4-component vector of float)
0:8 'i' (layout(location=0 ) in int)
0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:? Sequence
0:10 Branch: Return with expression
0:10 add (temp 4-component vector of float)
0:10 Sequence
0:10 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 direct index (temp 4-component vector of float)
0:10 'a' (global 4-element array of 4-component vector of float)
0:10 Constant:
0:10 1 (const int)
0:10 indirect index (temp 4-component vector of float)
0:10 'a' (global 4-element array of 4-component vector of float)
0:10 'i' (in int)
0:10 add (temp 4-component vector of float)
0:10 direct index (temp 4-component vector of float)
0:10 'input' (in 3-element array of 4-component vector of float)
0:10 Constant:
0:10 2 (const int)
0:10 indirect index (temp 4-component vector of float)
0:10 'input' (in 3-element array of 4-component vector of float)
0:10 'i' (in int)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 direct index (temp 4-component vector of float)
0:10 'b' (temp 10-element array of 4-component vector of float)
0:10 Constant:
0:10 5 (const int)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 direct index (layout(offset=0 ) temp 4-component vector of float)
0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 1 (const int)
0:10 indirect index (layout(offset=0 ) temp 4-component vector of float)
0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10 Constant:
0:10 0 (const uint)
0:10 'i' (layout(location=0 ) in int)
0:10 direct index (layout(location=1 ) temp 4-component vector of float)
0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10 Constant:
0:10 2 (const int)
0:10 indirect index (layout(location=1 ) temp 4-component vector of float)
0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10 'i' (layout(location=0 ) in int)
0:10 direct index (temp 4-component vector of float)
0:10 'b' (temp 10-element array of 4-component vector of float)
0:10 Constant:
0:10 5 (const int)
0:10 indirect index (temp 4-component vector of float)
0:10 'b' (temp 10-element array of 4-component vector of float)
0:10 'i' (in int)
0:10 'i' (layout(location=0 ) in int)
0:10 indirect index (temp 4-component vector of float)
0:10 m: direct index for structure (temp 7-element array of 4-component vector of float)
0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m})
0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
0:10 'i' (in int)
0:10 indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m})
0:10 s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m})
0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10 Constant:
0:10 1 (const uint)
0:10 'i' (layout(location=0 ) in int)
0:10 Constant:
0:10 0 (const int)
0:10 'i' (in int)
0:10 'i' (layout(location=0 ) in int)
0:10 Branch: Return
0:? Linker Objects
0:? 'a' (global 4-element array of 4-component vector of float)
0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:? 'i' (layout(location=0 ) in int)
0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 64
// Id's are bound by 65
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 19 27
EntryPoint Fragment 4 "PixelShaderFunction" 9 28 36
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 12 "a"
Name 19 "i"
Name 27 "input"
Name 40 "b"
Name 51 ""
MemberName 51 0 "m"
Name 55 "s"
Name 9 "@entryPointOutput"
Name 15 ""
MemberName 15 0 "m"
Name 18 "$Global"
MemberName 18($Global) 0 "a"
MemberName 18($Global) 1 "s"
Name 20 ""
Name 28 "i"
Name 36 "input"
Name 49 "b"
Decorate 9(@entryPointOutput) Location 0
Decorate 12 ArrayStride 16
Decorate 14 ArrayStride 16
MemberDecorate 15 0 Offset 0
Decorate 17 ArrayStride 112
MemberDecorate 18($Global) 0 Offset 0
MemberDecorate 18($Global) 1 Offset 64
Decorate 18($Global) Block
Decorate 20 DescriptorSet 0
Decorate 28(i) Location 0
Decorate 36(input) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeInt 32 0
9: 8(int) Constant 4
10: TypeArray 7(fvec4) 9
11: TypePointer Private 10
12(a): 11(ptr) Variable Private
13: TypeInt 32 1
14: 13(int) Constant 1
15: TypePointer Private 7(fvec4)
18: TypePointer Input 13(int)
19(i): 18(ptr) Variable Input
24: 8(int) Constant 3
25: TypeArray 7(fvec4) 24
26: TypePointer Input 25
27(input): 26(ptr) Variable Input
28: 13(int) Constant 2
29: TypePointer Input 7(fvec4)
37: 8(int) Constant 10
38: TypeArray 7(fvec4) 37
39: TypePointer Function 38
41: 13(int) Constant 5
42: TypePointer Function 7(fvec4)
49: 8(int) Constant 7
50: TypeArray 7(fvec4) 49
51: TypeStruct 50
52: 8(int) Constant 11
53: TypeArray 51(struct) 52
54: TypePointer Private 53
55(s): 54(ptr) Variable Private
57: 13(int) Constant 0
8: TypePointer Output 7(fvec4)
9(@entryPointOutput): 8(ptr) Variable Output
10: TypeInt 32 0
11: 10(int) Constant 4
12: TypeArray 7(fvec4) 11
13: 10(int) Constant 7
14: TypeArray 7(fvec4) 13
15: TypeStruct 14
16: 10(int) Constant 11
17: TypeArray 15(struct) 16
18($Global): TypeStruct 12 17
19: TypePointer Uniform 18($Global)
20: 19(ptr) Variable Uniform
21: TypeInt 32 1
22: 21(int) Constant 0
23: 21(int) Constant 1
24: TypePointer Uniform 7(fvec4)
27: TypePointer Input 21(int)
28(i): 27(ptr) Variable Input
33: 10(int) Constant 3
34: TypeArray 7(fvec4) 33
35: TypePointer Input 34
36(input): 35(ptr) Variable Input
37: 21(int) Constant 2
38: TypePointer Input 7(fvec4)
46: 10(int) Constant 10
47: TypeArray 7(fvec4) 46
48: TypePointer Function 47
50: 21(int) Constant 5
51: TypePointer Function 7(fvec4)
4(PixelShaderFunction): 2 Function None 3
5: Label
40(b): 39(ptr) Variable Function
16: 15(ptr) AccessChain 12(a) 14
17: 7(fvec4) Load 16
20: 13(int) Load 19(i)
21: 15(ptr) AccessChain 12(a) 20
22: 7(fvec4) Load 21
23: 7(fvec4) FAdd 17 22
30: 29(ptr) AccessChain 27(input) 28
49(b): 48(ptr) Variable Function
25: 24(ptr) AccessChain 20 22 23
26: 7(fvec4) Load 25
29: 21(int) Load 28(i)
30: 24(ptr) AccessChain 20 22 29
31: 7(fvec4) Load 30
32: 13(int) Load 19(i)
33: 29(ptr) AccessChain 27(input) 32
34: 7(fvec4) Load 33
35: 7(fvec4) FAdd 31 34
36: 7(fvec4) FAdd 23 35
43: 42(ptr) AccessChain 40(b) 41
32: 7(fvec4) FAdd 26 31
39: 38(ptr) AccessChain 36(input) 37
40: 7(fvec4) Load 39
41: 7(fvec4) FAdd 32 40
42: 21(int) Load 28(i)
43: 38(ptr) AccessChain 36(input) 42
44: 7(fvec4) Load 43
45: 13(int) Load 19(i)
46: 42(ptr) AccessChain 40(b) 45
47: 7(fvec4) Load 46
48: 7(fvec4) FAdd 44 47
56: 13(int) Load 19(i)
58: 13(int) Load 19(i)
59: 15(ptr) AccessChain 55(s) 56 57 58
60: 7(fvec4) Load 59
61: 7(fvec4) FAdd 48 60
62: 7(fvec4) FAdd 36 61
ReturnValue 62
45: 7(fvec4) FAdd 41 44
52: 51(ptr) AccessChain 49(b) 50
53: 7(fvec4) Load 52
54: 7(fvec4) FAdd 45 53
55: 21(int) Load 28(i)
56: 51(ptr) AccessChain 49(b) 55
57: 7(fvec4) Load 56
58: 7(fvec4) FAdd 54 57
59: 21(int) Load 28(i)
60: 21(int) Load 28(i)
61: 24(ptr) AccessChain 20 23 59 22 60
62: 7(fvec4) Load 61
63: 7(fvec4) FAdd 58 62
Store 9(@entryPointOutput) 63
Return
FunctionEnd

View File

@ -0,0 +1,263 @@
hlsl.array.implicit-size.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:3 Sequence
0:3 move second child to first child (temp 5-element array of float)
0:3 'g_array' (global 5-element array of float)
0:3 Constant:
0:3 1.000000
0:3 2.000000
0:3 3.000000
0:3 4.000000
0:3 5.000000
0:6 Sequence
0:6 move second child to first child (temp 7-element array of float)
0:6 'g_array_unused' (global 7-element array of float)
0:6 Constant:
0:6 1.000000
0:6 2.000000
0:6 3.000000
0:6 4.000000
0:6 5.000000
0:6 6.000000
0:6 7.000000
0:12 Sequence
0:12 move second child to first child (temp 2-element array of structure{temp int i, temp float f})
0:12 'g_mystruct' (global 2-element array of structure{temp int i, temp float f})
0:12 Constant:
0:12 1 (const int)
0:12 2.000000
0:12 3 (const int)
0:12 4.000000
0:26 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void)
0:26 Function Parameters:
0:26 'ps_output' (out structure{temp 4-component vector of float color})
0:? Sequence
0:28 Sequence
0:28 move second child to first child (temp 3-element array of float)
0:28 'l_array' (temp 3-element array of float)
0:28 Constant:
0:28 1.000000
0:28 2.000000
0:28 3.000000
0:30 move second child to first child (temp 4-component vector of float)
0:30 color: direct index for structure (temp 4-component vector of float)
0:30 'ps_output' (out structure{temp 4-component vector of float color})
0:30 Constant:
0:30 0 (const int)
0:30 Construct vec4 (temp 4-component vector of float)
0:30 add (temp float)
0:30 add (temp float)
0:30 add (temp float)
0:30 add (temp float)
0:30 direct index (temp float)
0:30 'g_array' (global 5-element array of float)
0:30 Constant:
0:30 0 (const int)
0:30 direct index (temp float)
0:30 'g_array' (global 5-element array of float)
0:30 Constant:
0:30 4 (const int)
0:30 direct index (temp float)
0:30 'l_array' (temp 3-element array of float)
0:30 Constant:
0:30 1 (const int)
0:30 f: direct index for structure (temp float)
0:30 direct index (temp structure{temp int i, temp float f})
0:30 'g_mystruct' (global 2-element array of structure{temp int i, temp float f})
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 1 (const int)
0:30 indirect index (temp float)
0:30 'g_array' (global 5-element array of float)
0:30 'idx' (temp void)
0:? Linker Objects
0:? 'g_array' (global 5-element array of float)
0:? 'g_array_unused' (global 7-element array of float)
0:? 'g_mystruct' (global 2-element array of structure{temp int i, temp float f})
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:3 Sequence
0:3 move second child to first child (temp 5-element array of float)
0:3 'g_array' (global 5-element array of float)
0:3 Constant:
0:3 1.000000
0:3 2.000000
0:3 3.000000
0:3 4.000000
0:3 5.000000
0:6 Sequence
0:6 move second child to first child (temp 7-element array of float)
0:6 'g_array_unused' (global 7-element array of float)
0:6 Constant:
0:6 1.000000
0:6 2.000000
0:6 3.000000
0:6 4.000000
0:6 5.000000
0:6 6.000000
0:6 7.000000
0:12 Sequence
0:12 move second child to first child (temp 2-element array of structure{temp int i, temp float f})
0:12 'g_mystruct' (global 2-element array of structure{temp int i, temp float f})
0:12 Constant:
0:12 1 (const int)
0:12 2.000000
0:12 3 (const int)
0:12 4.000000
0:26 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void)
0:26 Function Parameters:
0:26 'ps_output' (out structure{temp 4-component vector of float color})
0:? Sequence
0:28 Sequence
0:28 move second child to first child (temp 3-element array of float)
0:28 'l_array' (temp 3-element array of float)
0:28 Constant:
0:28 1.000000
0:28 2.000000
0:28 3.000000
0:30 move second child to first child (temp 4-component vector of float)
0:30 color: direct index for structure (temp 4-component vector of float)
0:30 'ps_output' (out structure{temp 4-component vector of float color})
0:30 Constant:
0:30 0 (const int)
0:30 Construct vec4 (temp 4-component vector of float)
0:30 add (temp float)
0:30 add (temp float)
0:30 add (temp float)
0:30 add (temp float)
0:30 direct index (temp float)
0:30 'g_array' (global 5-element array of float)
0:30 Constant:
0:30 0 (const int)
0:30 direct index (temp float)
0:30 'g_array' (global 5-element array of float)
0:30 Constant:
0:30 4 (const int)
0:30 direct index (temp float)
0:30 'l_array' (temp 3-element array of float)
0:30 Constant:
0:30 1 (const int)
0:30 f: direct index for structure (temp float)
0:30 direct index (temp structure{temp int i, temp float f})
0:30 'g_mystruct' (global 2-element array of structure{temp int i, temp float f})
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 1 (const int)
0:30 indirect index (temp float)
0:30 'g_array' (global 5-element array of float)
0:30 'idx' (temp void)
0:? Linker Objects
0:? 'g_array' (global 5-element array of float)
0:? 'g_array_unused' (global 7-element array of float)
0:? 'g_mystruct' (global 2-element array of structure{temp int i, temp float f})
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 72
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 8 "PS_OUTPUT"
MemberName 8(PS_OUTPUT) 0 "color"
Name 12 "main(struct-PS_OUTPUT-vf41;"
Name 11 "ps_output"
Name 18 "g_array"
Name 28 "g_array_unused"
Name 33 "mystruct"
MemberName 33(mystruct) 0 "i"
MemberName 33(mystruct) 1 "f"
Name 37 "g_mystruct"
Name 46 "l_array"
Name 64 "idx"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8(PS_OUTPUT): TypeStruct 7(fvec4)
9: TypePointer Function 8(PS_OUTPUT)
10: TypeFunction 2 9(ptr)
14: TypeInt 32 0
15: 14(int) Constant 5
16: TypeArray 6(float) 15
17: TypePointer Private 16
18(g_array): 17(ptr) Variable Private
19: 6(float) Constant 1065353216
20: 6(float) Constant 1073741824
21: 6(float) Constant 1077936128
22: 6(float) Constant 1082130432
23: 6(float) Constant 1084227584
24: 16 ConstantComposite 19 20 21 22 23
25: 14(int) Constant 7
26: TypeArray 6(float) 25
27: TypePointer Private 26
28(g_array_unused): 27(ptr) Variable Private
29: 6(float) Constant 1086324736
30: 6(float) Constant 1088421888
31: 26 ConstantComposite 19 20 21 22 23 29 30
32: TypeInt 32 1
33(mystruct): TypeStruct 32(int) 6(float)
34: 14(int) Constant 2
35: TypeArray 33(mystruct) 34
36: TypePointer Private 35
37(g_mystruct): 36(ptr) Variable Private
38: 32(int) Constant 1
39:33(mystruct) ConstantComposite 38 20
40: 32(int) Constant 3
41:33(mystruct) ConstantComposite 40 22
42: 35 ConstantComposite 39 41
43: 14(int) Constant 3
44: TypeArray 6(float) 43
45: TypePointer Function 44
47: 44 ConstantComposite 19 20 21
48: 32(int) Constant 0
49: TypePointer Private 6(float)
52: 32(int) Constant 4
56: TypePointer Function 6(float)
63: TypePointer Function 2
70: TypePointer Function 7(fvec4)
4(PixelShaderFunction): 2 Function None 3
5: Label
Store 18(g_array) 24
Store 28(g_array_unused) 31
Store 37(g_mystruct) 42
FunctionEnd
12(main(struct-PS_OUTPUT-vf41;): 2 Function None 10
11(ps_output): 9(ptr) FunctionParameter
13: Label
46(l_array): 45(ptr) Variable Function
64(idx): 63(ptr) Variable Function
Store 46(l_array) 47
50: 49(ptr) AccessChain 18(g_array) 48
51: 6(float) Load 50
53: 49(ptr) AccessChain 18(g_array) 52
54: 6(float) Load 53
55: 6(float) FAdd 51 54
57: 56(ptr) AccessChain 46(l_array) 38
58: 6(float) Load 57
59: 6(float) FAdd 55 58
60: 49(ptr) AccessChain 37(g_mystruct) 48 38
61: 6(float) Load 60
62: 6(float) FAdd 59 61
65: 2 Load 64(idx)
66: 49(ptr) AccessChain 18(g_array) 65
67: 6(float) Load 66
68: 6(float) FAdd 62 67
69: 7(fvec4) CompositeConstruct 68 68 68 68
71: 70(ptr) AccessChain 11(ps_output) 48
Store 71 69
Return
FunctionEnd

View File

@ -0,0 +1,210 @@
hlsl.array.multidim.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:10 Function Parameters:
0:? Sequence
0:14 move second child to first child (temp 4-component vector of float)
0:14 direct index (temp 4-component vector of float)
0:14 direct index (temp 3-element array of 4-component vector of float)
0:14 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:14 Constant:
0:14 1 (const int)
0:14 Constant:
0:14 2 (const int)
0:14 Construct vec4 (temp 4-component vector of float)
0:14 direct index (layout(offset=0 ) temp float)
0:14 direct index (layout(offset=0 ) temp 3-element array of float)
0:14 direct index (layout(offset=0 ) temp 4-element array of 3-element array of float)
0:14 float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float)
0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
0:14 Constant:
0:14 0 (const uint)
0:14 Constant:
0:14 2 (const int)
0:14 Constant:
0:14 3 (const int)
0:14 Constant:
0:14 1 (const int)
0:15 move second child to first child (temp 3-element array of 4-component vector of float)
0:15 direct index (temp 3-element array of 4-component vector of float)
0:15 'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float)
0:15 Constant:
0:15 1 (const int)
0:15 direct index (temp 3-element array of 4-component vector of float)
0:15 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:15 Constant:
0:15 0 (const int)
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 'psout' (temp structure{temp 4-component vector of float Color})
0:18 Constant:
0:18 0 (const int)
0:18 direct index (temp 4-component vector of float)
0:18 direct index (temp 3-element array of 4-component vector of float)
0:18 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:18 Constant:
0:18 1 (const int)
0:18 Constant:
0:18 2 (const int)
0:19 Sequence
0:19 Sequence
0:19 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:19 Color: direct index for structure (temp 4-component vector of float)
0:19 'psout' (temp structure{temp 4-component vector of float Color})
0:19 Constant:
0:19 0 (const int)
0:19 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:10 Function Parameters:
0:? Sequence
0:14 move second child to first child (temp 4-component vector of float)
0:14 direct index (temp 4-component vector of float)
0:14 direct index (temp 3-element array of 4-component vector of float)
0:14 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:14 Constant:
0:14 1 (const int)
0:14 Constant:
0:14 2 (const int)
0:14 Construct vec4 (temp 4-component vector of float)
0:14 direct index (layout(offset=0 ) temp float)
0:14 direct index (layout(offset=0 ) temp 3-element array of float)
0:14 direct index (layout(offset=0 ) temp 4-element array of 3-element array of float)
0:14 float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float)
0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
0:14 Constant:
0:14 0 (const uint)
0:14 Constant:
0:14 2 (const int)
0:14 Constant:
0:14 3 (const int)
0:14 Constant:
0:14 1 (const int)
0:15 move second child to first child (temp 3-element array of 4-component vector of float)
0:15 direct index (temp 3-element array of 4-component vector of float)
0:15 'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float)
0:15 Constant:
0:15 1 (const int)
0:15 direct index (temp 3-element array of 4-component vector of float)
0:15 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:15 Constant:
0:15 0 (const int)
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 'psout' (temp structure{temp 4-component vector of float Color})
0:18 Constant:
0:18 0 (const int)
0:18 direct index (temp 4-component vector of float)
0:18 direct index (temp 3-element array of 4-component vector of float)
0:18 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:18 Constant:
0:18 1 (const int)
0:18 Constant:
0:18 2 (const int)
0:19 Sequence
0:19 Sequence
0:19 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:19 Color: direct index for structure (temp 4-component vector of float)
0:19 'psout' (temp structure{temp 4-component vector of float Color})
0:19 Constant:
0:19 0 (const int)
0:19 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 52
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 48
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 14 "float4_array_1"
Name 23 "$Global"
MemberName 23($Global) 0 "float_array"
Name 25 ""
Name 36 "float4_array_2"
Name 41 "PS_OUTPUT"
MemberName 41(PS_OUTPUT) 0 "Color"
Name 43 "psout"
Name 48 "Color"
Decorate 18 ArrayStride 16
Decorate 20 ArrayStride 48
Decorate 22 ArrayStride 192
MemberDecorate 23($Global) 0 Offset 0
Decorate 23($Global) Block
Decorate 25 DescriptorSet 0
Decorate 48(Color) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeInt 32 0
9: 8(int) Constant 3
10: TypeArray 7(fvec4) 9
11: 8(int) Constant 2
12: TypeArray 10 11
13: TypePointer Function 12
15: TypeInt 32 1
16: 15(int) Constant 1
17: 15(int) Constant 2
18: TypeArray 6(float) 9
19: 8(int) Constant 4
20: TypeArray 18 19
21: 8(int) Constant 5
22: TypeArray 20 21
23($Global): TypeStruct 22
24: TypePointer Uniform 23($Global)
25: 24(ptr) Variable Uniform
26: 15(int) Constant 0
27: 15(int) Constant 3
28: TypePointer Uniform 6(float)
32: TypePointer Function 7(fvec4)
34: TypeArray 10 21
35: TypePointer Function 34
37: TypePointer Function 10
41(PS_OUTPUT): TypeStruct 7(fvec4)
42: TypePointer Function 41(PS_OUTPUT)
47: TypePointer Output 7(fvec4)
48(Color): 47(ptr) Variable Output
4(main): 2 Function None 3
5: Label
14(float4_array_1): 13(ptr) Variable Function
36(float4_array_2): 35(ptr) Variable Function
43(psout): 42(ptr) Variable Function
29: 28(ptr) AccessChain 25 26 17 27 16
30: 6(float) Load 29
31: 7(fvec4) CompositeConstruct 30 30 30 30
33: 32(ptr) AccessChain 14(float4_array_1) 16 17
Store 33 31
38: 37(ptr) AccessChain 14(float4_array_1) 26
39: 10 Load 38
40: 37(ptr) AccessChain 36(float4_array_2) 16
Store 40 39
44: 32(ptr) AccessChain 14(float4_array_1) 16 17
45: 7(fvec4) Load 44
46: 32(ptr) AccessChain 43(psout) 26
Store 46 45
49: 32(ptr) AccessChain 43(psout) 26
50: 7(fvec4) Load 49
Store 48(Color) 50
Return
FunctionEnd

View File

@ -2,34 +2,43 @@ hlsl.assoc.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
0:8 Function Parameters:
0:8 'a1' (in 4-component vector of float)
0:8 'a2' (in 4-component vector of float)
0:8 'a3' (in 4-component vector of float)
0:8 'a4' (in 4-component vector of float)
0:8 'a5' (in 4-component vector of float)
0:8 'a1' (layout(location=0 ) in 4-component vector of float)
0:8 'a2' (layout(location=1 ) in 4-component vector of float)
0:8 'a3' (layout(location=2 ) in 4-component vector of float)
0:8 'a4' (layout(location=3 ) in 4-component vector of float)
0:8 'a5' (layout(location=4 ) in 4-component vector of float)
0:? Sequence
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a1' (in 4-component vector of float)
0:9 'a1' (layout(location=0 ) in 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a2' (in 4-component vector of float)
0:9 'a2' (layout(location=1 ) in 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a3' (in 4-component vector of float)
0:9 'a3' (layout(location=2 ) in 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a4' (in 4-component vector of float)
0:9 'a5' (in 4-component vector of float)
0:10 Branch: Return with expression
0:10 add (temp 4-component vector of float)
0:9 'a4' (layout(location=3 ) in 4-component vector of float)
0:9 'a5' (layout(location=4 ) in 4-component vector of float)
0:10 Sequence
0:10 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 'a1' (in 4-component vector of float)
0:10 'a2' (in 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 'a3' (in 4-component vector of float)
0:10 'a4' (in 4-component vector of float)
0:10 'a5' (in 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 'a1' (layout(location=0 ) in 4-component vector of float)
0:10 'a2' (layout(location=1 ) in 4-component vector of float)
0:10 'a3' (layout(location=2 ) in 4-component vector of float)
0:10 'a4' (layout(location=3 ) in 4-component vector of float)
0:10 'a5' (layout(location=4 ) in 4-component vector of float)
0:10 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'a1' (layout(location=0 ) in 4-component vector of float)
0:? 'a2' (layout(location=1 ) in 4-component vector of float)
0:? 'a3' (layout(location=2 ) in 4-component vector of float)
0:? 'a4' (layout(location=3 ) in 4-component vector of float)
0:? 'a5' (layout(location=4 ) in 4-component vector of float)
Linked fragment stage:
@ -38,51 +47,66 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
0:8 Function Parameters:
0:8 'a1' (in 4-component vector of float)
0:8 'a2' (in 4-component vector of float)
0:8 'a3' (in 4-component vector of float)
0:8 'a4' (in 4-component vector of float)
0:8 'a5' (in 4-component vector of float)
0:8 'a1' (layout(location=0 ) in 4-component vector of float)
0:8 'a2' (layout(location=1 ) in 4-component vector of float)
0:8 'a3' (layout(location=2 ) in 4-component vector of float)
0:8 'a4' (layout(location=3 ) in 4-component vector of float)
0:8 'a5' (layout(location=4 ) in 4-component vector of float)
0:? Sequence
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a1' (in 4-component vector of float)
0:9 'a1' (layout(location=0 ) in 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a2' (in 4-component vector of float)
0:9 'a2' (layout(location=1 ) in 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a3' (in 4-component vector of float)
0:9 'a3' (layout(location=2 ) in 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a4' (in 4-component vector of float)
0:9 'a5' (in 4-component vector of float)
0:10 Branch: Return with expression
0:10 add (temp 4-component vector of float)
0:9 'a4' (layout(location=3 ) in 4-component vector of float)
0:9 'a5' (layout(location=4 ) in 4-component vector of float)
0:10 Sequence
0:10 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 'a1' (in 4-component vector of float)
0:10 'a2' (in 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 'a3' (in 4-component vector of float)
0:10 'a4' (in 4-component vector of float)
0:10 'a5' (in 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 'a1' (layout(location=0 ) in 4-component vector of float)
0:10 'a2' (layout(location=1 ) in 4-component vector of float)
0:10 'a3' (layout(location=2 ) in 4-component vector of float)
0:10 'a4' (layout(location=3 ) in 4-component vector of float)
0:10 'a5' (layout(location=4 ) in 4-component vector of float)
0:10 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'a1' (layout(location=0 ) in 4-component vector of float)
0:? 'a2' (layout(location=1 ) in 4-component vector of float)
0:? 'a3' (layout(location=2 ) in 4-component vector of float)
0:? 'a4' (layout(location=3 ) in 4-component vector of float)
0:? 'a5' (layout(location=4 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25
// Id's are bound by 27
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 9 10 11 12 13
EntryPoint Fragment 4 "PixelShaderFunction" 9 10 11 12 13 16
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 9 "a1"
Name 10 "a2"
Name 11 "a3"
Name 12 "a4"
Name 13 "a5"
Name 16 "@entryPointOutput"
Decorate 9(a1) Location 0
Decorate 10(a2) Location 1
Decorate 11(a3) Location 2
Decorate 12(a4) Location 3
Decorate 13(a5) Location 4
Decorate 16(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -93,6 +117,8 @@ gl_FragCoord origin is upper left
11(a3): 8(ptr) Variable Input
12(a4): 8(ptr) Variable Input
13(a5): 8(ptr) Variable Input
15: TypePointer Output 7(fvec4)
16(@entryPointOutput): 15(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
14: 7(fvec4) Load 13(a5)
@ -100,14 +126,15 @@ gl_FragCoord origin is upper left
Store 11(a3) 14
Store 10(a2) 14
Store 9(a1) 14
15: 7(fvec4) Load 9(a1)
16: 7(fvec4) Load 10(a2)
17: 7(fvec4) FAdd 15 16
18: 7(fvec4) Load 11(a3)
19: 7(fvec4) Load 12(a4)
20: 7(fvec4) FAdd 18 19
21: 7(fvec4) FAdd 17 20
22: 7(fvec4) Load 13(a5)
17: 7(fvec4) Load 9(a1)
18: 7(fvec4) Load 10(a2)
19: 7(fvec4) FAdd 17 18
20: 7(fvec4) Load 11(a3)
21: 7(fvec4) FAdd 19 20
22: 7(fvec4) Load 12(a4)
23: 7(fvec4) FAdd 21 22
ReturnValue 23
24: 7(fvec4) Load 13(a5)
25: 7(fvec4) FAdd 23 24
Store 16(@entryPointOutput) 25
Return
FunctionEnd

View File

@ -2,9 +2,9 @@ hlsl.attribute.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:2 Function Definition: PixelShaderFunction(vf4; (temp void)
0:2 Function Parameters:
0:2 'input' (in 4-component vector of float)
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:11 Test condition and select (temp void)
0:11 Condition
@ -12,6 +12,7 @@ gl_FragCoord origin is upper left
0:11 0 (const int)
0:11 true case is null
0:? Linker Objects
0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
@ -20,9 +21,9 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:2 Function Definition: PixelShaderFunction(vf4; (temp void)
0:2 Function Parameters:
0:2 'input' (in 4-component vector of float)
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:11 Test condition and select (temp void)
0:11 Condition
@ -30,22 +31,28 @@ gl_FragCoord origin is upper left
0:11 0 (const int)
0:11 true case is null
0:? Linker Objects
0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 10
// Id's are bound by 14
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
EntryPoint Fragment 4 "PixelShaderFunction" 13
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 13 "input"
Decorate 13(input) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: 6(int) Constant 0
10: TypeFloat 32
11: TypeVector 10(float) 4
12: TypePointer Input 11(fvec4)
13(input): 12(ptr) Variable Input
4(PixelShaderFunction): 2 Function None 3
5: Label
SelectionMerge 9 None

View File

@ -0,0 +1,58 @@
hlsl.basic.comp
Shader version: 450
local_size = (1, 1, 1)
0:? Sequence
0:4 Function Definition: main(i1; (temp void)
0:4 Function Parameters:
0:4 'dti' (in int LocalInvocationID)
0:? Sequence
0:5 'dti' (in int LocalInvocationID)
0:? Linker Objects
0:? 'a' (shared 100-element array of 4-component vector of float)
0:? 'dti' (in int LocalInvocationID)
Linked compute stage:
Shader version: 450
local_size = (1, 1, 1)
0:? Sequence
0:4 Function Definition: main(i1; (temp void)
0:4 Function Parameters:
0:4 'dti' (in int LocalInvocationID)
0:? Sequence
0:5 'dti' (in int LocalInvocationID)
0:? Linker Objects
0:? 'a' (shared 100-element array of 4-component vector of float)
0:? 'dti' (in int LocalInvocationID)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 16
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 8
ExecutionMode 4 LocalSize 1 1 1
Name 4 "main"
Name 8 "dti"
Name 15 "a"
Decorate 8(dti) BuiltIn LocalInvocationId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Input 6(int)
8(dti): 7(ptr) Variable Input
9: TypeFloat 32
10: TypeVector 9(float) 4
11: TypeInt 32 0
12: 11(int) Constant 100
13: TypeArray 10(fvec4) 12
14: TypePointer Workgroup 13
15(a): 14(ptr) Variable Workgroup
4(main): 2 Function None 3
5: Label
Return
FunctionEnd

View File

@ -0,0 +1,199 @@
hlsl.buffer.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:30 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:30 Function Parameters:
0:30 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:31 Sequence
0:31 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:31 add (temp 4-component vector of float)
0:31 add (temp 4-component vector of float)
0:31 add (temp 4-component vector of float)
0:31 add (temp 4-component vector of float)
0:31 'input' (layout(location=0 ) in 4-component vector of float)
0:31 v1: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float)
0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1})
0:31 Constant:
0:31 0 (const uint)
0:31 v2: direct index for structure (layout(row_major std430 ) buffer 4-component vector of float)
0:31 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2})
0:31 Constant:
0:31 0 (const uint)
0:31 v3: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float)
0:31 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3})
0:31 Constant:
0:31 0 (const uint)
0:31 v4: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float)
0:31 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...})
0:31 Constant:
0:31 0 (const uint)
0:31 Branch: Return
0:? Linker Objects
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1})
0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2})
0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3})
0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...})
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:30 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:30 Function Parameters:
0:30 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:31 Sequence
0:31 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:31 add (temp 4-component vector of float)
0:31 add (temp 4-component vector of float)
0:31 add (temp 4-component vector of float)
0:31 add (temp 4-component vector of float)
0:31 'input' (layout(location=0 ) in 4-component vector of float)
0:31 v1: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float)
0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1})
0:31 Constant:
0:31 0 (const uint)
0:31 v2: direct index for structure (layout(row_major std430 ) buffer 4-component vector of float)
0:31 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2})
0:31 Constant:
0:31 0 (const uint)
0:31 v3: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float)
0:31 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3})
0:31 Constant:
0:31 0 (const uint)
0:31 v4: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float)
0:31 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...})
0:31 Constant:
0:31 0 (const uint)
0:31 Branch: Return
0:? Linker Objects
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1})
0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2})
0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3})
0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...})
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 42
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 9 11
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 9 "@entryPointOutput"
Name 11 "input"
Name 13 ""
MemberName 13 0 "v1"
Name 15 ""
Name 22 ""
MemberName 22 0 "v2"
Name 24 ""
Name 28 "cbufName"
MemberName 28(cbufName) 0 "v3"
MemberName 28(cbufName) 1 "i3"
Name 30 ""
Name 35 "tbufName"
MemberName 35(tbufName) 0 "v4"
MemberName 35(tbufName) 1 "i4"
MemberName 35(tbufName) 2 "f1"
MemberName 35(tbufName) 3 "f3"
MemberName 35(tbufName) 4 "f4"
MemberName 35(tbufName) 5 "f5"
MemberName 35(tbufName) 6 "f6"
MemberName 35(tbufName) 7 "f7"
MemberName 35(tbufName) 8 "m1"
MemberName 35(tbufName) 9 "m2"
MemberName 35(tbufName) 10 "m3"
MemberName 35(tbufName) 11 "m4"
Name 37 ""
Decorate 9(@entryPointOutput) Location 0
Decorate 11(input) Location 0
MemberDecorate 13 0 Offset 0
Decorate 13 Block
Decorate 15 DescriptorSet 0
MemberDecorate 22 0 Offset 0
Decorate 22 BufferBlock
Decorate 24 DescriptorSet 0
MemberDecorate 28(cbufName) 0 Offset 0
MemberDecorate 28(cbufName) 1 Offset 20
Decorate 28(cbufName) Block
Decorate 30 DescriptorSet 10
Decorate 30 Binding 2
MemberDecorate 35(tbufName) 0 Offset 16
MemberDecorate 35(tbufName) 1 Offset 48
MemberDecorate 35(tbufName) 2 Offset 60
MemberDecorate 35(tbufName) 3 Offset 64
MemberDecorate 35(tbufName) 4 Offset 68
MemberDecorate 35(tbufName) 5 Offset 72
MemberDecorate 35(tbufName) 6 Offset 76
MemberDecorate 35(tbufName) 7 Offset 80
MemberDecorate 35(tbufName) 8 RowMajor
MemberDecorate 35(tbufName) 8 Offset 96
MemberDecorate 35(tbufName) 8 MatrixStride 16
MemberDecorate 35(tbufName) 9 ColMajor
MemberDecorate 35(tbufName) 9 Offset 160
MemberDecorate 35(tbufName) 9 MatrixStride 16
MemberDecorate 35(tbufName) 10 RowMajor
MemberDecorate 35(tbufName) 10 Offset 208
MemberDecorate 35(tbufName) 10 MatrixStride 16
MemberDecorate 35(tbufName) 11 RowMajor
MemberDecorate 35(tbufName) 11 Offset 272
MemberDecorate 35(tbufName) 11 MatrixStride 16
Decorate 35(tbufName) BufferBlock
Decorate 37 DescriptorSet 0
Decorate 37 Binding 8
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Output 7(fvec4)
9(@entryPointOutput): 8(ptr) Variable Output
10: TypePointer Input 7(fvec4)
11(input): 10(ptr) Variable Input
13: TypeStruct 7(fvec4)
14: TypePointer Uniform 13(struct)
15: 14(ptr) Variable Uniform
16: TypeInt 32 1
17: 16(int) Constant 0
18: TypePointer Uniform 7(fvec4)
22: TypeStruct 7(fvec4)
23: TypePointer Uniform 22(struct)
24: 23(ptr) Variable Uniform
28(cbufName): TypeStruct 7(fvec4) 16(int)
29: TypePointer Uniform 28(cbufName)
30: 29(ptr) Variable Uniform
34: TypeMatrix 7(fvec4) 3
35(tbufName): TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 34 34 34 34
36: TypePointer Uniform 35(tbufName)
37: 36(ptr) Variable Uniform
4(PixelShaderFunction): 2 Function None 3
5: Label
12: 7(fvec4) Load 11(input)
19: 18(ptr) AccessChain 15 17
20: 7(fvec4) Load 19
21: 7(fvec4) FAdd 12 20
25: 18(ptr) AccessChain 24 17
26: 7(fvec4) Load 25
27: 7(fvec4) FAdd 21 26
31: 18(ptr) AccessChain 30 17
32: 7(fvec4) Load 31
33: 7(fvec4) FAdd 27 32
38: 18(ptr) AccessChain 37 17
39: 7(fvec4) Load 38
40: 7(fvec4) FAdd 33 39
Store 9(@entryPointOutput) 40
Return
FunctionEnd

View File

@ -0,0 +1,553 @@
hlsl.calculatelod.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24 Function Parameters:
0:? Sequence
0:28 Sequence
0:28 move second child to first child (temp float)
0:28 'txval10' (temp float)
0:28 direct index (temp float)
0:? textureQueryLod (temp float)
0:28 Construct combined texture-sampler (temp sampler1DArray)
0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:28 Constant:
0:28 0.100000
0:28 Constant:
0:28 0 (const int)
0:29 Sequence
0:29 move second child to first child (temp float)
0:29 'txval11' (temp float)
0:29 direct index (temp float)
0:? textureQueryLod (temp float)
0:29 Construct combined texture-sampler (temp isampler1DArray)
0:29 'g_tTex1di4a' (uniform itexture1DArray)
0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:29 Constant:
0:29 0.200000
0:29 Constant:
0:29 0 (const int)
0:30 Sequence
0:30 move second child to first child (temp float)
0:30 'txval12' (temp float)
0:30 direct index (temp float)
0:? textureQueryLod (temp float)
0:30 Construct combined texture-sampler (temp usampler1DArray)
0:30 'g_tTex1du4a' (uniform utexture1DArray)
0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:30 Constant:
0:30 0.300000
0:30 Constant:
0:30 0 (const int)
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'txval20' (temp float)
0:32 direct index (temp float)
0:? textureQueryLod (temp float)
0:32 Construct combined texture-sampler (temp sampler2DArray)
0:32 'g_tTex2df4a' (uniform texture2DArray)
0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:32 Constant:
0:32 0 (const int)
0:33 Sequence
0:33 move second child to first child (temp float)
0:33 'txval21' (temp float)
0:33 direct index (temp float)
0:? textureQueryLod (temp float)
0:33 Construct combined texture-sampler (temp isampler2DArray)
0:33 'g_tTex2di4a' (uniform itexture2DArray)
0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:33 Constant:
0:33 0 (const int)
0:34 Sequence
0:34 move second child to first child (temp float)
0:34 'txval22' (temp float)
0:34 direct index (temp float)
0:? textureQueryLod (temp float)
0:34 Construct combined texture-sampler (temp usampler2DArray)
0:34 'g_tTex2du4a' (uniform utexture2DArray)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:34 Constant:
0:34 0 (const int)
0:36 Sequence
0:36 move second child to first child (temp float)
0:36 'txval40' (temp float)
0:36 direct index (temp float)
0:? textureQueryLod (temp float)
0:36 Construct combined texture-sampler (temp samplerCubeArray)
0:36 'g_tTexcdf4a' (uniform textureCubeArray)
0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:36 Constant:
0:36 0 (const int)
0:37 Sequence
0:37 move second child to first child (temp float)
0:37 'txval41' (temp float)
0:37 direct index (temp float)
0:? textureQueryLod (temp float)
0:37 Construct combined texture-sampler (temp isamplerCubeArray)
0:37 'g_tTexcdi4a' (uniform itextureCubeArray)
0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
0:? 0.600000
0:37 Constant:
0:37 0 (const int)
0:38 Sequence
0:38 move second child to first child (temp float)
0:38 'txval42' (temp float)
0:38 direct index (temp float)
0:? textureQueryLod (temp float)
0:38 Construct combined texture-sampler (temp usamplerCubeArray)
0:38 'g_tTexcdu4a' (uniform utextureCubeArray)
0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:38 Constant:
0:38 0 (const int)
0:40 move second child to first child (temp 4-component vector of float)
0:40 Color: direct index for structure (temp 4-component vector of float)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 0 (const int)
0:40 Constant:
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:41 move second child to first child (temp float)
0:41 Depth: direct index for structure (temp float)
0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:41 Constant:
0:41 1 (const int)
0:41 Constant:
0:41 1.000000
0:43 Sequence
0:43 Sequence
0:43 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:43 Color: direct index for structure (temp 4-component vector of float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 0 (const int)
0:43 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:43 Depth: direct index for structure (temp float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24 Function Parameters:
0:? Sequence
0:28 Sequence
0:28 move second child to first child (temp float)
0:28 'txval10' (temp float)
0:28 direct index (temp float)
0:? textureQueryLod (temp float)
0:28 Construct combined texture-sampler (temp sampler1DArray)
0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:28 Constant:
0:28 0.100000
0:28 Constant:
0:28 0 (const int)
0:29 Sequence
0:29 move second child to first child (temp float)
0:29 'txval11' (temp float)
0:29 direct index (temp float)
0:? textureQueryLod (temp float)
0:29 Construct combined texture-sampler (temp isampler1DArray)
0:29 'g_tTex1di4a' (uniform itexture1DArray)
0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:29 Constant:
0:29 0.200000
0:29 Constant:
0:29 0 (const int)
0:30 Sequence
0:30 move second child to first child (temp float)
0:30 'txval12' (temp float)
0:30 direct index (temp float)
0:? textureQueryLod (temp float)
0:30 Construct combined texture-sampler (temp usampler1DArray)
0:30 'g_tTex1du4a' (uniform utexture1DArray)
0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:30 Constant:
0:30 0.300000
0:30 Constant:
0:30 0 (const int)
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'txval20' (temp float)
0:32 direct index (temp float)
0:? textureQueryLod (temp float)
0:32 Construct combined texture-sampler (temp sampler2DArray)
0:32 'g_tTex2df4a' (uniform texture2DArray)
0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:32 Constant:
0:32 0 (const int)
0:33 Sequence
0:33 move second child to first child (temp float)
0:33 'txval21' (temp float)
0:33 direct index (temp float)
0:? textureQueryLod (temp float)
0:33 Construct combined texture-sampler (temp isampler2DArray)
0:33 'g_tTex2di4a' (uniform itexture2DArray)
0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:33 Constant:
0:33 0 (const int)
0:34 Sequence
0:34 move second child to first child (temp float)
0:34 'txval22' (temp float)
0:34 direct index (temp float)
0:? textureQueryLod (temp float)
0:34 Construct combined texture-sampler (temp usampler2DArray)
0:34 'g_tTex2du4a' (uniform utexture2DArray)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:34 Constant:
0:34 0 (const int)
0:36 Sequence
0:36 move second child to first child (temp float)
0:36 'txval40' (temp float)
0:36 direct index (temp float)
0:? textureQueryLod (temp float)
0:36 Construct combined texture-sampler (temp samplerCubeArray)
0:36 'g_tTexcdf4a' (uniform textureCubeArray)
0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:36 Constant:
0:36 0 (const int)
0:37 Sequence
0:37 move second child to first child (temp float)
0:37 'txval41' (temp float)
0:37 direct index (temp float)
0:? textureQueryLod (temp float)
0:37 Construct combined texture-sampler (temp isamplerCubeArray)
0:37 'g_tTexcdi4a' (uniform itextureCubeArray)
0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
0:? 0.600000
0:37 Constant:
0:37 0 (const int)
0:38 Sequence
0:38 move second child to first child (temp float)
0:38 'txval42' (temp float)
0:38 direct index (temp float)
0:? textureQueryLod (temp float)
0:38 Construct combined texture-sampler (temp usamplerCubeArray)
0:38 'g_tTexcdu4a' (uniform utextureCubeArray)
0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:38 Constant:
0:38 0 (const int)
0:40 move second child to first child (temp 4-component vector of float)
0:40 Color: direct index for structure (temp 4-component vector of float)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 0 (const int)
0:40 Constant:
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:41 move second child to first child (temp float)
0:41 Depth: direct index for structure (temp float)
0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:41 Constant:
0:41 1 (const int)
0:41 Constant:
0:41 1.000000
0:43 Sequence
0:43 Sequence
0:43 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:43 Color: direct index for structure (temp 4-component vector of float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 0 (const int)
0:43 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:43 Depth: direct index for structure (temp float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 141
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
Capability ImageQuery
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 132 136
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 8 "txval10"
Name 11 "g_tTex1df4a"
Name 15 "g_sSamp"
Name 25 "txval11"
Name 28 "g_tTex1di4a"
Name 36 "txval12"
Name 40 "g_tTex1du4a"
Name 48 "txval20"
Name 51 "g_tTex2df4a"
Name 59 "txval21"
Name 62 "g_tTex2di4a"
Name 71 "txval22"
Name 74 "g_tTex2du4a"
Name 84 "txval40"
Name 87 "g_tTexcdf4a"
Name 96 "txval41"
Name 99 "g_tTexcdi4a"
Name 107 "txval42"
Name 110 "g_tTexcdu4a"
Name 122 "PS_OUTPUT"
MemberName 122(PS_OUTPUT) 0 "Color"
MemberName 122(PS_OUTPUT) 1 "Depth"
Name 124 "psout"
Name 132 "Color"
Name 136 "Depth"
Name 140 "g_tTex1df4"
Decorate 11(g_tTex1df4a) DescriptorSet 0
Decorate 11(g_tTex1df4a) Binding 1
Decorate 15(g_sSamp) DescriptorSet 0
Decorate 15(g_sSamp) Binding 0
Decorate 28(g_tTex1di4a) DescriptorSet 0
Decorate 40(g_tTex1du4a) DescriptorSet 0
Decorate 51(g_tTex2df4a) DescriptorSet 0
Decorate 62(g_tTex2di4a) DescriptorSet 0
Decorate 74(g_tTex2du4a) DescriptorSet 0
Decorate 87(g_tTexcdf4a) DescriptorSet 0
Decorate 99(g_tTexcdi4a) DescriptorSet 0
Decorate 110(g_tTexcdu4a) DescriptorSet 0
Decorate 132(Color) Location 0
Decorate 136(Depth) BuiltIn FragDepth
Decorate 140(g_tTex1df4) DescriptorSet 0
Decorate 140(g_tTex1df4) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypeImage 6(float) 1D array sampled format:Unknown
10: TypePointer UniformConstant 9
11(g_tTex1df4a): 10(ptr) Variable UniformConstant
13: TypeSampler
14: TypePointer UniformConstant 13
15(g_sSamp): 14(ptr) Variable UniformConstant
17: TypeSampledImage 9
19: 6(float) Constant 1036831949
20: TypeVector 6(float) 2
22: TypeInt 32 1
23: 22(int) Constant 0
26: TypeImage 22(int) 1D array sampled format:Unknown
27: TypePointer UniformConstant 26
28(g_tTex1di4a): 27(ptr) Variable UniformConstant
31: TypeSampledImage 26
33: 6(float) Constant 1045220557
37: TypeInt 32 0
38: TypeImage 37(int) 1D array sampled format:Unknown
39: TypePointer UniformConstant 38
40(g_tTex1du4a): 39(ptr) Variable UniformConstant
43: TypeSampledImage 38
45: 6(float) Constant 1050253722
49: TypeImage 6(float) 2D array sampled format:Unknown
50: TypePointer UniformConstant 49
51(g_tTex2df4a): 50(ptr) Variable UniformConstant
54: TypeSampledImage 49
56: 20(fvec2) ConstantComposite 19 33
60: TypeImage 22(int) 2D array sampled format:Unknown
61: TypePointer UniformConstant 60
62(g_tTex2di4a): 61(ptr) Variable UniformConstant
65: TypeSampledImage 60
67: 6(float) Constant 1053609165
68: 20(fvec2) ConstantComposite 45 67
72: TypeImage 37(int) 2D array sampled format:Unknown
73: TypePointer UniformConstant 72
74(g_tTex2du4a): 73(ptr) Variable UniformConstant
77: TypeSampledImage 72
79: 6(float) Constant 1056964608
80: 6(float) Constant 1058642330
81: 20(fvec2) ConstantComposite 79 80
85: TypeImage 6(float) Cube array sampled format:Unknown
86: TypePointer UniformConstant 85
87(g_tTexcdf4a): 86(ptr) Variable UniformConstant
90: TypeSampledImage 85
92: TypeVector 6(float) 3
93: 92(fvec3) ConstantComposite 19 33 45
97: TypeImage 22(int) Cube array sampled format:Unknown
98: TypePointer UniformConstant 97
99(g_tTexcdi4a): 98(ptr) Variable UniformConstant
102: TypeSampledImage 97
104: 92(fvec3) ConstantComposite 67 79 80
108: TypeImage 37(int) Cube array sampled format:Unknown
109: TypePointer UniformConstant 108
110(g_tTexcdu4a): 109(ptr) Variable UniformConstant
113: TypeSampledImage 108
115: 6(float) Constant 1060320051
116: 6(float) Constant 1061997773
117: 6(float) Constant 1063675494
118: 92(fvec3) ConstantComposite 115 116 117
121: TypeVector 6(float) 4
122(PS_OUTPUT): TypeStruct 121(fvec4) 6(float)
123: TypePointer Function 122(PS_OUTPUT)
125: 6(float) Constant 1065353216
126: 121(fvec4) ConstantComposite 125 125 125 125
127: TypePointer Function 121(fvec4)
129: 22(int) Constant 1
131: TypePointer Output 121(fvec4)
132(Color): 131(ptr) Variable Output
135: TypePointer Output 6(float)
136(Depth): 135(ptr) Variable Output
140(g_tTex1df4): 10(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(txval10): 7(ptr) Variable Function
25(txval11): 7(ptr) Variable Function
36(txval12): 7(ptr) Variable Function
48(txval20): 7(ptr) Variable Function
59(txval21): 7(ptr) Variable Function
71(txval22): 7(ptr) Variable Function
84(txval40): 7(ptr) Variable Function
96(txval41): 7(ptr) Variable Function
107(txval42): 7(ptr) Variable Function
124(psout): 123(ptr) Variable Function
12: 9 Load 11(g_tTex1df4a)
16: 13 Load 15(g_sSamp)
18: 17 SampledImage 12 16
21: 20(fvec2) ImageQueryLod 18 19
24: 6(float) CompositeExtract 21 0
Store 8(txval10) 24
29: 26 Load 28(g_tTex1di4a)
30: 13 Load 15(g_sSamp)
32: 31 SampledImage 29 30
34: 20(fvec2) ImageQueryLod 32 33
35: 6(float) CompositeExtract 34 0
Store 25(txval11) 35
41: 38 Load 40(g_tTex1du4a)
42: 13 Load 15(g_sSamp)
44: 43 SampledImage 41 42
46: 20(fvec2) ImageQueryLod 44 45
47: 6(float) CompositeExtract 46 0
Store 36(txval12) 47
52: 49 Load 51(g_tTex2df4a)
53: 13 Load 15(g_sSamp)
55: 54 SampledImage 52 53
57: 20(fvec2) ImageQueryLod 55 56
58: 6(float) CompositeExtract 57 0
Store 48(txval20) 58
63: 60 Load 62(g_tTex2di4a)
64: 13 Load 15(g_sSamp)
66: 65 SampledImage 63 64
69: 20(fvec2) ImageQueryLod 66 68
70: 6(float) CompositeExtract 69 0
Store 59(txval21) 70
75: 72 Load 74(g_tTex2du4a)
76: 13 Load 15(g_sSamp)
78: 77 SampledImage 75 76
82: 20(fvec2) ImageQueryLod 78 81
83: 6(float) CompositeExtract 82 0
Store 71(txval22) 83
88: 85 Load 87(g_tTexcdf4a)
89: 13 Load 15(g_sSamp)
91: 90 SampledImage 88 89
94: 20(fvec2) ImageQueryLod 91 93
95: 6(float) CompositeExtract 94 0
Store 84(txval40) 95
100: 97 Load 99(g_tTexcdi4a)
101: 13 Load 15(g_sSamp)
103: 102 SampledImage 100 101
105: 20(fvec2) ImageQueryLod 103 104
106: 6(float) CompositeExtract 105 0
Store 96(txval41) 106
111: 108 Load 110(g_tTexcdu4a)
112: 13 Load 15(g_sSamp)
114: 113 SampledImage 111 112
119: 20(fvec2) ImageQueryLod 114 118
120: 6(float) CompositeExtract 119 0
Store 107(txval42) 120
128: 127(ptr) AccessChain 124(psout) 23
Store 128 126
130: 7(ptr) AccessChain 124(psout) 129
Store 130 125
133: 127(ptr) AccessChain 124(psout) 23
134: 121(fvec4) Load 133
Store 132(Color) 134
137: 7(ptr) AccessChain 124(psout) 129
138: 6(float) Load 137
Store 136(Depth) 138
Return
FunctionEnd

View File

@ -0,0 +1,358 @@
hlsl.calculatelodunclamped.dx10.frag
ERROR: 0:28: '' : unimplemented: CalculateLevelOfDetailUnclamped
ERROR: 0:29: '' : unimplemented: CalculateLevelOfDetailUnclamped
ERROR: 0:30: '' : unimplemented: CalculateLevelOfDetailUnclamped
ERROR: 0:32: '' : unimplemented: CalculateLevelOfDetailUnclamped
ERROR: 0:33: '' : unimplemented: CalculateLevelOfDetailUnclamped
ERROR: 0:34: '' : unimplemented: CalculateLevelOfDetailUnclamped
ERROR: 0:36: '' : unimplemented: CalculateLevelOfDetailUnclamped
ERROR: 0:37: '' : unimplemented: CalculateLevelOfDetailUnclamped
ERROR: 0:38: '' : unimplemented: CalculateLevelOfDetailUnclamped
ERROR: 9 compilation errors. No code generated.
Shader version: 450
gl_FragCoord origin is upper left
ERROR: node is still EOpNull!
0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24 Function Parameters:
0:? Sequence
0:28 Sequence
0:28 move second child to first child (temp float)
0:28 'txval10' (temp float)
0:28 direct index (temp float)
0:? textureQueryLod (temp float)
0:28 Construct combined texture-sampler (temp sampler1DArray)
0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:28 Constant:
0:28 0.100000
0:28 Constant:
0:28 0 (const int)
0:29 Sequence
0:29 move second child to first child (temp float)
0:29 'txval11' (temp float)
0:29 direct index (temp float)
0:? textureQueryLod (temp float)
0:29 Construct combined texture-sampler (temp isampler1DArray)
0:29 'g_tTex1di4a' (uniform itexture1DArray)
0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:29 Constant:
0:29 0.200000
0:29 Constant:
0:29 0 (const int)
0:30 Sequence
0:30 move second child to first child (temp float)
0:30 'txval12' (temp float)
0:30 direct index (temp float)
0:? textureQueryLod (temp float)
0:30 Construct combined texture-sampler (temp usampler1DArray)
0:30 'g_tTex1du4a' (uniform utexture1DArray)
0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:30 Constant:
0:30 0.300000
0:30 Constant:
0:30 0 (const int)
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'txval20' (temp float)
0:32 direct index (temp float)
0:? textureQueryLod (temp float)
0:32 Construct combined texture-sampler (temp sampler2DArray)
0:32 'g_tTex2df4a' (uniform texture2DArray)
0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:32 Constant:
0:32 0 (const int)
0:33 Sequence
0:33 move second child to first child (temp float)
0:33 'txval21' (temp float)
0:33 direct index (temp float)
0:? textureQueryLod (temp float)
0:33 Construct combined texture-sampler (temp isampler2DArray)
0:33 'g_tTex2di4a' (uniform itexture2DArray)
0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:33 Constant:
0:33 0 (const int)
0:34 Sequence
0:34 move second child to first child (temp float)
0:34 'txval22' (temp float)
0:34 direct index (temp float)
0:? textureQueryLod (temp float)
0:34 Construct combined texture-sampler (temp usampler2DArray)
0:34 'g_tTex2du4a' (uniform utexture2DArray)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:34 Constant:
0:34 0 (const int)
0:36 Sequence
0:36 move second child to first child (temp float)
0:36 'txval40' (temp float)
0:36 direct index (temp float)
0:? textureQueryLod (temp float)
0:36 Construct combined texture-sampler (temp samplerCubeArray)
0:36 'g_tTexcdf4a' (uniform textureCubeArray)
0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:36 Constant:
0:36 0 (const int)
0:37 Sequence
0:37 move second child to first child (temp float)
0:37 'txval41' (temp float)
0:37 direct index (temp float)
0:? textureQueryLod (temp float)
0:37 Construct combined texture-sampler (temp isamplerCubeArray)
0:37 'g_tTexcdi4a' (uniform itextureCubeArray)
0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
0:? 0.600000
0:37 Constant:
0:37 0 (const int)
0:38 Sequence
0:38 move second child to first child (temp float)
0:38 'txval42' (temp float)
0:38 direct index (temp float)
0:? textureQueryLod (temp float)
0:38 Construct combined texture-sampler (temp usamplerCubeArray)
0:38 'g_tTexcdu4a' (uniform utextureCubeArray)
0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:38 Constant:
0:38 0 (const int)
0:40 move second child to first child (temp 4-component vector of float)
0:40 Color: direct index for structure (temp 4-component vector of float)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 0 (const int)
0:40 Constant:
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:41 move second child to first child (temp float)
0:41 Depth: direct index for structure (temp float)
0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:41 Constant:
0:41 1 (const int)
0:41 Constant:
0:41 1.000000
0:43 Sequence
0:43 Sequence
0:43 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:43 Color: direct index for structure (temp 4-component vector of float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 0 (const int)
0:43 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:43 Depth: direct index for structure (temp float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
ERROR: node is still EOpNull!
0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24 Function Parameters:
0:? Sequence
0:28 Sequence
0:28 move second child to first child (temp float)
0:28 'txval10' (temp float)
0:28 direct index (temp float)
0:? textureQueryLod (temp float)
0:28 Construct combined texture-sampler (temp sampler1DArray)
0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:28 Constant:
0:28 0.100000
0:28 Constant:
0:28 0 (const int)
0:29 Sequence
0:29 move second child to first child (temp float)
0:29 'txval11' (temp float)
0:29 direct index (temp float)
0:? textureQueryLod (temp float)
0:29 Construct combined texture-sampler (temp isampler1DArray)
0:29 'g_tTex1di4a' (uniform itexture1DArray)
0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:29 Constant:
0:29 0.200000
0:29 Constant:
0:29 0 (const int)
0:30 Sequence
0:30 move second child to first child (temp float)
0:30 'txval12' (temp float)
0:30 direct index (temp float)
0:? textureQueryLod (temp float)
0:30 Construct combined texture-sampler (temp usampler1DArray)
0:30 'g_tTex1du4a' (uniform utexture1DArray)
0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:30 Constant:
0:30 0.300000
0:30 Constant:
0:30 0 (const int)
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'txval20' (temp float)
0:32 direct index (temp float)
0:? textureQueryLod (temp float)
0:32 Construct combined texture-sampler (temp sampler2DArray)
0:32 'g_tTex2df4a' (uniform texture2DArray)
0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:32 Constant:
0:32 0 (const int)
0:33 Sequence
0:33 move second child to first child (temp float)
0:33 'txval21' (temp float)
0:33 direct index (temp float)
0:? textureQueryLod (temp float)
0:33 Construct combined texture-sampler (temp isampler2DArray)
0:33 'g_tTex2di4a' (uniform itexture2DArray)
0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:33 Constant:
0:33 0 (const int)
0:34 Sequence
0:34 move second child to first child (temp float)
0:34 'txval22' (temp float)
0:34 direct index (temp float)
0:? textureQueryLod (temp float)
0:34 Construct combined texture-sampler (temp usampler2DArray)
0:34 'g_tTex2du4a' (uniform utexture2DArray)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:34 Constant:
0:34 0 (const int)
0:36 Sequence
0:36 move second child to first child (temp float)
0:36 'txval40' (temp float)
0:36 direct index (temp float)
0:? textureQueryLod (temp float)
0:36 Construct combined texture-sampler (temp samplerCubeArray)
0:36 'g_tTexcdf4a' (uniform textureCubeArray)
0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:36 Constant:
0:36 0 (const int)
0:37 Sequence
0:37 move second child to first child (temp float)
0:37 'txval41' (temp float)
0:37 direct index (temp float)
0:? textureQueryLod (temp float)
0:37 Construct combined texture-sampler (temp isamplerCubeArray)
0:37 'g_tTexcdi4a' (uniform itextureCubeArray)
0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
0:? 0.600000
0:37 Constant:
0:37 0 (const int)
0:38 Sequence
0:38 move second child to first child (temp float)
0:38 'txval42' (temp float)
0:38 direct index (temp float)
0:? textureQueryLod (temp float)
0:38 Construct combined texture-sampler (temp usamplerCubeArray)
0:38 'g_tTexcdu4a' (uniform utextureCubeArray)
0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:38 Constant:
0:38 0 (const int)
0:40 move second child to first child (temp 4-component vector of float)
0:40 Color: direct index for structure (temp 4-component vector of float)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 0 (const int)
0:40 Constant:
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:41 move second child to first child (temp float)
0:41 Depth: direct index for structure (temp float)
0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:41 Constant:
0:41 1 (const int)
0:41 Constant:
0:41 1.000000
0:43 Sequence
0:43 Sequence
0:43 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:43 Color: direct index for structure (temp 4-component vector of float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 0 (const int)
0:43 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:43 Depth: direct index for structure (temp float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
SPIR-V is not generated for failed compile or link

View File

@ -2,24 +2,29 @@ hlsl.cast.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (in 4-component vector of float)
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:3 Branch: Return with expression
0:3 add (temp 4-component vector of float)
0:3 Sequence
0:3 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:3 add (temp 4-component vector of float)
0:3 Construct vec4 (temp 4-component vector of float)
0:3 'input' (in 4-component vector of float)
0:3 Convert int to float (temp 4-component vector of float)
0:3 Convert float to int (temp 4-component vector of int)
0:3 'input' (in 4-component vector of float)
0:3 Constant:
0:3 1.198000
0:3 1.198000
0:3 1.198000
0:3 1.198000
0:3 add (temp 4-component vector of float)
0:3 Construct vec4 (temp 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 Convert int to float (temp 4-component vector of float)
0:3 Convert float to int (temp 4-component vector of int)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 Constant:
0:3 1.198000
0:3 1.198000
0:3 1.198000
0:3 1.198000
0:3 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
@ -28,59 +33,69 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (in 4-component vector of float)
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:3 Branch: Return with expression
0:3 add (temp 4-component vector of float)
0:3 Sequence
0:3 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:3 add (temp 4-component vector of float)
0:3 Construct vec4 (temp 4-component vector of float)
0:3 'input' (in 4-component vector of float)
0:3 Convert int to float (temp 4-component vector of float)
0:3 Convert float to int (temp 4-component vector of int)
0:3 'input' (in 4-component vector of float)
0:3 Constant:
0:3 1.198000
0:3 1.198000
0:3 1.198000
0:3 1.198000
0:3 add (temp 4-component vector of float)
0:3 Construct vec4 (temp 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 Convert int to float (temp 4-component vector of float)
0:3 Convert float to int (temp 4-component vector of int)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 Constant:
0:3 1.198000
0:3 1.198000
0:3 1.198000
0:3 1.198000
0:3 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 26
// Id's are bound by 28
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 9
EntryPoint Fragment 4 "PixelShaderFunction" 9 11
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 9 "input"
Name 9 "@entryPointOutput"
Name 11 "input"
Decorate 9(@entryPointOutput) Location 0
Decorate 11(input) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Input 7(fvec4)
9(input): 8(ptr) Variable Input
17: TypeInt 32 1
18: TypeVector 17(int) 4
22: 6(float) Constant 1067014160
23: 7(fvec4) ConstantComposite 22 22 22 22
8: TypePointer Output 7(fvec4)
9(@entryPointOutput): 8(ptr) Variable Output
10: TypePointer Input 7(fvec4)
11(input): 10(ptr) Variable Input
19: TypeInt 32 1
20: TypeVector 19(int) 4
24: 6(float) Constant 1067014160
25: 7(fvec4) ConstantComposite 24 24 24 24
4(PixelShaderFunction): 2 Function None 3
5: Label
10: 7(fvec4) Load 9(input)
11: 6(float) CompositeExtract 10 0
12: 6(float) CompositeExtract 10 1
13: 6(float) CompositeExtract 10 2
14: 6(float) CompositeExtract 10 3
15: 7(fvec4) CompositeConstruct 11 12 13 14
16: 7(fvec4) Load 9(input)
19: 18(ivec4) ConvertFToS 16
20: 7(fvec4) ConvertSToF 19
21: 7(fvec4) FAdd 15 20
24: 7(fvec4) FAdd 21 23
ReturnValue 24
12: 7(fvec4) Load 11(input)
13: 6(float) CompositeExtract 12 0
14: 6(float) CompositeExtract 12 1
15: 6(float) CompositeExtract 12 2
16: 6(float) CompositeExtract 12 3
17: 7(fvec4) CompositeConstruct 13 14 15 16
18: 7(fvec4) Load 11(input)
21: 20(ivec4) ConvertFToS 18
22: 7(fvec4) ConvertSToF 21
23: 7(fvec4) FAdd 17 22
26: 7(fvec4) FAdd 23 25
Store 9(@entryPointOutput) 26
Return
FunctionEnd

View File

@ -0,0 +1,372 @@
hlsl.conditional.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:3 Sequence
0:3 move second child to first child (temp int)
0:3 'a' (temp int)
0:3 Constant:
0:3 5 (const int)
0:4 Sequence
0:4 move second child to first child (temp int)
0:4 'b' (temp int)
0:4 Constant:
0:4 6 (const int)
0:5 Sequence
0:5 move second child to first child (temp int)
0:5 'c' (temp int)
0:5 Constant:
0:5 7 (const int)
0:6 Sequence
0:6 move second child to first child (temp int)
0:6 'd' (temp int)
0:6 Constant:
0:6 7 (const int)
0:7 Sequence
0:7 move second child to first child (temp 4-component vector of float)
0:7 'ret' (temp 4-component vector of float)
0:9 add (temp 4-component vector of float)
0:8 add (temp 4-component vector of float)
0:7 add (temp 4-component vector of float)
0:7 vector-scale (temp 4-component vector of float)
0:7 Convert int to float (temp float)
0:7 'a' (temp int)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:8 vector-scale (temp 4-component vector of float)
0:8 Convert int to float (temp float)
0:8 'b' (temp int)
0:8 'input' (layout(location=0 ) in 4-component vector of float)
0:9 vector-scale (temp 4-component vector of float)
0:9 Convert int to float (temp float)
0:9 'c' (temp int)
0:9 'input' (layout(location=0 ) in 4-component vector of float)
0:10 vector-scale (temp 4-component vector of float)
0:10 Convert int to float (temp float)
0:10 'd' (temp int)
0:10 'input' (layout(location=0 ) in 4-component vector of float)
0:12 Comma (temp int)
0:12 move second child to first child (temp int)
0:12 'e' (temp int)
0:12 move second child to first child (temp int)
0:12 'a' (temp int)
0:12 Test condition and select (temp int)
0:12 Condition
0:12 'b' (temp int)
0:12 true case
0:12 move second child to first child (temp int)
0:12 'c' (temp int)
0:12 'd' (temp int)
0:12 false case
0:12 Constant:
0:12 10 (const int)
0:12 move second child to first child (temp int)
0:12 'b' (temp int)
0:12 Test condition and select (temp int)
0:12 Condition
0:12 'a' (temp int)
0:12 true case
0:12 move second child to first child (temp int)
0:12 'd' (temp int)
0:12 'c' (temp int)
0:12 false case
0:12 Constant:
0:12 11 (const int)
0:14 move second child to first child (temp 4-component vector of float)
0:14 'f' (temp 4-component vector of float)
0:14 Test condition and select (temp 4-component vector of float)
0:14 Condition
0:14 Compare Less Than (temp bool)
0:14 direct index (temp float)
0:14 'ret' (temp 4-component vector of float)
0:14 Constant:
0:14 0 (const int)
0:14 direct index (temp float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 Constant:
0:14 1 (const int)
0:14 true case
0:14 vector-scale (temp 4-component vector of float)
0:14 Convert int to float (temp float)
0:14 'c' (temp int)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 false case
0:14 vector-scale (temp 4-component vector of float)
0:14 Convert int to float (temp float)
0:14 'd' (temp int)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:15 Sequence
0:15 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:15 add (temp 4-component vector of float)
0:15 vector-scale (temp 4-component vector of float)
0:15 Convert int to float (temp float)
0:15 'e' (temp int)
0:15 'ret' (temp 4-component vector of float)
0:15 'f' (temp 4-component vector of float)
0:15 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:3 Sequence
0:3 move second child to first child (temp int)
0:3 'a' (temp int)
0:3 Constant:
0:3 5 (const int)
0:4 Sequence
0:4 move second child to first child (temp int)
0:4 'b' (temp int)
0:4 Constant:
0:4 6 (const int)
0:5 Sequence
0:5 move second child to first child (temp int)
0:5 'c' (temp int)
0:5 Constant:
0:5 7 (const int)
0:6 Sequence
0:6 move second child to first child (temp int)
0:6 'd' (temp int)
0:6 Constant:
0:6 7 (const int)
0:7 Sequence
0:7 move second child to first child (temp 4-component vector of float)
0:7 'ret' (temp 4-component vector of float)
0:9 add (temp 4-component vector of float)
0:8 add (temp 4-component vector of float)
0:7 add (temp 4-component vector of float)
0:7 vector-scale (temp 4-component vector of float)
0:7 Convert int to float (temp float)
0:7 'a' (temp int)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:8 vector-scale (temp 4-component vector of float)
0:8 Convert int to float (temp float)
0:8 'b' (temp int)
0:8 'input' (layout(location=0 ) in 4-component vector of float)
0:9 vector-scale (temp 4-component vector of float)
0:9 Convert int to float (temp float)
0:9 'c' (temp int)
0:9 'input' (layout(location=0 ) in 4-component vector of float)
0:10 vector-scale (temp 4-component vector of float)
0:10 Convert int to float (temp float)
0:10 'd' (temp int)
0:10 'input' (layout(location=0 ) in 4-component vector of float)
0:12 Comma (temp int)
0:12 move second child to first child (temp int)
0:12 'e' (temp int)
0:12 move second child to first child (temp int)
0:12 'a' (temp int)
0:12 Test condition and select (temp int)
0:12 Condition
0:12 'b' (temp int)
0:12 true case
0:12 move second child to first child (temp int)
0:12 'c' (temp int)
0:12 'd' (temp int)
0:12 false case
0:12 Constant:
0:12 10 (const int)
0:12 move second child to first child (temp int)
0:12 'b' (temp int)
0:12 Test condition and select (temp int)
0:12 Condition
0:12 'a' (temp int)
0:12 true case
0:12 move second child to first child (temp int)
0:12 'd' (temp int)
0:12 'c' (temp int)
0:12 false case
0:12 Constant:
0:12 11 (const int)
0:14 move second child to first child (temp 4-component vector of float)
0:14 'f' (temp 4-component vector of float)
0:14 Test condition and select (temp 4-component vector of float)
0:14 Condition
0:14 Compare Less Than (temp bool)
0:14 direct index (temp float)
0:14 'ret' (temp 4-component vector of float)
0:14 Constant:
0:14 0 (const int)
0:14 direct index (temp float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 Constant:
0:14 1 (const int)
0:14 true case
0:14 vector-scale (temp 4-component vector of float)
0:14 Convert int to float (temp float)
0:14 'c' (temp int)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 false case
0:14 vector-scale (temp 4-component vector of float)
0:14 Convert int to float (temp float)
0:14 'd' (temp int)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:15 Sequence
0:15 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:15 add (temp 4-component vector of float)
0:15 vector-scale (temp 4-component vector of float)
0:15 Convert int to float (temp float)
0:15 'e' (temp int)
0:15 'ret' (temp 4-component vector of float)
0:15 'f' (temp 4-component vector of float)
0:15 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 91
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 22 83
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 8 "a"
Name 10 "b"
Name 12 "c"
Name 14 "d"
Name 18 "ret"
Name 22 "input"
Name 40 "e"
Name 57 "f"
Name 83 "@entryPointOutput"
Decorate 22(input) Location 0
Decorate 83(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 5
11: 6(int) Constant 6
13: 6(int) Constant 7
15: TypeFloat 32
16: TypeVector 15(float) 4
17: TypePointer Function 16(fvec4)
21: TypePointer Input 16(fvec4)
22(input): 21(ptr) Variable Input
47: 6(int) Constant 10
55: 6(int) Constant 11
59: TypeInt 32 0
60: 59(int) Constant 0
61: TypePointer Function 15(float)
64: 59(int) Constant 1
65: TypePointer Input 15(float)
68: TypeBool
82: TypePointer Output 16(fvec4)
83(@entryPointOutput): 82(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
8(a): 7(ptr) Variable Function
10(b): 7(ptr) Variable Function
12(c): 7(ptr) Variable Function
14(d): 7(ptr) Variable Function
18(ret): 17(ptr) Variable Function
40(e): 7(ptr) Variable Function
41: 7(ptr) Variable Function
49: 7(ptr) Variable Function
57(f): 17(ptr) Variable Function
58: 17(ptr) Variable Function
Store 8(a) 9
Store 10(b) 11
Store 12(c) 13
Store 14(d) 13
19: 6(int) Load 8(a)
20: 15(float) ConvertSToF 19
23: 16(fvec4) Load 22(input)
24: 16(fvec4) VectorTimesScalar 23 20
25: 6(int) Load 10(b)
26: 15(float) ConvertSToF 25
27: 16(fvec4) Load 22(input)
28: 16(fvec4) VectorTimesScalar 27 26
29: 16(fvec4) FAdd 24 28
30: 6(int) Load 12(c)
31: 15(float) ConvertSToF 30
32: 16(fvec4) Load 22(input)
33: 16(fvec4) VectorTimesScalar 32 31
34: 16(fvec4) FAdd 29 33
35: 6(int) Load 14(d)
36: 15(float) ConvertSToF 35
37: 16(fvec4) Load 22(input)
38: 16(fvec4) VectorTimesScalar 37 36
39: 16(fvec4) FAdd 34 38
Store 18(ret) 39
42: 6(int) Load 10(b)
SelectionMerge 44 None
BranchConditional 42 43 46
43: Label
45: 6(int) Load 14(d)
Store 12(c) 45
Store 41 45
Branch 44
46: Label
Store 41 47
Branch 44
44: Label
48: 6(int) Load 41
Store 8(a) 48
Store 40(e) 48
50: 6(int) Load 8(a)
SelectionMerge 52 None
BranchConditional 50 51 54
51: Label
53: 6(int) Load 12(c)
Store 14(d) 53
Store 49 53
Branch 52
54: Label
Store 49 55
Branch 52
52: Label
56: 6(int) Load 49
Store 10(b) 56
62: 61(ptr) AccessChain 18(ret) 60
63: 15(float) Load 62
66: 65(ptr) AccessChain 22(input) 64
67: 15(float) Load 66
69: 68(bool) FOrdLessThan 63 67
SelectionMerge 71 None
BranchConditional 69 70 76
70: Label
72: 6(int) Load 12(c)
73: 15(float) ConvertSToF 72
74: 16(fvec4) Load 22(input)
75: 16(fvec4) VectorTimesScalar 74 73
Store 58 75
Branch 71
76: Label
77: 6(int) Load 14(d)
78: 15(float) ConvertSToF 77
79: 16(fvec4) Load 22(input)
80: 16(fvec4) VectorTimesScalar 79 78
Store 58 80
Branch 71
71: Label
81: 16(fvec4) Load 58
Store 57(f) 81
84: 6(int) Load 40(e)
85: 15(float) ConvertSToF 84
86: 16(fvec4) Load 18(ret)
87: 16(fvec4) VectorTimesScalar 86 85
88: 16(fvec4) Load 57(f)
89: 16(fvec4) FAdd 87 88
Store 83(@entryPointOutput) 89
Return
FunctionEnd

View File

@ -0,0 +1,150 @@
hlsl.constructexpr.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:4 Function Definition: main( (temp structure{temp 4-component vector of float color})
0:4 Function Parameters:
0:? Sequence
0:6 Constant:
0:6 3 (const int)
0:7 Constant:
0:7 4 (const int)
0:8 Constant:
0:8 5 (const int)
0:9 Constant:
0:9 6 (const int)
0:10 Constant:
0:10 7 (const int)
0:11 Constant:
0:11 8 (const int)
0:12 Comma (temp 2-component vector of float)
0:? Constant:
0:? 9.000000
0:? 10.000000
0:? Constant:
0:? 11.000000
0:? 12.000000
0:15 move second child to first child (temp 4-component vector of float)
0:15 color: direct index for structure (temp 4-component vector of float)
0:15 'ps_output' (temp structure{temp 4-component vector of float color})
0:15 Constant:
0:15 0 (const int)
0:15 Constant:
0:15 1.000000
0:15 1.000000
0:15 1.000000
0:15 1.000000
0:16 Sequence
0:16 Sequence
0:16 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:16 color: direct index for structure (temp 4-component vector of float)
0:16 'ps_output' (temp structure{temp 4-component vector of float color})
0:16 Constant:
0:16 0 (const int)
0:16 Branch: Return
0:? Linker Objects
0:? 'color' (layout(location=0 ) out 4-component vector of float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:4 Function Definition: main( (temp structure{temp 4-component vector of float color})
0:4 Function Parameters:
0:? Sequence
0:6 Constant:
0:6 3 (const int)
0:7 Constant:
0:7 4 (const int)
0:8 Constant:
0:8 5 (const int)
0:9 Constant:
0:9 6 (const int)
0:10 Constant:
0:10 7 (const int)
0:11 Constant:
0:11 8 (const int)
0:12 Comma (temp 2-component vector of float)
0:? Constant:
0:? 9.000000
0:? 10.000000
0:? Constant:
0:? 11.000000
0:? 12.000000
0:15 move second child to first child (temp 4-component vector of float)
0:15 color: direct index for structure (temp 4-component vector of float)
0:15 'ps_output' (temp structure{temp 4-component vector of float color})
0:15 Constant:
0:15 0 (const int)
0:15 Constant:
0:15 1.000000
0:15 1.000000
0:15 1.000000
0:15 1.000000
0:16 Sequence
0:16 Sequence
0:16 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:16 color: direct index for structure (temp 4-component vector of float)
0:16 'ps_output' (temp structure{temp 4-component vector of float color})
0:16 Constant:
0:16 0 (const int)
0:16 Branch: Return
0:? Linker Objects
0:? 'color' (layout(location=0 ) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 35
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 31
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 22 "PS_OUTPUT"
MemberName 22(PS_OUTPUT) 0 "color"
Name 24 "ps_output"
Name 31 "color"
Decorate 31(color) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: 6(int) Constant 3
8: 6(int) Constant 4
9: 6(int) Constant 5
10: 6(int) Constant 6
11: 6(int) Constant 7
12: 6(int) Constant 8
13: TypeFloat 32
14: TypeVector 13(float) 2
15: 13(float) Constant 1091567616
16: 13(float) Constant 1092616192
17: 14(fvec2) ConstantComposite 15 16
18: 13(float) Constant 1093664768
19: 13(float) Constant 1094713344
20: 14(fvec2) ConstantComposite 18 19
21: TypeVector 13(float) 4
22(PS_OUTPUT): TypeStruct 21(fvec4)
23: TypePointer Function 22(PS_OUTPUT)
25: 6(int) Constant 0
26: 13(float) Constant 1065353216
27: 21(fvec4) ConstantComposite 26 26 26 26
28: TypePointer Function 21(fvec4)
30: TypePointer Output 21(fvec4)
31(color): 30(ptr) Variable Output
4(main): 2 Function None 3
5: Label
24(ps_output): 23(ptr) Variable Function
29: 28(ptr) AccessChain 24(ps_output) 25
Store 29 27
32: 28(ptr) AccessChain 24(ps_output) 25
33: 21(fvec4) Load 32
Store 31(color) 33
Return
FunctionEnd

View File

@ -0,0 +1,59 @@
hlsl.depthGreater.frag
Shader version: 450
gl_FragCoord origin is upper left
using depth_greater
0:? Sequence
0:2 Function Definition: PixelShaderFunction(f1; (temp void)
0:2 Function Parameters:
0:2 'depth' (out float FragDepth)
0:? Sequence
0:3 move second child to first child (temp float)
0:3 'depth' (out float FragDepth)
0:3 Constant:
0:3 0.200000
0:? Linker Objects
0:? 'depth' (out float FragDepth)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
using depth_greater
0:? Sequence
0:2 Function Definition: PixelShaderFunction(f1; (temp void)
0:2 Function Parameters:
0:2 'depth' (out float FragDepth)
0:? Sequence
0:3 move second child to first child (temp float)
0:3 'depth' (out float FragDepth)
0:3 Constant:
0:3 0.200000
0:? Linker Objects
0:? 'depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 10
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 8
ExecutionMode 4 OriginUpperLeft
ExecutionMode 4 DepthGreater
Name 4 "PixelShaderFunction"
Name 8 "depth"
Decorate 8(depth) BuiltIn FragDepth
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Output 6(float)
8(depth): 7(ptr) Variable Output
9: 6(float) Constant 1045220557
4(PixelShaderFunction): 2 Function None 3
5: Label
Store 8(depth) 9
Return
FunctionEnd

View File

@ -0,0 +1,60 @@
hlsl.depthLess.frag
Shader version: 450
gl_FragCoord origin is upper left
using depth_less
0:? Sequence
0:2 Function Definition: PixelShaderFunction( (temp float FragDepth)
0:2 Function Parameters:
0:? Sequence
0:3 Sequence
0:3 move second child to first child (temp float)
0:? '@entryPointOutput' (out float unknown built-in variable)
0:3 Constant:
0:3 0.200000
0:3 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (out float unknown built-in variable)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
using depth_less
0:? Sequence
0:2 Function Definition: PixelShaderFunction( (temp float FragDepth)
0:2 Function Parameters:
0:? Sequence
0:3 Sequence
0:3 move second child to first child (temp float)
0:? '@entryPointOutput' (out float unknown built-in variable)
0:3 Constant:
0:3 0.200000
0:3 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (out float unknown built-in variable)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 11
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 8
ExecutionMode 4 OriginUpperLeft
ExecutionMode 4 DepthLess
Name 4 "PixelShaderFunction"
Name 8 "@entryPointOutput"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Output 6(float)
8(@entryPointOutput): 7(ptr) Variable Output
9: 6(float) Constant 1045220557
4(PixelShaderFunction): 2 Function None 3
5: Label
Store 8(@entryPointOutput) 9
Return
FunctionEnd

View File

@ -2,7 +2,7 @@ hlsl.discard.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: foo(f1; (global void)
0:2 Function Definition: foo(f1; (temp void)
0:2 Function Parameters:
0:2 'f' (in float)
0:? Sequence
@ -14,19 +14,19 @@ gl_FragCoord origin is upper left
0:3 1.000000
0:3 true case
0:4 Branch: Kill
0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:8 Function Definition: PixelShaderFunction(vf4; (temp void)
0:8 Function Parameters:
0:8 'input' (in 4-component vector of float)
0:8 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:9 Function Call: foo(f1; (global void)
0:9 Function Call: foo(f1; (temp void)
0:9 direct index (temp float)
0:9 'input' (in 4-component vector of float)
0:9 'input' (layout(location=0 ) in 4-component vector of float)
0:9 Constant:
0:9 2 (const int)
0:10 Test condition and select (temp void)
0:10 Condition
0:10 direct index (temp float)
0:10 'input' (in 4-component vector of float)
0:10 'input' (layout(location=0 ) in 4-component vector of float)
0:10 Constant:
0:10 0 (const int)
0:10 true case
@ -35,11 +35,12 @@ gl_FragCoord origin is upper left
0:12 move second child to first child (temp float)
0:12 'f' (temp float)
0:12 direct index (temp float)
0:12 'input' (in 4-component vector of float)
0:12 'input' (layout(location=0 ) in 4-component vector of float)
0:12 Constant:
0:12 0 (const int)
0:13 Branch: Kill
0:? Linker Objects
0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
@ -48,7 +49,7 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: foo(f1; (global void)
0:2 Function Definition: foo(f1; (temp void)
0:2 Function Parameters:
0:2 'f' (in float)
0:? Sequence
@ -60,19 +61,19 @@ gl_FragCoord origin is upper left
0:3 1.000000
0:3 true case
0:4 Branch: Kill
0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:8 Function Definition: PixelShaderFunction(vf4; (temp void)
0:8 Function Parameters:
0:8 'input' (in 4-component vector of float)
0:8 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:9 Function Call: foo(f1; (global void)
0:9 Function Call: foo(f1; (temp void)
0:9 direct index (temp float)
0:9 'input' (in 4-component vector of float)
0:9 'input' (layout(location=0 ) in 4-component vector of float)
0:9 Constant:
0:9 2 (const int)
0:10 Test condition and select (temp void)
0:10 Condition
0:10 direct index (temp float)
0:10 'input' (in 4-component vector of float)
0:10 'input' (layout(location=0 ) in 4-component vector of float)
0:10 Constant:
0:10 0 (const int)
0:10 true case
@ -81,11 +82,12 @@ gl_FragCoord origin is upper left
0:12 move second child to first child (temp float)
0:12 'f' (temp float)
0:12 direct index (temp float)
0:12 'input' (in 4-component vector of float)
0:12 'input' (layout(location=0 ) in 4-component vector of float)
0:12 Constant:
0:12 0 (const int)
0:13 Branch: Kill
0:? Linker Objects
0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
@ -96,13 +98,13 @@ gl_FragCoord origin is upper left
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 21
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 10 "foo(f1;"
Name 9 "f"
Name 21 "input"
Name 22 "param"
Name 35 "f"
Decorate 21(input) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32

View File

@ -2,9 +2,9 @@ hlsl.doLoop.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (in 4-component vector of float)
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:3 Loop with condition not tested first
0:3 Loop Condition
@ -19,12 +19,17 @@ gl_FragCoord origin is upper left
0:5 Loop with condition not tested first
0:5 Loop Condition
0:5 Compare Equal (temp bool)
0:5 'input' (in 4-component vector of float)
0:5 'input' (in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 Loop Body
0:5 Branch: Return with expression
0:5 'input' (in 4-component vector of float)
0:5 Sequence
0:5 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
@ -33,9 +38,9 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (in 4-component vector of float)
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:3 Loop with condition not tested first
0:3 Loop Condition
@ -50,34 +55,43 @@ gl_FragCoord origin is upper left
0:5 Loop with condition not tested first
0:5 Loop Condition
0:5 Compare Equal (temp bool)
0:5 'input' (in 4-component vector of float)
0:5 'input' (in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 Loop Body
0:5 Branch: Return with expression
0:5 'input' (in 4-component vector of float)
0:5 Sequence
0:5 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 31
// Id's are bound by 33
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 23
EntryPoint Fragment 4 "PixelShaderFunction" 23 25
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 23 "input"
Name 23 "@entryPointOutput"
Name 25 "input"
Decorate 23(@entryPointOutput) Location 0
Decorate 25(input) Location 0
2: TypeVoid
3: TypeFunction 2
10: TypeBool
11: 10(bool) ConstantFalse
20: TypeFloat 32
21: TypeVector 20(float) 4
22: TypePointer Input 21(fvec4)
23(input): 22(ptr) Variable Input
28: TypeVector 10(bool) 4
22: TypePointer Output 21(fvec4)
23(@entryPointOutput): 22(ptr) Variable Output
24: TypePointer Input 21(fvec4)
25(input): 24(ptr) Variable Input
30: TypeVector 10(bool) 4
4(PixelShaderFunction): 2 Function None 3
5: Label
Branch 6
@ -103,14 +117,15 @@ gl_FragCoord origin is upper left
LoopMerge 18 19 None
Branch 17
17: Label
24: 21(fvec4) Load 23(input)
ReturnValue 24
26: 21(fvec4) Load 25(input)
Store 23(@entryPointOutput) 26
Return
19: Label
26: 21(fvec4) Load 23(input)
27: 21(fvec4) Load 23(input)
29: 28(bvec4) FOrdEqual 26 27
30: 10(bool) All 29
BranchConditional 30 16 18
28: 21(fvec4) Load 25(input)
29: 21(fvec4) Load 25(input)
31: 30(bvec4) FOrdEqual 28 29
32: 10(bool) All 31
BranchConditional 32 16 18
18: Label
Return
FunctionEnd

View File

@ -0,0 +1,304 @@
hlsl.entry-in.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:8 Function Parameters:
0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:? Sequence
0:9 Branch: Return with expression
0:9 add (temp float)
0:9 direct index (temp float)
0:9 v: direct index for structure (temp 2-component vector of float)
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:9 Constant:
0:9 0 (const int)
0:9 Constant:
0:9 1 (const int)
0:9 direct index (temp float)
0:9 fragCoord: direct index for structure (temp 4-component vector of float FragCoord)
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:9 Constant:
0:9 1 (const int)
0:9 Constant:
0:9 0 (const int)
0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (temp 4-component vector of float)
0:13 Function Parameters:
0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:? Sequence
0:15 Sequence
0:15 move second child to first child (temp 2-component vector of float)
0:15 v: direct index for structure (temp 2-component vector of float)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 0 (const int)
0:? 'v' (layout(location=0 ) in 2-component vector of float)
0:15 move second child to first child (temp 4-component vector of float)
0:15 fragCoord: direct index for structure (temp 4-component vector of float)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 1 (const int)
0:? 'fragCoord' (in 4-component vector of float FragCoord)
0:15 move second child to first child (temp 2-component vector of int)
0:15 i2: direct index for structure (temp 2-component vector of int)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 2 (const int)
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
0:16 Sequence
0:16 move second child to first child (temp float)
0:16 'ret1' (temp float)
0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Sequence
0:17 move second child to first child (temp float)
0:17 'ret2' (temp float)
0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:17 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Sequence
0:17 move second child to first child (temp 2-component vector of float)
0:17 v: direct index for structure (temp 2-component vector of float)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 0 (const int)
0:? 'v' (layout(location=0 ) in 2-component vector of float)
0:17 move second child to first child (temp 4-component vector of float)
0:17 fragCoord: direct index for structure (temp 4-component vector of float)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 1 (const int)
0:? 'fragCoord' (in 4-component vector of float FragCoord)
0:17 move second child to first child (temp 2-component vector of int)
0:17 i2: direct index for structure (temp 2-component vector of int)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 2 (const int)
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:19 Sequence
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 vector-scale (temp 4-component vector of float)
0:19 vector-scale (temp 4-component vector of float)
0:19 fragCoord: direct index for structure (temp 4-component vector of float)
0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:19 Constant:
0:19 1 (const int)
0:19 'ret1' (temp float)
0:19 'ret2' (temp float)
0:19 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'v' (layout(location=0 ) in 2-component vector of float)
0:? 'fragCoord' (in 4-component vector of float FragCoord)
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:8 Function Parameters:
0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:? Sequence
0:9 Branch: Return with expression
0:9 add (temp float)
0:9 direct index (temp float)
0:9 v: direct index for structure (temp 2-component vector of float)
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:9 Constant:
0:9 0 (const int)
0:9 Constant:
0:9 1 (const int)
0:9 direct index (temp float)
0:9 fragCoord: direct index for structure (temp 4-component vector of float FragCoord)
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:9 Constant:
0:9 1 (const int)
0:9 Constant:
0:9 0 (const int)
0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (temp 4-component vector of float)
0:13 Function Parameters:
0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:? Sequence
0:15 Sequence
0:15 move second child to first child (temp 2-component vector of float)
0:15 v: direct index for structure (temp 2-component vector of float)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 0 (const int)
0:? 'v' (layout(location=0 ) in 2-component vector of float)
0:15 move second child to first child (temp 4-component vector of float)
0:15 fragCoord: direct index for structure (temp 4-component vector of float)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 1 (const int)
0:? 'fragCoord' (in 4-component vector of float FragCoord)
0:15 move second child to first child (temp 2-component vector of int)
0:15 i2: direct index for structure (temp 2-component vector of int)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 2 (const int)
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
0:16 Sequence
0:16 move second child to first child (temp float)
0:16 'ret1' (temp float)
0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Sequence
0:17 move second child to first child (temp float)
0:17 'ret2' (temp float)
0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:17 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Sequence
0:17 move second child to first child (temp 2-component vector of float)
0:17 v: direct index for structure (temp 2-component vector of float)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 0 (const int)
0:? 'v' (layout(location=0 ) in 2-component vector of float)
0:17 move second child to first child (temp 4-component vector of float)
0:17 fragCoord: direct index for structure (temp 4-component vector of float)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 1 (const int)
0:? 'fragCoord' (in 4-component vector of float FragCoord)
0:17 move second child to first child (temp 2-component vector of int)
0:17 i2: direct index for structure (temp 2-component vector of int)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 2 (const int)
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:19 Sequence
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 vector-scale (temp 4-component vector of float)
0:19 vector-scale (temp 4-component vector of float)
0:19 fragCoord: direct index for structure (temp 4-component vector of float)
0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:19 Constant:
0:19 1 (const int)
0:19 'ret1' (temp float)
0:19 'ret2' (temp float)
0:19 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'v' (layout(location=0 ) in 2-component vector of float)
0:? 'fragCoord' (in 4-component vector of float FragCoord)
0:? 'i2' (layout(location=1 ) in 2-component vector of int)
// 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 "PixelShaderFunction" 32 37 43 63
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 11 "InParam"
MemberName 11(InParam) 0 "v"
MemberName 11(InParam) 1 "fragCoord"
MemberName 11(InParam) 2 "i2"
Name 15 "fun(struct-InParam-vf2-vf4-vi21;"
Name 14 "p"
Name 30 "local"
Name 32 "v"
Name 37 "fragCoord"
Name 43 "i2"
Name 47 "ret1"
Name 48 "param"
Name 51 "ret2"
Name 52 "aggShadow"
Name 59 "param"
Name 63 "@entryPointOutput"
Decorate 32(v) Location 0
Decorate 37(fragCoord) BuiltIn FragCoord
Decorate 43(i2) Location 1
Decorate 63(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 2
8: TypeVector 6(float) 4
9: TypeInt 32 1
10: TypeVector 9(int) 2
11(InParam): TypeStruct 7(fvec2) 8(fvec4) 10(ivec2)
12: TypePointer Function 11(InParam)
13: TypeFunction 6(float) 12(ptr)
17: 9(int) Constant 0
18: TypeInt 32 0
19: 18(int) Constant 1
20: TypePointer Function 6(float)
23: 9(int) Constant 1
24: 18(int) Constant 0
31: TypePointer Input 7(fvec2)
32(v): 31(ptr) Variable Input
34: TypePointer Function 7(fvec2)
36: TypePointer Input 8(fvec4)
37(fragCoord): 36(ptr) Variable Input
39: TypePointer Function 8(fvec4)
41: 9(int) Constant 2
42: TypePointer Input 10(ivec2)
43(i2): 42(ptr) Variable Input
45: TypePointer Function 10(ivec2)
62: TypePointer Output 8(fvec4)
63(@entryPointOutput): 62(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
30(local): 12(ptr) Variable Function
47(ret1): 20(ptr) Variable Function
48(param): 12(ptr) Variable Function
51(ret2): 20(ptr) Variable Function
52(aggShadow): 12(ptr) Variable Function
59(param): 12(ptr) Variable Function
33: 7(fvec2) Load 32(v)
35: 34(ptr) AccessChain 30(local) 17
Store 35 33
38: 8(fvec4) Load 37(fragCoord)
40: 39(ptr) AccessChain 30(local) 23
Store 40 38
44: 10(ivec2) Load 43(i2)
46: 45(ptr) AccessChain 30(local) 41
Store 46 44
49: 11(InParam) Load 30(local)
Store 48(param) 49
50: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 48(param)
Store 47(ret1) 50
53: 7(fvec2) Load 32(v)
54: 34(ptr) AccessChain 52(aggShadow) 17
Store 54 53
55: 8(fvec4) Load 37(fragCoord)
56: 39(ptr) AccessChain 52(aggShadow) 23
Store 56 55
57: 10(ivec2) Load 43(i2)
58: 45(ptr) AccessChain 52(aggShadow) 41
Store 58 57
60: 11(InParam) Load 52(aggShadow)
Store 59(param) 60
61: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 59(param)
Store 51(ret2) 61
64: 39(ptr) AccessChain 30(local) 23
65: 8(fvec4) Load 64
66: 6(float) Load 47(ret1)
67: 8(fvec4) VectorTimesScalar 65 66
68: 6(float) Load 51(ret2)
69: 8(fvec4) VectorTimesScalar 67 68
Store 63(@entryPointOutput) 69
Return
FunctionEnd
15(fun(struct-InParam-vf2-vf4-vi21;): 6(float) Function None 13
14(p): 12(ptr) FunctionParameter
16: Label
21: 20(ptr) AccessChain 14(p) 17 19
22: 6(float) Load 21
25: 20(ptr) AccessChain 14(p) 23 24
26: 6(float) Load 25
27: 6(float) FAdd 22 26
ReturnValue 27
FunctionEnd

View File

@ -0,0 +1,287 @@
hlsl.entry-out.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: fun(struct-OutParam-vf2-vi21; (temp void)
0:7 Function Parameters:
0:7 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? Sequence
0:8 move second child to first child (temp 2-component vector of float)
0:8 v: direct index for structure (temp 2-component vector of float)
0:8 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:8 Constant:
0:8 0 (const int)
0:8 Constant:
0:8 0.400000
0:8 0.400000
0:9 move second child to first child (temp 2-component vector of int)
0:9 i: direct index for structure (temp 2-component vector of int)
0:9 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:9 Constant:
0:9 1 (const int)
0:9 Constant:
0:9 7 (const int)
0:9 7 (const int)
0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float)
0:13 Function Parameters:
0:13 'input' (layout(location=0 ) in 4-component vector of float)
0:13 'out1' (layout(location=1 ) out 4-component vector of float)
0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? Sequence
0:14 move second child to first child (temp 4-component vector of float)
0:14 'out1' (layout(location=1 ) out 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:15 move second child to first child (temp 2-component vector of float)
0:? 'v' (layout(location=2 ) out 2-component vector of float)
0:15 Constant:
0:15 2.000000
0:15 2.000000
0:16 move second child to first child (temp 2-component vector of int)
0:? 'i' (layout(location=3 ) out 2-component vector of int)
0:16 Constant:
0:16 3 (const int)
0:16 3 (const int)
0:18 move second child to first child (temp 2-component vector of float)
0:18 v: direct index for structure (temp 2-component vector of float)
0:18 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:18 Constant:
0:18 0 (const int)
0:18 Constant:
0:18 12.000000
0:18 12.000000
0:19 move second child to first child (temp 2-component vector of int)
0:19 i: direct index for structure (temp 2-component vector of int)
0:19 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:19 Constant:
0:19 1 (const int)
0:19 Constant:
0:19 13 (const int)
0:19 13 (const int)
0:20 Comma (temp void)
0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void)
0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:20 Sequence
0:20 move second child to first child (temp 2-component vector of float)
0:? 'v' (layout(location=4 ) out 2-component vector of float)
0:20 v: direct index for structure (temp 2-component vector of float)
0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:20 Constant:
0:20 0 (const int)
0:20 move second child to first child (temp 2-component vector of int)
0:? 'i' (layout(location=5 ) out 2-component vector of int)
0:20 i: direct index for structure (temp 2-component vector of int)
0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:20 Constant:
0:20 1 (const int)
0:22 Sequence
0:22 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:22 'out1' (layout(location=1 ) out 4-component vector of float)
0:22 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'out1' (layout(location=1 ) out 4-component vector of float)
0:? 'v' (layout(location=2 ) out 2-component vector of float)
0:? 'i' (layout(location=3 ) out 2-component vector of int)
0:? 'v' (layout(location=4 ) out 2-component vector of float)
0:? 'i' (layout(location=5 ) out 2-component vector of int)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: fun(struct-OutParam-vf2-vi21; (temp void)
0:7 Function Parameters:
0:7 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? Sequence
0:8 move second child to first child (temp 2-component vector of float)
0:8 v: direct index for structure (temp 2-component vector of float)
0:8 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:8 Constant:
0:8 0 (const int)
0:8 Constant:
0:8 0.400000
0:8 0.400000
0:9 move second child to first child (temp 2-component vector of int)
0:9 i: direct index for structure (temp 2-component vector of int)
0:9 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:9 Constant:
0:9 1 (const int)
0:9 Constant:
0:9 7 (const int)
0:9 7 (const int)
0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float)
0:13 Function Parameters:
0:13 'input' (layout(location=0 ) in 4-component vector of float)
0:13 'out1' (layout(location=1 ) out 4-component vector of float)
0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? Sequence
0:14 move second child to first child (temp 4-component vector of float)
0:14 'out1' (layout(location=1 ) out 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:15 move second child to first child (temp 2-component vector of float)
0:? 'v' (layout(location=2 ) out 2-component vector of float)
0:15 Constant:
0:15 2.000000
0:15 2.000000
0:16 move second child to first child (temp 2-component vector of int)
0:? 'i' (layout(location=3 ) out 2-component vector of int)
0:16 Constant:
0:16 3 (const int)
0:16 3 (const int)
0:18 move second child to first child (temp 2-component vector of float)
0:18 v: direct index for structure (temp 2-component vector of float)
0:18 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:18 Constant:
0:18 0 (const int)
0:18 Constant:
0:18 12.000000
0:18 12.000000
0:19 move second child to first child (temp 2-component vector of int)
0:19 i: direct index for structure (temp 2-component vector of int)
0:19 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:19 Constant:
0:19 1 (const int)
0:19 Constant:
0:19 13 (const int)
0:19 13 (const int)
0:20 Comma (temp void)
0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void)
0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:20 Sequence
0:20 move second child to first child (temp 2-component vector of float)
0:? 'v' (layout(location=4 ) out 2-component vector of float)
0:20 v: direct index for structure (temp 2-component vector of float)
0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:20 Constant:
0:20 0 (const int)
0:20 move second child to first child (temp 2-component vector of int)
0:? 'i' (layout(location=5 ) out 2-component vector of int)
0:20 i: direct index for structure (temp 2-component vector of int)
0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:20 Constant:
0:20 1 (const int)
0:22 Sequence
0:22 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:22 'out1' (layout(location=1 ) out 4-component vector of float)
0:22 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'out1' (layout(location=1 ) out 4-component vector of float)
0:? 'v' (layout(location=2 ) out 2-component vector of float)
0:? 'i' (layout(location=3 ) out 2-component vector of int)
0:? 'v' (layout(location=4 ) out 2-component vector of float)
0:? 'i' (layout(location=5 ) out 2-component vector of int)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 60
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 28 30 33 37 51 54 57
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 10 "OutParam"
MemberName 10(OutParam) 0 "v"
MemberName 10(OutParam) 1 "i"
Name 14 "fun(struct-OutParam-vf2-vi21;"
Name 13 "op"
Name 28 "out1"
Name 30 "input"
Name 33 "v"
Name 37 "i"
Name 40 "local"
Name 47 "tempArg"
Name 48 "param"
Name 51 "v"
Name 54 "i"
Name 57 "@entryPointOutput"
Decorate 28(out1) Location 1
Decorate 30(input) Location 0
Decorate 33(v) Location 2
Decorate 37(i) Location 3
Decorate 51(v) Location 4
Decorate 54(i) Location 5
Decorate 57(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 2
8: TypeInt 32 1
9: TypeVector 8(int) 2
10(OutParam): TypeStruct 7(fvec2) 9(ivec2)
11: TypePointer Function 10(OutParam)
12: TypeFunction 2 11(ptr)
16: 8(int) Constant 0
17: 6(float) Constant 1053609165
18: 7(fvec2) ConstantComposite 17 17
19: TypePointer Function 7(fvec2)
21: 8(int) Constant 1
22: 8(int) Constant 7
23: 9(ivec2) ConstantComposite 22 22
24: TypePointer Function 9(ivec2)
26: TypeVector 6(float) 4
27: TypePointer Output 26(fvec4)
28(out1): 27(ptr) Variable Output
29: TypePointer Input 26(fvec4)
30(input): 29(ptr) Variable Input
32: TypePointer Output 7(fvec2)
33(v): 32(ptr) Variable Output
34: 6(float) Constant 1073741824
35: 7(fvec2) ConstantComposite 34 34
36: TypePointer Output 9(ivec2)
37(i): 36(ptr) Variable Output
38: 8(int) Constant 3
39: 9(ivec2) ConstantComposite 38 38
41: 6(float) Constant 1094713344
42: 7(fvec2) ConstantComposite 41 41
44: 8(int) Constant 13
45: 9(ivec2) ConstantComposite 44 44
51(v): 32(ptr) Variable Output
54(i): 36(ptr) Variable Output
57(@entryPointOutput): 27(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
40(local): 11(ptr) Variable Function
47(tempArg): 11(ptr) Variable Function
48(param): 11(ptr) Variable Function
31: 26(fvec4) Load 30(input)
Store 28(out1) 31
Store 33(v) 35
Store 37(i) 39
43: 19(ptr) AccessChain 40(local) 16
Store 43 42
46: 24(ptr) AccessChain 40(local) 21
Store 46 45
49: 2 FunctionCall 14(fun(struct-OutParam-vf2-vi21;) 48(param)
50:10(OutParam) Load 48(param)
Store 47(tempArg) 50
52: 19(ptr) AccessChain 47(tempArg) 16
53: 7(fvec2) Load 52
Store 51(v) 53
55: 24(ptr) AccessChain 47(tempArg) 21
56: 9(ivec2) Load 55
Store 54(i) 56
58: 26(fvec4) Load 28(out1)
Store 57(@entryPointOutput) 58
Return
FunctionEnd
14(fun(struct-OutParam-vf2-vi21;): 2 Function None 12
13(op): 11(ptr) FunctionParameter
15: Label
20: 19(ptr) AccessChain 13(op) 16
Store 20 18
25: 24(ptr) AccessChain 13(op) 21
Store 25 23
Return
FunctionEnd

View File

@ -0,0 +1,187 @@
hlsl.flatten.return.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:11 Function Definition: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:11 Function Parameters:
0:? Sequence
0:12 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 1.000000
0:? 1.000000
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:16 Function Definition: main( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:16 Function Parameters:
0:? Sequence
0:17 Sequence
0:17 Sequence
0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:17 color: direct index for structure (temp 4-component vector of float)
0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 Constant:
0:17 0 (const int)
0:17 move second child to first child (temp float)
0:? 'other_struct_member1' (layout(location=1 ) out float)
0:17 other_struct_member1: direct index for structure (temp float)
0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 Constant:
0:17 1 (const int)
0:17 move second child to first child (temp float)
0:? 'other_struct_member2' (layout(location=2 ) out float)
0:17 other_struct_member2: direct index for structure (temp float)
0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 Constant:
0:17 2 (const int)
0:17 move second child to first child (temp float)
0:? 'other_struct_member3' (layout(location=3 ) out float)
0:17 other_struct_member3: direct index for structure (temp float)
0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 Constant:
0:17 3 (const int)
0:17 Branch: Return
0:? Linker Objects
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:? 'other_struct_member1' (layout(location=1 ) out float)
0:? 'other_struct_member2' (layout(location=2 ) out float)
0:? 'other_struct_member3' (layout(location=3 ) out float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:11 Function Definition: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:11 Function Parameters:
0:? Sequence
0:12 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 1.000000
0:? 1.000000
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:16 Function Definition: main( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:16 Function Parameters:
0:? Sequence
0:17 Sequence
0:17 Sequence
0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:17 color: direct index for structure (temp 4-component vector of float)
0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 Constant:
0:17 0 (const int)
0:17 move second child to first child (temp float)
0:? 'other_struct_member1' (layout(location=1 ) out float)
0:17 other_struct_member1: direct index for structure (temp float)
0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 Constant:
0:17 1 (const int)
0:17 move second child to first child (temp float)
0:? 'other_struct_member2' (layout(location=2 ) out float)
0:17 other_struct_member2: direct index for structure (temp float)
0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 Constant:
0:17 2 (const int)
0:17 move second child to first child (temp float)
0:? 'other_struct_member3' (layout(location=3 ) out float)
0:17 other_struct_member3: direct index for structure (temp float)
0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3})
0:17 Constant:
0:17 3 (const int)
0:17 Branch: Return
0:? Linker Objects
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:? 'other_struct_member1' (layout(location=1 ) out float)
0:? 'other_struct_member2' (layout(location=2 ) out float)
0:? 'other_struct_member3' (layout(location=3 ) out float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 45
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 24 31 36 40
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 8 "PS_OUTPUT"
MemberName 8(PS_OUTPUT) 0 "color"
MemberName 8(PS_OUTPUT) 1 "other_struct_member1"
MemberName 8(PS_OUTPUT) 2 "other_struct_member2"
MemberName 8(PS_OUTPUT) 3 "other_struct_member3"
Name 10 "Func1("
Name 21 "flattenTemp"
Name 24 "color"
Name 31 "other_struct_member1"
Name 36 "other_struct_member2"
Name 40 "other_struct_member3"
Decorate 24(color) Location 0
Decorate 31(other_struct_member1) Location 1
Decorate 36(other_struct_member2) Location 2
Decorate 40(other_struct_member3) Location 3
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 6(float) 6(float)
9: TypeFunction 8(PS_OUTPUT)
12: 6(float) Constant 1065353216
13: 7(fvec4) ConstantComposite 12 12 12 12
14: 6(float) Constant 1073741824
15: 6(float) Constant 1077936128
16: 6(float) Constant 1082130432
17:8(PS_OUTPUT) ConstantComposite 13 14 15 16
20: TypePointer Function 8(PS_OUTPUT)
23: TypePointer Output 7(fvec4)
24(color): 23(ptr) Variable Output
25: TypeInt 32 1
26: 25(int) Constant 0
27: TypePointer Function 7(fvec4)
30: TypePointer Output 6(float)
31(other_struct_member1): 30(ptr) Variable Output
32: 25(int) Constant 1
33: TypePointer Function 6(float)
36(other_struct_member2): 30(ptr) Variable Output
37: 25(int) Constant 2
40(other_struct_member3): 30(ptr) Variable Output
41: 25(int) Constant 3
4(main): 2 Function None 3
5: Label
21(flattenTemp): 20(ptr) Variable Function
22:8(PS_OUTPUT) FunctionCall 10(Func1()
Store 21(flattenTemp) 22
28: 27(ptr) AccessChain 21(flattenTemp) 26
29: 7(fvec4) Load 28
Store 24(color) 29
34: 33(ptr) AccessChain 21(flattenTemp) 32
35: 6(float) Load 34
Store 31(other_struct_member1) 35
38: 33(ptr) AccessChain 21(flattenTemp) 37
39: 6(float) Load 38
Store 36(other_struct_member2) 39
42: 33(ptr) AccessChain 21(flattenTemp) 41
43: 6(float) Load 42
Store 40(other_struct_member3) 43
Return
FunctionEnd
10(Func1():8(PS_OUTPUT) Function None 9
11: Label
ReturnValue 17
FunctionEnd

View File

@ -12,7 +12,7 @@ gl_FragCoord origin is upper left
0:2 'scalar' (global float)
0:2 Constant:
0:2 2.000000
0:8 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
0:5 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
0:5 Function Parameters:
0:5 'inFloat1' (in 1-component vector of float)
0:5 'inScalar' (in float)
@ -46,7 +46,7 @@ gl_FragCoord origin is upper left
0:2 'scalar' (global float)
0:2 Constant:
0:2 2.000000
0:8 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
0:5 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
0:5 Function Parameters:
0:5 'inFloat1' (in 1-component vector of float)
0:5 'inScalar' (in float)
@ -72,7 +72,6 @@ gl_FragCoord origin is upper left
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 11 "ShaderFunction(vf1;f1;"
Name 9 "inFloat1"

View File

@ -1,29 +1,23 @@
hlsl.float4.frag
WARNING: 0:5: 'register' : ignoring shader_profile
WARNING: 0:6: 'register' : ignoring shader_profile
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1 Sequence
0:1 move second child to first child (temp 4-component vector of float)
0:1 'AmbientColor' (global 4-component vector of float)
0:? Constant:
0:? 1.000000
0:? 0.500000
0:? 0.000000
0:? 1.000000
0:12 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
0:9 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
0:9 Function Parameters:
0:9 'input' (in 4-component vector of float)
0:? Sequence
0:10 Branch: Return with expression
0:10 component-wise multiply (temp 4-component vector of float)
0:10 'input' (in 4-component vector of float)
0:10 'AmbientColor' (global 4-component vector of float)
0:10 AmbientColor: direct index for structure (layout(offset=0 ) uniform 4-component vector of float)
0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4})
0:10 Constant:
0:10 0 (const uint)
0:? Linker Objects
0:? 'AmbientColor' (global 4-component vector of float)
0:? 'ff1' (global bool Face)
0:? 'ff2' (global 4-component vector of float)
0:? 'ff3' (global 4-component vector of float)
0:? 'ff4' (global 4-component vector of float FragCoord)
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4})
Linked fragment stage:
@ -32,76 +26,69 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1 Sequence
0:1 move second child to first child (temp 4-component vector of float)
0:1 'AmbientColor' (global 4-component vector of float)
0:? Constant:
0:? 1.000000
0:? 0.500000
0:? 0.000000
0:? 1.000000
0:12 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
0:9 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
0:9 Function Parameters:
0:9 'input' (in 4-component vector of float)
0:? Sequence
0:10 Branch: Return with expression
0:10 component-wise multiply (temp 4-component vector of float)
0:10 'input' (in 4-component vector of float)
0:10 'AmbientColor' (global 4-component vector of float)
0:10 AmbientColor: direct index for structure (layout(offset=0 ) uniform 4-component vector of float)
0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4})
0:10 Constant:
0:10 0 (const uint)
0:? Linker Objects
0:? 'AmbientColor' (global 4-component vector of float)
0:? 'ff1' (global bool Face)
0:? 'ff2' (global 4-component vector of float)
0:? 'ff3' (global 4-component vector of float)
0:? 'ff4' (global 4-component vector of float FragCoord)
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4})
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 30
// Id's are bound by 26
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 11 "ShaderFunction(vf4;"
Name 10 "input"
Name 14 "AmbientColor"
Name 26 "ff1"
Name 27 "ff2"
Name 28 "ff3"
Name 29 "ff4"
Decorate 26(ff1) BuiltIn FrontFacing
Decorate 29(ff4) BuiltIn FragCoord
Name 15 "$Global"
MemberName 15($Global) 0 "AmbientColor"
MemberName 15($Global) 1 "ff1"
MemberName 15($Global) 2 "ff2"
MemberName 15($Global) 3 "ff3"
MemberName 15($Global) 4 "ff4"
Name 17 ""
MemberDecorate 15($Global) 0 Offset 0
MemberDecorate 15($Global) 1 Offset 16
MemberDecorate 15($Global) 1 BuiltIn FrontFacing
MemberDecorate 15($Global) 2 Offset 20
MemberDecorate 15($Global) 3 Offset 32
MemberDecorate 15($Global) 4 Offset 48
Decorate 15($Global) Block
Decorate 17 DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr)
13: TypePointer Private 7(fvec4)
14(AmbientColor): 13(ptr) Variable Private
15: 6(float) Constant 1065353216
16: 6(float) Constant 1056964608
17: 6(float) Constant 0
18: 7(fvec4) ConstantComposite 15 16 17 15
24: TypeBool
25: TypePointer Private 24(bool)
26(ff1): 25(ptr) Variable Private
27(ff2): 13(ptr) Variable Private
28(ff3): 13(ptr) Variable Private
29(ff4): 13(ptr) Variable Private
14: TypeInt 32 0
15($Global): TypeStruct 7(fvec4) 14(int) 6(float) 7(fvec4) 7(fvec4)
16: TypePointer Uniform 15($Global)
17: 16(ptr) Variable Uniform
18: TypeInt 32 1
19: 18(int) Constant 0
20: TypePointer Uniform 7(fvec4)
4(PixelShaderFunction): 2 Function None 3
5: Label
Store 14(AmbientColor) 18
FunctionEnd
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
10(input): 8(ptr) FunctionParameter
12: Label
19: 7(fvec4) Load 10(input)
20: 7(fvec4) Load 14(AmbientColor)
21: 7(fvec4) FMul 19 20
ReturnValue 21
13: 7(fvec4) Load 10(input)
21: 20(ptr) AccessChain 17 19
22: 7(fvec4) Load 21
23: 7(fvec4) FMul 13 22
ReturnValue 23
FunctionEnd

View File

@ -2,9 +2,9 @@ hlsl.forLoop.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (in 4-component vector of float)
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:? Sequence
0:3 Loop with condition tested first
@ -12,7 +12,7 @@ gl_FragCoord origin is upper left
0:3 No loop body
0:4 Sequence
0:4 Pre-Increment (temp 4-component vector of float)
0:4 'input' (in 4-component vector of float)
0:4 'input' (layout(location=0 ) in 4-component vector of float)
0:4 Loop with condition tested first
0:4 No loop condition
0:4 No loop body
@ -20,36 +20,42 @@ gl_FragCoord origin is upper left
0:5 Loop with condition tested first
0:5 Loop Condition
0:5 Compare Not Equal (temp bool)
0:5 'input' (in 4-component vector of float)
0:5 'input' (in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 No loop body
0:? Sequence
0:6 Loop with condition tested first
0:6 Loop Condition
0:6 Compare Not Equal (temp bool)
0:6 'input' (in 4-component vector of float)
0:6 'input' (in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 Loop Body
0:? Sequence
0:6 Branch: Return with expression
0:6 Negate value (temp 4-component vector of float)
0:6 'input' (in 4-component vector of float)
0:6 Sequence
0:6 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:6 Negate value (temp 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 Branch: Return
0:7 Sequence
0:7 Pre-Decrement (temp 4-component vector of float)
0:7 'input' (in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop with condition tested first
0:7 Loop Condition
0:7 Compare Not Equal (temp bool)
0:7 'input' (in 4-component vector of float)
0:7 'input' (in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop Body
0:? Sequence
0:7 Branch: Return with expression
0:7 Negate value (temp 4-component vector of float)
0:7 'input' (in 4-component vector of float)
0:7 Sequence
0:7 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:7 Negate value (temp 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Branch: Return
0:7 Loop Terminal Expression
0:7 add second child into first child (temp 4-component vector of float)
0:7 'input' (in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Constant:
0:7 2.000000
0:? Sequence
@ -60,7 +66,7 @@ gl_FragCoord origin is upper left
0:8 Condition
0:8 Compare Greater Than (temp bool)
0:8 direct index (temp float)
0:8 'input' (in 4-component vector of float)
0:8 'input' (layout(location=0 ) in 4-component vector of float)
0:8 Constant:
0:8 0 (const int)
0:8 Constant:
@ -75,7 +81,7 @@ gl_FragCoord origin is upper left
0:9 Condition
0:9 Compare Greater Than (temp bool)
0:9 direct index (temp float)
0:9 'input' (in 4-component vector of float)
0:9 'input' (layout(location=0 ) in 4-component vector of float)
0:9 Constant:
0:9 0 (const int)
0:9 Constant:
@ -108,6 +114,8 @@ gl_FragCoord origin is upper left
0:12 Pre-Decrement (temp float)
0:12 'ii' (temp float)
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
@ -116,9 +124,9 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (in 4-component vector of float)
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:? Sequence
0:3 Loop with condition tested first
@ -126,7 +134,7 @@ gl_FragCoord origin is upper left
0:3 No loop body
0:4 Sequence
0:4 Pre-Increment (temp 4-component vector of float)
0:4 'input' (in 4-component vector of float)
0:4 'input' (layout(location=0 ) in 4-component vector of float)
0:4 Loop with condition tested first
0:4 No loop condition
0:4 No loop body
@ -134,36 +142,42 @@ gl_FragCoord origin is upper left
0:5 Loop with condition tested first
0:5 Loop Condition
0:5 Compare Not Equal (temp bool)
0:5 'input' (in 4-component vector of float)
0:5 'input' (in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 No loop body
0:? Sequence
0:6 Loop with condition tested first
0:6 Loop Condition
0:6 Compare Not Equal (temp bool)
0:6 'input' (in 4-component vector of float)
0:6 'input' (in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 Loop Body
0:? Sequence
0:6 Branch: Return with expression
0:6 Negate value (temp 4-component vector of float)
0:6 'input' (in 4-component vector of float)
0:6 Sequence
0:6 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:6 Negate value (temp 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 Branch: Return
0:7 Sequence
0:7 Pre-Decrement (temp 4-component vector of float)
0:7 'input' (in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop with condition tested first
0:7 Loop Condition
0:7 Compare Not Equal (temp bool)
0:7 'input' (in 4-component vector of float)
0:7 'input' (in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop Body
0:? Sequence
0:7 Branch: Return with expression
0:7 Negate value (temp 4-component vector of float)
0:7 'input' (in 4-component vector of float)
0:7 Sequence
0:7 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:7 Negate value (temp 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Branch: Return
0:7 Loop Terminal Expression
0:7 add second child into first child (temp 4-component vector of float)
0:7 'input' (in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Constant:
0:7 2.000000
0:? Sequence
@ -174,7 +188,7 @@ gl_FragCoord origin is upper left
0:8 Condition
0:8 Compare Greater Than (temp bool)
0:8 direct index (temp float)
0:8 'input' (in 4-component vector of float)
0:8 'input' (layout(location=0 ) in 4-component vector of float)
0:8 Constant:
0:8 0 (const int)
0:8 Constant:
@ -189,7 +203,7 @@ gl_FragCoord origin is upper left
0:9 Condition
0:9 Compare Greater Than (temp bool)
0:9 direct index (temp float)
0:9 'input' (in 4-component vector of float)
0:9 'input' (layout(location=0 ) in 4-component vector of float)
0:9 Constant:
0:9 0 (const int)
0:9 Constant:
@ -222,21 +236,25 @@ gl_FragCoord origin is upper left
0:12 Pre-Decrement (temp float)
0:12 'ii' (temp float)
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 112
// Id's are bound by 114
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 13
EntryPoint Fragment 4 "PixelShaderFunction" 13 43
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 13 "input"
Name 89 "ii"
Name 109 "ii"
Name 43 "@entryPointOutput"
Name 91 "ii"
Name 111 "ii"
Decorate 13(input) Location 0
Decorate 43(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
10: TypeFloat 32
@ -246,21 +264,23 @@ gl_FragCoord origin is upper left
15: 10(float) Constant 1065353216
29: TypeBool
30: TypeVector 29(bool) 4
60: 10(float) Constant 1073741824
68: TypeInt 32 0
69: 68(int) Constant 0
70: TypePointer Input 10(float)
87: TypeInt 32 1
88: TypePointer Function 87(int)
90: 87(int) Constant 4294967295
97: 87(int) Constant 3
100: 87(int) Constant 2
106: 87(int) Constant 1
108: TypePointer Function 10(float)
42: TypePointer Output 11(fvec4)
43(@entryPointOutput): 42(ptr) Variable Output
62: 10(float) Constant 1073741824
70: TypeInt 32 0
71: 70(int) Constant 0
72: TypePointer Input 10(float)
89: TypeInt 32 1
90: TypePointer Function 89(int)
92: 89(int) Constant 4294967295
99: 89(int) Constant 3
102: 89(int) Constant 2
108: 89(int) Constant 1
110: TypePointer Function 10(float)
4(PixelShaderFunction): 2 Function None 3
5: Label
89(ii): 88(ptr) Variable Function
109(ii): 108(ptr) Variable Function
91(ii): 90(ptr) Variable Function
111(ii): 110(ptr) Variable Function
Branch 6
6: Label
LoopMerge 8 9 None
@ -309,97 +329,99 @@ gl_FragCoord origin is upper left
41: 29(bool) Any 40
BranchConditional 41 34 35
34: Label
42: 11(fvec4) Load 13(input)
43: 11(fvec4) FNegate 42
ReturnValue 43
44: 11(fvec4) Load 13(input)
45: 11(fvec4) FNegate 44
Store 43(@entryPointOutput) 45
Return
36: Label
Branch 33
35: Label
45: 11(fvec4) Load 13(input)
46: 11(fvec4) CompositeConstruct 15 15 15 15
47: 11(fvec4) FSub 45 46
Store 13(input) 47
Branch 48
48: Label
LoopMerge 50 51 None
Branch 52
52: Label
53: 11(fvec4) Load 13(input)
54: 11(fvec4) Load 13(input)
55: 30(bvec4) FOrdNotEqual 53 54
56: 29(bool) Any 55
BranchConditional 56 49 50
49: Label
57: 11(fvec4) Load 13(input)
58: 11(fvec4) FNegate 57
ReturnValue 58
51: Label
61: 11(fvec4) Load 13(input)
62: 11(fvec4) CompositeConstruct 60 60 60 60
63: 11(fvec4) FAdd 61 62
Store 13(input) 63
Branch 48
47: 11(fvec4) Load 13(input)
48: 11(fvec4) CompositeConstruct 15 15 15 15
49: 11(fvec4) FSub 47 48
Store 13(input) 49
Branch 50
50: Label
Branch 64
64: Label
LoopMerge 66 67 None
Branch 65
65: Label
71: 70(ptr) AccessChain 13(input) 69
72: 10(float) Load 71
73: 29(bool) FOrdGreaterThan 72 60
SelectionMerge 75 None
BranchConditional 73 74 75
74: Label
Branch 66
75: Label
LoopMerge 52 53 None
Branch 54
54: Label
55: 11(fvec4) Load 13(input)
56: 11(fvec4) Load 13(input)
57: 30(bvec4) FOrdNotEqual 55 56
58: 29(bool) Any 57
BranchConditional 58 51 52
51: Label
59: 11(fvec4) Load 13(input)
60: 11(fvec4) FNegate 59
Store 43(@entryPointOutput) 60
Return
53: Label
63: 11(fvec4) Load 13(input)
64: 11(fvec4) CompositeConstruct 62 62 62 62
65: 11(fvec4) FAdd 63 64
Store 13(input) 65
Branch 50
52: Label
Branch 66
66: Label
LoopMerge 68 69 None
Branch 67
67: Label
Branch 64
66: Label
Branch 77
73: 72(ptr) AccessChain 13(input) 71
74: 10(float) Load 73
75: 29(bool) FOrdGreaterThan 74 62
SelectionMerge 77 None
BranchConditional 75 76 77
76: Label
Branch 68
77: Label
LoopMerge 79 80 None
Branch 78
78: Label
81: 70(ptr) AccessChain 13(input) 69
82: 10(float) Load 81
83: 29(bool) FOrdGreaterThan 82 60
SelectionMerge 85 None
BranchConditional 83 84 85
84: Label
Branch 80
85: Label
Branch 69
69: Label
Branch 66
68: Label
Branch 79
79: Label
LoopMerge 81 82 None
Branch 80
80: Label
Branch 77
79: Label
Store 89(ii) 90
Branch 91
91: Label
LoopMerge 93 94 None
Branch 95
95: Label
96: 87(int) Load 89(ii)
98: 29(bool) SLessThan 96 97
BranchConditional 98 92 93
92: Label
99: 87(int) Load 89(ii)
101: 29(bool) IEqual 99 100
SelectionMerge 103 None
BranchConditional 101 102 103
102: Label
Branch 94
103: Label
Branch 94
94: Label
105: 87(int) Load 89(ii)
107: 87(int) IAdd 105 106
Store 89(ii) 107
Branch 91
83: 72(ptr) AccessChain 13(input) 71
84: 10(float) Load 83
85: 29(bool) FOrdGreaterThan 84 62
SelectionMerge 87 None
BranchConditional 85 86 87
86: Label
Branch 82
87: Label
Branch 82
82: Label
Branch 79
81: Label
Store 91(ii) 92
Branch 93
93: Label
110: 10(float) Load 109(ii)
111: 10(float) FSub 110 15
Store 109(ii) 111
LoopMerge 95 96 None
Branch 97
97: Label
98: 89(int) Load 91(ii)
100: 29(bool) SLessThan 98 99
BranchConditional 100 94 95
94: Label
101: 89(int) Load 91(ii)
103: 29(bool) IEqual 101 102
SelectionMerge 105 None
BranchConditional 103 104 105
104: Label
Branch 96
105: Label
Branch 96
96: Label
107: 89(int) Load 91(ii)
109: 89(int) IAdd 107 108
Store 91(ii) 109
Branch 93
95: Label
112: 10(float) Load 111(ii)
113: 10(float) FSub 112 15
Store 111(ii) 113
Return
FunctionEnd

View File

@ -0,0 +1,426 @@
hlsl.gather.array.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24 Function Parameters:
0:? Sequence
0:29 Sequence
0:29 move second child to first child (temp 4-component vector of float)
0:29 'txval20' (temp 4-component vector of float)
0:29 textureGather (global 4-component vector of float)
0:29 Construct combined texture-sampler (temp sampler2DArray)
0:29 'g_tTex2df4a' (uniform texture2DArray)
0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:30 Sequence
0:30 move second child to first child (temp 4-component vector of int)
0:30 'txval21' (temp 4-component vector of int)
0:30 textureGather (global 4-component vector of int)
0:30 Construct combined texture-sampler (temp isampler2DArray)
0:30 'g_tTex2di4a' (uniform itexture2DArray)
0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:? 0.500000
0:31 Sequence
0:31 move second child to first child (temp 4-component vector of uint)
0:31 'txval22' (temp 4-component vector of uint)
0:31 textureGather (global 4-component vector of uint)
0:31 Construct combined texture-sampler (temp usampler2DArray)
0:31 'g_tTex2du4a' (uniform utexture2DArray)
0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:? 0.700000
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of float)
0:35 'txval40' (temp 4-component vector of float)
0:35 textureGather (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp samplerCubeArray)
0:35 'g_tTexcdf4a' (uniform textureCubeArray)
0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:36 Sequence
0:36 move second child to first child (temp 4-component vector of int)
0:36 'txval41' (temp 4-component vector of int)
0:36 textureGather (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
0:? 0.600000
0:? 0.700000
0:37 Sequence
0:37 move second child to first child (temp 4-component vector of uint)
0:37 'txval42' (temp 4-component vector of uint)
0:37 textureGather (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:? 1.000000
0:39 move second child to first child (temp 4-component vector of float)
0:39 Color: direct index for structure (temp 4-component vector of float)
0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 1.000000
0:39 1.000000
0:39 1.000000
0:39 1.000000
0:40 move second child to first child (temp float)
0:40 Depth: direct index for structure (temp float)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 1 (const int)
0:40 Constant:
0:40 1.000000
0:42 Sequence
0:42 Sequence
0:42 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:42 Color: direct index for structure (temp 4-component vector of float)
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:42 Constant:
0:42 0 (const int)
0:42 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:42 Depth: direct index for structure (temp float)
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:42 Constant:
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24 Function Parameters:
0:? Sequence
0:29 Sequence
0:29 move second child to first child (temp 4-component vector of float)
0:29 'txval20' (temp 4-component vector of float)
0:29 textureGather (global 4-component vector of float)
0:29 Construct combined texture-sampler (temp sampler2DArray)
0:29 'g_tTex2df4a' (uniform texture2DArray)
0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:30 Sequence
0:30 move second child to first child (temp 4-component vector of int)
0:30 'txval21' (temp 4-component vector of int)
0:30 textureGather (global 4-component vector of int)
0:30 Construct combined texture-sampler (temp isampler2DArray)
0:30 'g_tTex2di4a' (uniform itexture2DArray)
0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:? 0.500000
0:31 Sequence
0:31 move second child to first child (temp 4-component vector of uint)
0:31 'txval22' (temp 4-component vector of uint)
0:31 textureGather (global 4-component vector of uint)
0:31 Construct combined texture-sampler (temp usampler2DArray)
0:31 'g_tTex2du4a' (uniform utexture2DArray)
0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:? 0.700000
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of float)
0:35 'txval40' (temp 4-component vector of float)
0:35 textureGather (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp samplerCubeArray)
0:35 'g_tTexcdf4a' (uniform textureCubeArray)
0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:36 Sequence
0:36 move second child to first child (temp 4-component vector of int)
0:36 'txval41' (temp 4-component vector of int)
0:36 textureGather (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
0:? 0.600000
0:? 0.700000
0:37 Sequence
0:37 move second child to first child (temp 4-component vector of uint)
0:37 'txval42' (temp 4-component vector of uint)
0:37 textureGather (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:? 1.000000
0:39 move second child to first child (temp 4-component vector of float)
0:39 Color: direct index for structure (temp 4-component vector of float)
0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 1.000000
0:39 1.000000
0:39 1.000000
0:39 1.000000
0:40 move second child to first child (temp float)
0:40 Depth: direct index for structure (temp float)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 1 (const int)
0:40 Constant:
0:40 1.000000
0:42 Sequence
0:42 Sequence
0:42 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:42 Color: direct index for structure (temp 4-component vector of float)
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:42 Constant:
0:42 0 (const int)
0:42 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:42 Depth: direct index for structure (temp float)
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:42 Constant:
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 117
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 99 103
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 9 "txval20"
Name 12 "g_tTex2df4a"
Name 16 "g_sSamp"
Name 30 "txval21"
Name 33 "g_tTex2di4a"
Name 45 "txval22"
Name 48 "g_tTex2du4a"
Name 57 "txval40"
Name 60 "g_tTexcdf4a"
Name 67 "txval41"
Name 70 "g_tTexcdi4a"
Name 77 "txval42"
Name 80 "g_tTexcdu4a"
Name 90 "PS_OUTPUT"
MemberName 90(PS_OUTPUT) 0 "Color"
MemberName 90(PS_OUTPUT) 1 "Depth"
Name 92 "psout"
Name 99 "Color"
Name 103 "Depth"
Name 109 "g_tTex1df4a"
Name 110 "g_tTex1df4"
Name 113 "g_tTex1di4a"
Name 116 "g_tTex1du4a"
Decorate 12(g_tTex2df4a) DescriptorSet 0
Decorate 16(g_sSamp) DescriptorSet 0
Decorate 16(g_sSamp) Binding 0
Decorate 33(g_tTex2di4a) DescriptorSet 0
Decorate 48(g_tTex2du4a) DescriptorSet 0
Decorate 60(g_tTexcdf4a) DescriptorSet 0
Decorate 70(g_tTexcdi4a) DescriptorSet 0
Decorate 80(g_tTexcdu4a) DescriptorSet 0
Decorate 99(Color) Location 0
Decorate 103(Depth) BuiltIn FragDepth
Decorate 109(g_tTex1df4a) DescriptorSet 0
Decorate 109(g_tTex1df4a) Binding 1
Decorate 110(g_tTex1df4) DescriptorSet 0
Decorate 110(g_tTex1df4) Binding 0
Decorate 113(g_tTex1di4a) DescriptorSet 0
Decorate 116(g_tTex1du4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypeImage 6(float) 2D array sampled format:Unknown
11: TypePointer UniformConstant 10
12(g_tTex2df4a): 11(ptr) Variable UniformConstant
14: TypeSampler
15: TypePointer UniformConstant 14
16(g_sSamp): 15(ptr) Variable UniformConstant
18: TypeSampledImage 10
20: TypeVector 6(float) 3
21: 6(float) Constant 1036831949
22: 6(float) Constant 1045220557
23: 6(float) Constant 1050253722
24: 20(fvec3) ConstantComposite 21 22 23
25: TypeInt 32 1
26: 25(int) Constant 0
28: TypeVector 25(int) 4
29: TypePointer Function 28(ivec4)
31: TypeImage 25(int) 2D array sampled format:Unknown
32: TypePointer UniformConstant 31
33(g_tTex2di4a): 32(ptr) Variable UniformConstant
36: TypeSampledImage 31
38: 6(float) Constant 1053609165
39: 6(float) Constant 1056964608
40: 20(fvec3) ConstantComposite 23 38 39
42: TypeInt 32 0
43: TypeVector 42(int) 4
44: TypePointer Function 43(ivec4)
46: TypeImage 42(int) 2D array sampled format:Unknown
47: TypePointer UniformConstant 46
48(g_tTex2du4a): 47(ptr) Variable UniformConstant
51: TypeSampledImage 46
53: 6(float) Constant 1058642330
54: 6(float) Constant 1060320051
55: 20(fvec3) ConstantComposite 39 53 54
58: TypeImage 6(float) Cube array sampled format:Unknown
59: TypePointer UniformConstant 58
60(g_tTexcdf4a): 59(ptr) Variable UniformConstant
63: TypeSampledImage 58
65: 7(fvec4) ConstantComposite 21 22 23 38
68: TypeImage 25(int) Cube array sampled format:Unknown
69: TypePointer UniformConstant 68
70(g_tTexcdi4a): 69(ptr) Variable UniformConstant
73: TypeSampledImage 68
75: 7(fvec4) ConstantComposite 38 39 53 54
78: TypeImage 42(int) Cube array sampled format:Unknown
79: TypePointer UniformConstant 78
80(g_tTexcdu4a): 79(ptr) Variable UniformConstant
83: TypeSampledImage 78
85: 6(float) Constant 1061997773
86: 6(float) Constant 1063675494
87: 6(float) Constant 1065353216
88: 7(fvec4) ConstantComposite 54 85 86 87
90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
91: TypePointer Function 90(PS_OUTPUT)
93: 7(fvec4) ConstantComposite 87 87 87 87
95: 25(int) Constant 1
96: TypePointer Function 6(float)
98: TypePointer Output 7(fvec4)
99(Color): 98(ptr) Variable Output
102: TypePointer Output 6(float)
103(Depth): 102(ptr) Variable Output
107: TypeImage 6(float) 1D array sampled format:Unknown
108: TypePointer UniformConstant 107
109(g_tTex1df4a): 108(ptr) Variable UniformConstant
110(g_tTex1df4): 108(ptr) Variable UniformConstant
111: TypeImage 25(int) 1D array sampled format:Unknown
112: TypePointer UniformConstant 111
113(g_tTex1di4a): 112(ptr) Variable UniformConstant
114: TypeImage 42(int) 1D array sampled format:Unknown
115: TypePointer UniformConstant 114
116(g_tTex1du4a): 115(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval20): 8(ptr) Variable Function
30(txval21): 29(ptr) Variable Function
45(txval22): 44(ptr) Variable Function
57(txval40): 8(ptr) Variable Function
67(txval41): 29(ptr) Variable Function
77(txval42): 44(ptr) Variable Function
92(psout): 91(ptr) Variable Function
13: 10 Load 12(g_tTex2df4a)
17: 14 Load 16(g_sSamp)
19: 18 SampledImage 13 17
27: 7(fvec4) ImageGather 19 24 26
Store 9(txval20) 27
34: 31 Load 33(g_tTex2di4a)
35: 14 Load 16(g_sSamp)
37: 36 SampledImage 34 35
41: 28(ivec4) ImageGather 37 40 26
Store 30(txval21) 41
49: 46 Load 48(g_tTex2du4a)
50: 14 Load 16(g_sSamp)
52: 51 SampledImage 49 50
56: 43(ivec4) ImageGather 52 55 26
Store 45(txval22) 56
61: 58 Load 60(g_tTexcdf4a)
62: 14 Load 16(g_sSamp)
64: 63 SampledImage 61 62
66: 7(fvec4) ImageGather 64 65 26
Store 57(txval40) 66
71: 68 Load 70(g_tTexcdi4a)
72: 14 Load 16(g_sSamp)
74: 73 SampledImage 71 72
76: 28(ivec4) ImageGather 74 75 26
Store 67(txval41) 76
81: 78 Load 80(g_tTexcdu4a)
82: 14 Load 16(g_sSamp)
84: 83 SampledImage 81 82
89: 43(ivec4) ImageGather 84 88 26
Store 77(txval42) 89
94: 8(ptr) AccessChain 92(psout) 26
Store 94 93
97: 96(ptr) AccessChain 92(psout) 95
Store 97 87
100: 8(ptr) AccessChain 92(psout) 26
101: 7(fvec4) Load 100
Store 99(Color) 101
104: 96(ptr) AccessChain 92(psout) 95
105: 6(float) Load 104
Store 103(Depth) 105
Return
FunctionEnd

View File

@ -0,0 +1,440 @@
hlsl.gather.basic.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:29 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:29 Function Parameters:
0:? Sequence
0:34 Sequence
0:34 move second child to first child (temp 4-component vector of float)
0:34 'txval20' (temp 4-component vector of float)
0:34 textureGather (global 4-component vector of float)
0:34 Construct combined texture-sampler (temp sampler2D)
0:34 'g_tTex2df4' (uniform texture2D)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of int)
0:35 'txval21' (temp 4-component vector of int)
0:35 textureGather (global 4-component vector of int)
0:35 Construct combined texture-sampler (temp isampler2D)
0:35 'g_tTex2di4' (uniform itexture2D)
0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:36 Sequence
0:36 move second child to first child (temp 4-component vector of uint)
0:36 'txval22' (temp 4-component vector of uint)
0:36 textureGather (global 4-component vector of uint)
0:36 Construct combined texture-sampler (temp usampler2D)
0:36 'g_tTex2du4' (uniform utexture2D)
0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:40 Sequence
0:40 move second child to first child (temp 4-component vector of float)
0:40 'txval40' (temp 4-component vector of float)
0:40 textureGather (global 4-component vector of float)
0:40 Construct combined texture-sampler (temp samplerCube)
0:40 'g_tTexcdf4' (uniform textureCube)
0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:41 Sequence
0:41 move second child to first child (temp 4-component vector of int)
0:41 'txval41' (temp 4-component vector of int)
0:41 textureGather (global 4-component vector of int)
0:41 Construct combined texture-sampler (temp isamplerCube)
0:41 'g_tTexcdi4' (uniform itextureCube)
0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
0:? 0.600000
0:42 Sequence
0:42 move second child to first child (temp 4-component vector of uint)
0:42 'txval42' (temp 4-component vector of uint)
0:42 textureGather (global 4-component vector of uint)
0:42 Construct combined texture-sampler (temp usamplerCube)
0:42 'g_tTexcdu4' (uniform utextureCube)
0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:44 move second child to first child (temp 4-component vector of float)
0:44 Color: direct index for structure (temp 4-component vector of float)
0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:44 Constant:
0:44 0 (const int)
0:44 Constant:
0:44 1.000000
0:44 1.000000
0:44 1.000000
0:44 1.000000
0:45 move second child to first child (temp float)
0:45 Depth: direct index for structure (temp float)
0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:45 Constant:
0:45 1 (const int)
0:45 Constant:
0:45 1.000000
0:47 Sequence
0:47 Sequence
0:47 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:47 Color: direct index for structure (temp 4-component vector of float)
0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:47 Constant:
0:47 0 (const int)
0:47 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:47 Depth: direct index for structure (temp float)
0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:47 Constant:
0:47 1 (const int)
0:47 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:29 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:29 Function Parameters:
0:? Sequence
0:34 Sequence
0:34 move second child to first child (temp 4-component vector of float)
0:34 'txval20' (temp 4-component vector of float)
0:34 textureGather (global 4-component vector of float)
0:34 Construct combined texture-sampler (temp sampler2D)
0:34 'g_tTex2df4' (uniform texture2D)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of int)
0:35 'txval21' (temp 4-component vector of int)
0:35 textureGather (global 4-component vector of int)
0:35 Construct combined texture-sampler (temp isampler2D)
0:35 'g_tTex2di4' (uniform itexture2D)
0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:36 Sequence
0:36 move second child to first child (temp 4-component vector of uint)
0:36 'txval22' (temp 4-component vector of uint)
0:36 textureGather (global 4-component vector of uint)
0:36 Construct combined texture-sampler (temp usampler2D)
0:36 'g_tTex2du4' (uniform utexture2D)
0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:40 Sequence
0:40 move second child to first child (temp 4-component vector of float)
0:40 'txval40' (temp 4-component vector of float)
0:40 textureGather (global 4-component vector of float)
0:40 Construct combined texture-sampler (temp samplerCube)
0:40 'g_tTexcdf4' (uniform textureCube)
0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:41 Sequence
0:41 move second child to first child (temp 4-component vector of int)
0:41 'txval41' (temp 4-component vector of int)
0:41 textureGather (global 4-component vector of int)
0:41 Construct combined texture-sampler (temp isamplerCube)
0:41 'g_tTexcdi4' (uniform itextureCube)
0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
0:? 0.600000
0:42 Sequence
0:42 move second child to first child (temp 4-component vector of uint)
0:42 'txval42' (temp 4-component vector of uint)
0:42 textureGather (global 4-component vector of uint)
0:42 Construct combined texture-sampler (temp usamplerCube)
0:42 'g_tTexcdu4' (uniform utextureCube)
0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:44 move second child to first child (temp 4-component vector of float)
0:44 Color: direct index for structure (temp 4-component vector of float)
0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:44 Constant:
0:44 0 (const int)
0:44 Constant:
0:44 1.000000
0:44 1.000000
0:44 1.000000
0:44 1.000000
0:45 move second child to first child (temp float)
0:45 Depth: direct index for structure (temp float)
0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:45 Constant:
0:45 1 (const int)
0:45 Constant:
0:45 1.000000
0:47 Sequence
0:47 Sequence
0:47 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:47 Color: direct index for structure (temp 4-component vector of float)
0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:47 Constant:
0:47 0 (const int)
0:47 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:47 Depth: direct index for structure (temp float)
0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:47 Constant:
0:47 1 (const int)
0:47 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 128
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 100 104
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 9 "txval20"
Name 12 "g_tTex2df4"
Name 16 "g_sSamp"
Name 29 "txval21"
Name 32 "g_tTex2di4"
Name 44 "txval22"
Name 47 "g_tTex2du4"
Name 56 "txval40"
Name 59 "g_tTexcdf4"
Name 67 "txval41"
Name 70 "g_tTexcdi4"
Name 77 "txval42"
Name 80 "g_tTexcdu4"
Name 90 "PS_OUTPUT"
MemberName 90(PS_OUTPUT) 0 "Color"
MemberName 90(PS_OUTPUT) 1 "Depth"
Name 92 "psout"
Name 100 "Color"
Name 104 "Depth"
Name 108 "g_sSamp2d"
Name 111 "g_tTex1df4a"
Name 112 "g_tTex1df4"
Name 115 "g_tTex1di4"
Name 118 "g_tTex1du4"
Name 121 "g_tTex3df4"
Name 124 "g_tTex3di4"
Name 127 "g_tTex3du4"
Decorate 12(g_tTex2df4) DescriptorSet 0
Decorate 16(g_sSamp) DescriptorSet 0
Decorate 16(g_sSamp) Binding 0
Decorate 32(g_tTex2di4) DescriptorSet 0
Decorate 47(g_tTex2du4) DescriptorSet 0
Decorate 59(g_tTexcdf4) DescriptorSet 0
Decorate 70(g_tTexcdi4) DescriptorSet 0
Decorate 80(g_tTexcdu4) DescriptorSet 0
Decorate 100(Color) Location 0
Decorate 104(Depth) BuiltIn FragDepth
Decorate 108(g_sSamp2d) DescriptorSet 0
Decorate 111(g_tTex1df4a) DescriptorSet 0
Decorate 111(g_tTex1df4a) Binding 1
Decorate 112(g_tTex1df4) DescriptorSet 0
Decorate 112(g_tTex1df4) Binding 0
Decorate 115(g_tTex1di4) DescriptorSet 0
Decorate 118(g_tTex1du4) DescriptorSet 0
Decorate 121(g_tTex3df4) DescriptorSet 0
Decorate 124(g_tTex3di4) DescriptorSet 0
Decorate 127(g_tTex3du4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypeImage 6(float) 2D sampled format:Unknown
11: TypePointer UniformConstant 10
12(g_tTex2df4): 11(ptr) Variable UniformConstant
14: TypeSampler
15: TypePointer UniformConstant 14
16(g_sSamp): 15(ptr) Variable UniformConstant
18: TypeSampledImage 10
20: TypeVector 6(float) 2
21: 6(float) Constant 1036831949
22: 6(float) Constant 1045220557
23: 20(fvec2) ConstantComposite 21 22
24: TypeInt 32 1
25: 24(int) Constant 0
27: TypeVector 24(int) 4
28: TypePointer Function 27(ivec4)
30: TypeImage 24(int) 2D sampled format:Unknown
31: TypePointer UniformConstant 30
32(g_tTex2di4): 31(ptr) Variable UniformConstant
35: TypeSampledImage 30
37: 6(float) Constant 1050253722
38: 6(float) Constant 1053609165
39: 20(fvec2) ConstantComposite 37 38
41: TypeInt 32 0
42: TypeVector 41(int) 4
43: TypePointer Function 42(ivec4)
45: TypeImage 41(int) 2D sampled format:Unknown
46: TypePointer UniformConstant 45
47(g_tTex2du4): 46(ptr) Variable UniformConstant
50: TypeSampledImage 45
52: 6(float) Constant 1056964608
53: 6(float) Constant 1058642330
54: 20(fvec2) ConstantComposite 52 53
57: TypeImage 6(float) Cube sampled format:Unknown
58: TypePointer UniformConstant 57
59(g_tTexcdf4): 58(ptr) Variable UniformConstant
62: TypeSampledImage 57
64: TypeVector 6(float) 3
65: 64(fvec3) ConstantComposite 21 22 37
68: TypeImage 24(int) Cube sampled format:Unknown
69: TypePointer UniformConstant 68
70(g_tTexcdi4): 69(ptr) Variable UniformConstant
73: TypeSampledImage 68
75: 64(fvec3) ConstantComposite 38 52 53
78: TypeImage 41(int) Cube sampled format:Unknown
79: TypePointer UniformConstant 78
80(g_tTexcdu4): 79(ptr) Variable UniformConstant
83: TypeSampledImage 78
85: 6(float) Constant 1060320051
86: 6(float) Constant 1061997773
87: 6(float) Constant 1063675494
88: 64(fvec3) ConstantComposite 85 86 87
90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
91: TypePointer Function 90(PS_OUTPUT)
93: 6(float) Constant 1065353216
94: 7(fvec4) ConstantComposite 93 93 93 93
96: 24(int) Constant 1
97: TypePointer Function 6(float)
99: TypePointer Output 7(fvec4)
100(Color): 99(ptr) Variable Output
103: TypePointer Output 6(float)
104(Depth): 103(ptr) Variable Output
108(g_sSamp2d): 15(ptr) Variable UniformConstant
109: TypeImage 6(float) 1D sampled format:Unknown
110: TypePointer UniformConstant 109
111(g_tTex1df4a): 110(ptr) Variable UniformConstant
112(g_tTex1df4): 110(ptr) Variable UniformConstant
113: TypeImage 24(int) 1D sampled format:Unknown
114: TypePointer UniformConstant 113
115(g_tTex1di4): 114(ptr) Variable UniformConstant
116: TypeImage 41(int) 1D sampled format:Unknown
117: TypePointer UniformConstant 116
118(g_tTex1du4): 117(ptr) Variable UniformConstant
119: TypeImage 6(float) 3D sampled format:Unknown
120: TypePointer UniformConstant 119
121(g_tTex3df4): 120(ptr) Variable UniformConstant
122: TypeImage 24(int) 3D sampled format:Unknown
123: TypePointer UniformConstant 122
124(g_tTex3di4): 123(ptr) Variable UniformConstant
125: TypeImage 41(int) 3D sampled format:Unknown
126: TypePointer UniformConstant 125
127(g_tTex3du4): 126(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval20): 8(ptr) Variable Function
29(txval21): 28(ptr) Variable Function
44(txval22): 43(ptr) Variable Function
56(txval40): 8(ptr) Variable Function
67(txval41): 28(ptr) Variable Function
77(txval42): 43(ptr) Variable Function
92(psout): 91(ptr) Variable Function
13: 10 Load 12(g_tTex2df4)
17: 14 Load 16(g_sSamp)
19: 18 SampledImage 13 17
26: 7(fvec4) ImageGather 19 23 25
Store 9(txval20) 26
33: 30 Load 32(g_tTex2di4)
34: 14 Load 16(g_sSamp)
36: 35 SampledImage 33 34
40: 27(ivec4) ImageGather 36 39 25
Store 29(txval21) 40
48: 45 Load 47(g_tTex2du4)
49: 14 Load 16(g_sSamp)
51: 50 SampledImage 48 49
55: 42(ivec4) ImageGather 51 54 25
Store 44(txval22) 55
60: 57 Load 59(g_tTexcdf4)
61: 14 Load 16(g_sSamp)
63: 62 SampledImage 60 61
66: 7(fvec4) ImageGather 63 65 25
Store 56(txval40) 66
71: 68 Load 70(g_tTexcdi4)
72: 14 Load 16(g_sSamp)
74: 73 SampledImage 71 72
76: 27(ivec4) ImageGather 74 75 25
Store 67(txval41) 76
81: 78 Load 80(g_tTexcdu4)
82: 14 Load 16(g_sSamp)
84: 83 SampledImage 81 82
89: 42(ivec4) ImageGather 84 88 25
Store 77(txval42) 89
95: 8(ptr) AccessChain 92(psout) 25
Store 95 94
98: 97(ptr) AccessChain 92(psout) 96
Store 98 93
101: 8(ptr) AccessChain 92(psout) 25
102: 7(fvec4) Load 101
Store 100(Color) 102
105: 97(ptr) AccessChain 92(psout) 96
106: 6(float) Load 105
Store 104(Depth) 106
Return
FunctionEnd

View File

@ -0,0 +1,397 @@
hlsl.gather.basic.dx10.vert
Shader version: 450
0:? Sequence
0:28 Function Definition: main( (temp structure{temp 4-component vector of float Pos})
0:28 Function Parameters:
0:? Sequence
0:33 Sequence
0:33 move second child to first child (temp 4-component vector of float)
0:33 'txval20' (temp 4-component vector of float)
0:33 textureGather (global 4-component vector of float)
0:33 Construct combined texture-sampler (temp sampler2D)
0:33 'g_tTex2df4' (uniform texture2D)
0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:34 Sequence
0:34 move second child to first child (temp 4-component vector of int)
0:34 'txval21' (temp 4-component vector of int)
0:34 textureGather (global 4-component vector of int)
0:34 Construct combined texture-sampler (temp isampler2D)
0:34 'g_tTex2di4' (uniform itexture2D)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of uint)
0:35 'txval22' (temp 4-component vector of uint)
0:35 textureGather (global 4-component vector of uint)
0:35 Construct combined texture-sampler (temp usampler2D)
0:35 'g_tTex2du4' (uniform utexture2D)
0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:39 Sequence
0:39 move second child to first child (temp 4-component vector of float)
0:39 'txval40' (temp 4-component vector of float)
0:39 textureGather (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp samplerCube)
0:39 'g_tTexcdf4' (uniform textureCube)
0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:40 Sequence
0:40 move second child to first child (temp 4-component vector of int)
0:40 'txval41' (temp 4-component vector of int)
0:40 textureGather (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isamplerCube)
0:40 'g_tTexcdi4' (uniform itextureCube)
0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
0:? 0.600000
0:41 Sequence
0:41 move second child to first child (temp 4-component vector of uint)
0:41 'txval42' (temp 4-component vector of uint)
0:41 textureGather (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usamplerCube)
0:41 'g_tTexcdu4' (uniform utextureCube)
0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:43 move second child to first child (temp 4-component vector of float)
0:43 Pos: direct index for structure (temp 4-component vector of float)
0:43 'vsout' (temp structure{temp 4-component vector of float Pos})
0:43 Constant:
0:43 0 (const int)
0:? Constant:
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:45 Sequence
0:45 Sequence
0:45 move second child to first child (temp 4-component vector of float)
0:? 'Pos' (out 4-component vector of float Position)
0:45 Pos: direct index for structure (temp 4-component vector of float)
0:45 'vsout' (temp structure{temp 4-component vector of float Pos})
0:45 Constant:
0:45 0 (const int)
0:45 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'Pos' (out 4-component vector of float Position)
Linked vertex stage:
Shader version: 450
0:? Sequence
0:28 Function Definition: main( (temp structure{temp 4-component vector of float Pos})
0:28 Function Parameters:
0:? Sequence
0:33 Sequence
0:33 move second child to first child (temp 4-component vector of float)
0:33 'txval20' (temp 4-component vector of float)
0:33 textureGather (global 4-component vector of float)
0:33 Construct combined texture-sampler (temp sampler2D)
0:33 'g_tTex2df4' (uniform texture2D)
0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:34 Sequence
0:34 move second child to first child (temp 4-component vector of int)
0:34 'txval21' (temp 4-component vector of int)
0:34 textureGather (global 4-component vector of int)
0:34 Construct combined texture-sampler (temp isampler2D)
0:34 'g_tTex2di4' (uniform itexture2D)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of uint)
0:35 'txval22' (temp 4-component vector of uint)
0:35 textureGather (global 4-component vector of uint)
0:35 Construct combined texture-sampler (temp usampler2D)
0:35 'g_tTex2du4' (uniform utexture2D)
0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:39 Sequence
0:39 move second child to first child (temp 4-component vector of float)
0:39 'txval40' (temp 4-component vector of float)
0:39 textureGather (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp samplerCube)
0:39 'g_tTexcdf4' (uniform textureCube)
0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:40 Sequence
0:40 move second child to first child (temp 4-component vector of int)
0:40 'txval41' (temp 4-component vector of int)
0:40 textureGather (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isamplerCube)
0:40 'g_tTexcdi4' (uniform itextureCube)
0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
0:? 0.600000
0:41 Sequence
0:41 move second child to first child (temp 4-component vector of uint)
0:41 'txval42' (temp 4-component vector of uint)
0:41 textureGather (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usamplerCube)
0:41 'g_tTexcdu4' (uniform utextureCube)
0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:43 move second child to first child (temp 4-component vector of float)
0:43 Pos: direct index for structure (temp 4-component vector of float)
0:43 'vsout' (temp structure{temp 4-component vector of float Pos})
0:43 Constant:
0:43 0 (const int)
0:? Constant:
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:45 Sequence
0:45 Sequence
0:45 move second child to first child (temp 4-component vector of float)
0:? 'Pos' (out 4-component vector of float Position)
0:45 Pos: direct index for structure (temp 4-component vector of float)
0:45 'vsout' (temp structure{temp 4-component vector of float Pos})
0:45 Constant:
0:45 0 (const int)
0:45 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'Pos' (out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 121
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 97
Name 4 "main"
Name 9 "txval20"
Name 12 "g_tTex2df4"
Name 16 "g_sSamp"
Name 29 "txval21"
Name 32 "g_tTex2di4"
Name 44 "txval22"
Name 47 "g_tTex2du4"
Name 56 "txval40"
Name 59 "g_tTexcdf4"
Name 67 "txval41"
Name 70 "g_tTexcdi4"
Name 77 "txval42"
Name 80 "g_tTexcdu4"
Name 90 "VS_OUTPUT"
MemberName 90(VS_OUTPUT) 0 "Pos"
Name 92 "vsout"
Name 97 "Pos"
Name 101 "g_sSamp2d"
Name 104 "g_tTex1df4a"
Name 105 "g_tTex1df4"
Name 108 "g_tTex1di4"
Name 111 "g_tTex1du4"
Name 114 "g_tTex3df4"
Name 117 "g_tTex3di4"
Name 120 "g_tTex3du4"
Decorate 12(g_tTex2df4) DescriptorSet 0
Decorate 16(g_sSamp) DescriptorSet 0
Decorate 16(g_sSamp) Binding 0
Decorate 32(g_tTex2di4) DescriptorSet 0
Decorate 47(g_tTex2du4) DescriptorSet 0
Decorate 59(g_tTexcdf4) DescriptorSet 0
Decorate 70(g_tTexcdi4) DescriptorSet 0
Decorate 80(g_tTexcdu4) DescriptorSet 0
Decorate 97(Pos) BuiltIn Position
Decorate 101(g_sSamp2d) DescriptorSet 0
Decorate 104(g_tTex1df4a) DescriptorSet 0
Decorate 104(g_tTex1df4a) Binding 1
Decorate 105(g_tTex1df4) DescriptorSet 0
Decorate 105(g_tTex1df4) Binding 0
Decorate 108(g_tTex1di4) DescriptorSet 0
Decorate 111(g_tTex1du4) DescriptorSet 0
Decorate 114(g_tTex3df4) DescriptorSet 0
Decorate 117(g_tTex3di4) DescriptorSet 0
Decorate 120(g_tTex3du4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypeImage 6(float) 2D sampled format:Unknown
11: TypePointer UniformConstant 10
12(g_tTex2df4): 11(ptr) Variable UniformConstant
14: TypeSampler
15: TypePointer UniformConstant 14
16(g_sSamp): 15(ptr) Variable UniformConstant
18: TypeSampledImage 10
20: TypeVector 6(float) 2
21: 6(float) Constant 1036831949
22: 6(float) Constant 1045220557
23: 20(fvec2) ConstantComposite 21 22
24: TypeInt 32 1
25: 24(int) Constant 0
27: TypeVector 24(int) 4
28: TypePointer Function 27(ivec4)
30: TypeImage 24(int) 2D sampled format:Unknown
31: TypePointer UniformConstant 30
32(g_tTex2di4): 31(ptr) Variable UniformConstant
35: TypeSampledImage 30
37: 6(float) Constant 1050253722
38: 6(float) Constant 1053609165
39: 20(fvec2) ConstantComposite 37 38
41: TypeInt 32 0
42: TypeVector 41(int) 4
43: TypePointer Function 42(ivec4)
45: TypeImage 41(int) 2D sampled format:Unknown
46: TypePointer UniformConstant 45
47(g_tTex2du4): 46(ptr) Variable UniformConstant
50: TypeSampledImage 45
52: 6(float) Constant 1056964608
53: 6(float) Constant 1058642330
54: 20(fvec2) ConstantComposite 52 53
57: TypeImage 6(float) Cube sampled format:Unknown
58: TypePointer UniformConstant 57
59(g_tTexcdf4): 58(ptr) Variable UniformConstant
62: TypeSampledImage 57
64: TypeVector 6(float) 3
65: 64(fvec3) ConstantComposite 21 22 37
68: TypeImage 24(int) Cube sampled format:Unknown
69: TypePointer UniformConstant 68
70(g_tTexcdi4): 69(ptr) Variable UniformConstant
73: TypeSampledImage 68
75: 64(fvec3) ConstantComposite 38 52 53
78: TypeImage 41(int) Cube sampled format:Unknown
79: TypePointer UniformConstant 78
80(g_tTexcdu4): 79(ptr) Variable UniformConstant
83: TypeSampledImage 78
85: 6(float) Constant 1060320051
86: 6(float) Constant 1061997773
87: 6(float) Constant 1063675494
88: 64(fvec3) ConstantComposite 85 86 87
90(VS_OUTPUT): TypeStruct 7(fvec4)
91: TypePointer Function 90(VS_OUTPUT)
93: 6(float) Constant 0
94: 7(fvec4) ConstantComposite 93 93 93 93
96: TypePointer Output 7(fvec4)
97(Pos): 96(ptr) Variable Output
101(g_sSamp2d): 15(ptr) Variable UniformConstant
102: TypeImage 6(float) 1D sampled format:Unknown
103: TypePointer UniformConstant 102
104(g_tTex1df4a): 103(ptr) Variable UniformConstant
105(g_tTex1df4): 103(ptr) Variable UniformConstant
106: TypeImage 24(int) 1D sampled format:Unknown
107: TypePointer UniformConstant 106
108(g_tTex1di4): 107(ptr) Variable UniformConstant
109: TypeImage 41(int) 1D sampled format:Unknown
110: TypePointer UniformConstant 109
111(g_tTex1du4): 110(ptr) Variable UniformConstant
112: TypeImage 6(float) 3D sampled format:Unknown
113: TypePointer UniformConstant 112
114(g_tTex3df4): 113(ptr) Variable UniformConstant
115: TypeImage 24(int) 3D sampled format:Unknown
116: TypePointer UniformConstant 115
117(g_tTex3di4): 116(ptr) Variable UniformConstant
118: TypeImage 41(int) 3D sampled format:Unknown
119: TypePointer UniformConstant 118
120(g_tTex3du4): 119(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval20): 8(ptr) Variable Function
29(txval21): 28(ptr) Variable Function
44(txval22): 43(ptr) Variable Function
56(txval40): 8(ptr) Variable Function
67(txval41): 28(ptr) Variable Function
77(txval42): 43(ptr) Variable Function
92(vsout): 91(ptr) Variable Function
13: 10 Load 12(g_tTex2df4)
17: 14 Load 16(g_sSamp)
19: 18 SampledImage 13 17
26: 7(fvec4) ImageGather 19 23 25
Store 9(txval20) 26
33: 30 Load 32(g_tTex2di4)
34: 14 Load 16(g_sSamp)
36: 35 SampledImage 33 34
40: 27(ivec4) ImageGather 36 39 25
Store 29(txval21) 40
48: 45 Load 47(g_tTex2du4)
49: 14 Load 16(g_sSamp)
51: 50 SampledImage 48 49
55: 42(ivec4) ImageGather 51 54 25
Store 44(txval22) 55
60: 57 Load 59(g_tTexcdf4)
61: 14 Load 16(g_sSamp)
63: 62 SampledImage 60 61
66: 7(fvec4) ImageGather 63 65 25
Store 56(txval40) 66
71: 68 Load 70(g_tTexcdi4)
72: 14 Load 16(g_sSamp)
74: 73 SampledImage 71 72
76: 27(ivec4) ImageGather 74 75 25
Store 67(txval41) 76
81: 78 Load 80(g_tTexcdu4)
82: 14 Load 16(g_sSamp)
84: 83 SampledImage 81 82
89: 42(ivec4) ImageGather 84 88 25
Store 77(txval42) 89
95: 8(ptr) AccessChain 92(vsout) 25
Store 95 94
98: 8(ptr) AccessChain 92(vsout) 25
99: 7(fvec4) Load 98
Store 97(Pos) 99
Return
FunctionEnd

View File

@ -0,0 +1,361 @@
hlsl.gather.offset.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:28 Function Parameters:
0:? Sequence
0:33 Sequence
0:33 move second child to first child (temp 4-component vector of float)
0:33 'txval20' (temp 4-component vector of float)
0:33 textureGatherOffset (global 4-component vector of float)
0:33 Construct combined texture-sampler (temp sampler2D)
0:33 'g_tTex2df4' (uniform texture2D)
0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? Constant:
0:? 1 (const int)
0:? 0 (const int)
0:34 Sequence
0:34 move second child to first child (temp 4-component vector of int)
0:34 'txval21' (temp 4-component vector of int)
0:34 textureGatherOffset (global 4-component vector of int)
0:34 Construct combined texture-sampler (temp isampler2D)
0:34 'g_tTex2di4' (uniform itexture2D)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:? Constant:
0:? 1 (const int)
0:? 1 (const int)
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of uint)
0:35 'txval22' (temp 4-component vector of uint)
0:35 textureGatherOffset (global 4-component vector of uint)
0:35 Construct combined texture-sampler (temp usampler2D)
0:35 'g_tTex2du4' (uniform utexture2D)
0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:? Constant:
0:? 1 (const int)
0:? -1 (const int)
0:40 move second child to first child (temp 4-component vector of float)
0:40 Color: direct index for structure (temp 4-component vector of float)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 0 (const int)
0:40 Constant:
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:41 move second child to first child (temp float)
0:41 Depth: direct index for structure (temp float)
0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:41 Constant:
0:41 1 (const int)
0:41 Constant:
0:41 1.000000
0:43 Sequence
0:43 Sequence
0:43 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:43 Color: direct index for structure (temp 4-component vector of float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 0 (const int)
0:43 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:43 Depth: direct index for structure (temp float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:28 Function Parameters:
0:? Sequence
0:33 Sequence
0:33 move second child to first child (temp 4-component vector of float)
0:33 'txval20' (temp 4-component vector of float)
0:33 textureGatherOffset (global 4-component vector of float)
0:33 Construct combined texture-sampler (temp sampler2D)
0:33 'g_tTex2df4' (uniform texture2D)
0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? Constant:
0:? 1 (const int)
0:? 0 (const int)
0:34 Sequence
0:34 move second child to first child (temp 4-component vector of int)
0:34 'txval21' (temp 4-component vector of int)
0:34 textureGatherOffset (global 4-component vector of int)
0:34 Construct combined texture-sampler (temp isampler2D)
0:34 'g_tTex2di4' (uniform itexture2D)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:? Constant:
0:? 1 (const int)
0:? 1 (const int)
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of uint)
0:35 'txval22' (temp 4-component vector of uint)
0:35 textureGatherOffset (global 4-component vector of uint)
0:35 Construct combined texture-sampler (temp usampler2D)
0:35 'g_tTex2du4' (uniform utexture2D)
0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:? Constant:
0:? 1 (const int)
0:? -1 (const int)
0:40 move second child to first child (temp 4-component vector of float)
0:40 Color: direct index for structure (temp 4-component vector of float)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 0 (const int)
0:40 Constant:
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:40 1.000000
0:41 move second child to first child (temp float)
0:41 Depth: direct index for structure (temp float)
0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:41 Constant:
0:41 1 (const int)
0:41 Constant:
0:41 1.000000
0:43 Sequence
0:43 Sequence
0:43 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:43 Color: direct index for structure (temp 4-component vector of float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 0 (const int)
0:43 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:43 Depth: direct index for structure (temp float)
0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:43 Constant:
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 107
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 71 75
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 9 "txval20"
Name 12 "g_tTex2df4"
Name 16 "g_sSamp"
Name 32 "txval21"
Name 35 "g_tTex2di4"
Name 48 "txval22"
Name 51 "g_tTex2du4"
Name 62 "PS_OUTPUT"
MemberName 62(PS_OUTPUT) 0 "Color"
MemberName 62(PS_OUTPUT) 1 "Depth"
Name 64 "psout"
Name 71 "Color"
Name 75 "Depth"
Name 81 "g_tTex1df4a"
Name 82 "g_tTex1df4"
Name 85 "g_tTex1di4"
Name 88 "g_tTex1du4"
Name 91 "g_tTex3df4"
Name 94 "g_tTex3di4"
Name 97 "g_tTex3du4"
Name 100 "g_tTexcdf4"
Name 103 "g_tTexcdi4"
Name 106 "g_tTexcdu4"
Decorate 12(g_tTex2df4) DescriptorSet 0
Decorate 16(g_sSamp) DescriptorSet 0
Decorate 16(g_sSamp) Binding 0
Decorate 35(g_tTex2di4) DescriptorSet 0
Decorate 51(g_tTex2du4) DescriptorSet 0
Decorate 71(Color) Location 0
Decorate 75(Depth) BuiltIn FragDepth
Decorate 81(g_tTex1df4a) DescriptorSet 0
Decorate 81(g_tTex1df4a) Binding 1
Decorate 82(g_tTex1df4) DescriptorSet 0
Decorate 82(g_tTex1df4) Binding 0
Decorate 85(g_tTex1di4) DescriptorSet 0
Decorate 88(g_tTex1du4) DescriptorSet 0
Decorate 91(g_tTex3df4) DescriptorSet 0
Decorate 94(g_tTex3di4) DescriptorSet 0
Decorate 97(g_tTex3du4) DescriptorSet 0
Decorate 100(g_tTexcdf4) DescriptorSet 0
Decorate 103(g_tTexcdi4) DescriptorSet 0
Decorate 106(g_tTexcdu4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypeImage 6(float) 2D sampled format:Unknown
11: TypePointer UniformConstant 10
12(g_tTex2df4): 11(ptr) Variable UniformConstant
14: TypeSampler
15: TypePointer UniformConstant 14
16(g_sSamp): 15(ptr) Variable UniformConstant
18: TypeSampledImage 10
20: TypeVector 6(float) 2
21: 6(float) Constant 1036831949
22: 6(float) Constant 1045220557
23: 20(fvec2) ConstantComposite 21 22
24: TypeInt 32 1
25: TypeVector 24(int) 2
26: 24(int) Constant 1
27: 24(int) Constant 0
28: 25(ivec2) ConstantComposite 26 27
30: TypeVector 24(int) 4
31: TypePointer Function 30(ivec4)
33: TypeImage 24(int) 2D sampled format:Unknown
34: TypePointer UniformConstant 33
35(g_tTex2di4): 34(ptr) Variable UniformConstant
38: TypeSampledImage 33
40: 6(float) Constant 1050253722
41: 6(float) Constant 1053609165
42: 20(fvec2) ConstantComposite 40 41
43: 25(ivec2) ConstantComposite 26 26
45: TypeInt 32 0
46: TypeVector 45(int) 4
47: TypePointer Function 46(ivec4)
49: TypeImage 45(int) 2D sampled format:Unknown
50: TypePointer UniformConstant 49
51(g_tTex2du4): 50(ptr) Variable UniformConstant
54: TypeSampledImage 49
56: 6(float) Constant 1056964608
57: 6(float) Constant 1058642330
58: 20(fvec2) ConstantComposite 56 57
59: 24(int) Constant 4294967295
60: 25(ivec2) ConstantComposite 26 59
62(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
63: TypePointer Function 62(PS_OUTPUT)
65: 6(float) Constant 1065353216
66: 7(fvec4) ConstantComposite 65 65 65 65
68: TypePointer Function 6(float)
70: TypePointer Output 7(fvec4)
71(Color): 70(ptr) Variable Output
74: TypePointer Output 6(float)
75(Depth): 74(ptr) Variable Output
79: TypeImage 6(float) 1D sampled format:Unknown
80: TypePointer UniformConstant 79
81(g_tTex1df4a): 80(ptr) Variable UniformConstant
82(g_tTex1df4): 80(ptr) Variable UniformConstant
83: TypeImage 24(int) 1D sampled format:Unknown
84: TypePointer UniformConstant 83
85(g_tTex1di4): 84(ptr) Variable UniformConstant
86: TypeImage 45(int) 1D sampled format:Unknown
87: TypePointer UniformConstant 86
88(g_tTex1du4): 87(ptr) Variable UniformConstant
89: TypeImage 6(float) 3D sampled format:Unknown
90: TypePointer UniformConstant 89
91(g_tTex3df4): 90(ptr) Variable UniformConstant
92: TypeImage 24(int) 3D sampled format:Unknown
93: TypePointer UniformConstant 92
94(g_tTex3di4): 93(ptr) Variable UniformConstant
95: TypeImage 45(int) 3D sampled format:Unknown
96: TypePointer UniformConstant 95
97(g_tTex3du4): 96(ptr) Variable UniformConstant
98: TypeImage 6(float) Cube sampled format:Unknown
99: TypePointer UniformConstant 98
100(g_tTexcdf4): 99(ptr) Variable UniformConstant
101: TypeImage 24(int) Cube sampled format:Unknown
102: TypePointer UniformConstant 101
103(g_tTexcdi4): 102(ptr) Variable UniformConstant
104: TypeImage 45(int) Cube sampled format:Unknown
105: TypePointer UniformConstant 104
106(g_tTexcdu4): 105(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval20): 8(ptr) Variable Function
32(txval21): 31(ptr) Variable Function
48(txval22): 47(ptr) Variable Function
64(psout): 63(ptr) Variable Function
13: 10 Load 12(g_tTex2df4)
17: 14 Load 16(g_sSamp)
19: 18 SampledImage 13 17
29: 7(fvec4) ImageGather 19 23 27 ConstOffset 28
Store 9(txval20) 29
36: 33 Load 35(g_tTex2di4)
37: 14 Load 16(g_sSamp)
39: 38 SampledImage 36 37
44: 30(ivec4) ImageGather 39 42 27 ConstOffset 43
Store 32(txval21) 44
52: 49 Load 51(g_tTex2du4)
53: 14 Load 16(g_sSamp)
55: 54 SampledImage 52 53
61: 46(ivec4) ImageGather 55 58 27 ConstOffset 60
Store 48(txval22) 61
67: 8(ptr) AccessChain 64(psout) 27
Store 67 66
69: 68(ptr) AccessChain 64(psout) 26
Store 69 65
72: 8(ptr) AccessChain 64(psout) 27
73: 7(fvec4) Load 72
Store 71(Color) 73
76: 68(ptr) AccessChain 64(psout) 26
77: 6(float) Load 76
Store 75(Depth) 77
Return
FunctionEnd

View File

@ -0,0 +1,326 @@
hlsl.gather.offsetarray.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:20 Function Parameters:
0:? Sequence
0:25 Sequence
0:25 move second child to first child (temp 4-component vector of float)
0:25 'txval20' (temp 4-component vector of float)
0:25 textureGatherOffset (global 4-component vector of float)
0:25 Construct combined texture-sampler (temp sampler2DArray)
0:25 'g_tTex2df4' (uniform texture2DArray)
0:25 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? Constant:
0:? 1 (const int)
0:? 0 (const int)
0:26 Sequence
0:26 move second child to first child (temp 4-component vector of int)
0:26 'txval21' (temp 4-component vector of int)
0:26 textureGatherOffset (global 4-component vector of int)
0:26 Construct combined texture-sampler (temp isampler2DArray)
0:26 'g_tTex2di4' (uniform itexture2DArray)
0:26 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:? 0.400000
0:? Constant:
0:? 1 (const int)
0:? 1 (const int)
0:27 Sequence
0:27 move second child to first child (temp 4-component vector of uint)
0:27 'txval22' (temp 4-component vector of uint)
0:27 textureGatherOffset (global 4-component vector of uint)
0:27 Construct combined texture-sampler (temp usampler2DArray)
0:27 'g_tTex2du4' (uniform utexture2DArray)
0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:? 0.700000
0:? Constant:
0:? 1 (const int)
0:? -1 (const int)
0:32 move second child to first child (temp 4-component vector of float)
0:32 Color: direct index for structure (temp 4-component vector of float)
0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
0:32 1.000000
0:32 1.000000
0:32 1.000000
0:32 1.000000
0:33 move second child to first child (temp float)
0:33 Depth: direct index for structure (temp float)
0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 1.000000
0:35 Sequence
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:35 Color: direct index for structure (temp 4-component vector of float)
0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:35 Constant:
0:35 0 (const int)
0:35 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:35 Depth: direct index for structure (temp float)
0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:35 Constant:
0:35 1 (const int)
0:35 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
0:? 'g_tTex2di4' (uniform itexture2DArray)
0:? 'g_tTex2du4' (uniform utexture2DArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:20 Function Parameters:
0:? Sequence
0:25 Sequence
0:25 move second child to first child (temp 4-component vector of float)
0:25 'txval20' (temp 4-component vector of float)
0:25 textureGatherOffset (global 4-component vector of float)
0:25 Construct combined texture-sampler (temp sampler2DArray)
0:25 'g_tTex2df4' (uniform texture2DArray)
0:25 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:? 0.300000
0:? Constant:
0:? 1 (const int)
0:? 0 (const int)
0:26 Sequence
0:26 move second child to first child (temp 4-component vector of int)
0:26 'txval21' (temp 4-component vector of int)
0:26 textureGatherOffset (global 4-component vector of int)
0:26 Construct combined texture-sampler (temp isampler2DArray)
0:26 'g_tTex2di4' (uniform itexture2DArray)
0:26 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
0:? 0.400000
0:? Constant:
0:? 1 (const int)
0:? 1 (const int)
0:27 Sequence
0:27 move second child to first child (temp 4-component vector of uint)
0:27 'txval22' (temp 4-component vector of uint)
0:27 textureGatherOffset (global 4-component vector of uint)
0:27 Construct combined texture-sampler (temp usampler2DArray)
0:27 'g_tTex2du4' (uniform utexture2DArray)
0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
0:? 0.700000
0:? Constant:
0:? 1 (const int)
0:? -1 (const int)
0:32 move second child to first child (temp 4-component vector of float)
0:32 Color: direct index for structure (temp 4-component vector of float)
0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
0:32 1.000000
0:32 1.000000
0:32 1.000000
0:32 1.000000
0:33 move second child to first child (temp float)
0:33 Depth: direct index for structure (temp float)
0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 1.000000
0:35 Sequence
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:35 Color: direct index for structure (temp 4-component vector of float)
0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:35 Constant:
0:35 0 (const int)
0:35 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:35 Depth: direct index for structure (temp float)
0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:35 Constant:
0:35 1 (const int)
0:35 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
0:? 'g_tTex2di4' (uniform itexture2DArray)
0:? 'g_tTex2du4' (uniform utexture2DArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 90
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 72 76
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 9 "txval20"
Name 12 "g_tTex2df4"
Name 16 "g_sSamp"
Name 33 "txval21"
Name 36 "g_tTex2di4"
Name 48 "txval22"
Name 51 "g_tTex2du4"
Name 63 "PS_OUTPUT"
MemberName 63(PS_OUTPUT) 0 "Color"
MemberName 63(PS_OUTPUT) 1 "Depth"
Name 65 "psout"
Name 72 "Color"
Name 76 "Depth"
Name 82 "g_tTex1df4a"
Name 83 "g_tTex1df4"
Name 86 "g_tTex1di4"
Name 89 "g_tTex1du4"
Decorate 12(g_tTex2df4) DescriptorSet 0
Decorate 16(g_sSamp) DescriptorSet 0
Decorate 16(g_sSamp) Binding 0
Decorate 36(g_tTex2di4) DescriptorSet 0
Decorate 51(g_tTex2du4) DescriptorSet 0
Decorate 72(Color) Location 0
Decorate 76(Depth) BuiltIn FragDepth
Decorate 82(g_tTex1df4a) DescriptorSet 0
Decorate 82(g_tTex1df4a) Binding 1
Decorate 83(g_tTex1df4) DescriptorSet 0
Decorate 83(g_tTex1df4) Binding 0
Decorate 86(g_tTex1di4) DescriptorSet 0
Decorate 89(g_tTex1du4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypeImage 6(float) 2D array sampled format:Unknown
11: TypePointer UniformConstant 10
12(g_tTex2df4): 11(ptr) Variable UniformConstant
14: TypeSampler
15: TypePointer UniformConstant 14
16(g_sSamp): 15(ptr) Variable UniformConstant
18: TypeSampledImage 10
20: TypeVector 6(float) 3
21: 6(float) Constant 1036831949
22: 6(float) Constant 1045220557
23: 6(float) Constant 1050253722
24: 20(fvec3) ConstantComposite 21 22 23
25: TypeInt 32 1
26: TypeVector 25(int) 2
27: 25(int) Constant 1
28: 25(int) Constant 0
29: 26(ivec2) ConstantComposite 27 28
31: TypeVector 25(int) 4
32: TypePointer Function 31(ivec4)
34: TypeImage 25(int) 2D array sampled format:Unknown
35: TypePointer UniformConstant 34
36(g_tTex2di4): 35(ptr) Variable UniformConstant
39: TypeSampledImage 34
41: 6(float) Constant 1053609165
42: 20(fvec3) ConstantComposite 23 41 41
43: 26(ivec2) ConstantComposite 27 27
45: TypeInt 32 0
46: TypeVector 45(int) 4
47: TypePointer Function 46(ivec4)
49: TypeImage 45(int) 2D array sampled format:Unknown
50: TypePointer UniformConstant 49
51(g_tTex2du4): 50(ptr) Variable UniformConstant
54: TypeSampledImage 49
56: 6(float) Constant 1056964608
57: 6(float) Constant 1058642330
58: 6(float) Constant 1060320051
59: 20(fvec3) ConstantComposite 56 57 58
60: 25(int) Constant 4294967295
61: 26(ivec2) ConstantComposite 27 60
63(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
64: TypePointer Function 63(PS_OUTPUT)
66: 6(float) Constant 1065353216
67: 7(fvec4) ConstantComposite 66 66 66 66
69: TypePointer Function 6(float)
71: TypePointer Output 7(fvec4)
72(Color): 71(ptr) Variable Output
75: TypePointer Output 6(float)
76(Depth): 75(ptr) Variable Output
80: TypeImage 6(float) 1D array sampled format:Unknown
81: TypePointer UniformConstant 80
82(g_tTex1df4a): 81(ptr) Variable UniformConstant
83(g_tTex1df4): 81(ptr) Variable UniformConstant
84: TypeImage 25(int) 1D array sampled format:Unknown
85: TypePointer UniformConstant 84
86(g_tTex1di4): 85(ptr) Variable UniformConstant
87: TypeImage 45(int) 1D array sampled format:Unknown
88: TypePointer UniformConstant 87
89(g_tTex1du4): 88(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval20): 8(ptr) Variable Function
33(txval21): 32(ptr) Variable Function
48(txval22): 47(ptr) Variable Function
65(psout): 64(ptr) Variable Function
13: 10 Load 12(g_tTex2df4)
17: 14 Load 16(g_sSamp)
19: 18 SampledImage 13 17
30: 7(fvec4) ImageGather 19 24 28 ConstOffset 29
Store 9(txval20) 30
37: 34 Load 36(g_tTex2di4)
38: 14 Load 16(g_sSamp)
40: 39 SampledImage 37 38
44: 31(ivec4) ImageGather 40 42 28 ConstOffset 43
Store 33(txval21) 44
52: 49 Load 51(g_tTex2du4)
53: 14 Load 16(g_sSamp)
55: 54 SampledImage 52 53
62: 46(ivec4) ImageGather 55 59 28 ConstOffset 61
Store 48(txval22) 62
68: 8(ptr) AccessChain 65(psout) 28
Store 68 67
70: 69(ptr) AccessChain 65(psout) 27
Store 70 66
73: 8(ptr) AccessChain 65(psout) 28
74: 7(fvec4) Load 73
Store 72(Color) 74
77: 69(ptr) AccessChain 65(psout) 27
78: 6(float) Load 77
Store 76(Depth) 78
Return
FunctionEnd

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,182 @@
hlsl.getdimensions.dx10.vert
Shader version: 450
0:? Sequence
0:11 Function Definition: main( (temp structure{temp 4-component vector of float Pos})
0:11 Function Parameters:
0:? Sequence
0:21 Sequence
0:21 move second child to first child (temp uint)
0:21 'sizeQueryTemp' (temp uint)
0:21 textureSize (temp uint)
0:21 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:21 move second child to first child (temp uint)
0:21 'WidthU' (temp uint)
0:21 'sizeQueryTemp' (temp uint)
0:22 Sequence
0:22 move second child to first child (temp uint)
0:22 'sizeQueryTemp' (temp uint)
0:22 textureSize (temp uint)
0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:22 Constant:
0:22 6 (const uint)
0:22 move second child to first child (temp uint)
0:22 'WidthU' (temp uint)
0:22 'sizeQueryTemp' (temp uint)
0:22 move second child to first child (temp uint)
0:22 'NumberOfLevelsU' (temp uint)
0:22 textureQueryLevels (temp uint)
0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:24 move second child to first child (temp 4-component vector of float)
0:24 Pos: direct index for structure (temp 4-component vector of float)
0:24 'vsout' (temp structure{temp 4-component vector of float Pos})
0:24 Constant:
0:24 0 (const int)
0:? Constant:
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:26 Sequence
0:26 Sequence
0:26 move second child to first child (temp 4-component vector of float)
0:? 'Pos' (out 4-component vector of float Position)
0:26 Pos: direct index for structure (temp 4-component vector of float)
0:26 'vsout' (temp structure{temp 4-component vector of float Pos})
0:26 Constant:
0:26 0 (const int)
0:26 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'Pos' (out 4-component vector of float Position)
Linked vertex stage:
Shader version: 450
0:? Sequence
0:11 Function Definition: main( (temp structure{temp 4-component vector of float Pos})
0:11 Function Parameters:
0:? Sequence
0:21 Sequence
0:21 move second child to first child (temp uint)
0:21 'sizeQueryTemp' (temp uint)
0:21 textureSize (temp uint)
0:21 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:21 move second child to first child (temp uint)
0:21 'WidthU' (temp uint)
0:21 'sizeQueryTemp' (temp uint)
0:22 Sequence
0:22 move second child to first child (temp uint)
0:22 'sizeQueryTemp' (temp uint)
0:22 textureSize (temp uint)
0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:22 Constant:
0:22 6 (const uint)
0:22 move second child to first child (temp uint)
0:22 'WidthU' (temp uint)
0:22 'sizeQueryTemp' (temp uint)
0:22 move second child to first child (temp uint)
0:22 'NumberOfLevelsU' (temp uint)
0:22 textureQueryLevels (temp uint)
0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:24 move second child to first child (temp 4-component vector of float)
0:24 Pos: direct index for structure (temp 4-component vector of float)
0:24 'vsout' (temp structure{temp 4-component vector of float Pos})
0:24 Constant:
0:24 0 (const int)
0:? Constant:
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:26 Sequence
0:26 Sequence
0:26 move second child to first child (temp 4-component vector of float)
0:? 'Pos' (out 4-component vector of float Position)
0:26 Pos: direct index for structure (temp 4-component vector of float)
0:26 'vsout' (temp structure{temp 4-component vector of float Pos})
0:26 Constant:
0:26 0 (const int)
0:26 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'Pos' (out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 43
Capability Shader
Capability Sampled1D
Capability ImageQuery
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 36
Name 4 "main"
Name 8 "sizeQueryTemp"
Name 12 "g_tTex1df4"
Name 16 "WidthU"
Name 18 "sizeQueryTemp"
Name 23 "NumberOfLevelsU"
Name 27 "VS_OUTPUT"
MemberName 27(VS_OUTPUT) 0 "Pos"
Name 29 "vsout"
Name 36 "Pos"
Name 42 "g_sSamp"
Decorate 12(g_tTex1df4) DescriptorSet 0
Decorate 12(g_tTex1df4) Binding 0
Decorate 36(Pos) BuiltIn Position
Decorate 42(g_sSamp) DescriptorSet 0
Decorate 42(g_sSamp) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypeFloat 32
10: TypeImage 9(float) 1D sampled format:Unknown
11: TypePointer UniformConstant 10
12(g_tTex1df4): 11(ptr) Variable UniformConstant
14: TypeInt 32 1
20: 6(int) Constant 6
26: TypeVector 9(float) 4
27(VS_OUTPUT): TypeStruct 26(fvec4)
28: TypePointer Function 27(VS_OUTPUT)
30: 14(int) Constant 0
31: 9(float) Constant 0
32: 26(fvec4) ConstantComposite 31 31 31 31
33: TypePointer Function 26(fvec4)
35: TypePointer Output 26(fvec4)
36(Pos): 35(ptr) Variable Output
40: TypeSampler
41: TypePointer UniformConstant 40
42(g_sSamp): 41(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(sizeQueryTemp): 7(ptr) Variable Function
16(WidthU): 7(ptr) Variable Function
18(sizeQueryTemp): 7(ptr) Variable Function
23(NumberOfLevelsU): 7(ptr) Variable Function
29(vsout): 28(ptr) Variable Function
13: 10 Load 12(g_tTex1df4)
15: 14(int) ImageQuerySize 13
Store 8(sizeQueryTemp) 15
17: 6(int) Load 8(sizeQueryTemp)
Store 16(WidthU) 17
19: 10 Load 12(g_tTex1df4)
21: 14(int) ImageQuerySizeLod 19 20
Store 18(sizeQueryTemp) 21
22: 6(int) Load 18(sizeQueryTemp)
Store 16(WidthU) 22
24: 10 Load 12(g_tTex1df4)
25: 14(int) ImageQueryLevels 24
Store 23(NumberOfLevelsU) 25
34: 33(ptr) AccessChain 29(vsout) 30
Store 34 32
37: 33(ptr) AccessChain 29(vsout) 30
38: 26(fvec4) Load 37
Store 36(Pos) 38
Return
FunctionEnd

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,133 @@
hlsl.getsampleposition.dx10.frag
ERROR: 0:16: '' : unimplemented: GetSamplePosition
ERROR: 0:17: '' : unimplemented: GetSamplePosition
ERROR: 2 compilation errors. No code generated.
Shader version: 450
gl_FragCoord origin is upper left
ERROR: node is still EOpNull!
0:13 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:13 Function Parameters:
0:? Sequence
0:16 Sequence
0:16 move second child to first child (temp 2-component vector of float)
0:16 'r00' (temp 2-component vector of float)
0:16 ERROR: Bad aggregation op
(global 2-component vector of float)
0:16 'g_tTex2dmsf4' (uniform texture2DMS)
0:16 Constant:
0:16 1 (const int)
0:17 Sequence
0:17 move second child to first child (temp 2-component vector of float)
0:17 'r01' (temp 2-component vector of float)
0:17 ERROR: Bad aggregation op
(global 2-component vector of float)
0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:17 Constant:
0:17 2 (const int)
0:19 move second child to first child (temp 4-component vector of float)
0:19 Color: direct index for structure (temp 4-component vector of float)
0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:19 Constant:
0:19 0 (const int)
0:19 Constant:
0:19 1.000000
0:19 1.000000
0:19 1.000000
0:19 1.000000
0:20 move second child to first child (temp float)
0:20 Depth: direct index for structure (temp float)
0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:20 Constant:
0:20 1 (const int)
0:20 Constant:
0:20 1.000000
0:22 Sequence
0:22 Sequence
0:22 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:22 Color: direct index for structure (temp 4-component vector of float)
0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:22 Constant:
0:22 0 (const int)
0:22 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:22 Depth: direct index for structure (temp float)
0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:22 Constant:
0:22 1 (const int)
0:22 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex2dmsf4' (uniform texture2DMS)
0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
ERROR: node is still EOpNull!
0:13 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:13 Function Parameters:
0:? Sequence
0:16 Sequence
0:16 move second child to first child (temp 2-component vector of float)
0:16 'r00' (temp 2-component vector of float)
0:16 ERROR: Bad aggregation op
(global 2-component vector of float)
0:16 'g_tTex2dmsf4' (uniform texture2DMS)
0:16 Constant:
0:16 1 (const int)
0:17 Sequence
0:17 move second child to first child (temp 2-component vector of float)
0:17 'r01' (temp 2-component vector of float)
0:17 ERROR: Bad aggregation op
(global 2-component vector of float)
0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:17 Constant:
0:17 2 (const int)
0:19 move second child to first child (temp 4-component vector of float)
0:19 Color: direct index for structure (temp 4-component vector of float)
0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:19 Constant:
0:19 0 (const int)
0:19 Constant:
0:19 1.000000
0:19 1.000000
0:19 1.000000
0:19 1.000000
0:20 move second child to first child (temp float)
0:20 Depth: direct index for structure (temp float)
0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:20 Constant:
0:20 1 (const int)
0:20 Constant:
0:20 1.000000
0:22 Sequence
0:22 Sequence
0:22 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:22 Color: direct index for structure (temp 4-component vector of float)
0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:22 Constant:
0:22 0 (const int)
0:22 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:22 Depth: direct index for structure (temp float)
0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:22 Constant:
0:22 1 (const int)
0:22 Branch: Return
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex2dmsf4' (uniform texture2DMS)
0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
SPIR-V is not generated for failed compile or link

View File

@ -2,71 +2,89 @@ hlsl.if.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (in 4-component vector of float)
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:3 Test condition and select (temp void)
0:3 Condition
0:3 Compare Equal (temp bool)
0:3 'input' (in 4-component vector of float)
0:3 'input' (in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 true case
0:4 Branch: Return with expression
0:4 'input' (in 4-component vector of float)
0:4 Sequence
0:4 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:4 'input' (layout(location=0 ) in 4-component vector of float)
0:4 Branch: Return
0:6 Test condition and select (temp void)
0:6 Condition
0:6 Compare Equal (temp bool)
0:6 'input' (in 4-component vector of float)
0:6 'input' (in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 true case
0:7 Branch: Return with expression
0:7 'input' (in 4-component vector of float)
0:7 Sequence
0:7 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Branch: Return
0:6 false case
0:9 Branch: Return with expression
0:9 Negate value (temp 4-component vector of float)
0:9 'input' (in 4-component vector of float)
0:9 Sequence
0:9 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:9 Negate value (temp 4-component vector of float)
0:9 'input' (layout(location=0 ) in 4-component vector of float)
0:9 Branch: Return
0:11 Test condition and select (temp void)
0:11 Condition
0:11 Compare Equal (temp bool)
0:11 'input' (in 4-component vector of float)
0:11 'input' (in 4-component vector of float)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 true case is null
0:14 Test condition and select (temp void)
0:14 Condition
0:14 Compare Equal (temp bool)
0:14 'input' (in 4-component vector of float)
0:14 'input' (in 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 true case is null
0:19 Test condition and select (temp void)
0:19 Condition
0:19 Compare Equal (temp bool)
0:19 'input' (in 4-component vector of float)
0:19 'input' (in 4-component vector of float)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 true case
0:? Sequence
0:20 Branch: Return with expression
0:20 'input' (in 4-component vector of float)
0:20 Sequence
0:20 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:20 'input' (layout(location=0 ) in 4-component vector of float)
0:20 Branch: Return
0:23 Test condition and select (temp void)
0:23 Condition
0:23 Compare Equal (temp bool)
0:23 'input' (in 4-component vector of float)
0:23 'input' (in 4-component vector of float)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 true case
0:? Sequence
0:24 Branch: Return with expression
0:24 'input' (in 4-component vector of float)
0:24 Sequence
0:24 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:24 'input' (layout(location=0 ) in 4-component vector of float)
0:24 Branch: Return
0:23 false case
0:? Sequence
0:26 Branch: Return with expression
0:26 Negate value (temp 4-component vector of float)
0:26 'input' (in 4-component vector of float)
0:26 Sequence
0:26 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:26 Negate value (temp 4-component vector of float)
0:26 'input' (layout(location=0 ) in 4-component vector of float)
0:26 Branch: Return
0:30 Test condition and select (temp void)
0:30 Condition
0:30 move second child to first child (temp float)
0:30 'ii' (temp float)
0:30 direct index (temp float)
0:30 'input' (in 4-component vector of float)
0:30 'input' (layout(location=0 ) in 4-component vector of float)
0:30 Constant:
0:30 2 (const int)
0:30 true case
@ -75,6 +93,8 @@ gl_FragCoord origin is upper left
0:32 Pre-Increment (temp int)
0:32 'ii' (temp int)
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
@ -83,71 +103,89 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (in 4-component vector of float)
0:2 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:3 Test condition and select (temp void)
0:3 Condition
0:3 Compare Equal (temp bool)
0:3 'input' (in 4-component vector of float)
0:3 'input' (in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 true case
0:4 Branch: Return with expression
0:4 'input' (in 4-component vector of float)
0:4 Sequence
0:4 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:4 'input' (layout(location=0 ) in 4-component vector of float)
0:4 Branch: Return
0:6 Test condition and select (temp void)
0:6 Condition
0:6 Compare Equal (temp bool)
0:6 'input' (in 4-component vector of float)
0:6 'input' (in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 true case
0:7 Branch: Return with expression
0:7 'input' (in 4-component vector of float)
0:7 Sequence
0:7 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Branch: Return
0:6 false case
0:9 Branch: Return with expression
0:9 Negate value (temp 4-component vector of float)
0:9 'input' (in 4-component vector of float)
0:9 Sequence
0:9 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:9 Negate value (temp 4-component vector of float)
0:9 'input' (layout(location=0 ) in 4-component vector of float)
0:9 Branch: Return
0:11 Test condition and select (temp void)
0:11 Condition
0:11 Compare Equal (temp bool)
0:11 'input' (in 4-component vector of float)
0:11 'input' (in 4-component vector of float)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 true case is null
0:14 Test condition and select (temp void)
0:14 Condition
0:14 Compare Equal (temp bool)
0:14 'input' (in 4-component vector of float)
0:14 'input' (in 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 true case is null
0:19 Test condition and select (temp void)
0:19 Condition
0:19 Compare Equal (temp bool)
0:19 'input' (in 4-component vector of float)
0:19 'input' (in 4-component vector of float)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 true case
0:? Sequence
0:20 Branch: Return with expression
0:20 'input' (in 4-component vector of float)
0:20 Sequence
0:20 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:20 'input' (layout(location=0 ) in 4-component vector of float)
0:20 Branch: Return
0:23 Test condition and select (temp void)
0:23 Condition
0:23 Compare Equal (temp bool)
0:23 'input' (in 4-component vector of float)
0:23 'input' (in 4-component vector of float)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 true case
0:? Sequence
0:24 Branch: Return with expression
0:24 'input' (in 4-component vector of float)
0:24 Sequence
0:24 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:24 'input' (layout(location=0 ) in 4-component vector of float)
0:24 Branch: Return
0:23 false case
0:? Sequence
0:26 Branch: Return with expression
0:26 Negate value (temp 4-component vector of float)
0:26 'input' (in 4-component vector of float)
0:26 Sequence
0:26 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:26 Negate value (temp 4-component vector of float)
0:26 'input' (layout(location=0 ) in 4-component vector of float)
0:26 Branch: Return
0:30 Test condition and select (temp void)
0:30 Condition
0:30 move second child to first child (temp float)
0:30 'ii' (temp float)
0:30 direct index (temp float)
0:30 'input' (in 4-component vector of float)
0:30 'input' (layout(location=0 ) in 4-component vector of float)
0:30 Constant:
0:30 2 (const int)
0:30 true case
@ -156,21 +194,25 @@ gl_FragCoord origin is upper left
0:32 Pre-Increment (temp int)
0:32 'ii' (temp int)
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 82
// Id's are bound by 84
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 9
EntryPoint Fragment 4 "PixelShaderFunction" 9 19
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 9 "input"
Name 65 "ii"
Name 78 "ii"
Name 19 "@entryPointOutput"
Name 67 "ii"
Name 80 "ii"
Decorate 9(input) Location 0
Decorate 19(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -179,18 +221,20 @@ gl_FragCoord origin is upper left
9(input): 8(ptr) Variable Input
12: TypeBool
13: TypeVector 12(bool) 4
64: TypePointer Function 6(float)
66: TypeInt 32 0
67: 66(int) Constant 2
68: TypePointer Input 6(float)
74: 6(float) Constant 1065353216
76: TypeInt 32 1
77: TypePointer Function 76(int)
80: 76(int) Constant 1
18: TypePointer Output 7(fvec4)
19(@entryPointOutput): 18(ptr) Variable Output
66: TypePointer Function 6(float)
68: TypeInt 32 0
69: 68(int) Constant 2
70: TypePointer Input 6(float)
76: 6(float) Constant 1065353216
78: TypeInt 32 1
79: TypePointer Function 78(int)
82: 78(int) Constant 1
4(PixelShaderFunction): 2 Function None 3
5: Label
65(ii): 64(ptr) Variable Function
78(ii): 77(ptr) Variable Function
67(ii): 66(ptr) Variable Function
80(ii): 79(ptr) Variable Function
10: 7(fvec4) Load 9(input)
11: 7(fvec4) Load 9(input)
14: 13(bvec4) FOrdEqual 10 11
@ -198,78 +242,84 @@ gl_FragCoord origin is upper left
SelectionMerge 17 None
BranchConditional 15 16 17
16: Label
18: 7(fvec4) Load 9(input)
ReturnValue 18
20: 7(fvec4) Load 9(input)
Store 19(@entryPointOutput) 20
Return
17: Label
20: 7(fvec4) Load 9(input)
21: 7(fvec4) Load 9(input)
22: 13(bvec4) FOrdEqual 20 21
23: 12(bool) All 22
SelectionMerge 25 None
BranchConditional 23 24 28
24: Label
26: 7(fvec4) Load 9(input)
ReturnValue 26
28: Label
29: 7(fvec4) Load 9(input)
30: 7(fvec4) FNegate 29
ReturnValue 30
25: Label
32: 7(fvec4) Load 9(input)
33: 7(fvec4) Load 9(input)
34: 13(bvec4) FOrdEqual 32 33
35: 12(bool) All 34
SelectionMerge 37 None
BranchConditional 35 36 37
36: Label
Branch 37
37: Label
38: 7(fvec4) Load 9(input)
39: 7(fvec4) Load 9(input)
40: 13(bvec4) FOrdEqual 38 39
41: 12(bool) All 40
SelectionMerge 43 None
BranchConditional 41 42 43
42: Label
Branch 43
43: Label
44: 7(fvec4) Load 9(input)
45: 7(fvec4) Load 9(input)
46: 13(bvec4) FOrdEqual 44 45
47: 12(bool) All 46
SelectionMerge 49 None
BranchConditional 47 48 49
48: Label
50: 7(fvec4) Load 9(input)
ReturnValue 50
49: Label
52: 7(fvec4) Load 9(input)
53: 7(fvec4) Load 9(input)
54: 13(bvec4) FOrdEqual 52 53
55: 12(bool) All 54
SelectionMerge 57 None
BranchConditional 55 56 60
56: Label
58: 7(fvec4) Load 9(input)
ReturnValue 58
60: Label
61: 7(fvec4) Load 9(input)
62: 7(fvec4) FNegate 61
ReturnValue 62
57: Label
69: 68(ptr) AccessChain 9(input) 67
70: 6(float) Load 69
Store 65(ii) 70
SelectionMerge 72 None
BranchConditional 70 71 72
71: Label
73: 6(float) Load 65(ii)
75: 6(float) FAdd 73 74
Store 65(ii) 75
Branch 72
72: Label
79: 76(int) Load 78(ii)
81: 76(int) IAdd 79 80
Store 78(ii) 81
22: 7(fvec4) Load 9(input)
23: 7(fvec4) Load 9(input)
24: 13(bvec4) FOrdEqual 22 23
25: 12(bool) All 24
SelectionMerge 27 None
BranchConditional 25 26 30
26: Label
28: 7(fvec4) Load 9(input)
Store 19(@entryPointOutput) 28
Return
30: Label
31: 7(fvec4) Load 9(input)
32: 7(fvec4) FNegate 31
Store 19(@entryPointOutput) 32
Return
27: Label
34: 7(fvec4) Load 9(input)
35: 7(fvec4) Load 9(input)
36: 13(bvec4) FOrdEqual 34 35
37: 12(bool) All 36
SelectionMerge 39 None
BranchConditional 37 38 39
38: Label
Branch 39
39: Label
40: 7(fvec4) Load 9(input)
41: 7(fvec4) Load 9(input)
42: 13(bvec4) FOrdEqual 40 41
43: 12(bool) All 42
SelectionMerge 45 None
BranchConditional 43 44 45
44: Label
Branch 45
45: Label
46: 7(fvec4) Load 9(input)
47: 7(fvec4) Load 9(input)
48: 13(bvec4) FOrdEqual 46 47
49: 12(bool) All 48
SelectionMerge 51 None
BranchConditional 49 50 51
50: Label
52: 7(fvec4) Load 9(input)
Store 19(@entryPointOutput) 52
Return
51: Label
54: 7(fvec4) Load 9(input)
55: 7(fvec4) Load 9(input)
56: 13(bvec4) FOrdEqual 54 55
57: 12(bool) All 56
SelectionMerge 59 None
BranchConditional 57 58 62
58: Label
60: 7(fvec4) Load 9(input)
Store 19(@entryPointOutput) 60
Return
62: Label
63: 7(fvec4) Load 9(input)
64: 7(fvec4) FNegate 63
Store 19(@entryPointOutput) 64
Return
59: Label
71: 70(ptr) AccessChain 9(input) 69
72: 6(float) Load 71
Store 67(ii) 72
SelectionMerge 74 None
BranchConditional 72 73 74
73: Label
75: 6(float) Load 67(ii)
77: 6(float) FAdd 75 76
Store 67(ii) 77
Branch 74
74: Label
81: 78(int) Load 80(ii)
83: 78(int) IAdd 81 82
Store 80(ii) 83
Return
FunctionEnd

View File

@ -56,56 +56,81 @@ gl_FragCoord origin is upper left
0:6 'c5' (global float)
0:6 Constant:
0:6 1.500000
0:25 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
0:9 Function Parameters:
0:9 'input' (in 4-component vector of float)
0:9 Sequence
0:9 move second child to first child (temp structure{temp int f})
0:9 'single1' (global structure{temp int f})
0:9 Constant:
0:9 10 (const int)
0:12 Sequence
0:12 move second child to first child (temp structure{temp 2-component vector of uint v})
0:12 'single2' (global structure{temp 2-component vector of uint v})
0:12 Constant:
0:12 1 (const uint)
0:12 2 (const uint)
0:15 Sequence
0:15 move second child to first child (temp structure{temp structure{temp int f} s1})
0:15 'single3' (global structure{temp structure{temp int f} s1})
0:15 Constant:
0:15 3 (const int)
0:18 Sequence
0:18 move second child to first child (temp structure{temp structure{temp 2-component vector of uint v} s1})
0:18 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1})
0:18 Constant:
0:18 4 (const uint)
0:18 5 (const uint)
0:21 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
0:21 Function Parameters:
0:21 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:10 Sequence
0:10 move second child to first child (temp 4-component vector of float)
0:10 'a2' (temp 4-component vector of float)
0:22 Sequence
0:22 move second child to first child (temp 4-component vector of float)
0:22 'a2' (temp 4-component vector of float)
0:? Constant:
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:? 0.500000
0:20 Sequence
0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:20 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:20 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:20 Constant:
0:20 9 (const int)
0:20 'a5' (global float)
0:20 Construct structure (temp structure{temp float f, temp int i})
0:20 Comma (temp float)
0:20 'a3' (global float)
0:20 'a4' (global float)
0:20 Constant:
0:20 12 (const int)
0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:20 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:32 Sequence
0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:32 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:32 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:32 Constant:
0:32 9 (const int)
0:32 'a5' (global float)
0:32 Construct structure (temp structure{temp float f, temp int i})
0:32 Comma (temp float)
0:32 'a3' (global float)
0:32 'a4' (global float)
0:32 Constant:
0:32 12 (const int)
0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:32 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:? Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:20 Constant:
0:20 9 (const int)
0:20 'a5' (global float)
0:32 Constant:
0:32 9 (const int)
0:32 'a5' (global float)
0:? Construct structure (temp structure{temp float f, temp int i})
0:20 Comma (temp float)
0:20 'a3' (global float)
0:20 'a4' (global float)
0:20 Constant:
0:20 12 (const int)
0:21 Sequence
0:21 move second child to first child (temp float)
0:21 'a8' (temp float)
0:21 Comma (temp float)
0:21 'a2' (temp 4-component vector of float)
0:21 'b2' (global float)
0:21 move second child to first child (temp float)
0:21 'a9' (temp float)
0:21 'a5' (global float)
0:23 Branch: Return with expression
0:23 component-wise multiply (temp 4-component vector of float)
0:23 'input' (in 4-component vector of float)
0:23 'a1' (global 4-component vector of float)
0:32 Comma (temp float)
0:32 'a3' (global float)
0:32 'a4' (global float)
0:32 Constant:
0:32 12 (const int)
0:33 Sequence
0:33 move second child to first child (temp float)
0:33 'a8' (temp float)
0:33 Comma (temp float)
0:33 'a2' (temp 4-component vector of float)
0:33 'b2' (global float)
0:33 move second child to first child (temp float)
0:33 'a9' (temp float)
0:33 'a5' (global float)
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:35 component-wise multiply (temp 4-component vector of float)
0:35 'input' (layout(location=0 ) in 4-component vector of float)
0:35 'a1' (global 4-component vector of float)
0:35 Branch: Return
0:? Linker Objects
0:? 'a1' (global 4-component vector of float)
0:? 'b1' (global 4-component vector of float)
@ -121,6 +146,12 @@ gl_FragCoord origin is upper left
0:? 'a5' (global float)
0:? 'b5' (global float)
0:? 'c5' (global float)
0:? 'single1' (global structure{temp int f})
0:? 'single2' (global structure{temp 2-component vector of uint v})
0:? 'single3' (global structure{temp structure{temp int f} s1})
0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1})
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
@ -183,56 +214,81 @@ gl_FragCoord origin is upper left
0:6 'c5' (global float)
0:6 Constant:
0:6 1.500000
0:25 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
0:9 Function Parameters:
0:9 'input' (in 4-component vector of float)
0:9 Sequence
0:9 move second child to first child (temp structure{temp int f})
0:9 'single1' (global structure{temp int f})
0:9 Constant:
0:9 10 (const int)
0:12 Sequence
0:12 move second child to first child (temp structure{temp 2-component vector of uint v})
0:12 'single2' (global structure{temp 2-component vector of uint v})
0:12 Constant:
0:12 1 (const uint)
0:12 2 (const uint)
0:15 Sequence
0:15 move second child to first child (temp structure{temp structure{temp int f} s1})
0:15 'single3' (global structure{temp structure{temp int f} s1})
0:15 Constant:
0:15 3 (const int)
0:18 Sequence
0:18 move second child to first child (temp structure{temp structure{temp 2-component vector of uint v} s1})
0:18 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1})
0:18 Constant:
0:18 4 (const uint)
0:18 5 (const uint)
0:21 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
0:21 Function Parameters:
0:21 'input' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:10 Sequence
0:10 move second child to first child (temp 4-component vector of float)
0:10 'a2' (temp 4-component vector of float)
0:22 Sequence
0:22 move second child to first child (temp 4-component vector of float)
0:22 'a2' (temp 4-component vector of float)
0:? Constant:
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:? 0.500000
0:20 Sequence
0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:20 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:20 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:20 Constant:
0:20 9 (const int)
0:20 'a5' (global float)
0:20 Construct structure (temp structure{temp float f, temp int i})
0:20 Comma (temp float)
0:20 'a3' (global float)
0:20 'a4' (global float)
0:20 Constant:
0:20 12 (const int)
0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:20 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:32 Sequence
0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:32 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:32 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:32 Constant:
0:32 9 (const int)
0:32 'a5' (global float)
0:32 Construct structure (temp structure{temp float f, temp int i})
0:32 Comma (temp float)
0:32 'a3' (global float)
0:32 'a4' (global float)
0:32 Constant:
0:32 12 (const int)
0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:32 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:? Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:20 Constant:
0:20 9 (const int)
0:20 'a5' (global float)
0:32 Constant:
0:32 9 (const int)
0:32 'a5' (global float)
0:? Construct structure (temp structure{temp float f, temp int i})
0:20 Comma (temp float)
0:20 'a3' (global float)
0:20 'a4' (global float)
0:20 Constant:
0:20 12 (const int)
0:21 Sequence
0:21 move second child to first child (temp float)
0:21 'a8' (temp float)
0:21 Comma (temp float)
0:21 'a2' (temp 4-component vector of float)
0:21 'b2' (global float)
0:21 move second child to first child (temp float)
0:21 'a9' (temp float)
0:21 'a5' (global float)
0:23 Branch: Return with expression
0:23 component-wise multiply (temp 4-component vector of float)
0:23 'input' (in 4-component vector of float)
0:23 'a1' (global 4-component vector of float)
0:32 Comma (temp float)
0:32 'a3' (global float)
0:32 'a4' (global float)
0:32 Constant:
0:32 12 (const int)
0:33 Sequence
0:33 move second child to first child (temp float)
0:33 'a8' (temp float)
0:33 Comma (temp float)
0:33 'a2' (temp 4-component vector of float)
0:33 'b2' (global float)
0:33 move second child to first child (temp float)
0:33 'a9' (temp float)
0:33 'a5' (global float)
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:35 component-wise multiply (temp 4-component vector of float)
0:35 'input' (layout(location=0 ) in 4-component vector of float)
0:35 'a1' (global 4-component vector of float)
0:35 Branch: Return
0:? Linker Objects
0:? 'a1' (global 4-component vector of float)
0:? 'b1' (global 4-component vector of float)
@ -248,17 +304,22 @@ gl_FragCoord origin is upper left
0:? 'a5' (global float)
0:? 'b5' (global float)
0:? 'c5' (global float)
0:? 'single1' (global structure{temp int f})
0:? 'single2' (global structure{temp 2-component vector of uint v})
0:? 'single3' (global structure{temp structure{temp int f} s1})
0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1})
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 67
// Id's are bound by 97
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "ShaderFunction" 60
EntryPoint Fragment 4 "ShaderFunction" 88 90
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "ShaderFunction"
Name 9 "a1"
Name 14 "b1"
@ -269,24 +330,39 @@ gl_FragCoord origin is upper left
Name 27 "b4"
Name 29 "a5"
Name 30 "c5"
Name 33 "a2"
Name 36 "S1"
MemberName 36(S1) 0 "f"
MemberName 36(S1) 1 "i"
Name 37 "S2"
MemberName 37(S2) 0 "j"
MemberName 37(S2) 1 "g"
MemberName 37(S2) 2 "s1"
Name 39 "s2i"
Name 42 "a3"
Name 43 "a4"
Name 48 "s2"
Name 54 "a8"
Name 55 "b2"
Name 57 "a9"
Name 60 "input"
Name 65 "c4"
Name 66 "b5"
Name 33 "Single1"
MemberName 33(Single1) 0 "f"
Name 35 "single1"
Name 40 "Single2"
MemberName 40(Single2) 0 "v"
Name 42 "single2"
Name 47 "Single3"
MemberName 47(Single3) 0 "s1"
Name 49 "single3"
Name 53 "Single4"
MemberName 53(Single4) 0 "s1"
Name 55 "single4"
Name 62 "a2"
Name 64 "S1"
MemberName 64(S1) 0 "f"
MemberName 64(S1) 1 "i"
Name 65 "S2"
MemberName 65(S2) 0 "j"
MemberName 65(S2) 1 "g"
MemberName 65(S2) 2 "s1"
Name 67 "s2i"
Name 70 "a3"
Name 71 "a4"
Name 76 "s2"
Name 82 "a8"
Name 83 "b2"
Name 85 "a9"
Name 88 "@entryPointOutput"
Name 90 "input"
Name 95 "c4"
Name 96 "b5"
Decorate 88(@entryPointOutput) Location 0
Decorate 90(input) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -315,29 +391,59 @@ gl_FragCoord origin is upper left
29(a5): 22(ptr) Variable Private
30(c5): 22(ptr) Variable Private
31: 6(float) Constant 1069547520
32: TypePointer Function 7(fvec4)
34: 7(fvec4) ConstantComposite 24 26 28 11
35: TypeInt 32 1
36(S1): TypeStruct 6(float) 35(int)
37(S2): TypeStruct 35(int) 6(float) 36(S1)
38: TypePointer Function 37(S2)
40: 35(int) Constant 9
42(a3): 22(ptr) Variable Private
43(a4): 22(ptr) Variable Private
45: 35(int) Constant 12
53: TypePointer Function 6(float)
55(b2): 22(ptr) Variable Private
59: TypePointer Input 7(fvec4)
60(input): 59(ptr) Variable Input
65(c4): 22(ptr) Variable Private
66(b5): 22(ptr) Variable Private
32: TypeInt 32 1
33(Single1): TypeStruct 32(int)
34: TypePointer Private 33(Single1)
35(single1): 34(ptr) Variable Private
36: 32(int) Constant 10
37: 33(Single1) ConstantComposite 36
38: TypeInt 32 0
39: TypeVector 38(int) 2
40(Single2): TypeStruct 39(ivec2)
41: TypePointer Private 40(Single2)
42(single2): 41(ptr) Variable Private
43: 38(int) Constant 1
44: 38(int) Constant 2
45: 39(ivec2) ConstantComposite 43 44
46: 40(Single2) ConstantComposite 45
47(Single3): TypeStruct 33(Single1)
48: TypePointer Private 47(Single3)
49(single3): 48(ptr) Variable Private
50: 32(int) Constant 3
51: 33(Single1) ConstantComposite 50
52: 47(Single3) ConstantComposite 51
53(Single4): TypeStruct 40(Single2)
54: TypePointer Private 53(Single4)
55(single4): 54(ptr) Variable Private
56: 38(int) Constant 4
57: 38(int) Constant 5
58: 39(ivec2) ConstantComposite 56 57
59: 40(Single2) ConstantComposite 58
60: 53(Single4) ConstantComposite 59
61: TypePointer Function 7(fvec4)
63: 7(fvec4) ConstantComposite 24 26 28 11
64(S1): TypeStruct 6(float) 32(int)
65(S2): TypeStruct 32(int) 6(float) 64(S1)
66: TypePointer Function 65(S2)
68: 32(int) Constant 9
70(a3): 22(ptr) Variable Private
71(a4): 22(ptr) Variable Private
73: 32(int) Constant 12
81: TypePointer Function 6(float)
83(b2): 22(ptr) Variable Private
87: TypePointer Output 7(fvec4)
88(@entryPointOutput): 87(ptr) Variable Output
89: TypePointer Input 7(fvec4)
90(input): 89(ptr) Variable Input
95(c4): 22(ptr) Variable Private
96(b5): 22(ptr) Variable Private
4(ShaderFunction): 2 Function None 3
5: Label
33(a2): 32(ptr) Variable Function
39(s2i): 38(ptr) Variable Function
48(s2): 38(ptr) Variable Function
54(a8): 53(ptr) Variable Function
57(a9): 53(ptr) Variable Function
62(a2): 61(ptr) Variable Function
67(s2i): 66(ptr) Variable Function
76(s2): 66(ptr) Variable Function
82(a8): 81(ptr) Variable Function
85(a9): 81(ptr) Variable Function
Store 9(a1) 13
Store 14(b1) 19
Store 20(a1i) 13
@ -347,23 +453,28 @@ gl_FragCoord origin is upper left
Store 27(b4) 28
Store 29(a5) 11
Store 30(c5) 31
Store 33(a2) 34
41: 6(float) Load 29(a5)
44: 6(float) Load 43(a4)
46: 36(S1) CompositeConstruct 44 45
47: 37(S2) CompositeConstruct 40 41 46
Store 39(s2i) 47
49: 6(float) Load 29(a5)
50: 6(float) Load 43(a4)
51: 36(S1) CompositeConstruct 50 45
52: 37(S2) CompositeConstruct 40 49 51
Store 48(s2) 52
56: 6(float) Load 55(b2)
Store 54(a8) 56
58: 6(float) Load 29(a5)
Store 57(a9) 58
61: 7(fvec4) Load 60(input)
62: 7(fvec4) Load 9(a1)
63: 7(fvec4) FMul 61 62
ReturnValue 63
Store 35(single1) 37
Store 42(single2) 46
Store 49(single3) 52
Store 55(single4) 60
Store 62(a2) 63
69: 6(float) Load 29(a5)
72: 6(float) Load 71(a4)
74: 64(S1) CompositeConstruct 72 73
75: 65(S2) CompositeConstruct 68 69 74
Store 67(s2i) 75
77: 6(float) Load 29(a5)
78: 6(float) Load 71(a4)
79: 64(S1) CompositeConstruct 78 73
80: 65(S2) CompositeConstruct 68 77 79
Store 76(s2) 80
84: 6(float) Load 83(b2)
Store 82(a8) 84
86: 6(float) Load 29(a5)
Store 85(a9) 86
91: 7(fvec4) Load 90(input)
92: 7(fvec4) Load 9(a1)
93: 7(fvec4) FMul 91 92
Store 88(@entryPointOutput) 93
Return
FunctionEnd

View File

@ -0,0 +1,197 @@
hlsl.init2.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:3 Function Definition: Test1( (temp void)
0:3 Function Parameters:
0:? Sequence
0:5 Sequence
0:5 move second child to first child (temp structure{temp 2-component vector of float a})
0:5 'test1' (temp structure{temp 2-component vector of float a})
0:5 Constant:
0:5 1.000000
0:5 2.000000
0:9 Sequence
0:9 move second child to first child (temp structure{temp 2-component vector of float a})
0:9 'test2' (temp structure{temp 2-component vector of float a})
0:9 Constant:
0:9 3.000000
0:9 4.000000
0:17 Sequence
0:17 move second child to first child (temp float)
0:17 'test4' (temp float)
0:17 Constant:
0:17 7.000000
0:20 Sequence
0:20 move second child to first child (temp structure{temp float a, temp float b, temp float c})
0:20 'test5' (temp structure{temp float a, temp float b, temp float c})
0:20 Constant:
0:20 8.000000
0:20 9.000000
0:20 10.000000
0:26 Function Definition: main( (temp structure{temp 4-component vector of float color})
0:26 Function Parameters:
0:? Sequence
0:27 Function Call: Test1( (temp void)
0:30 move second child to first child (temp 4-component vector of float)
0:30 color: direct index for structure (temp 4-component vector of float)
0:30 'ps_output' (temp structure{temp 4-component vector of float color})
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 1.000000
0:30 1.000000
0:30 1.000000
0:30 1.000000
0:31 Sequence
0:31 Sequence
0:31 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:31 color: direct index for structure (temp 4-component vector of float)
0:31 'ps_output' (temp structure{temp 4-component vector of float color})
0:31 Constant:
0:31 0 (const int)
0:31 Branch: Return
0:? Linker Objects
0:? 'color' (layout(location=0 ) out 4-component vector of float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:3 Function Definition: Test1( (temp void)
0:3 Function Parameters:
0:? Sequence
0:5 Sequence
0:5 move second child to first child (temp structure{temp 2-component vector of float a})
0:5 'test1' (temp structure{temp 2-component vector of float a})
0:5 Constant:
0:5 1.000000
0:5 2.000000
0:9 Sequence
0:9 move second child to first child (temp structure{temp 2-component vector of float a})
0:9 'test2' (temp structure{temp 2-component vector of float a})
0:9 Constant:
0:9 3.000000
0:9 4.000000
0:17 Sequence
0:17 move second child to first child (temp float)
0:17 'test4' (temp float)
0:17 Constant:
0:17 7.000000
0:20 Sequence
0:20 move second child to first child (temp structure{temp float a, temp float b, temp float c})
0:20 'test5' (temp structure{temp float a, temp float b, temp float c})
0:20 Constant:
0:20 8.000000
0:20 9.000000
0:20 10.000000
0:26 Function Definition: main( (temp structure{temp 4-component vector of float color})
0:26 Function Parameters:
0:? Sequence
0:27 Function Call: Test1( (temp void)
0:30 move second child to first child (temp 4-component vector of float)
0:30 color: direct index for structure (temp 4-component vector of float)
0:30 'ps_output' (temp structure{temp 4-component vector of float color})
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 1.000000
0:30 1.000000
0:30 1.000000
0:30 1.000000
0:31 Sequence
0:31 Sequence
0:31 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:31 color: direct index for structure (temp 4-component vector of float)
0:31 'ps_output' (temp structure{temp 4-component vector of float color})
0:31 Constant:
0:31 0 (const int)
0:31 Branch: Return
0:? Linker Objects
0:? 'color' (layout(location=0 ) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 47
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 43
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 6 "Test1("
Name 10 "mystruct"
MemberName 10(mystruct) 0 "a"
Name 12 "test1"
Name 17 "test2"
Name 23 "test4"
Name 25 "mystruct2"
MemberName 25(mystruct2) 0 "a"
MemberName 25(mystruct2) 1 "b"
MemberName 25(mystruct2) 2 "c"
Name 27 "test5"
Name 34 "PS_OUTPUT"
MemberName 34(PS_OUTPUT) 0 "color"
Name 36 "ps_output"
Name 43 "color"
Decorate 43(color) Location 0
2: TypeVoid
3: TypeFunction 2
8: TypeFloat 32
9: TypeVector 8(float) 2
10(mystruct): TypeStruct 9(fvec2)
11: TypePointer Function 10(mystruct)
13: 8(float) Constant 1065353216
14: 8(float) Constant 1073741824
15: 9(fvec2) ConstantComposite 13 14
16:10(mystruct) ConstantComposite 15
18: 8(float) Constant 1077936128
19: 8(float) Constant 1082130432
20: 9(fvec2) ConstantComposite 18 19
21:10(mystruct) ConstantComposite 20
22: TypePointer Function 8(float)
24: 8(float) Constant 1088421888
25(mystruct2): TypeStruct 8(float) 8(float) 8(float)
26: TypePointer Function 25(mystruct2)
28: 8(float) Constant 1090519040
29: 8(float) Constant 1091567616
30: 8(float) Constant 1092616192
31:25(mystruct2) ConstantComposite 28 29 30
33: TypeVector 8(float) 4
34(PS_OUTPUT): TypeStruct 33(fvec4)
35: TypePointer Function 34(PS_OUTPUT)
37: TypeInt 32 1
38: 37(int) Constant 0
39: 33(fvec4) ConstantComposite 13 13 13 13
40: TypePointer Function 33(fvec4)
42: TypePointer Output 33(fvec4)
43(color): 42(ptr) Variable Output
4(main): 2 Function None 3
5: Label
36(ps_output): 35(ptr) Variable Function
32: 2 FunctionCall 6(Test1()
41: 40(ptr) AccessChain 36(ps_output) 38
Store 41 39
44: 40(ptr) AccessChain 36(ps_output) 38
45: 33(fvec4) Load 44
Store 43(color) 45
Return
FunctionEnd
6(Test1(): 2 Function None 3
7: Label
12(test1): 11(ptr) Variable Function
17(test2): 11(ptr) Variable Function
23(test4): 22(ptr) Variable Function
27(test5): 26(ptr) Variable Function
Store 12(test1) 16
Store 17(test2) 21
Store 23(test4) 24
Store 27(test5) 31
Return
FunctionEnd

View File

@ -0,0 +1,272 @@
hlsl.inoutquals.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: MyFunc(f1;f1;f1; (temp void)
0:8 Function Parameters:
0:8 'x' (in float)
0:8 'y' (out float)
0:8 'z' (inout float)
0:? Sequence
0:9 move second child to first child (temp float)
0:9 'y' (out float)
0:9 'x' (in float)
0:10 move second child to first child (temp float)
0:10 'z' (inout float)
0:10 'y' (out float)
0:11 move second child to first child (temp float)
0:11 'x' (in float)
0:11 Constant:
0:11 -1.000000
0:15 Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth})
0:15 Function Parameters:
0:15 'inpos' (noperspective in 4-component vector of float FragCoord)
0:15 'sampleMask' (out int SampleMaskIn)
0:? Sequence
0:18 Sequence
0:18 move second child to first child (temp float)
0:18 'x' (temp float)
0:18 Constant:
0:18 7.000000
0:18 move second child to first child (temp float)
0:18 'z' (temp float)
0:18 Constant:
0:18 3.000000
0:19 Function Call: MyFunc(f1;f1;f1; (temp void)
0:19 'x' (temp float)
0:19 'y' (temp float)
0:19 'z' (temp float)
0:21 move second child to first child (temp 4-component vector of float)
0:21 Color: direct index for structure (temp 4-component vector of float)
0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:21 Constant:
0:21 0 (const int)
0:? Construct vec4 (temp 4-component vector of float)
0:21 'x' (temp float)
0:21 'y' (temp float)
0:21 'z' (temp float)
0:21 Constant:
0:21 1.000000
0:22 move second child to first child (temp float)
0:22 Depth: direct index for structure (temp float)
0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:22 Constant:
0:22 1 (const int)
0:22 direct index (temp float)
0:22 'inpos' (noperspective in 4-component vector of float FragCoord)
0:22 Constant:
0:22 3 (const int)
0:24 Sequence
0:24 Sequence
0:24 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:24 Color: direct index for structure (temp 4-component vector of float)
0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24 Constant:
0:24 0 (const int)
0:24 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:24 Depth: direct index for structure (temp float)
0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24 Constant:
0:24 1 (const int)
0:24 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'inpos' (noperspective in 4-component vector of float FragCoord)
0:? 'sampleMask' (out int SampleMaskIn)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: MyFunc(f1;f1;f1; (temp void)
0:8 Function Parameters:
0:8 'x' (in float)
0:8 'y' (out float)
0:8 'z' (inout float)
0:? Sequence
0:9 move second child to first child (temp float)
0:9 'y' (out float)
0:9 'x' (in float)
0:10 move second child to first child (temp float)
0:10 'z' (inout float)
0:10 'y' (out float)
0:11 move second child to first child (temp float)
0:11 'x' (in float)
0:11 Constant:
0:11 -1.000000
0:15 Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth})
0:15 Function Parameters:
0:15 'inpos' (noperspective in 4-component vector of float FragCoord)
0:15 'sampleMask' (out int SampleMaskIn)
0:? Sequence
0:18 Sequence
0:18 move second child to first child (temp float)
0:18 'x' (temp float)
0:18 Constant:
0:18 7.000000
0:18 move second child to first child (temp float)
0:18 'z' (temp float)
0:18 Constant:
0:18 3.000000
0:19 Function Call: MyFunc(f1;f1;f1; (temp void)
0:19 'x' (temp float)
0:19 'y' (temp float)
0:19 'z' (temp float)
0:21 move second child to first child (temp 4-component vector of float)
0:21 Color: direct index for structure (temp 4-component vector of float)
0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:21 Constant:
0:21 0 (const int)
0:? Construct vec4 (temp 4-component vector of float)
0:21 'x' (temp float)
0:21 'y' (temp float)
0:21 'z' (temp float)
0:21 Constant:
0:21 1.000000
0:22 move second child to first child (temp float)
0:22 Depth: direct index for structure (temp float)
0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:22 Constant:
0:22 1 (const int)
0:22 direct index (temp float)
0:22 'inpos' (noperspective in 4-component vector of float FragCoord)
0:22 Constant:
0:22 3 (const int)
0:24 Sequence
0:24 Sequence
0:24 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:24 Color: direct index for structure (temp 4-component vector of float)
0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24 Constant:
0:24 0 (const int)
0:24 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:24 Depth: direct index for structure (temp float)
0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24 Constant:
0:24 1 (const int)
0:24 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'inpos' (noperspective in 4-component vector of float FragCoord)
0:? 'sampleMask' (out int SampleMaskIn)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 63
Capability Shader
Capability SampleRateShading
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 45 53 57 62
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 12 "MyFunc(f1;f1;f1;"
Name 9 "x"
Name 10 "y"
Name 11 "z"
Name 17 "x"
Name 19 "z"
Name 21 "y"
Name 22 "param"
Name 24 "param"
Name 25 "param"
Name 31 "PS_OUTPUT"
MemberName 31(PS_OUTPUT) 0 "Color"
MemberName 31(PS_OUTPUT) 1 "Depth"
Name 33 "psout"
Name 45 "inpos"
Name 53 "Color"
Name 57 "Depth"
Name 62 "sampleMask"
Decorate 45(inpos) NoPerspective
Decorate 45(inpos) BuiltIn FragCoord
Decorate 53(Color) Location 0
Decorate 57(Depth) BuiltIn FragDepth
Decorate 62(sampleMask) BuiltIn SampleMask
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
8: TypeFunction 2 7(ptr) 7(ptr) 7(ptr)
16: 6(float) Constant 3212836864
18: 6(float) Constant 1088421888
20: 6(float) Constant 1077936128
30: TypeVector 6(float) 4
31(PS_OUTPUT): TypeStruct 30(fvec4) 6(float)
32: TypePointer Function 31(PS_OUTPUT)
34: TypeInt 32 1
35: 34(int) Constant 0
39: 6(float) Constant 1065353216
41: TypePointer Function 30(fvec4)
43: 34(int) Constant 1
44: TypePointer Input 30(fvec4)
45(inpos): 44(ptr) Variable Input
46: TypeInt 32 0
47: 46(int) Constant 3
48: TypePointer Input 6(float)
52: TypePointer Output 30(fvec4)
53(Color): 52(ptr) Variable Output
56: TypePointer Output 6(float)
57(Depth): 56(ptr) Variable Output
61: TypePointer Output 34(int)
62(sampleMask): 61(ptr) Variable Output
4(main): 2 Function None 3
5: Label
17(x): 7(ptr) Variable Function
19(z): 7(ptr) Variable Function
21(y): 7(ptr) Variable Function
22(param): 7(ptr) Variable Function
24(param): 7(ptr) Variable Function
25(param): 7(ptr) Variable Function
33(psout): 32(ptr) Variable Function
Store 17(x) 18
Store 19(z) 20
23: 6(float) Load 17(x)
Store 22(param) 23
26: 6(float) Load 19(z)
Store 25(param) 26
27: 2 FunctionCall 12(MyFunc(f1;f1;f1;) 22(param) 24(param) 25(param)
28: 6(float) Load 24(param)
Store 21(y) 28
29: 6(float) Load 25(param)
Store 19(z) 29
36: 6(float) Load 17(x)
37: 6(float) Load 21(y)
38: 6(float) Load 19(z)
40: 30(fvec4) CompositeConstruct 36 37 38 39
42: 41(ptr) AccessChain 33(psout) 35
Store 42 40
49: 48(ptr) AccessChain 45(inpos) 47
50: 6(float) Load 49
51: 7(ptr) AccessChain 33(psout) 43
Store 51 50
54: 41(ptr) AccessChain 33(psout) 35
55: 30(fvec4) Load 54
Store 53(Color) 55
58: 7(ptr) AccessChain 33(psout) 43
59: 6(float) Load 58
Store 57(Depth) 59
Return
FunctionEnd
12(MyFunc(f1;f1;f1;): 2 Function None 8
9(x): 7(ptr) FunctionParameter
10(y): 7(ptr) FunctionParameter
11(z): 7(ptr) FunctionParameter
13: Label
14: 6(float) Load 9(x)
Store 10(y) 14
15: 6(float) Load 10(y)
Store 11(z) 15
Store 9(x) 16
Return
FunctionEnd

View File

@ -2,7 +2,7 @@ hlsl.intrinsics.barriers.comp
Shader version: 450
local_size = (1, 1, 1)
0:? Sequence
0:14 Function Definition: ComputeShaderFunction( (global float)
0:3 Function Definition: ComputeShaderFunction( (temp float)
0:3 Function Parameters:
0:? Sequence
0:4 MemoryBarrier (global void)
@ -11,10 +11,14 @@ local_size = (1, 1, 1)
0:7 GroupMemoryBarrierWithGroupSync (global void)
0:8 WorkgroupMemoryBarrier (global void)
0:9 WorkgroupMemoryBarrierWithGroupSync (global void)
0:11 Branch: Return with expression
0:11 Constant:
0:11 0.000000
0:11 Sequence
0:11 move second child to first child (temp float)
0:? '@entryPointOutput' (layout(location=0 ) out float)
0:11 Constant:
0:11 0.000000
0:11 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out float)
Linked compute stage:
@ -23,7 +27,7 @@ Linked compute stage:
Shader version: 450
local_size = (1, 1, 1)
0:? Sequence
0:14 Function Definition: ComputeShaderFunction( (global float)
0:3 Function Definition: ComputeShaderFunction( (temp float)
0:3 Function Parameters:
0:? Sequence
0:4 MemoryBarrier (global void)
@ -32,22 +36,27 @@ local_size = (1, 1, 1)
0:7 GroupMemoryBarrierWithGroupSync (global void)
0:8 WorkgroupMemoryBarrier (global void)
0:9 WorkgroupMemoryBarrierWithGroupSync (global void)
0:11 Branch: Return with expression
0:11 Constant:
0:11 0.000000
0:11 Sequence
0:11 move second child to first child (temp float)
0:? '@entryPointOutput' (layout(location=0 ) out float)
0:11 Constant:
0:11 0.000000
0:11 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 15
// Id's are bound by 17
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "ComputeShaderFunction"
EntryPoint GLCompute 4 "ComputeShaderFunction" 14
ExecutionMode 4 LocalSize 1 1 1
Source HLSL 450
Name 4 "ComputeShaderFunction"
Name 14 "@entryPointOutput"
Decorate 14(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
@ -57,7 +66,9 @@ local_size = (1, 1, 1)
10: 6(int) Constant 2
11: 6(int) Constant 256
12: TypeFloat 32
13: 12(float) Constant 0
13: TypePointer Output 12(float)
14(@entryPointOutput): 13(ptr) Variable Output
15: 12(float) Constant 0
4(ComputeShaderFunction): 2 Function None 3
5: Label
MemoryBarrier 7 8
@ -66,5 +77,6 @@ local_size = (1, 1, 1)
ControlBarrier 7 7 9
MemoryBarrier 10 11
ControlBarrier 10 10 11
ReturnValue 13
Store 14(@entryPointOutput) 15
Return
FunctionEnd

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More