mirror of
https://github.com/KhronosGroup/glslang
synced 2024-09-19 20:29:54 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
2f4c832d47
3
.gitignore
vendored
3
.gitignore
vendored
@ -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
|
||||
|
@ -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()
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
|
||||
#define SH_EXPORTING
|
||||
|
||||
#include <assert.h>
|
||||
#include <cassert>
|
||||
|
||||
#include "InitializeDll.h"
|
||||
#include "../glslang/Include/InitializeGlobals.h"
|
||||
|
@ -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.
|
||||
|
29
README.md
29
README.md
@ -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:
|
||||
|
@ -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
116
SPIRV/GLSL.ext.AMD.h
Normal 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
36
SPIRV/GLSL.ext.KHR.h
Normal 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
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
81
SPIRV/bitutils.h
Normal 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_
|
@ -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);
|
||||
|
104
SPIRV/doc.cpp
104
SPIRV/doc.cpp
@ -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
|
||||
|
@ -149,7 +149,7 @@ enum OperandClass {
|
||||
OperandMemorySemantics,
|
||||
OperandMemoryAccess,
|
||||
OperandScope,
|
||||
OperandGroupOperation,
|
||||
OperandGroupOperation,
|
||||
OperandKernelEnqueueFlags,
|
||||
OperandKernelProfilingInfo,
|
||||
OperandCapability,
|
||||
|
1078
SPIRV/hex_float.h
Normal file
1078
SPIRV/hex_float.h
Normal file
File diff suppressed because it is too large
Load Diff
1805
SPIRV/spirv.hpp
1805
SPIRV/spirv.hpp
File diff suppressed because it is too large
Load Diff
@ -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 |
|
||||
|
@ -24,6 +24,7 @@ set(LIBRARIES
|
||||
OSDependent
|
||||
HLSL
|
||||
SPIRV
|
||||
SPVRemapper
|
||||
glslang-default-resource-limits)
|
||||
|
||||
if(WIN32)
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -192,6 +192,8 @@ void foo213()
|
||||
gl_ClipDistance[1] = 0.3; // ERROR
|
||||
}
|
||||
|
||||
int gl_ModelViewMatrix[] = 0;
|
||||
|
||||
// token pasting (ERRORS...)
|
||||
|
||||
#define mac abc##def
|
||||
|
101
Test/400.vert
101
Test/400.vert
@ -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);
|
||||
}
|
||||
|
@ -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[];
|
||||
|
@ -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))));
|
||||
|
@ -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[];
|
||||
|
@ -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
4
Test/badMacroArgs.frag
Executable file
@ -0,0 +1,4 @@
|
||||
#version 400
|
||||
|
||||
#define m(a) a
|
||||
m()
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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})
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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!
|
||||
|
@ -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})
|
||||
|
@ -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)
|
||||
|
@ -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!
|
||||
|
7
Test/baseResults/badMacroArgs.frag.out
Normal file
7
Test/baseResults/badMacroArgs.frag.out
Normal 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.
|
||||
|
||||
|
22
Test/baseResults/cppBad.vert.out
Executable file
22
Test/baseResults/cppBad.vert.out
Executable 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
|
||||
|
@ -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.
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
||||
|
||||
|
207
Test/baseResults/hlsl.amend.frag.out
Executable file
207
Test/baseResults/hlsl.amend.frag.out
Executable 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
|
526
Test/baseResults/hlsl.array.flatten.frag.out
Normal file
526
Test/baseResults/hlsl.array.flatten.frag.out
Normal 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
|
@ -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
|
||||
|
263
Test/baseResults/hlsl.array.implicit-size.frag.out
Normal file
263
Test/baseResults/hlsl.array.implicit-size.frag.out
Normal 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
|
210
Test/baseResults/hlsl.array.multidim.frag.out
Normal file
210
Test/baseResults/hlsl.array.multidim.frag.out
Normal 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
|
@ -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
|
||||
|
@ -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
|
||||
|
58
Test/baseResults/hlsl.basic.comp.out
Executable file
58
Test/baseResults/hlsl.basic.comp.out
Executable 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
|
199
Test/baseResults/hlsl.buffer.frag.out
Executable file
199
Test/baseResults/hlsl.buffer.frag.out
Executable 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
|
553
Test/baseResults/hlsl.calculatelod.dx10.frag.out
Normal file
553
Test/baseResults/hlsl.calculatelod.dx10.frag.out
Normal 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
|
358
Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
Normal file
358
Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
Normal 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
|
@ -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
|
||||
|
372
Test/baseResults/hlsl.conditional.frag.out
Executable file
372
Test/baseResults/hlsl.conditional.frag.out
Executable 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
|
150
Test/baseResults/hlsl.constructexpr.frag.out
Normal file
150
Test/baseResults/hlsl.constructexpr.frag.out
Normal 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
|
59
Test/baseResults/hlsl.depthGreater.frag.out
Executable file
59
Test/baseResults/hlsl.depthGreater.frag.out
Executable 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
|
60
Test/baseResults/hlsl.depthLess.frag.out
Executable file
60
Test/baseResults/hlsl.depthLess.frag.out
Executable 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
|
@ -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
|
||||
|
@ -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
|
||||
|
304
Test/baseResults/hlsl.entry-in.frag.out
Executable file
304
Test/baseResults/hlsl.entry-in.frag.out
Executable 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
|
287
Test/baseResults/hlsl.entry-out.frag.out
Executable file
287
Test/baseResults/hlsl.entry-out.frag.out
Executable 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
|
187
Test/baseResults/hlsl.flatten.return.frag.out
Normal file
187
Test/baseResults/hlsl.flatten.return.frag.out
Normal 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
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
426
Test/baseResults/hlsl.gather.array.dx10.frag.out
Normal file
426
Test/baseResults/hlsl.gather.array.dx10.frag.out
Normal 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
|
440
Test/baseResults/hlsl.gather.basic.dx10.frag.out
Normal file
440
Test/baseResults/hlsl.gather.basic.dx10.frag.out
Normal 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
|
397
Test/baseResults/hlsl.gather.basic.dx10.vert.out
Normal file
397
Test/baseResults/hlsl.gather.basic.dx10.vert.out
Normal 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
|
361
Test/baseResults/hlsl.gather.offset.dx10.frag.out
Normal file
361
Test/baseResults/hlsl.gather.offset.dx10.frag.out
Normal 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
|
326
Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
Normal file
326
Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
Normal 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
|
1092
Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
Normal file
1092
Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
Normal file
File diff suppressed because it is too large
Load Diff
1118
Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
Normal file
1118
Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
Normal file
File diff suppressed because it is too large
Load Diff
1765
Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
Normal file
1765
Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
Normal file
File diff suppressed because it is too large
Load Diff
1739
Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
Normal file
1739
Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
Normal file
File diff suppressed because it is too large
Load Diff
3089
Test/baseResults/hlsl.getdimensions.dx10.frag.out
Normal file
3089
Test/baseResults/hlsl.getdimensions.dx10.frag.out
Normal file
File diff suppressed because it is too large
Load Diff
182
Test/baseResults/hlsl.getdimensions.dx10.vert.out
Normal file
182
Test/baseResults/hlsl.getdimensions.dx10.vert.out
Normal 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
|
1082
Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
Normal file
1082
Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
Normal file
File diff suppressed because it is too large
Load Diff
133
Test/baseResults/hlsl.getsampleposition.dx10.frag.out
Normal file
133
Test/baseResults/hlsl.getsampleposition.dx10.frag.out
Normal 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
|
@ -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
|
||||
|
@ -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
|
||||
|
197
Test/baseResults/hlsl.init2.frag.out
Normal file
197
Test/baseResults/hlsl.init2.frag.out
Normal 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
|
272
Test/baseResults/hlsl.inoutquals.frag.out
Normal file
272
Test/baseResults/hlsl.inoutquals.frag.out
Normal 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
|
@ -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
Loading…
Reference in New Issue
Block a user