Merge branch 'master' of github.com:KhronosGroup/glslang into clang-format
This commit is contained in:
commit
37c2a2d31d
286 changed files with 25003 additions and 24226 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -3,8 +3,6 @@
|
|||
*.so
|
||||
*.exe
|
||||
tags
|
||||
glslang/MachineIndependent/glslang_tab.cpp
|
||||
glslang/MachineIndependent/glslang_tab.cpp.h
|
||||
build/
|
||||
Test/localResults/
|
||||
Test/multiThread.out
|
||||
|
|
|
|||
14
README.md
14
README.md
|
|
@ -47,6 +47,20 @@ CMake: The currently maintained and preferred way of building is through CMake.
|
|||
In MSVC, after running CMake, you may need to use the Configuration Manager to
|
||||
check the INSTALL project.
|
||||
|
||||
The grammar in glslang/MachineIndependent/glslang.y has to be recompiled with
|
||||
bison if it changes, the output files are committed to the repo to avoid every
|
||||
developer needing to have bison configured to compile the project when grammar
|
||||
changes are quite infrequent. For windows you can get binaries from
|
||||
[GnuWin32](http://gnuwin32.sourceforge.net/packages/bison.htm).
|
||||
|
||||
The command to rebuild is:
|
||||
|
||||
```
|
||||
bison --defines=MachineIndependent/glslang_tab.cpp.h
|
||||
-t MachineIndependent/glslang.y
|
||||
-o MachineIndependent/glslang_tab.cpp
|
||||
```
|
||||
|
||||
Programmatic Interfaces
|
||||
-----------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 2.8)
|
|||
|
||||
set(SOURCES
|
||||
GlslangToSpv.cpp
|
||||
InReadableOrder.cpp
|
||||
SpvBuilder.cpp
|
||||
SPVRemapper.cpp
|
||||
doc.cpp
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** Copyright (c) 2014-2015 The Khronos Group Inc.
|
||||
** 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"),
|
||||
|
|
@ -27,8 +27,8 @@
|
|||
#ifndef GLSLstd450_H
|
||||
#define GLSLstd450_H
|
||||
|
||||
const int GLSLstd450Version = 99;
|
||||
const int GLSLstd450Revision = 3;
|
||||
static const int GLSLstd450Version = 100;
|
||||
static const int GLSLstd450Revision = 1;
|
||||
|
||||
enum GLSLstd450 {
|
||||
GLSLstd450Bad = 0, // Don't use
|
||||
|
|
@ -83,7 +83,7 @@ enum GLSLstd450 {
|
|||
GLSLstd450UClamp = 44,
|
||||
GLSLstd450SClamp = 45,
|
||||
GLSLstd450FMix = 46,
|
||||
GLSLstd450IMix = 47,
|
||||
GLSLstd450IMix = 47, // Reserved
|
||||
GLSLstd450Step = 48,
|
||||
GLSLstd450SmoothStep = 49,
|
||||
|
||||
|
|
@ -121,6 +121,10 @@ enum GLSLstd450 {
|
|||
GLSLstd450InterpolateAtSample = 77,
|
||||
GLSLstd450InterpolateAtOffset = 78,
|
||||
|
||||
GLSLstd450NMin = 79,
|
||||
GLSLstd450NMax = 80,
|
||||
GLSLstd450NClamp = 81,
|
||||
|
||||
GLSLstd450Count
|
||||
};
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
117
SPIRV/InReadableOrder.cpp
Normal file
117
SPIRV/InReadableOrder.cpp
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
//
|
||||
//Copyright (C) 2016 Google, Inc.
|
||||
//
|
||||
//All rights reserved.
|
||||
//
|
||||
//Redistribution and use in source and binary forms, with or without
|
||||
//modification, are permitted provided that the following conditions
|
||||
//are met:
|
||||
//
|
||||
// Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
//
|
||||
// Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following
|
||||
// disclaimer in the documentation and/or other materials provided
|
||||
// with the distribution.
|
||||
//
|
||||
// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived
|
||||
// from this software without specific prior written permission.
|
||||
//
|
||||
//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
//POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//
|
||||
// Author: Dejan Mircevski, Google
|
||||
//
|
||||
|
||||
// The SPIR-V spec requires code blocks to appear in an order satisfying the
|
||||
// dominator-tree direction (ie, dominator before the dominated). This is,
|
||||
// actually, easy to achieve: any pre-order CFG traversal algorithm will do it.
|
||||
// Because such algorithms visit a block only after traversing some path to it
|
||||
// from the root, they necessarily visit the block's idom first.
|
||||
//
|
||||
// But not every graph-traversal algorithm outputs blocks in an order that
|
||||
// appears logical to human readers. The problem is that unrelated branches may
|
||||
// be interspersed with each other, and merge blocks may come before some of the
|
||||
// branches being merged.
|
||||
//
|
||||
// A good, human-readable order of blocks may be achieved by performing
|
||||
// depth-first search but delaying merge nodes until after all their branches
|
||||
// have been visited. This is implemented below by the inReadableOrder()
|
||||
// function.
|
||||
|
||||
#include "spvIR.h"
|
||||
|
||||
#include <cassert>
|
||||
#include <unordered_map>
|
||||
|
||||
using spv::Block;
|
||||
using spv::Id;
|
||||
|
||||
namespace {
|
||||
// Traverses CFG in a readable order, invoking a pre-set callback on each block.
|
||||
// Use by calling visit() on the root block.
|
||||
class ReadableOrderTraverser {
|
||||
public:
|
||||
explicit ReadableOrderTraverser(std::function<void(Block*)> callback) : callback_(callback) {}
|
||||
// Visits the block if it hasn't been visited already and isn't currently
|
||||
// being delayed. Invokes callback(block), then descends into its
|
||||
// successors. Delays merge-block and continue-block processing until all
|
||||
// the branches have been completed.
|
||||
void visit(Block* block)
|
||||
{
|
||||
assert(block);
|
||||
if (visited_[block] || delayed_[block])
|
||||
return;
|
||||
callback_(block);
|
||||
visited_[block] = true;
|
||||
Block* mergeBlock = nullptr;
|
||||
Block* continueBlock = nullptr;
|
||||
auto mergeInst = block->getMergeInstruction();
|
||||
if (mergeInst) {
|
||||
Id mergeId = mergeInst->getIdOperand(0);
|
||||
mergeBlock = block->getParent().getParent().getInstruction(mergeId)->getBlock();
|
||||
delayed_[mergeBlock] = true;
|
||||
if (mergeInst->getOpCode() == spv::OpLoopMerge) {
|
||||
Id continueId = mergeInst->getIdOperand(1);
|
||||
continueBlock =
|
||||
block->getParent().getParent().getInstruction(continueId)->getBlock();
|
||||
delayed_[continueBlock] = true;
|
||||
}
|
||||
}
|
||||
const auto successors = block->getSuccessors();
|
||||
for (auto it = successors.cbegin(); it != successors.cend(); ++it)
|
||||
visit(*it);
|
||||
if (continueBlock) {
|
||||
delayed_[continueBlock] = false;
|
||||
visit(continueBlock);
|
||||
}
|
||||
if (mergeBlock) {
|
||||
delayed_[mergeBlock] = false;
|
||||
visit(mergeBlock);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
std::function<void(Block*)> callback_;
|
||||
// Whether a block has already been visited or is being delayed.
|
||||
std::unordered_map<Block *, bool> visited_, delayed_;
|
||||
};
|
||||
}
|
||||
|
||||
void spv::inReadableOrder(Block* root, std::function<void(Block*)> callback)
|
||||
{
|
||||
ReadableOrderTraverser(callback).visit(root);
|
||||
}
|
||||
|
|
@ -140,20 +140,17 @@ namespace spv {
|
|||
}
|
||||
}
|
||||
|
||||
bool spirvbin_t::isFlowCtrlOpen(spv::Op opCode) const
|
||||
bool spirvbin_t::isFlowCtrl(spv::Op opCode) const
|
||||
{
|
||||
switch (opCode) {
|
||||
case spv::OpBranchConditional:
|
||||
case spv::OpSwitch: return true;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool spirvbin_t::isFlowCtrlClose(spv::Op opCode) const
|
||||
{
|
||||
switch (opCode) {
|
||||
case spv::OpBranch:
|
||||
case spv::OpSwitch:
|
||||
case spv::OpLoopMerge:
|
||||
case spv::OpSelectionMerge: return true;
|
||||
case spv::OpSelectionMerge:
|
||||
case spv::OpLabel:
|
||||
case spv::OpFunction:
|
||||
case spv::OpFunctionEnd: return true;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -440,7 +437,7 @@ namespace spv {
|
|||
}
|
||||
|
||||
// Store IDs from instruction in our map
|
||||
for (int op = 0; op < spv::InstructionDesc[opCode].operands.getNum(); ++op, --numOperands) {
|
||||
for (int op = 0; numOperands > 0; ++op, --numOperands) {
|
||||
switch (spv::InstructionDesc[opCode].operands.getClass(op)) {
|
||||
case spv::OperandId:
|
||||
idFn(asId(word++));
|
||||
|
|
@ -468,19 +465,36 @@ namespace spv {
|
|||
}
|
||||
return nextInst;
|
||||
|
||||
case spv::OperandLiteralString:
|
||||
// word += literalStringWords(literalString(word)); // for clarity
|
||||
case spv::OperandLiteralString: {
|
||||
const int stringWordCount = literalStringWords(literalString(word));
|
||||
word += stringWordCount;
|
||||
numOperands -= (stringWordCount-1); // -1 because for() header post-decrements
|
||||
break;
|
||||
}
|
||||
|
||||
// Execution mode might have extra literal operands. Skip them.
|
||||
case spv::OperandExecutionMode:
|
||||
return nextInst;
|
||||
|
||||
// Single word operands we simply ignore, as they hold no IDs
|
||||
// Single word operands we simply ignore, as they hold no IDs
|
||||
case spv::OperandLiteralNumber:
|
||||
case spv::OperandSource:
|
||||
case spv::OperandExecutionModel:
|
||||
case spv::OperandAddressing:
|
||||
case spv::OperandMemory:
|
||||
case spv::OperandExecutionMode:
|
||||
case spv::OperandStorage:
|
||||
case spv::OperandDimensionality:
|
||||
case spv::OperandSamplerAddressingMode:
|
||||
case spv::OperandSamplerFilterMode:
|
||||
case spv::OperandSamplerImageFormat:
|
||||
case spv::OperandImageChannelOrder:
|
||||
case spv::OperandImageChannelDataType:
|
||||
case spv::OperandImageOperands:
|
||||
case spv::OperandFPFastMath:
|
||||
case spv::OperandFPRoundingMode:
|
||||
case spv::OperandLinkageType:
|
||||
case spv::OperandAccessQualifier:
|
||||
case spv::OperandFuncParamAttr:
|
||||
case spv::OperandDecoration:
|
||||
case spv::OperandBuiltIn:
|
||||
case spv::OperandSelect:
|
||||
|
|
@ -492,10 +506,12 @@ namespace spv {
|
|||
case spv::OperandGroupOperation:
|
||||
case spv::OperandKernelEnqueueFlags:
|
||||
case spv::OperandKernelProfilingInfo:
|
||||
case spv::OperandCapability:
|
||||
++word;
|
||||
break;
|
||||
|
||||
default:
|
||||
assert(0 && "Unhandled Operand Class");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -558,7 +574,7 @@ namespace spv {
|
|||
|
||||
// Window size for context-sensitive canonicalization values
|
||||
// Emperical best size from a single data set. TODO: Would be a good tunable.
|
||||
// We essentially performa a little convolution around each instruction,
|
||||
// We essentially perform a little convolution around each instruction,
|
||||
// to capture the flavor of nearby code, to hopefully match to similar
|
||||
// code in other modules.
|
||||
static const unsigned windowSize = 2;
|
||||
|
|
@ -713,49 +729,71 @@ namespace spv {
|
|||
strip(); // strip out data we decided to eliminate
|
||||
}
|
||||
|
||||
// remove bodies of uncalled functions
|
||||
// optimize loads and stores
|
||||
void spirvbin_t::optLoadStore()
|
||||
{
|
||||
idset_t fnLocalVars;
|
||||
// Map of load result IDs to what they load
|
||||
idmap_t idMap;
|
||||
idset_t fnLocalVars; // candidates for removal (only locals)
|
||||
idmap_t idMap; // Map of load result IDs to what they load
|
||||
blockmap_t blockMap; // Map of IDs to blocks they first appear in
|
||||
int blockNum = 0; // block count, to avoid crossing flow control
|
||||
|
||||
// Find all the function local pointers stored at most once, and not via access chains
|
||||
process(
|
||||
[&](spv::Op opCode, unsigned start) {
|
||||
const int wordCount = asWordCount(start);
|
||||
|
||||
// Count blocks, so we can avoid crossing flow control
|
||||
if (isFlowCtrl(opCode))
|
||||
++blockNum;
|
||||
|
||||
// Add local variables to the map
|
||||
if ((opCode == spv::OpVariable && spv[start+3] == spv::StorageClassFunction && asWordCount(start) == 4))
|
||||
if ((opCode == spv::OpVariable && spv[start+3] == spv::StorageClassFunction && asWordCount(start) == 4)) {
|
||||
fnLocalVars.insert(asId(start+2));
|
||||
return true;
|
||||
}
|
||||
|
||||
// Ignore process vars referenced via access chain
|
||||
if ((opCode == spv::OpAccessChain || opCode == spv::OpInBoundsAccessChain) && fnLocalVars.count(asId(start+3)) > 0) {
|
||||
fnLocalVars.erase(asId(start+3));
|
||||
idMap.erase(asId(start+3));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (opCode == spv::OpLoad && fnLocalVars.count(asId(start+3)) > 0) {
|
||||
// Avoid loads before stores (TODO: why? Crashes driver, but seems like it shouldn't).
|
||||
if (idMap.find(asId(start+3)) == idMap.end()) {
|
||||
fnLocalVars.erase(asId(start+3));
|
||||
idMap.erase(asId(start+3));
|
||||
const spv::Id varId = asId(start+3);
|
||||
|
||||
// Avoid loads before stores
|
||||
if (idMap.find(varId) == idMap.end()) {
|
||||
fnLocalVars.erase(varId);
|
||||
idMap.erase(varId);
|
||||
}
|
||||
|
||||
// don't do for volatile references
|
||||
if (wordCount > 4 && (spv[start+4] & spv::MemoryAccessVolatileMask)) {
|
||||
fnLocalVars.erase(asId(start+3));
|
||||
idMap.erase(asId(start+3));
|
||||
fnLocalVars.erase(varId);
|
||||
idMap.erase(varId);
|
||||
}
|
||||
|
||||
// Handle flow control
|
||||
if (blockMap.find(varId) == blockMap.end()) {
|
||||
blockMap[varId] = blockNum; // track block we found it in.
|
||||
} else if (blockMap[varId] != blockNum) {
|
||||
fnLocalVars.erase(varId); // Ignore if crosses flow control
|
||||
idMap.erase(varId);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if (opCode == spv::OpStore && fnLocalVars.count(asId(start+1)) > 0) {
|
||||
if (idMap.find(asId(start+1)) == idMap.end()) {
|
||||
idMap[asId(start+1)] = asId(start+2);
|
||||
const spv::Id varId = asId(start+1);
|
||||
|
||||
if (idMap.find(varId) == idMap.end()) {
|
||||
idMap[varId] = asId(start+2);
|
||||
} else {
|
||||
// Remove if it has more than one store to the same pointer
|
||||
fnLocalVars.erase(asId(start+1));
|
||||
idMap.erase(asId(start+1));
|
||||
fnLocalVars.erase(varId);
|
||||
idMap.erase(varId);
|
||||
}
|
||||
|
||||
// don't do for volatile references
|
||||
|
|
@ -763,11 +801,29 @@ namespace spv {
|
|||
fnLocalVars.erase(asId(start+3));
|
||||
idMap.erase(asId(start+3));
|
||||
}
|
||||
|
||||
// Handle flow control
|
||||
if (blockMap.find(varId) == blockMap.end()) {
|
||||
blockMap[varId] = blockNum; // track block we found it in.
|
||||
} else if (blockMap[varId] != blockNum) {
|
||||
fnLocalVars.erase(varId); // Ignore if crosses flow control
|
||||
idMap.erase(varId);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
},
|
||||
op_fn_nop);
|
||||
|
||||
// If local var id used anywhere else, don't eliminate
|
||||
[&](spv::Id& id) {
|
||||
if (fnLocalVars.count(id) > 0) {
|
||||
fnLocalVars.erase(id);
|
||||
idMap.erase(id);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
process(
|
||||
[&](spv::Op opCode, unsigned start) {
|
||||
|
|
@ -777,12 +833,27 @@ namespace spv {
|
|||
},
|
||||
op_fn_nop);
|
||||
|
||||
// Chase replacements to their origins, in case there is a chain such as:
|
||||
// 2 = store 1
|
||||
// 3 = load 2
|
||||
// 4 = store 3
|
||||
// 5 = load 4
|
||||
// We want to replace uses of 5 with 1.
|
||||
for (const auto& idPair : idMap) {
|
||||
spv::Id id = idPair.first;
|
||||
while (idMap.find(id) != idMap.end()) // Chase to end of chain
|
||||
id = idMap[id];
|
||||
|
||||
idMap[idPair.first] = id; // replace with final result
|
||||
}
|
||||
|
||||
// Remove the load/store/variables for the ones we've discovered
|
||||
process(
|
||||
[&](spv::Op opCode, unsigned start) {
|
||||
if ((opCode == spv::OpLoad && fnLocalVars.count(asId(start+3)) > 0) ||
|
||||
(opCode == spv::OpStore && fnLocalVars.count(asId(start+1)) > 0) ||
|
||||
(opCode == spv::OpVariable && fnLocalVars.count(asId(start+2)) > 0)) {
|
||||
|
||||
stripInst(start);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -790,7 +861,9 @@ namespace spv {
|
|||
return false;
|
||||
},
|
||||
|
||||
[&](spv::Id& id) { if (idMap.find(id) != idMap.end()) id = idMap[id]; }
|
||||
[&](spv::Id& id) {
|
||||
if (idMap.find(id) != idMap.end()) id = idMap[id];
|
||||
}
|
||||
);
|
||||
|
||||
strip(); // strip out data we decided to eliminate
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ private:
|
|||
// Local to global, or global to local ID map
|
||||
typedef std::unordered_map<spv::Id, spv::Id> idmap_t;
|
||||
typedef std::unordered_set<spv::Id> idset_t;
|
||||
typedef std::unordered_map<spv::Id, int> blockmap_t;
|
||||
|
||||
void remap(std::uint32_t opts = DO_EVERYTHING);
|
||||
|
||||
|
|
@ -164,8 +165,7 @@ private:
|
|||
bool isConstOp(spv::Op opCode) const;
|
||||
bool isTypeOp(spv::Op opCode) const;
|
||||
bool isStripOp(spv::Op opCode) const;
|
||||
bool isFlowCtrlOpen(spv::Op opCode) const;
|
||||
bool isFlowCtrlClose(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;
|
||||
|
|
|
|||
701
SPIRV/SpvBuilder.cpp
Executable file → Normal file
701
SPIRV/SpvBuilder.cpp
Executable file → Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,6 @@
|
|||
//
|
||||
// Copyright (C) 2014 LunarG, Inc.
|
||||
//Copyright (C) 2014-2015 LunarG, Inc.
|
||||
//Copyright (C) 2015-2016 Google, Inc.
|
||||
//
|
||||
// All rights reserved.
|
||||
//
|
||||
|
|
@ -53,6 +54,8 @@
|
|||
|
||||
#include <algorithm>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <set>
|
||||
#include <stack>
|
||||
|
||||
namespace spv {
|
||||
|
|
@ -77,7 +80,7 @@ public:
|
|||
memoryModel = mem;
|
||||
}
|
||||
|
||||
void addCapability(spv::Capability cap) { capabilities.push_back(cap); }
|
||||
void addCapability(spv::Capability cap) { capabilities.insert(cap); }
|
||||
// To get a new <id> for anything needing a new one.
|
||||
Id getUniqueId() { return ++uniqueId; }
|
||||
// To get a set of new <id>s, e.g., for a set of function parameters
|
||||
|
|
@ -96,13 +99,13 @@ public:
|
|||
Id makeIntType(int width) { return makeIntegerType(width, true); }
|
||||
Id makeUintType(int width) { return makeIntegerType(width, false); }
|
||||
Id makeFloatType(int width);
|
||||
Id makeStructType(std::vector<Id>& members, const char*);
|
||||
Id makeStructType(const std::vector<Id>& members, const char*);
|
||||
Id makeStructResultType(Id type0, Id type1);
|
||||
Id makeVectorType(Id component, int size);
|
||||
Id makeMatrixType(Id component, int cols, int rows);
|
||||
Id makeArrayType(Id element, unsigned size, int stride); // 0 means no stride decoration
|
||||
Id makeArrayType(Id element, Id sizeId, int stride); // 0 stride means no stride decoration
|
||||
Id makeRuntimeArray(Id element);
|
||||
Id makeFunctionType(Id returnType, std::vector<Id>& paramTypes);
|
||||
Id makeFunctionType(Id returnType, const std::vector<Id>& paramTypes);
|
||||
Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled,
|
||||
ImageFormat format);
|
||||
Id makeSamplerType();
|
||||
|
|
@ -121,6 +124,11 @@ public:
|
|||
Id getContainedTypeId(Id typeId) const;
|
||||
Id getContainedTypeId(Id typeId, int) const;
|
||||
StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); }
|
||||
ImageFormat getImageTypeFormat(Id typeId) const
|
||||
{
|
||||
return (ImageFormat)module.getInstruction(typeId)->getImmediateOperand(6);
|
||||
}
|
||||
|
||||
bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); }
|
||||
bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); }
|
||||
bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); }
|
||||
|
|
@ -201,7 +209,7 @@ public:
|
|||
Id makeDoubleConstant(double d, bool specConstant = false);
|
||||
|
||||
// Turn the array of constants into a proper spv constant of the requested type.
|
||||
Id makeCompositeConstant(Id type, std::vector<Id>& comps);
|
||||
Id makeCompositeConstant(Id type, std::vector<Id>& comps, bool specConst = false);
|
||||
|
||||
// Methods for adding information outside the CFG.
|
||||
Instruction* addEntryPoint(ExecutionModel, Function*, const char* name);
|
||||
|
|
@ -216,13 +224,16 @@ public:
|
|||
// At the end of what block do the next create*() instructions go?
|
||||
void setBuildPoint(Block* bp) { buildPoint = bp; }
|
||||
Block* getBuildPoint() const { return buildPoint; }
|
||||
// Make the main function.
|
||||
// Make the main function. The returned pointer is only valid
|
||||
// for the lifetime of this builder.
|
||||
Function* makeMain();
|
||||
|
||||
// Make a shader-style function, and create its entry block if entry is non-zero.
|
||||
// Return the function, pass back the entry.
|
||||
Function* makeFunctionEntry(Id returnType, const char* name, std::vector<Id>& paramTypes,
|
||||
Block** entry = 0);
|
||||
// The returned pointer is only valid for the lifetime of this builder.
|
||||
Function* makeFunctionEntry(Decoration precision, Id returnType, const char* name,
|
||||
const std::vector<Id>& paramTypes,
|
||||
const std::vector<Decoration>& precisions, Block** entry = 0);
|
||||
|
||||
// Create a return. An 'implicit' return is one not appearing in the source
|
||||
// code. In the case of an implicit return, no post-return block is inserted.
|
||||
|
|
@ -237,7 +248,7 @@ public:
|
|||
// Create a global or function local or IO variable.
|
||||
Id createVariable(StorageClass, Id type, const char* name = 0);
|
||||
|
||||
// Create an imtermediate with an undefined value.
|
||||
// Create an intermediate with an undefined value.
|
||||
Id createUndefined(Id type);
|
||||
|
||||
// Store into an Id and return the l-value
|
||||
|
|
@ -274,7 +285,8 @@ public:
|
|||
|
||||
// Take an rvalue (source) and a set of channels to extract from it to
|
||||
// make a new rvalue, which is returned.
|
||||
Id createRvalueSwizzle(Id typeId, Id source, std::vector<unsigned>& channels);
|
||||
Id createRvalueSwizzle(Decoration precision, Id typeId, Id source,
|
||||
std::vector<unsigned>& channels);
|
||||
|
||||
// Take a copy of an lvalue (target) and a source of components, and set the
|
||||
// source components into the lvalue where the 'channels' say to put them.
|
||||
|
|
@ -282,13 +294,15 @@ public:
|
|||
// (No true lvalue or stores are used.)
|
||||
Id createLvalueSwizzle(Id typeId, Id target, Id source, std::vector<unsigned>& channels);
|
||||
|
||||
// If the value passed in is an instruction and the precision is not NoPrecision,
|
||||
// it gets tagged with the requested precision.
|
||||
void setPrecision(Id /* value */, Decoration precision)
|
||||
// If both the id and precision are valid, the id
|
||||
// gets tagged with the requested precision.
|
||||
// The passed in id is always the returned id, to simplify use patterns.
|
||||
Id setPrecision(Id id, Decoration precision)
|
||||
{
|
||||
if (precision != NoPrecision) {
|
||||
; // TODO
|
||||
}
|
||||
if (precision != NoPrecision && id != NoResult)
|
||||
addDecoration(id, precision);
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
// Can smear a scalar to a vector for the following forms:
|
||||
|
|
@ -312,8 +326,7 @@ public:
|
|||
Id smearScalar(Decoration precision, Id scalarVal, Id vectorType);
|
||||
|
||||
// Create a call to a built-in function.
|
||||
Id createBuiltinCall(Decoration precision, Id resultType, Id builtins, int entryPoint,
|
||||
std::vector<Id>& args);
|
||||
Id createBuiltinCall(Id resultType, Id builtins, int entryPoint, std::vector<Id>& args);
|
||||
|
||||
// List of parameters used to create a texture operation
|
||||
struct TextureParameters {
|
||||
|
|
@ -328,11 +341,13 @@ public:
|
|||
Id gradY;
|
||||
Id sample;
|
||||
Id comp;
|
||||
Id texelOut;
|
||||
Id lodClamp;
|
||||
};
|
||||
|
||||
// Select the correct texture operation based on all inputs, and emit the correct instruction
|
||||
Id createTextureCall(Decoration precision, Id resultType, bool fetch, bool proj, bool gather,
|
||||
const TextureParameters&);
|
||||
Id createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, bool proj,
|
||||
bool gather, bool noImplicit, const TextureParameters&);
|
||||
|
||||
// Emit the OpTextureQuery* instruction that was passed in.
|
||||
// Figure out the right return value and type, and return it.
|
||||
|
|
@ -343,7 +358,7 @@ public:
|
|||
Id createBitFieldExtractCall(Decoration precision, Id, Id, Id, bool isSigned);
|
||||
Id createBitFieldInsertCall(Decoration precision, Id, Id, Id, Id);
|
||||
|
||||
// Reduction comparision for composites: For equal and not-equal resulting in a scalar.
|
||||
// Reduction comparison for composites: For equal and not-equal resulting in a scalar.
|
||||
Id createCompositeCompare(Decoration precision, Id, Id,
|
||||
bool /* true if for equal, false if for not-equal */);
|
||||
|
||||
|
|
@ -403,28 +418,24 @@ public:
|
|||
// Finish off the innermost switch.
|
||||
void endSwitch(std::vector<Block*>& segmentBB);
|
||||
|
||||
// Start the beginning of a new loop, and prepare the builder to
|
||||
// generate code for the loop test.
|
||||
// The loopTestFirst parameter is true when the loop test executes before
|
||||
// the body. (It is false for do-while loops.)
|
||||
void makeNewLoop(bool loopTestFirst);
|
||||
struct LoopBlocks {
|
||||
Block &head, &body, &merge, &continue_target;
|
||||
};
|
||||
|
||||
// Add the branch for the loop test, based on the given condition.
|
||||
// The true branch goes to the first block in the loop body, and
|
||||
// the false branch goes to the loop's merge block. The builder insertion
|
||||
// point will be placed at the start of the body.
|
||||
void createLoopTestBranch(Id condition);
|
||||
// Start a new loop and prepare the builder to generate code for it. Until
|
||||
// closeLoop() is called for this loop, createLoopContinue() and
|
||||
// createLoopExit() will target its corresponding blocks.
|
||||
LoopBlocks& makeNewLoop();
|
||||
|
||||
// Generate an unconditional branch to the loop body. The builder insertion
|
||||
// point will be placed at the start of the body. Use this when there is
|
||||
// no loop test.
|
||||
void createBranchToBody();
|
||||
// Create a new block in the function containing the build point. Memory is
|
||||
// owned by the function object.
|
||||
Block& makeNewBlock();
|
||||
|
||||
// Add a branch to the test of the current (innermost) loop.
|
||||
// The way we generate code, that's also the loop header.
|
||||
// Add a branch to the continue_target of the current (innermost) loop.
|
||||
void createLoopContinue();
|
||||
|
||||
// Add an exit (e.g. "break") for the innermost loop that you're in
|
||||
// Add an exit (e.g. "break") from the innermost loop that we're currently
|
||||
// in.
|
||||
void createLoopExit();
|
||||
|
||||
// Close the innermost loop that you're in
|
||||
|
|
@ -515,13 +526,21 @@ public:
|
|||
void accessChainStore(Id rvalue);
|
||||
|
||||
// use accessChain and swizzle to load an r-value
|
||||
Id accessChainLoad(Id ResultType);
|
||||
Id accessChainLoad(Decoration precision, Id ResultType);
|
||||
|
||||
// get the direct pointer for an l-value
|
||||
Id accessChainGetLValue();
|
||||
|
||||
// Get the inferred SPIR-V type of the result of the current access chain,
|
||||
// based on the type of the base and the chain of dereferences.
|
||||
Id accessChainGetInferredType();
|
||||
|
||||
void dump(std::vector<unsigned int>&) const;
|
||||
|
||||
void createBranch(Block* block);
|
||||
void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock);
|
||||
void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control);
|
||||
|
||||
protected:
|
||||
Id makeIntConstant(Id typeId, unsigned value, bool specConstant);
|
||||
Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) const;
|
||||
|
|
@ -531,21 +550,16 @@ protected:
|
|||
void transferAccessChainSwizzle(bool dynamic);
|
||||
void simplifyAccessChainSwizzle();
|
||||
void createAndSetNoPredecessorBlock(const char*);
|
||||
void createBranch(Block* block);
|
||||
void createSelectionMerge(Block* mergeBlock, unsigned int control);
|
||||
void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control);
|
||||
void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock);
|
||||
void dumpInstructions(std::vector<unsigned int>&, const std::vector<Instruction*>&) const;
|
||||
|
||||
struct Loop; // Defined below.
|
||||
void createBranchToLoopHeaderFromInside(const Loop& loop);
|
||||
void dumpInstructions(std::vector<unsigned int>&,
|
||||
const std::vector<std::unique_ptr<Instruction> >&) const;
|
||||
|
||||
SourceLanguage source;
|
||||
int sourceVersion;
|
||||
std::vector<const char*> extensions;
|
||||
AddressingModel addressModel;
|
||||
MemoryModel memoryModel;
|
||||
std::vector<spv::Capability> capabilities;
|
||||
std::set<spv::Capability> capabilities;
|
||||
int builderNumber;
|
||||
Module module;
|
||||
Block* buildPoint;
|
||||
|
|
@ -554,14 +568,15 @@ protected:
|
|||
AccessChain accessChain;
|
||||
|
||||
// special blocks of instructions for output
|
||||
std::vector<Instruction*> imports;
|
||||
std::vector<Instruction*> entryPoints;
|
||||
std::vector<Instruction*> executionModes;
|
||||
std::vector<Instruction*> names;
|
||||
std::vector<Instruction*> lines;
|
||||
std::vector<Instruction*> decorations;
|
||||
std::vector<Instruction*> constantsTypesGlobals;
|
||||
std::vector<Instruction*> externals;
|
||||
std::vector<std::unique_ptr<Instruction> > imports;
|
||||
std::vector<std::unique_ptr<Instruction> > entryPoints;
|
||||
std::vector<std::unique_ptr<Instruction> > executionModes;
|
||||
std::vector<std::unique_ptr<Instruction> > names;
|
||||
std::vector<std::unique_ptr<Instruction> > lines;
|
||||
std::vector<std::unique_ptr<Instruction> > decorations;
|
||||
std::vector<std::unique_ptr<Instruction> > constantsTypesGlobals;
|
||||
std::vector<std::unique_ptr<Instruction> > externals;
|
||||
std::vector<std::unique_ptr<Function> > functions;
|
||||
|
||||
// not output, internally used for quick & dirty canonical (unique) creation
|
||||
std::vector<Instruction*> groupedConstants[OpConstant]; // all types appear before OpConstant
|
||||
|
|
@ -570,47 +585,8 @@ protected:
|
|||
// stack of switches
|
||||
std::stack<Block*> switchMerges;
|
||||
|
||||
// Data that needs to be kept in order to properly handle loops.
|
||||
struct Loop {
|
||||
// Constructs a default Loop structure containing new header, merge, and
|
||||
// body blocks for the current function.
|
||||
// The testFirst argument indicates whether the loop test executes at
|
||||
// the top of the loop rather than at the bottom. In the latter case,
|
||||
// also create a phi instruction whose value indicates whether we're on
|
||||
// the first iteration of the loop. The phi instruction is initialized
|
||||
// with no values or predecessor operands.
|
||||
Loop(Builder& builder, bool testFirst);
|
||||
|
||||
// The function containing the loop.
|
||||
Function* const function;
|
||||
// The header is the first block generated for the loop.
|
||||
// It dominates all the blocks in the loop, i.e. it is always
|
||||
// executed before any others.
|
||||
// If the loop test is executed before the body (as in "while" and
|
||||
// "for" loops), then the header begins with the test code.
|
||||
// Otherwise, the loop is a "do-while" loop and the header contains the
|
||||
// start of the body of the loop (if the body exists).
|
||||
Block* const header;
|
||||
// The merge block marks the end of the loop. Control is transferred
|
||||
// to the merge block when either the loop test fails, or when a
|
||||
// nested "break" is encountered.
|
||||
Block* const merge;
|
||||
// The body block is the first basic block in the body of the loop, i.e.
|
||||
// the code that is to be repeatedly executed, aside from loop control.
|
||||
// This member is null until we generate code that references the loop
|
||||
// body block.
|
||||
Block* const body;
|
||||
// True when the loop test executes before the body.
|
||||
const bool testFirst;
|
||||
// When the test executes after the body, this is defined as the phi
|
||||
// instruction that tells us whether we are on the first iteration of
|
||||
// the loop. Otherwise this is null. This is non-const because
|
||||
// it has to be initialized outside of the initializer-list.
|
||||
Instruction* isFirstIteration;
|
||||
};
|
||||
|
||||
// Our loop stack.
|
||||
std::stack<Loop> loops;
|
||||
std::stack<LoopBlocks> loops;
|
||||
}; // end Builder class
|
||||
|
||||
// Use for non-fatal notes about what's not complete
|
||||
|
|
|
|||
7
SPIRV/disassemble.cpp
Executable file → Normal file
7
SPIRV/disassemble.cpp
Executable file → Normal file
|
|
@ -59,7 +59,7 @@ const char* GlslStd450DebugNames[spv::GLSLstd450Count];
|
|||
|
||||
namespace spv {
|
||||
|
||||
void Kill(std::ostream& out, const char* message)
|
||||
static void Kill(std::ostream& out, const char* message)
|
||||
{
|
||||
out << std::endl << "Disassembly failed: " << message << std::endl;
|
||||
exit(1);
|
||||
|
|
@ -473,6 +473,7 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
|||
else
|
||||
out << OperandClassParams[operandClass].getName(stream[word++]);
|
||||
--numOperands;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -480,7 +481,7 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
|||
return;
|
||||
}
|
||||
|
||||
void GLSLstd450GetDebugNames(const char** names)
|
||||
static void GLSLstd450GetDebugNames(const char** names)
|
||||
{
|
||||
for (int i = 0; i < GLSLstd450Count; ++i)
|
||||
names[i] = "Unknown";
|
||||
|
|
@ -531,7 +532,6 @@ void GLSLstd450GetDebugNames(const char** names)
|
|||
names[GLSLstd450SClamp] = "SClamp";
|
||||
names[GLSLstd450UClamp] = "UClamp";
|
||||
names[GLSLstd450FMix] = "FMix";
|
||||
names[GLSLstd450IMix] = "IMix";
|
||||
names[GLSLstd450Step] = "Step";
|
||||
names[GLSLstd450SmoothStep] = "SmoothStep";
|
||||
names[GLSLstd450Fma] = "Fma";
|
||||
|
|
@ -568,6 +568,7 @@ void GLSLstd450GetDebugNames(const char** names)
|
|||
void Disassemble(std::ostream& out, const std::vector<unsigned int>& stream)
|
||||
{
|
||||
SpirvStream SpirvStream(out, stream);
|
||||
spv::Parameterize();
|
||||
GLSLstd450GetDebugNames(GlslStd450DebugNames);
|
||||
SpirvStream.validate();
|
||||
SpirvStream.processInstructions();
|
||||
|
|
|
|||
|
|
@ -712,7 +712,7 @@ const char* KernelProfilingInfoString(int info)
|
|||
}
|
||||
}
|
||||
|
||||
const int CapabilityCeiling = 57;
|
||||
const int CapabilityCeiling = 58;
|
||||
|
||||
const char* CapabilityString(int info)
|
||||
{
|
||||
|
|
@ -775,6 +775,7 @@ const char* CapabilityString(int info)
|
|||
case 54: return "GeometryStreams";
|
||||
case 55: return "StorageImageReadWithoutFormat";
|
||||
case 56: return "StorageImageWriteWithoutFormat";
|
||||
case 57: return "MultiViewport";
|
||||
|
||||
case CapabilityCeiling:
|
||||
default: return "Bad";
|
||||
|
|
@ -1104,6 +1105,7 @@ const char* OpcodeString(int op)
|
|||
case 317: return "OpNoLine";
|
||||
case 318: return "OpAtomicFlagTestAndSet";
|
||||
case 319: return "OpAtomicFlagClear";
|
||||
case 320: return "OpImageSparseRead";
|
||||
|
||||
case OpcodeCeiling:
|
||||
default:
|
||||
|
|
@ -1311,7 +1313,6 @@ void Parameterize()
|
|||
CapabilityParams[CapabilityTessellation].caps.push_back(CapabilityShader);
|
||||
CapabilityParams[CapabilityVector16].caps.push_back(CapabilityKernel);
|
||||
CapabilityParams[CapabilityFloat16Buffer].caps.push_back(CapabilityKernel);
|
||||
CapabilityParams[CapabilityFloat16].caps.push_back(CapabilityFloat16Buffer);
|
||||
CapabilityParams[CapabilityInt64Atomics].caps.push_back(CapabilityInt64);
|
||||
CapabilityParams[CapabilityImageBasic].caps.push_back(CapabilityKernel);
|
||||
CapabilityParams[CapabilityImageReadWrite].caps.push_back(CapabilityImageBasic);
|
||||
|
|
@ -1353,6 +1354,7 @@ void Parameterize()
|
|||
CapabilityParams[CapabilityGeometryStreams].caps.push_back(CapabilityGeometry);
|
||||
CapabilityParams[CapabilityStorageImageReadWithoutFormat].caps.push_back(CapabilityShader);
|
||||
CapabilityParams[CapabilityStorageImageWriteWithoutFormat].caps.push_back(CapabilityShader);
|
||||
CapabilityParams[CapabilityMultiViewport].caps.push_back(CapabilityGeometry);
|
||||
|
||||
AddressingParams[AddressingModelPhysical32].caps.push_back(CapabilityAddresses);
|
||||
AddressingParams[AddressingModelPhysical64].caps.push_back(CapabilityAddresses);
|
||||
|
|
@ -1362,7 +1364,7 @@ void Parameterize()
|
|||
MemoryParams[MemoryModelOpenCL].caps.push_back(CapabilityKernel);
|
||||
|
||||
MemorySemanticsParams[MemorySemanticsUniformMemoryShift].caps.push_back(CapabilityShader);
|
||||
MemorySemanticsParams[MemorySemanticsAtomicCounterMemoryShift].caps.push_back(CapabilityShader);
|
||||
MemorySemanticsParams[MemorySemanticsAtomicCounterMemoryShift].caps.push_back(CapabilityAtomicStorage);
|
||||
|
||||
ExecutionModelParams[ExecutionModelVertex].caps.push_back(CapabilityShader);
|
||||
ExecutionModelParams[ExecutionModelTessellationControl].caps.push_back(CapabilityTessellation);
|
||||
|
|
@ -1528,7 +1530,7 @@ void Parameterize()
|
|||
DecorationParams[DecorationFlat].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationPatch].caps.push_back(CapabilityTessellation);
|
||||
DecorationParams[DecorationCentroid].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationSample].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationSample].caps.push_back(CapabilitySampleRateShading);
|
||||
DecorationParams[DecorationInvariant].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationConstant].caps.push_back(CapabilityKernel);
|
||||
DecorationParams[DecorationUniform].caps.push_back(CapabilityShader);
|
||||
|
|
@ -1537,14 +1539,14 @@ void Parameterize()
|
|||
DecorationParams[DecorationStream].caps.push_back(CapabilityGeometryStreams);
|
||||
DecorationParams[DecorationLocation].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationComponent].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationOffset].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationIndex].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationBinding].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationDescriptorSet].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationXfbBuffer].caps.push_back(CapabilityTransformFeedback);
|
||||
DecorationParams[DecorationXfbStride].caps.push_back(CapabilityTransformFeedback);
|
||||
DecorationParams[DecorationArrayStride].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationMatrixStride].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationBuiltIn].caps.push_back(CapabilityShader);
|
||||
DecorationParams[DecorationMatrixStride].caps.push_back(CapabilityMatrix);
|
||||
DecorationParams[DecorationFuncParamAttr].caps.push_back(CapabilityKernel);
|
||||
DecorationParams[DecorationFPRoundingMode].caps.push_back(CapabilityKernel);
|
||||
DecorationParams[DecorationFPFastMathMode].caps.push_back(CapabilityKernel);
|
||||
|
|
@ -1556,8 +1558,8 @@ void Parameterize()
|
|||
|
||||
BuiltInParams[BuiltInPosition].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInPointSize].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInClipDistance].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInCullDistance].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInClipDistance].caps.push_back(CapabilityClipDistance);
|
||||
BuiltInParams[BuiltInCullDistance].caps.push_back(CapabilityCullDistance);
|
||||
|
||||
BuiltInParams[BuiltInVertexId].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInVertexId].desc = "Vertex ID, which takes on values 0, 1, 2, . . . .";
|
||||
|
|
@ -1576,7 +1578,7 @@ void Parameterize()
|
|||
BuiltInParams[BuiltInInvocationId].caps.push_back(CapabilityGeometry);
|
||||
BuiltInParams[BuiltInInvocationId].caps.push_back(CapabilityTessellation);
|
||||
BuiltInParams[BuiltInLayer].caps.push_back(CapabilityGeometry);
|
||||
BuiltInParams[BuiltInViewportIndex].caps.push_back(CapabilityGeometry);
|
||||
BuiltInParams[BuiltInViewportIndex].caps.push_back(CapabilityMultiViewport);
|
||||
BuiltInParams[BuiltInTessLevelOuter].caps.push_back(CapabilityTessellation);
|
||||
BuiltInParams[BuiltInTessLevelInner].caps.push_back(CapabilityTessellation);
|
||||
BuiltInParams[BuiltInTessCoord].caps.push_back(CapabilityTessellation);
|
||||
|
|
@ -1584,9 +1586,9 @@ void Parameterize()
|
|||
BuiltInParams[BuiltInFragCoord].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInPointCoord].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInFrontFacing].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInSampleId].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInSamplePosition].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInSampleMask].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInSampleId].caps.push_back(CapabilitySampleRateShading);
|
||||
BuiltInParams[BuiltInSamplePosition].caps.push_back(CapabilitySampleRateShading);
|
||||
BuiltInParams[BuiltInSampleMask].caps.push_back(CapabilitySampleRateShading);
|
||||
BuiltInParams[BuiltInFragDepth].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInHelperInvocation].caps.push_back(CapabilityShader);
|
||||
BuiltInParams[BuiltInWorkDim].caps.push_back(CapabilityKernel);
|
||||
|
|
@ -1962,6 +1964,12 @@ void Parameterize()
|
|||
InstructionDesc[OpImageSparseDrefGather].operands.push(OperandVariableIds, "", true);
|
||||
InstructionDesc[OpImageSparseDrefGather].capabilities.push_back(CapabilitySparseResidency);
|
||||
|
||||
InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Image'");
|
||||
InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Coordinate'");
|
||||
InstructionDesc[OpImageSparseRead].operands.push(OperandImageOperands, "", true);
|
||||
InstructionDesc[OpImageSparseRead].operands.push(OperandVariableIds, "", true);
|
||||
InstructionDesc[OpImageSparseRead].capabilities.push_back(CapabilitySparseResidency);
|
||||
|
||||
InstructionDesc[OpImageSparseTexelsResident].operands.push(OperandId, "'Resident Code'");
|
||||
InstructionDesc[OpImageSparseTexelsResident].capabilities.push_back(CapabilitySparseResidency);
|
||||
|
||||
|
|
|
|||
5
SPIRV/doc.h
Executable file → Normal file
5
SPIRV/doc.h
Executable file → Normal file
|
|
@ -67,6 +67,8 @@ const char* SamplerFilterModeString(int);
|
|||
const char* ImageFormatString(int);
|
||||
const char* ImageChannelOrderString(int);
|
||||
const char* ImageChannelTypeString(int);
|
||||
const char* ImageChannelDataTypeString(int type);
|
||||
const char* ImageOperandsString(int format);
|
||||
const char* ImageOperands(int);
|
||||
const char* FPFastMathString(int);
|
||||
const char* FPRoundingModeString(int);
|
||||
|
|
@ -81,6 +83,7 @@ const char* KernelEnqueueFlagsString(int);
|
|||
const char* KernelProfilingInfoString(int);
|
||||
const char* CapabilityString(int);
|
||||
const char* OpcodeString(int);
|
||||
const char* ScopeString(int mem);
|
||||
|
||||
// For grouping opcodes into subsections
|
||||
enum OpcodeClass {
|
||||
|
|
@ -243,7 +246,7 @@ protected:
|
|||
int resultPresent : 1;
|
||||
};
|
||||
|
||||
const int OpcodeCeiling = 320;
|
||||
const int OpcodeCeiling = 321;
|
||||
|
||||
// The set of objects that hold all the instruction/operand
|
||||
// parameterization information.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2014-2015 The Khronos Group Inc.
|
||||
// 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"),
|
||||
|
|
@ -39,19 +39,19 @@
|
|||
// "Mask" in their name, and a parallel enum that has the shift
|
||||
// amount (1 << x) for each corresponding enumerant.
|
||||
|
||||
#ifndef spirv_H
|
||||
#define spirv_H
|
||||
#ifndef spirv_HPP
|
||||
#define spirv_HPP
|
||||
|
||||
namespace spv {
|
||||
|
||||
typedef unsigned int Id;
|
||||
|
||||
#define SPV_VERSION 10000
|
||||
#define SPV_REVISION 2
|
||||
#define SPV_VERSION 0x10000
|
||||
#define SPV_REVISION 3
|
||||
|
||||
static const unsigned int MagicNumber = 0x07230203;
|
||||
static const unsigned int Version = 0x00010000;
|
||||
static const unsigned int Revision = 2;
|
||||
static const unsigned int Revision = 3;
|
||||
static const unsigned int OpCodeMask = 0xffff;
|
||||
static const unsigned int WordCountShift = 16;
|
||||
|
||||
|
|
@ -563,6 +563,7 @@ enum Capability {
|
|||
CapabilityGeometryStreams = 54,
|
||||
CapabilityStorageImageReadWithoutFormat = 55,
|
||||
CapabilityStorageImageWriteWithoutFormat = 56,
|
||||
CapabilityMultiViewport = 57,
|
||||
};
|
||||
|
||||
enum Op {
|
||||
|
|
@ -859,6 +860,7 @@ enum Op {
|
|||
OpNoLine = 317,
|
||||
OpAtomicFlagTestAndSet = 318,
|
||||
OpAtomicFlagClear = 319,
|
||||
OpImageSparseRead = 320,
|
||||
};
|
||||
|
||||
// Overload operator| for mask bit combining
|
||||
|
|
@ -874,5 +876,4 @@ inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfil
|
|||
|
||||
} // end namespace spv
|
||||
|
||||
#endif // #ifndef spirv_H
|
||||
|
||||
#endif // #ifndef spirv_HPP
|
||||
|
|
|
|||
103
SPIRV/spvIR.h
103
SPIRV/spvIR.h
|
|
@ -52,12 +52,16 @@
|
|||
|
||||
#include "spirv.hpp"
|
||||
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
#include <assert.h>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
namespace spv {
|
||||
|
||||
class Block;
|
||||
class Function;
|
||||
class Module;
|
||||
|
||||
|
|
@ -66,7 +70,17 @@ const Id NoType = 0;
|
|||
|
||||
const unsigned int BadValue = 0xFFFFFFFF;
|
||||
const Decoration NoPrecision = (Decoration)BadValue;
|
||||
const MemorySemanticsMask MemorySemanticsAllMemory = (MemorySemanticsMask)0x3FF;
|
||||
const MemorySemanticsMask MemorySemanticsAllMemory =
|
||||
(MemorySemanticsMask)(MemorySemanticsAcquireMask |
|
||||
MemorySemanticsReleaseMask |
|
||||
MemorySemanticsAcquireReleaseMask |
|
||||
MemorySemanticsSequentiallyConsistentMask |
|
||||
MemorySemanticsUniformMemoryMask |
|
||||
MemorySemanticsSubgroupMemoryMask |
|
||||
MemorySemanticsWorkgroupMemoryMask |
|
||||
MemorySemanticsCrossWorkgroupMemoryMask |
|
||||
MemorySemanticsAtomicCounterMemoryMask |
|
||||
MemorySemanticsImageMemoryMask);
|
||||
|
||||
//
|
||||
// SPIR-V IR instruction.
|
||||
|
|
@ -74,8 +88,8 @@ const MemorySemanticsMask MemorySemanticsAllMemory = (MemorySemanticsMask)0x3FF;
|
|||
|
||||
class Instruction {
|
||||
public:
|
||||
Instruction(Id resultId, Id typeId, Op opCode) : resultId(resultId), typeId(typeId), opCode(opCode) { }
|
||||
explicit Instruction(Op opCode) : resultId(NoResult), typeId(NoType), opCode(opCode) { }
|
||||
Instruction(Id resultId, Id typeId, Op opCode) : resultId(resultId), typeId(typeId), opCode(opCode), block(nullptr) { }
|
||||
explicit Instruction(Op opCode) : resultId(NoResult), typeId(NoType), opCode(opCode), block(nullptr) { }
|
||||
virtual ~Instruction() {}
|
||||
void addIdOperand(Id id) { operands.push_back(id); }
|
||||
void addImmediateOperand(unsigned int immediate) { operands.push_back(immediate); }
|
||||
|
|
@ -106,6 +120,8 @@ public:
|
|||
addImmediateOperand(word);
|
||||
}
|
||||
}
|
||||
void setBlock(Block* b) { block = b; }
|
||||
Block* getBlock() const { return block; }
|
||||
Op getOpCode() const { return opCode; }
|
||||
int getNumOperands() const { return (int)operands.size(); }
|
||||
Id getResultId() const { return resultId; }
|
||||
|
|
@ -144,6 +160,7 @@ protected:
|
|||
Op opCode;
|
||||
std::vector<Id> operands;
|
||||
std::string originalString; // could be optimized away; convenience for getting string operand
|
||||
Block* block;
|
||||
};
|
||||
|
||||
//
|
||||
|
|
@ -155,18 +172,31 @@ public:
|
|||
Block(Id id, Function& parent);
|
||||
virtual ~Block()
|
||||
{
|
||||
// TODO: free instructions
|
||||
}
|
||||
|
||||
|
||||
Id getId() { return instructions.front()->getResultId(); }
|
||||
|
||||
Function& getParent() const { return parent; }
|
||||
void addInstruction(Instruction* inst);
|
||||
void addPredecessor(Block* pred) { predecessors.push_back(pred); }
|
||||
void addLocalVariable(Instruction* inst) { localVariables.push_back(inst); }
|
||||
int getNumPredecessors() const { return (int)predecessors.size(); }
|
||||
void addInstruction(std::unique_ptr<Instruction> inst);
|
||||
void addPredecessor(Block* pred) { predecessors.push_back(pred); pred->successors.push_back(this);}
|
||||
void addLocalVariable(std::unique_ptr<Instruction> inst) { localVariables.push_back(std::move(inst)); }
|
||||
const std::vector<Block*>& getPredecessors() const { return predecessors; }
|
||||
const std::vector<Block*>& getSuccessors() const { return successors; }
|
||||
void setUnreachable() { unreachable = true; }
|
||||
bool isUnreachable() const { return unreachable; }
|
||||
// Returns the block's merge instruction, if one exists (otherwise null).
|
||||
const Instruction* getMergeInstruction() const {
|
||||
if (instructions.size() < 2) return nullptr;
|
||||
const Instruction* nextToLast = (instructions.cend() - 2)->get();
|
||||
switch (nextToLast->getOpCode()) {
|
||||
case OpSelectionMerge:
|
||||
case OpLoopMerge:
|
||||
return nextToLast;
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool isTerminated() const
|
||||
{
|
||||
|
|
@ -185,12 +215,6 @@ public:
|
|||
|
||||
void dump(std::vector<unsigned int>& out) const
|
||||
{
|
||||
// skip the degenerate unreachable blocks
|
||||
// TODO: code gen: skip all unreachable blocks (transitive closure)
|
||||
// (but, until that's done safer to keep non-degenerate unreachable blocks, in case others depend on something)
|
||||
if (unreachable && instructions.size() <= 2)
|
||||
return;
|
||||
|
||||
instructions[0]->dump(out);
|
||||
for (int i = 0; i < (int)localVariables.size(); ++i)
|
||||
localVariables[i]->dump(out);
|
||||
|
|
@ -205,9 +229,9 @@ protected:
|
|||
// To enforce keeping parent and ownership in sync:
|
||||
friend Function;
|
||||
|
||||
std::vector<Instruction*> instructions;
|
||||
std::vector<Block*> predecessors;
|
||||
std::vector<Instruction*> localVariables;
|
||||
std::vector<std::unique_ptr<Instruction> > instructions;
|
||||
std::vector<Block*> predecessors, successors;
|
||||
std::vector<std::unique_ptr<Instruction> > localVariables;
|
||||
Function& parent;
|
||||
|
||||
// track whether this block is known to be uncreachable (not necessarily
|
||||
|
|
@ -216,6 +240,11 @@ protected:
|
|||
bool unreachable;
|
||||
};
|
||||
|
||||
// Traverses the control-flow graph rooted at root in an order suited for
|
||||
// readable code generation. Invokes callback at every node in the traversal
|
||||
// order.
|
||||
void inReadableOrder(Block* root, std::function<void(Block*)> callback);
|
||||
|
||||
//
|
||||
// SPIR-V IR Function.
|
||||
//
|
||||
|
|
@ -235,12 +264,18 @@ public:
|
|||
Id getParamId(int p) { return parameterInstructions[p]->getResultId(); }
|
||||
|
||||
void addBlock(Block* block) { blocks.push_back(block); }
|
||||
void popBlock(Block*) { blocks.pop_back(); }
|
||||
void removeBlock(Block* block)
|
||||
{
|
||||
auto found = find(blocks.begin(), blocks.end(), block);
|
||||
assert(found != blocks.end());
|
||||
blocks.erase(found);
|
||||
delete block;
|
||||
}
|
||||
|
||||
Module& getParent() const { return parent; }
|
||||
Block* getEntryBlock() const { return blocks.front(); }
|
||||
Block* getLastBlock() const { return blocks.back(); }
|
||||
void addLocalVariable(Instruction* inst);
|
||||
void addLocalVariable(std::unique_ptr<Instruction> inst);
|
||||
Id getReturnType() const { return functionInstruction.getTypeId(); }
|
||||
void dump(std::vector<unsigned int>& out) const
|
||||
{
|
||||
|
|
@ -252,8 +287,7 @@ public:
|
|||
parameterInstructions[p]->dump(out);
|
||||
|
||||
// Blocks
|
||||
for (int b = 0; b < (int)blocks.size(); ++b)
|
||||
blocks[b]->dump(out);
|
||||
inReadableOrder(blocks[0], [&out](const Block* b) { b->dump(out); });
|
||||
Instruction end(0, 0, OpFunctionEnd);
|
||||
end.dump(out);
|
||||
}
|
||||
|
|
@ -341,22 +375,27 @@ __inline Function::Function(Id id, Id resultType, Id functionType, Id firstParam
|
|||
}
|
||||
}
|
||||
|
||||
__inline void Function::addLocalVariable(Instruction* inst)
|
||||
__inline void Function::addLocalVariable(std::unique_ptr<Instruction> inst)
|
||||
{
|
||||
blocks[0]->addLocalVariable(inst);
|
||||
parent.mapInstruction(inst);
|
||||
Instruction* raw_instruction = inst.get();
|
||||
blocks[0]->addLocalVariable(std::move(inst));
|
||||
parent.mapInstruction(raw_instruction);
|
||||
}
|
||||
|
||||
__inline Block::Block(Id id, Function& parent) : parent(parent), unreachable(false)
|
||||
{
|
||||
instructions.push_back(new Instruction(id, NoType, OpLabel));
|
||||
instructions.push_back(std::unique_ptr<Instruction>(new Instruction(id, NoType, OpLabel)));
|
||||
instructions.back()->setBlock(this);
|
||||
parent.getParent().mapInstruction(instructions.back().get());
|
||||
}
|
||||
|
||||
__inline void Block::addInstruction(Instruction* inst)
|
||||
__inline void Block::addInstruction(std::unique_ptr<Instruction> inst)
|
||||
{
|
||||
instructions.push_back(inst);
|
||||
if (inst->getResultId())
|
||||
parent.getParent().mapInstruction(inst);
|
||||
Instruction* raw_instruction = inst.get();
|
||||
instructions.push_back(std::move(inst));
|
||||
raw_instruction->setBlock(this);
|
||||
if (raw_instruction->getResultId())
|
||||
parent.getParent().mapInstruction(raw_instruction);
|
||||
}
|
||||
|
||||
}; // end spv namespace
|
||||
|
|
|
|||
|
|
@ -435,6 +435,8 @@ void ProcessConfigFile()
|
|||
}
|
||||
if (configStrings)
|
||||
FreeFileData(configStrings);
|
||||
else
|
||||
delete[] config;
|
||||
}
|
||||
|
||||
// thread-safe list of shaders to asynchronously grab and compile
|
||||
|
|
@ -658,17 +660,27 @@ void StderrIfNonEmpty(const char* str)
|
|||
}
|
||||
}
|
||||
|
||||
// Simple bundling of what makes a compilation unit for ease in passing around,
|
||||
// and separation of handling file IO versus API (programmatic) compilation.
|
||||
struct ShaderCompUnit {
|
||||
EShLanguage stage;
|
||||
std::string fileName;
|
||||
char** text; // memory owned/managed externally
|
||||
};
|
||||
|
||||
//
|
||||
// For linking mode: Will independently parse each item in the worklist, but then put them
|
||||
// in the same program and link them together.
|
||||
// For linking mode: Will independently parse each compilation unit, but then put them
|
||||
// in the same program and link them together, making at most one linked module per
|
||||
// pipeline stage.
|
||||
//
|
||||
// Uses the new C++ interface instead of the old handle-based interface.
|
||||
//
|
||||
void CompileAndLinkShaders()
|
||||
|
||||
void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
|
||||
{
|
||||
// keep track of what to free
|
||||
std::list<glslang::TShader*> shaders;
|
||||
|
||||
|
||||
EShMessages messages = EShMsgDefault;
|
||||
SetMessageOptions(messages);
|
||||
|
||||
|
|
@ -677,22 +689,14 @@ void CompileAndLinkShaders()
|
|||
//
|
||||
|
||||
glslang::TProgram& program = *new glslang::TProgram;
|
||||
glslang::TWorkItem* workItem;
|
||||
while (Worklist.remove(workItem)) {
|
||||
EShLanguage stage = FindLanguage(workItem->name);
|
||||
glslang::TShader* shader = new glslang::TShader(stage);
|
||||
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);
|
||||
shaders.push_back(shader);
|
||||
|
||||
char** shaderStrings = ReadFileData(workItem->name.c_str());
|
||||
if (! shaderStrings) {
|
||||
usage();
|
||||
delete &program;
|
||||
|
||||
return;
|
||||
}
|
||||
const int defaultVersion = Options & EOptionDefaultDesktop? 110: 100;
|
||||
|
||||
shader->setStrings(shaderStrings, 1);
|
||||
if (Options & EOptionOutputPreprocessed) {
|
||||
std::string str;
|
||||
if (shader->preprocess(&Resources, defaultVersion, ENoProfile, false, false,
|
||||
|
|
@ -703,7 +707,6 @@ void CompileAndLinkShaders()
|
|||
}
|
||||
StderrIfNonEmpty(shader->getInfoLog());
|
||||
StderrIfNonEmpty(shader->getInfoDebugLog());
|
||||
FreeFileData(shaderStrings);
|
||||
continue;
|
||||
}
|
||||
if (! shader->parse(&Resources, defaultVersion, false, messages))
|
||||
|
|
@ -711,13 +714,12 @@ void CompileAndLinkShaders()
|
|||
|
||||
program.addShader(shader);
|
||||
|
||||
if (! (Options & EOptionSuppressInfolog)) {
|
||||
PutsIfNonEmpty(workItem->name.c_str());
|
||||
if (! (Options & EOptionSuppressInfolog) &&
|
||||
! (Options & EOptionMemoryLeakMode)) {
|
||||
PutsIfNonEmpty(compUnit.fileName.c_str());
|
||||
PutsIfNonEmpty(shader->getInfoLog());
|
||||
PutsIfNonEmpty(shader->getInfoDebugLog());
|
||||
}
|
||||
|
||||
FreeFileData(shaderStrings);
|
||||
}
|
||||
|
||||
//
|
||||
|
|
@ -727,7 +729,8 @@ void CompileAndLinkShaders()
|
|||
if (! (Options & EOptionOutputPreprocessed) && ! program.link(messages))
|
||||
LinkFailed = true;
|
||||
|
||||
if (! (Options & EOptionSuppressInfolog)) {
|
||||
if (! (Options & EOptionSuppressInfolog) &&
|
||||
! (Options & EOptionMemoryLeakMode)) {
|
||||
PutsIfNonEmpty(program.getInfoLog());
|
||||
PutsIfNonEmpty(program.getInfoDebugLog());
|
||||
}
|
||||
|
|
@ -745,10 +748,14 @@ void CompileAndLinkShaders()
|
|||
if (program.getIntermediate((EShLanguage)stage)) {
|
||||
std::vector<unsigned int> spirv;
|
||||
glslang::GlslangToSpv(*program.getIntermediate((EShLanguage)stage), spirv);
|
||||
glslang::OutputSpv(spirv, GetBinaryName((EShLanguage)stage));
|
||||
if (Options & EOptionHumanReadableSpv) {
|
||||
spv::Parameterize();
|
||||
spv::Disassemble(std::cout, spirv);
|
||||
|
||||
// Dump the spv to a file or stdout, etc., but only if not doing
|
||||
// memory/perf testing, as it's not internal to programmatic use.
|
||||
if (! (Options & EOptionMemoryLeakMode)) {
|
||||
glslang::OutputSpv(spirv, GetBinaryName((EShLanguage)stage));
|
||||
if (Options & EOptionHumanReadableSpv) {
|
||||
spv::Disassemble(std::cout, spirv);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -766,6 +773,59 @@ void CompileAndLinkShaders()
|
|||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Do file IO part of compile and link, handing off the pure
|
||||
// API/programmatic mode to CompileAndLinkShaderUnits(), which can
|
||||
// be put in a loop for testing memory footprint and performance.
|
||||
//
|
||||
// This is just for linking mode: meaning all the shaders will be put into the
|
||||
// the same program linked together.
|
||||
//
|
||||
// This means there are a limited number of work items (not multi-threading mode)
|
||||
// and that the point is testing at the linking level. Hence, to enable
|
||||
// performance and memory testing, the actual compile/link can be put in
|
||||
// a loop, independent of processing the work items and file IO.
|
||||
//
|
||||
void CompileAndLinkShaderFiles()
|
||||
{
|
||||
std::vector<ShaderCompUnit> compUnits;
|
||||
|
||||
// Transfer all the work items from to a simple list of
|
||||
// of compilation units. (We don't care about the thread
|
||||
// work-item distribution properties in this path, which
|
||||
// is okay due to the limited number of shaders, know since
|
||||
// they are all getting linked together.)
|
||||
glslang::TWorkItem* workItem;
|
||||
while (Worklist.remove(workItem)) {
|
||||
ShaderCompUnit compUnit = {
|
||||
FindLanguage(workItem->name),
|
||||
workItem->name,
|
||||
ReadFileData(workItem->name.c_str())
|
||||
};
|
||||
|
||||
if (! compUnit.text) {
|
||||
usage();
|
||||
return;
|
||||
}
|
||||
|
||||
compUnits.push_back(compUnit);
|
||||
}
|
||||
|
||||
// Actual call to programmatic processing of compile and link,
|
||||
// in a loop for testing memory and performance. This part contains
|
||||
// all the perf/memory that a programmatic consumer will care about.
|
||||
for (int i = 0; i < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++i) {
|
||||
for (int j = 0; j < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++j)
|
||||
CompileAndLinkShaderUnits(compUnits);
|
||||
|
||||
if (Options & EOptionMemoryLeakMode)
|
||||
glslang::OS_DumpMemoryCounters();
|
||||
}
|
||||
|
||||
for (auto it = compUnits.begin(); it != compUnits.end(); ++it)
|
||||
FreeFileData(it->text);
|
||||
}
|
||||
|
||||
int C_DECL main(int argc, char* argv[])
|
||||
{
|
||||
ProcessArguments(argc, argv);
|
||||
|
|
@ -803,8 +863,13 @@ int C_DECL main(int argc, char* argv[])
|
|||
if (Options & EOptionLinkProgram ||
|
||||
Options & EOptionOutputPreprocessed) {
|
||||
glslang::InitializeProcess();
|
||||
CompileAndLinkShaders();
|
||||
CompileAndLinkShaderFiles();
|
||||
glslang::FinalizeProcess();
|
||||
for (int w = 0; w < NumWorkItems; ++w) {
|
||||
if (Work[w]) {
|
||||
delete Work[w];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ShInitialize();
|
||||
|
||||
|
|
@ -837,6 +902,8 @@ int C_DECL main(int argc, char* argv[])
|
|||
ShFinalize();
|
||||
}
|
||||
|
||||
delete[] Work;
|
||||
|
||||
if (CompileFailed)
|
||||
return EFailCompile;
|
||||
if (LinkFailed)
|
||||
|
|
|
|||
|
|
@ -120,7 +120,8 @@ namespace {
|
|||
if (fp.fail())
|
||||
errHandler(std::string("error opening file for write: ") + outFile);
|
||||
|
||||
for (auto word : spv) {
|
||||
for (auto it = spv.cbegin(); it != spv.cend(); ++it) {
|
||||
SpvWord word = *it;
|
||||
fp.write((char *)&word, sizeof(word));
|
||||
if (fp.fail())
|
||||
errHandler(std::string("error writing file: ") + outFile);
|
||||
|
|
@ -157,7 +158,8 @@ namespace {
|
|||
void execute(const std::vector<std::string>& inputFile, const std::string& outputDir,
|
||||
int opts, int verbosity)
|
||||
{
|
||||
for (const auto& filename : inputFile) {
|
||||
for (auto it = inputFile.cbegin(); it != inputFile.cend(); ++it) {
|
||||
const std::string &filename = *it;
|
||||
std::vector<SpvWord> spv;
|
||||
read(spv, filename, verbosity);
|
||||
spv::spirvbin_t(verbosity).remap(spv, opts);
|
||||
|
|
|
|||
|
|
@ -1,28 +1,28 @@
|
|||
MaxLights 32
|
||||
MaxClipPlanes 6
|
||||
MaxTextureUnits 32
|
||||
MaxTextureCoords 32
|
||||
MaxVertexAttribs 8
|
||||
MaxVertexUniformComponents 4096
|
||||
MaxVaryingFloats 64
|
||||
MaxVertexTextureImageUnits 0
|
||||
MaxCombinedTextureImageUnits 8
|
||||
MaxTextureImageUnits 8
|
||||
MaxFragmentUniformComponents 4096
|
||||
MaxDrawBuffers 1
|
||||
MaxVertexUniformVectors 16
|
||||
MaxVaryingVectors 8
|
||||
MaxFragmentUniformVectors 16
|
||||
MaxVertexOutputVectors 16
|
||||
MaxFragmentInputVectors 15
|
||||
MinProgramTexelOffset -8
|
||||
MaxProgramTexelOffset 7
|
||||
nonInductiveForLoops 0
|
||||
whileLoops 0
|
||||
doWhileLoops 0
|
||||
generalUniformIndexing 0
|
||||
generalAttributeMatrixVectorIndexing 0
|
||||
generalVaryingIndexing 0
|
||||
generalSamplerIndexing 0
|
||||
generalVariableIndexing 0
|
||||
generalConstantMatrixVectorIndexing 0
|
||||
MaxLights 32
|
||||
MaxClipPlanes 6
|
||||
MaxTextureUnits 32
|
||||
MaxTextureCoords 32
|
||||
MaxVertexAttribs 8
|
||||
MaxVertexUniformComponents 4096
|
||||
MaxVaryingFloats 64
|
||||
MaxVertexTextureImageUnits 0
|
||||
MaxCombinedTextureImageUnits 8
|
||||
MaxTextureImageUnits 8
|
||||
MaxFragmentUniformComponents 4096
|
||||
MaxDrawBuffers 1
|
||||
MaxVertexUniformVectors 16
|
||||
MaxVaryingVectors 8
|
||||
MaxFragmentUniformVectors 16
|
||||
MaxVertexOutputVectors 16
|
||||
MaxFragmentInputVectors 15
|
||||
MinProgramTexelOffset -8
|
||||
MaxProgramTexelOffset 7
|
||||
nonInductiveForLoops 0
|
||||
whileLoops 0
|
||||
doWhileLoops 0
|
||||
generalUniformIndexing 0
|
||||
generalAttributeMatrixVectorIndexing 0
|
||||
generalVaryingIndexing 0
|
||||
generalSamplerIndexing 0
|
||||
generalVariableIndexing 0
|
||||
generalConstantMatrixVectorIndexing 0
|
||||
|
|
|
|||
|
|
@ -139,6 +139,14 @@ void foo2()
|
|||
bool b = any(lessThan(v4, attv4)); // tests aggregate arg to unary built-in
|
||||
}
|
||||
|
||||
void noise()
|
||||
{
|
||||
float f1 = noise1(1.0);
|
||||
vec2 f2 = noise2(vec2(1.0));
|
||||
vec3 f3 = noise3(vec3(1.0));
|
||||
vec4 f4 = noise4(vec4(1.0));
|
||||
}
|
||||
|
||||
// version 130 features
|
||||
|
||||
uniform int c;
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ patch out vec4 patchOut; // ERROR
|
|||
void foo24()
|
||||
{
|
||||
dvec3 df, di;
|
||||
df = modf(outp.xyz, di);
|
||||
df = modf(dvec3(outp.xyz), di);
|
||||
}
|
||||
|
||||
in float in1;
|
||||
|
|
@ -185,3 +185,13 @@ void qlod()
|
|||
}
|
||||
|
||||
struct SKeyMem { int precise; } KeyMem; // ERROR, keyword can't be a member
|
||||
|
||||
uniform uint uu;
|
||||
out int iout;
|
||||
|
||||
void bitwiseConv()
|
||||
{
|
||||
iout = uu & i;
|
||||
iout += uu ^ i;
|
||||
iout += i | uu;
|
||||
}
|
||||
|
|
|
|||
213
Test/400.geom
213
Test/400.geom
|
|
@ -115,3 +115,216 @@ void qlod()
|
|||
lod = textureQueryLod(samp1D, pf); // ERROR, only in fragment
|
||||
lod = textureQueryLod(samp2Ds, pf2); // ERROR, only in fragment
|
||||
}
|
||||
|
||||
void doubles()
|
||||
{
|
||||
double doublev;
|
||||
dvec2 dvec2v;
|
||||
dvec3 dvec3v;
|
||||
dvec4 dvec4v;
|
||||
|
||||
bool boolv;
|
||||
bvec2 bvec2v;
|
||||
bvec3 bvec3v;
|
||||
bvec4 bvec4v;
|
||||
|
||||
doublev = sqrt(2.9);
|
||||
dvec2v = sqrt(dvec2(2.7));
|
||||
dvec3v = sqrt(dvec3(2.0));
|
||||
dvec4v = sqrt(dvec4(2.1));
|
||||
|
||||
doublev += inversesqrt(doublev);
|
||||
dvec2v += inversesqrt(dvec2v);
|
||||
dvec3v += inversesqrt(dvec3v);
|
||||
dvec4v += inversesqrt(dvec4v);
|
||||
|
||||
doublev += abs(doublev);
|
||||
dvec2v += abs(dvec2v);
|
||||
dvec3v += abs(dvec3v);
|
||||
dvec4v += abs(dvec4v);
|
||||
|
||||
doublev += sign(doublev);
|
||||
dvec2v += sign(dvec2v);
|
||||
dvec3v += sign(dvec3v);
|
||||
dvec4v += sign(dvec4v);
|
||||
|
||||
doublev += floor(doublev);
|
||||
dvec2v += floor(dvec2v);
|
||||
dvec3v += floor(dvec3v);
|
||||
dvec4v += floor(dvec4v);
|
||||
|
||||
doublev += trunc(doublev);
|
||||
dvec2v += trunc(dvec2v);
|
||||
dvec3v += trunc(dvec3v);
|
||||
dvec4v += trunc(dvec4v);
|
||||
|
||||
doublev += round(doublev);
|
||||
dvec2v += round(dvec2v);
|
||||
dvec3v += round(dvec3v);
|
||||
dvec4v += round(dvec4v);
|
||||
|
||||
doublev += roundEven(doublev);
|
||||
dvec2v += roundEven(dvec2v);
|
||||
dvec3v += roundEven(dvec3v);
|
||||
dvec4v += roundEven(dvec4v);
|
||||
|
||||
doublev += ceil(doublev);
|
||||
dvec2v += ceil(dvec2v);
|
||||
dvec3v += ceil(dvec3v);
|
||||
dvec4v += ceil(dvec4v);
|
||||
|
||||
doublev += fract(doublev);
|
||||
dvec2v += fract(dvec2v);
|
||||
dvec3v += fract(dvec3v);
|
||||
dvec4v += fract(dvec4v);
|
||||
|
||||
doublev += mod(doublev, doublev);
|
||||
dvec2v += mod(dvec2v, doublev);
|
||||
dvec3v += mod(dvec3v, doublev);
|
||||
dvec4v += mod(dvec4v, doublev);
|
||||
dvec2v += mod(dvec2v, dvec2v);
|
||||
dvec3v += mod(dvec3v, dvec3v);
|
||||
dvec4v += mod(dvec4v, dvec4v);
|
||||
|
||||
doublev += modf(doublev, doublev);
|
||||
dvec2v += modf(dvec2v, dvec2v);
|
||||
dvec3v += modf(dvec3v, dvec3v);
|
||||
dvec4v += modf(dvec4v, dvec4v);
|
||||
|
||||
doublev += min(doublev, doublev);
|
||||
dvec2v += min(dvec2v, doublev);
|
||||
dvec3v += min(dvec3v, doublev);
|
||||
dvec4v += min(dvec4v, doublev);
|
||||
dvec2v += min(dvec2v, dvec2v);
|
||||
dvec3v += min(dvec3v, dvec3v);
|
||||
dvec4v += min(dvec4v, dvec4v);
|
||||
|
||||
doublev += max(doublev, doublev);
|
||||
dvec2v += max(dvec2v, doublev);
|
||||
dvec3v += max(dvec3v, doublev);
|
||||
dvec4v += max(dvec4v, doublev);
|
||||
dvec2v += max(dvec2v, dvec2v);
|
||||
dvec3v += max(dvec3v, dvec3v);
|
||||
dvec4v += max(dvec4v, dvec4v);
|
||||
|
||||
doublev += clamp(doublev, doublev, doublev);
|
||||
dvec2v += clamp(dvec2v, doublev, doublev);
|
||||
dvec3v += clamp(dvec3v, doublev, doublev);
|
||||
dvec4v += clamp(dvec4v, doublev, doublev);
|
||||
dvec2v += clamp(dvec2v, dvec2v, dvec2v);
|
||||
dvec3v += clamp(dvec3v, dvec3v, dvec3v);
|
||||
dvec4v += clamp(dvec4v, dvec4v, dvec4v);
|
||||
|
||||
doublev += mix(doublev, doublev, doublev);
|
||||
dvec2v += mix(dvec2v, dvec2v, doublev);
|
||||
dvec3v += mix(dvec3v, dvec3v, doublev);
|
||||
dvec4v += mix(dvec4v, dvec4v, doublev);
|
||||
dvec2v += mix(dvec2v, dvec2v, dvec2v);
|
||||
dvec3v += mix(dvec3v, dvec3v, dvec3v);
|
||||
dvec4v += mix(dvec4v, dvec4v, dvec4v);
|
||||
doublev += mix(doublev, doublev, boolv);
|
||||
dvec2v += mix(dvec2v, dvec2v, bvec2v);
|
||||
dvec3v += mix(dvec3v, dvec3v, bvec3v);
|
||||
dvec4v += mix(dvec4v, dvec4v, bvec4v);
|
||||
|
||||
doublev += step(doublev, doublev);
|
||||
dvec2v += step(dvec2v, dvec2v);
|
||||
dvec3v += step(dvec3v, dvec3v);
|
||||
dvec4v += step(dvec4v, dvec4v);
|
||||
dvec2v += step(doublev, dvec2v);
|
||||
dvec3v += step(doublev, dvec3v);
|
||||
dvec4v += step(doublev, dvec4v);
|
||||
|
||||
doublev += smoothstep(doublev, doublev, doublev);
|
||||
dvec2v += smoothstep(dvec2v, dvec2v, dvec2v);
|
||||
dvec3v += smoothstep(dvec3v, dvec3v, dvec3v);
|
||||
dvec4v += smoothstep(dvec4v, dvec4v, dvec4v);
|
||||
dvec2v += smoothstep(doublev, doublev, dvec2v);
|
||||
dvec3v += smoothstep(doublev, doublev, dvec3v);
|
||||
dvec4v += smoothstep(doublev, doublev, dvec4v);
|
||||
|
||||
boolv = isnan(doublev);
|
||||
bvec2v = isnan(dvec2v);
|
||||
bvec3v = isnan(dvec3v);
|
||||
bvec4v = isnan(dvec4v);
|
||||
|
||||
boolv = boolv ? isinf(doublev) : false;
|
||||
bvec2v = boolv ? isinf(dvec2v) : bvec2(false);
|
||||
bvec3v = boolv ? isinf(dvec3v) : bvec3(false);
|
||||
bvec4v = boolv ? isinf(dvec4v) : bvec4(false);
|
||||
|
||||
doublev += length(doublev);
|
||||
doublev += length(dvec2v);
|
||||
doublev += length(dvec3v);
|
||||
doublev += length(dvec4v);
|
||||
|
||||
doublev += distance(doublev, doublev);
|
||||
doublev += distance(dvec2v, dvec2v);
|
||||
doublev += distance(dvec3v, dvec3v);
|
||||
doublev += distance(dvec4v, dvec4v);
|
||||
|
||||
doublev += dot(doublev, doublev);
|
||||
doublev += dot(dvec2v, dvec2v);
|
||||
doublev += dot(dvec3v, dvec3v);
|
||||
doublev += dot(dvec4v, dvec4v);
|
||||
|
||||
dvec3v += cross(dvec3v, dvec3v);
|
||||
|
||||
doublev += normalize(doublev);
|
||||
dvec2v += normalize(dvec2v);
|
||||
dvec3v += normalize(dvec3v);
|
||||
dvec4v += normalize(dvec4v);
|
||||
|
||||
doublev += faceforward(doublev, doublev, doublev);
|
||||
dvec2v += faceforward(dvec2v, dvec2v, dvec2v);
|
||||
dvec3v += faceforward(dvec3v, dvec3v, dvec3v);
|
||||
dvec4v += faceforward(dvec4v, dvec4v, dvec4v);
|
||||
|
||||
doublev += reflect(doublev, doublev);
|
||||
dvec2v += reflect(dvec2v, dvec2v);
|
||||
dvec3v += reflect(dvec3v, dvec3v);
|
||||
dvec4v += reflect(dvec4v, dvec4v);
|
||||
|
||||
doublev += refract(doublev, doublev, doublev);
|
||||
dvec2v += refract(dvec2v, dvec2v, doublev);
|
||||
dvec3v += refract(dvec3v, dvec3v, doublev);
|
||||
dvec4v += refract(dvec4v, dvec4v, doublev);
|
||||
|
||||
dmat2 dmat2v = outerProduct(dvec2v, dvec2v);
|
||||
dmat3 dmat3v = outerProduct(dvec3v, dvec3v);
|
||||
dmat4 dmat4v = outerProduct(dvec4v, dvec4v);
|
||||
dmat2x3 dmat2x3v = outerProduct(dvec3v, dvec2v);
|
||||
dmat3x2 dmat3x2v = outerProduct(dvec2v, dvec3v);
|
||||
dmat2x4 dmat2x4v = outerProduct(dvec4v, dvec2v);
|
||||
dmat4x2 dmat4x2v = outerProduct(dvec2v, dvec4v);
|
||||
dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v);
|
||||
dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v);
|
||||
|
||||
dmat2v *= matrixCompMult(dmat2v, dmat2v);
|
||||
dmat3v *= matrixCompMult(dmat3v, dmat3v);
|
||||
dmat4v *= matrixCompMult(dmat4v, dmat4v);
|
||||
dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v);
|
||||
dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v);
|
||||
dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v);
|
||||
dmat3x4v = matrixCompMult(dmat3x4v, dmat3x4v);
|
||||
dmat4x2v = matrixCompMult(dmat4x2v, dmat4x2v);
|
||||
dmat4x3v = matrixCompMult(dmat4x3v, dmat4x3v);
|
||||
|
||||
dmat2v *= transpose(dmat2v);
|
||||
dmat3v *= transpose(dmat3v);
|
||||
dmat4v *= transpose(dmat4v);
|
||||
dmat2x3v = transpose(dmat3x2v);
|
||||
dmat3x2v = transpose(dmat2x3v);
|
||||
dmat2x4v = transpose(dmat4x2v);
|
||||
dmat4x2v = transpose(dmat2x4v);
|
||||
dmat3x4v = transpose(dmat4x3v);
|
||||
dmat4x3v = transpose(dmat3x4v);
|
||||
|
||||
doublev += determinant(dmat2v);
|
||||
doublev += determinant(dmat3v);
|
||||
doublev += determinant(dmat4v);
|
||||
|
||||
dmat2v *= inverse(dmat2v);
|
||||
dmat3v *= inverse(dmat3v);
|
||||
dmat4v *= inverse(dmat4v);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ uniform bvec4 ub41, ub42;
|
|||
uniform float uf;
|
||||
uniform int ui;
|
||||
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
uniform uvec4 uuv4;
|
||||
uniform unsigned int uui;
|
||||
#endif
|
||||
uniform uint uui;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
|
|
@ -19,9 +19,9 @@ void main()
|
|||
bool b;
|
||||
bvec4 bv4;
|
||||
int i;
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
uint u;
|
||||
#endif
|
||||
|
||||
|
||||
// floating point
|
||||
v = radians(uv4);
|
||||
|
|
@ -51,37 +51,37 @@ void main()
|
|||
v += sign(v);
|
||||
v += floor(v);
|
||||
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
v += trunc(v);
|
||||
v += round(v);
|
||||
v += roundEven(v);
|
||||
#endif
|
||||
|
||||
|
||||
v += ceil(v);
|
||||
v += fract(v);
|
||||
v += mod(v, v);
|
||||
v += mod(v, v.x);
|
||||
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
v += modf(v, v);
|
||||
#endif
|
||||
|
||||
|
||||
v += min(v, uv4);
|
||||
v += max(v, uv4);
|
||||
v += clamp(v, uv4, uv4);
|
||||
v += mix(v,v,v);
|
||||
|
||||
#ifdef TEST_POST_110
|
||||
v += mix(v,v,ub);
|
||||
v += intBitsToFloat(v);
|
||||
v += uintBitsToFloat(v);
|
||||
v += fma(v);
|
||||
|
||||
v += mix(v,v,bv4);
|
||||
v += intBitsToFloat(ivec4(i));
|
||||
v += uintBitsToFloat(uv4);
|
||||
v += fma(v,v,v);
|
||||
v += frexp(v);
|
||||
v += ldexp(v);
|
||||
v += unpackUnorm2x16(v);
|
||||
v += unpackUnorm4x8(v);
|
||||
v += unpackSnorm4x8(v);
|
||||
#endif
|
||||
|
||||
|
||||
v += step(v,v);
|
||||
v += smoothstep(v,v,v);
|
||||
|
|
@ -96,7 +96,7 @@ void main()
|
|||
v += fwidth(v);
|
||||
//noise*(v);
|
||||
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
// signed integer
|
||||
i += abs(ui);
|
||||
i += sign(i);
|
||||
|
|
@ -118,15 +118,15 @@ void main()
|
|||
u += floatsBitToInt(v);
|
||||
u += packUnorm2x16(v);
|
||||
u += packUnorm4x8(v);
|
||||
u += packSnorm4x8(v);
|
||||
u += floatBitsToUInt(v);
|
||||
#endif
|
||||
i += uui & i; // ERRORs, no int/uint conversions before 400
|
||||
i += uui ^ i;
|
||||
i += i | uui;
|
||||
|
||||
// bool
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
b = isnan(uf);
|
||||
b = isinf(v);
|
||||
#endif
|
||||
b = isinf(v.y);
|
||||
|
||||
b = any(lessThan(v, uv4));
|
||||
b = (b && any(lessThanEqual(v, uv4)));
|
||||
b = (b && any(greaterThan(v, uv4)));
|
||||
|
|
|
|||
|
|
@ -45,39 +45,39 @@ ERROR: 0:108: 'overloadE' : no matching overloaded function found
|
|||
ERROR: 0:111: 'overloadE' : no matching overloaded function found
|
||||
ERROR: 0:117: 'overloadF' : no matching overloaded function found
|
||||
ERROR: 0:121: 'gl_TexCoord array size' : must be less than gl_MaxTextureCoords (32)
|
||||
ERROR: 0:157: 'switch' : Reserved word.
|
||||
ERROR: 0:163: 'default' : Reserved word.
|
||||
ERROR: 0:157: 'switch statements' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:168: 'bit shift left' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:168: 'bit shift right' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:168: 'bitwise and' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:168: 'bitwise inclusive or' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:171: 'modf' : no matching overloaded function found
|
||||
ERROR: 0:171: '=' : cannot convert from 'const float' to 'temp 3-component vector of float'
|
||||
ERROR: 0:172: 'trunc' : no matching overloaded function found
|
||||
ERROR: 0:173: 'round' : no matching overloaded function found
|
||||
ERROR: 0:173: '=' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 0:174: 'roundEven' : no matching overloaded function found
|
||||
ERROR: 0:174: '=' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 0:175: 'isnan' : no matching overloaded function found
|
||||
ERROR: 0:175: '=' : cannot convert from 'const float' to 'temp 2-component vector of bool'
|
||||
ERROR: 0:176: 'isinf' : no matching overloaded function found
|
||||
ERROR: 0:176: '=' : cannot convert from 'const float' to 'temp 4-component vector of bool'
|
||||
ERROR: 0:178: 'sinh' : no matching overloaded function found
|
||||
ERROR: 0:179: 'cosh' : no matching overloaded function found
|
||||
ERROR: 0:179: 'tanh' : no matching overloaded function found
|
||||
ERROR: 0:180: 'c4D' : undeclared identifier
|
||||
ERROR: 0:180: 'asinh' : no matching overloaded function found
|
||||
ERROR: 0:180: 'acosh' : no matching overloaded function found
|
||||
ERROR: 0:181: 'atanh' : no matching overloaded function found
|
||||
ERROR: 0:183: 'gl_VertexID' : undeclared identifier
|
||||
ERROR: 0:183: '=' : cannot convert from 'temp float' to 'temp int'
|
||||
ERROR: 0:184: 'gl_ClipDistance' : undeclared identifier
|
||||
ERROR: 0:184: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
|
||||
ERROR: 0:184: 'assign' : l-value required (can't modify a const)
|
||||
ERROR: 0:190: 'token pasting (##)' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:190: '##' : token pasting not implemented (internal error)
|
||||
ERROR: 0:190: '' : syntax error
|
||||
ERROR: 0:165: 'switch' : Reserved word.
|
||||
ERROR: 0:171: 'default' : Reserved word.
|
||||
ERROR: 0:165: 'switch statements' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:176: 'bit shift left' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:176: 'bit shift right' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:176: 'bitwise and' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:176: 'bitwise inclusive or' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:179: 'modf' : no matching overloaded function found
|
||||
ERROR: 0:179: '=' : cannot convert from 'const float' to 'temp 3-component vector of float'
|
||||
ERROR: 0:180: 'trunc' : no matching overloaded function found
|
||||
ERROR: 0:181: 'round' : no matching overloaded function found
|
||||
ERROR: 0:181: '=' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 0:182: 'roundEven' : no matching overloaded function found
|
||||
ERROR: 0:182: '=' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 0:183: 'isnan' : no matching overloaded function found
|
||||
ERROR: 0:183: '=' : cannot convert from 'const float' to 'temp 2-component vector of bool'
|
||||
ERROR: 0:184: 'isinf' : no matching overloaded function found
|
||||
ERROR: 0:184: '=' : cannot convert from 'const float' to 'temp 4-component vector of bool'
|
||||
ERROR: 0:186: 'sinh' : no matching overloaded function found
|
||||
ERROR: 0:187: 'cosh' : no matching overloaded function found
|
||||
ERROR: 0:187: 'tanh' : no matching overloaded function found
|
||||
ERROR: 0:188: 'c4D' : undeclared identifier
|
||||
ERROR: 0:188: 'asinh' : no matching overloaded function found
|
||||
ERROR: 0:188: 'acosh' : no matching overloaded function found
|
||||
ERROR: 0:189: 'atanh' : no matching overloaded function found
|
||||
ERROR: 0:191: 'gl_VertexID' : undeclared identifier
|
||||
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.
|
||||
|
||||
|
||||
|
|
@ -314,66 +314,99 @@ ERROR: node is still EOpNull!
|
|||
0:139 Compare Less Than (global 4-component vector of bool)
|
||||
0:139 'v4' (temp 4-component vector of float)
|
||||
0:139 'attv4' (in 4-component vector of float)
|
||||
0:154 Function Definition: foo213( (global void)
|
||||
0:154 Function Parameters:
|
||||
0:156 Sequence
|
||||
0:156 Sequence
|
||||
0:156 move second child to first child (temp float)
|
||||
0:156 'f' (temp float)
|
||||
0:156 Constant:
|
||||
0:156 3.000000
|
||||
0:157 switch
|
||||
0:157 condition
|
||||
0:157 'c' (uniform int)
|
||||
0:157 body
|
||||
0:157 Sequence
|
||||
0:158 case: with expression
|
||||
0:158 Constant:
|
||||
0:158 1 (const int)
|
||||
0:142 Function Definition: noise( (global void)
|
||||
0:142 Function Parameters:
|
||||
0:144 Sequence
|
||||
0:144 Sequence
|
||||
0:144 move second child to first child (temp float)
|
||||
0:144 'f1' (temp float)
|
||||
0:144 noise (global float)
|
||||
0:144 Constant:
|
||||
0:144 1.000000
|
||||
0:145 Sequence
|
||||
0:145 move second child to first child (temp 2-component vector of float)
|
||||
0:145 'f2' (temp 2-component vector of float)
|
||||
0:145 noise (global 2-component vector of float)
|
||||
0:145 Constant:
|
||||
0:145 1.000000
|
||||
0:145 1.000000
|
||||
0:146 Sequence
|
||||
0:146 move second child to first child (temp 3-component vector of float)
|
||||
0:146 'f3' (temp 3-component vector of float)
|
||||
0:146 noise (global 3-component vector of float)
|
||||
0:146 Constant:
|
||||
0:146 1.000000
|
||||
0:146 1.000000
|
||||
0:146 1.000000
|
||||
0:147 Sequence
|
||||
0:147 move second child to first child (temp 4-component vector of float)
|
||||
0:147 'f4' (temp 4-component vector of float)
|
||||
0:147 noise (global 4-component vector of float)
|
||||
0:147 Constant:
|
||||
0:147 1.000000
|
||||
0:147 1.000000
|
||||
0:147 1.000000
|
||||
0:147 1.000000
|
||||
0:162 Function Definition: foo213( (global void)
|
||||
0:162 Function Parameters:
|
||||
0:164 Sequence
|
||||
0:164 Sequence
|
||||
0:164 move second child to first child (temp float)
|
||||
0:164 'f' (temp float)
|
||||
0:164 Constant:
|
||||
0:164 3.000000
|
||||
0:165 switch
|
||||
0:165 condition
|
||||
0:165 'c' (uniform int)
|
||||
0:165 body
|
||||
0:165 Sequence
|
||||
0:166 case: with expression
|
||||
0:166 Constant:
|
||||
0:166 1 (const int)
|
||||
0:? Sequence
|
||||
0:159 move second child to first child (temp float)
|
||||
0:159 'f' (temp float)
|
||||
0:159 sine (global float)
|
||||
0:159 'f' (temp float)
|
||||
0:160 Branch: Break
|
||||
0:161 case: with expression
|
||||
0:161 Constant:
|
||||
0:161 2 (const int)
|
||||
0:167 move second child to first child (temp float)
|
||||
0:167 'f' (temp float)
|
||||
0:167 sine (global float)
|
||||
0:167 'f' (temp float)
|
||||
0:168 Branch: Break
|
||||
0:169 case: with expression
|
||||
0:169 Constant:
|
||||
0:169 2 (const int)
|
||||
0:? Sequence
|
||||
0:162 move second child to first child (temp float)
|
||||
0:162 'f' (temp float)
|
||||
0:162 component-wise multiply (temp float)
|
||||
0:162 'f' (temp float)
|
||||
0:162 'f' (temp float)
|
||||
0:163 default:
|
||||
0:170 move second child to first child (temp float)
|
||||
0:170 'f' (temp float)
|
||||
0:170 component-wise multiply (temp float)
|
||||
0:170 'f' (temp float)
|
||||
0:170 'f' (temp float)
|
||||
0:171 default:
|
||||
0:? Sequence
|
||||
0:164 move second child to first child (temp float)
|
||||
0:164 'f' (temp float)
|
||||
0:164 Constant:
|
||||
0:164 3.000000
|
||||
0:168 inclusive-or (temp int)
|
||||
0:168 left-shift (temp int)
|
||||
0:168 'i' (temp int)
|
||||
0:168 Constant:
|
||||
0:168 3 (const int)
|
||||
0:168 Constant:
|
||||
0:168 69 (const int)
|
||||
0:172 Sequence
|
||||
0:172 move second child to first child (temp float)
|
||||
0:172 't' (temp float)
|
||||
0:172 Constant:
|
||||
0:172 0.000000
|
||||
0:178 Constant:
|
||||
0:178 0.000000
|
||||
0:180 Constant:
|
||||
0:180 0.000000
|
||||
0:181 Constant:
|
||||
0:181 0.000000
|
||||
0:184 move second child to first child (temp float)
|
||||
0:184 Constant:
|
||||
0:184 0.000000
|
||||
0:184 Constant:
|
||||
0:184 0.300000
|
||||
0:172 move second child to first child (temp float)
|
||||
0:172 'f' (temp float)
|
||||
0:172 Constant:
|
||||
0:172 3.000000
|
||||
0:176 inclusive-or (temp int)
|
||||
0:176 left-shift (temp int)
|
||||
0:176 'i' (temp int)
|
||||
0:176 Constant:
|
||||
0:176 3 (const int)
|
||||
0:176 Constant:
|
||||
0:176 69 (const int)
|
||||
0:180 Sequence
|
||||
0:180 move second child to first child (temp float)
|
||||
0:180 't' (temp float)
|
||||
0:180 Constant:
|
||||
0:180 0.000000
|
||||
0:186 Constant:
|
||||
0:186 0.000000
|
||||
0:188 Constant:
|
||||
0:188 0.000000
|
||||
0:189 Constant:
|
||||
0:189 0.000000
|
||||
0:192 move second child to first child (temp float)
|
||||
0:192 Constant:
|
||||
0:192 0.000000
|
||||
0:192 Constant:
|
||||
0:192 0.300000
|
||||
0:? Linker Objects
|
||||
0:? 'i' (in 4-component vector of float)
|
||||
0:? 'o' (smooth out 4-component vector of float)
|
||||
|
|
@ -633,66 +666,99 @@ ERROR: node is still EOpNull!
|
|||
0:139 Compare Less Than (global 4-component vector of bool)
|
||||
0:139 'v4' (temp 4-component vector of float)
|
||||
0:139 'attv4' (in 4-component vector of float)
|
||||
0:154 Function Definition: foo213( (global void)
|
||||
0:154 Function Parameters:
|
||||
0:156 Sequence
|
||||
0:156 Sequence
|
||||
0:156 move second child to first child (temp float)
|
||||
0:156 'f' (temp float)
|
||||
0:156 Constant:
|
||||
0:156 3.000000
|
||||
0:157 switch
|
||||
0:157 condition
|
||||
0:157 'c' (uniform int)
|
||||
0:157 body
|
||||
0:157 Sequence
|
||||
0:158 case: with expression
|
||||
0:158 Constant:
|
||||
0:158 1 (const int)
|
||||
0:142 Function Definition: noise( (global void)
|
||||
0:142 Function Parameters:
|
||||
0:144 Sequence
|
||||
0:144 Sequence
|
||||
0:144 move second child to first child (temp float)
|
||||
0:144 'f1' (temp float)
|
||||
0:144 noise (global float)
|
||||
0:144 Constant:
|
||||
0:144 1.000000
|
||||
0:145 Sequence
|
||||
0:145 move second child to first child (temp 2-component vector of float)
|
||||
0:145 'f2' (temp 2-component vector of float)
|
||||
0:145 noise (global 2-component vector of float)
|
||||
0:145 Constant:
|
||||
0:145 1.000000
|
||||
0:145 1.000000
|
||||
0:146 Sequence
|
||||
0:146 move second child to first child (temp 3-component vector of float)
|
||||
0:146 'f3' (temp 3-component vector of float)
|
||||
0:146 noise (global 3-component vector of float)
|
||||
0:146 Constant:
|
||||
0:146 1.000000
|
||||
0:146 1.000000
|
||||
0:146 1.000000
|
||||
0:147 Sequence
|
||||
0:147 move second child to first child (temp 4-component vector of float)
|
||||
0:147 'f4' (temp 4-component vector of float)
|
||||
0:147 noise (global 4-component vector of float)
|
||||
0:147 Constant:
|
||||
0:147 1.000000
|
||||
0:147 1.000000
|
||||
0:147 1.000000
|
||||
0:147 1.000000
|
||||
0:162 Function Definition: foo213( (global void)
|
||||
0:162 Function Parameters:
|
||||
0:164 Sequence
|
||||
0:164 Sequence
|
||||
0:164 move second child to first child (temp float)
|
||||
0:164 'f' (temp float)
|
||||
0:164 Constant:
|
||||
0:164 3.000000
|
||||
0:165 switch
|
||||
0:165 condition
|
||||
0:165 'c' (uniform int)
|
||||
0:165 body
|
||||
0:165 Sequence
|
||||
0:166 case: with expression
|
||||
0:166 Constant:
|
||||
0:166 1 (const int)
|
||||
0:? Sequence
|
||||
0:159 move second child to first child (temp float)
|
||||
0:159 'f' (temp float)
|
||||
0:159 sine (global float)
|
||||
0:159 'f' (temp float)
|
||||
0:160 Branch: Break
|
||||
0:161 case: with expression
|
||||
0:161 Constant:
|
||||
0:161 2 (const int)
|
||||
0:167 move second child to first child (temp float)
|
||||
0:167 'f' (temp float)
|
||||
0:167 sine (global float)
|
||||
0:167 'f' (temp float)
|
||||
0:168 Branch: Break
|
||||
0:169 case: with expression
|
||||
0:169 Constant:
|
||||
0:169 2 (const int)
|
||||
0:? Sequence
|
||||
0:162 move second child to first child (temp float)
|
||||
0:162 'f' (temp float)
|
||||
0:162 component-wise multiply (temp float)
|
||||
0:162 'f' (temp float)
|
||||
0:162 'f' (temp float)
|
||||
0:163 default:
|
||||
0:170 move second child to first child (temp float)
|
||||
0:170 'f' (temp float)
|
||||
0:170 component-wise multiply (temp float)
|
||||
0:170 'f' (temp float)
|
||||
0:170 'f' (temp float)
|
||||
0:171 default:
|
||||
0:? Sequence
|
||||
0:164 move second child to first child (temp float)
|
||||
0:164 'f' (temp float)
|
||||
0:164 Constant:
|
||||
0:164 3.000000
|
||||
0:168 inclusive-or (temp int)
|
||||
0:168 left-shift (temp int)
|
||||
0:168 'i' (temp int)
|
||||
0:168 Constant:
|
||||
0:168 3 (const int)
|
||||
0:168 Constant:
|
||||
0:168 69 (const int)
|
||||
0:172 Sequence
|
||||
0:172 move second child to first child (temp float)
|
||||
0:172 't' (temp float)
|
||||
0:172 Constant:
|
||||
0:172 0.000000
|
||||
0:178 Constant:
|
||||
0:178 0.000000
|
||||
0:180 Constant:
|
||||
0:180 0.000000
|
||||
0:181 Constant:
|
||||
0:181 0.000000
|
||||
0:184 move second child to first child (temp float)
|
||||
0:184 Constant:
|
||||
0:184 0.000000
|
||||
0:184 Constant:
|
||||
0:184 0.300000
|
||||
0:172 move second child to first child (temp float)
|
||||
0:172 'f' (temp float)
|
||||
0:172 Constant:
|
||||
0:172 3.000000
|
||||
0:176 inclusive-or (temp int)
|
||||
0:176 left-shift (temp int)
|
||||
0:176 'i' (temp int)
|
||||
0:176 Constant:
|
||||
0:176 3 (const int)
|
||||
0:176 Constant:
|
||||
0:176 69 (const int)
|
||||
0:180 Sequence
|
||||
0:180 move second child to first child (temp float)
|
||||
0:180 't' (temp float)
|
||||
0:180 Constant:
|
||||
0:180 0.000000
|
||||
0:186 Constant:
|
||||
0:186 0.000000
|
||||
0:188 Constant:
|
||||
0:188 0.000000
|
||||
0:189 Constant:
|
||||
0:189 0.000000
|
||||
0:192 move second child to first child (temp float)
|
||||
0:192 Constant:
|
||||
0:192 0.000000
|
||||
0:192 Constant:
|
||||
0:192 0.300000
|
||||
0:? Linker Objects
|
||||
0:? 'i' (in 4-component vector of float)
|
||||
0:? 'o' (smooth out 4-component vector of float)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ ERROR: 0:39: 'location qualifier on input' : not supported in this stage: comput
|
|||
ERROR: 0:40: 'in' : global storage input qualifier cannot be used in a compute shader
|
||||
ERROR: 0:41: 'out' : global storage output qualifier cannot be used in a compute shader
|
||||
ERROR: 0:44: 'shared' : cannot apply layout qualifiers to a shared variable
|
||||
ERROR: 0:44: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
|
||||
ERROR: 0:44: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
|
||||
ERROR: 0:45: 'shared' : cannot initialize this type of qualifier
|
||||
ERROR: 0:47: 'local_size' : can only apply to 'in'
|
||||
ERROR: 0:47: 'local_size' : can only apply to 'in'
|
||||
|
|
|
|||
|
|
@ -218,26 +218,18 @@ ERROR: node is still EOpNull!
|
|||
0:? Sequence
|
||||
0:63 move second child to first child (temp 3-component vector of double)
|
||||
0:63 'df' (temp 3-component vector of double)
|
||||
0:63 Convert float to double (temp 3-component vector of double)
|
||||
0:63 Comma (global 3-component vector of float)
|
||||
0:63 move second child to first child (temp 3-component vector of float)
|
||||
0:63 'tempReturn' (global 3-component vector of float)
|
||||
0:63 modf (global 3-component vector of float)
|
||||
0:63 vector swizzle (temp 3-component vector of float)
|
||||
0:63 'outp' (out 4-component vector of float)
|
||||
0:63 Sequence
|
||||
0:63 Constant:
|
||||
0:63 0 (const int)
|
||||
0:63 Constant:
|
||||
0:63 1 (const int)
|
||||
0:63 Constant:
|
||||
0:63 2 (const int)
|
||||
0:63 'tempArg' (temp 3-component vector of float)
|
||||
0:63 move second child to first child (temp 3-component vector of double)
|
||||
0:63 'di' (temp 3-component vector of double)
|
||||
0:63 Convert float to double (temp 3-component vector of double)
|
||||
0:63 'tempArg' (temp 3-component vector of float)
|
||||
0:63 'tempReturn' (global 3-component vector of float)
|
||||
0:63 modf (global 3-component vector of double)
|
||||
0:63 Convert float to double (temp 3-component vector of double)
|
||||
0:63 vector swizzle (temp 3-component vector of float)
|
||||
0:63 'outp' (out 4-component vector of float)
|
||||
0:63 Sequence
|
||||
0:63 Constant:
|
||||
0:63 0 (const int)
|
||||
0:63 Constant:
|
||||
0:63 1 (const int)
|
||||
0:63 Constant:
|
||||
0:63 2 (const int)
|
||||
0:63 'di' (temp 3-component vector of double)
|
||||
0:71 Function Definition: foodc1( (global void)
|
||||
0:71 Function Parameters:
|
||||
0:73 Sequence
|
||||
|
|
@ -707,26 +699,18 @@ ERROR: node is still EOpNull!
|
|||
0:? Sequence
|
||||
0:63 move second child to first child (temp 3-component vector of double)
|
||||
0:63 'df' (temp 3-component vector of double)
|
||||
0:63 Convert float to double (temp 3-component vector of double)
|
||||
0:63 Comma (global 3-component vector of float)
|
||||
0:63 move second child to first child (temp 3-component vector of float)
|
||||
0:63 'tempReturn' (global 3-component vector of float)
|
||||
0:63 modf (global 3-component vector of float)
|
||||
0:63 vector swizzle (temp 3-component vector of float)
|
||||
0:63 'outp' (out 4-component vector of float)
|
||||
0:63 Sequence
|
||||
0:63 Constant:
|
||||
0:63 0 (const int)
|
||||
0:63 Constant:
|
||||
0:63 1 (const int)
|
||||
0:63 Constant:
|
||||
0:63 2 (const int)
|
||||
0:63 'tempArg' (temp 3-component vector of float)
|
||||
0:63 move second child to first child (temp 3-component vector of double)
|
||||
0:63 'di' (temp 3-component vector of double)
|
||||
0:63 Convert float to double (temp 3-component vector of double)
|
||||
0:63 'tempArg' (temp 3-component vector of float)
|
||||
0:63 'tempReturn' (global 3-component vector of float)
|
||||
0:63 modf (global 3-component vector of double)
|
||||
0:63 Convert float to double (temp 3-component vector of double)
|
||||
0:63 vector swizzle (temp 3-component vector of float)
|
||||
0:63 'outp' (out 4-component vector of float)
|
||||
0:63 Sequence
|
||||
0:63 Constant:
|
||||
0:63 0 (const int)
|
||||
0:63 Constant:
|
||||
0:63 1 (const int)
|
||||
0:63 Constant:
|
||||
0:63 2 (const int)
|
||||
0:63 'di' (temp 3-component vector of double)
|
||||
0:71 Function Definition: foodc1( (global void)
|
||||
0:71 Function Parameters:
|
||||
0:73 Sequence
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -9,7 +9,6 @@ ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sa
|
|||
ERROR: 0:13: 'uniform' : too many storage qualifiers
|
||||
ERROR: 0:18: '=' : global const initializers must be constant 'const int'
|
||||
ERROR: 0:20: 'const' : no qualifiers allowed for function return
|
||||
ERROR: 0:27: '' : constant expression required
|
||||
ERROR: 0:27: '' : array size must be a constant integer expression
|
||||
ERROR: 0:38: 'j' : undeclared identifier
|
||||
ERROR: 0:38: '=' : cannot convert from 'temp float' to 'temp int'
|
||||
|
|
@ -33,7 +32,6 @@ ERROR: 0:85: 'patch' : not supported in this stage: vertex
|
|||
ERROR: 0:85: '' : vertex input cannot be further qualified
|
||||
ERROR: 0:86: 'patch' : not supported in this stage: vertex
|
||||
ERROR: 0:100: '=' : global const initializers must be constant 'const int'
|
||||
ERROR: 0:101: '' : constant expression required
|
||||
ERROR: 0:101: '' : array size must be a constant integer expression
|
||||
ERROR: 0:107: '' : image variables not declared 'writeonly' must have a format layout qualifier
|
||||
ERROR: 0:114: 'imageAtomicMin' : only supported on image with format r32i or r32ui
|
||||
|
|
@ -53,7 +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'
|
||||
ERROR: 52 compilation errors. No code generated.
|
||||
ERROR: 50 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 420
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ ERROR: 0:43: 'location qualifier on input' : not supported in this stage: comput
|
|||
ERROR: 0:44: 'in' : global storage input qualifier cannot be used in a compute shader
|
||||
ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute shader
|
||||
ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable
|
||||
ERROR: 0:48: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
|
||||
ERROR: 0:48: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
|
||||
ERROR: 0:49: 'shared' : cannot initialize this type of qualifier
|
||||
ERROR: 0:51: 'local_size' : can only apply to 'in'
|
||||
ERROR: 0:51: 'local_size' : can only apply to 'in'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
430.vert
|
||||
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:3: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
|
||||
ERROR: 0:3: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
|
||||
ERROR: 0:7: 'input block' : not supported in this stage: vertex
|
||||
ERROR: 0:7: 'location qualifier on in/out block' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:8: 'location qualifier on in/out block' : not supported for this version or the enabled extensions
|
||||
|
|
|
|||
|
|
@ -1,6 +1,34 @@
|
|||
Operations.frag
|
||||
ERROR: 0:76: 'intBitsToFloat' : no matching overloaded function found
|
||||
ERROR: 0:77: 'uintBitsToFloat' : no matching overloaded function found
|
||||
ERROR: 0:78: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:79: 'frexp' : no matching overloaded function found
|
||||
ERROR: 0:80: 'ldexp' : no matching overloaded function found
|
||||
ERROR: 0:81: 'unpackUnorm2x16' : no matching overloaded function found
|
||||
ERROR: 0:82: 'unpackUnorm4x8' : no matching overloaded function found
|
||||
ERROR: 0:83: 'unpackSnorm4x8' : no matching overloaded function found
|
||||
ERROR: 0:107: 'floatsBitsToInt' : no matching overloaded function found
|
||||
ERROR: 0:108: 'packUnorm2x16' : no matching overloaded function found
|
||||
ERROR: 0:109: 'packUnorm4x8' : no matching overloaded function found
|
||||
ERROR: 0:110: 'packSnorm4x8' : no matching overloaded function found
|
||||
ERROR: 0:113: 'assign' : cannot convert from 'global float' to 'temp uint'
|
||||
ERROR: 0:114: 'assign' : cannot convert from 'global float' to 'temp uint'
|
||||
ERROR: 0:118: 'floatsBitToInt' : no matching overloaded function found
|
||||
ERROR: 0:118: 'assign' : cannot convert from 'const float' to 'temp uint'
|
||||
ERROR: 0:119: 'packUnorm2x16' : no matching overloaded function found
|
||||
ERROR: 0:119: 'assign' : cannot convert from 'const float' to 'temp uint'
|
||||
ERROR: 0:120: 'packUnorm4x8' : no matching overloaded function found
|
||||
ERROR: 0:120: 'assign' : cannot convert from 'const float' to 'temp uint'
|
||||
ERROR: 0:121: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type 'uniform uint' and a right operand of type 'temp int' (or there is no acceptable conversion)
|
||||
ERROR: 0:121: 'assign' : cannot convert from 'uniform uint' to 'temp int'
|
||||
ERROR: 0:122: '^' : wrong operand types: no operation '^' exists that takes a left-hand operand of type 'uniform uint' and a right operand of type 'temp int' (or there is no acceptable conversion)
|
||||
ERROR: 0:122: 'assign' : cannot convert from 'uniform uint' to 'temp int'
|
||||
ERROR: 0:123: '|' : wrong operand types: no operation '|' exists that takes a left-hand operand of type 'temp int' and a right operand of type 'uniform uint' (or there is no acceptable conversion)
|
||||
ERROR: 25 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 130
|
||||
0:? Sequence
|
||||
ERROR: node is still EOpNull!
|
||||
0:15 Function Definition: main( (global void)
|
||||
0:15 Function Parameters:
|
||||
0:? Sequence
|
||||
|
|
@ -107,6 +135,18 @@ Shader version: 130
|
|||
0:52 'v' (temp 4-component vector of float)
|
||||
0:52 Floor (global 4-component vector of float)
|
||||
0:52 'v' (temp 4-component vector of float)
|
||||
0:55 add second child into first child (temp 4-component vector of float)
|
||||
0:55 'v' (temp 4-component vector of float)
|
||||
0:55 trunc (global 4-component vector of float)
|
||||
0:55 'v' (temp 4-component vector of float)
|
||||
0:56 add second child into first child (temp 4-component vector of float)
|
||||
0:56 'v' (temp 4-component vector of float)
|
||||
0:56 round (global 4-component vector of float)
|
||||
0:56 'v' (temp 4-component vector of float)
|
||||
0:57 add second child into first child (temp 4-component vector of float)
|
||||
0:57 'v' (temp 4-component vector of float)
|
||||
0:57 roundEven (global 4-component vector of float)
|
||||
0:57 'v' (temp 4-component vector of float)
|
||||
0:60 add second child into first child (temp 4-component vector of float)
|
||||
0:60 'v' (temp 4-component vector of float)
|
||||
0:60 Ceiling (global 4-component vector of float)
|
||||
|
|
@ -128,6 +168,11 @@ Shader version: 130
|
|||
0:63 'v' (temp 4-component vector of float)
|
||||
0:63 Constant:
|
||||
0:63 0 (const int)
|
||||
0:66 add second child into first child (temp 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:66 modf (global 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:69 add second child into first child (temp 4-component vector of float)
|
||||
0:69 'v' (temp 4-component vector of float)
|
||||
0:69 min (global 4-component vector of float)
|
||||
|
|
@ -150,6 +195,44 @@ Shader version: 130
|
|||
0:72 'v' (temp 4-component vector of float)
|
||||
0:72 'v' (temp 4-component vector of float)
|
||||
0:72 'v' (temp 4-component vector of float)
|
||||
0:75 add second child into first child (temp 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 mix (global 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 'bv4' (temp 4-component vector of bool)
|
||||
0:76 add second child into first child (temp 4-component vector of float)
|
||||
0:76 'v' (temp 4-component vector of float)
|
||||
0:76 Constant:
|
||||
0:76 0.000000
|
||||
0:77 add second child into first child (temp 4-component vector of float)
|
||||
0:77 'v' (temp 4-component vector of float)
|
||||
0:77 Constant:
|
||||
0:77 0.000000
|
||||
0:78 add second child into first child (temp 4-component vector of float)
|
||||
0:78 'v' (temp 4-component vector of float)
|
||||
0:78 Constant:
|
||||
0:78 0.000000
|
||||
0:79 add second child into first child (temp 4-component vector of float)
|
||||
0:79 'v' (temp 4-component vector of float)
|
||||
0:79 Constant:
|
||||
0:79 0.000000
|
||||
0:80 add second child into first child (temp 4-component vector of float)
|
||||
0:80 'v' (temp 4-component vector of float)
|
||||
0:80 Constant:
|
||||
0:80 0.000000
|
||||
0:81 add second child into first child (temp 4-component vector of float)
|
||||
0:81 'v' (temp 4-component vector of float)
|
||||
0:81 Constant:
|
||||
0:81 0.000000
|
||||
0:82 add second child into first child (temp 4-component vector of float)
|
||||
0:82 'v' (temp 4-component vector of float)
|
||||
0:82 Constant:
|
||||
0:82 0.000000
|
||||
0:83 add second child into first child (temp 4-component vector of float)
|
||||
0:83 'v' (temp 4-component vector of float)
|
||||
0:83 Constant:
|
||||
0:83 0.000000
|
||||
0:86 add second child into first child (temp 4-component vector of float)
|
||||
0:86 'v' (temp 4-component vector of float)
|
||||
0:86 step (global 4-component vector of float)
|
||||
|
|
@ -205,6 +288,75 @@ Shader version: 130
|
|||
0:96 'v' (temp 4-component vector of float)
|
||||
0:96 fwidth (global 4-component vector of float)
|
||||
0:96 'v' (temp 4-component vector of float)
|
||||
0:101 add second child into first child (temp int)
|
||||
0:101 'i' (temp int)
|
||||
0:101 Absolute value (global int)
|
||||
0:101 'ui' (uniform int)
|
||||
0:102 add second child into first child (temp int)
|
||||
0:102 'i' (temp int)
|
||||
0:102 Sign (global int)
|
||||
0:102 'i' (temp int)
|
||||
0:103 add second child into first child (temp int)
|
||||
0:103 'i' (temp int)
|
||||
0:103 min (global int)
|
||||
0:103 'i' (temp int)
|
||||
0:103 'ui' (uniform int)
|
||||
0:104 add second child into first child (temp int)
|
||||
0:104 'i' (temp int)
|
||||
0:104 max (global int)
|
||||
0:104 'i' (temp int)
|
||||
0:104 'ui' (uniform int)
|
||||
0:105 add second child into first child (temp int)
|
||||
0:105 'i' (temp int)
|
||||
0:105 clamp (global int)
|
||||
0:105 'i' (temp int)
|
||||
0:105 'ui' (uniform int)
|
||||
0:105 'ui' (uniform int)
|
||||
0:107 Constant:
|
||||
0:107 0.000000
|
||||
0:108 Constant:
|
||||
0:108 0.000000
|
||||
0:109 Constant:
|
||||
0:109 0.000000
|
||||
0:110 Constant:
|
||||
0:110 0.000000
|
||||
0:113 'u' (temp uint)
|
||||
0:114 'u' (temp uint)
|
||||
0:115 add second child into first child (temp uint)
|
||||
0:115 'u' (temp uint)
|
||||
0:115 min (global uint)
|
||||
0:115 'u' (temp uint)
|
||||
0:115 'uui' (uniform uint)
|
||||
0:116 add second child into first child (temp uint)
|
||||
0:116 'u' (temp uint)
|
||||
0:116 max (global uint)
|
||||
0:116 'u' (temp uint)
|
||||
0:116 'uui' (uniform uint)
|
||||
0:117 add second child into first child (temp uint)
|
||||
0:117 'u' (temp uint)
|
||||
0:117 clamp (global uint)
|
||||
0:117 'u' (temp uint)
|
||||
0:117 'uui' (uniform uint)
|
||||
0:117 'uui' (uniform uint)
|
||||
0:118 'u' (temp uint)
|
||||
0:119 'u' (temp uint)
|
||||
0:120 'u' (temp uint)
|
||||
0:121 'i' (temp int)
|
||||
0:122 'i' (temp int)
|
||||
0:123 add second child into first child (temp int)
|
||||
0:123 'i' (temp int)
|
||||
0:123 'i' (temp int)
|
||||
0:127 move second child to first child (temp bool)
|
||||
0:127 'b' (temp bool)
|
||||
0:127 isnan (global bool)
|
||||
0:127 'uf' (uniform float)
|
||||
0:128 move second child to first child (temp bool)
|
||||
0:128 'b' (temp bool)
|
||||
0:128 isinf (global bool)
|
||||
0:128 direct index (temp float)
|
||||
0:128 'v' (temp 4-component vector of float)
|
||||
0:128 Constant:
|
||||
0:128 1 (const int)
|
||||
0:130 move second child to first child (temp bool)
|
||||
0:130 'b' (temp bool)
|
||||
0:130 any (global bool)
|
||||
|
|
@ -431,13 +583,15 @@ Shader version: 130
|
|||
0:? 'ub42' (uniform 4-component vector of bool)
|
||||
0:? 'uf' (uniform float)
|
||||
0:? 'ui' (uniform int)
|
||||
0:? 'uuv4' (uniform 4-component vector of uint)
|
||||
0:? 'uui' (uniform uint)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 130
|
||||
0:? Sequence
|
||||
ERROR: node is still EOpNull!
|
||||
0:15 Function Definition: main( (global void)
|
||||
0:15 Function Parameters:
|
||||
0:? Sequence
|
||||
|
|
@ -544,6 +698,18 @@ Shader version: 130
|
|||
0:52 'v' (temp 4-component vector of float)
|
||||
0:52 Floor (global 4-component vector of float)
|
||||
0:52 'v' (temp 4-component vector of float)
|
||||
0:55 add second child into first child (temp 4-component vector of float)
|
||||
0:55 'v' (temp 4-component vector of float)
|
||||
0:55 trunc (global 4-component vector of float)
|
||||
0:55 'v' (temp 4-component vector of float)
|
||||
0:56 add second child into first child (temp 4-component vector of float)
|
||||
0:56 'v' (temp 4-component vector of float)
|
||||
0:56 round (global 4-component vector of float)
|
||||
0:56 'v' (temp 4-component vector of float)
|
||||
0:57 add second child into first child (temp 4-component vector of float)
|
||||
0:57 'v' (temp 4-component vector of float)
|
||||
0:57 roundEven (global 4-component vector of float)
|
||||
0:57 'v' (temp 4-component vector of float)
|
||||
0:60 add second child into first child (temp 4-component vector of float)
|
||||
0:60 'v' (temp 4-component vector of float)
|
||||
0:60 Ceiling (global 4-component vector of float)
|
||||
|
|
@ -565,6 +731,11 @@ Shader version: 130
|
|||
0:63 'v' (temp 4-component vector of float)
|
||||
0:63 Constant:
|
||||
0:63 0 (const int)
|
||||
0:66 add second child into first child (temp 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:66 modf (global 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:69 add second child into first child (temp 4-component vector of float)
|
||||
0:69 'v' (temp 4-component vector of float)
|
||||
0:69 min (global 4-component vector of float)
|
||||
|
|
@ -587,6 +758,44 @@ Shader version: 130
|
|||
0:72 'v' (temp 4-component vector of float)
|
||||
0:72 'v' (temp 4-component vector of float)
|
||||
0:72 'v' (temp 4-component vector of float)
|
||||
0:75 add second child into first child (temp 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 mix (global 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 'bv4' (temp 4-component vector of bool)
|
||||
0:76 add second child into first child (temp 4-component vector of float)
|
||||
0:76 'v' (temp 4-component vector of float)
|
||||
0:76 Constant:
|
||||
0:76 0.000000
|
||||
0:77 add second child into first child (temp 4-component vector of float)
|
||||
0:77 'v' (temp 4-component vector of float)
|
||||
0:77 Constant:
|
||||
0:77 0.000000
|
||||
0:78 add second child into first child (temp 4-component vector of float)
|
||||
0:78 'v' (temp 4-component vector of float)
|
||||
0:78 Constant:
|
||||
0:78 0.000000
|
||||
0:79 add second child into first child (temp 4-component vector of float)
|
||||
0:79 'v' (temp 4-component vector of float)
|
||||
0:79 Constant:
|
||||
0:79 0.000000
|
||||
0:80 add second child into first child (temp 4-component vector of float)
|
||||
0:80 'v' (temp 4-component vector of float)
|
||||
0:80 Constant:
|
||||
0:80 0.000000
|
||||
0:81 add second child into first child (temp 4-component vector of float)
|
||||
0:81 'v' (temp 4-component vector of float)
|
||||
0:81 Constant:
|
||||
0:81 0.000000
|
||||
0:82 add second child into first child (temp 4-component vector of float)
|
||||
0:82 'v' (temp 4-component vector of float)
|
||||
0:82 Constant:
|
||||
0:82 0.000000
|
||||
0:83 add second child into first child (temp 4-component vector of float)
|
||||
0:83 'v' (temp 4-component vector of float)
|
||||
0:83 Constant:
|
||||
0:83 0.000000
|
||||
0:86 add second child into first child (temp 4-component vector of float)
|
||||
0:86 'v' (temp 4-component vector of float)
|
||||
0:86 step (global 4-component vector of float)
|
||||
|
|
@ -642,6 +851,75 @@ Shader version: 130
|
|||
0:96 'v' (temp 4-component vector of float)
|
||||
0:96 fwidth (global 4-component vector of float)
|
||||
0:96 'v' (temp 4-component vector of float)
|
||||
0:101 add second child into first child (temp int)
|
||||
0:101 'i' (temp int)
|
||||
0:101 Absolute value (global int)
|
||||
0:101 'ui' (uniform int)
|
||||
0:102 add second child into first child (temp int)
|
||||
0:102 'i' (temp int)
|
||||
0:102 Sign (global int)
|
||||
0:102 'i' (temp int)
|
||||
0:103 add second child into first child (temp int)
|
||||
0:103 'i' (temp int)
|
||||
0:103 min (global int)
|
||||
0:103 'i' (temp int)
|
||||
0:103 'ui' (uniform int)
|
||||
0:104 add second child into first child (temp int)
|
||||
0:104 'i' (temp int)
|
||||
0:104 max (global int)
|
||||
0:104 'i' (temp int)
|
||||
0:104 'ui' (uniform int)
|
||||
0:105 add second child into first child (temp int)
|
||||
0:105 'i' (temp int)
|
||||
0:105 clamp (global int)
|
||||
0:105 'i' (temp int)
|
||||
0:105 'ui' (uniform int)
|
||||
0:105 'ui' (uniform int)
|
||||
0:107 Constant:
|
||||
0:107 0.000000
|
||||
0:108 Constant:
|
||||
0:108 0.000000
|
||||
0:109 Constant:
|
||||
0:109 0.000000
|
||||
0:110 Constant:
|
||||
0:110 0.000000
|
||||
0:113 'u' (temp uint)
|
||||
0:114 'u' (temp uint)
|
||||
0:115 add second child into first child (temp uint)
|
||||
0:115 'u' (temp uint)
|
||||
0:115 min (global uint)
|
||||
0:115 'u' (temp uint)
|
||||
0:115 'uui' (uniform uint)
|
||||
0:116 add second child into first child (temp uint)
|
||||
0:116 'u' (temp uint)
|
||||
0:116 max (global uint)
|
||||
0:116 'u' (temp uint)
|
||||
0:116 'uui' (uniform uint)
|
||||
0:117 add second child into first child (temp uint)
|
||||
0:117 'u' (temp uint)
|
||||
0:117 clamp (global uint)
|
||||
0:117 'u' (temp uint)
|
||||
0:117 'uui' (uniform uint)
|
||||
0:117 'uui' (uniform uint)
|
||||
0:118 'u' (temp uint)
|
||||
0:119 'u' (temp uint)
|
||||
0:120 'u' (temp uint)
|
||||
0:121 'i' (temp int)
|
||||
0:122 'i' (temp int)
|
||||
0:123 add second child into first child (temp int)
|
||||
0:123 'i' (temp int)
|
||||
0:123 'i' (temp int)
|
||||
0:127 move second child to first child (temp bool)
|
||||
0:127 'b' (temp bool)
|
||||
0:127 isnan (global bool)
|
||||
0:127 'uf' (uniform float)
|
||||
0:128 move second child to first child (temp bool)
|
||||
0:128 'b' (temp bool)
|
||||
0:128 isinf (global bool)
|
||||
0:128 direct index (temp float)
|
||||
0:128 'v' (temp 4-component vector of float)
|
||||
0:128 Constant:
|
||||
0:128 1 (const int)
|
||||
0:130 move second child to first child (temp bool)
|
||||
0:130 'b' (temp bool)
|
||||
0:130 any (global bool)
|
||||
|
|
@ -868,4 +1146,6 @@ Shader version: 130
|
|||
0:? 'ub42' (uniform 4-component vector of bool)
|
||||
0:? 'uf' (uniform float)
|
||||
0:? 'ui' (uniform int)
|
||||
0:? 'uuv4' (uniform 4-component vector of uint)
|
||||
0:? 'uui' (uniform uint)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,11 @@
|
|||
constErrors.frag
|
||||
ERROR: 0:14: 'non-constant initializer' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:17: '' : constant expression required
|
||||
ERROR: 0:17: '' : array size must be a constant integer expression
|
||||
ERROR: 0:18: '' : constant expression required
|
||||
ERROR: 0:18: '' : array size must be a constant integer expression
|
||||
ERROR: 0:19: '' : constant expression required
|
||||
ERROR: 0:19: '' : array size must be a constant integer expression
|
||||
ERROR: 0:27: '=' : global const initializers must be constant 'const structure{global 3-component vector of float v3, global 2-component vector of int iv2}'
|
||||
ERROR: 0:33: '=' : global const initializers must be constant 'const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}'
|
||||
ERROR: 9 compilation errors. No code generated.
|
||||
ERROR: 6 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 330
|
||||
|
|
|
|||
|
|
@ -270,6 +270,14 @@ ERROR: node is still EOpNull!
|
|||
0:128 76.000000
|
||||
0:128 59.000000
|
||||
0:128 88.000000
|
||||
0:138 Function Definition: foo4( (global void)
|
||||
0:138 Function Parameters:
|
||||
0:140 Sequence
|
||||
0:140 Sequence
|
||||
0:140 move second child to first child (temp int)
|
||||
0:140 'a' (temp int)
|
||||
0:140 Constant:
|
||||
0:140 9 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'a' (const int)
|
||||
0:? 1 (const int)
|
||||
|
|
@ -356,6 +364,16 @@ ERROR: node is still EOpNull!
|
|||
0:? 13.000000
|
||||
0:? 14.000000
|
||||
0:? 15.000000
|
||||
0:? 'a0' (const 3-element array of structure{global int i, global float f, global bool b})
|
||||
0:? 3 (const int)
|
||||
0:? 2.000000
|
||||
0:? true (const bool)
|
||||
0:? 1 (const int)
|
||||
0:? 5.000000
|
||||
0:? true (const bool)
|
||||
0:? 1 (const int)
|
||||
0:? 9.000000
|
||||
0:? false (const bool)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
|
@ -622,6 +640,14 @@ ERROR: node is still EOpNull!
|
|||
0:128 76.000000
|
||||
0:128 59.000000
|
||||
0:128 88.000000
|
||||
0:138 Function Definition: foo4( (global void)
|
||||
0:138 Function Parameters:
|
||||
0:140 Sequence
|
||||
0:140 Sequence
|
||||
0:140 move second child to first child (temp int)
|
||||
0:140 'a' (temp int)
|
||||
0:140 Constant:
|
||||
0:140 9 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'a' (const int)
|
||||
0:? 1 (const int)
|
||||
|
|
@ -708,4 +734,14 @@ ERROR: node is still EOpNull!
|
|||
0:? 13.000000
|
||||
0:? 14.000000
|
||||
0:? 15.000000
|
||||
0:? 'a0' (const 3-element array of structure{global int i, global float f, global bool b})
|
||||
0:? 3 (const int)
|
||||
0:? 2.000000
|
||||
0:? true (const bool)
|
||||
0:? 1 (const int)
|
||||
0:? 5.000000
|
||||
0:? true (const bool)
|
||||
0:? 1 (const int)
|
||||
0:? 9.000000
|
||||
0:? false (const bool)
|
||||
|
||||
|
|
|
|||
30
Test/baseResults/nonVulkan.frag.out
Normal file
30
Test/baseResults/nonVulkan.frag.out
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
nonVulkan.frag
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:3: 'constant_id' : only allowed when generating SPIR-V
|
||||
ERROR: 0:4: 'input_attachment_index' : only allowed when using GLSL for Vulkan
|
||||
ERROR: 0:4: 'input_attachment_index' : can only be used with a subpass
|
||||
ERROR: 0:5: 'push_constant' : only allowed when using GLSL for Vulkan
|
||||
ERROR: 4 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
ERROR: node is still EOpNull!
|
||||
0:? Linker Objects
|
||||
0:? 'arraySize' (specialization-constant const int)
|
||||
0:? 12 (const int)
|
||||
0:? 'foo' (temp int)
|
||||
0:? 'ubi' (layout(column_major std430 push_constant ) uniform block{layout(column_major std430 offset=0 ) uniform int a})
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
|
||||
|
||||
Shader version: 450
|
||||
ERROR: node is still EOpNull!
|
||||
0:? Linker Objects
|
||||
0:? 'arraySize' (specialization-constant const int)
|
||||
0:? 12 (const int)
|
||||
0:? 'foo' (temp int)
|
||||
0:? 'ubi' (layout(column_major std430 push_constant ) uniform block{layout(column_major std430 offset=0 ) uniform int a})
|
||||
|
||||
|
|
@ -85,7 +85,7 @@ Uniform block reflection:
|
|||
nameless: offset -1, type ffffffff, size 496, index -1
|
||||
named: offset -1, type ffffffff, size 304, index -1
|
||||
c_nameless: offset -1, type ffffffff, size 112, index -1
|
||||
nested: offset -1, type ffffffff, size 28, index -1
|
||||
nested: offset -1, type ffffffff, size 32, index -1
|
||||
abl[0]: offset -1, type ffffffff, size 4, index -1
|
||||
abl[1]: offset -1, type ffffffff, size 4, index -1
|
||||
abl[2]: offset -1, type ffffffff, size 4, index -1
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
specExamples.vert
|
||||
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:29: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
|
||||
ERROR: 0:29: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
|
||||
ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value
|
||||
ERROR: 0:33: 'lines' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
|
|
|
|||
|
|
@ -1,18 +1,20 @@
|
|||
spv.100ops.frag
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 47
|
||||
// Id's are bound by 49
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 36
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source ESSL 100
|
||||
EntryPoint Fragment 4 "main" 21 26 37
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 8 "foo("
|
||||
Name 11 "face1"
|
||||
|
|
@ -20,13 +22,29 @@ Linked fragment stage:
|
|||
Name 17 "z"
|
||||
Name 21 "low"
|
||||
Name 26 "high"
|
||||
Name 36 "gl_FragColor"
|
||||
Name 37 "Color"
|
||||
Decorate 8(foo() RelaxedPrecision
|
||||
Decorate 11(face1) RelaxedPrecision
|
||||
Decorate 13(face2) RelaxedPrecision
|
||||
Decorate 17(z) RelaxedPrecision
|
||||
Decorate 21(low) RelaxedPrecision
|
||||
Decorate 22 RelaxedPrecision
|
||||
Decorate 23 RelaxedPrecision
|
||||
Decorate 25 RelaxedPrecision
|
||||
Decorate 26(high) RelaxedPrecision
|
||||
Decorate 36(gl_FragColor) RelaxedPrecision
|
||||
Decorate 27 RelaxedPrecision
|
||||
Decorate 32 RelaxedPrecision
|
||||
Decorate 34 RelaxedPrecision
|
||||
Decorate 37(Color) RelaxedPrecision
|
||||
Decorate 38 RelaxedPrecision
|
||||
Decorate 39 RelaxedPrecision
|
||||
Decorate 40 RelaxedPrecision
|
||||
Decorate 41 RelaxedPrecision
|
||||
Decorate 42 RelaxedPrecision
|
||||
Decorate 43 RelaxedPrecision
|
||||
Decorate 44 RelaxedPrecision
|
||||
Decorate 45 RelaxedPrecision
|
||||
Decorate 46 RelaxedPrecision
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -39,47 +57,48 @@ Linked fragment stage:
|
|||
15: TypeInt 32 1
|
||||
16: TypePointer Function 15(int)
|
||||
18: 15(int) Constant 3
|
||||
19: 15(int) Constant 2
|
||||
20: TypePointer UniformConstant 15(int)
|
||||
21(low): 20(ptr) Variable UniformConstant
|
||||
24: 15(int) Constant 1
|
||||
26(high): 20(ptr) Variable UniformConstant
|
||||
19: 6(float) Constant 1073741824
|
||||
20: TypePointer Input 6(float)
|
||||
21(low): 20(ptr) Variable Input
|
||||
24: 6(float) Constant 1065353216
|
||||
26(high): 20(ptr) Variable Input
|
||||
28: TypeBool
|
||||
34: TypeVector 6(float) 4
|
||||
35: TypePointer Output 34(fvec4)
|
||||
36(gl_FragColor): 35(ptr) Variable Output
|
||||
33: 15(int) Constant 1
|
||||
35: TypeVector 6(float) 4
|
||||
36: TypePointer Output 35(fvec4)
|
||||
37(Color): 36(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
17(z): 16(ptr) Variable Function
|
||||
Store 11(face1) 12
|
||||
Store 13(face2) 14
|
||||
Store 17(z) 18
|
||||
22: 15(int) Load 21(low)
|
||||
23: 15(int) IMul 19 22
|
||||
25: 15(int) IAdd 23 24
|
||||
27: 15(int) Load 26(high)
|
||||
29: 28(bool) SLessThan 25 27
|
||||
22: 6(float) Load 21(low)
|
||||
23: 6(float) FMul 19 22
|
||||
25: 6(float) FAdd 23 24
|
||||
27: 6(float) Load 26(high)
|
||||
29: 28(bool) FOrdLessThan 25 27
|
||||
SelectionMerge 31 None
|
||||
BranchConditional 29 30 31
|
||||
30: Label
|
||||
32: 15(int) Load 17(z)
|
||||
33: 15(int) IAdd 32 24
|
||||
Store 17(z) 33
|
||||
34: 15(int) IAdd 32 33
|
||||
Store 17(z) 34
|
||||
Branch 31
|
||||
31: Label
|
||||
37: 6(float) Load 11(face1)
|
||||
38: 15(int) Load 17(z)
|
||||
39: 6(float) ConvertSToF 38
|
||||
40: 34(fvec4) CompositeConstruct 39 39 39 39
|
||||
41: 34(fvec4) VectorTimesScalar 40 37
|
||||
42: 6(float) FunctionCall 8(foo()
|
||||
43: 34(fvec4) CompositeConstruct 42 42 42 42
|
||||
44: 34(fvec4) FAdd 41 43
|
||||
Store 36(gl_FragColor) 44
|
||||
38: 6(float) Load 11(face1)
|
||||
39: 15(int) Load 17(z)
|
||||
40: 6(float) ConvertSToF 39
|
||||
41: 35(fvec4) CompositeConstruct 40 40 40 40
|
||||
42: 35(fvec4) VectorTimesScalar 41 38
|
||||
43: 6(float) FunctionCall 8(foo()
|
||||
44: 35(fvec4) CompositeConstruct 43 43 43 43
|
||||
45: 35(fvec4) FAdd 42 44
|
||||
Store 37(Color) 45
|
||||
Return
|
||||
FunctionEnd
|
||||
8(foo(): 6(float) Function None 7
|
||||
9: Label
|
||||
45: 6(float) Load 13(face2)
|
||||
ReturnValue 45
|
||||
46: 6(float) Load 13(face2)
|
||||
ReturnValue 46
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
spv.130.frag
|
||||
WARNING: 0:34: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
|
||||
WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
|
@ -7,14 +7,19 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 214
|
||||
// Id's are bound by 205
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
Capability SampledRect
|
||||
Capability Sampled1D
|
||||
Capability SampledCubeArray
|
||||
Capability ImageQuery
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 17 68 79 99 173 184 185 186 187
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
EntryPoint Fragment 4 "main" 17 68 79 99 173 184 185 186
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
SourceExtension "GL_ARB_gpu_shader5"
|
||||
SourceExtension "GL_ARB_shader_texture_lod"
|
||||
SourceExtension "GL_ARB_shading_language_420pack"
|
||||
|
|
@ -50,21 +55,31 @@ Linked fragment stage:
|
|||
Name 184 "fflat"
|
||||
Name 185 "fsmooth"
|
||||
Name 186 "fnop"
|
||||
Name 187 "gl_Color"
|
||||
Name 194 "bounds"
|
||||
Name 195 "s2D"
|
||||
Name 196 "s2DR"
|
||||
Name 200 "s2DRS"
|
||||
Name 204 "s1D"
|
||||
Name 205 "s2DS"
|
||||
Name 207 "f"
|
||||
Name 209 "v2"
|
||||
Name 211 "v3"
|
||||
Name 213 "v4"
|
||||
Name 193 "bounds"
|
||||
Name 194 "s2D"
|
||||
Name 195 "s2DR"
|
||||
Name 199 "s2DRS"
|
||||
Name 203 "s1D"
|
||||
Name 204 "s2DS"
|
||||
Decorate 21(samp2D) DescriptorSet 0
|
||||
Decorate 37(samp2DA) DescriptorSet 0
|
||||
Decorate 47(samp2DR) DescriptorSet 0
|
||||
Decorate 55(samp2DS) DescriptorSet 0
|
||||
Decorate 72(Sca) DescriptorSet 0
|
||||
Decorate 87(Isca) DescriptorSet 0
|
||||
Decorate 103(Usca) DescriptorSet 0
|
||||
Decorate 118(Scas) DescriptorSet 0
|
||||
Decorate 167(sampC) DescriptorSet 0
|
||||
Decorate 173(gl_ClipDistance) BuiltIn ClipDistance
|
||||
Decorate 184(fflat) Flat
|
||||
Decorate 186(fnop) NoPerspective
|
||||
Decorate 194(bounds) Binding 0
|
||||
Decorate 193(bounds) DescriptorSet 0
|
||||
Decorate 193(bounds) Binding 0
|
||||
Decorate 194(s2D) DescriptorSet 0
|
||||
Decorate 195(s2DR) DescriptorSet 0
|
||||
Decorate 199(s2DRS) DescriptorSet 0
|
||||
Decorate 203(s1D) DescriptorSet 0
|
||||
Decorate 204(s2DS) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
14: TypeFloat 32
|
||||
|
|
@ -155,33 +170,24 @@ Linked fragment stage:
|
|||
184(fflat): 128(ptr) Variable Input
|
||||
185(fsmooth): 128(ptr) Variable Input
|
||||
186(fnop): 128(ptr) Variable Input
|
||||
187(gl_Color): 78(ptr) Variable Input
|
||||
188: 96(int) Constant 3
|
||||
189: TypeArray 26(int) 188
|
||||
190: 26(int) Constant 10
|
||||
191: 26(int) Constant 23
|
||||
192: 26(int) Constant 32
|
||||
193: 189 ConstantComposite 190 191 192
|
||||
194(bounds): 20(ptr) Variable UniformConstant
|
||||
195(s2D): 20(ptr) Variable UniformConstant
|
||||
196(s2DR): 46(ptr) Variable UniformConstant
|
||||
197: TypeImage 14(float) Rect depth sampled format:Unknown
|
||||
198: TypeSampledImage 197
|
||||
199: TypePointer UniformConstant 198
|
||||
200(s2DRS): 199(ptr) Variable UniformConstant
|
||||
201: TypeImage 14(float) 1D sampled format:Unknown
|
||||
202: TypeSampledImage 201
|
||||
203: TypePointer UniformConstant 202
|
||||
204(s1D): 203(ptr) Variable UniformConstant
|
||||
205(s2DS): 54(ptr) Variable UniformConstant
|
||||
206: TypePointer UniformConstant 14(float)
|
||||
207(f): 206(ptr) Variable UniformConstant
|
||||
208: TypePointer UniformConstant 23(fvec2)
|
||||
209(v2): 208(ptr) Variable UniformConstant
|
||||
210: TypePointer UniformConstant 39(fvec3)
|
||||
211(v3): 210(ptr) Variable UniformConstant
|
||||
212: TypePointer UniformConstant 15(fvec4)
|
||||
213(v4): 212(ptr) Variable UniformConstant
|
||||
187: 96(int) Constant 3
|
||||
188: TypeArray 26(int) 187
|
||||
189: 26(int) Constant 10
|
||||
190: 26(int) Constant 23
|
||||
191: 26(int) Constant 32
|
||||
192: 188 ConstantComposite 189 190 191
|
||||
193(bounds): 20(ptr) Variable UniformConstant
|
||||
194(s2D): 20(ptr) Variable UniformConstant
|
||||
195(s2DR): 46(ptr) Variable UniformConstant
|
||||
196: TypeImage 14(float) Rect depth sampled format:Unknown
|
||||
197: TypeSampledImage 196
|
||||
198: TypePointer UniformConstant 197
|
||||
199(s2DRS): 198(ptr) Variable UniformConstant
|
||||
200: TypeImage 14(float) 1D sampled format:Unknown
|
||||
201: TypeSampledImage 200
|
||||
202: TypePointer UniformConstant 201
|
||||
203(s1D): 202(ptr) Variable UniformConstant
|
||||
204(s2DS): 54(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
168: 165 Load 167(sampC)
|
||||
|
|
|
|||
|
|
@ -5,13 +5,17 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 100
|
||||
// Id's are bound by 101
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
Capability SampledRect
|
||||
Capability SampledBuffer
|
||||
Capability ImageQuery
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 16 28 33 43
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 8 "foo("
|
||||
|
|
@ -23,40 +27,45 @@ Linked fragment stage:
|
|||
Name 43 "k"
|
||||
Name 55 "sampR"
|
||||
Name 63 "sampB"
|
||||
Name 86 "samp2Da"
|
||||
Name 91 "bn"
|
||||
MemberName 91(bn) 0 "matra"
|
||||
MemberName 91(bn) 1 "matca"
|
||||
MemberName 91(bn) 2 "matr"
|
||||
MemberName 91(bn) 3 "matc"
|
||||
MemberName 91(bn) 4 "matrdef"
|
||||
Name 93 ""
|
||||
Name 96 "bi"
|
||||
MemberName 96(bi) 0 "v"
|
||||
Name 99 "bname"
|
||||
Name 87 "samp2Da"
|
||||
Name 92 "bn"
|
||||
MemberName 92(bn) 0 "matra"
|
||||
MemberName 92(bn) 1 "matca"
|
||||
MemberName 92(bn) 2 "matr"
|
||||
MemberName 92(bn) 3 "matc"
|
||||
MemberName 92(bn) 4 "matrdef"
|
||||
Name 94 ""
|
||||
Name 97 "bi"
|
||||
MemberName 97(bi) 0 "v"
|
||||
Name 100 "bname"
|
||||
Decorate 16(gl_FrontFacing) BuiltIn FrontFacing
|
||||
Decorate 33(gl_ClipDistance) BuiltIn ClipDistance
|
||||
Decorate 89 ArrayStride 64
|
||||
Decorate 55(sampR) DescriptorSet 0
|
||||
Decorate 63(sampB) DescriptorSet 0
|
||||
Decorate 87(samp2Da) DescriptorSet 0
|
||||
Decorate 90 ArrayStride 64
|
||||
MemberDecorate 91(bn) 0 RowMajor
|
||||
MemberDecorate 91(bn) 0 Offset 0
|
||||
MemberDecorate 91(bn) 0 MatrixStride 16
|
||||
MemberDecorate 91(bn) 1 ColMajor
|
||||
MemberDecorate 91(bn) 1 Offset 256
|
||||
MemberDecorate 91(bn) 1 MatrixStride 16
|
||||
MemberDecorate 91(bn) 2 RowMajor
|
||||
MemberDecorate 91(bn) 2 Offset 512
|
||||
MemberDecorate 91(bn) 2 MatrixStride 16
|
||||
MemberDecorate 91(bn) 3 ColMajor
|
||||
MemberDecorate 91(bn) 3 Offset 576
|
||||
MemberDecorate 91(bn) 3 MatrixStride 16
|
||||
MemberDecorate 91(bn) 4 RowMajor
|
||||
MemberDecorate 91(bn) 4 Offset 640
|
||||
MemberDecorate 91(bn) 4 MatrixStride 16
|
||||
Decorate 91(bn) Block
|
||||
Decorate 95 ArrayStride 16
|
||||
MemberDecorate 96(bi) 0 Offset 0
|
||||
Decorate 96(bi) Block
|
||||
Decorate 91 ArrayStride 64
|
||||
MemberDecorate 92(bn) 0 RowMajor
|
||||
MemberDecorate 92(bn) 0 Offset 0
|
||||
MemberDecorate 92(bn) 0 MatrixStride 16
|
||||
MemberDecorate 92(bn) 1 ColMajor
|
||||
MemberDecorate 92(bn) 1 Offset 256
|
||||
MemberDecorate 92(bn) 1 MatrixStride 16
|
||||
MemberDecorate 92(bn) 2 RowMajor
|
||||
MemberDecorate 92(bn) 2 Offset 512
|
||||
MemberDecorate 92(bn) 2 MatrixStride 16
|
||||
MemberDecorate 92(bn) 3 ColMajor
|
||||
MemberDecorate 92(bn) 3 Offset 576
|
||||
MemberDecorate 92(bn) 3 MatrixStride 16
|
||||
MemberDecorate 92(bn) 4 RowMajor
|
||||
MemberDecorate 92(bn) 4 Offset 640
|
||||
MemberDecorate 92(bn) 4 MatrixStride 16
|
||||
Decorate 92(bn) Block
|
||||
Decorate 94 DescriptorSet 0
|
||||
Decorate 96 ArrayStride 16
|
||||
MemberDecorate 97(bi) 0 Offset 0
|
||||
Decorate 97(bi) Block
|
||||
Decorate 100(bname) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -100,24 +109,24 @@ Linked fragment stage:
|
|||
69: TypeVector 6(float) 2
|
||||
72: 6(float) Constant 1120403456
|
||||
74: 29(int) Constant 3
|
||||
82: TypeImage 6(float) 2D sampled format:Unknown
|
||||
83: TypeSampledImage 82
|
||||
84: TypeArray 83 74
|
||||
85: TypePointer UniformConstant 84
|
||||
86(samp2Da): 85(ptr) Variable UniformConstant
|
||||
87: TypeMatrix 26(fvec4) 4
|
||||
88: 29(int) Constant 4
|
||||
89: TypeArray 87 88
|
||||
90: TypeArray 87 88
|
||||
91(bn): TypeStruct 89 90 87 87 87
|
||||
92: TypePointer Uniform 91(bn)
|
||||
93: 92(ptr) Variable Uniform
|
||||
94: TypeVector 6(float) 3
|
||||
95: TypeArray 94(fvec3) 50
|
||||
96(bi): TypeStruct 95
|
||||
97: TypeArray 96(bi) 88
|
||||
98: TypePointer Uniform 97
|
||||
99(bname): 98(ptr) Variable Uniform
|
||||
83: TypeImage 6(float) 2D sampled format:Unknown
|
||||
84: TypeSampledImage 83
|
||||
85: TypeArray 84 74
|
||||
86: TypePointer UniformConstant 85
|
||||
87(samp2Da): 86(ptr) Variable UniformConstant
|
||||
88: TypeMatrix 26(fvec4) 4
|
||||
89: 29(int) Constant 4
|
||||
90: TypeArray 88 89
|
||||
91: TypeArray 88 89
|
||||
92(bn): TypeStruct 90 91 88 88 88
|
||||
93: TypePointer Uniform 92(bn)
|
||||
94: 93(ptr) Variable Uniform
|
||||
95: TypeVector 6(float) 3
|
||||
96: TypeArray 95(fvec3) 50
|
||||
97(bi): TypeStruct 96
|
||||
98: TypeArray 97(bi) 89
|
||||
99: TypePointer Uniform 98
|
||||
100(bname): 99(ptr) Variable Uniform
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13: 12(ptr) Variable Function
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ Linked geometry stage:
|
|||
// Id's are bound by 71
|
||||
|
||||
Capability Geometry
|
||||
Capability GeometryPointSize
|
||||
Capability ClipDistance
|
||||
Capability GeometryStreams
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4 "main" 10 18 29 33 47 49 51 70
|
||||
|
|
|
|||
|
|
@ -5,12 +5,13 @@ Linked vertex stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 50
|
||||
// Id's are bound by 63
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 13 17 39 48 49
|
||||
EntryPoint Vertex 4 "main" 13 17 23 38 62
|
||||
Source GLSL 150
|
||||
Name 4 "main"
|
||||
Name 11 "gl_PerVertex"
|
||||
|
|
@ -20,25 +21,23 @@ Linked vertex stage:
|
|||
Name 13 ""
|
||||
Name 17 "iv4"
|
||||
Name 23 "ps"
|
||||
Name 35 "s1"
|
||||
MemberName 35(s1) 0 "a"
|
||||
MemberName 35(s1) 1 "a2"
|
||||
MemberName 35(s1) 2 "b"
|
||||
Name 37 "s2"
|
||||
MemberName 37(s2) 0 "c"
|
||||
MemberName 37(s2) 1 "d"
|
||||
Name 39 "s2out"
|
||||
Name 41 "i"
|
||||
Name 46 "ui"
|
||||
Name 48 "gl_VertexID"
|
||||
Name 49 "gl_InstanceID"
|
||||
Name 34 "s1"
|
||||
MemberName 34(s1) 0 "a"
|
||||
MemberName 34(s1) 1 "a2"
|
||||
MemberName 34(s1) 2 "b"
|
||||
Name 36 "s2"
|
||||
MemberName 36(s2) 0 "c"
|
||||
MemberName 36(s2) 1 "d"
|
||||
Name 38 "s2out"
|
||||
Name 40 "i"
|
||||
Name 47 "s2D"
|
||||
Name 62 "ui"
|
||||
MemberDecorate 11(gl_PerVertex) 0 Invariant
|
||||
MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
Decorate 11(gl_PerVertex) Block
|
||||
Decorate 48(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 49(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 47(s2D) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -55,41 +54,54 @@ Linked vertex stage:
|
|||
17(iv4): 16(ptr) Variable Input
|
||||
19: TypePointer Output 7(fvec4)
|
||||
21: 14(int) Constant 1
|
||||
22: TypePointer UniformConstant 6(float)
|
||||
23(ps): 22(ptr) Variable UniformConstant
|
||||
22: TypePointer Input 6(float)
|
||||
23(ps): 22(ptr) Variable Input
|
||||
25: TypePointer Output 6(float)
|
||||
27: 14(int) Constant 2
|
||||
28: 8(int) Constant 0
|
||||
29: TypePointer Input 6(float)
|
||||
33: 8(int) Constant 3
|
||||
34: TypeArray 7(fvec4) 33
|
||||
35(s1): TypeStruct 14(int) 14(int) 34
|
||||
36: TypeArray 35(s1) 9
|
||||
37(s2): TypeStruct 14(int) 36
|
||||
38: TypePointer Output 37(s2)
|
||||
39(s2out): 38(ptr) Variable Output
|
||||
40: TypePointer Function 14(int)
|
||||
45: TypePointer UniformConstant 14(int)
|
||||
46(ui): 45(ptr) Variable UniformConstant
|
||||
47: TypePointer Input 14(int)
|
||||
48(gl_VertexID): 47(ptr) Variable Input
|
||||
49(gl_InstanceID): 47(ptr) Variable Input
|
||||
32: 8(int) Constant 3
|
||||
33: TypeArray 7(fvec4) 32
|
||||
34(s1): TypeStruct 14(int) 14(int) 33
|
||||
35: TypeArray 34(s1) 9
|
||||
36(s2): TypeStruct 14(int) 35
|
||||
37: TypePointer Output 36(s2)
|
||||
38(s2out): 37(ptr) Variable Output
|
||||
39: TypePointer Function 14(int)
|
||||
44: TypeImage 6(float) 2D sampled format:Unknown
|
||||
45: TypeSampledImage 44
|
||||
46: TypePointer UniformConstant 45
|
||||
47(s2D): 46(ptr) Variable UniformConstant
|
||||
49: TypeVector 6(float) 2
|
||||
50: 6(float) Constant 1056964608
|
||||
51: 49(fvec2) ConstantComposite 50 50
|
||||
52: 6(float) Constant 0
|
||||
55: TypeVector 6(float) 3
|
||||
56: 55(fvec3) ConstantComposite 50 50 50
|
||||
59: 6(float) Constant 1078774989
|
||||
61: TypePointer Input 14(int)
|
||||
62(ui): 61(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
41(i): 40(ptr) Variable Function
|
||||
40(i): 39(ptr) Variable Function
|
||||
18: 7(fvec4) Load 17(iv4)
|
||||
20: 19(ptr) AccessChain 13 15
|
||||
Store 20 18
|
||||
24: 6(float) Load 23(ps)
|
||||
26: 25(ptr) AccessChain 13 21
|
||||
Store 26 24
|
||||
30: 29(ptr) AccessChain 17(iv4) 28
|
||||
31: 6(float) Load 30
|
||||
32: 25(ptr) AccessChain 13 27 27
|
||||
Store 32 31
|
||||
42: 14(int) Load 41(i)
|
||||
43: 6(float) Load 23(ps)
|
||||
44: 25(ptr) AccessChain 39(s2out) 21 42 27 27 33
|
||||
Store 44 43
|
||||
29: 22(ptr) AccessChain 17(iv4) 28
|
||||
30: 6(float) Load 29
|
||||
31: 25(ptr) AccessChain 13 27 27
|
||||
Store 31 30
|
||||
41: 14(int) Load 40(i)
|
||||
42: 6(float) Load 23(ps)
|
||||
43: 25(ptr) AccessChain 38(s2out) 21 41 27 27 32
|
||||
Store 43 42
|
||||
48: 45 Load 47(s2D)
|
||||
53: 7(fvec4) ImageSampleExplicitLod 48 51 Lod 52
|
||||
54: 45 Load 47(s2D)
|
||||
57: 7(fvec4) ImageSampleProjExplicitLod 54 56 Lod 52
|
||||
58: 45 Load 47(s2D)
|
||||
60: 7(fvec4) ImageSampleExplicitLod 58 51 Lod 59
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -1,76 +1,79 @@
|
|||
spv.300BuiltIns.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 40
|
||||
// Id's are bound by 42
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 11 23 25 33 39
|
||||
Source ESSL 300
|
||||
EntryPoint Vertex 4 "main" 10 14 21 34
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
Name 11 "gl_VertexID"
|
||||
Name 16 "j"
|
||||
Name 23 "gl_Position"
|
||||
Name 25 "ps"
|
||||
Name 33 "gl_PointSize"
|
||||
Name 39 "gl_InstanceID"
|
||||
Decorate 8(i) RelaxedPrecision
|
||||
Decorate 11(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 16(j) RelaxedPrecision
|
||||
Decorate 23(gl_Position) Invariant
|
||||
Decorate 23(gl_Position) BuiltIn Position
|
||||
Decorate 25(ps) RelaxedPrecision
|
||||
Decorate 33(gl_PointSize) BuiltIn PointSize
|
||||
Decorate 39(gl_InstanceID) BuiltIn InstanceId
|
||||
Name 8 "gl_PerVertex"
|
||||
MemberName 8(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 8(gl_PerVertex) 1 "gl_PointSize"
|
||||
Name 10 ""
|
||||
Name 14 "ps"
|
||||
Name 21 "gl_VertexIndex"
|
||||
Name 34 "gl_InstanceIndex"
|
||||
MemberDecorate 8(gl_PerVertex) 0 Invariant
|
||||
MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 8(gl_PerVertex) 1 BuiltIn PointSize
|
||||
Decorate 8(gl_PerVertex) Block
|
||||
Decorate 14(ps) RelaxedPrecision
|
||||
Decorate 15 RelaxedPrecision
|
||||
Decorate 21(gl_VertexIndex) BuiltIn VertexIndex
|
||||
Decorate 30 RelaxedPrecision
|
||||
Decorate 34(gl_InstanceIndex) BuiltIn InstanceIndex
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: 6(int) Constant 4
|
||||
10: TypePointer Input 6(int)
|
||||
11(gl_VertexID): 10(ptr) Variable Input
|
||||
14: 6(int) Constant 10
|
||||
20: TypeFloat 32
|
||||
21: TypeVector 20(float) 4
|
||||
22: TypePointer Output 21(fvec4)
|
||||
23(gl_Position): 22(ptr) Variable Output
|
||||
24: TypePointer Input 20(float)
|
||||
25(ps): 24(ptr) Variable Input
|
||||
32: TypePointer Output 20(float)
|
||||
33(gl_PointSize): 32(ptr) Variable Output
|
||||
39(gl_InstanceID): 10(ptr) Variable Input
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8(gl_PerVertex): TypeStruct 7(fvec4) 6(float)
|
||||
9: TypePointer Output 8(gl_PerVertex)
|
||||
10: 9(ptr) Variable Output
|
||||
11: TypeInt 32 1
|
||||
12: 11(int) Constant 0
|
||||
13: TypePointer Input 6(float)
|
||||
14(ps): 13(ptr) Variable Input
|
||||
17: TypePointer Output 7(fvec4)
|
||||
19: 11(int) Constant 4
|
||||
20: TypePointer Input 11(int)
|
||||
21(gl_VertexIndex): 20(ptr) Variable Input
|
||||
29: 11(int) Constant 1
|
||||
31: TypePointer Output 6(float)
|
||||
33: 11(int) Constant 5
|
||||
34(gl_InstanceIndex): 20(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(i): 7(ptr) Variable Function
|
||||
16(j): 7(ptr) Variable Function
|
||||
12: 6(int) Load 11(gl_VertexID)
|
||||
13: 6(int) IMul 9 12
|
||||
15: 6(int) ISub 13 14
|
||||
Store 8(i) 15
|
||||
17: 6(int) Load 11(gl_VertexID)
|
||||
18: 6(int) IMul 9 17
|
||||
19: 6(int) ISub 18 14
|
||||
Store 16(j) 19
|
||||
26: 20(float) Load 25(ps)
|
||||
27: 21(fvec4) CompositeConstruct 26 26 26 26
|
||||
Store 23(gl_Position) 27
|
||||
28: 6(int) Load 8(i)
|
||||
29: 20(float) ConvertSToF 28
|
||||
30: 21(fvec4) Load 23(gl_Position)
|
||||
31: 21(fvec4) VectorTimesScalar 30 29
|
||||
Store 23(gl_Position) 31
|
||||
34: 20(float) Load 25(ps)
|
||||
Store 33(gl_PointSize) 34
|
||||
35: 6(int) Load 16(j)
|
||||
36: 20(float) ConvertSToF 35
|
||||
37: 20(float) Load 33(gl_PointSize)
|
||||
38: 20(float) FMul 37 36
|
||||
Store 33(gl_PointSize) 38
|
||||
15: 6(float) Load 14(ps)
|
||||
16: 7(fvec4) CompositeConstruct 15 15 15 15
|
||||
18: 17(ptr) AccessChain 10 12
|
||||
Store 18 16
|
||||
22: 11(int) Load 21(gl_VertexIndex)
|
||||
23: 11(int) ISub 19 22
|
||||
24: 6(float) ConvertSToF 23
|
||||
25: 17(ptr) AccessChain 10 12
|
||||
26: 7(fvec4) Load 25
|
||||
27: 7(fvec4) VectorTimesScalar 26 24
|
||||
28: 17(ptr) AccessChain 10 12
|
||||
Store 28 27
|
||||
30: 6(float) Load 14(ps)
|
||||
32: 31(ptr) AccessChain 10 29
|
||||
Store 32 30
|
||||
35: 11(int) Load 34(gl_InstanceIndex)
|
||||
36: 11(int) ISub 33 35
|
||||
37: 6(float) ConvertSToF 36
|
||||
38: 31(ptr) AccessChain 10 29
|
||||
39: 6(float) Load 38
|
||||
40: 6(float) FMul 39 37
|
||||
41: 31(ptr) AccessChain 10 29
|
||||
Store 41 40
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
spv.300layout.frag
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
|
@ -11,8 +13,8 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 9 11 15 26 29
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source ESSL 300
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 9 "c"
|
||||
Name 11 "color"
|
||||
|
|
@ -25,11 +27,17 @@ Linked fragment stage:
|
|||
Decorate 9(c) RelaxedPrecision
|
||||
Decorate 9(c) Location 7
|
||||
Decorate 11(color) RelaxedPrecision
|
||||
Decorate 12 RelaxedPrecision
|
||||
MemberDecorate 13(S) 0 RelaxedPrecision
|
||||
MemberDecorate 13(S) 1 RelaxedPrecision
|
||||
Decorate 19 RelaxedPrecision
|
||||
Decorate 20 RelaxedPrecision
|
||||
Decorate 26(p) RelaxedPrecision
|
||||
Decorate 26(p) Location 3
|
||||
Decorate 29(pos) RelaxedPrecision
|
||||
Decorate 30 RelaxedPrecision
|
||||
Decorate 33 RelaxedPrecision
|
||||
Decorate 34 RelaxedPrecision
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
|
|||
|
|
@ -1,17 +1,19 @@
|
|||
spv.300layout.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 165
|
||||
// Id's are bound by 163
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 9 11 99 101 109 121 129 163 164
|
||||
Source ESSL 300
|
||||
EntryPoint Vertex 4 "main" 9 11 98 100 108 114 120 128
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 9 "pos"
|
||||
Name 11 "p"
|
||||
|
|
@ -27,21 +29,19 @@ Linked vertex stage:
|
|||
MemberName 45(T3) 2 "N2"
|
||||
MemberName 45(T3) 3 "uv3a"
|
||||
Name 47 ""
|
||||
Name 79 "T2"
|
||||
MemberName 79(T2) 0 "b"
|
||||
MemberName 79(T2) 1 "t2m"
|
||||
Name 81 ""
|
||||
Name 99 "color"
|
||||
Name 101 "c"
|
||||
Name 109 "iout"
|
||||
Name 115 "uiuin"
|
||||
Name 121 "aiv2"
|
||||
Name 127 "S"
|
||||
MemberName 127(S) 0 "c"
|
||||
MemberName 127(S) 1 "f"
|
||||
Name 129 "s"
|
||||
Name 163 "gl_VertexID"
|
||||
Name 164 "gl_InstanceID"
|
||||
Name 78 "T2"
|
||||
MemberName 78(T2) 0 "b"
|
||||
MemberName 78(T2) 1 "t2m"
|
||||
Name 80 ""
|
||||
Name 98 "color"
|
||||
Name 100 "c"
|
||||
Name 108 "iout"
|
||||
Name 114 "uiuin"
|
||||
Name 120 "aiv2"
|
||||
Name 126 "S"
|
||||
MemberName 126(S) 0 "c"
|
||||
MemberName 126(S) 1 "f"
|
||||
Name 128 "s"
|
||||
Decorate 11(p) Location 3
|
||||
MemberDecorate 17(Transform) 0 RowMajor
|
||||
MemberDecorate 17(Transform) 0 Offset 0
|
||||
|
|
@ -54,19 +54,29 @@ Linked vertex stage:
|
|||
MemberDecorate 17(Transform) 2 MatrixStride 16
|
||||
MemberDecorate 17(Transform) 3 Offset 176
|
||||
Decorate 17(Transform) Block
|
||||
Decorate 19(tblock) DescriptorSet 0
|
||||
Decorate 44 ArrayStride 16
|
||||
MemberDecorate 45(T3) 0 ColMajor
|
||||
MemberDecorate 45(T3) 0 Offset 0
|
||||
MemberDecorate 45(T3) 0 MatrixStride 16
|
||||
MemberDecorate 45(T3) 1 RowMajor
|
||||
MemberDecorate 45(T3) 1 Offset 64
|
||||
MemberDecorate 45(T3) 1 MatrixStride 16
|
||||
MemberDecorate 45(T3) 2 ColMajor
|
||||
Decorate 45(T3) GLSLShared
|
||||
MemberDecorate 45(T3) 2 Offset 128
|
||||
MemberDecorate 45(T3) 2 MatrixStride 16
|
||||
MemberDecorate 45(T3) 3 Offset 160
|
||||
Decorate 45(T3) Block
|
||||
MemberDecorate 79(T2) 1 RowMajor
|
||||
Decorate 79(T2) GLSLShared
|
||||
Decorate 79(T2) Block
|
||||
Decorate 101(c) Location 7
|
||||
Decorate 109(iout) Flat
|
||||
Decorate 121(aiv2) Location 9
|
||||
Decorate 163(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 164(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 47 DescriptorSet 0
|
||||
MemberDecorate 78(T2) 0 Offset 0
|
||||
MemberDecorate 78(T2) 1 RowMajor
|
||||
MemberDecorate 78(T2) 1 Offset 16
|
||||
MemberDecorate 78(T2) 1 MatrixStride 16
|
||||
Decorate 78(T2) Block
|
||||
Decorate 80 DescriptorSet 0
|
||||
Decorate 100(c) Location 7
|
||||
Decorate 108(iout) Flat
|
||||
Decorate 120(aiv2) Location 9
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -93,42 +103,40 @@ Linked vertex stage:
|
|||
45(T3): TypeStruct 13 13 40 44
|
||||
46: TypePointer Uniform 45(T3)
|
||||
47: 46(ptr) Variable Uniform
|
||||
78: TypeBool
|
||||
79(T2): TypeStruct 78(bool) 13
|
||||
80: TypePointer Uniform 79(T2)
|
||||
81: 80(ptr) Variable Uniform
|
||||
98: TypePointer Output 14(fvec3)
|
||||
99(color): 98(ptr) Variable Output
|
||||
100: TypePointer Input 14(fvec3)
|
||||
101(c): 100(ptr) Variable Input
|
||||
103: 16(int) Constant 2
|
||||
104: TypePointer Uniform 15
|
||||
108: TypePointer Output 16(int)
|
||||
109(iout): 108(ptr) Variable Output
|
||||
110: 16(int) Constant 3
|
||||
111: TypePointer Uniform 16(int)
|
||||
114: TypePointer UniformConstant 41(int)
|
||||
115(uiuin): 114(ptr) Variable UniformConstant
|
||||
119: TypeVector 16(int) 2
|
||||
120: TypePointer Input 119(ivec2)
|
||||
121(aiv2): 120(ptr) Variable Input
|
||||
122: 41(int) Constant 1
|
||||
123: TypePointer Input 16(int)
|
||||
127(S): TypeStruct 14(fvec3) 6(float)
|
||||
128: TypePointer Output 127(S)
|
||||
129(s): 128(ptr) Variable Output
|
||||
132: 41(int) Constant 0
|
||||
133: TypePointer Input 6(float)
|
||||
136: TypePointer Output 6(float)
|
||||
78(T2): TypeStruct 41(int) 13
|
||||
79: TypePointer Uniform 78(T2)
|
||||
80: 79(ptr) Variable Uniform
|
||||
97: TypePointer Output 14(fvec3)
|
||||
98(color): 97(ptr) Variable Output
|
||||
99: TypePointer Input 14(fvec3)
|
||||
100(c): 99(ptr) Variable Input
|
||||
102: 16(int) Constant 2
|
||||
103: TypePointer Uniform 15
|
||||
107: TypePointer Output 16(int)
|
||||
108(iout): 107(ptr) Variable Output
|
||||
109: 16(int) Constant 3
|
||||
110: TypePointer Uniform 16(int)
|
||||
113: TypePointer Input 41(int)
|
||||
114(uiuin): 113(ptr) Variable Input
|
||||
118: TypeVector 16(int) 2
|
||||
119: TypePointer Input 118(ivec2)
|
||||
120(aiv2): 119(ptr) Variable Input
|
||||
121: 41(int) Constant 1
|
||||
122: TypePointer Input 16(int)
|
||||
126(S): TypeStruct 14(fvec3) 6(float)
|
||||
127: TypePointer Output 126(S)
|
||||
128(s): 127(ptr) Variable Output
|
||||
131: 41(int) Constant 0
|
||||
132: TypePointer Input 6(float)
|
||||
135: TypePointer Output 6(float)
|
||||
137: TypeBool
|
||||
138: TypePointer Uniform 14(fvec3)
|
||||
141: 6(float) Constant 1065353216
|
||||
142: 14(fvec3) ConstantComposite 141 141 141
|
||||
143: TypeVector 78(bool) 3
|
||||
143: TypeVector 137(bool) 3
|
||||
149: TypePointer Uniform 42(ivec3)
|
||||
152: 41(int) Constant 5
|
||||
153: 42(ivec3) ConstantComposite 152 152 152
|
||||
163(gl_VertexID): 123(ptr) Variable Input
|
||||
164(gl_InstanceID): 123(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12: 7(fvec4) Load 11(p)
|
||||
|
|
@ -179,63 +187,63 @@ Linked vertex stage:
|
|||
75: 7(fvec4) CompositeExtract 64 3
|
||||
76: 7(fvec4) FAdd 74 75
|
||||
77: 13 CompositeConstruct 67 70 73 76
|
||||
82: 21(ptr) AccessChain 81 24
|
||||
83: 13 Load 82
|
||||
84: 7(fvec4) CompositeExtract 77 0
|
||||
85: 7(fvec4) CompositeExtract 83 0
|
||||
86: 7(fvec4) FAdd 84 85
|
||||
87: 7(fvec4) CompositeExtract 77 1
|
||||
88: 7(fvec4) CompositeExtract 83 1
|
||||
89: 7(fvec4) FAdd 87 88
|
||||
90: 7(fvec4) CompositeExtract 77 2
|
||||
91: 7(fvec4) CompositeExtract 83 2
|
||||
92: 7(fvec4) FAdd 90 91
|
||||
93: 7(fvec4) CompositeExtract 77 3
|
||||
94: 7(fvec4) CompositeExtract 83 3
|
||||
95: 7(fvec4) FAdd 93 94
|
||||
96: 13 CompositeConstruct 86 89 92 95
|
||||
97: 7(fvec4) VectorTimesMatrix 12 96
|
||||
Store 9(pos) 97
|
||||
102: 14(fvec3) Load 101(c)
|
||||
105: 104(ptr) AccessChain 19(tblock) 103
|
||||
106: 15 Load 105
|
||||
107: 14(fvec3) VectorTimesMatrix 102 106
|
||||
Store 99(color) 107
|
||||
112: 111(ptr) AccessChain 19(tblock) 110
|
||||
113: 16(int) Load 112
|
||||
116: 41(int) Load 115(uiuin)
|
||||
117: 16(int) Bitcast 116
|
||||
118: 16(int) IAdd 113 117
|
||||
124: 123(ptr) AccessChain 121(aiv2) 122
|
||||
125: 16(int) Load 124
|
||||
126: 16(int) IAdd 118 125
|
||||
Store 109(iout) 126
|
||||
130: 14(fvec3) Load 101(c)
|
||||
131: 98(ptr) AccessChain 129(s) 20
|
||||
Store 131 130
|
||||
134: 133(ptr) AccessChain 11(p) 132
|
||||
135: 6(float) Load 134
|
||||
137: 136(ptr) AccessChain 129(s) 24
|
||||
Store 137 135
|
||||
139: 138(ptr) AccessChain 47 103 24
|
||||
81: 21(ptr) AccessChain 80 24
|
||||
82: 13 Load 81
|
||||
83: 7(fvec4) CompositeExtract 77 0
|
||||
84: 7(fvec4) CompositeExtract 82 0
|
||||
85: 7(fvec4) FAdd 83 84
|
||||
86: 7(fvec4) CompositeExtract 77 1
|
||||
87: 7(fvec4) CompositeExtract 82 1
|
||||
88: 7(fvec4) FAdd 86 87
|
||||
89: 7(fvec4) CompositeExtract 77 2
|
||||
90: 7(fvec4) CompositeExtract 82 2
|
||||
91: 7(fvec4) FAdd 89 90
|
||||
92: 7(fvec4) CompositeExtract 77 3
|
||||
93: 7(fvec4) CompositeExtract 82 3
|
||||
94: 7(fvec4) FAdd 92 93
|
||||
95: 13 CompositeConstruct 85 88 91 94
|
||||
96: 7(fvec4) VectorTimesMatrix 12 95
|
||||
Store 9(pos) 96
|
||||
101: 14(fvec3) Load 100(c)
|
||||
104: 103(ptr) AccessChain 19(tblock) 102
|
||||
105: 15 Load 104
|
||||
106: 14(fvec3) VectorTimesMatrix 101 105
|
||||
Store 98(color) 106
|
||||
111: 110(ptr) AccessChain 19(tblock) 109
|
||||
112: 16(int) Load 111
|
||||
115: 41(int) Load 114(uiuin)
|
||||
116: 16(int) Bitcast 115
|
||||
117: 16(int) IAdd 112 116
|
||||
123: 122(ptr) AccessChain 120(aiv2) 121
|
||||
124: 16(int) Load 123
|
||||
125: 16(int) IAdd 117 124
|
||||
Store 108(iout) 125
|
||||
129: 14(fvec3) Load 100(c)
|
||||
130: 97(ptr) AccessChain 128(s) 20
|
||||
Store 130 129
|
||||
133: 132(ptr) AccessChain 11(p) 131
|
||||
134: 6(float) Load 133
|
||||
136: 135(ptr) AccessChain 128(s) 24
|
||||
Store 136 134
|
||||
139: 138(ptr) AccessChain 47 102 24
|
||||
140: 14(fvec3) Load 139
|
||||
144: 143(bvec3) FOrdNotEqual 140 142
|
||||
145: 78(bool) Any 144
|
||||
146: 78(bool) LogicalNot 145
|
||||
145: 137(bool) Any 144
|
||||
146: 137(bool) LogicalNot 145
|
||||
SelectionMerge 148 None
|
||||
BranchConditional 146 147 148
|
||||
147: Label
|
||||
150: 149(ptr) AccessChain 47 110 103
|
||||
150: 149(ptr) AccessChain 47 109 102
|
||||
151: 42(ivec3) Load 150
|
||||
154: 143(bvec3) INotEqual 151 153
|
||||
155: 78(bool) Any 154
|
||||
155: 137(bool) Any 154
|
||||
Branch 148
|
||||
148: Label
|
||||
156: 78(bool) Phi 145 5 155 147
|
||||
156: 137(bool) Phi 145 5 155 147
|
||||
SelectionMerge 158 None
|
||||
BranchConditional 156 157 158
|
||||
157: Label
|
||||
159: 98(ptr) AccessChain 129(s) 20
|
||||
159: 97(ptr) AccessChain 128(s) 20
|
||||
160: 14(fvec3) Load 159
|
||||
161: 14(fvec3) CompositeConstruct 141 141 141
|
||||
162: 14(fvec3) FAdd 160 161
|
||||
|
|
|
|||
|
|
@ -1,17 +1,19 @@
|
|||
spv.300layoutp.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 117
|
||||
// Id's are bound by 115
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 9 11 51 53 61 73 81 115 116
|
||||
Source ESSL 300
|
||||
EntryPoint Vertex 4 "main" 9 11 50 52 60 72 80
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 9 "pos"
|
||||
Name 11 "p"
|
||||
|
|
@ -27,21 +29,19 @@ Linked vertex stage:
|
|||
MemberName 33(T3) 2 "N2"
|
||||
MemberName 33(T3) 3 "uv3a"
|
||||
Name 35 ""
|
||||
Name 43 "T2"
|
||||
MemberName 43(T2) 0 "b"
|
||||
MemberName 43(T2) 1 "t2m"
|
||||
Name 45 ""
|
||||
Name 51 "color"
|
||||
Name 53 "c"
|
||||
Name 61 "iout"
|
||||
Name 67 "uiuin"
|
||||
Name 73 "aiv2"
|
||||
Name 79 "S"
|
||||
MemberName 79(S) 0 "c"
|
||||
MemberName 79(S) 1 "f"
|
||||
Name 81 "s"
|
||||
Name 115 "gl_VertexID"
|
||||
Name 116 "gl_InstanceID"
|
||||
Name 42 "T2"
|
||||
MemberName 42(T2) 0 "b"
|
||||
MemberName 42(T2) 1 "t2m"
|
||||
Name 44 ""
|
||||
Name 50 "color"
|
||||
Name 52 "c"
|
||||
Name 60 "iout"
|
||||
Name 66 "uiuin"
|
||||
Name 72 "aiv2"
|
||||
Name 78 "S"
|
||||
MemberName 78(S) 0 "c"
|
||||
MemberName 78(S) 1 "f"
|
||||
Name 80 "s"
|
||||
Decorate 11(p) Location 3
|
||||
MemberDecorate 17(Transform) 0 RowMajor
|
||||
MemberDecorate 17(Transform) 0 Offset 0
|
||||
|
|
@ -54,19 +54,29 @@ Linked vertex stage:
|
|||
MemberDecorate 17(Transform) 2 MatrixStride 16
|
||||
MemberDecorate 17(Transform) 3 Offset 176
|
||||
Decorate 17(Transform) Block
|
||||
Decorate 19(tblock) DescriptorSet 0
|
||||
Decorate 32 ArrayStride 16
|
||||
MemberDecorate 33(T3) 0 ColMajor
|
||||
MemberDecorate 33(T3) 0 Offset 0
|
||||
MemberDecorate 33(T3) 0 MatrixStride 16
|
||||
MemberDecorate 33(T3) 1 RowMajor
|
||||
MemberDecorate 33(T3) 1 Offset 64
|
||||
MemberDecorate 33(T3) 1 MatrixStride 16
|
||||
MemberDecorate 33(T3) 2 ColMajor
|
||||
Decorate 33(T3) GLSLShared
|
||||
MemberDecorate 33(T3) 2 Offset 128
|
||||
MemberDecorate 33(T3) 2 MatrixStride 16
|
||||
MemberDecorate 33(T3) 3 Offset 160
|
||||
Decorate 33(T3) Block
|
||||
MemberDecorate 43(T2) 1 RowMajor
|
||||
Decorate 43(T2) GLSLShared
|
||||
Decorate 43(T2) Block
|
||||
Decorate 53(c) Location 7
|
||||
Decorate 61(iout) Flat
|
||||
Decorate 73(aiv2) Location 9
|
||||
Decorate 115(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 116(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 35 DescriptorSet 0
|
||||
MemberDecorate 42(T2) 0 Offset 0
|
||||
MemberDecorate 42(T2) 1 RowMajor
|
||||
MemberDecorate 42(T2) 1 Offset 16
|
||||
MemberDecorate 42(T2) 1 MatrixStride 16
|
||||
Decorate 42(T2) Block
|
||||
Decorate 44 DescriptorSet 0
|
||||
Decorate 52(c) Location 7
|
||||
Decorate 60(iout) Flat
|
||||
Decorate 72(aiv2) Location 9
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -93,42 +103,40 @@ Linked vertex stage:
|
|||
33(T3): TypeStruct 13 13 28 32
|
||||
34: TypePointer Uniform 33(T3)
|
||||
35: 34(ptr) Variable Uniform
|
||||
42: TypeBool
|
||||
43(T2): TypeStruct 42(bool) 13
|
||||
44: TypePointer Uniform 43(T2)
|
||||
45: 44(ptr) Variable Uniform
|
||||
50: TypePointer Output 14(fvec3)
|
||||
51(color): 50(ptr) Variable Output
|
||||
52: TypePointer Input 14(fvec3)
|
||||
53(c): 52(ptr) Variable Input
|
||||
55: 16(int) Constant 2
|
||||
56: TypePointer Uniform 15
|
||||
60: TypePointer Output 16(int)
|
||||
61(iout): 60(ptr) Variable Output
|
||||
62: 16(int) Constant 3
|
||||
63: TypePointer Uniform 16(int)
|
||||
66: TypePointer UniformConstant 29(int)
|
||||
67(uiuin): 66(ptr) Variable UniformConstant
|
||||
71: TypeVector 16(int) 2
|
||||
72: TypePointer Input 71(ivec2)
|
||||
73(aiv2): 72(ptr) Variable Input
|
||||
74: 29(int) Constant 1
|
||||
75: TypePointer Input 16(int)
|
||||
79(S): TypeStruct 14(fvec3) 6(float)
|
||||
80: TypePointer Output 79(S)
|
||||
81(s): 80(ptr) Variable Output
|
||||
84: 29(int) Constant 0
|
||||
85: TypePointer Input 6(float)
|
||||
88: TypePointer Output 6(float)
|
||||
42(T2): TypeStruct 29(int) 13
|
||||
43: TypePointer Uniform 42(T2)
|
||||
44: 43(ptr) Variable Uniform
|
||||
49: TypePointer Output 14(fvec3)
|
||||
50(color): 49(ptr) Variable Output
|
||||
51: TypePointer Input 14(fvec3)
|
||||
52(c): 51(ptr) Variable Input
|
||||
54: 16(int) Constant 2
|
||||
55: TypePointer Uniform 15
|
||||
59: TypePointer Output 16(int)
|
||||
60(iout): 59(ptr) Variable Output
|
||||
61: 16(int) Constant 3
|
||||
62: TypePointer Uniform 16(int)
|
||||
65: TypePointer Private 29(int)
|
||||
66(uiuin): 65(ptr) Variable Private
|
||||
70: TypeVector 16(int) 2
|
||||
71: TypePointer Input 70(ivec2)
|
||||
72(aiv2): 71(ptr) Variable Input
|
||||
73: 29(int) Constant 1
|
||||
74: TypePointer Input 16(int)
|
||||
78(S): TypeStruct 14(fvec3) 6(float)
|
||||
79: TypePointer Output 78(S)
|
||||
80(s): 79(ptr) Variable Output
|
||||
83: 29(int) Constant 0
|
||||
84: TypePointer Input 6(float)
|
||||
87: TypePointer Output 6(float)
|
||||
89: TypeBool
|
||||
90: TypePointer Uniform 14(fvec3)
|
||||
93: 6(float) Constant 1065353216
|
||||
94: 14(fvec3) ConstantComposite 93 93 93
|
||||
95: TypeVector 42(bool) 3
|
||||
95: TypeVector 89(bool) 3
|
||||
101: TypePointer Uniform 30(ivec3)
|
||||
104: 29(int) Constant 5
|
||||
105: 30(ivec3) ConstantComposite 104 104 104
|
||||
115(gl_VertexID): 75(ptr) Variable Input
|
||||
116(gl_InstanceID): 75(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12: 7(fvec4) Load 11(p)
|
||||
|
|
@ -143,51 +151,51 @@ Linked vertex stage:
|
|||
39: 21(ptr) AccessChain 35 20
|
||||
40: 13 Load 39
|
||||
41: 13 MatrixTimesMatrix 38 40
|
||||
46: 21(ptr) AccessChain 45 24
|
||||
47: 13 Load 46
|
||||
48: 13 MatrixTimesMatrix 41 47
|
||||
49: 7(fvec4) VectorTimesMatrix 12 48
|
||||
Store 9(pos) 49
|
||||
54: 14(fvec3) Load 53(c)
|
||||
57: 56(ptr) AccessChain 19(tblock) 55
|
||||
58: 15 Load 57
|
||||
59: 14(fvec3) VectorTimesMatrix 54 58
|
||||
Store 51(color) 59
|
||||
64: 63(ptr) AccessChain 19(tblock) 62
|
||||
65: 16(int) Load 64
|
||||
68: 29(int) Load 67(uiuin)
|
||||
69: 16(int) Bitcast 68
|
||||
70: 16(int) IAdd 65 69
|
||||
76: 75(ptr) AccessChain 73(aiv2) 74
|
||||
77: 16(int) Load 76
|
||||
78: 16(int) IAdd 70 77
|
||||
Store 61(iout) 78
|
||||
82: 14(fvec3) Load 53(c)
|
||||
83: 50(ptr) AccessChain 81(s) 20
|
||||
Store 83 82
|
||||
86: 85(ptr) AccessChain 11(p) 84
|
||||
87: 6(float) Load 86
|
||||
89: 88(ptr) AccessChain 81(s) 24
|
||||
Store 89 87
|
||||
91: 90(ptr) AccessChain 35 55 24
|
||||
45: 21(ptr) AccessChain 44 24
|
||||
46: 13 Load 45
|
||||
47: 13 MatrixTimesMatrix 41 46
|
||||
48: 7(fvec4) VectorTimesMatrix 12 47
|
||||
Store 9(pos) 48
|
||||
53: 14(fvec3) Load 52(c)
|
||||
56: 55(ptr) AccessChain 19(tblock) 54
|
||||
57: 15 Load 56
|
||||
58: 14(fvec3) VectorTimesMatrix 53 57
|
||||
Store 50(color) 58
|
||||
63: 62(ptr) AccessChain 19(tblock) 61
|
||||
64: 16(int) Load 63
|
||||
67: 29(int) Load 66(uiuin)
|
||||
68: 16(int) Bitcast 67
|
||||
69: 16(int) IAdd 64 68
|
||||
75: 74(ptr) AccessChain 72(aiv2) 73
|
||||
76: 16(int) Load 75
|
||||
77: 16(int) IAdd 69 76
|
||||
Store 60(iout) 77
|
||||
81: 14(fvec3) Load 52(c)
|
||||
82: 49(ptr) AccessChain 80(s) 20
|
||||
Store 82 81
|
||||
85: 84(ptr) AccessChain 11(p) 83
|
||||
86: 6(float) Load 85
|
||||
88: 87(ptr) AccessChain 80(s) 24
|
||||
Store 88 86
|
||||
91: 90(ptr) AccessChain 35 54 24
|
||||
92: 14(fvec3) Load 91
|
||||
96: 95(bvec3) FOrdNotEqual 92 94
|
||||
97: 42(bool) Any 96
|
||||
98: 42(bool) LogicalNot 97
|
||||
97: 89(bool) Any 96
|
||||
98: 89(bool) LogicalNot 97
|
||||
SelectionMerge 100 None
|
||||
BranchConditional 98 99 100
|
||||
99: Label
|
||||
102: 101(ptr) AccessChain 35 62 55
|
||||
102: 101(ptr) AccessChain 35 61 54
|
||||
103: 30(ivec3) Load 102
|
||||
106: 95(bvec3) INotEqual 103 105
|
||||
107: 42(bool) Any 106
|
||||
107: 89(bool) Any 106
|
||||
Branch 100
|
||||
100: Label
|
||||
108: 42(bool) Phi 97 5 107 99
|
||||
108: 89(bool) Phi 97 5 107 99
|
||||
SelectionMerge 110 None
|
||||
BranchConditional 108 109 110
|
||||
109: Label
|
||||
111: 50(ptr) AccessChain 81(s) 20
|
||||
111: 49(ptr) AccessChain 80(s) 20
|
||||
112: 14(fvec3) Load 111
|
||||
113: 14(fvec3) CompositeConstruct 93 93 93
|
||||
114: 14(fvec3) FAdd 112 113
|
||||
|
|
|
|||
|
|
@ -33,19 +33,29 @@ Linked compute stage:
|
|||
MemberName 48(outs) 1 "va"
|
||||
Name 50 "outnames"
|
||||
Name 53 "gl_LocalInvocationID"
|
||||
Decorate 13(outb) GLSLShared
|
||||
Decorate 12 ArrayStride 16
|
||||
MemberDecorate 13(outb) 0 Offset 0
|
||||
MemberDecorate 13(outb) 1 Offset 4
|
||||
MemberDecorate 13(outb) 2 Offset 8
|
||||
MemberDecorate 13(outb) 3 Offset 16
|
||||
Decorate 13(outb) BufferBlock
|
||||
Decorate 24(outbna) GLSLShared
|
||||
Decorate 15(outbname) DescriptorSet 0
|
||||
MemberDecorate 24(outbna) 0 Offset 0
|
||||
MemberDecorate 24(outbna) 1 Offset 16
|
||||
Decorate 24(outbna) BufferBlock
|
||||
Decorate 48(outs) GLSLShared
|
||||
Decorate 26(outbnamena) DescriptorSet 0
|
||||
Decorate 47 ArrayStride 16
|
||||
MemberDecorate 48(outs) 0 Offset 0
|
||||
MemberDecorate 48(outs) 1 Offset 16
|
||||
Decorate 48(outs) BufferBlock
|
||||
Decorate 50(outnames) DescriptorSet 0
|
||||
Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 66 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: 6(int) Constant 1
|
||||
8: 6(int) Constant 1023
|
||||
8: 6(int) Constant 4062
|
||||
9: 6(int) Constant 0
|
||||
10: TypeFloat 32
|
||||
11: TypeVector 10(float) 3
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ Linked geometry stage:
|
|||
// Id's are bound by 32
|
||||
|
||||
Capability Geometry
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4 "main" 13 20
|
||||
|
|
@ -29,8 +30,6 @@ Linked geometry stage:
|
|||
MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 11(gl_PerVertex) 1 BuiltIn ClipDistance
|
||||
Decorate 11(gl_PerVertex) Block
|
||||
Decorate 11(gl_PerVertex) Stream 0
|
||||
Decorate 13 Stream 0
|
||||
MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 16(gl_PerVertex) 1 BuiltIn ClipDistance
|
||||
Decorate 16(gl_PerVertex) Block
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -10,6 +10,8 @@ Linked tessellation control stage:
|
|||
// Id's are bound by 93
|
||||
|
||||
Capability Tessellation
|
||||
Capability TessellationPointSize
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TessellationControl 4 "main" 23 40 43 46 52 66 73 79 83 84 87 88 91 92
|
||||
|
|
@ -71,7 +73,7 @@ Linked tessellation control stage:
|
|||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: 6(int) Constant 1
|
||||
8: 6(int) Constant 1023
|
||||
8: 6(int) Constant 4062
|
||||
9: 6(int) Constant 0
|
||||
10: TypeInt 32 1
|
||||
11: TypePointer Function 10(int)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ Linked tessellation evaluation stage:
|
|||
// Id's are bound by 98
|
||||
|
||||
Capability Tessellation
|
||||
Capability TessellationPointSize
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TessellationEvaluation 4 "main" 21 38 41 47 53 61 68 77 81 82 86 90 93 94 97
|
||||
|
|
|
|||
|
|
@ -7,9 +7,12 @@ Linked geometry stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 74
|
||||
// Id's are bound by 72
|
||||
|
||||
Capability Geometry
|
||||
Capability GeometryPointSize
|
||||
Capability GeometryStreams
|
||||
Capability MultiViewport
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4 "main" 14 23 28 33 46
|
||||
|
|
@ -34,7 +37,6 @@ Linked geometry stage:
|
|||
Name 46 "coord"
|
||||
Name 64 "i"
|
||||
Name 67 "indexable"
|
||||
Name 73 "v4"
|
||||
MemberDecorate 9(gl_PerVertex) 0 BuiltIn PointSize
|
||||
Decorate 9(gl_PerVertex) Block
|
||||
MemberDecorate 21(gl_PerVertex) 0 BuiltIn PointSize
|
||||
|
|
@ -44,6 +46,7 @@ Linked geometry stage:
|
|||
Decorate 28(gl_ViewportIndex) Stream 0
|
||||
Decorate 28(gl_ViewportIndex) BuiltIn ViewportIndex
|
||||
Decorate 33(gl_InvocationID) BuiltIn InvocationId
|
||||
Decorate 41(s2D) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -92,12 +95,10 @@ Linked geometry stage:
|
|||
60: 15(int) Constant 2
|
||||
61: 50(ivec2) ConstantComposite 60 16
|
||||
62: 52 ConstantComposite 53 55 57 59 61
|
||||
63: TypePointer UniformConstant 15(int)
|
||||
64(i): 63(ptr) Variable UniformConstant
|
||||
63: TypePointer Private 15(int)
|
||||
64(i): 63(ptr) Variable Private
|
||||
66: TypePointer Function 52
|
||||
68: TypePointer Function 50(ivec2)
|
||||
72: TypePointer UniformConstant 35(fvec4)
|
||||
73(v4): 72(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(p): 7(ptr) Variable Function
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
spv.430.vert
|
||||
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
|
@ -7,50 +7,76 @@ Linked vertex stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 63
|
||||
// Id's are bound by 66
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 12 23 34 44 45 61 62
|
||||
Source GLSL 430
|
||||
EntryPoint Vertex 4 "main" 12 23 34 38 41 42 62 65
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 10 "gl_PerVertex"
|
||||
MemberName 10(gl_PerVertex) 0 "gl_ClipDistance"
|
||||
Name 12 ""
|
||||
Name 23 "bad"
|
||||
Name 34 "badorder3"
|
||||
Name 39 "f"
|
||||
Name 43 "uv4"
|
||||
Name 44 "badorder"
|
||||
Name 45 "badorder2"
|
||||
Name 46 "boundblock"
|
||||
MemberName 46(boundblock) 0 "aoeu"
|
||||
Name 48 "boundInst"
|
||||
Name 49 "anonblock"
|
||||
MemberName 49(anonblock) 0 "aoeu"
|
||||
Name 51 ""
|
||||
Name 55 "sampb1"
|
||||
Name 58 "sampb2"
|
||||
Name 59 "sampb4"
|
||||
Name 61 "gl_VertexID"
|
||||
Name 62 "gl_InstanceID"
|
||||
Name 38 "f"
|
||||
Name 41 "badorder"
|
||||
Name 42 "badorder2"
|
||||
Name 43 "boundblock"
|
||||
MemberName 43(boundblock) 0 "aoeu"
|
||||
Name 45 "boundInst"
|
||||
Name 46 "anonblock"
|
||||
MemberName 46(anonblock) 0 "aoeu"
|
||||
Name 48 ""
|
||||
Name 52 "sampb1"
|
||||
Name 55 "sampb2"
|
||||
Name 56 "sampb4"
|
||||
Name 59 "S"
|
||||
MemberName 59(S) 0 "a"
|
||||
MemberName 59(S) 1 "b"
|
||||
MemberName 59(S) 2 "c"
|
||||
Name 60 "SS"
|
||||
MemberName 60(SS) 0 "b"
|
||||
MemberName 60(SS) 1 "s"
|
||||
MemberName 60(SS) 2 "c"
|
||||
Name 62 "var"
|
||||
Name 63 "MS"
|
||||
MemberName 63(MS) 0 "f"
|
||||
Name 65 "outMS"
|
||||
MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance
|
||||
Decorate 10(gl_PerVertex) Block
|
||||
Decorate 34(badorder3) Flat
|
||||
Decorate 43(uv4) Location 4
|
||||
Decorate 45(badorder2) Invariant
|
||||
Decorate 46(boundblock) GLSLShared
|
||||
Decorate 46(boundblock) Block
|
||||
Decorate 48(boundInst) Binding 3
|
||||
Decorate 49(anonblock) GLSLShared
|
||||
Decorate 49(anonblock) Block
|
||||
Decorate 51 Binding 7
|
||||
Decorate 55(sampb1) Binding 4
|
||||
Decorate 58(sampb2) Binding 5
|
||||
Decorate 59(sampb4) Binding 31
|
||||
Decorate 61(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 62(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 42(badorder2) Invariant
|
||||
MemberDecorate 43(boundblock) 0 Offset 0
|
||||
Decorate 43(boundblock) Block
|
||||
Decorate 45(boundInst) DescriptorSet 0
|
||||
Decorate 45(boundInst) Binding 3
|
||||
MemberDecorate 46(anonblock) 0 Offset 0
|
||||
Decorate 46(anonblock) Block
|
||||
Decorate 48 DescriptorSet 0
|
||||
Decorate 48 Binding 7
|
||||
Decorate 52(sampb1) DescriptorSet 0
|
||||
Decorate 52(sampb1) Binding 4
|
||||
Decorate 55(sampb2) DescriptorSet 0
|
||||
Decorate 55(sampb2) Binding 5
|
||||
Decorate 56(sampb4) DescriptorSet 0
|
||||
Decorate 56(sampb4) Binding 31
|
||||
MemberDecorate 59(S) 0 Flat
|
||||
MemberDecorate 59(S) 0 Location 1
|
||||
MemberDecorate 59(S) 1 Flat
|
||||
MemberDecorate 59(S) 1 Location 2
|
||||
MemberDecorate 59(S) 2 Flat
|
||||
MemberDecorate 59(S) 2 Location 3
|
||||
MemberDecorate 60(SS) 0 Flat
|
||||
MemberDecorate 60(SS) 0 Location 0
|
||||
MemberDecorate 60(SS) 1 Flat
|
||||
MemberDecorate 60(SS) 1 Location 1
|
||||
MemberDecorate 60(SS) 2 Flat
|
||||
MemberDecorate 60(SS) 2 Location 4
|
||||
MemberDecorate 63(MS) 0 Location 17
|
||||
Decorate 63(MS) Block
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -77,29 +103,32 @@ Linked vertex stage:
|
|||
33: TypePointer Output 19(fvec4)
|
||||
34(badorder3): 33(ptr) Variable Output
|
||||
35: TypePointer Input 19(fvec4)
|
||||
38: TypePointer UniformConstant 6(float)
|
||||
39(f): 38(ptr) Variable UniformConstant
|
||||
42: TypePointer UniformConstant 19(fvec4)
|
||||
43(uv4): 42(ptr) Variable UniformConstant
|
||||
44(badorder): 35(ptr) Variable Input
|
||||
45(badorder2): 33(ptr) Variable Output
|
||||
46(boundblock): TypeStruct 13(int)
|
||||
47: TypePointer Uniform 46(boundblock)
|
||||
48(boundInst): 47(ptr) Variable Uniform
|
||||
49(anonblock): TypeStruct 13(int)
|
||||
50: TypePointer Uniform 49(anonblock)
|
||||
51: 50(ptr) Variable Uniform
|
||||
52: TypeImage 6(float) 2D sampled format:Unknown
|
||||
53: TypeSampledImage 52
|
||||
38(f): 25(ptr) Variable Input
|
||||
41(badorder): 35(ptr) Variable Input
|
||||
42(badorder2): 33(ptr) Variable Output
|
||||
43(boundblock): TypeStruct 13(int)
|
||||
44: TypePointer Uniform 43(boundblock)
|
||||
45(boundInst): 44(ptr) Variable Uniform
|
||||
46(anonblock): TypeStruct 13(int)
|
||||
47: TypePointer Uniform 46(anonblock)
|
||||
48: 47(ptr) Variable Uniform
|
||||
49: TypeImage 6(float) 2D sampled format:Unknown
|
||||
50: TypeSampledImage 49
|
||||
51: TypePointer UniformConstant 50
|
||||
52(sampb1): 51(ptr) Variable UniformConstant
|
||||
53: TypeArray 50 20
|
||||
54: TypePointer UniformConstant 53
|
||||
55(sampb1): 54(ptr) Variable UniformConstant
|
||||
56: TypeArray 53 20
|
||||
57: TypePointer UniformConstant 56
|
||||
58(sampb2): 57(ptr) Variable UniformConstant
|
||||
59(sampb4): 54(ptr) Variable UniformConstant
|
||||
60: TypePointer Input 13(int)
|
||||
61(gl_VertexID): 60(ptr) Variable Input
|
||||
62(gl_InstanceID): 60(ptr) Variable Input
|
||||
55(sampb2): 54(ptr) Variable UniformConstant
|
||||
56(sampb4): 51(ptr) Variable UniformConstant
|
||||
57: TypeVector 7(int) 2
|
||||
58: TypeVector 6(float) 3
|
||||
59(S): TypeStruct 6(float) 57(ivec2) 58(fvec3)
|
||||
60(SS): TypeStruct 19(fvec4) 59(S) 19(fvec4)
|
||||
61: TypePointer Output 60(SS)
|
||||
62(var): 61(ptr) Variable Output
|
||||
63(MS): TypeStruct 6(float)
|
||||
64: TypePointer Output 63(MS)
|
||||
65(outMS): 64(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
18: 17(ptr) AccessChain 12 14 15
|
||||
|
|
@ -115,8 +144,8 @@ Linked vertex stage:
|
|||
Store 34(badorder3) 37
|
||||
Branch 32
|
||||
32: Label
|
||||
40: 6(float) Load 39(f)
|
||||
41: 17(ptr) AccessChain 12 14 14
|
||||
Store 41 40
|
||||
39: 6(float) Load 38(f)
|
||||
40: 17(ptr) AccessChain 12 14 14
|
||||
Store 40 39
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -7,34 +7,40 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 103
|
||||
// Id's are bound by 104
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 38 43 77
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
EntryPoint Fragment 4 "main" 39 44 68 70 72 78
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 430
|
||||
Name 4 "main"
|
||||
Name 17 "foo(f1[5][7];"
|
||||
Name 16 "a"
|
||||
Name 20 "r"
|
||||
Name 38 "outfloat"
|
||||
Name 41 "g4"
|
||||
Name 43 "g5"
|
||||
Name 44 "param"
|
||||
Name 47 "u"
|
||||
Name 51 "param"
|
||||
Name 65 "many"
|
||||
Name 67 "i"
|
||||
Name 69 "j"
|
||||
Name 71 "k"
|
||||
Name 77 "infloat"
|
||||
Name 93 "uAofA"
|
||||
MemberName 93(uAofA) 0 "f"
|
||||
Name 97 "nameAofA"
|
||||
Decorate 93(uAofA) GLSLShared
|
||||
Decorate 93(uAofA) Block
|
||||
Name 39 "outfloat"
|
||||
Name 42 "g4"
|
||||
Name 44 "g5"
|
||||
Name 45 "param"
|
||||
Name 48 "u"
|
||||
Name 52 "param"
|
||||
Name 66 "many"
|
||||
Name 68 "i"
|
||||
Name 70 "j"
|
||||
Name 72 "k"
|
||||
Name 78 "infloat"
|
||||
Name 94 "uAofA"
|
||||
MemberName 94(uAofA) 0 "f"
|
||||
Name 98 "nameAofA"
|
||||
Decorate 68(i) Flat
|
||||
Decorate 70(j) Flat
|
||||
Decorate 72(k) Flat
|
||||
Decorate 92 ArrayStride 16
|
||||
Decorate 93 ArrayStride 64
|
||||
MemberDecorate 94(uAofA) 0 Offset 0
|
||||
Decorate 94(uAofA) Block
|
||||
Decorate 98(nameAofA) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -53,82 +59,82 @@ Linked fragment stage:
|
|||
25: 21(int) Constant 0
|
||||
28: 21(int) Constant 1
|
||||
32: 21(int) Constant 3
|
||||
37: TypePointer Output 6(float)
|
||||
38(outfloat): 37(ptr) Variable Output
|
||||
39: 6(float) Constant 0
|
||||
40: TypePointer Private 14
|
||||
41(g4): 40(ptr) Variable Private
|
||||
42: TypePointer Input 11
|
||||
43(g5): 42(ptr) Variable Input
|
||||
48: 6(float) Constant 1077936128
|
||||
49: TypePointer Function 6(float)
|
||||
54: 7(int) Constant 6
|
||||
55: TypeArray 6(float) 54
|
||||
56: TypeArray 55 10
|
||||
57: TypeArray 56 13
|
||||
58: 7(int) Constant 3
|
||||
59: TypeArray 57 58
|
||||
60: 7(int) Constant 2
|
||||
61: TypeArray 59 60
|
||||
62: 7(int) Constant 1
|
||||
63: TypeArray 61 62
|
||||
64: TypePointer Private 63
|
||||
65(many): 64(ptr) Variable Private
|
||||
66: TypePointer UniformConstant 21(int)
|
||||
67(i): 66(ptr) Variable UniformConstant
|
||||
69(j): 66(ptr) Variable UniformConstant
|
||||
71(k): 66(ptr) Variable UniformConstant
|
||||
76: TypePointer Input 6(float)
|
||||
77(infloat): 76(ptr) Variable Input
|
||||
79: TypePointer Private 6(float)
|
||||
91: TypeArray 6(float) 13
|
||||
92: TypeArray 91 60
|
||||
93(uAofA): TypeStruct 92
|
||||
94: TypeArray 93(uAofA) 10
|
||||
95: TypeArray 94 58
|
||||
96: TypePointer Uniform 95
|
||||
97(nameAofA): 96(ptr) Variable Uniform
|
||||
98: TypePointer Uniform 6(float)
|
||||
38: TypePointer Output 6(float)
|
||||
39(outfloat): 38(ptr) Variable Output
|
||||
40: 6(float) Constant 0
|
||||
41: TypePointer Private 14
|
||||
42(g4): 41(ptr) Variable Private
|
||||
43: TypePointer Input 11
|
||||
44(g5): 43(ptr) Variable Input
|
||||
49: 6(float) Constant 1077936128
|
||||
50: TypePointer Function 6(float)
|
||||
55: 7(int) Constant 6
|
||||
56: TypeArray 6(float) 55
|
||||
57: TypeArray 56 10
|
||||
58: TypeArray 57 13
|
||||
59: 7(int) Constant 3
|
||||
60: TypeArray 58 59
|
||||
61: 7(int) Constant 2
|
||||
62: TypeArray 60 61
|
||||
63: 7(int) Constant 1
|
||||
64: TypeArray 62 63
|
||||
65: TypePointer Private 64
|
||||
66(many): 65(ptr) Variable Private
|
||||
67: TypePointer Input 21(int)
|
||||
68(i): 67(ptr) Variable Input
|
||||
70(j): 67(ptr) Variable Input
|
||||
72(k): 67(ptr) Variable Input
|
||||
77: TypePointer Input 6(float)
|
||||
78(infloat): 77(ptr) Variable Input
|
||||
80: TypePointer Private 6(float)
|
||||
92: TypeArray 6(float) 13
|
||||
93: TypeArray 92 61
|
||||
94(uAofA): TypeStruct 93
|
||||
95: TypeArray 94(uAofA) 10
|
||||
96: TypeArray 95 59
|
||||
97: TypePointer Uniform 96
|
||||
98(nameAofA): 97(ptr) Variable Uniform
|
||||
99: TypePointer Uniform 6(float)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
44(param): 12(ptr) Variable Function
|
||||
47(u): 12(ptr) Variable Function
|
||||
51(param): 12(ptr) Variable Function
|
||||
Store 38(outfloat) 39
|
||||
45: 11 Load 43(g5)
|
||||
Store 44(param) 45
|
||||
46: 14 FunctionCall 17(foo(f1[5][7];) 44(param)
|
||||
Store 41(g4) 46
|
||||
50: 49(ptr) AccessChain 47(u) 22 22
|
||||
Store 50 48
|
||||
52: 11 Load 47(u)
|
||||
Store 51(param) 52
|
||||
53: 14 FunctionCall 17(foo(f1[5][7];) 51(param)
|
||||
68: 21(int) Load 67(i)
|
||||
70: 21(int) Load 69(j)
|
||||
72: 21(int) Load 71(k)
|
||||
73: 21(int) Load 67(i)
|
||||
74: 21(int) Load 69(j)
|
||||
75: 21(int) Load 71(k)
|
||||
78: 6(float) Load 77(infloat)
|
||||
80: 79(ptr) AccessChain 65(many) 68 70 72 73 74 75
|
||||
Store 80 78
|
||||
81: 21(int) Load 69(j)
|
||||
82: 21(int) Load 69(j)
|
||||
83: 21(int) Load 69(j)
|
||||
84: 21(int) Load 69(j)
|
||||
85: 21(int) Load 69(j)
|
||||
86: 21(int) Load 69(j)
|
||||
87: 79(ptr) AccessChain 65(many) 81 82 83 84 85 86
|
||||
88: 6(float) Load 87
|
||||
89: 6(float) Load 38(outfloat)
|
||||
90: 6(float) FAdd 89 88
|
||||
Store 38(outfloat) 90
|
||||
99: 98(ptr) AccessChain 97(nameAofA) 28 22 25 25 32
|
||||
100: 6(float) Load 99
|
||||
101: 6(float) Load 38(outfloat)
|
||||
102: 6(float) FAdd 101 100
|
||||
Store 38(outfloat) 102
|
||||
45(param): 12(ptr) Variable Function
|
||||
48(u): 12(ptr) Variable Function
|
||||
52(param): 12(ptr) Variable Function
|
||||
Store 39(outfloat) 40
|
||||
46: 11 Load 44(g5)
|
||||
Store 45(param) 46
|
||||
47: 14 FunctionCall 17(foo(f1[5][7];) 45(param)
|
||||
Store 42(g4) 47
|
||||
51: 50(ptr) AccessChain 48(u) 22 22
|
||||
Store 51 49
|
||||
53: 11 Load 48(u)
|
||||
Store 52(param) 53
|
||||
54: 14 FunctionCall 17(foo(f1[5][7];) 52(param)
|
||||
69: 21(int) Load 68(i)
|
||||
71: 21(int) Load 70(j)
|
||||
73: 21(int) Load 72(k)
|
||||
74: 21(int) Load 68(i)
|
||||
75: 21(int) Load 70(j)
|
||||
76: 21(int) Load 72(k)
|
||||
79: 6(float) Load 78(infloat)
|
||||
81: 80(ptr) AccessChain 66(many) 69 71 73 74 75 76
|
||||
Store 81 79
|
||||
82: 21(int) Load 70(j)
|
||||
83: 21(int) Load 70(j)
|
||||
84: 21(int) Load 70(j)
|
||||
85: 21(int) Load 70(j)
|
||||
86: 21(int) Load 70(j)
|
||||
87: 21(int) Load 70(j)
|
||||
88: 80(ptr) AccessChain 66(many) 82 83 84 85 86 87
|
||||
89: 6(float) Load 88
|
||||
90: 6(float) Load 39(outfloat)
|
||||
91: 6(float) FAdd 90 89
|
||||
Store 39(outfloat) 91
|
||||
100: 99(ptr) AccessChain 98(nameAofA) 28 22 25 25 32
|
||||
101: 6(float) Load 100
|
||||
102: 6(float) Load 39(outfloat)
|
||||
103: 6(float) FAdd 102 101
|
||||
Store 39(outfloat) 103
|
||||
Return
|
||||
FunctionEnd
|
||||
17(foo(f1[5][7];): 14 Function None 15
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 507
|
||||
// Id's are bound by 509
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 483
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
EntryPoint Fragment 4 "main" 11 22 212 288 485 503 508
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "v"
|
||||
|
|
@ -27,52 +27,56 @@ Linked fragment stage:
|
|||
Name 288 "uui"
|
||||
Name 305 "b"
|
||||
Name 342 "ub42"
|
||||
Name 483 "FragColor"
|
||||
Name 501 "uiv4"
|
||||
Name 503 "ub"
|
||||
Name 506 "uuv4"
|
||||
Name 485 "FragColor"
|
||||
Name 503 "uiv4"
|
||||
Name 505 "ub"
|
||||
Name 508 "uuv4"
|
||||
Decorate 22(ui) Flat
|
||||
Decorate 288(uui) Flat
|
||||
Decorate 503(uiv4) Flat
|
||||
Decorate 508(uuv4) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
10: TypePointer UniformConstant 7(fvec4)
|
||||
11(uv4): 10(ptr) Variable UniformConstant
|
||||
10: TypePointer Input 7(fvec4)
|
||||
11(uv4): 10(ptr) Variable Input
|
||||
18: TypeInt 32 1
|
||||
19: TypePointer Function 18(int)
|
||||
21: TypePointer UniformConstant 18(int)
|
||||
22(ui): 21(ptr) Variable UniformConstant
|
||||
21: TypePointer Input 18(int)
|
||||
22(ui): 21(ptr) Variable Input
|
||||
141: TypeInt 32 0
|
||||
142: 141(int) Constant 0
|
||||
143: TypePointer Function 6(float)
|
||||
178: TypeBool
|
||||
179: TypeVector 178(bool) 4
|
||||
180: TypePointer UniformConstant 179(bvec4)
|
||||
181(ub41): 180(ptr) Variable UniformConstant
|
||||
211: TypePointer UniformConstant 6(float)
|
||||
212(uf): 211(ptr) Variable UniformConstant
|
||||
180: TypePointer Private 179(bvec4)
|
||||
181(ub41): 180(ptr) Variable Private
|
||||
211: TypePointer Input 6(float)
|
||||
212(uf): 211(ptr) Variable Input
|
||||
284: TypePointer Function 141(int)
|
||||
287: TypePointer UniformConstant 141(int)
|
||||
288(uui): 287(ptr) Variable UniformConstant
|
||||
287: TypePointer Input 141(int)
|
||||
288(uui): 287(ptr) Variable Input
|
||||
304: TypePointer Function 178(bool)
|
||||
342(ub42): 180(ptr) Variable UniformConstant
|
||||
396: 18(int) Constant 2
|
||||
403: 18(int) Constant 1
|
||||
433: TypeVector 6(float) 3
|
||||
452: 6(float) Constant 1073741824
|
||||
459: 6(float) Constant 1065353216
|
||||
464: 18(int) Constant 66
|
||||
470: 18(int) Constant 17
|
||||
482: TypePointer Output 7(fvec4)
|
||||
483(FragColor): 482(ptr) Variable Output
|
||||
499: TypeVector 18(int) 4
|
||||
500: TypePointer UniformConstant 499(ivec4)
|
||||
501(uiv4): 500(ptr) Variable UniformConstant
|
||||
502: TypePointer UniformConstant 178(bool)
|
||||
503(ub): 502(ptr) Variable UniformConstant
|
||||
504: TypeVector 141(int) 4
|
||||
505: TypePointer UniformConstant 504(ivec4)
|
||||
506(uuv4): 505(ptr) Variable UniformConstant
|
||||
342(ub42): 180(ptr) Variable Private
|
||||
398: 18(int) Constant 2
|
||||
405: 18(int) Constant 1
|
||||
435: TypeVector 6(float) 3
|
||||
454: 6(float) Constant 1073741824
|
||||
461: 6(float) Constant 1065353216
|
||||
466: 18(int) Constant 66
|
||||
472: 18(int) Constant 17
|
||||
484: TypePointer Output 7(fvec4)
|
||||
485(FragColor): 484(ptr) Variable Output
|
||||
501: TypeVector 18(int) 4
|
||||
502: TypePointer Input 501(ivec4)
|
||||
503(uiv4): 502(ptr) Variable Input
|
||||
504: TypePointer Private 178(bool)
|
||||
505(ub): 504(ptr) Variable Private
|
||||
506: TypeVector 141(int) 4
|
||||
507: TypePointer Input 506(ivec4)
|
||||
508(uuv4): 507(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(v): 8(ptr) Variable Function
|
||||
|
|
@ -80,7 +84,7 @@ Linked fragment stage:
|
|||
188(f): 143(ptr) Variable Function
|
||||
285(u): 284(ptr) Variable Function
|
||||
305(b): 304(ptr) Variable Function
|
||||
484: 8(ptr) Variable Function
|
||||
486: 8(ptr) Variable Function
|
||||
12: 7(fvec4) Load 11(uv4)
|
||||
13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
|
||||
Store 9(v) 13
|
||||
|
|
@ -529,137 +533,142 @@ Linked fragment stage:
|
|||
388: 18(int) Load 20(i)
|
||||
389: 18(int) Load 22(ui)
|
||||
390: 178(bool) INotEqual 388 389
|
||||
391: 18(int) Load 20(i)
|
||||
392: 18(int) Load 22(ui)
|
||||
393: 178(bool) IEqual 391 392
|
||||
394: 178(bool) LogicalAnd 390 393
|
||||
395: 18(int) Load 20(i)
|
||||
397: 178(bool) INotEqual 395 396
|
||||
398: 178(bool) LogicalNotEqual 394 397
|
||||
SelectionMerge 392 None
|
||||
BranchConditional 390 391 392
|
||||
391: Label
|
||||
393: 18(int) Load 20(i)
|
||||
394: 18(int) Load 22(ui)
|
||||
395: 178(bool) IEqual 393 394
|
||||
Branch 392
|
||||
392: Label
|
||||
396: 178(bool) Phi 390 386 395 391
|
||||
397: 18(int) Load 20(i)
|
||||
399: 178(bool) INotEqual 397 398
|
||||
400: 178(bool) LogicalNotEqual 396 399
|
||||
Branch 387
|
||||
387: Label
|
||||
399: 178(bool) Phi 384 365 398 386
|
||||
SelectionMerge 401 None
|
||||
BranchConditional 399 400 401
|
||||
400: Label
|
||||
402: 18(int) Load 20(i)
|
||||
404: 18(int) IAdd 402 403
|
||||
Store 20(i) 404
|
||||
Branch 401
|
||||
401: Label
|
||||
405: 6(float) Load 212(uf)
|
||||
406: 6(float) Load 212(uf)
|
||||
407: 6(float) FAdd 405 406
|
||||
401: 178(bool) Phi 384 365 400 392
|
||||
SelectionMerge 403 None
|
||||
BranchConditional 401 402 403
|
||||
402: Label
|
||||
404: 18(int) Load 20(i)
|
||||
406: 18(int) IAdd 404 405
|
||||
Store 20(i) 406
|
||||
Branch 403
|
||||
403: Label
|
||||
407: 6(float) Load 212(uf)
|
||||
408: 6(float) Load 212(uf)
|
||||
409: 6(float) FMul 407 408
|
||||
409: 6(float) FAdd 407 408
|
||||
410: 6(float) Load 212(uf)
|
||||
411: 6(float) FSub 409 410
|
||||
411: 6(float) FMul 409 410
|
||||
412: 6(float) Load 212(uf)
|
||||
413: 6(float) FDiv 411 412
|
||||
Store 188(f) 413
|
||||
414: 7(fvec4) Load 9(v)
|
||||
415: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 414
|
||||
416: 6(float) Load 188(f)
|
||||
417: 6(float) FAdd 416 415
|
||||
Store 188(f) 417
|
||||
418: 7(fvec4) Load 9(v)
|
||||
419: 7(fvec4) Load 9(v)
|
||||
420: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 418 419
|
||||
421: 6(float) Load 188(f)
|
||||
422: 6(float) FAdd 421 420
|
||||
Store 188(f) 422
|
||||
423: 7(fvec4) Load 9(v)
|
||||
424: 7(fvec4) Load 9(v)
|
||||
425: 6(float) Dot 423 424
|
||||
426: 6(float) Load 188(f)
|
||||
427: 6(float) FAdd 426 425
|
||||
Store 188(f) 427
|
||||
413: 6(float) FSub 411 412
|
||||
414: 6(float) Load 212(uf)
|
||||
415: 6(float) FDiv 413 414
|
||||
Store 188(f) 415
|
||||
416: 7(fvec4) Load 9(v)
|
||||
417: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 416
|
||||
418: 6(float) Load 188(f)
|
||||
419: 6(float) FAdd 418 417
|
||||
Store 188(f) 419
|
||||
420: 7(fvec4) Load 9(v)
|
||||
421: 7(fvec4) Load 9(v)
|
||||
422: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 420 421
|
||||
423: 6(float) Load 188(f)
|
||||
424: 6(float) FAdd 423 422
|
||||
Store 188(f) 424
|
||||
425: 7(fvec4) Load 9(v)
|
||||
426: 7(fvec4) Load 9(v)
|
||||
427: 6(float) Dot 425 426
|
||||
428: 6(float) Load 188(f)
|
||||
429: 6(float) Load 212(uf)
|
||||
430: 6(float) FMul 428 429
|
||||
431: 6(float) Load 188(f)
|
||||
432: 6(float) FAdd 431 430
|
||||
Store 188(f) 432
|
||||
434: 7(fvec4) Load 9(v)
|
||||
435: 433(fvec3) VectorShuffle 434 434 0 1 2
|
||||
429: 6(float) FAdd 428 427
|
||||
Store 188(f) 429
|
||||
430: 6(float) Load 188(f)
|
||||
431: 6(float) Load 212(uf)
|
||||
432: 6(float) FMul 430 431
|
||||
433: 6(float) Load 188(f)
|
||||
434: 6(float) FAdd 433 432
|
||||
Store 188(f) 434
|
||||
436: 7(fvec4) Load 9(v)
|
||||
437: 433(fvec3) VectorShuffle 436 436 0 1 2
|
||||
438: 433(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 435 437
|
||||
439: 6(float) CompositeExtract 438 0
|
||||
440: 6(float) Load 188(f)
|
||||
441: 6(float) FAdd 440 439
|
||||
Store 188(f) 441
|
||||
437: 435(fvec3) VectorShuffle 436 436 0 1 2
|
||||
438: 7(fvec4) Load 9(v)
|
||||
439: 435(fvec3) VectorShuffle 438 438 0 1 2
|
||||
440: 435(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 437 439
|
||||
441: 6(float) CompositeExtract 440 0
|
||||
442: 6(float) Load 188(f)
|
||||
443: 6(float) Load 212(uf)
|
||||
444: 178(bool) FOrdEqual 442 443
|
||||
445: 178(bool) LogicalNot 444
|
||||
SelectionMerge 447 None
|
||||
BranchConditional 445 446 447
|
||||
446: Label
|
||||
448: 6(float) Load 188(f)
|
||||
449: 6(float) Load 212(uf)
|
||||
450: 178(bool) FOrdNotEqual 448 449
|
||||
451: 6(float) Load 188(f)
|
||||
453: 178(bool) FOrdNotEqual 451 452
|
||||
454: 178(bool) LogicalAnd 450 453
|
||||
Branch 447
|
||||
447: Label
|
||||
455: 178(bool) Phi 444 401 454 446
|
||||
SelectionMerge 457 None
|
||||
BranchConditional 455 456 457
|
||||
456: Label
|
||||
458: 6(float) Load 188(f)
|
||||
460: 6(float) FAdd 458 459
|
||||
Store 188(f) 460
|
||||
Branch 457
|
||||
457: Label
|
||||
461: 18(int) Load 22(ui)
|
||||
462: 18(int) Load 20(i)
|
||||
463: 18(int) BitwiseAnd 462 461
|
||||
Store 20(i) 463
|
||||
465: 18(int) Load 20(i)
|
||||
466: 18(int) BitwiseOr 465 464
|
||||
Store 20(i) 466
|
||||
467: 18(int) Load 22(ui)
|
||||
468: 18(int) Load 20(i)
|
||||
469: 18(int) BitwiseXor 468 467
|
||||
Store 20(i) 469
|
||||
471: 18(int) Load 20(i)
|
||||
472: 18(int) SMod 471 470
|
||||
Store 20(i) 472
|
||||
443: 6(float) FAdd 442 441
|
||||
Store 188(f) 443
|
||||
444: 6(float) Load 188(f)
|
||||
445: 6(float) Load 212(uf)
|
||||
446: 178(bool) FOrdEqual 444 445
|
||||
447: 178(bool) LogicalNot 446
|
||||
SelectionMerge 449 None
|
||||
BranchConditional 447 448 449
|
||||
448: Label
|
||||
450: 6(float) Load 188(f)
|
||||
451: 6(float) Load 212(uf)
|
||||
452: 178(bool) FOrdNotEqual 450 451
|
||||
453: 6(float) Load 188(f)
|
||||
455: 178(bool) FOrdNotEqual 453 454
|
||||
456: 178(bool) LogicalAnd 452 455
|
||||
Branch 449
|
||||
449: Label
|
||||
457: 178(bool) Phi 446 403 456 448
|
||||
SelectionMerge 459 None
|
||||
BranchConditional 457 458 459
|
||||
458: Label
|
||||
460: 6(float) Load 188(f)
|
||||
462: 6(float) FAdd 460 461
|
||||
Store 188(f) 462
|
||||
Branch 459
|
||||
459: Label
|
||||
463: 18(int) Load 22(ui)
|
||||
464: 18(int) Load 20(i)
|
||||
465: 18(int) BitwiseAnd 464 463
|
||||
Store 20(i) 465
|
||||
467: 18(int) Load 20(i)
|
||||
468: 18(int) BitwiseOr 467 466
|
||||
Store 20(i) 468
|
||||
469: 18(int) Load 22(ui)
|
||||
470: 18(int) Load 20(i)
|
||||
471: 18(int) BitwiseXor 470 469
|
||||
Store 20(i) 471
|
||||
473: 18(int) Load 20(i)
|
||||
474: 18(int) ShiftRightArithmetic 473 396
|
||||
474: 18(int) SMod 473 472
|
||||
Store 20(i) 474
|
||||
475: 18(int) Load 22(ui)
|
||||
476: 18(int) Load 20(i)
|
||||
477: 18(int) ShiftLeftLogical 476 475
|
||||
Store 20(i) 477
|
||||
475: 18(int) Load 20(i)
|
||||
476: 18(int) ShiftRightArithmetic 475 398
|
||||
Store 20(i) 476
|
||||
477: 18(int) Load 22(ui)
|
||||
478: 18(int) Load 20(i)
|
||||
479: 18(int) Not 478
|
||||
479: 18(int) ShiftLeftLogical 478 477
|
||||
Store 20(i) 479
|
||||
480: 178(bool) Load 305(b)
|
||||
481: 178(bool) LogicalNot 480
|
||||
Store 305(b) 481
|
||||
485: 178(bool) Load 305(b)
|
||||
SelectionMerge 487 None
|
||||
BranchConditional 485 486 496
|
||||
486: Label
|
||||
488: 18(int) Load 20(i)
|
||||
489: 6(float) ConvertSToF 488
|
||||
490: 7(fvec4) CompositeConstruct 489 489 489 489
|
||||
491: 6(float) Load 188(f)
|
||||
480: 18(int) Load 20(i)
|
||||
481: 18(int) Not 480
|
||||
Store 20(i) 481
|
||||
482: 178(bool) Load 305(b)
|
||||
483: 178(bool) LogicalNot 482
|
||||
Store 305(b) 483
|
||||
487: 178(bool) Load 305(b)
|
||||
SelectionMerge 489 None
|
||||
BranchConditional 487 488 498
|
||||
488: Label
|
||||
490: 18(int) Load 20(i)
|
||||
491: 6(float) ConvertSToF 490
|
||||
492: 7(fvec4) CompositeConstruct 491 491 491 491
|
||||
493: 7(fvec4) FAdd 490 492
|
||||
494: 7(fvec4) Load 9(v)
|
||||
495: 7(fvec4) FAdd 493 494
|
||||
Store 484 495
|
||||
Branch 487
|
||||
496: Label
|
||||
497: 7(fvec4) Load 9(v)
|
||||
Store 484 497
|
||||
Branch 487
|
||||
487: Label
|
||||
498: 7(fvec4) Load 484
|
||||
Store 483(FragColor) 498
|
||||
493: 6(float) Load 188(f)
|
||||
494: 7(fvec4) CompositeConstruct 493 493 493 493
|
||||
495: 7(fvec4) FAdd 492 494
|
||||
496: 7(fvec4) Load 9(v)
|
||||
497: 7(fvec4) FAdd 495 496
|
||||
Store 486 497
|
||||
Branch 489
|
||||
498: Label
|
||||
499: 7(fvec4) Load 9(v)
|
||||
Store 486 499
|
||||
Branch 489
|
||||
489: Label
|
||||
500: 7(fvec4) Load 486
|
||||
Store 485(FragColor) 500
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ Linked fragment stage:
|
|||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 65
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
EntryPoint Fragment 4 "main" 65 149
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 420
|
||||
Name 4 "main"
|
||||
Name 8 "S"
|
||||
|
|
@ -72,6 +72,7 @@ Linked fragment stage:
|
|||
Name 190 "param"
|
||||
Name 194 "param"
|
||||
Decorate 65(OutColor) Location 0
|
||||
Decorate 149(u) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -92,8 +93,8 @@ Linked fragment stage:
|
|||
141: 6(float) Constant 0
|
||||
142: 7(fvec3) ConstantComposite 141 141 141
|
||||
143: TypePointer Function 8(S)
|
||||
148: TypePointer UniformConstant 13(int)
|
||||
149(u): 148(ptr) Variable UniformConstant
|
||||
148: TypePointer Input 13(int)
|
||||
149(u): 148(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
144(s): 143(ptr) Variable Function
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 380
|
||||
// Id's are bound by 215
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 16 41 90 376
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
EntryPoint Fragment 4 "main" 16 41 101 213
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "s1"
|
||||
|
|
@ -23,41 +23,47 @@ Linked fragment stage:
|
|||
Name 16 "u"
|
||||
Name 37 "b"
|
||||
Name 41 "w"
|
||||
Name 55 "s2"
|
||||
MemberName 55(s2) 0 "i"
|
||||
MemberName 55(s2) 1 "f"
|
||||
MemberName 55(s2) 2 "s1_1"
|
||||
Name 57 "foo2a"
|
||||
Name 59 "foo2b"
|
||||
Name 82 "v"
|
||||
Name 86 "samp2D"
|
||||
Name 90 "coord"
|
||||
Name 341 "s1"
|
||||
MemberName 341(s1) 0 "i"
|
||||
MemberName 341(s1) 1 "f"
|
||||
Name 342 "s2"
|
||||
MemberName 342(s2) 0 "i"
|
||||
MemberName 342(s2) 1 "f"
|
||||
MemberName 342(s2) 2 "s1_1"
|
||||
Name 343 "bn"
|
||||
MemberName 343(bn) 0 "foo2a"
|
||||
Name 345 "bi"
|
||||
Name 347 "s1"
|
||||
MemberName 347(s1) 0 "i"
|
||||
MemberName 347(s1) 1 "f"
|
||||
Name 348 "s2"
|
||||
MemberName 348(s2) 0 "i"
|
||||
MemberName 348(s2) 1 "f"
|
||||
MemberName 348(s2) 2 "s1_1"
|
||||
Name 376 "color"
|
||||
Name 379 "foo1"
|
||||
MemberDecorate 341(s1) 0 Offset 0
|
||||
MemberDecorate 341(s1) 1 Offset 4
|
||||
MemberDecorate 342(s2) 0 Offset 0
|
||||
MemberDecorate 342(s2) 1 Offset 4
|
||||
MemberDecorate 342(s2) 2 Offset 16
|
||||
MemberDecorate 343(bn) 0 Offset 0
|
||||
Decorate 343(bn) Block
|
||||
Name 55 "s1"
|
||||
MemberName 55(s1) 0 "i"
|
||||
MemberName 55(s1) 1 "f"
|
||||
Name 56 "s2"
|
||||
MemberName 56(s2) 0 "i"
|
||||
MemberName 56(s2) 1 "f"
|
||||
MemberName 56(s2) 2 "s1_1"
|
||||
Name 57 "ub1"
|
||||
MemberName 57(ub1) 0 "foo2a"
|
||||
Name 59 "uName1"
|
||||
Name 64 "s1"
|
||||
MemberName 64(s1) 0 "i"
|
||||
MemberName 64(s1) 1 "f"
|
||||
Name 65 "s2"
|
||||
MemberName 65(s2) 0 "i"
|
||||
MemberName 65(s2) 1 "f"
|
||||
MemberName 65(s2) 2 "s1_1"
|
||||
Name 66 "ub2"
|
||||
MemberName 66(ub2) 0 "foo2b"
|
||||
Name 68 "uName2"
|
||||
Name 93 "v"
|
||||
Name 97 "samp2D"
|
||||
Name 101 "coord"
|
||||
Name 213 "color"
|
||||
MemberDecorate 55(s1) 0 Offset 0
|
||||
MemberDecorate 55(s1) 1 Offset 4
|
||||
MemberDecorate 56(s2) 0 Offset 0
|
||||
MemberDecorate 56(s2) 1 Offset 4
|
||||
MemberDecorate 56(s2) 2 Offset 16
|
||||
MemberDecorate 57(ub1) 0 Offset 0
|
||||
Decorate 57(ub1) Block
|
||||
Decorate 59(uName1) DescriptorSet 0
|
||||
MemberDecorate 64(s1) 0 Offset 0
|
||||
MemberDecorate 64(s1) 1 Offset 4
|
||||
MemberDecorate 65(s2) 0 Offset 0
|
||||
MemberDecorate 65(s2) 1 Offset 4
|
||||
MemberDecorate 65(s2) 2 Offset 8
|
||||
MemberDecorate 66(ub2) 0 Offset 0
|
||||
Decorate 66(ub2) BufferBlock
|
||||
Decorate 68(uName2) DescriptorSet 0
|
||||
Decorate 97(samp2D) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
|
|
@ -81,46 +87,43 @@ Linked fragment stage:
|
|||
39: 7(float) Constant 1099431936
|
||||
40: 8(s1) ConstantComposite 38 39
|
||||
41(w): 15(ptr) Variable Input
|
||||
55(s2): TypeStruct 6(int) 7(float) 8(s1)
|
||||
56: TypePointer UniformConstant 55(s2)
|
||||
57(foo2a): 56(ptr) Variable UniformConstant
|
||||
59(foo2b): 56(ptr) Variable UniformConstant
|
||||
61: TypeBool
|
||||
81: TypePointer Function 14(fvec4)
|
||||
83: TypeImage 7(float) 2D sampled format:Unknown
|
||||
84: TypeSampledImage 83
|
||||
85: TypePointer UniformConstant 84
|
||||
86(samp2D): 85(ptr) Variable UniformConstant
|
||||
88: TypeVector 7(float) 2
|
||||
89: TypePointer Input 88(fvec2)
|
||||
90(coord): 89(ptr) Variable Input
|
||||
95: 7(float) Constant 1073741824
|
||||
101: TypeVector 61(bool) 4
|
||||
106: 7(float) Constant 1077936128
|
||||
115: 7(float) Constant 1082130432
|
||||
121: TypeVector 61(bool) 2
|
||||
126: 7(float) Constant 1084227584
|
||||
232: 7(float) Constant 1086324736
|
||||
338: 7(float) Constant 1088421888
|
||||
341(s1): TypeStruct 6(int) 7(float)
|
||||
342(s2): TypeStruct 6(int) 7(float) 341(s1)
|
||||
343(bn): TypeStruct 342(s2)
|
||||
344: TypePointer Uniform 343(bn)
|
||||
345(bi): 344(ptr) Variable Uniform
|
||||
346: 6(int) Constant 0
|
||||
347(s1): TypeStruct 6(int) 7(float)
|
||||
348(s2): TypeStruct 6(int) 7(float) 347(s1)
|
||||
349: TypePointer Uniform 342(s2)
|
||||
372: 7(float) Constant 1090519040
|
||||
375: TypePointer Output 14(fvec4)
|
||||
376(color): 375(ptr) Variable Output
|
||||
378: TypePointer UniformConstant 8(s1)
|
||||
379(foo1): 378(ptr) Variable UniformConstant
|
||||
55(s1): TypeStruct 6(int) 7(float)
|
||||
56(s2): TypeStruct 6(int) 7(float) 55(s1)
|
||||
57(ub1): TypeStruct 56(s2)
|
||||
58: TypePointer Uniform 57(ub1)
|
||||
59(uName1): 58(ptr) Variable Uniform
|
||||
60: 6(int) Constant 0
|
||||
61: TypePointer Uniform 56(s2)
|
||||
64(s1): TypeStruct 6(int) 7(float)
|
||||
65(s2): TypeStruct 6(int) 7(float) 64(s1)
|
||||
66(ub2): TypeStruct 65(s2)
|
||||
67: TypePointer Uniform 66(ub2)
|
||||
68(uName2): 67(ptr) Variable Uniform
|
||||
69: TypePointer Uniform 65(s2)
|
||||
72: TypeBool
|
||||
92: TypePointer Function 14(fvec4)
|
||||
94: TypeImage 7(float) 2D sampled format:Unknown
|
||||
95: TypeSampledImage 94
|
||||
96: TypePointer UniformConstant 95
|
||||
97(samp2D): 96(ptr) Variable UniformConstant
|
||||
99: TypeVector 7(float) 2
|
||||
100: TypePointer Input 99(fvec2)
|
||||
101(coord): 100(ptr) Variable Input
|
||||
106: 7(float) Constant 1073741824
|
||||
112: TypeVector 72(bool) 4
|
||||
117: 7(float) Constant 1077936128
|
||||
126: 7(float) Constant 1082130432
|
||||
132: TypeVector 72(bool) 2
|
||||
137: 7(float) Constant 1084227584
|
||||
173: 7(float) Constant 1086324736
|
||||
209: 7(float) Constant 1088421888
|
||||
212: TypePointer Output 14(fvec4)
|
||||
213(color): 212(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13(a): 12(ptr) Variable Function
|
||||
37(b): 12(ptr) Variable Function
|
||||
82(v): 81(ptr) Variable Function
|
||||
93(v): 92(ptr) Variable Function
|
||||
19: 18(ptr) AccessChain 16(u) 17
|
||||
20: 7(float) Load 19
|
||||
21: 6(int) ConvertFToS 20
|
||||
|
|
@ -149,325 +152,159 @@ Linked fragment stage:
|
|||
53: 8(s1) CompositeConstruct 50 52
|
||||
54: 11 CompositeConstruct 40 47 53
|
||||
Store 37(b) 54
|
||||
58: 55(s2) Load 57(foo2a)
|
||||
60: 55(s2) Load 59(foo2b)
|
||||
62: 6(int) CompositeExtract 58 0
|
||||
63: 6(int) CompositeExtract 60 0
|
||||
64: 61(bool) IEqual 62 63
|
||||
65: 7(float) CompositeExtract 58 1
|
||||
66: 7(float) CompositeExtract 60 1
|
||||
67: 61(bool) FOrdEqual 65 66
|
||||
68: 61(bool) LogicalAnd 64 67
|
||||
69: 8(s1) CompositeExtract 58 2
|
||||
70: 8(s1) CompositeExtract 60 2
|
||||
71: 6(int) CompositeExtract 69 0
|
||||
72: 6(int) CompositeExtract 70 0
|
||||
73: 61(bool) IEqual 71 72
|
||||
74: 7(float) CompositeExtract 69 1
|
||||
75: 7(float) CompositeExtract 70 1
|
||||
76: 61(bool) FOrdEqual 74 75
|
||||
77: 61(bool) LogicalAnd 73 76
|
||||
78: 61(bool) LogicalAnd 68 77
|
||||
SelectionMerge 80 None
|
||||
BranchConditional 78 79 93
|
||||
79: Label
|
||||
87: 84 Load 86(samp2D)
|
||||
91: 88(fvec2) Load 90(coord)
|
||||
92: 14(fvec4) ImageSampleImplicitLod 87 91
|
||||
Store 82(v) 92
|
||||
Branch 80
|
||||
93: Label
|
||||
94: 84 Load 86(samp2D)
|
||||
96: 88(fvec2) Load 90(coord)
|
||||
97: 88(fvec2) VectorTimesScalar 96 95
|
||||
98: 14(fvec4) ImageSampleImplicitLod 94 97
|
||||
Store 82(v) 98
|
||||
Branch 80
|
||||
80: Label
|
||||
99: 14(fvec4) Load 16(u)
|
||||
100: 14(fvec4) Load 82(v)
|
||||
102: 101(bvec4) FOrdEqual 99 100
|
||||
103: 61(bool) All 102
|
||||
SelectionMerge 105 None
|
||||
BranchConditional 103 104 105
|
||||
62: 61(ptr) AccessChain 59(uName1) 60
|
||||
63: 56(s2) Load 62
|
||||
70: 69(ptr) AccessChain 68(uName2) 60
|
||||
71: 65(s2) Load 70
|
||||
73: 6(int) CompositeExtract 63 0
|
||||
74: 6(int) CompositeExtract 71 0
|
||||
75: 72(bool) IEqual 73 74
|
||||
76: 7(float) CompositeExtract 63 1
|
||||
77: 7(float) CompositeExtract 71 1
|
||||
78: 72(bool) FOrdEqual 76 77
|
||||
79: 72(bool) LogicalAnd 75 78
|
||||
80: 55(s1) CompositeExtract 63 2
|
||||
81: 64(s1) CompositeExtract 71 2
|
||||
82: 6(int) CompositeExtract 80 0
|
||||
83: 6(int) CompositeExtract 81 0
|
||||
84: 72(bool) IEqual 82 83
|
||||
85: 7(float) CompositeExtract 80 1
|
||||
86: 7(float) CompositeExtract 81 1
|
||||
87: 72(bool) FOrdEqual 85 86
|
||||
88: 72(bool) LogicalAnd 84 87
|
||||
89: 72(bool) LogicalAnd 79 88
|
||||
SelectionMerge 91 None
|
||||
BranchConditional 89 90 104
|
||||
90: Label
|
||||
98: 95 Load 97(samp2D)
|
||||
102: 99(fvec2) Load 101(coord)
|
||||
103: 14(fvec4) ImageSampleImplicitLod 98 102
|
||||
Store 93(v) 103
|
||||
Branch 91
|
||||
104: Label
|
||||
107: 14(fvec4) Load 82(v)
|
||||
108: 14(fvec4) VectorTimesScalar 107 106
|
||||
Store 82(v) 108
|
||||
Branch 105
|
||||
105: Label
|
||||
109: 14(fvec4) Load 16(u)
|
||||
110: 14(fvec4) Load 82(v)
|
||||
111: 101(bvec4) FOrdNotEqual 109 110
|
||||
112: 61(bool) Any 111
|
||||
SelectionMerge 114 None
|
||||
BranchConditional 112 113 114
|
||||
113: Label
|
||||
116: 14(fvec4) Load 82(v)
|
||||
117: 14(fvec4) VectorTimesScalar 116 115
|
||||
Store 82(v) 117
|
||||
Branch 114
|
||||
114: Label
|
||||
118: 88(fvec2) Load 90(coord)
|
||||
119: 14(fvec4) Load 82(v)
|
||||
120: 88(fvec2) VectorShuffle 119 119 1 3
|
||||
122: 121(bvec2) FOrdEqual 118 120
|
||||
123: 61(bool) All 122
|
||||
105: 95 Load 97(samp2D)
|
||||
107: 99(fvec2) Load 101(coord)
|
||||
108: 99(fvec2) VectorTimesScalar 107 106
|
||||
109: 14(fvec4) ImageSampleImplicitLod 105 108
|
||||
Store 93(v) 109
|
||||
Branch 91
|
||||
91: Label
|
||||
110: 14(fvec4) Load 16(u)
|
||||
111: 14(fvec4) Load 93(v)
|
||||
113: 112(bvec4) FOrdEqual 110 111
|
||||
114: 72(bool) All 113
|
||||
SelectionMerge 116 None
|
||||
BranchConditional 114 115 116
|
||||
115: Label
|
||||
118: 14(fvec4) Load 93(v)
|
||||
119: 14(fvec4) VectorTimesScalar 118 117
|
||||
Store 93(v) 119
|
||||
Branch 116
|
||||
116: Label
|
||||
120: 14(fvec4) Load 16(u)
|
||||
121: 14(fvec4) Load 93(v)
|
||||
122: 112(bvec4) FOrdNotEqual 120 121
|
||||
123: 72(bool) Any 122
|
||||
SelectionMerge 125 None
|
||||
BranchConditional 123 124 125
|
||||
124: Label
|
||||
127: 14(fvec4) Load 82(v)
|
||||
127: 14(fvec4) Load 93(v)
|
||||
128: 14(fvec4) VectorTimesScalar 127 126
|
||||
Store 82(v) 128
|
||||
Store 93(v) 128
|
||||
Branch 125
|
||||
125: Label
|
||||
129: 11 Load 13(a)
|
||||
130: 11 Load 37(b)
|
||||
131: 8(s1) CompositeExtract 129 0
|
||||
132: 8(s1) CompositeExtract 130 0
|
||||
133: 6(int) CompositeExtract 131 0
|
||||
134: 6(int) CompositeExtract 132 0
|
||||
135: 61(bool) IEqual 133 134
|
||||
136: 7(float) CompositeExtract 131 1
|
||||
137: 7(float) CompositeExtract 132 1
|
||||
138: 61(bool) FOrdEqual 136 137
|
||||
139: 61(bool) LogicalAnd 135 138
|
||||
140: 8(s1) CompositeExtract 129 1
|
||||
141: 8(s1) CompositeExtract 130 1
|
||||
142: 6(int) CompositeExtract 140 0
|
||||
143: 6(int) CompositeExtract 141 0
|
||||
144: 61(bool) IEqual 142 143
|
||||
145: 7(float) CompositeExtract 140 1
|
||||
146: 7(float) CompositeExtract 141 1
|
||||
147: 61(bool) FOrdEqual 145 146
|
||||
148: 61(bool) LogicalAnd 144 147
|
||||
149: 61(bool) LogicalAnd 139 148
|
||||
150: 8(s1) CompositeExtract 129 2
|
||||
151: 8(s1) CompositeExtract 130 2
|
||||
152: 6(int) CompositeExtract 150 0
|
||||
129: 99(fvec2) Load 101(coord)
|
||||
130: 14(fvec4) Load 93(v)
|
||||
131: 99(fvec2) VectorShuffle 130 130 1 3
|
||||
133: 132(bvec2) FOrdEqual 129 131
|
||||
134: 72(bool) All 133
|
||||
SelectionMerge 136 None
|
||||
BranchConditional 134 135 136
|
||||
135: Label
|
||||
138: 14(fvec4) Load 93(v)
|
||||
139: 14(fvec4) VectorTimesScalar 138 137
|
||||
Store 93(v) 139
|
||||
Branch 136
|
||||
136: Label
|
||||
140: 11 Load 13(a)
|
||||
141: 11 Load 37(b)
|
||||
142: 8(s1) CompositeExtract 140 0
|
||||
143: 8(s1) CompositeExtract 141 0
|
||||
144: 6(int) CompositeExtract 142 0
|
||||
145: 6(int) CompositeExtract 143 0
|
||||
146: 72(bool) IEqual 144 145
|
||||
147: 7(float) CompositeExtract 142 1
|
||||
148: 7(float) CompositeExtract 143 1
|
||||
149: 72(bool) FOrdEqual 147 148
|
||||
150: 72(bool) LogicalAnd 146 149
|
||||
151: 8(s1) CompositeExtract 140 1
|
||||
152: 8(s1) CompositeExtract 141 1
|
||||
153: 6(int) CompositeExtract 151 0
|
||||
154: 61(bool) IEqual 152 153
|
||||
155: 7(float) CompositeExtract 150 1
|
||||
154: 6(int) CompositeExtract 152 0
|
||||
155: 72(bool) IEqual 153 154
|
||||
156: 7(float) CompositeExtract 151 1
|
||||
157: 61(bool) FOrdEqual 155 156
|
||||
158: 61(bool) LogicalAnd 154 157
|
||||
159: 61(bool) LogicalAnd 149 158
|
||||
160: 8(s1) CompositeExtract 129 3
|
||||
161: 8(s1) CompositeExtract 130 3
|
||||
162: 6(int) CompositeExtract 160 0
|
||||
157: 7(float) CompositeExtract 152 1
|
||||
158: 72(bool) FOrdEqual 156 157
|
||||
159: 72(bool) LogicalAnd 155 158
|
||||
160: 72(bool) LogicalAnd 150 159
|
||||
161: 8(s1) CompositeExtract 140 2
|
||||
162: 8(s1) CompositeExtract 141 2
|
||||
163: 6(int) CompositeExtract 161 0
|
||||
164: 61(bool) IEqual 162 163
|
||||
165: 7(float) CompositeExtract 160 1
|
||||
164: 6(int) CompositeExtract 162 0
|
||||
165: 72(bool) IEqual 163 164
|
||||
166: 7(float) CompositeExtract 161 1
|
||||
167: 61(bool) FOrdEqual 165 166
|
||||
168: 61(bool) LogicalAnd 164 167
|
||||
169: 61(bool) LogicalAnd 159 168
|
||||
170: 8(s1) CompositeExtract 129 4
|
||||
171: 8(s1) CompositeExtract 130 4
|
||||
172: 6(int) CompositeExtract 170 0
|
||||
173: 6(int) CompositeExtract 171 0
|
||||
174: 61(bool) IEqual 172 173
|
||||
175: 7(float) CompositeExtract 170 1
|
||||
176: 7(float) CompositeExtract 171 1
|
||||
177: 61(bool) FOrdEqual 175 176
|
||||
178: 61(bool) LogicalAnd 174 177
|
||||
179: 61(bool) LogicalAnd 169 178
|
||||
180: 8(s1) CompositeExtract 129 5
|
||||
181: 8(s1) CompositeExtract 130 5
|
||||
182: 6(int) CompositeExtract 180 0
|
||||
183: 6(int) CompositeExtract 181 0
|
||||
184: 61(bool) IEqual 182 183
|
||||
185: 7(float) CompositeExtract 180 1
|
||||
186: 7(float) CompositeExtract 181 1
|
||||
187: 61(bool) FOrdEqual 185 186
|
||||
188: 61(bool) LogicalAnd 184 187
|
||||
189: 61(bool) LogicalAnd 179 188
|
||||
190: 8(s1) CompositeExtract 129 6
|
||||
191: 8(s1) CompositeExtract 130 6
|
||||
192: 6(int) CompositeExtract 190 0
|
||||
193: 6(int) CompositeExtract 191 0
|
||||
194: 61(bool) IEqual 192 193
|
||||
195: 7(float) CompositeExtract 190 1
|
||||
196: 7(float) CompositeExtract 191 1
|
||||
197: 61(bool) FOrdEqual 195 196
|
||||
198: 61(bool) LogicalAnd 194 197
|
||||
199: 61(bool) LogicalAnd 189 198
|
||||
200: 8(s1) CompositeExtract 129 7
|
||||
201: 8(s1) CompositeExtract 130 7
|
||||
202: 6(int) CompositeExtract 200 0
|
||||
203: 6(int) CompositeExtract 201 0
|
||||
204: 61(bool) IEqual 202 203
|
||||
205: 7(float) CompositeExtract 200 1
|
||||
206: 7(float) CompositeExtract 201 1
|
||||
207: 61(bool) FOrdEqual 205 206
|
||||
208: 61(bool) LogicalAnd 204 207
|
||||
209: 61(bool) LogicalAnd 199 208
|
||||
210: 8(s1) CompositeExtract 129 8
|
||||
211: 8(s1) CompositeExtract 130 8
|
||||
212: 6(int) CompositeExtract 210 0
|
||||
213: 6(int) CompositeExtract 211 0
|
||||
214: 61(bool) IEqual 212 213
|
||||
215: 7(float) CompositeExtract 210 1
|
||||
216: 7(float) CompositeExtract 211 1
|
||||
217: 61(bool) FOrdEqual 215 216
|
||||
218: 61(bool) LogicalAnd 214 217
|
||||
219: 61(bool) LogicalAnd 209 218
|
||||
220: 8(s1) CompositeExtract 129 9
|
||||
221: 8(s1) CompositeExtract 130 9
|
||||
222: 6(int) CompositeExtract 220 0
|
||||
223: 6(int) CompositeExtract 221 0
|
||||
224: 61(bool) IEqual 222 223
|
||||
225: 7(float) CompositeExtract 220 1
|
||||
226: 7(float) CompositeExtract 221 1
|
||||
227: 61(bool) FOrdEqual 225 226
|
||||
228: 61(bool) LogicalAnd 224 227
|
||||
229: 61(bool) LogicalAnd 219 228
|
||||
SelectionMerge 231 None
|
||||
BranchConditional 229 230 231
|
||||
230: Label
|
||||
233: 14(fvec4) Load 82(v)
|
||||
234: 14(fvec4) VectorTimesScalar 233 232
|
||||
Store 82(v) 234
|
||||
Branch 231
|
||||
231: Label
|
||||
235: 11 Load 13(a)
|
||||
236: 11 Load 37(b)
|
||||
237: 8(s1) CompositeExtract 235 0
|
||||
238: 8(s1) CompositeExtract 236 0
|
||||
239: 6(int) CompositeExtract 237 0
|
||||
240: 6(int) CompositeExtract 238 0
|
||||
241: 61(bool) INotEqual 239 240
|
||||
242: 7(float) CompositeExtract 237 1
|
||||
243: 7(float) CompositeExtract 238 1
|
||||
244: 61(bool) FOrdNotEqual 242 243
|
||||
245: 61(bool) LogicalOr 241 244
|
||||
246: 8(s1) CompositeExtract 235 1
|
||||
247: 8(s1) CompositeExtract 236 1
|
||||
248: 6(int) CompositeExtract 246 0
|
||||
249: 6(int) CompositeExtract 247 0
|
||||
250: 61(bool) INotEqual 248 249
|
||||
251: 7(float) CompositeExtract 246 1
|
||||
252: 7(float) CompositeExtract 247 1
|
||||
253: 61(bool) FOrdNotEqual 251 252
|
||||
254: 61(bool) LogicalOr 250 253
|
||||
255: 61(bool) LogicalOr 245 254
|
||||
256: 8(s1) CompositeExtract 235 2
|
||||
257: 8(s1) CompositeExtract 236 2
|
||||
258: 6(int) CompositeExtract 256 0
|
||||
259: 6(int) CompositeExtract 257 0
|
||||
260: 61(bool) INotEqual 258 259
|
||||
261: 7(float) CompositeExtract 256 1
|
||||
262: 7(float) CompositeExtract 257 1
|
||||
263: 61(bool) FOrdNotEqual 261 262
|
||||
264: 61(bool) LogicalOr 260 263
|
||||
265: 61(bool) LogicalOr 255 264
|
||||
266: 8(s1) CompositeExtract 235 3
|
||||
267: 8(s1) CompositeExtract 236 3
|
||||
268: 6(int) CompositeExtract 266 0
|
||||
269: 6(int) CompositeExtract 267 0
|
||||
270: 61(bool) INotEqual 268 269
|
||||
271: 7(float) CompositeExtract 266 1
|
||||
272: 7(float) CompositeExtract 267 1
|
||||
273: 61(bool) FOrdNotEqual 271 272
|
||||
274: 61(bool) LogicalOr 270 273
|
||||
275: 61(bool) LogicalOr 265 274
|
||||
276: 8(s1) CompositeExtract 235 4
|
||||
277: 8(s1) CompositeExtract 236 4
|
||||
278: 6(int) CompositeExtract 276 0
|
||||
279: 6(int) CompositeExtract 277 0
|
||||
280: 61(bool) INotEqual 278 279
|
||||
281: 7(float) CompositeExtract 276 1
|
||||
282: 7(float) CompositeExtract 277 1
|
||||
283: 61(bool) FOrdNotEqual 281 282
|
||||
284: 61(bool) LogicalOr 280 283
|
||||
285: 61(bool) LogicalOr 275 284
|
||||
286: 8(s1) CompositeExtract 235 5
|
||||
287: 8(s1) CompositeExtract 236 5
|
||||
288: 6(int) CompositeExtract 286 0
|
||||
289: 6(int) CompositeExtract 287 0
|
||||
290: 61(bool) INotEqual 288 289
|
||||
291: 7(float) CompositeExtract 286 1
|
||||
292: 7(float) CompositeExtract 287 1
|
||||
293: 61(bool) FOrdNotEqual 291 292
|
||||
294: 61(bool) LogicalOr 290 293
|
||||
295: 61(bool) LogicalOr 285 294
|
||||
296: 8(s1) CompositeExtract 235 6
|
||||
297: 8(s1) CompositeExtract 236 6
|
||||
298: 6(int) CompositeExtract 296 0
|
||||
299: 6(int) CompositeExtract 297 0
|
||||
300: 61(bool) INotEqual 298 299
|
||||
301: 7(float) CompositeExtract 296 1
|
||||
302: 7(float) CompositeExtract 297 1
|
||||
303: 61(bool) FOrdNotEqual 301 302
|
||||
304: 61(bool) LogicalOr 300 303
|
||||
305: 61(bool) LogicalOr 295 304
|
||||
306: 8(s1) CompositeExtract 235 7
|
||||
307: 8(s1) CompositeExtract 236 7
|
||||
308: 6(int) CompositeExtract 306 0
|
||||
309: 6(int) CompositeExtract 307 0
|
||||
310: 61(bool) INotEqual 308 309
|
||||
311: 7(float) CompositeExtract 306 1
|
||||
312: 7(float) CompositeExtract 307 1
|
||||
313: 61(bool) FOrdNotEqual 311 312
|
||||
314: 61(bool) LogicalOr 310 313
|
||||
315: 61(bool) LogicalOr 305 314
|
||||
316: 8(s1) CompositeExtract 235 8
|
||||
317: 8(s1) CompositeExtract 236 8
|
||||
318: 6(int) CompositeExtract 316 0
|
||||
319: 6(int) CompositeExtract 317 0
|
||||
320: 61(bool) INotEqual 318 319
|
||||
321: 7(float) CompositeExtract 316 1
|
||||
322: 7(float) CompositeExtract 317 1
|
||||
323: 61(bool) FOrdNotEqual 321 322
|
||||
324: 61(bool) LogicalOr 320 323
|
||||
325: 61(bool) LogicalOr 315 324
|
||||
326: 8(s1) CompositeExtract 235 9
|
||||
327: 8(s1) CompositeExtract 236 9
|
||||
328: 6(int) CompositeExtract 326 0
|
||||
329: 6(int) CompositeExtract 327 0
|
||||
330: 61(bool) INotEqual 328 329
|
||||
331: 7(float) CompositeExtract 326 1
|
||||
332: 7(float) CompositeExtract 327 1
|
||||
333: 61(bool) FOrdNotEqual 331 332
|
||||
334: 61(bool) LogicalOr 330 333
|
||||
335: 61(bool) LogicalOr 325 334
|
||||
SelectionMerge 337 None
|
||||
BranchConditional 335 336 337
|
||||
336: Label
|
||||
339: 14(fvec4) Load 82(v)
|
||||
340: 14(fvec4) VectorTimesScalar 339 338
|
||||
Store 82(v) 340
|
||||
Branch 337
|
||||
337: Label
|
||||
350: 349(ptr) AccessChain 345(bi) 346
|
||||
351: 342(s2) Load 350
|
||||
352: 55(s2) Load 57(foo2a)
|
||||
353: 6(int) CompositeExtract 351 0
|
||||
354: 6(int) CompositeExtract 352 0
|
||||
355: 61(bool) INotEqual 353 354
|
||||
356: 7(float) CompositeExtract 351 1
|
||||
357: 7(float) CompositeExtract 352 1
|
||||
358: 61(bool) FOrdNotEqual 356 357
|
||||
359: 61(bool) LogicalOr 355 358
|
||||
360: 341(s1) CompositeExtract 351 2
|
||||
361: 8(s1) CompositeExtract 352 2
|
||||
362: 6(int) CompositeExtract 360 0
|
||||
363: 6(int) CompositeExtract 361 0
|
||||
364: 61(bool) INotEqual 362 363
|
||||
365: 7(float) CompositeExtract 360 1
|
||||
366: 7(float) CompositeExtract 361 1
|
||||
367: 61(bool) FOrdNotEqual 365 366
|
||||
368: 61(bool) LogicalOr 364 367
|
||||
369: 61(bool) LogicalOr 359 368
|
||||
SelectionMerge 371 None
|
||||
BranchConditional 369 370 371
|
||||
370: Label
|
||||
373: 14(fvec4) Load 82(v)
|
||||
374: 14(fvec4) VectorTimesScalar 373 372
|
||||
Store 82(v) 374
|
||||
Branch 371
|
||||
371: Label
|
||||
377: 14(fvec4) Load 82(v)
|
||||
Store 376(color) 377
|
||||
167: 7(float) CompositeExtract 162 1
|
||||
168: 72(bool) FOrdEqual 166 167
|
||||
169: 72(bool) LogicalAnd 165 168
|
||||
170: 72(bool) LogicalAnd 160 169
|
||||
SelectionMerge 172 None
|
||||
BranchConditional 170 171 172
|
||||
171: Label
|
||||
174: 14(fvec4) Load 93(v)
|
||||
175: 14(fvec4) VectorTimesScalar 174 173
|
||||
Store 93(v) 175
|
||||
Branch 172
|
||||
172: Label
|
||||
176: 11 Load 13(a)
|
||||
177: 11 Load 37(b)
|
||||
178: 8(s1) CompositeExtract 176 0
|
||||
179: 8(s1) CompositeExtract 177 0
|
||||
180: 6(int) CompositeExtract 178 0
|
||||
181: 6(int) CompositeExtract 179 0
|
||||
182: 72(bool) INotEqual 180 181
|
||||
183: 7(float) CompositeExtract 178 1
|
||||
184: 7(float) CompositeExtract 179 1
|
||||
185: 72(bool) FOrdNotEqual 183 184
|
||||
186: 72(bool) LogicalOr 182 185
|
||||
187: 8(s1) CompositeExtract 176 1
|
||||
188: 8(s1) CompositeExtract 177 1
|
||||
189: 6(int) CompositeExtract 187 0
|
||||
190: 6(int) CompositeExtract 188 0
|
||||
191: 72(bool) INotEqual 189 190
|
||||
192: 7(float) CompositeExtract 187 1
|
||||
193: 7(float) CompositeExtract 188 1
|
||||
194: 72(bool) FOrdNotEqual 192 193
|
||||
195: 72(bool) LogicalOr 191 194
|
||||
196: 72(bool) LogicalOr 186 195
|
||||
197: 8(s1) CompositeExtract 176 2
|
||||
198: 8(s1) CompositeExtract 177 2
|
||||
199: 6(int) CompositeExtract 197 0
|
||||
200: 6(int) CompositeExtract 198 0
|
||||
201: 72(bool) INotEqual 199 200
|
||||
202: 7(float) CompositeExtract 197 1
|
||||
203: 7(float) CompositeExtract 198 1
|
||||
204: 72(bool) FOrdNotEqual 202 203
|
||||
205: 72(bool) LogicalOr 201 204
|
||||
206: 72(bool) LogicalOr 196 205
|
||||
SelectionMerge 208 None
|
||||
BranchConditional 206 207 208
|
||||
207: Label
|
||||
210: 14(fvec4) Load 93(v)
|
||||
211: 14(fvec4) VectorTimesScalar 210 209
|
||||
Store 93(v) 211
|
||||
Branch 208
|
||||
208: Label
|
||||
214: 14(fvec4) Load 93(v)
|
||||
Store 213(color) 214
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
23
Test/baseResults/spv.always-discard.frag.out
Executable file → Normal file
23
Test/baseResults/spv.always-discard.frag.out
Executable file → Normal file
|
|
@ -11,8 +11,8 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 21 59
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 9 "white"
|
||||
Name 12 "black"
|
||||
|
|
@ -110,23 +110,4 @@ Linked fragment stage:
|
|||
Branch 49
|
||||
49: Label
|
||||
Kill
|
||||
69: Label
|
||||
70: 6(float) Load 36(radius)
|
||||
72: 46(bool) FOrdGreaterThanEqual 70 71
|
||||
SelectionMerge 74 None
|
||||
BranchConditional 72 73 74
|
||||
73: Label
|
||||
75: 6(float) Load 36(radius)
|
||||
77: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 75 76
|
||||
78: 6(float) FDiv 77 27
|
||||
79: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 78
|
||||
80: 7(fvec4) Load 15(color)
|
||||
81: 7(fvec4) CompositeConstruct 79 79 79 79
|
||||
82: 7(fvec4) FSub 80 81
|
||||
Store 15(color) 82
|
||||
Branch 74
|
||||
74: Label
|
||||
83: 7(fvec4) Load 15(color)
|
||||
Store 59(gl_FragColor) 83
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 21 38
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 9 "white"
|
||||
Name 12 "black"
|
||||
|
|
|
|||
|
|
@ -1,132 +1,205 @@
|
|||
spv.atomic.comp
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 310
|
||||
Requested GL_ARB_gl_spirv
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:14 Function Definition: func(au1; (global highp uint)
|
||||
0:14 Function Parameters:
|
||||
0:14 'c' (in highp atomic_uint)
|
||||
0:16 Sequence
|
||||
0:16 Branch: Return with expression
|
||||
0:16 AtomicCounterIncrement (global highp uint)
|
||||
0:16 'c' (in highp atomic_uint)
|
||||
0:19 Function Definition: main( (global void)
|
||||
0:19 Function Parameters:
|
||||
0:21 Sequence
|
||||
0:21 MemoryBarrierAtomicCounter (global void)
|
||||
0:22 Function Call: func(au1; (global highp uint)
|
||||
0:22 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
||||
0:23 Sequence
|
||||
0:23 move second child to first child (temp highp uint)
|
||||
0:23 'val' (temp highp uint)
|
||||
0:23 AtomicCounter (global highp uint)
|
||||
0:23 direct index (layout(binding=0 offset=4 ) temp highp atomic_uint)
|
||||
0:23 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:24 AtomicCounterDecrement (global highp uint)
|
||||
0:24 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
||||
0:36 Function Definition: atoms( (global void)
|
||||
0:36 Function Parameters:
|
||||
0:38 Sequence
|
||||
0:38 Sequence
|
||||
0:38 move second child to first child (temp highp int)
|
||||
0:38 'origi' (temp highp int)
|
||||
0:38 AtomicAdd (global highp int)
|
||||
0:38 'atomi' (shared highp int)
|
||||
0:38 Constant:
|
||||
0:38 3 (const int)
|
||||
0:39 Sequence
|
||||
0:39 move second child to first child (temp highp uint)
|
||||
0:39 'origu' (temp highp uint)
|
||||
0:39 AtomicAnd (global highp uint)
|
||||
0:39 'atomu' (shared highp uint)
|
||||
0:39 'value' (shared highp uint)
|
||||
0:40 move second child to first child (temp highp uint)
|
||||
0:40 'origu' (temp highp uint)
|
||||
0:40 AtomicOr (global highp uint)
|
||||
0:40 'atomu' (shared highp uint)
|
||||
0:40 Constant:
|
||||
0:40 7 (const uint)
|
||||
0:41 move second child to first child (temp highp uint)
|
||||
0:41 'origu' (temp highp uint)
|
||||
0:41 AtomicXor (global highp uint)
|
||||
0:41 'atomu' (shared highp uint)
|
||||
0:41 Constant:
|
||||
0:41 7 (const uint)
|
||||
0:42 move second child to first child (temp highp uint)
|
||||
0:42 'origu' (temp highp uint)
|
||||
0:42 AtomicMin (global highp uint)
|
||||
0:42 'atomu' (shared highp uint)
|
||||
0:42 'value' (shared highp uint)
|
||||
0:43 move second child to first child (temp highp int)
|
||||
0:43 'origi' (temp highp int)
|
||||
0:43 AtomicMax (global highp int)
|
||||
0:43 'atomi' (shared highp int)
|
||||
0:43 Constant:
|
||||
0:43 7 (const int)
|
||||
0:44 move second child to first child (temp highp int)
|
||||
0:44 'origi' (temp highp int)
|
||||
0:44 AtomicExchange (global highp int)
|
||||
0:44 'atomi' (shared highp int)
|
||||
0:44 'origi' (temp highp int)
|
||||
0:45 move second child to first child (temp highp uint)
|
||||
0:45 'origu' (temp highp uint)
|
||||
0:45 AtomicCompSwap (global highp uint)
|
||||
0:45 'atomu' (shared highp uint)
|
||||
0:45 Constant:
|
||||
0:45 10 (const uint)
|
||||
0:45 'value' (shared highp uint)
|
||||
0:46 AtomicAdd (global highp int)
|
||||
0:46 direct index (temp highp int)
|
||||
0:46 n_frames_rendered: direct index for structure (layout(column_major std140 offset=16 ) buffer highp 4-component vector of int)
|
||||
0:46 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
|
||||
0:46 Constant:
|
||||
0:46 1 (const int)
|
||||
0:46 Constant:
|
||||
0:46 2 (const int)
|
||||
0:46 Constant:
|
||||
0:46 1 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
||||
0:? 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
|
||||
0:? 'value' (shared highp uint)
|
||||
0:? 'arrX' (global 1-element array of highp int)
|
||||
0:? 'arrY' (global 1-element array of highp int)
|
||||
0:? 'arrZ' (global 1-element array of highp int)
|
||||
0:? 'atomi' (shared highp int)
|
||||
0:? 'atomu' (shared highp uint)
|
||||
0:? 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 74
|
||||
Shader version: 310
|
||||
Requested GL_ARB_gl_spirv
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:14 Function Definition: func(au1; (global highp uint)
|
||||
0:14 Function Parameters:
|
||||
0:14 'c' (in highp atomic_uint)
|
||||
0:16 Sequence
|
||||
0:16 Branch: Return with expression
|
||||
0:16 AtomicCounterIncrement (global highp uint)
|
||||
0:16 'c' (in highp atomic_uint)
|
||||
0:19 Function Definition: main( (global void)
|
||||
0:19 Function Parameters:
|
||||
0:21 Sequence
|
||||
0:21 MemoryBarrierAtomicCounter (global void)
|
||||
0:22 Function Call: func(au1; (global highp uint)
|
||||
0:22 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
||||
0:23 Sequence
|
||||
0:23 move second child to first child (temp highp uint)
|
||||
0:23 'val' (temp highp uint)
|
||||
0:23 AtomicCounter (global highp uint)
|
||||
0:23 direct index (layout(binding=0 offset=4 ) temp highp atomic_uint)
|
||||
0:23 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:24 AtomicCounterDecrement (global highp uint)
|
||||
0:24 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
||||
0:36 Function Definition: atoms( (global void)
|
||||
0:36 Function Parameters:
|
||||
0:38 Sequence
|
||||
0:38 Sequence
|
||||
0:38 move second child to first child (temp highp int)
|
||||
0:38 'origi' (temp highp int)
|
||||
0:38 AtomicAdd (global highp int)
|
||||
0:38 'atomi' (shared highp int)
|
||||
0:38 Constant:
|
||||
0:38 3 (const int)
|
||||
0:39 Sequence
|
||||
0:39 move second child to first child (temp highp uint)
|
||||
0:39 'origu' (temp highp uint)
|
||||
0:39 AtomicAnd (global highp uint)
|
||||
0:39 'atomu' (shared highp uint)
|
||||
0:39 'value' (shared highp uint)
|
||||
0:40 move second child to first child (temp highp uint)
|
||||
0:40 'origu' (temp highp uint)
|
||||
0:40 AtomicOr (global highp uint)
|
||||
0:40 'atomu' (shared highp uint)
|
||||
0:40 Constant:
|
||||
0:40 7 (const uint)
|
||||
0:41 move second child to first child (temp highp uint)
|
||||
0:41 'origu' (temp highp uint)
|
||||
0:41 AtomicXor (global highp uint)
|
||||
0:41 'atomu' (shared highp uint)
|
||||
0:41 Constant:
|
||||
0:41 7 (const uint)
|
||||
0:42 move second child to first child (temp highp uint)
|
||||
0:42 'origu' (temp highp uint)
|
||||
0:42 AtomicMin (global highp uint)
|
||||
0:42 'atomu' (shared highp uint)
|
||||
0:42 'value' (shared highp uint)
|
||||
0:43 move second child to first child (temp highp int)
|
||||
0:43 'origi' (temp highp int)
|
||||
0:43 AtomicMax (global highp int)
|
||||
0:43 'atomi' (shared highp int)
|
||||
0:43 Constant:
|
||||
0:43 7 (const int)
|
||||
0:44 move second child to first child (temp highp int)
|
||||
0:44 'origi' (temp highp int)
|
||||
0:44 AtomicExchange (global highp int)
|
||||
0:44 'atomi' (shared highp int)
|
||||
0:44 'origi' (temp highp int)
|
||||
0:45 move second child to first child (temp highp uint)
|
||||
0:45 'origu' (temp highp uint)
|
||||
0:45 AtomicCompSwap (global highp uint)
|
||||
0:45 'atomu' (shared highp uint)
|
||||
0:45 Constant:
|
||||
0:45 10 (const uint)
|
||||
0:45 'value' (shared highp uint)
|
||||
0:46 AtomicAdd (global highp int)
|
||||
0:46 direct index (temp highp int)
|
||||
0:46 n_frames_rendered: direct index for structure (layout(column_major std140 offset=16 ) buffer highp 4-component vector of int)
|
||||
0:46 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
|
||||
0:46 Constant:
|
||||
0:46 1 (const int)
|
||||
0:46 Constant:
|
||||
0:46 2 (const int)
|
||||
0:46 Constant:
|
||||
0:46 1 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
||||
0:? 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
|
||||
0:? 'value' (shared highp uint)
|
||||
0:? 'arrX' (global 1-element array of highp int)
|
||||
0:? 'arrY' (global 1-element array of highp int)
|
||||
0:? 'arrZ' (global 1-element array of highp int)
|
||||
0:? 'atomi' (shared highp int)
|
||||
0:? 'atomu' (shared highp uint)
|
||||
0:? 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main"
|
||||
ExecutionMode 4 LocalSize 1 1 1
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 10 "func(au1;"
|
||||
Name 9 "c"
|
||||
Name 12 "atoms("
|
||||
Name 20 "counter"
|
||||
Name 21 "param"
|
||||
Name 24 "val"
|
||||
Name 28 "countArr"
|
||||
Name 35 "origi"
|
||||
Name 37 "atomi"
|
||||
Name 40 "origu"
|
||||
Name 42 "atomu"
|
||||
Name 44 "value"
|
||||
Name 61 "dataSSB"
|
||||
MemberName 61(dataSSB) 0 "f"
|
||||
MemberName 61(dataSSB) 1 "n_frames_rendered"
|
||||
Name 63 "result"
|
||||
Name 71 "arrX"
|
||||
Name 72 "arrY"
|
||||
Name 73 "arrZ"
|
||||
Decorate 20(counter) Binding 0
|
||||
Decorate 28(countArr) Binding 0
|
||||
MemberDecorate 61(dataSSB) 0 Offset 0
|
||||
MemberDecorate 61(dataSSB) 1 Offset 16
|
||||
Decorate 61(dataSSB) BufferBlock
|
||||
Decorate 63(result) Binding 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypePointer Function 6(int)
|
||||
8: TypeFunction 6(int) 7(ptr)
|
||||
14: 6(int) Constant 1
|
||||
15: 6(int) Constant 0
|
||||
18: 6(int) Constant 1024
|
||||
19: TypePointer AtomicCounter 6(int)
|
||||
20(counter): 19(ptr) Variable AtomicCounter
|
||||
25: 6(int) Constant 4
|
||||
26: TypeArray 6(int) 25
|
||||
27: TypePointer AtomicCounter 26
|
||||
28(countArr): 27(ptr) Variable AtomicCounter
|
||||
29: TypeInt 32 1
|
||||
30: 29(int) Constant 2
|
||||
34: TypePointer Function 29(int)
|
||||
36: TypePointer Workgroup 29(int)
|
||||
37(atomi): 36(ptr) Variable Workgroup
|
||||
38: 29(int) Constant 3
|
||||
41: TypePointer Workgroup 6(int)
|
||||
42(atomu): 41(ptr) Variable Workgroup
|
||||
43: TypePointer UniformConstant 6(int)
|
||||
44(value): 43(ptr) Variable UniformConstant
|
||||
47: 6(int) Constant 7
|
||||
52: 29(int) Constant 7
|
||||
56: 6(int) Constant 10
|
||||
59: TypeFloat 32
|
||||
60: TypeVector 29(int) 4
|
||||
61(dataSSB): TypeStruct 59(float) 60(ivec4)
|
||||
62: TypePointer Uniform 61(dataSSB)
|
||||
63(result): 62(ptr) Variable Uniform
|
||||
64: 29(int) Constant 1
|
||||
65: 6(int) Constant 2
|
||||
66: TypePointer Uniform 29(int)
|
||||
69: TypeArray 29(int) 14
|
||||
70: TypePointer Private 69
|
||||
71(arrX): 70(ptr) Variable Private
|
||||
72(arrY): 70(ptr) Variable Private
|
||||
73(arrZ): 70(ptr) Variable Private
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
21(param): 7(ptr) Variable Function
|
||||
24(val): 7(ptr) Variable Function
|
||||
MemoryBarrier 14 18
|
||||
22: 6(int) Load 20(counter)
|
||||
Store 21(param) 22
|
||||
23: 6(int) FunctionCall 10(func(au1;) 21(param)
|
||||
31: 19(ptr) AccessChain 28(countArr) 30
|
||||
32: 6(int) AtomicLoad 31 14 15
|
||||
Store 24(val) 32
|
||||
33: 6(int) AtomicIDecrement 20(counter) 14 15
|
||||
Return
|
||||
FunctionEnd
|
||||
10(func(au1;): 6(int) Function None 8
|
||||
9(c): 7(ptr) FunctionParameter
|
||||
11: Label
|
||||
16: 6(int) AtomicIIncrement 9(c) 14 15
|
||||
ReturnValue 16
|
||||
FunctionEnd
|
||||
12(atoms(): 2 Function None 3
|
||||
13: Label
|
||||
35(origi): 34(ptr) Variable Function
|
||||
40(origu): 7(ptr) Variable Function
|
||||
39: 29(int) AtomicIAdd 37(atomi) 14 15 38
|
||||
Store 35(origi) 39
|
||||
45: 6(int) Load 44(value)
|
||||
46: 6(int) AtomicAnd 42(atomu) 14 15 45
|
||||
Store 40(origu) 46
|
||||
48: 6(int) AtomicOr 42(atomu) 14 15 47
|
||||
Store 40(origu) 48
|
||||
49: 6(int) AtomicXor 42(atomu) 14 15 47
|
||||
Store 40(origu) 49
|
||||
50: 6(int) Load 44(value)
|
||||
51: 6(int) AtomicUMin 42(atomu) 14 15 50
|
||||
Store 40(origu) 51
|
||||
53: 29(int) AtomicSMax 37(atomi) 14 15 52
|
||||
Store 35(origi) 53
|
||||
54: 29(int) Load 35(origi)
|
||||
55: 29(int) AtomicExchange 37(atomi) 14 15 54
|
||||
Store 35(origi) 55
|
||||
57: 6(int) Load 44(value)
|
||||
58: 6(int) AtomicCompareExchange 42(atomu) 14 15 15 57 56
|
||||
Store 40(origu) 58
|
||||
67: 66(ptr) AccessChain 63(result) 64 65
|
||||
68: 29(int) AtomicIAdd 67 14 15 64
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ Linked fragment stage:
|
|||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 154
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 154
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "idata"
|
||||
|
|
@ -32,6 +32,14 @@ Linked fragment stage:
|
|||
Name 139 "u3"
|
||||
Name 148 "u4"
|
||||
Name 154 "fragColor"
|
||||
Decorate 89(i1) Flat
|
||||
Decorate 98(i2) Flat
|
||||
Decorate 107(i3) Flat
|
||||
Decorate 116(i4) Flat
|
||||
Decorate 122(u1) Flat
|
||||
Decorate 130(u2) Flat
|
||||
Decorate 139(u3) Flat
|
||||
Decorate 148(u4) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
|
|
@ -40,22 +48,22 @@ Linked fragment stage:
|
|||
10: 6(int) Constant 0
|
||||
11: 7(ivec4) ConstantComposite 10 10 10 10
|
||||
12: TypeFloat 32
|
||||
13: TypePointer UniformConstant 12(float)
|
||||
14(f1): 13(ptr) Variable UniformConstant
|
||||
13: TypePointer Input 12(float)
|
||||
14(f1): 13(ptr) Variable Input
|
||||
17: TypeInt 32 0
|
||||
18: 17(int) Constant 0
|
||||
19: TypePointer Function 6(int)
|
||||
24: TypeVector 12(float) 2
|
||||
25: TypePointer UniformConstant 24(fvec2)
|
||||
26(f2): 25(ptr) Variable UniformConstant
|
||||
25: TypePointer Input 24(fvec2)
|
||||
26(f2): 25(ptr) Variable Input
|
||||
28: TypeVector 6(int) 2
|
||||
35: TypeVector 12(float) 3
|
||||
36: TypePointer UniformConstant 35(fvec3)
|
||||
37(f3): 36(ptr) Variable UniformConstant
|
||||
36: TypePointer Input 35(fvec3)
|
||||
37(f3): 36(ptr) Variable Input
|
||||
39: TypeVector 6(int) 3
|
||||
46: TypeVector 12(float) 4
|
||||
47: TypePointer UniformConstant 46(fvec4)
|
||||
48(f4): 47(ptr) Variable UniformConstant
|
||||
47: TypePointer Input 46(fvec4)
|
||||
48(f4): 47(ptr) Variable Input
|
||||
53: TypeVector 17(int) 4
|
||||
54: TypePointer Function 53(ivec4)
|
||||
56: 53(ivec4) ConstantComposite 18 18 18 18
|
||||
|
|
@ -65,23 +73,23 @@ Linked fragment stage:
|
|||
84: TypePointer Function 46(fvec4)
|
||||
86: 12(float) Constant 0
|
||||
87: 46(fvec4) ConstantComposite 86 86 86 86
|
||||
88: TypePointer UniformConstant 6(int)
|
||||
89(i1): 88(ptr) Variable UniformConstant
|
||||
88: TypePointer Input 6(int)
|
||||
89(i1): 88(ptr) Variable Input
|
||||
92: TypePointer Function 12(float)
|
||||
97: TypePointer UniformConstant 28(ivec2)
|
||||
98(i2): 97(ptr) Variable UniformConstant
|
||||
106: TypePointer UniformConstant 39(ivec3)
|
||||
107(i3): 106(ptr) Variable UniformConstant
|
||||
115: TypePointer UniformConstant 7(ivec4)
|
||||
116(i4): 115(ptr) Variable UniformConstant
|
||||
121: TypePointer UniformConstant 17(int)
|
||||
122(u1): 121(ptr) Variable UniformConstant
|
||||
129: TypePointer UniformConstant 65(ivec2)
|
||||
130(u2): 129(ptr) Variable UniformConstant
|
||||
138: TypePointer UniformConstant 73(ivec3)
|
||||
139(u3): 138(ptr) Variable UniformConstant
|
||||
147: TypePointer UniformConstant 53(ivec4)
|
||||
148(u4): 147(ptr) Variable UniformConstant
|
||||
97: TypePointer Input 28(ivec2)
|
||||
98(i2): 97(ptr) Variable Input
|
||||
106: TypePointer Input 39(ivec3)
|
||||
107(i3): 106(ptr) Variable Input
|
||||
115: TypePointer Input 7(ivec4)
|
||||
116(i4): 115(ptr) Variable Input
|
||||
121: TypePointer Input 17(int)
|
||||
122(u1): 121(ptr) Variable Input
|
||||
129: TypePointer Input 65(ivec2)
|
||||
130(u2): 129(ptr) Variable Input
|
||||
138: TypePointer Input 73(ivec3)
|
||||
139(u3): 138(ptr) Variable Input
|
||||
147: TypePointer Input 53(ivec4)
|
||||
148(u4): 147(ptr) Variable Input
|
||||
153: TypePointer Output 46(fvec4)
|
||||
154(fragColor): 153(ptr) Variable Output
|
||||
159: TypeBool
|
||||
|
|
|
|||
|
|
@ -10,83 +10,81 @@ Linked vertex stage:
|
|||
// Id's are bound by 49
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
Capability CullDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 23 47 48
|
||||
EntryPoint Vertex 4 "main" 24
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 10 "foo(b1;"
|
||||
Name 9 "b"
|
||||
Name 21 "gl_PerVertex"
|
||||
MemberName 21(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 21(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 21(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
MemberName 21(gl_PerVertex) 3 "gl_CullDistance"
|
||||
Name 23 ""
|
||||
Name 28 "ubname"
|
||||
MemberName 28(ubname) 0 "b"
|
||||
Name 30 "ubinst"
|
||||
Name 31 "param"
|
||||
Name 47 "gl_VertexID"
|
||||
Name 48 "gl_InstanceID"
|
||||
MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance
|
||||
Decorate 21(gl_PerVertex) Block
|
||||
Decorate 28(ubname) GLSLShared
|
||||
Decorate 28(ubname) Block
|
||||
Decorate 47(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 48(gl_InstanceID) BuiltIn InstanceId
|
||||
Name 22 "gl_PerVertex"
|
||||
MemberName 22(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 22(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 22(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
MemberName 22(gl_PerVertex) 3 "gl_CullDistance"
|
||||
Name 24 ""
|
||||
Name 29 "ubname"
|
||||
MemberName 29(ubname) 0 "b"
|
||||
Name 31 "ubinst"
|
||||
Name 32 "param"
|
||||
MemberDecorate 22(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 22(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 22(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
MemberDecorate 22(gl_PerVertex) 3 BuiltIn CullDistance
|
||||
Decorate 22(gl_PerVertex) Block
|
||||
MemberDecorate 29(ubname) 0 Offset 0
|
||||
Decorate 29(ubname) Block
|
||||
Decorate 31(ubinst) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeBool
|
||||
7: TypePointer Function 6(bool)
|
||||
8: TypeFunction 6(bool) 7(ptr)
|
||||
13: 6(bool) ConstantFalse
|
||||
16: TypeFloat 32
|
||||
17: TypeVector 16(float) 4
|
||||
18: TypeInt 32 0
|
||||
19: 18(int) Constant 1
|
||||
20: TypeArray 16(float) 19
|
||||
21(gl_PerVertex): TypeStruct 17(fvec4) 16(float) 20 20
|
||||
22: TypePointer Output 21(gl_PerVertex)
|
||||
23: 22(ptr) Variable Output
|
||||
24: TypeInt 32 1
|
||||
25: 24(int) Constant 0
|
||||
26: TypePointer Function 17(fvec4)
|
||||
28(ubname): TypeStruct 6(bool)
|
||||
29: TypePointer Uniform 28(ubname)
|
||||
30(ubinst): 29(ptr) Variable Uniform
|
||||
32: TypePointer Uniform 6(bool)
|
||||
38: 16(float) Constant 0
|
||||
39: 17(fvec4) ConstantComposite 38 38 38 38
|
||||
41: 16(float) Constant 1065353216
|
||||
42: 17(fvec4) ConstantComposite 41 41 41 41
|
||||
44: TypePointer Output 17(fvec4)
|
||||
46: TypePointer Input 24(int)
|
||||
47(gl_VertexID): 46(ptr) Variable Input
|
||||
48(gl_InstanceID): 46(ptr) Variable Input
|
||||
17: TypeFloat 32
|
||||
18: TypeVector 17(float) 4
|
||||
19: TypeInt 32 0
|
||||
20: 19(int) Constant 1
|
||||
21: TypeArray 17(float) 20
|
||||
22(gl_PerVertex): TypeStruct 18(fvec4) 17(float) 21 21
|
||||
23: TypePointer Output 22(gl_PerVertex)
|
||||
24: 23(ptr) Variable Output
|
||||
25: TypeInt 32 1
|
||||
26: 25(int) Constant 0
|
||||
27: TypePointer Function 18(fvec4)
|
||||
29(ubname): TypeStruct 19(int)
|
||||
30: TypePointer Uniform 29(ubname)
|
||||
31(ubinst): 30(ptr) Variable Uniform
|
||||
33: TypePointer Uniform 19(int)
|
||||
36: 19(int) Constant 0
|
||||
41: 17(float) Constant 0
|
||||
42: 18(fvec4) ConstantComposite 41 41 41 41
|
||||
44: 17(float) Constant 1065353216
|
||||
45: 18(fvec4) ConstantComposite 44 44 44 44
|
||||
47: TypePointer Output 18(fvec4)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
27: 26(ptr) Variable Function
|
||||
31(param): 7(ptr) Variable Function
|
||||
33: 32(ptr) AccessChain 30(ubinst) 25
|
||||
34: 6(bool) Load 33
|
||||
Store 31(param) 34
|
||||
35: 6(bool) FunctionCall 10(foo(b1;) 31(param)
|
||||
SelectionMerge 37 None
|
||||
BranchConditional 35 36 40
|
||||
36: Label
|
||||
Store 27 39
|
||||
Branch 37
|
||||
40: Label
|
||||
Store 27 42
|
||||
Branch 37
|
||||
37: Label
|
||||
43: 17(fvec4) Load 27
|
||||
45: 44(ptr) AccessChain 23 25
|
||||
Store 45 43
|
||||
28: 27(ptr) Variable Function
|
||||
32(param): 7(ptr) Variable Function
|
||||
34: 33(ptr) AccessChain 31(ubinst) 26
|
||||
35: 19(int) Load 34
|
||||
37: 6(bool) INotEqual 35 36
|
||||
Store 32(param) 37
|
||||
38: 6(bool) FunctionCall 10(foo(b1;) 32(param)
|
||||
SelectionMerge 40 None
|
||||
BranchConditional 38 39 43
|
||||
39: Label
|
||||
Store 28 42
|
||||
Branch 40
|
||||
43: Label
|
||||
Store 28 45
|
||||
Branch 40
|
||||
40: Label
|
||||
46: 18(fvec4) Load 28
|
||||
48: 47(ptr) AccessChain 24 26
|
||||
Store 48 46
|
||||
Return
|
||||
FunctionEnd
|
||||
10(foo(b1;): 6(bool) Function None 8
|
||||
|
|
|
|||
169
Test/baseResults/spv.boolInBlock.frag.out
Normal file
169
Test/baseResults/spv.boolInBlock.frag.out
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
spv.boolInBlock.frag
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 107
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 75
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 14 "foo(vb4;vb2;"
|
||||
Name 12 "paramb4"
|
||||
Name 13 "paramb2"
|
||||
Name 17 "b1"
|
||||
Name 24 "Buffer"
|
||||
MemberName 24(Buffer) 0 "b2"
|
||||
Name 26 ""
|
||||
Name 39 "Uniform"
|
||||
MemberName 39(Uniform) 0 "b4"
|
||||
Name 41 ""
|
||||
Name 62 "param"
|
||||
Name 67 "param"
|
||||
Name 75 "fragColor"
|
||||
MemberDecorate 24(Buffer) 0 Offset 0
|
||||
Decorate 24(Buffer) BufferBlock
|
||||
Decorate 26 DescriptorSet 0
|
||||
Decorate 26 Binding 1
|
||||
MemberDecorate 39(Uniform) 0 Offset 0
|
||||
Decorate 39(Uniform) Block
|
||||
Decorate 41 DescriptorSet 0
|
||||
Decorate 41 Binding 0
|
||||
Decorate 75(fragColor) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeBool
|
||||
7: TypeVector 6(bool) 4
|
||||
8: TypePointer Function 7(bvec4)
|
||||
9: TypeVector 6(bool) 2
|
||||
10: TypePointer Function 9(bvec2)
|
||||
11: TypeFunction 2 8(ptr) 10(ptr)
|
||||
16: TypePointer Function 6(bool)
|
||||
22: TypeInt 32 0
|
||||
23: TypeVector 22(int) 2
|
||||
24(Buffer): TypeStruct 23(ivec2)
|
||||
25: TypePointer Uniform 24(Buffer)
|
||||
26: 25(ptr) Variable Uniform
|
||||
27: TypeInt 32 1
|
||||
28: 27(int) Constant 0
|
||||
29: 6(bool) ConstantFalse
|
||||
30: 9(bvec2) ConstantComposite 29 29
|
||||
31: 22(int) Constant 0
|
||||
32: 23(ivec2) ConstantComposite 31 31
|
||||
33: 22(int) Constant 1
|
||||
34: 23(ivec2) ConstantComposite 33 33
|
||||
36: TypePointer Uniform 23(ivec2)
|
||||
38: TypeVector 22(int) 4
|
||||
39(Uniform): TypeStruct 38(ivec4)
|
||||
40: TypePointer Uniform 39(Uniform)
|
||||
41: 40(ptr) Variable Uniform
|
||||
42: TypePointer Uniform 38(ivec4)
|
||||
65: 38(ivec4) ConstantComposite 31 31 31 31
|
||||
72: TypeFloat 32
|
||||
73: TypeVector 72(float) 4
|
||||
74: TypePointer Output 73(fvec4)
|
||||
75(fragColor): 74(ptr) Variable Output
|
||||
87: 72(float) Constant 0
|
||||
88: 72(float) Constant 1065353216
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
62(param): 8(ptr) Variable Function
|
||||
67(param): 10(ptr) Variable Function
|
||||
35: 23(ivec2) Select 30 34 32
|
||||
37: 36(ptr) AccessChain 26 28
|
||||
Store 37 35
|
||||
43: 42(ptr) AccessChain 41 28
|
||||
44: 38(ivec4) Load 43
|
||||
45: 22(int) CompositeExtract 44 2
|
||||
46: 6(bool) INotEqual 45 31
|
||||
SelectionMerge 48 None
|
||||
BranchConditional 46 47 48
|
||||
47: Label
|
||||
49: 42(ptr) AccessChain 41 28
|
||||
50: 38(ivec4) Load 49
|
||||
51: 22(int) CompositeExtract 50 0
|
||||
52: 6(bool) INotEqual 51 31
|
||||
53: 9(bvec2) CompositeConstruct 52 52
|
||||
54: 23(ivec2) Select 53 34 32
|
||||
55: 36(ptr) AccessChain 26 28
|
||||
Store 55 54
|
||||
Branch 48
|
||||
48: Label
|
||||
56: 36(ptr) AccessChain 26 28
|
||||
57: 23(ivec2) Load 56
|
||||
58: 22(int) CompositeExtract 57 0
|
||||
59: 6(bool) INotEqual 58 31
|
||||
SelectionMerge 61 None
|
||||
BranchConditional 59 60 61
|
||||
60: Label
|
||||
63: 42(ptr) AccessChain 41 28
|
||||
64: 38(ivec4) Load 63
|
||||
66: 7(bvec4) INotEqual 64 65
|
||||
Store 62(param) 66
|
||||
68: 2 FunctionCall 14(foo(vb4;vb2;) 62(param) 67(param)
|
||||
69: 9(bvec2) Load 67(param)
|
||||
70: 23(ivec2) Select 69 34 32
|
||||
71: 36(ptr) AccessChain 26 28
|
||||
Store 71 70
|
||||
Branch 61
|
||||
61: Label
|
||||
76: 42(ptr) AccessChain 41 28
|
||||
77: 38(ivec4) Load 76
|
||||
78: 22(int) CompositeExtract 77 0
|
||||
79: 6(bool) INotEqual 78 31
|
||||
SelectionMerge 81 None
|
||||
BranchConditional 79 80 81
|
||||
80: Label
|
||||
82: 42(ptr) AccessChain 41 28
|
||||
83: 38(ivec4) Load 82
|
||||
84: 22(int) CompositeExtract 83 1
|
||||
85: 6(bool) INotEqual 84 31
|
||||
Branch 81
|
||||
81: Label
|
||||
86: 6(bool) Phi 79 61 85 80
|
||||
89: 72(float) Select 86 88 87
|
||||
90: 73(fvec4) CompositeConstruct 89 89 89 89
|
||||
Store 75(fragColor) 90
|
||||
91: 42(ptr) AccessChain 41 28
|
||||
92: 38(ivec4) Load 91
|
||||
93: 22(int) CompositeExtract 92 0
|
||||
94: 6(bool) INotEqual 93 31
|
||||
95: 6(bool) LogicalNot 94
|
||||
SelectionMerge 97 None
|
||||
BranchConditional 95 96 97
|
||||
96: Label
|
||||
98: 42(ptr) AccessChain 41 28
|
||||
99: 38(ivec4) Load 98
|
||||
100: 22(int) CompositeExtract 99 1
|
||||
101: 6(bool) INotEqual 100 31
|
||||
Branch 97
|
||||
97: Label
|
||||
102: 6(bool) Phi 94 81 101 96
|
||||
103: 72(float) Select 102 88 87
|
||||
104: 73(fvec4) CompositeConstruct 103 103 103 103
|
||||
105: 73(fvec4) Load 75(fragColor)
|
||||
106: 73(fvec4) FSub 105 104
|
||||
Store 75(fragColor) 106
|
||||
Return
|
||||
FunctionEnd
|
||||
14(foo(vb4;vb2;): 2 Function None 11
|
||||
12(paramb4): 8(ptr) FunctionParameter
|
||||
13(paramb2): 10(ptr) FunctionParameter
|
||||
15: Label
|
||||
17(b1): 16(ptr) Variable Function
|
||||
18: 7(bvec4) Load 12(paramb4)
|
||||
19: 6(bool) CompositeExtract 18 2
|
||||
Store 17(b1) 19
|
||||
20: 6(bool) Load 17(b1)
|
||||
21: 9(bvec2) CompositeConstruct 20 20
|
||||
Store 13(paramb2) 21
|
||||
Return
|
||||
FunctionEnd
|
||||
71
Test/baseResults/spv.branch-return.vert.out
Normal file
71
Test/baseResults/spv.branch-return.vert.out
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
spv.branch-return.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 38
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 8 20
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 8 "gl_InstanceIndex"
|
||||
Name 18 "gl_PerVertex"
|
||||
MemberName 18(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 18(gl_PerVertex) 1 "gl_PointSize"
|
||||
Name 20 ""
|
||||
Decorate 8(gl_InstanceIndex) BuiltIn InstanceIndex
|
||||
MemberDecorate 18(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 18(gl_PerVertex) 1 BuiltIn PointSize
|
||||
Decorate 18(gl_PerVertex) Block
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Input 6(int)
|
||||
8(gl_InstanceIndex): 7(ptr) Variable Input
|
||||
16: TypeFloat 32
|
||||
17: TypeVector 16(float) 4
|
||||
18(gl_PerVertex): TypeStruct 17(fvec4) 16(float)
|
||||
19: TypePointer Output 18(gl_PerVertex)
|
||||
20: 19(ptr) Variable Output
|
||||
21: 6(int) Constant 0
|
||||
22: 16(float) Constant 0
|
||||
23: 17(fvec4) ConstantComposite 22 22 22 22
|
||||
24: TypePointer Output 17(fvec4)
|
||||
30: 16(float) Constant 1039918957
|
||||
31: TypeInt 32 0
|
||||
32: 31(int) Constant 0
|
||||
33: TypePointer Output 16(float)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9: 6(int) Load 8(gl_InstanceIndex)
|
||||
SelectionMerge 14 None
|
||||
Switch 9 14
|
||||
case 0: 10
|
||||
case 1: 11
|
||||
case 2: 12
|
||||
case 3: 13
|
||||
10: Label
|
||||
Return
|
||||
11: Label
|
||||
25: 24(ptr) AccessChain 20 21
|
||||
Store 25 23
|
||||
Branch 14
|
||||
12: Label
|
||||
Return
|
||||
13: Label
|
||||
Return
|
||||
14: Label
|
||||
34: 33(ptr) AccessChain 20 21 32
|
||||
35: 16(float) Load 34
|
||||
36: 16(float) FAdd 35 30
|
||||
37: 33(ptr) AccessChain 20 21 32
|
||||
Store 37 36
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
@ -13,13 +13,14 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 17 34
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
Name 9 "v"
|
||||
Name 13 "tex"
|
||||
Name 17 "coord"
|
||||
Name 34 "gl_FragColor"
|
||||
Decorate 13(tex) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 39 53 157 322 446 448 450 452 454
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 8 "b"
|
||||
Name 11 "u_i"
|
||||
|
|
@ -62,13 +62,13 @@ Linked fragment stage:
|
|||
6: TypeBool
|
||||
7: TypePointer Function 6(bool)
|
||||
9: TypeInt 32 1
|
||||
10: TypePointer UniformConstant 9(int)
|
||||
11(u_i): 10(ptr) Variable UniformConstant
|
||||
10: TypePointer Private 9(int)
|
||||
11(u_i): 10(ptr) Variable Private
|
||||
13: TypeInt 32 0
|
||||
14: 13(int) Constant 0
|
||||
16: TypeFloat 32
|
||||
17: TypePointer UniformConstant 16(float)
|
||||
18(u_f): 17(ptr) Variable UniformConstant
|
||||
17: TypePointer Private 16(float)
|
||||
18(u_f): 17(ptr) Variable Private
|
||||
20: 16(float) Constant 0
|
||||
23: TypeVector 6(bool) 2
|
||||
24: TypePointer Function 23(bvec2)
|
||||
|
|
@ -86,22 +86,22 @@ Linked fragment stage:
|
|||
66: TypeVector 9(int) 2
|
||||
67: TypePointer Function 66(ivec2)
|
||||
69: TypeVector 16(float) 2
|
||||
70: TypePointer UniformConstant 69(fvec2)
|
||||
71(u_f2): 70(ptr) Variable UniformConstant
|
||||
70: TypePointer Private 69(fvec2)
|
||||
71(u_f2): 70(ptr) Variable Private
|
||||
75: 66(ivec2) ConstantComposite 62 62
|
||||
76: 66(ivec2) ConstantComposite 63 63
|
||||
79: TypeVector 9(int) 3
|
||||
80: TypePointer Function 79(ivec3)
|
||||
82: TypeVector 16(float) 3
|
||||
83: TypePointer UniformConstant 82(fvec3)
|
||||
84(u_f3): 83(ptr) Variable UniformConstant
|
||||
83: TypePointer Private 82(fvec3)
|
||||
84(u_f3): 83(ptr) Variable Private
|
||||
88: 79(ivec3) ConstantComposite 62 62 62
|
||||
89: 79(ivec3) ConstantComposite 63 63 63
|
||||
92: TypeVector 9(int) 4
|
||||
93: TypePointer Function 92(ivec4)
|
||||
95: TypeVector 16(float) 4
|
||||
96: TypePointer UniformConstant 95(fvec4)
|
||||
97(u_f4): 96(ptr) Variable UniformConstant
|
||||
96: TypePointer Private 95(fvec4)
|
||||
97(u_f4): 96(ptr) Variable Private
|
||||
101: 92(ivec4) ConstantComposite 62 62 62 62
|
||||
102: 92(ivec4) ConstantComposite 63 63 63 63
|
||||
105: TypePointer Function 16(float)
|
||||
|
|
@ -124,24 +124,24 @@ Linked fragment stage:
|
|||
322(gl_FragColor): 321(ptr) Variable Output
|
||||
367: 13(int) Constant 2
|
||||
380: 13(int) Constant 3
|
||||
427: TypePointer UniformConstant 6(bool)
|
||||
428(u_b): 427(ptr) Variable UniformConstant
|
||||
429: TypePointer UniformConstant 23(bvec2)
|
||||
430(u_b2): 429(ptr) Variable UniformConstant
|
||||
431: TypePointer UniformConstant 31(bvec3)
|
||||
432(u_b3): 431(ptr) Variable UniformConstant
|
||||
433: TypePointer UniformConstant 43(bvec4)
|
||||
434(u_b4): 433(ptr) Variable UniformConstant
|
||||
435: TypePointer UniformConstant 66(ivec2)
|
||||
436(u_i2): 435(ptr) Variable UniformConstant
|
||||
437: TypePointer UniformConstant 79(ivec3)
|
||||
438(u_i3): 437(ptr) Variable UniformConstant
|
||||
439: TypePointer UniformConstant 92(ivec4)
|
||||
440(u_i4): 439(ptr) Variable UniformConstant
|
||||
441(i_b): 427(ptr) Variable UniformConstant
|
||||
442(i_b2): 429(ptr) Variable UniformConstant
|
||||
443(i_b3): 431(ptr) Variable UniformConstant
|
||||
444(i_b4): 433(ptr) Variable UniformConstant
|
||||
427: TypePointer Private 6(bool)
|
||||
428(u_b): 427(ptr) Variable Private
|
||||
429: TypePointer Private 23(bvec2)
|
||||
430(u_b2): 429(ptr) Variable Private
|
||||
431: TypePointer Private 31(bvec3)
|
||||
432(u_b3): 431(ptr) Variable Private
|
||||
433: TypePointer Private 43(bvec4)
|
||||
434(u_b4): 433(ptr) Variable Private
|
||||
435: TypePointer Private 66(ivec2)
|
||||
436(u_i2): 435(ptr) Variable Private
|
||||
437: TypePointer Private 79(ivec3)
|
||||
438(u_i3): 437(ptr) Variable Private
|
||||
439: TypePointer Private 92(ivec4)
|
||||
440(u_i4): 439(ptr) Variable Private
|
||||
441(i_b): 427(ptr) Variable Private
|
||||
442(i_b2): 429(ptr) Variable Private
|
||||
443(i_b3): 431(ptr) Variable Private
|
||||
444(i_b4): 433(ptr) Variable Private
|
||||
445: TypePointer Input 66(ivec2)
|
||||
446(i_i2): 445(ptr) Variable Input
|
||||
447: TypePointer Input 79(ivec3)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
spv.dataOut.frag
|
||||
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
|
@ -13,8 +11,8 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 12 16
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 12 "gl_FragData"
|
||||
Name 16 "Color"
|
||||
|
|
|
|||
|
|
@ -1,44 +1,51 @@
|
|||
spv.dataOutIndirect.frag
|
||||
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 22
|
||||
// Id's are bound by 26
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 12 18
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
EntryPoint Fragment 4 "main" 12 22
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 12 "gl_FragData"
|
||||
Name 15 "i"
|
||||
Name 18 "Color"
|
||||
Name 12 "fcolor"
|
||||
Name 14 "b"
|
||||
MemberName 14(b) 0 "i"
|
||||
Name 16 "bName"
|
||||
Name 22 "Color"
|
||||
MemberDecorate 14(b) 0 Offset 0
|
||||
Decorate 14(b) Block
|
||||
Decorate 16(bName) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypeInt 32 0
|
||||
9: 8(int) Constant 32
|
||||
9: 8(int) Constant 4
|
||||
10: TypeArray 7(fvec4) 9
|
||||
11: TypePointer Output 10
|
||||
12(gl_FragData): 11(ptr) Variable Output
|
||||
12(fcolor): 11(ptr) Variable Output
|
||||
13: TypeInt 32 1
|
||||
14: TypePointer UniformConstant 13(int)
|
||||
15(i): 14(ptr) Variable UniformConstant
|
||||
17: TypePointer Input 7(fvec4)
|
||||
18(Color): 17(ptr) Variable Input
|
||||
20: TypePointer Output 7(fvec4)
|
||||
14(b): TypeStruct 13(int)
|
||||
15: TypePointer Uniform 14(b)
|
||||
16(bName): 15(ptr) Variable Uniform
|
||||
17: 13(int) Constant 0
|
||||
18: TypePointer Uniform 13(int)
|
||||
21: TypePointer Input 7(fvec4)
|
||||
22(Color): 21(ptr) Variable Input
|
||||
24: TypePointer Output 7(fvec4)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
16: 13(int) Load 15(i)
|
||||
19: 7(fvec4) Load 18(Color)
|
||||
21: 20(ptr) AccessChain 12(gl_FragData) 16
|
||||
Store 21 19
|
||||
19: 18(ptr) AccessChain 16(bName) 17
|
||||
20: 13(int) Load 19
|
||||
23: 7(fvec4) Load 22(Color)
|
||||
25: 24(ptr) AccessChain 12(fcolor) 20
|
||||
Store 25 23
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
spv.dataOutIndirect.vert
|
||||
WARNING: 0:3: attribute deprecated in version 130; may be removed in future release
|
||||
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
|
@ -13,59 +12,59 @@ Linked vertex stage:
|
|||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 23 26 32 37
|
||||
Source GLSL 130
|
||||
EntryPoint Vertex 4 "main" 25 28 34
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
Name 23 "colorOut"
|
||||
Name 26 "color"
|
||||
Name 32 "gl_Position"
|
||||
Name 37 "gl_VertexID"
|
||||
Decorate 32(gl_Position) BuiltIn Position
|
||||
Decorate 37(gl_VertexID) BuiltIn VertexId
|
||||
Name 25 "colorOut"
|
||||
Name 28 "color"
|
||||
Name 34 "gl_Position"
|
||||
Decorate 34(gl_Position) BuiltIn Position
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: 6(int) Constant 1
|
||||
14: 6(int) Constant 5
|
||||
15: TypeBool
|
||||
17: TypeFloat 32
|
||||
18: TypeVector 17(float) 4
|
||||
19: TypeInt 32 0
|
||||
20: 19(int) Constant 6
|
||||
21: TypeArray 18(fvec4) 20
|
||||
22: TypePointer Output 21
|
||||
23(colorOut): 22(ptr) Variable Output
|
||||
25: TypePointer Input 18(fvec4)
|
||||
26(color): 25(ptr) Variable Input
|
||||
28: TypePointer Output 18(fvec4)
|
||||
32(gl_Position): 28(ptr) Variable Output
|
||||
33: 6(int) Constant 2
|
||||
36: TypePointer Input 6(int)
|
||||
37(gl_VertexID): 36(ptr) Variable Input
|
||||
16: 6(int) Constant 5
|
||||
17: TypeBool
|
||||
19: TypeFloat 32
|
||||
20: TypeVector 19(float) 4
|
||||
21: TypeInt 32 0
|
||||
22: 21(int) Constant 6
|
||||
23: TypeArray 20(fvec4) 22
|
||||
24: TypePointer Output 23
|
||||
25(colorOut): 24(ptr) Variable Output
|
||||
27: TypePointer Input 20(fvec4)
|
||||
28(color): 27(ptr) Variable Input
|
||||
30: TypePointer Output 20(fvec4)
|
||||
34(gl_Position): 30(ptr) Variable Output
|
||||
35: 6(int) Constant 2
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(i): 7(ptr) Variable Function
|
||||
Store 8(i) 9
|
||||
Branch 10
|
||||
10: Label
|
||||
13: 6(int) Load 8(i)
|
||||
16: 15(bool) SLessThan 13 14
|
||||
LoopMerge 11 10 None
|
||||
BranchConditional 16 12 11
|
||||
12: Label
|
||||
24: 6(int) Load 8(i)
|
||||
27: 18(fvec4) Load 26(color)
|
||||
29: 28(ptr) AccessChain 23(colorOut) 24
|
||||
Store 29 27
|
||||
30: 6(int) Load 8(i)
|
||||
31: 6(int) IAdd 30 9
|
||||
Store 8(i) 31
|
||||
LoopMerge 12 13 None
|
||||
Branch 14
|
||||
14: Label
|
||||
15: 6(int) Load 8(i)
|
||||
18: 17(bool) SLessThan 15 16
|
||||
BranchConditional 18 11 12
|
||||
11: Label
|
||||
26: 6(int) Load 8(i)
|
||||
29: 20(fvec4) Load 28(color)
|
||||
31: 30(ptr) AccessChain 25(colorOut) 26
|
||||
Store 31 29
|
||||
Branch 13
|
||||
13: Label
|
||||
32: 6(int) Load 8(i)
|
||||
33: 6(int) IAdd 32 9
|
||||
Store 8(i) 33
|
||||
Branch 10
|
||||
11: Label
|
||||
34: 28(ptr) AccessChain 23(colorOut) 33
|
||||
35: 18(fvec4) Load 34
|
||||
Store 32(gl_Position) 35
|
||||
12: Label
|
||||
36: 30(ptr) AccessChain 25(colorOut) 35
|
||||
37: 20(fvec4) Load 36
|
||||
Store 34(gl_Position) 37
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 149
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 330
|
||||
Name 4 "main"
|
||||
Name 9 "v1"
|
||||
|
|
@ -31,6 +31,7 @@ Linked fragment stage:
|
|||
MemberName 134(str) 2 "c"
|
||||
Name 136 "t"
|
||||
Name 149 "gl_FragColor"
|
||||
Decorate 111(samp2D) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 8 10 14
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
ExecutionMode 4 DepthGreater
|
||||
ExecutionMode 4 DepthReplacing
|
||||
Source GLSL 450
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 21 59
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 9 "white"
|
||||
Name 12 "black"
|
||||
|
|
|
|||
|
|
@ -1,60 +1,46 @@
|
|||
spv.do-simple.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 29
|
||||
// Id's are bound by 21
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 27 28
|
||||
Source ESSL 300
|
||||
EntryPoint Vertex 4 "main"
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
Name 27 "gl_VertexID"
|
||||
Name 28 "gl_InstanceID"
|
||||
Decorate 27(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 28(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: 6(int) Constant 0
|
||||
14: TypeBool
|
||||
15: 14(bool) ConstantTrue
|
||||
19: 6(int) Constant 10
|
||||
23: 6(int) Constant 1
|
||||
25: 14(bool) ConstantFalse
|
||||
26: TypePointer Input 6(int)
|
||||
27(gl_VertexID): 26(ptr) Variable Input
|
||||
28(gl_InstanceID): 26(ptr) Variable Input
|
||||
15: 6(int) Constant 1
|
||||
18: 6(int) Constant 10
|
||||
19: TypeBool
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(i): 7(ptr) Variable Function
|
||||
Store 8(i) 9
|
||||
Branch 10
|
||||
10: Label
|
||||
13: 14(bool) Phi 15 5 25 12
|
||||
LoopMerge 11 10 None
|
||||
Branch 16
|
||||
16: Label
|
||||
SelectionMerge 12 None
|
||||
BranchConditional 13 12 17
|
||||
17: Label
|
||||
18: 6(int) Load 8(i)
|
||||
20: 14(bool) SLessThan 18 19
|
||||
SelectionMerge 21 None
|
||||
BranchConditional 20 21 11
|
||||
21: Label
|
||||
Branch 12
|
||||
12: Label
|
||||
22: 6(int) Load 8(i)
|
||||
24: 6(int) IAdd 22 23
|
||||
Store 8(i) 24
|
||||
Branch 10
|
||||
LoopMerge 12 13 None
|
||||
Branch 11
|
||||
11: Label
|
||||
14: 6(int) Load 8(i)
|
||||
16: 6(int) IAdd 14 15
|
||||
Store 8(i) 16
|
||||
Branch 13
|
||||
13: Label
|
||||
17: 6(int) Load 8(i)
|
||||
20: 19(bool) SLessThan 17 18
|
||||
BranchConditional 20 10 12
|
||||
12: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
126
Test/baseResults/spv.do-while-continue-break.vert.out
Executable file → Normal file
126
Test/baseResults/spv.do-while-continue-break.vert.out
Executable file → Normal file
|
|
@ -1,104 +1,84 @@
|
|||
spv.do-while-continue-break.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 51
|
||||
// Id's are bound by 43
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 49 50
|
||||
Source ESSL 300
|
||||
EntryPoint Vertex 4 "main"
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
Name 24 "A"
|
||||
Name 30 "B"
|
||||
Name 33 "C"
|
||||
Name 39 "D"
|
||||
Name 42 "E"
|
||||
Name 44 "F"
|
||||
Name 46 "G"
|
||||
Name 49 "gl_VertexID"
|
||||
Name 50 "gl_InstanceID"
|
||||
Decorate 49(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 50(gl_InstanceID) BuiltIn InstanceId
|
||||
Name 14 "A"
|
||||
Name 21 "B"
|
||||
Name 24 "C"
|
||||
Name 30 "D"
|
||||
Name 33 "E"
|
||||
Name 35 "F"
|
||||
Name 41 "G"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: 6(int) Constant 0
|
||||
14: TypeBool
|
||||
15: 14(bool) ConstantTrue
|
||||
19: 6(int) Constant 1
|
||||
21: 6(int) Constant 19
|
||||
26: 6(int) Constant 2
|
||||
31: 14(bool) ConstantFalse
|
||||
35: 6(int) Constant 5
|
||||
40: 6(int) Constant 3
|
||||
43: 6(int) Constant 42
|
||||
45: 6(int) Constant 99
|
||||
47: 6(int) Constant 12
|
||||
48: TypePointer Input 6(int)
|
||||
49(gl_VertexID): 48(ptr) Variable Input
|
||||
50(gl_InstanceID): 48(ptr) Variable Input
|
||||
16: 6(int) Constant 2
|
||||
17: TypeBool
|
||||
22: 6(int) Constant 1
|
||||
26: 6(int) Constant 5
|
||||
31: 6(int) Constant 3
|
||||
34: 6(int) Constant 42
|
||||
36: 6(int) Constant 99
|
||||
39: 6(int) Constant 19
|
||||
42: 6(int) Constant 12
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(i): 7(ptr) Variable Function
|
||||
24(A): 7(ptr) Variable Function
|
||||
30(B): 7(ptr) Variable Function
|
||||
33(C): 7(ptr) Variable Function
|
||||
39(D): 7(ptr) Variable Function
|
||||
42(E): 7(ptr) Variable Function
|
||||
44(F): 7(ptr) Variable Function
|
||||
46(G): 7(ptr) Variable Function
|
||||
14(A): 7(ptr) Variable Function
|
||||
21(B): 7(ptr) Variable Function
|
||||
24(C): 7(ptr) Variable Function
|
||||
30(D): 7(ptr) Variable Function
|
||||
33(E): 7(ptr) Variable Function
|
||||
35(F): 7(ptr) Variable Function
|
||||
41(G): 7(ptr) Variable Function
|
||||
Store 8(i) 9
|
||||
Branch 10
|
||||
10: Label
|
||||
13: 14(bool) Phi 15 5 31 28 31 38
|
||||
LoopMerge 11 10 None
|
||||
Branch 16
|
||||
16: Label
|
||||
SelectionMerge 12 None
|
||||
BranchConditional 13 12 17
|
||||
17: Label
|
||||
18: 6(int) Load 8(i)
|
||||
20: 6(int) IAdd 18 19
|
||||
Store 8(i) 20
|
||||
22: 14(bool) SLessThan 20 21
|
||||
SelectionMerge 23 None
|
||||
BranchConditional 22 23 11
|
||||
23: Label
|
||||
Branch 12
|
||||
12: Label
|
||||
Store 24(A) 9
|
||||
LoopMerge 12 13 None
|
||||
Branch 11
|
||||
11: Label
|
||||
Store 14(A) 9
|
||||
15: 6(int) Load 8(i)
|
||||
18: 17(bool) IEqual 15 16
|
||||
SelectionMerge 20 None
|
||||
BranchConditional 18 19 20
|
||||
19: Label
|
||||
Store 21(B) 22
|
||||
Branch 13
|
||||
20: Label
|
||||
25: 6(int) Load 8(i)
|
||||
27: 14(bool) IEqual 25 26
|
||||
27: 17(bool) IEqual 25 26
|
||||
SelectionMerge 29 None
|
||||
BranchConditional 27 28 29
|
||||
28: Label
|
||||
Store 30(B) 19
|
||||
Branch 10
|
||||
32: Label
|
||||
Store 33(C) 26
|
||||
Branch 29
|
||||
Store 30(D) 31
|
||||
Branch 12
|
||||
29: Label
|
||||
34: 6(int) Load 8(i)
|
||||
36: 14(bool) IEqual 34 35
|
||||
SelectionMerge 38 None
|
||||
BranchConditional 36 37 38
|
||||
37: Label
|
||||
Store 39(D) 40
|
||||
Branch 11
|
||||
41: Label
|
||||
Store 42(E) 43
|
||||
Branch 38
|
||||
38: Label
|
||||
Store 44(F) 45
|
||||
Branch 10
|
||||
11: Label
|
||||
Store 46(G) 47
|
||||
Store 35(F) 36
|
||||
Branch 13
|
||||
13: Label
|
||||
37: 6(int) Load 8(i)
|
||||
38: 6(int) IAdd 37 22
|
||||
Store 8(i) 38
|
||||
40: 17(bool) SLessThan 38 39
|
||||
BranchConditional 40 10 12
|
||||
12: Label
|
||||
Store 41(G) 42
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -5,20 +5,20 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 40
|
||||
// Id's are bound by 34
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11 38
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
EntryPoint Fragment 4 "main" 11 17 27 32
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 9 "color"
|
||||
Name 11 "BaseColor"
|
||||
Name 17 "bigColor"
|
||||
Name 27 "d"
|
||||
Name 32 "bigColor"
|
||||
Name 38 "gl_FragColor"
|
||||
Name 32 "gl_FragColor"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -26,18 +26,15 @@ Linked fragment stage:
|
|||
8: TypePointer Function 7(fvec4)
|
||||
10: TypePointer Input 7(fvec4)
|
||||
11(BaseColor): 10(ptr) Variable Input
|
||||
17: TypeBool
|
||||
18: 17(bool) ConstantTrue
|
||||
17(bigColor): 10(ptr) Variable Input
|
||||
21: TypeInt 32 0
|
||||
22: 21(int) Constant 0
|
||||
23: TypePointer Function 6(float)
|
||||
26: TypePointer UniformConstant 6(float)
|
||||
27(d): 26(ptr) Variable UniformConstant
|
||||
31: TypePointer UniformConstant 7(fvec4)
|
||||
32(bigColor): 31(ptr) Variable UniformConstant
|
||||
36: 17(bool) ConstantFalse
|
||||
37: TypePointer Output 7(fvec4)
|
||||
38(gl_FragColor): 37(ptr) Variable Output
|
||||
26: TypePointer Input 6(float)
|
||||
27(d): 26(ptr) Variable Input
|
||||
29: TypeBool
|
||||
31: TypePointer Output 7(fvec4)
|
||||
32(gl_FragColor): 31(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(color): 8(ptr) Variable Function
|
||||
|
|
@ -45,29 +42,22 @@ Linked fragment stage:
|
|||
Store 9(color) 12
|
||||
Branch 13
|
||||
13: Label
|
||||
16: 17(bool) Phi 18 5 36 15
|
||||
LoopMerge 14 13 None
|
||||
Branch 19
|
||||
19: Label
|
||||
SelectionMerge 15 None
|
||||
BranchConditional 16 15 20
|
||||
20: Label
|
||||
24: 23(ptr) AccessChain 9(color) 22
|
||||
25: 6(float) Load 24
|
||||
28: 6(float) Load 27(d)
|
||||
29: 17(bool) FOrdLessThan 25 28
|
||||
SelectionMerge 30 None
|
||||
BranchConditional 29 30 14
|
||||
30: Label
|
||||
Branch 15
|
||||
15: Label
|
||||
33: 7(fvec4) Load 32(bigColor)
|
||||
34: 7(fvec4) Load 9(color)
|
||||
35: 7(fvec4) FAdd 34 33
|
||||
Store 9(color) 35
|
||||
Branch 13
|
||||
LoopMerge 15 16 None
|
||||
Branch 14
|
||||
14: Label
|
||||
39: 7(fvec4) Load 9(color)
|
||||
Store 38(gl_FragColor) 39
|
||||
18: 7(fvec4) Load 17(bigColor)
|
||||
19: 7(fvec4) Load 9(color)
|
||||
20: 7(fvec4) FAdd 19 18
|
||||
Store 9(color) 20
|
||||
Branch 16
|
||||
16: Label
|
||||
24: 23(ptr) AccessChain 9(color) 22
|
||||
25: 6(float) Load 24
|
||||
28: 6(float) Load 27(d)
|
||||
30: 29(bool) FOrdLessThan 25 28
|
||||
BranchConditional 30 13 15
|
||||
15: Label
|
||||
33: 7(fvec4) Load 9(color)
|
||||
Store 32(gl_FragColor) 33
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -7,9 +7,10 @@ Linked compute stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 62
|
||||
// Id's are bound by 60
|
||||
|
||||
Capability Shader
|
||||
Capability Float64
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main" 26 33
|
||||
|
|
@ -26,12 +27,15 @@ Linked compute stage:
|
|||
Name 33 "gl_LocalInvocationID"
|
||||
Name 49 "aa"
|
||||
Name 54 "globalCoef"
|
||||
Name 58 "roll"
|
||||
Name 61 "destTex"
|
||||
Decorate 8(bufName) GLSLShared
|
||||
Name 59 "destTex"
|
||||
MemberDecorate 8(bufName) 0 Offset 0
|
||||
MemberDecorate 8(bufName) 1 Offset 8
|
||||
Decorate 8(bufName) BufferBlock
|
||||
Decorate 10(bufInst) DescriptorSet 0
|
||||
Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
|
||||
Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 59(destTex) DescriptorSet 0
|
||||
Decorate 59(destTex) NonReadable
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -66,11 +70,9 @@ Linked compute stage:
|
|||
53: 47(fvec4) ConstantComposite 50 51 52 50
|
||||
55: 7(float) Constant 0 1072693248
|
||||
56: 7(float) Constant 3229815407 1074340298
|
||||
57: TypePointer UniformConstant 7(float)
|
||||
58(roll): 57(ptr) Variable UniformConstant
|
||||
59: TypeImage 6(float) 2D nonsampled format:Unknown
|
||||
60: TypePointer UniformConstant 59
|
||||
61(destTex): 60(ptr) Variable UniformConstant
|
||||
57: TypeImage 6(float) 2D nonsampled format:Unknown
|
||||
58: TypePointer UniformConstant 57
|
||||
59(destTex): 58(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
22(storePos): 21(ptr) Variable Function
|
||||
|
|
|
|||
|
|
@ -5,29 +5,29 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 112
|
||||
// Id's are bound by 110
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11 18 107
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
EntryPoint Fragment 4 "main" 11 14 17 19 25 30 39 51 63 105 109
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 9 "color"
|
||||
Name 11 "BaseColor"
|
||||
Name 13 "color2"
|
||||
Name 15 "otherColor"
|
||||
Name 18 "c"
|
||||
Name 21 "d"
|
||||
Name 27 "bigColor"
|
||||
Name 32 "smallColor"
|
||||
Name 41 "minimum"
|
||||
Name 53 "threshhold"
|
||||
Name 65 "threshhold2"
|
||||
Name 79 "b"
|
||||
Name 107 "gl_FragColor"
|
||||
Name 111 "threshhold3"
|
||||
Name 14 "otherColor"
|
||||
Name 17 "c"
|
||||
Name 19 "d"
|
||||
Name 25 "bigColor"
|
||||
Name 30 "smallColor"
|
||||
Name 39 "minimum"
|
||||
Name 51 "threshhold"
|
||||
Name 63 "threshhold2"
|
||||
Name 77 "b"
|
||||
Name 105 "gl_FragColor"
|
||||
Name 109 "threshhold3"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -35,141 +35,139 @@ Linked fragment stage:
|
|||
8: TypePointer Function 7(fvec4)
|
||||
10: TypePointer Input 7(fvec4)
|
||||
11(BaseColor): 10(ptr) Variable Input
|
||||
14: TypePointer UniformConstant 7(fvec4)
|
||||
15(otherColor): 14(ptr) Variable UniformConstant
|
||||
17: TypePointer Input 6(float)
|
||||
18(c): 17(ptr) Variable Input
|
||||
20: TypePointer UniformConstant 6(float)
|
||||
21(d): 20(ptr) Variable UniformConstant
|
||||
23: TypeBool
|
||||
27(bigColor): 14(ptr) Variable UniformConstant
|
||||
32(smallColor): 14(ptr) Variable UniformConstant
|
||||
36: TypeInt 32 0
|
||||
37: 36(int) Constant 2
|
||||
38: TypePointer Function 6(float)
|
||||
41(minimum): 20(ptr) Variable UniformConstant
|
||||
49: 6(float) Constant 1065353216
|
||||
53(threshhold): 20(ptr) Variable UniformConstant
|
||||
62: 36(int) Constant 3
|
||||
65(threshhold2): 20(ptr) Variable UniformConstant
|
||||
78: TypePointer UniformConstant 23(bool)
|
||||
79(b): 78(ptr) Variable UniformConstant
|
||||
87: 36(int) Constant 0
|
||||
106: TypePointer Output 7(fvec4)
|
||||
107(gl_FragColor): 106(ptr) Variable Output
|
||||
111(threshhold3): 20(ptr) Variable UniformConstant
|
||||
14(otherColor): 10(ptr) Variable Input
|
||||
16: TypePointer Input 6(float)
|
||||
17(c): 16(ptr) Variable Input
|
||||
19(d): 16(ptr) Variable Input
|
||||
21: TypeBool
|
||||
25(bigColor): 10(ptr) Variable Input
|
||||
30(smallColor): 10(ptr) Variable Input
|
||||
34: TypeInt 32 0
|
||||
35: 34(int) Constant 2
|
||||
36: TypePointer Function 6(float)
|
||||
39(minimum): 16(ptr) Variable Input
|
||||
47: 6(float) Constant 1065353216
|
||||
51(threshhold): 16(ptr) Variable Input
|
||||
60: 34(int) Constant 3
|
||||
63(threshhold2): 16(ptr) Variable Input
|
||||
76: TypePointer Private 21(bool)
|
||||
77(b): 76(ptr) Variable Private
|
||||
85: 34(int) Constant 0
|
||||
104: TypePointer Output 7(fvec4)
|
||||
105(gl_FragColor): 104(ptr) Variable Output
|
||||
109(threshhold3): 16(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(color): 8(ptr) Variable Function
|
||||
13(color2): 8(ptr) Variable Function
|
||||
12: 7(fvec4) Load 11(BaseColor)
|
||||
Store 9(color) 12
|
||||
16: 7(fvec4) Load 15(otherColor)
|
||||
Store 13(color2) 16
|
||||
19: 6(float) Load 18(c)
|
||||
22: 6(float) Load 21(d)
|
||||
24: 23(bool) FOrdGreaterThan 19 22
|
||||
SelectionMerge 26 None
|
||||
BranchConditional 24 25 31
|
||||
25: Label
|
||||
28: 7(fvec4) Load 27(bigColor)
|
||||
29: 7(fvec4) Load 9(color)
|
||||
30: 7(fvec4) FAdd 29 28
|
||||
Store 9(color) 30
|
||||
Branch 26
|
||||
31: Label
|
||||
33: 7(fvec4) Load 32(smallColor)
|
||||
34: 7(fvec4) Load 9(color)
|
||||
35: 7(fvec4) FAdd 34 33
|
||||
Store 9(color) 35
|
||||
Branch 26
|
||||
26: Label
|
||||
39: 38(ptr) AccessChain 9(color) 37
|
||||
40: 6(float) Load 39
|
||||
42: 6(float) Load 41(minimum)
|
||||
43: 23(bool) FOrdLessThan 40 42
|
||||
SelectionMerge 45 None
|
||||
BranchConditional 43 44 45
|
||||
44: Label
|
||||
15: 7(fvec4) Load 14(otherColor)
|
||||
Store 13(color2) 15
|
||||
18: 6(float) Load 17(c)
|
||||
20: 6(float) Load 19(d)
|
||||
22: 21(bool) FOrdGreaterThan 18 20
|
||||
SelectionMerge 24 None
|
||||
BranchConditional 22 23 29
|
||||
23: Label
|
||||
26: 7(fvec4) Load 25(bigColor)
|
||||
27: 7(fvec4) Load 9(color)
|
||||
28: 7(fvec4) FAdd 27 26
|
||||
Store 9(color) 28
|
||||
Branch 24
|
||||
29: Label
|
||||
31: 7(fvec4) Load 30(smallColor)
|
||||
32: 7(fvec4) Load 9(color)
|
||||
33: 7(fvec4) FAdd 32 31
|
||||
Store 9(color) 33
|
||||
Branch 24
|
||||
24: Label
|
||||
37: 36(ptr) AccessChain 9(color) 35
|
||||
38: 6(float) Load 37
|
||||
40: 6(float) Load 39(minimum)
|
||||
41: 21(bool) FOrdLessThan 38 40
|
||||
SelectionMerge 43 None
|
||||
BranchConditional 41 42 43
|
||||
42: Label
|
||||
Return
|
||||
45: Label
|
||||
47: 38(ptr) AccessChain 9(color) 37
|
||||
48: 6(float) Load 47
|
||||
50: 6(float) FAdd 48 49
|
||||
Store 47 50
|
||||
51: 38(ptr) AccessChain 9(color) 37
|
||||
52: 6(float) Load 51
|
||||
54: 6(float) Load 53(threshhold)
|
||||
55: 23(bool) FOrdGreaterThan 52 54
|
||||
SelectionMerge 57 None
|
||||
BranchConditional 55 56 57
|
||||
56: Label
|
||||
43: Label
|
||||
45: 36(ptr) AccessChain 9(color) 35
|
||||
46: 6(float) Load 45
|
||||
48: 6(float) FAdd 46 47
|
||||
Store 45 48
|
||||
49: 36(ptr) AccessChain 9(color) 35
|
||||
50: 6(float) Load 49
|
||||
52: 6(float) Load 51(threshhold)
|
||||
53: 21(bool) FOrdGreaterThan 50 52
|
||||
SelectionMerge 55 None
|
||||
BranchConditional 53 54 55
|
||||
54: Label
|
||||
Kill
|
||||
57: Label
|
||||
59: 7(fvec4) Load 9(color)
|
||||
60: 7(fvec4) CompositeConstruct 49 49 49 49
|
||||
61: 7(fvec4) FAdd 59 60
|
||||
Store 9(color) 61
|
||||
63: 38(ptr) AccessChain 9(color) 62
|
||||
64: 6(float) Load 63
|
||||
66: 6(float) Load 65(threshhold2)
|
||||
67: 23(bool) FOrdGreaterThan 64 66
|
||||
SelectionMerge 69 None
|
||||
BranchConditional 67 68 99
|
||||
68: Label
|
||||
70: 38(ptr) AccessChain 9(color) 37
|
||||
71: 6(float) Load 70
|
||||
72: 6(float) Load 65(threshhold2)
|
||||
73: 23(bool) FOrdGreaterThan 71 72
|
||||
SelectionMerge 75 None
|
||||
BranchConditional 73 74 77
|
||||
74: Label
|
||||
55: Label
|
||||
57: 7(fvec4) Load 9(color)
|
||||
58: 7(fvec4) CompositeConstruct 47 47 47 47
|
||||
59: 7(fvec4) FAdd 57 58
|
||||
Store 9(color) 59
|
||||
61: 36(ptr) AccessChain 9(color) 60
|
||||
62: 6(float) Load 61
|
||||
64: 6(float) Load 63(threshhold2)
|
||||
65: 21(bool) FOrdGreaterThan 62 64
|
||||
SelectionMerge 67 None
|
||||
BranchConditional 65 66 97
|
||||
66: Label
|
||||
68: 36(ptr) AccessChain 9(color) 35
|
||||
69: 6(float) Load 68
|
||||
70: 6(float) Load 63(threshhold2)
|
||||
71: 21(bool) FOrdGreaterThan 69 70
|
||||
SelectionMerge 73 None
|
||||
BranchConditional 71 72 75
|
||||
72: Label
|
||||
Return
|
||||
77: Label
|
||||
80: 23(bool) Load 79(b)
|
||||
SelectionMerge 82 None
|
||||
BranchConditional 80 81 86
|
||||
81: Label
|
||||
83: 38(ptr) AccessChain 9(color) 37
|
||||
84: 6(float) Load 83
|
||||
85: 6(float) FAdd 84 49
|
||||
Store 83 85
|
||||
Branch 82
|
||||
86: Label
|
||||
88: 38(ptr) AccessChain 9(color) 87
|
||||
89: 6(float) Load 88
|
||||
90: 6(float) Load 41(minimum)
|
||||
91: 23(bool) FOrdLessThan 89 90
|
||||
SelectionMerge 93 None
|
||||
BranchConditional 91 92 95
|
||||
92: Label
|
||||
75: Label
|
||||
78: 21(bool) Load 77(b)
|
||||
SelectionMerge 80 None
|
||||
BranchConditional 78 79 84
|
||||
79: Label
|
||||
81: 36(ptr) AccessChain 9(color) 35
|
||||
82: 6(float) Load 81
|
||||
83: 6(float) FAdd 82 47
|
||||
Store 81 83
|
||||
Branch 80
|
||||
84: Label
|
||||
86: 36(ptr) AccessChain 9(color) 85
|
||||
87: 6(float) Load 86
|
||||
88: 6(float) Load 39(minimum)
|
||||
89: 21(bool) FOrdLessThan 87 88
|
||||
SelectionMerge 91 None
|
||||
BranchConditional 89 90 93
|
||||
90: Label
|
||||
Kill
|
||||
95: Label
|
||||
96: 7(fvec4) Load 9(color)
|
||||
97: 7(fvec4) CompositeConstruct 49 49 49 49
|
||||
98: 7(fvec4) FAdd 96 97
|
||||
Store 9(color) 98
|
||||
Branch 93
|
||||
93: Label
|
||||
Branch 82
|
||||
82: Label
|
||||
Branch 75
|
||||
75: Label
|
||||
Branch 69
|
||||
99: Label
|
||||
100: 23(bool) Load 79(b)
|
||||
SelectionMerge 102 None
|
||||
BranchConditional 100 101 104
|
||||
101: Label
|
||||
93: Label
|
||||
94: 7(fvec4) Load 9(color)
|
||||
95: 7(fvec4) CompositeConstruct 47 47 47 47
|
||||
96: 7(fvec4) FAdd 94 95
|
||||
Store 9(color) 96
|
||||
Branch 91
|
||||
91: Label
|
||||
Branch 80
|
||||
80: Label
|
||||
Branch 73
|
||||
73: Label
|
||||
Branch 67
|
||||
97: Label
|
||||
98: 21(bool) Load 77(b)
|
||||
SelectionMerge 100 None
|
||||
BranchConditional 98 99 102
|
||||
99: Label
|
||||
Kill
|
||||
104: Label
|
||||
102: Label
|
||||
Return
|
||||
102: Label
|
||||
Branch 69
|
||||
69: Label
|
||||
108: 7(fvec4) Load 9(color)
|
||||
109: 7(fvec4) Load 13(color2)
|
||||
110: 7(fvec4) FMul 108 109
|
||||
Store 107(gl_FragColor) 110
|
||||
100: Label
|
||||
Branch 67
|
||||
67: Label
|
||||
106: 7(fvec4) Load 9(color)
|
||||
107: 7(fvec4) Load 13(color2)
|
||||
108: 7(fvec4) FMul 106 107
|
||||
Store 105(gl_FragColor) 108
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -5,24 +5,24 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 41
|
||||
// Id's are bound by 39
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11 18 37
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 120
|
||||
EntryPoint Fragment 4 "main" 11 14 17 19 25 30 35
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 9 "color"
|
||||
Name 11 "BaseColor"
|
||||
Name 13 "color2"
|
||||
Name 15 "otherColor"
|
||||
Name 18 "c"
|
||||
Name 21 "d"
|
||||
Name 27 "bigColor"
|
||||
Name 32 "smallColor"
|
||||
Name 37 "gl_FragColor"
|
||||
Name 14 "otherColor"
|
||||
Name 17 "c"
|
||||
Name 19 "d"
|
||||
Name 25 "bigColor"
|
||||
Name 30 "smallColor"
|
||||
Name 35 "gl_FragColor"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -30,46 +30,44 @@ Linked fragment stage:
|
|||
8: TypePointer Function 7(fvec4)
|
||||
10: TypePointer Input 7(fvec4)
|
||||
11(BaseColor): 10(ptr) Variable Input
|
||||
14: TypePointer UniformConstant 7(fvec4)
|
||||
15(otherColor): 14(ptr) Variable UniformConstant
|
||||
17: TypePointer Input 6(float)
|
||||
18(c): 17(ptr) Variable Input
|
||||
20: TypePointer UniformConstant 6(float)
|
||||
21(d): 20(ptr) Variable UniformConstant
|
||||
23: TypeBool
|
||||
27(bigColor): 14(ptr) Variable UniformConstant
|
||||
32(smallColor): 14(ptr) Variable UniformConstant
|
||||
36: TypePointer Output 7(fvec4)
|
||||
37(gl_FragColor): 36(ptr) Variable Output
|
||||
14(otherColor): 10(ptr) Variable Input
|
||||
16: TypePointer Input 6(float)
|
||||
17(c): 16(ptr) Variable Input
|
||||
19(d): 16(ptr) Variable Input
|
||||
21: TypeBool
|
||||
25(bigColor): 10(ptr) Variable Input
|
||||
30(smallColor): 10(ptr) Variable Input
|
||||
34: TypePointer Output 7(fvec4)
|
||||
35(gl_FragColor): 34(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(color): 8(ptr) Variable Function
|
||||
13(color2): 8(ptr) Variable Function
|
||||
12: 7(fvec4) Load 11(BaseColor)
|
||||
Store 9(color) 12
|
||||
16: 7(fvec4) Load 15(otherColor)
|
||||
Store 13(color2) 16
|
||||
19: 6(float) Load 18(c)
|
||||
22: 6(float) Load 21(d)
|
||||
24: 23(bool) FOrdGreaterThan 19 22
|
||||
SelectionMerge 26 None
|
||||
BranchConditional 24 25 31
|
||||
25: Label
|
||||
28: 7(fvec4) Load 27(bigColor)
|
||||
29: 7(fvec4) Load 9(color)
|
||||
30: 7(fvec4) FAdd 29 28
|
||||
Store 9(color) 30
|
||||
Branch 26
|
||||
31: Label
|
||||
33: 7(fvec4) Load 32(smallColor)
|
||||
34: 7(fvec4) Load 9(color)
|
||||
35: 7(fvec4) FAdd 34 33
|
||||
Store 9(color) 35
|
||||
Branch 26
|
||||
26: Label
|
||||
38: 7(fvec4) Load 9(color)
|
||||
39: 7(fvec4) Load 13(color2)
|
||||
40: 7(fvec4) FMul 38 39
|
||||
Store 37(gl_FragColor) 40
|
||||
15: 7(fvec4) Load 14(otherColor)
|
||||
Store 13(color2) 15
|
||||
18: 6(float) Load 17(c)
|
||||
20: 6(float) Load 19(d)
|
||||
22: 21(bool) FOrdGreaterThan 18 20
|
||||
SelectionMerge 24 None
|
||||
BranchConditional 22 23 29
|
||||
23: Label
|
||||
26: 7(fvec4) Load 25(bigColor)
|
||||
27: 7(fvec4) Load 9(color)
|
||||
28: 7(fvec4) FAdd 27 26
|
||||
Store 9(color) 28
|
||||
Branch 24
|
||||
29: Label
|
||||
31: 7(fvec4) Load 30(smallColor)
|
||||
32: 7(fvec4) Load 9(color)
|
||||
33: 7(fvec4) FAdd 32 31
|
||||
Store 9(color) 33
|
||||
Branch 24
|
||||
24: Label
|
||||
36: 7(fvec4) Load 9(color)
|
||||
37: 7(fvec4) Load 13(color2)
|
||||
38: 7(fvec4) FMul 36 37
|
||||
Store 35(gl_FragColor) 38
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
72
Test/baseResults/spv.for-complex-condition.vert.out
Normal file
72
Test/baseResults/spv.for-complex-condition.vert.out
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
spv.for-complex-condition.vert
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// 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 Vertex 4 "main" 18 31
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
Name 18 "flag"
|
||||
Name 31 "r"
|
||||
Decorate 18(flag) Location 0
|
||||
Decorate 31(r) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: 6(int) Constant 0
|
||||
17: TypePointer Input 6(int)
|
||||
18(flag): 17(ptr) Variable Input
|
||||
20: 6(int) Constant 1
|
||||
21: TypeBool
|
||||
25: 6(int) Constant 10
|
||||
27: 6(int) Constant 15
|
||||
30: TypePointer Output 6(int)
|
||||
31(r): 30(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(i): 7(ptr) Variable Function
|
||||
16: 7(ptr) Variable Function
|
||||
Store 8(i) 9
|
||||
Branch 10
|
||||
10: Label
|
||||
LoopMerge 12 13 None
|
||||
Branch 14
|
||||
14: Label
|
||||
15: 6(int) Load 8(i)
|
||||
19: 6(int) Load 18(flag)
|
||||
22: 21(bool) IEqual 19 20
|
||||
SelectionMerge 24 None
|
||||
BranchConditional 22 23 26
|
||||
23: Label
|
||||
Store 16 25
|
||||
Branch 24
|
||||
26: Label
|
||||
Store 16 27
|
||||
Branch 24
|
||||
24: Label
|
||||
28: 6(int) Load 16
|
||||
29: 21(bool) SLessThan 15 28
|
||||
BranchConditional 29 11 12
|
||||
11: Label
|
||||
32: 6(int) Load 8(i)
|
||||
Store 31(r) 32
|
||||
Branch 13
|
||||
13: Label
|
||||
33: 6(int) Load 8(i)
|
||||
34: 6(int) IAdd 33 20
|
||||
Store 8(i) 34
|
||||
Branch 10
|
||||
12: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
84
Test/baseResults/spv.for-continue-break.vert.out
Executable file → Normal file
84
Test/baseResults/spv.for-continue-break.vert.out
Executable file → Normal file
|
|
@ -1,50 +1,45 @@
|
|||
spv.for-continue-break.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 48
|
||||
// Id's are bound by 45
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 46 47
|
||||
Source ESSL 300
|
||||
EntryPoint Vertex 4 "main"
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
Name 17 "A"
|
||||
Name 25 "B"
|
||||
Name 19 "A"
|
||||
Name 27 "B"
|
||||
Name 29 "C"
|
||||
Name 36 "D"
|
||||
Name 38 "E"
|
||||
Name 39 "F"
|
||||
Name 43 "G"
|
||||
Name 46 "gl_VertexID"
|
||||
Name 47 "gl_InstanceID"
|
||||
Decorate 46(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 47(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: 6(int) Constant 0
|
||||
14: 6(int) Constant 10
|
||||
15: TypeBool
|
||||
18: 6(int) Constant 1
|
||||
20: 6(int) Constant 2
|
||||
16: 6(int) Constant 10
|
||||
17: TypeBool
|
||||
20: 6(int) Constant 1
|
||||
22: 6(int) Constant 2
|
||||
31: 6(int) Constant 3
|
||||
40: 6(int) Constant 12
|
||||
44: 6(int) Constant 99
|
||||
45: TypePointer Input 6(int)
|
||||
46(gl_VertexID): 45(ptr) Variable Input
|
||||
47(gl_InstanceID): 45(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(i): 7(ptr) Variable Function
|
||||
17(A): 7(ptr) Variable Function
|
||||
25(B): 7(ptr) Variable Function
|
||||
19(A): 7(ptr) Variable Function
|
||||
27(B): 7(ptr) Variable Function
|
||||
29(C): 7(ptr) Variable Function
|
||||
36(D): 7(ptr) Variable Function
|
||||
38(E): 7(ptr) Variable Function
|
||||
|
|
@ -53,45 +48,40 @@ Linked vertex stage:
|
|||
Store 8(i) 9
|
||||
Branch 10
|
||||
10: Label
|
||||
13: 6(int) Load 8(i)
|
||||
16: 15(bool) SLessThan 13 14
|
||||
LoopMerge 11 10 None
|
||||
BranchConditional 16 12 11
|
||||
12: Label
|
||||
Store 17(A) 18
|
||||
19: 6(int) Load 8(i)
|
||||
21: 6(int) SMod 19 20
|
||||
22: 15(bool) IEqual 21 9
|
||||
SelectionMerge 24 None
|
||||
BranchConditional 22 23 24
|
||||
23: Label
|
||||
Store 25(B) 18
|
||||
26: 6(int) Load 8(i)
|
||||
27: 6(int) IAdd 26 18
|
||||
Store 8(i) 27
|
||||
Branch 10
|
||||
28: Label
|
||||
Store 29(C) 18
|
||||
Branch 24
|
||||
24: Label
|
||||
LoopMerge 12 13 None
|
||||
Branch 14
|
||||
14: Label
|
||||
15: 6(int) Load 8(i)
|
||||
18: 17(bool) SLessThan 15 16
|
||||
BranchConditional 18 11 12
|
||||
11: Label
|
||||
Store 19(A) 20
|
||||
21: 6(int) Load 8(i)
|
||||
23: 6(int) SMod 21 22
|
||||
24: 17(bool) IEqual 23 9
|
||||
SelectionMerge 26 None
|
||||
BranchConditional 24 25 26
|
||||
25: Label
|
||||
Store 27(B) 20
|
||||
Branch 13
|
||||
26: Label
|
||||
30: 6(int) Load 8(i)
|
||||
32: 6(int) SMod 30 31
|
||||
33: 15(bool) IEqual 32 9
|
||||
33: 17(bool) IEqual 32 9
|
||||
SelectionMerge 35 None
|
||||
BranchConditional 33 34 35
|
||||
34: Label
|
||||
Store 36(D) 18
|
||||
Branch 11
|
||||
37: Label
|
||||
Store 38(E) 18
|
||||
Branch 35
|
||||
Store 36(D) 20
|
||||
Branch 12
|
||||
35: Label
|
||||
Store 39(F) 40
|
||||
Branch 13
|
||||
13: Label
|
||||
41: 6(int) Load 8(i)
|
||||
42: 6(int) IAdd 41 18
|
||||
42: 6(int) IAdd 41 20
|
||||
Store 8(i) 42
|
||||
Branch 10
|
||||
11: Label
|
||||
12: Label
|
||||
Store 43(G) 44
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
54
Test/baseResults/spv.for-nobody.vert.out
Normal file
54
Test/baseResults/spv.for-nobody.vert.out
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
spv.for-nobody.vert
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 25
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 23
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
Name 23 "r"
|
||||
Decorate 23(r) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: 6(int) Constant 0
|
||||
16: 6(int) Constant 10
|
||||
17: TypeBool
|
||||
20: 6(int) Constant 1
|
||||
22: TypePointer Output 6(int)
|
||||
23(r): 22(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(i): 7(ptr) Variable Function
|
||||
Store 8(i) 9
|
||||
Branch 10
|
||||
10: Label
|
||||
LoopMerge 12 13 None
|
||||
Branch 14
|
||||
14: Label
|
||||
15: 6(int) Load 8(i)
|
||||
18: 17(bool) SLessThan 15 16
|
||||
BranchConditional 18 11 12
|
||||
11: Label
|
||||
Branch 13
|
||||
13: Label
|
||||
19: 6(int) Load 8(i)
|
||||
21: 6(int) IAdd 19 20
|
||||
Store 8(i) 21
|
||||
Branch 10
|
||||
12: Label
|
||||
24: 6(int) Load 8(i)
|
||||
Store 23(r) 24
|
||||
Return
|
||||
FunctionEnd
|
||||
48
Test/baseResults/spv.for-notest.vert.out
Normal file
48
Test/baseResults/spv.for-notest.vert.out
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
spv.for-notest.vert
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 20
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 15
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
Name 15 "r"
|
||||
Decorate 15(r) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: 6(int) Constant 0
|
||||
14: TypePointer Output 6(int)
|
||||
15(r): 14(ptr) Variable Output
|
||||
18: 6(int) Constant 1
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(i): 7(ptr) Variable Function
|
||||
Store 8(i) 9
|
||||
Branch 10
|
||||
10: Label
|
||||
LoopMerge 12 13 None
|
||||
Branch 11
|
||||
11: Label
|
||||
16: 6(int) Load 8(i)
|
||||
Store 15(r) 16
|
||||
Branch 13
|
||||
13: Label
|
||||
17: 6(int) Load 8(i)
|
||||
19: 6(int) IAdd 17 18
|
||||
Store 8(i) 19
|
||||
Branch 10
|
||||
12: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
@ -1,53 +1,52 @@
|
|||
spv.for-simple.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 25
|
||||
// Id's are bound by 24
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 23 24
|
||||
Source ESSL 300
|
||||
EntryPoint Vertex 4 "main"
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
Name 17 "j"
|
||||
Name 23 "gl_VertexID"
|
||||
Name 24 "gl_InstanceID"
|
||||
Decorate 23(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 24(gl_InstanceID) BuiltIn InstanceId
|
||||
Name 19 "j"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: 6(int) Constant 0
|
||||
14: 6(int) Constant 10
|
||||
15: TypeBool
|
||||
18: 6(int) Constant 12
|
||||
20: 6(int) Constant 1
|
||||
22: TypePointer Input 6(int)
|
||||
23(gl_VertexID): 22(ptr) Variable Input
|
||||
24(gl_InstanceID): 22(ptr) Variable Input
|
||||
16: 6(int) Constant 10
|
||||
17: TypeBool
|
||||
20: 6(int) Constant 12
|
||||
22: 6(int) Constant 1
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(i): 7(ptr) Variable Function
|
||||
17(j): 7(ptr) Variable Function
|
||||
19(j): 7(ptr) Variable Function
|
||||
Store 8(i) 9
|
||||
Branch 10
|
||||
10: Label
|
||||
13: 6(int) Load 8(i)
|
||||
16: 15(bool) SLessThan 13 14
|
||||
LoopMerge 11 10 None
|
||||
BranchConditional 16 12 11
|
||||
12: Label
|
||||
Store 17(j) 18
|
||||
19: 6(int) Load 8(i)
|
||||
21: 6(int) IAdd 19 20
|
||||
Store 8(i) 21
|
||||
LoopMerge 12 13 None
|
||||
Branch 14
|
||||
14: Label
|
||||
15: 6(int) Load 8(i)
|
||||
18: 17(bool) SLessThan 15 16
|
||||
BranchConditional 18 11 12
|
||||
11: Label
|
||||
Store 19(j) 20
|
||||
Branch 13
|
||||
13: Label
|
||||
21: 6(int) Load 8(i)
|
||||
23: 6(int) IAdd 21 22
|
||||
Store 8(i) 23
|
||||
Branch 10
|
||||
11: Label
|
||||
12: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -5,30 +5,32 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 122
|
||||
// Id's are bound by 131
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11 35 97
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
EntryPoint Fragment 4 "main" 11 24 28 36 53 104
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 9 "color"
|
||||
Name 11 "BaseColor"
|
||||
Name 15 "i"
|
||||
Name 22 "Count"
|
||||
Name 27 "bigColor"
|
||||
Name 35 "gl_FragColor"
|
||||
Name 38 "sum"
|
||||
Name 40 "i"
|
||||
Name 50 "v4"
|
||||
Name 60 "i"
|
||||
Name 66 "tv4"
|
||||
Name 83 "r"
|
||||
Name 89 "i"
|
||||
Name 97 "f"
|
||||
Name 110 "i"
|
||||
Name 24 "Count"
|
||||
Name 28 "bigColor"
|
||||
Name 36 "gl_FragColor"
|
||||
Name 39 "sum"
|
||||
Name 41 "i"
|
||||
Name 53 "v4"
|
||||
Name 63 "i"
|
||||
Name 71 "tv4"
|
||||
Name 88 "r"
|
||||
Name 94 "i"
|
||||
Name 104 "f"
|
||||
Name 117 "i"
|
||||
Decorate 24(Count) Flat
|
||||
Decorate 53(v4) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -39,156 +41,175 @@ Linked fragment stage:
|
|||
13: TypeInt 32 1
|
||||
14: TypePointer Function 13(int)
|
||||
16: 13(int) Constant 0
|
||||
21: TypePointer UniformConstant 13(int)
|
||||
22(Count): 21(ptr) Variable UniformConstant
|
||||
24: TypeBool
|
||||
26: TypePointer UniformConstant 7(fvec4)
|
||||
27(bigColor): 26(ptr) Variable UniformConstant
|
||||
32: 13(int) Constant 1
|
||||
34: TypePointer Output 7(fvec4)
|
||||
35(gl_FragColor): 34(ptr) Variable Output
|
||||
37: TypePointer Function 6(float)
|
||||
39: 6(float) Constant 0
|
||||
45: 13(int) Constant 4
|
||||
47: TypeInt 32 0
|
||||
48: TypeVector 47(int) 4
|
||||
49: TypePointer UniformConstant 48(ivec4)
|
||||
50(v4): 49(ptr) Variable UniformConstant
|
||||
52: TypePointer UniformConstant 47(int)
|
||||
71: 47(int) Constant 4
|
||||
84: TypeVector 6(float) 3
|
||||
96: TypePointer Input 6(float)
|
||||
97(f): 96(ptr) Variable Input
|
||||
99: 47(int) Constant 3
|
||||
115: 13(int) Constant 16
|
||||
23: TypePointer Input 13(int)
|
||||
24(Count): 23(ptr) Variable Input
|
||||
26: TypeBool
|
||||
28(bigColor): 10(ptr) Variable Input
|
||||
33: 13(int) Constant 1
|
||||
35: TypePointer Output 7(fvec4)
|
||||
36(gl_FragColor): 35(ptr) Variable Output
|
||||
38: TypePointer Function 6(float)
|
||||
40: 6(float) Constant 0
|
||||
48: 13(int) Constant 4
|
||||
50: TypeInt 32 0
|
||||
51: TypeVector 50(int) 4
|
||||
52: TypePointer Input 51(ivec4)
|
||||
53(v4): 52(ptr) Variable Input
|
||||
55: TypePointer Input 50(int)
|
||||
76: 50(int) Constant 4
|
||||
89: TypeVector 6(float) 3
|
||||
103: TypePointer Input 6(float)
|
||||
104(f): 103(ptr) Variable Input
|
||||
106: 50(int) Constant 3
|
||||
124: 13(int) Constant 16
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(color): 8(ptr) Variable Function
|
||||
15(i): 14(ptr) Variable Function
|
||||
38(sum): 37(ptr) Variable Function
|
||||
40(i): 14(ptr) Variable Function
|
||||
60(i): 14(ptr) Variable Function
|
||||
66(tv4): 8(ptr) Variable Function
|
||||
83(r): 8(ptr) Variable Function
|
||||
89(i): 14(ptr) Variable Function
|
||||
110(i): 14(ptr) Variable Function
|
||||
39(sum): 38(ptr) Variable Function
|
||||
41(i): 14(ptr) Variable Function
|
||||
63(i): 14(ptr) Variable Function
|
||||
71(tv4): 8(ptr) Variable Function
|
||||
88(r): 8(ptr) Variable Function
|
||||
94(i): 14(ptr) Variable Function
|
||||
117(i): 14(ptr) Variable Function
|
||||
12: 7(fvec4) Load 11(BaseColor)
|
||||
Store 9(color) 12
|
||||
Store 15(i) 16
|
||||
Branch 17
|
||||
17: Label
|
||||
20: 13(int) Load 15(i)
|
||||
23: 13(int) Load 22(Count)
|
||||
25: 24(bool) SLessThan 20 23
|
||||
LoopMerge 18 17 None
|
||||
BranchConditional 25 19 18
|
||||
19: Label
|
||||
28: 7(fvec4) Load 27(bigColor)
|
||||
29: 7(fvec4) Load 9(color)
|
||||
30: 7(fvec4) FAdd 29 28
|
||||
Store 9(color) 30
|
||||
31: 13(int) Load 15(i)
|
||||
33: 13(int) IAdd 31 32
|
||||
Store 15(i) 33
|
||||
LoopMerge 19 20 None
|
||||
Branch 21
|
||||
21: Label
|
||||
22: 13(int) Load 15(i)
|
||||
25: 13(int) Load 24(Count)
|
||||
27: 26(bool) SLessThan 22 25
|
||||
BranchConditional 27 18 19
|
||||
18: Label
|
||||
29: 7(fvec4) Load 28(bigColor)
|
||||
30: 7(fvec4) Load 9(color)
|
||||
31: 7(fvec4) FAdd 30 29
|
||||
Store 9(color) 31
|
||||
Branch 20
|
||||
20: Label
|
||||
32: 13(int) Load 15(i)
|
||||
34: 13(int) IAdd 32 33
|
||||
Store 15(i) 34
|
||||
Branch 17
|
||||
18: Label
|
||||
36: 7(fvec4) Load 9(color)
|
||||
Store 35(gl_FragColor) 36
|
||||
Store 38(sum) 39
|
||||
Store 40(i) 16
|
||||
Branch 41
|
||||
41: Label
|
||||
44: 13(int) Load 40(i)
|
||||
46: 24(bool) SLessThan 44 45
|
||||
LoopMerge 42 41 None
|
||||
BranchConditional 46 43 42
|
||||
43: Label
|
||||
51: 13(int) Load 40(i)
|
||||
53: 52(ptr) AccessChain 50(v4) 51
|
||||
54: 47(int) Load 53
|
||||
55: 6(float) ConvertUToF 54
|
||||
56: 6(float) Load 38(sum)
|
||||
57: 6(float) FAdd 56 55
|
||||
Store 38(sum) 57
|
||||
58: 13(int) Load 40(i)
|
||||
59: 13(int) IAdd 58 32
|
||||
Store 40(i) 59
|
||||
Branch 41
|
||||
19: Label
|
||||
37: 7(fvec4) Load 9(color)
|
||||
Store 36(gl_FragColor) 37
|
||||
Store 39(sum) 40
|
||||
Store 41(i) 16
|
||||
Branch 42
|
||||
42: Label
|
||||
Store 60(i) 16
|
||||
Branch 61
|
||||
61: Label
|
||||
64: 13(int) Load 60(i)
|
||||
65: 24(bool) SLessThan 64 45
|
||||
LoopMerge 62 61 None
|
||||
BranchConditional 65 63 62
|
||||
63: Label
|
||||
67: 13(int) Load 60(i)
|
||||
68: 13(int) Load 60(i)
|
||||
69: 52(ptr) AccessChain 50(v4) 68
|
||||
70: 47(int) Load 69
|
||||
72: 47(int) IMul 70 71
|
||||
73: 6(float) ConvertUToF 72
|
||||
74: 37(ptr) AccessChain 66(tv4) 67
|
||||
Store 74 73
|
||||
75: 13(int) Load 60(i)
|
||||
76: 13(int) IAdd 75 32
|
||||
Store 60(i) 76
|
||||
Branch 61
|
||||
62: Label
|
||||
77: 6(float) Load 38(sum)
|
||||
78: 7(fvec4) CompositeConstruct 77 77 77 77
|
||||
79: 7(fvec4) Load 66(tv4)
|
||||
80: 7(fvec4) FAdd 78 79
|
||||
81: 7(fvec4) Load 35(gl_FragColor)
|
||||
82: 7(fvec4) FAdd 81 80
|
||||
Store 35(gl_FragColor) 82
|
||||
85: 7(fvec4) Load 11(BaseColor)
|
||||
86: 84(fvec3) VectorShuffle 85 85 0 1 2
|
||||
87: 7(fvec4) Load 83(r)
|
||||
88: 7(fvec4) VectorShuffle 87 86 4 5 6 3
|
||||
Store 83(r) 88
|
||||
Store 89(i) 16
|
||||
Branch 90
|
||||
90: Label
|
||||
93: 13(int) Load 89(i)
|
||||
94: 13(int) Load 22(Count)
|
||||
95: 24(bool) SLessThan 93 94
|
||||
LoopMerge 91 90 None
|
||||
BranchConditional 95 92 91
|
||||
92: Label
|
||||
98: 6(float) Load 97(f)
|
||||
100: 37(ptr) AccessChain 83(r) 99
|
||||
Store 100 98
|
||||
101: 13(int) Load 89(i)
|
||||
102: 13(int) IAdd 101 32
|
||||
Store 89(i) 102
|
||||
Branch 90
|
||||
91: Label
|
||||
103: 7(fvec4) Load 83(r)
|
||||
104: 84(fvec3) VectorShuffle 103 103 0 1 2
|
||||
105: 7(fvec4) Load 35(gl_FragColor)
|
||||
106: 84(fvec3) VectorShuffle 105 105 0 1 2
|
||||
107: 84(fvec3) FAdd 106 104
|
||||
108: 7(fvec4) Load 35(gl_FragColor)
|
||||
109: 7(fvec4) VectorShuffle 108 107 4 5 6 3
|
||||
Store 35(gl_FragColor) 109
|
||||
Store 110(i) 16
|
||||
Branch 111
|
||||
111: Label
|
||||
114: 13(int) Load 110(i)
|
||||
116: 24(bool) SLessThan 114 115
|
||||
LoopMerge 112 111 None
|
||||
BranchConditional 116 113 112
|
||||
113: Label
|
||||
117: 6(float) Load 97(f)
|
||||
118: 7(fvec4) Load 35(gl_FragColor)
|
||||
119: 7(fvec4) VectorTimesScalar 118 117
|
||||
Store 35(gl_FragColor) 119
|
||||
120: 13(int) Load 110(i)
|
||||
121: 13(int) IAdd 120 45
|
||||
Store 110(i) 121
|
||||
Branch 111
|
||||
112: Label
|
||||
LoopMerge 44 45 None
|
||||
Branch 46
|
||||
46: Label
|
||||
47: 13(int) Load 41(i)
|
||||
49: 26(bool) SLessThan 47 48
|
||||
BranchConditional 49 43 44
|
||||
43: Label
|
||||
54: 13(int) Load 41(i)
|
||||
56: 55(ptr) AccessChain 53(v4) 54
|
||||
57: 50(int) Load 56
|
||||
58: 6(float) ConvertUToF 57
|
||||
59: 6(float) Load 39(sum)
|
||||
60: 6(float) FAdd 59 58
|
||||
Store 39(sum) 60
|
||||
Branch 45
|
||||
45: Label
|
||||
61: 13(int) Load 41(i)
|
||||
62: 13(int) IAdd 61 33
|
||||
Store 41(i) 62
|
||||
Branch 42
|
||||
44: Label
|
||||
Store 63(i) 16
|
||||
Branch 64
|
||||
64: Label
|
||||
LoopMerge 66 67 None
|
||||
Branch 68
|
||||
68: Label
|
||||
69: 13(int) Load 63(i)
|
||||
70: 26(bool) SLessThan 69 48
|
||||
BranchConditional 70 65 66
|
||||
65: Label
|
||||
72: 13(int) Load 63(i)
|
||||
73: 13(int) Load 63(i)
|
||||
74: 55(ptr) AccessChain 53(v4) 73
|
||||
75: 50(int) Load 74
|
||||
77: 50(int) IMul 75 76
|
||||
78: 6(float) ConvertUToF 77
|
||||
79: 38(ptr) AccessChain 71(tv4) 72
|
||||
Store 79 78
|
||||
Branch 67
|
||||
67: Label
|
||||
80: 13(int) Load 63(i)
|
||||
81: 13(int) IAdd 80 33
|
||||
Store 63(i) 81
|
||||
Branch 64
|
||||
66: Label
|
||||
82: 6(float) Load 39(sum)
|
||||
83: 7(fvec4) CompositeConstruct 82 82 82 82
|
||||
84: 7(fvec4) Load 71(tv4)
|
||||
85: 7(fvec4) FAdd 83 84
|
||||
86: 7(fvec4) Load 36(gl_FragColor)
|
||||
87: 7(fvec4) FAdd 86 85
|
||||
Store 36(gl_FragColor) 87
|
||||
90: 7(fvec4) Load 11(BaseColor)
|
||||
91: 89(fvec3) VectorShuffle 90 90 0 1 2
|
||||
92: 7(fvec4) Load 88(r)
|
||||
93: 7(fvec4) VectorShuffle 92 91 4 5 6 3
|
||||
Store 88(r) 93
|
||||
Store 94(i) 16
|
||||
Branch 95
|
||||
95: Label
|
||||
LoopMerge 97 98 None
|
||||
Branch 99
|
||||
99: Label
|
||||
100: 13(int) Load 94(i)
|
||||
101: 13(int) Load 24(Count)
|
||||
102: 26(bool) SLessThan 100 101
|
||||
BranchConditional 102 96 97
|
||||
96: Label
|
||||
105: 6(float) Load 104(f)
|
||||
107: 38(ptr) AccessChain 88(r) 106
|
||||
Store 107 105
|
||||
Branch 98
|
||||
98: Label
|
||||
108: 13(int) Load 94(i)
|
||||
109: 13(int) IAdd 108 33
|
||||
Store 94(i) 109
|
||||
Branch 95
|
||||
97: Label
|
||||
110: 7(fvec4) Load 88(r)
|
||||
111: 89(fvec3) VectorShuffle 110 110 0 1 2
|
||||
112: 7(fvec4) Load 36(gl_FragColor)
|
||||
113: 89(fvec3) VectorShuffle 112 112 0 1 2
|
||||
114: 89(fvec3) FAdd 113 111
|
||||
115: 7(fvec4) Load 36(gl_FragColor)
|
||||
116: 7(fvec4) VectorShuffle 115 114 4 5 6 3
|
||||
Store 36(gl_FragColor) 116
|
||||
Store 117(i) 16
|
||||
Branch 118
|
||||
118: Label
|
||||
LoopMerge 120 121 None
|
||||
Branch 122
|
||||
122: Label
|
||||
123: 13(int) Load 117(i)
|
||||
125: 26(bool) SLessThan 123 124
|
||||
BranchConditional 125 119 120
|
||||
119: Label
|
||||
126: 6(float) Load 104(f)
|
||||
127: 7(fvec4) Load 36(gl_FragColor)
|
||||
128: 7(fvec4) VectorTimesScalar 127 126
|
||||
Store 36(gl_FragColor) 128
|
||||
Branch 121
|
||||
121: Label
|
||||
129: 13(int) Load 117(i)
|
||||
130: 13(int) IAdd 129 48
|
||||
Store 117(i) 130
|
||||
Branch 118
|
||||
120: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ Linked fragment stage:
|
|||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 20 30
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source ESSL 100
|
||||
EntryPoint Fragment 4 "main" 20 30 36 59
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 6 "bar("
|
||||
Name 10 "unreachableReturn("
|
||||
|
|
@ -25,12 +25,6 @@ Linked fragment stage:
|
|||
Name 30 "gl_FragColor"
|
||||
Name 36 "d"
|
||||
Name 59 "bigColor"
|
||||
Decorate 18(color) RelaxedPrecision
|
||||
Decorate 20(BaseColor) RelaxedPrecision
|
||||
Decorate 27(f) RelaxedPrecision
|
||||
Decorate 30(gl_FragColor) RelaxedPrecision
|
||||
Decorate 36(d) RelaxedPrecision
|
||||
Decorate 59(bigColor) RelaxedPrecision
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
8: TypeFloat 32
|
||||
|
|
@ -43,8 +37,8 @@ Linked fragment stage:
|
|||
26: TypePointer Function 8(float)
|
||||
29: TypePointer Output 12(fvec4)
|
||||
30(gl_FragColor): 29(ptr) Variable Output
|
||||
35: TypePointer UniformConstant 8(float)
|
||||
36(d): 35(ptr) Variable UniformConstant
|
||||
35: TypePointer Input 8(float)
|
||||
36(d): 35(ptr) Variable Input
|
||||
38: 8(float) Constant 1082549862
|
||||
39: TypeBool
|
||||
43: 8(float) Constant 1067030938
|
||||
|
|
@ -52,8 +46,7 @@ Linked fragment stage:
|
|||
49: TypeInt 32 0
|
||||
50: 49(int) Constant 0
|
||||
53: 49(int) Constant 1
|
||||
58: TypePointer UniformConstant 12(fvec4)
|
||||
59(bigColor): 58(ptr) Variable UniformConstant
|
||||
59(bigColor): 19(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
18(color): 13(ptr) Variable Function
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
spv.functionCall.frag
|
||||
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
|
||||
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
|
||||
WARNING: 0:5: varying deprecated in version 130; may be removed in future release
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
|
@ -12,9 +14,9 @@ Linked fragment stage:
|
|||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 57 68
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
EntryPoint Fragment 4 "main" 35 58 69 75
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 11 "foo(vf4;"
|
||||
Name 10 "bar"
|
||||
|
|
@ -22,13 +24,13 @@ Linked fragment stage:
|
|||
Name 16 "unreachableReturn("
|
||||
Name 18 "missingReturn("
|
||||
Name 21 "h"
|
||||
Name 34 "d"
|
||||
Name 55 "color"
|
||||
Name 57 "BaseColor"
|
||||
Name 58 "param"
|
||||
Name 63 "f"
|
||||
Name 65 "g"
|
||||
Name 68 "gl_FragColor"
|
||||
Name 35 "d"
|
||||
Name 56 "color"
|
||||
Name 58 "BaseColor"
|
||||
Name 59 "param"
|
||||
Name 64 "f"
|
||||
Name 66 "g"
|
||||
Name 69 "gl_FragColor"
|
||||
Name 75 "bigColor"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
|
|
@ -44,42 +46,41 @@ Linked fragment stage:
|
|||
24: 23(int) Constant 0
|
||||
25: TypePointer Function 6(float)
|
||||
28: 23(int) Constant 1
|
||||
33: TypePointer UniformConstant 6(float)
|
||||
34(d): 33(ptr) Variable UniformConstant
|
||||
36: 6(float) Constant 1082549862
|
||||
37: TypeBool
|
||||
41: 6(float) Constant 1067030938
|
||||
44: 6(float) Constant 1083179008
|
||||
52: 6(float) Constant 1081711002
|
||||
56: TypePointer Input 7(fvec4)
|
||||
57(BaseColor): 56(ptr) Variable Input
|
||||
67: TypePointer Output 7(fvec4)
|
||||
68(gl_FragColor): 67(ptr) Variable Output
|
||||
74: TypePointer UniformConstant 7(fvec4)
|
||||
75(bigColor): 74(ptr) Variable UniformConstant
|
||||
34: TypePointer Input 6(float)
|
||||
35(d): 34(ptr) Variable Input
|
||||
37: 6(float) Constant 1082549862
|
||||
38: TypeBool
|
||||
42: 6(float) Constant 1067030938
|
||||
45: 6(float) Constant 1083179008
|
||||
53: 6(float) Constant 1081711002
|
||||
57: TypePointer Input 7(fvec4)
|
||||
58(BaseColor): 57(ptr) Variable Input
|
||||
68: TypePointer Output 7(fvec4)
|
||||
69(gl_FragColor): 68(ptr) Variable Output
|
||||
75(bigColor): 57(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
55(color): 8(ptr) Variable Function
|
||||
58(param): 8(ptr) Variable Function
|
||||
63(f): 25(ptr) Variable Function
|
||||
65(g): 25(ptr) Variable Function
|
||||
56(color): 8(ptr) Variable Function
|
||||
59(param): 8(ptr) Variable Function
|
||||
64(f): 25(ptr) Variable Function
|
||||
66(g): 25(ptr) Variable Function
|
||||
Store 21(h) 22
|
||||
59: 7(fvec4) Load 57(BaseColor)
|
||||
Store 58(param) 59
|
||||
60: 6(float) FunctionCall 11(foo(vf4;) 58(param)
|
||||
61: 7(fvec4) CompositeConstruct 60 60 60 60
|
||||
Store 55(color) 61
|
||||
62: 2 FunctionCall 13(bar()
|
||||
64: 6(float) FunctionCall 16(unreachableReturn()
|
||||
Store 63(f) 64
|
||||
66: 6(float) FunctionCall 18(missingReturn()
|
||||
Store 65(g) 66
|
||||
69: 7(fvec4) Load 55(color)
|
||||
70: 6(float) Load 63(f)
|
||||
71: 7(fvec4) VectorTimesScalar 69 70
|
||||
72: 6(float) Load 21(h)
|
||||
73: 7(fvec4) VectorTimesScalar 71 72
|
||||
Store 68(gl_FragColor) 73
|
||||
60: 7(fvec4) Load 58(BaseColor)
|
||||
Store 59(param) 60
|
||||
61: 6(float) FunctionCall 11(foo(vf4;) 59(param)
|
||||
62: 7(fvec4) CompositeConstruct 61 61 61 61
|
||||
Store 56(color) 62
|
||||
63: 2 FunctionCall 13(bar()
|
||||
65: 6(float) FunctionCall 16(unreachableReturn()
|
||||
Store 64(f) 65
|
||||
67: 6(float) FunctionCall 18(missingReturn()
|
||||
Store 66(g) 67
|
||||
70: 7(fvec4) Load 56(color)
|
||||
71: 6(float) Load 64(f)
|
||||
72: 7(fvec4) VectorTimesScalar 70 71
|
||||
73: 6(float) Load 21(h)
|
||||
74: 7(fvec4) VectorTimesScalar 72 73
|
||||
Store 69(gl_FragColor) 74
|
||||
Return
|
||||
FunctionEnd
|
||||
11(foo(vf4;): 6(float) Function None 9
|
||||
|
|
@ -98,29 +99,29 @@ Linked fragment stage:
|
|||
FunctionEnd
|
||||
16(unreachableReturn(): 6(float) Function None 15
|
||||
17: Label
|
||||
35: 6(float) Load 34(d)
|
||||
38: 37(bool) FOrdLessThan 35 36
|
||||
SelectionMerge 40 None
|
||||
BranchConditional 38 39 43
|
||||
39: Label
|
||||
ReturnValue 41
|
||||
43: Label
|
||||
ReturnValue 44
|
||||
40: Label
|
||||
46: 6(float) Undef
|
||||
ReturnValue 46
|
||||
36: 6(float) Load 35(d)
|
||||
39: 38(bool) FOrdLessThan 36 37
|
||||
SelectionMerge 41 None
|
||||
BranchConditional 39 40 44
|
||||
40: Label
|
||||
ReturnValue 42
|
||||
44: Label
|
||||
ReturnValue 45
|
||||
41: Label
|
||||
47: 6(float) Undef
|
||||
ReturnValue 47
|
||||
FunctionEnd
|
||||
18(missingReturn(): 6(float) Function None 15
|
||||
19: Label
|
||||
47: 6(float) Load 34(d)
|
||||
48: 37(bool) FOrdLessThan 47 44
|
||||
SelectionMerge 50 None
|
||||
BranchConditional 48 49 50
|
||||
49: Label
|
||||
51: 6(float) Load 34(d)
|
||||
Store 21(h) 51
|
||||
ReturnValue 52
|
||||
50: Label
|
||||
54: 6(float) Undef
|
||||
ReturnValue 54
|
||||
48: 6(float) Load 35(d)
|
||||
49: 38(bool) FOrdLessThan 48 45
|
||||
SelectionMerge 51 None
|
||||
BranchConditional 49 50 51
|
||||
50: Label
|
||||
52: 6(float) Load 35(d)
|
||||
Store 21(h) 52
|
||||
ReturnValue 53
|
||||
51: Label
|
||||
55: 6(float) Undef
|
||||
ReturnValue 55
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 153
|
||||
// Id's are bound by 156
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 149
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
EntryPoint Fragment 4 "main" 76 152
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
Name 15 "foo(i1;i1;i1;i1;i1;i1;"
|
||||
|
|
@ -29,25 +29,25 @@ Linked fragment stage:
|
|||
Name 24 "r"
|
||||
Name 28 "foo3("
|
||||
Name 30 "sum"
|
||||
Name 74 "u"
|
||||
Name 86 "t"
|
||||
Name 89 "s"
|
||||
MemberName 89(s) 0 "t"
|
||||
Name 91 "f"
|
||||
Name 95 "color"
|
||||
Name 101 "e"
|
||||
Name 102 "param"
|
||||
Name 103 "param"
|
||||
Name 104 "param"
|
||||
Name 76 "u"
|
||||
Name 89 "t"
|
||||
Name 92 "s"
|
||||
MemberName 92(s) 0 "t"
|
||||
Name 94 "f"
|
||||
Name 98 "color"
|
||||
Name 104 "e"
|
||||
Name 105 "param"
|
||||
Name 120 "ret"
|
||||
Name 122 "tempReturn"
|
||||
Name 127 "tempArg"
|
||||
Name 128 "param"
|
||||
Name 129 "param"
|
||||
Name 130 "param"
|
||||
Name 133 "arg"
|
||||
Name 149 "gl_FragColor"
|
||||
Name 106 "param"
|
||||
Name 107 "param"
|
||||
Name 108 "param"
|
||||
Name 123 "ret"
|
||||
Name 125 "tempReturn"
|
||||
Name 130 "tempArg"
|
||||
Name 131 "param"
|
||||
Name 132 "param"
|
||||
Name 133 "param"
|
||||
Name 136 "arg"
|
||||
Name 152 "gl_FragColor"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
|
|
@ -61,103 +61,103 @@ Linked fragment stage:
|
|||
27: TypeFunction 6(int)
|
||||
38: 6(int) Constant 64
|
||||
43: 6(int) Constant 1024
|
||||
61: 17(float) Constant 1077936128
|
||||
65: 17(float) Constant 1084227584
|
||||
66: TypeInt 32 0
|
||||
67: 66(int) Constant 1
|
||||
73: TypePointer UniformConstant 17(float)
|
||||
74(u): 73(ptr) Variable UniformConstant
|
||||
76: 17(float) Constant 1078774989
|
||||
77: TypeBool
|
||||
82: 6(int) Constant 1000000
|
||||
84: 6(int) Constant 2000000
|
||||
87: 6(int) Constant 2
|
||||
88: TypeVector 6(int) 4
|
||||
89(s): TypeStruct 88(ivec4)
|
||||
90: TypePointer Function 89(s)
|
||||
92: 6(int) Constant 0
|
||||
93: 6(int) Constant 32
|
||||
96: 6(int) Constant 1
|
||||
100: 6(int) Constant 8
|
||||
112: 6(int) Constant 128
|
||||
121: TypePointer Private 6(int)
|
||||
122(tempReturn): 121(ptr) Variable Private
|
||||
123: 17(float) Constant 1082130432
|
||||
124: 17(float) Constant 1065353216
|
||||
125: 17(float) Constant 1073741824
|
||||
126: 19(fvec3) ConstantComposite 124 125 61
|
||||
147: TypeVector 17(float) 4
|
||||
148: TypePointer Output 147(fvec4)
|
||||
149(gl_FragColor): 148(ptr) Variable Output
|
||||
62: 17(float) Constant 1077936128
|
||||
66: 17(float) Constant 1084227584
|
||||
67: TypeInt 32 0
|
||||
68: 67(int) Constant 1
|
||||
75: TypePointer Input 17(float)
|
||||
76(u): 75(ptr) Variable Input
|
||||
78: 17(float) Constant 1078774989
|
||||
79: TypeBool
|
||||
84: 6(int) Constant 1000000
|
||||
86: 6(int) Constant 2000000
|
||||
90: 6(int) Constant 2
|
||||
91: TypeVector 6(int) 4
|
||||
92(s): TypeStruct 91(ivec4)
|
||||
93: TypePointer Function 92(s)
|
||||
95: 6(int) Constant 0
|
||||
96: 6(int) Constant 32
|
||||
99: 6(int) Constant 1
|
||||
103: 6(int) Constant 8
|
||||
115: 6(int) Constant 128
|
||||
124: TypePointer Private 6(int)
|
||||
125(tempReturn): 124(ptr) Variable Private
|
||||
126: 17(float) Constant 1082130432
|
||||
127: 17(float) Constant 1065353216
|
||||
128: 17(float) Constant 1073741824
|
||||
129: 19(fvec3) ConstantComposite 127 128 62
|
||||
150: TypeVector 17(float) 4
|
||||
151: TypePointer Output 150(fvec4)
|
||||
152(gl_FragColor): 151(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
86(t): 7(ptr) Variable Function
|
||||
91(f): 90(ptr) Variable Function
|
||||
95(color): 7(ptr) Variable Function
|
||||
101(e): 7(ptr) Variable Function
|
||||
102(param): 7(ptr) Variable Function
|
||||
103(param): 7(ptr) Variable Function
|
||||
104(param): 7(ptr) Variable Function
|
||||
89(t): 7(ptr) Variable Function
|
||||
94(f): 93(ptr) Variable Function
|
||||
98(color): 7(ptr) Variable Function
|
||||
104(e): 7(ptr) Variable Function
|
||||
105(param): 7(ptr) Variable Function
|
||||
120(ret): 18(ptr) Variable Function
|
||||
127(tempArg): 7(ptr) Variable Function
|
||||
128(param): 18(ptr) Variable Function
|
||||
129(param): 20(ptr) Variable Function
|
||||
130(param): 7(ptr) Variable Function
|
||||
133(arg): 18(ptr) Variable Function
|
||||
Store 86(t) 87
|
||||
94: 7(ptr) AccessChain 91(f) 92 67
|
||||
Store 94 93
|
||||
97: 6(int) Load 86(t)
|
||||
98: 6(int) Load 86(t)
|
||||
99: 6(int) IAdd 97 98
|
||||
Store 102(param) 96
|
||||
Store 103(param) 99
|
||||
106: 7(ptr) AccessChain 91(f) 92 67
|
||||
107: 6(int) Load 106
|
||||
Store 105(param) 107
|
||||
108: 6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 102(param) 87 103(param) 100 104(param) 105(param)
|
||||
109: 6(int) Load 104(param)
|
||||
Store 101(e) 109
|
||||
110: 6(int) Load 105(param)
|
||||
111: 7(ptr) AccessChain 91(f) 92 67
|
||||
Store 111 110
|
||||
Store 95(color) 108
|
||||
113: 6(int) Load 101(e)
|
||||
114: 7(ptr) AccessChain 91(f) 92 67
|
||||
115: 6(int) Load 114
|
||||
116: 6(int) IAdd 113 115
|
||||
117: 6(int) IMul 112 116
|
||||
118: 6(int) Load 95(color)
|
||||
119: 6(int) IAdd 118 117
|
||||
Store 95(color) 119
|
||||
Store 128(param) 123
|
||||
Store 129(param) 126
|
||||
131: 6(int) FunctionCall 25(foo2(f1;vf3;i1;) 128(param) 129(param) 130(param)
|
||||
132: 6(int) Load 130(param)
|
||||
Store 127(tempArg) 132
|
||||
Store 122(tempReturn) 131
|
||||
134: 6(int) Load 127(tempArg)
|
||||
135: 17(float) ConvertSToF 134
|
||||
Store 133(arg) 135
|
||||
136: 6(int) Load 122(tempReturn)
|
||||
137: 17(float) ConvertSToF 136
|
||||
Store 120(ret) 137
|
||||
138: 17(float) Load 120(ret)
|
||||
139: 17(float) Load 133(arg)
|
||||
140: 17(float) FAdd 138 139
|
||||
141: 6(int) ConvertFToS 140
|
||||
142: 6(int) Load 95(color)
|
||||
143: 6(int) IAdd 142 141
|
||||
Store 95(color) 143
|
||||
144: 6(int) FunctionCall 28(foo3()
|
||||
145: 6(int) Load 95(color)
|
||||
106(param): 7(ptr) Variable Function
|
||||
107(param): 7(ptr) Variable Function
|
||||
108(param): 7(ptr) Variable Function
|
||||
123(ret): 18(ptr) Variable Function
|
||||
130(tempArg): 7(ptr) Variable Function
|
||||
131(param): 18(ptr) Variable Function
|
||||
132(param): 20(ptr) Variable Function
|
||||
133(param): 7(ptr) Variable Function
|
||||
136(arg): 18(ptr) Variable Function
|
||||
Store 89(t) 90
|
||||
97: 7(ptr) AccessChain 94(f) 95 68
|
||||
Store 97 96
|
||||
100: 6(int) Load 89(t)
|
||||
101: 6(int) Load 89(t)
|
||||
102: 6(int) IAdd 100 101
|
||||
Store 105(param) 99
|
||||
Store 106(param) 102
|
||||
109: 7(ptr) AccessChain 94(f) 95 68
|
||||
110: 6(int) Load 109
|
||||
Store 108(param) 110
|
||||
111: 6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 105(param) 90 106(param) 103 107(param) 108(param)
|
||||
112: 6(int) Load 107(param)
|
||||
Store 104(e) 112
|
||||
113: 6(int) Load 108(param)
|
||||
114: 7(ptr) AccessChain 94(f) 95 68
|
||||
Store 114 113
|
||||
Store 98(color) 111
|
||||
116: 6(int) Load 104(e)
|
||||
117: 7(ptr) AccessChain 94(f) 95 68
|
||||
118: 6(int) Load 117
|
||||
119: 6(int) IAdd 116 118
|
||||
120: 6(int) IMul 115 119
|
||||
121: 6(int) Load 98(color)
|
||||
122: 6(int) IAdd 121 120
|
||||
Store 98(color) 122
|
||||
Store 131(param) 126
|
||||
Store 132(param) 129
|
||||
134: 6(int) FunctionCall 25(foo2(f1;vf3;i1;) 131(param) 132(param) 133(param)
|
||||
135: 6(int) Load 133(param)
|
||||
Store 130(tempArg) 135
|
||||
Store 125(tempReturn) 134
|
||||
137: 6(int) Load 130(tempArg)
|
||||
138: 17(float) ConvertSToF 137
|
||||
Store 136(arg) 138
|
||||
139: 6(int) Load 125(tempReturn)
|
||||
140: 17(float) ConvertSToF 139
|
||||
Store 123(ret) 140
|
||||
141: 17(float) Load 123(ret)
|
||||
142: 17(float) Load 136(arg)
|
||||
143: 17(float) FAdd 141 142
|
||||
144: 6(int) ConvertFToS 143
|
||||
145: 6(int) Load 98(color)
|
||||
146: 6(int) IAdd 145 144
|
||||
Store 95(color) 146
|
||||
150: 6(int) Load 95(color)
|
||||
151: 17(float) ConvertSToF 150
|
||||
152: 147(fvec4) CompositeConstruct 151 151 151 151
|
||||
Store 149(gl_FragColor) 152
|
||||
Store 98(color) 146
|
||||
147: 6(int) FunctionCall 28(foo3()
|
||||
148: 6(int) Load 98(color)
|
||||
149: 6(int) IAdd 148 147
|
||||
Store 98(color) 149
|
||||
153: 6(int) Load 98(color)
|
||||
154: 17(float) ConvertSToF 153
|
||||
155: 150(fvec4) CompositeConstruct 154 154 154 154
|
||||
Store 152(gl_FragColor) 155
|
||||
Return
|
||||
FunctionEnd
|
||||
15(foo(i1;i1;i1;i1;i1;i1;): 6(int) Function None 8
|
||||
|
|
@ -209,24 +209,24 @@ Linked fragment stage:
|
|||
23(b): 20(ptr) FunctionParameter
|
||||
24(r): 7(ptr) FunctionParameter
|
||||
26: Label
|
||||
62: 17(float) Load 22(a)
|
||||
63: 17(float) FMul 61 62
|
||||
64: 6(int) ConvertFToS 63
|
||||
Store 24(r) 64
|
||||
68: 18(ptr) AccessChain 23(b) 67
|
||||
69: 17(float) Load 68
|
||||
70: 17(float) FMul 65 69
|
||||
71: 6(int) ConvertFToS 70
|
||||
ReturnValue 71
|
||||
63: 17(float) Load 22(a)
|
||||
64: 17(float) FMul 62 63
|
||||
65: 6(int) ConvertFToS 64
|
||||
Store 24(r) 65
|
||||
69: 18(ptr) AccessChain 23(b) 68
|
||||
70: 17(float) Load 69
|
||||
71: 17(float) FMul 66 70
|
||||
72: 6(int) ConvertFToS 71
|
||||
ReturnValue 72
|
||||
FunctionEnd
|
||||
28(foo3(): 6(int) Function None 27
|
||||
29: Label
|
||||
75: 17(float) Load 74(u)
|
||||
78: 77(bool) FOrdGreaterThan 75 76
|
||||
SelectionMerge 80 None
|
||||
BranchConditional 78 79 80
|
||||
79: Label
|
||||
77: 17(float) Load 76(u)
|
||||
80: 79(bool) FOrdGreaterThan 77 78
|
||||
SelectionMerge 82 None
|
||||
BranchConditional 80 81 82
|
||||
81: Label
|
||||
Kill
|
||||
80: Label
|
||||
ReturnValue 84
|
||||
82: Label
|
||||
ReturnValue 86
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -7,13 +7,21 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 372
|
||||
// Id's are bound by 378
|
||||
|
||||
Capability Shader
|
||||
Capability SampledRect
|
||||
Capability Sampled1D
|
||||
Capability SampledCubeArray
|
||||
Capability SampledBuffer
|
||||
Capability ImageMSArray
|
||||
Capability StorageImageExtendedFormats
|
||||
Capability ImageQuery
|
||||
Capability StorageImageWriteWithoutFormat
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 356
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
EntryPoint Fragment 4 "main" 132 142 152 248 362 377
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "iv"
|
||||
|
|
@ -36,21 +44,43 @@ Linked fragment stage:
|
|||
Name 232 "ii1D"
|
||||
Name 245 "ui2D"
|
||||
Name 248 "value"
|
||||
Name 356 "fragData"
|
||||
Name 371 "ic4D"
|
||||
Name 357 "wo2D"
|
||||
Name 362 "fragData"
|
||||
Name 377 "ic4D"
|
||||
Decorate 15(i1D) DescriptorSet 0
|
||||
Decorate 15(i1D) Binding 0
|
||||
Decorate 27(i2D) DescriptorSet 0
|
||||
Decorate 27(i2D) Binding 1
|
||||
Decorate 38(i3D) DescriptorSet 0
|
||||
Decorate 38(i3D) Binding 2
|
||||
Decorate 45(iCube) DescriptorSet 0
|
||||
Decorate 45(iCube) Binding 3
|
||||
Decorate 55(iCubeArray) DescriptorSet 0
|
||||
Decorate 55(iCubeArray) Binding 4
|
||||
Decorate 62(i2DRect) DescriptorSet 0
|
||||
Decorate 62(i2DRect) Binding 5
|
||||
Decorate 72(i1DArray) DescriptorSet 0
|
||||
Decorate 72(i1DArray) Binding 6
|
||||
Decorate 82(i2DArray) DescriptorSet 0
|
||||
Decorate 82(i2DArray) Binding 7
|
||||
Decorate 89(iBuffer) DescriptorSet 0
|
||||
Decorate 89(iBuffer) Binding 8
|
||||
Decorate 98(i2DMS) DescriptorSet 0
|
||||
Decorate 98(i2DMS) Binding 9
|
||||
Decorate 108(i2DMSArray) DescriptorSet 0
|
||||
Decorate 108(i2DMSArray) Binding 10
|
||||
Decorate 132(ic1D) Flat
|
||||
Decorate 142(ic2D) Flat
|
||||
Decorate 152(ic3D) Flat
|
||||
Decorate 232(ii1D) DescriptorSet 0
|
||||
Decorate 232(ii1D) Binding 11
|
||||
Decorate 245(ui2D) DescriptorSet 0
|
||||
Decorate 245(ui2D) Binding 12
|
||||
Decorate 248(value) Flat
|
||||
Decorate 357(wo2D) DescriptorSet 0
|
||||
Decorate 357(wo2D) Binding 1
|
||||
Decorate 357(wo2D) NonReadable
|
||||
Decorate 377(ic4D) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
|
|
@ -84,7 +114,7 @@ Linked fragment stage:
|
|||
70: TypeImage 12(float) 1D array nonsampled format:Rgba32f
|
||||
71: TypePointer UniformConstant 70
|
||||
72(i1DArray): 71(ptr) Variable UniformConstant
|
||||
80: TypeImage 12(float) 2D array nonsampled format:Rgba32f
|
||||
80: TypeImage 12(float) 2D array nonsampled format:Rg16
|
||||
81: TypePointer UniformConstant 80
|
||||
82(i2DArray): 81(ptr) Variable UniformConstant
|
||||
87: TypeImage 12(float) Buffer nonsampled format:Rgba32f
|
||||
|
|
@ -100,12 +130,12 @@ Linked fragment stage:
|
|||
126: TypePointer Function 125(fvec4)
|
||||
128: 12(float) Constant 0
|
||||
129: 125(fvec4) ConstantComposite 128 128 128 128
|
||||
131: TypePointer UniformConstant 6(int)
|
||||
132(ic1D): 131(ptr) Variable UniformConstant
|
||||
141: TypePointer UniformConstant 29(ivec2)
|
||||
142(ic2D): 141(ptr) Variable UniformConstant
|
||||
151: TypePointer UniformConstant 7(ivec3)
|
||||
152(ic3D): 151(ptr) Variable UniformConstant
|
||||
131: TypePointer Input 6(int)
|
||||
132(ic1D): 131(ptr) Variable Input
|
||||
141: TypePointer Input 29(ivec2)
|
||||
142(ic2D): 141(ptr) Variable Input
|
||||
151: TypePointer Input 7(ivec3)
|
||||
152(ic3D): 151(ptr) Variable Input
|
||||
210: 6(int) Constant 1
|
||||
216: 6(int) Constant 2
|
||||
220: 6(int) Constant 3
|
||||
|
|
@ -120,8 +150,8 @@ Linked fragment stage:
|
|||
243: TypeImage 18(int) 2D nonsampled format:R32ui
|
||||
244: TypePointer UniformConstant 243
|
||||
245(ui2D): 244(ptr) Variable UniformConstant
|
||||
247: TypePointer UniformConstant 18(int)
|
||||
248(value): 247(ptr) Variable UniformConstant
|
||||
247: TypePointer Input 18(int)
|
||||
248(value): 247(ptr) Variable Input
|
||||
250: TypePointer Image 18(int)
|
||||
256: 6(int) Constant 11
|
||||
270: 6(int) Constant 12
|
||||
|
|
@ -132,18 +162,21 @@ Linked fragment stage:
|
|||
340: 6(int) Constant 18
|
||||
341: 6(int) Constant 17
|
||||
349: 18(int) Constant 19
|
||||
355: TypePointer Output 125(fvec4)
|
||||
356(fragData): 355(ptr) Variable Output
|
||||
362: TypeBool
|
||||
369: TypeVector 6(int) 4
|
||||
370: TypePointer UniformConstant 369(ivec4)
|
||||
371(ic4D): 370(ptr) Variable UniformConstant
|
||||
355: TypeImage 12(float) 2D nonsampled format:Unknown
|
||||
356: TypePointer UniformConstant 355
|
||||
357(wo2D): 356(ptr) Variable UniformConstant
|
||||
361: TypePointer Output 125(fvec4)
|
||||
362(fragData): 361(ptr) Variable Output
|
||||
368: TypeBool
|
||||
375: TypeVector 6(int) 4
|
||||
376: TypePointer Input 375(ivec4)
|
||||
377(ic4D): 376(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(iv): 8(ptr) Variable Function
|
||||
127(v): 126(ptr) Variable Function
|
||||
229(ui): 228(ptr) Variable Function
|
||||
357: 126(ptr) Variable Function
|
||||
363: 126(ptr) Variable Function
|
||||
Store 9(iv) 11
|
||||
16: 13 Load 15(i1D)
|
||||
17: 6(int) ImageQuerySize 16
|
||||
|
|
@ -346,7 +379,7 @@ Linked fragment stage:
|
|||
ImageWrite 224 225 227 Sample 226
|
||||
Store 229(ui) 19
|
||||
233: 6(int) Load 132(ic1D)
|
||||
236: 235(ptr) ImageTexelPointer 232(ii1D) 233 0
|
||||
236: 235(ptr) ImageTexelPointer 232(ii1D) 233 19
|
||||
238: 6(int) AtomicIAdd 236 237 19 234
|
||||
239: 20(ptr) AccessChain 9(iv) 19
|
||||
240: 6(int) Load 239
|
||||
|
|
@ -355,13 +388,13 @@ Linked fragment stage:
|
|||
Store 242 241
|
||||
246: 29(ivec2) Load 142(ic2D)
|
||||
249: 18(int) Load 248(value)
|
||||
251: 250(ptr) ImageTexelPointer 245(ui2D) 246 0
|
||||
251: 250(ptr) ImageTexelPointer 245(ui2D) 246 19
|
||||
252: 18(int) AtomicIAdd 251 237 19 249
|
||||
253: 18(int) Load 229(ui)
|
||||
254: 18(int) IAdd 253 252
|
||||
Store 229(ui) 254
|
||||
255: 6(int) Load 132(ic1D)
|
||||
257: 235(ptr) ImageTexelPointer 232(ii1D) 255 0
|
||||
257: 235(ptr) ImageTexelPointer 232(ii1D) 255 19
|
||||
258: 6(int) AtomicSMin 257 237 19 256
|
||||
259: 20(ptr) AccessChain 9(iv) 19
|
||||
260: 6(int) Load 259
|
||||
|
|
@ -370,13 +403,13 @@ Linked fragment stage:
|
|||
Store 262 261
|
||||
263: 29(ivec2) Load 142(ic2D)
|
||||
264: 18(int) Load 248(value)
|
||||
265: 250(ptr) ImageTexelPointer 245(ui2D) 263 0
|
||||
265: 250(ptr) ImageTexelPointer 245(ui2D) 263 19
|
||||
266: 18(int) AtomicUMin 265 237 19 264
|
||||
267: 18(int) Load 229(ui)
|
||||
268: 18(int) IAdd 267 266
|
||||
Store 229(ui) 268
|
||||
269: 6(int) Load 132(ic1D)
|
||||
271: 235(ptr) ImageTexelPointer 232(ii1D) 269 0
|
||||
271: 235(ptr) ImageTexelPointer 232(ii1D) 269 19
|
||||
272: 6(int) AtomicSMax 271 237 19 270
|
||||
273: 20(ptr) AccessChain 9(iv) 19
|
||||
274: 6(int) Load 273
|
||||
|
|
@ -385,13 +418,13 @@ Linked fragment stage:
|
|||
Store 276 275
|
||||
277: 29(ivec2) Load 142(ic2D)
|
||||
278: 18(int) Load 248(value)
|
||||
279: 250(ptr) ImageTexelPointer 245(ui2D) 277 0
|
||||
279: 250(ptr) ImageTexelPointer 245(ui2D) 277 19
|
||||
280: 18(int) AtomicUMax 279 237 19 278
|
||||
281: 18(int) Load 229(ui)
|
||||
282: 18(int) IAdd 281 280
|
||||
Store 229(ui) 282
|
||||
283: 6(int) Load 132(ic1D)
|
||||
285: 235(ptr) ImageTexelPointer 232(ii1D) 283 0
|
||||
285: 235(ptr) ImageTexelPointer 232(ii1D) 283 19
|
||||
286: 6(int) AtomicAnd 285 237 19 284
|
||||
287: 20(ptr) AccessChain 9(iv) 19
|
||||
288: 6(int) Load 287
|
||||
|
|
@ -400,13 +433,13 @@ Linked fragment stage:
|
|||
Store 290 289
|
||||
291: 29(ivec2) Load 142(ic2D)
|
||||
292: 18(int) Load 248(value)
|
||||
293: 250(ptr) ImageTexelPointer 245(ui2D) 291 0
|
||||
293: 250(ptr) ImageTexelPointer 245(ui2D) 291 19
|
||||
294: 18(int) AtomicAnd 293 237 19 292
|
||||
295: 18(int) Load 229(ui)
|
||||
296: 18(int) IAdd 295 294
|
||||
Store 229(ui) 296
|
||||
297: 6(int) Load 132(ic1D)
|
||||
299: 235(ptr) ImageTexelPointer 232(ii1D) 297 0
|
||||
299: 235(ptr) ImageTexelPointer 232(ii1D) 297 19
|
||||
300: 6(int) AtomicOr 299 237 19 298
|
||||
301: 20(ptr) AccessChain 9(iv) 19
|
||||
302: 6(int) Load 301
|
||||
|
|
@ -415,13 +448,13 @@ Linked fragment stage:
|
|||
Store 304 303
|
||||
305: 29(ivec2) Load 142(ic2D)
|
||||
306: 18(int) Load 248(value)
|
||||
307: 250(ptr) ImageTexelPointer 245(ui2D) 305 0
|
||||
307: 250(ptr) ImageTexelPointer 245(ui2D) 305 19
|
||||
308: 18(int) AtomicOr 307 237 19 306
|
||||
309: 18(int) Load 229(ui)
|
||||
310: 18(int) IAdd 309 308
|
||||
Store 229(ui) 310
|
||||
311: 6(int) Load 132(ic1D)
|
||||
313: 235(ptr) ImageTexelPointer 232(ii1D) 311 0
|
||||
313: 235(ptr) ImageTexelPointer 232(ii1D) 311 19
|
||||
314: 6(int) AtomicXor 313 237 19 312
|
||||
315: 20(ptr) AccessChain 9(iv) 19
|
||||
316: 6(int) Load 315
|
||||
|
|
@ -430,13 +463,13 @@ Linked fragment stage:
|
|||
Store 318 317
|
||||
319: 29(ivec2) Load 142(ic2D)
|
||||
320: 18(int) Load 248(value)
|
||||
321: 250(ptr) ImageTexelPointer 245(ui2D) 319 0
|
||||
321: 250(ptr) ImageTexelPointer 245(ui2D) 319 19
|
||||
322: 18(int) AtomicXor 321 237 19 320
|
||||
323: 18(int) Load 229(ui)
|
||||
324: 18(int) IAdd 323 322
|
||||
Store 229(ui) 324
|
||||
325: 6(int) Load 132(ic1D)
|
||||
327: 235(ptr) ImageTexelPointer 232(ii1D) 325 0
|
||||
327: 235(ptr) ImageTexelPointer 232(ii1D) 325 19
|
||||
328: 6(int) AtomicExchange 327 237 19 326
|
||||
329: 20(ptr) AccessChain 9(iv) 19
|
||||
330: 6(int) Load 329
|
||||
|
|
@ -445,13 +478,13 @@ Linked fragment stage:
|
|||
Store 332 331
|
||||
333: 29(ivec2) Load 142(ic2D)
|
||||
334: 18(int) Load 248(value)
|
||||
335: 250(ptr) ImageTexelPointer 245(ui2D) 333 0
|
||||
335: 250(ptr) ImageTexelPointer 245(ui2D) 333 19
|
||||
336: 18(int) AtomicExchange 335 237 19 334
|
||||
337: 18(int) Load 229(ui)
|
||||
338: 18(int) IAdd 337 336
|
||||
Store 229(ui) 338
|
||||
339: 6(int) Load 132(ic1D)
|
||||
342: 235(ptr) ImageTexelPointer 232(ii1D) 339 0
|
||||
342: 235(ptr) ImageTexelPointer 232(ii1D) 339 19
|
||||
343: 6(int) AtomicCompareExchange 342 237 19 19 341 340
|
||||
344: 20(ptr) AccessChain 9(iv) 19
|
||||
345: 6(int) Load 344
|
||||
|
|
@ -460,27 +493,31 @@ Linked fragment stage:
|
|||
Store 347 346
|
||||
348: 29(ivec2) Load 142(ic2D)
|
||||
350: 18(int) Load 248(value)
|
||||
351: 250(ptr) ImageTexelPointer 245(ui2D) 348 0
|
||||
351: 250(ptr) ImageTexelPointer 245(ui2D) 348 19
|
||||
352: 18(int) AtomicCompareExchange 351 237 19 19 350 349
|
||||
353: 18(int) Load 229(ui)
|
||||
354: 18(int) IAdd 353 352
|
||||
Store 229(ui) 354
|
||||
358: 18(int) Load 229(ui)
|
||||
359: 20(ptr) AccessChain 9(iv) 237
|
||||
360: 6(int) Load 359
|
||||
361: 18(int) Bitcast 360
|
||||
363: 362(bool) INotEqual 358 361
|
||||
SelectionMerge 365 None
|
||||
BranchConditional 363 364 367
|
||||
364: Label
|
||||
366: 125(fvec4) Load 127(v)
|
||||
Store 357 366
|
||||
Branch 365
|
||||
367: Label
|
||||
Store 357 129
|
||||
Branch 365
|
||||
365: Label
|
||||
368: 125(fvec4) Load 357
|
||||
Store 356(fragData) 368
|
||||
358: 355 Load 357(wo2D)
|
||||
359: 29(ivec2) Load 142(ic2D)
|
||||
360: 125(fvec4) Load 127(v)
|
||||
ImageWrite 358 359 360
|
||||
364: 18(int) Load 229(ui)
|
||||
365: 20(ptr) AccessChain 9(iv) 237
|
||||
366: 6(int) Load 365
|
||||
367: 18(int) Bitcast 366
|
||||
369: 368(bool) INotEqual 364 367
|
||||
SelectionMerge 371 None
|
||||
BranchConditional 369 370 373
|
||||
370: Label
|
||||
372: 125(fvec4) Load 127(v)
|
||||
Store 363 372
|
||||
Branch 371
|
||||
373: Label
|
||||
Store 363 129
|
||||
Branch 371
|
||||
371: Label
|
||||
374: 125(fvec4) Load 363
|
||||
Store 362(fragData) 374
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@ Linked vertex stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 270
|
||||
// Id's are bound by 268
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247 268 269
|
||||
EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 9 "iout"
|
||||
|
|
@ -44,10 +44,8 @@ Linked vertex stage:
|
|||
Name 173 "u3"
|
||||
Name 182 "i3"
|
||||
Name 247 "v4"
|
||||
Name 268 "gl_VertexID"
|
||||
Name 269 "gl_InstanceID"
|
||||
Decorate 268(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 269(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 261 RelaxedPrecision
|
||||
Decorate 265 RelaxedPrecision
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
|
|
@ -115,8 +113,6 @@ Linked vertex stage:
|
|||
182(i3): 181(ptr) Variable Input
|
||||
246: TypePointer Input 19(fvec4)
|
||||
247(v4): 246(ptr) Variable Input
|
||||
268(gl_VertexID): 155(ptr) Variable Input
|
||||
269(gl_InstanceID): 155(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
30(u2out): 29(ptr) Variable Function
|
||||
|
|
|
|||
|
|
@ -7,13 +7,14 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 101
|
||||
// Id's are bound by 100
|
||||
|
||||
Capability Shader
|
||||
Capability InterpolationFunction
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 13 24 33 41 99
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
EntryPoint Fragment 4 "main" 13 24 33 41 47 72 98
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "f4"
|
||||
|
|
@ -22,8 +23,10 @@ Linked fragment stage:
|
|||
Name 33 "if3"
|
||||
Name 41 "if4"
|
||||
Name 47 "samp"
|
||||
Name 73 "offset"
|
||||
Name 99 "fragColor"
|
||||
Name 72 "offset"
|
||||
Name 98 "fragColor"
|
||||
Decorate 47(samp) Flat
|
||||
Decorate 72(offset) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -45,12 +48,11 @@ Linked fragment stage:
|
|||
40: TypePointer Input 7(fvec4)
|
||||
41(if4): 40(ptr) Variable Input
|
||||
45: TypeInt 32 1
|
||||
46: TypePointer UniformConstant 45(int)
|
||||
47(samp): 46(ptr) Variable UniformConstant
|
||||
72: TypePointer UniformConstant 22(fvec2)
|
||||
73(offset): 72(ptr) Variable UniformConstant
|
||||
98: TypePointer Output 7(fvec4)
|
||||
99(fragColor): 98(ptr) Variable Output
|
||||
46: TypePointer Input 45(int)
|
||||
47(samp): 46(ptr) Variable Input
|
||||
72(offset): 23(ptr) Variable Input
|
||||
97: TypePointer Output 7(fvec4)
|
||||
98(fragColor): 97(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(f4): 8(ptr) Variable Function
|
||||
|
|
@ -107,35 +109,35 @@ Linked fragment stage:
|
|||
70: 7(fvec4) Load 9(f4)
|
||||
71: 7(fvec4) FAdd 70 69
|
||||
Store 9(f4) 71
|
||||
74: 22(fvec2) Load 73(offset)
|
||||
75: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 74
|
||||
76: 17(ptr) AccessChain 9(f4) 16
|
||||
77: 6(float) Load 76
|
||||
78: 6(float) FAdd 77 75
|
||||
79: 17(ptr) AccessChain 9(f4) 16
|
||||
Store 79 78
|
||||
80: 22(fvec2) Load 73(offset)
|
||||
81: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 80
|
||||
82: 7(fvec4) Load 9(f4)
|
||||
83: 22(fvec2) VectorShuffle 82 82 0 1
|
||||
84: 22(fvec2) FAdd 83 81
|
||||
85: 7(fvec4) Load 9(f4)
|
||||
86: 7(fvec4) VectorShuffle 85 84 4 5 2 3
|
||||
Store 9(f4) 86
|
||||
87: 22(fvec2) Load 73(offset)
|
||||
88: 31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 87
|
||||
89: 7(fvec4) Load 9(f4)
|
||||
90: 31(fvec3) VectorShuffle 89 89 0 1 2
|
||||
91: 31(fvec3) FAdd 90 88
|
||||
92: 7(fvec4) Load 9(f4)
|
||||
93: 7(fvec4) VectorShuffle 92 91 4 5 6 3
|
||||
Store 9(f4) 93
|
||||
94: 22(fvec2) Load 73(offset)
|
||||
95: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 94
|
||||
96: 7(fvec4) Load 9(f4)
|
||||
97: 7(fvec4) FAdd 96 95
|
||||
Store 9(f4) 97
|
||||
100: 7(fvec4) Load 9(f4)
|
||||
Store 99(fragColor) 100
|
||||
73: 22(fvec2) Load 72(offset)
|
||||
74: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 73
|
||||
75: 17(ptr) AccessChain 9(f4) 16
|
||||
76: 6(float) Load 75
|
||||
77: 6(float) FAdd 76 74
|
||||
78: 17(ptr) AccessChain 9(f4) 16
|
||||
Store 78 77
|
||||
79: 22(fvec2) Load 72(offset)
|
||||
80: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 79
|
||||
81: 7(fvec4) Load 9(f4)
|
||||
82: 22(fvec2) VectorShuffle 81 81 0 1
|
||||
83: 22(fvec2) FAdd 82 80
|
||||
84: 7(fvec4) Load 9(f4)
|
||||
85: 7(fvec4) VectorShuffle 84 83 4 5 2 3
|
||||
Store 9(f4) 85
|
||||
86: 22(fvec2) Load 72(offset)
|
||||
87: 31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 86
|
||||
88: 7(fvec4) Load 9(f4)
|
||||
89: 31(fvec3) VectorShuffle 88 88 0 1 2
|
||||
90: 31(fvec3) FAdd 89 87
|
||||
91: 7(fvec4) Load 9(f4)
|
||||
92: 7(fvec4) VectorShuffle 91 90 4 5 6 3
|
||||
Store 9(f4) 92
|
||||
93: 22(fvec2) Load 72(offset)
|
||||
94: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 93
|
||||
95: 7(fvec4) Load 9(f4)
|
||||
96: 7(fvec4) FAdd 95 94
|
||||
Store 9(f4) 96
|
||||
99: 7(fvec4) Load 9(f4)
|
||||
Store 98(fragColor) 99
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@ Linked vertex stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 70
|
||||
// Id's are bound by 67
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 63 66 68 69
|
||||
EntryPoint Vertex 4 "main" 63 66
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 14 "S"
|
||||
|
|
@ -92,8 +92,6 @@ Linked vertex stage:
|
|||
MemberName 64(S) 1 "b"
|
||||
MemberName 64(S) 2 "c"
|
||||
Name 66 "soutinv"
|
||||
Name 68 "gl_VertexID"
|
||||
Name 69 "gl_InstanceID"
|
||||
Decorate 13 ArrayStride 32
|
||||
MemberDecorate 14(S) 0 Offset 0
|
||||
MemberDecorate 14(S) 1 ColMajor
|
||||
|
|
@ -175,8 +173,6 @@ Linked vertex stage:
|
|||
MemberDecorate 64(S) 1 Invariant
|
||||
MemberDecorate 64(S) 2 Invariant
|
||||
Decorate 66(soutinv) Invariant
|
||||
Decorate 68(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 69(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
|
|
@ -240,9 +236,6 @@ Linked vertex stage:
|
|||
64(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
65: TypePointer Output 64(S)
|
||||
66(soutinv): 65(ptr) Variable Output
|
||||
67: TypePointer Input 6(int)
|
||||
68(gl_VertexID): 67(ptr) Variable Input
|
||||
69(gl_InstanceID): 67(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
Return
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 14 26
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 120
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 9 "t"
|
||||
Name 14 "v"
|
||||
|
|
@ -39,8 +39,8 @@ Linked fragment stage:
|
|||
28: 24(fvec4) ConstantComposite 27 27 27 27
|
||||
29: 10(int) Constant 3
|
||||
30: TypeArray 24(fvec4) 29
|
||||
31: TypePointer UniformConstant 30
|
||||
32(u): 31(ptr) Variable UniformConstant
|
||||
31: TypePointer Private 30
|
||||
32(u): 31(ptr) Variable Private
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(t): 8(ptr) Variable Function
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
spv.localAggregates.frag
|
||||
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
|
||||
WARNING: 0:5: varying deprecated in version 130; may be removed in future release
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
|
@ -8,14 +7,14 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 136
|
||||
// Id's are bound by 143
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 40 96 106
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
EntryPoint Fragment 4 "main" 18 43 93 101 111 138 142
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
Name 8 "s1"
|
||||
MemberName 8(s1) 0 "i"
|
||||
|
|
@ -26,26 +25,69 @@ Linked fragment stage:
|
|||
MemberName 10(s2) 2 "s1_1"
|
||||
MemberName 10(s2) 3 "bleh"
|
||||
Name 12 "locals2"
|
||||
Name 13 "s3"
|
||||
MemberName 13(s3) 0 "s2_1"
|
||||
MemberName 13(s3) 1 "i"
|
||||
MemberName 13(s3) 2 "f"
|
||||
MemberName 13(s3) 3 "s1_1"
|
||||
Name 15 "foo3"
|
||||
Name 36 "localFArray"
|
||||
Name 40 "coord"
|
||||
Name 49 "localIArray"
|
||||
Name 68 "x"
|
||||
Name 70 "localArray"
|
||||
Name 75 "i"
|
||||
Name 82 "a"
|
||||
Name 88 "condition"
|
||||
Name 96 "color"
|
||||
Name 106 "gl_FragColor"
|
||||
Name 126 "samp2D"
|
||||
Name 132 "foo"
|
||||
Name 133 "foo2"
|
||||
Name 135 "uFloatArray"
|
||||
Name 13 "s1"
|
||||
MemberName 13(s1) 0 "i"
|
||||
MemberName 13(s1) 1 "f"
|
||||
Name 14 "s2"
|
||||
MemberName 14(s2) 0 "i"
|
||||
MemberName 14(s2) 1 "f"
|
||||
MemberName 14(s2) 2 "s1_1"
|
||||
MemberName 14(s2) 3 "bleh"
|
||||
Name 15 "s1"
|
||||
MemberName 15(s1) 0 "i"
|
||||
MemberName 15(s1) 1 "f"
|
||||
Name 16 "s3"
|
||||
MemberName 16(s3) 0 "s2_1"
|
||||
MemberName 16(s3) 1 "i"
|
||||
MemberName 16(s3) 2 "f"
|
||||
MemberName 16(s3) 3 "s1_1"
|
||||
Name 18 "foo3"
|
||||
Name 39 "localFArray"
|
||||
Name 43 "coord"
|
||||
Name 52 "localIArray"
|
||||
Name 71 "x"
|
||||
Name 73 "localArray"
|
||||
Name 78 "i"
|
||||
Name 87 "a"
|
||||
Name 93 "condition"
|
||||
Name 101 "color"
|
||||
Name 111 "gl_FragColor"
|
||||
Name 131 "samp2D"
|
||||
Name 136 "s1"
|
||||
MemberName 136(s1) 0 "i"
|
||||
MemberName 136(s1) 1 "f"
|
||||
Name 138 "foo"
|
||||
Name 139 "s1"
|
||||
MemberName 139(s1) 0 "i"
|
||||
MemberName 139(s1) 1 "f"
|
||||
Name 140 "s2"
|
||||
MemberName 140(s2) 0 "i"
|
||||
MemberName 140(s2) 1 "f"
|
||||
MemberName 140(s2) 2 "s1_1"
|
||||
MemberName 140(s2) 3 "bleh"
|
||||
Name 142 "foo2"
|
||||
MemberDecorate 13(s1) 0 Flat
|
||||
MemberDecorate 13(s1) 1 Flat
|
||||
MemberDecorate 14(s2) 0 Flat
|
||||
MemberDecorate 14(s2) 1 Flat
|
||||
MemberDecorate 14(s2) 2 Flat
|
||||
MemberDecorate 14(s2) 3 Flat
|
||||
MemberDecorate 15(s1) 0 Flat
|
||||
MemberDecorate 15(s1) 1 Flat
|
||||
MemberDecorate 16(s3) 0 Flat
|
||||
MemberDecorate 16(s3) 1 Flat
|
||||
MemberDecorate 16(s3) 2 Flat
|
||||
MemberDecorate 16(s3) 3 Flat
|
||||
Decorate 93(condition) Flat
|
||||
Decorate 131(samp2D) DescriptorSet 0
|
||||
MemberDecorate 136(s1) 0 Flat
|
||||
MemberDecorate 136(s1) 1 Flat
|
||||
MemberDecorate 139(s1) 0 Flat
|
||||
MemberDecorate 139(s1) 1 Flat
|
||||
MemberDecorate 140(s2) 0 Flat
|
||||
MemberDecorate 140(s2) 1 Flat
|
||||
MemberDecorate 140(s2) 2 Flat
|
||||
MemberDecorate 140(s2) 3 Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
|
|
@ -54,162 +96,171 @@ Linked fragment stage:
|
|||
9: TypeVector 7(float) 4
|
||||
10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)
|
||||
11: TypePointer Function 10(s2)
|
||||
13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1)
|
||||
14: TypePointer UniformConstant 13(s3)
|
||||
15(foo3): 14(ptr) Variable UniformConstant
|
||||
16: 6(int) Constant 0
|
||||
17: TypePointer UniformConstant 10(s2)
|
||||
20: TypePointer UniformConstant 6(int)
|
||||
23: TypeBool
|
||||
27: 6(int) Constant 2
|
||||
28: 6(int) Constant 1
|
||||
29: 7(float) Constant 1065353216
|
||||
30: TypePointer Function 7(float)
|
||||
32: TypeInt 32 0
|
||||
33: 32(int) Constant 16
|
||||
34: TypeArray 7(float) 33
|
||||
35: TypePointer Function 34
|
||||
37: 6(int) Constant 4
|
||||
38: TypeVector 7(float) 2
|
||||
39: TypePointer Input 38(fvec2)
|
||||
40(coord): 39(ptr) Variable Input
|
||||
41: 32(int) Constant 0
|
||||
42: TypePointer Input 7(float)
|
||||
46: 32(int) Constant 8
|
||||
47: TypeArray 6(int) 46
|
||||
48: TypePointer Function 47
|
||||
52: TypePointer Function 6(int)
|
||||
69: 6(int) Constant 5
|
||||
80: 6(int) Constant 16
|
||||
84: 7(float) Constant 0
|
||||
88(condition): 20(ptr) Variable UniformConstant
|
||||
94: 6(int) Constant 3
|
||||
95: TypePointer Input 9(fvec4)
|
||||
96(color): 95(ptr) Variable Input
|
||||
98: TypePointer Function 9(fvec4)
|
||||
100: 32(int) Constant 1
|
||||
103: 32(int) Constant 2
|
||||
105: TypePointer Output 9(fvec4)
|
||||
106(gl_FragColor): 105(ptr) Variable Output
|
||||
123: TypeImage 7(float) 2D sampled format:Unknown
|
||||
124: TypeSampledImage 123
|
||||
125: TypePointer UniformConstant 124
|
||||
126(samp2D): 125(ptr) Variable UniformConstant
|
||||
131: TypePointer UniformConstant 8(s1)
|
||||
132(foo): 131(ptr) Variable UniformConstant
|
||||
133(foo2): 17(ptr) Variable UniformConstant
|
||||
134: TypePointer UniformConstant 34
|
||||
135(uFloatArray): 134(ptr) Variable UniformConstant
|
||||
13(s1): TypeStruct 6(int) 7(float)
|
||||
14(s2): TypeStruct 6(int) 7(float) 13(s1) 9(fvec4)
|
||||
15(s1): TypeStruct 6(int) 7(float)
|
||||
16(s3): TypeStruct 14(s2) 6(int) 7(float) 15(s1)
|
||||
17: TypePointer Input 16(s3)
|
||||
18(foo3): 17(ptr) Variable Input
|
||||
19: 6(int) Constant 0
|
||||
20: TypePointer Input 14(s2)
|
||||
23: TypePointer Input 6(int)
|
||||
26: TypeBool
|
||||
30: 6(int) Constant 2
|
||||
31: 6(int) Constant 1
|
||||
32: 7(float) Constant 1065353216
|
||||
33: TypePointer Function 7(float)
|
||||
35: TypeInt 32 0
|
||||
36: 35(int) Constant 16
|
||||
37: TypeArray 7(float) 36
|
||||
38: TypePointer Function 37
|
||||
40: 6(int) Constant 4
|
||||
41: TypeVector 7(float) 2
|
||||
42: TypePointer Input 41(fvec2)
|
||||
43(coord): 42(ptr) Variable Input
|
||||
44: 35(int) Constant 0
|
||||
45: TypePointer Input 7(float)
|
||||
49: 35(int) Constant 8
|
||||
50: TypeArray 6(int) 49
|
||||
51: TypePointer Function 50
|
||||
55: TypePointer Function 6(int)
|
||||
72: 6(int) Constant 5
|
||||
85: 6(int) Constant 16
|
||||
89: 7(float) Constant 0
|
||||
93(condition): 23(ptr) Variable Input
|
||||
99: 6(int) Constant 3
|
||||
100: TypePointer Input 9(fvec4)
|
||||
101(color): 100(ptr) Variable Input
|
||||
103: TypePointer Function 9(fvec4)
|
||||
105: 35(int) Constant 1
|
||||
108: 35(int) Constant 2
|
||||
110: TypePointer Output 9(fvec4)
|
||||
111(gl_FragColor): 110(ptr) Variable Output
|
||||
128: TypeImage 7(float) 2D sampled format:Unknown
|
||||
129: TypeSampledImage 128
|
||||
130: TypePointer UniformConstant 129
|
||||
131(samp2D): 130(ptr) Variable UniformConstant
|
||||
136(s1): TypeStruct 6(int) 7(float)
|
||||
137: TypePointer Input 136(s1)
|
||||
138(foo): 137(ptr) Variable Input
|
||||
139(s1): TypeStruct 6(int) 7(float)
|
||||
140(s2): TypeStruct 6(int) 7(float) 139(s1) 9(fvec4)
|
||||
141: TypePointer Input 140(s2)
|
||||
142(foo2): 141(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12(locals2): 11(ptr) Variable Function
|
||||
36(localFArray): 35(ptr) Variable Function
|
||||
49(localIArray): 48(ptr) Variable Function
|
||||
68(x): 52(ptr) Variable Function
|
||||
70(localArray): 35(ptr) Variable Function
|
||||
75(i): 52(ptr) Variable Function
|
||||
82(a): 35(ptr) Variable Function
|
||||
18: 17(ptr) AccessChain 15(foo3) 16
|
||||
19: 10(s2) Load 18
|
||||
Store 12(locals2) 19
|
||||
21: 20(ptr) AccessChain 15(foo3) 16 16
|
||||
22: 6(int) Load 21
|
||||
24: 23(bool) SGreaterThan 22 16
|
||||
SelectionMerge 26 None
|
||||
BranchConditional 24 25 54
|
||||
25: Label
|
||||
31: 30(ptr) AccessChain 12(locals2) 27 28
|
||||
Store 31 29
|
||||
43: 42(ptr) AccessChain 40(coord) 41
|
||||
44: 7(float) Load 43
|
||||
45: 30(ptr) AccessChain 36(localFArray) 37
|
||||
Store 45 44
|
||||
50: 20(ptr) AccessChain 15(foo3) 16 16
|
||||
51: 6(int) Load 50
|
||||
53: 52(ptr) AccessChain 49(localIArray) 27
|
||||
Store 53 51
|
||||
Branch 26
|
||||
54: Label
|
||||
55: 42(ptr) AccessChain 40(coord) 41
|
||||
56: 7(float) Load 55
|
||||
57: 30(ptr) AccessChain 12(locals2) 27 28
|
||||
Store 57 56
|
||||
58: 30(ptr) AccessChain 36(localFArray) 37
|
||||
Store 58 29
|
||||
59: 52(ptr) AccessChain 49(localIArray) 27
|
||||
Store 59 16
|
||||
Branch 26
|
||||
26: Label
|
||||
60: 52(ptr) AccessChain 49(localIArray) 27
|
||||
61: 6(int) Load 60
|
||||
62: 23(bool) IEqual 61 16
|
||||
SelectionMerge 64 None
|
||||
BranchConditional 62 63 64
|
||||
63: Label
|
||||
65: 30(ptr) AccessChain 36(localFArray) 37
|
||||
66: 7(float) Load 65
|
||||
67: 7(float) FAdd 66 29
|
||||
Store 65 67
|
||||
Branch 64
|
||||
64: Label
|
||||
Store 68(x) 69
|
||||
71: 6(int) Load 68(x)
|
||||
72: 42(ptr) AccessChain 40(coord) 41
|
||||
73: 7(float) Load 72
|
||||
74: 30(ptr) AccessChain 70(localArray) 71
|
||||
Store 74 73
|
||||
Store 75(i) 16
|
||||
Branch 76
|
||||
76: Label
|
||||
79: 6(int) Load 75(i)
|
||||
81: 23(bool) SLessThan 79 80
|
||||
LoopMerge 77 76 None
|
||||
BranchConditional 81 78 77
|
||||
78: Label
|
||||
83: 6(int) Load 75(i)
|
||||
85: 30(ptr) AccessChain 82(a) 83
|
||||
Store 85 84
|
||||
86: 6(int) Load 75(i)
|
||||
87: 6(int) IAdd 86 28
|
||||
Store 75(i) 87
|
||||
Branch 76
|
||||
77: Label
|
||||
89: 6(int) Load 88(condition)
|
||||
90: 23(bool) IEqual 89 28
|
||||
SelectionMerge 92 None
|
||||
BranchConditional 90 91 92
|
||||
91: Label
|
||||
93: 34 Load 70(localArray)
|
||||
Store 82(a) 93
|
||||
Branch 92
|
||||
92: Label
|
||||
97: 9(fvec4) Load 96(color)
|
||||
99: 98(ptr) AccessChain 12(locals2) 94
|
||||
Store 99 97
|
||||
101: 42(ptr) AccessChain 40(coord) 100
|
||||
102: 7(float) Load 101
|
||||
104: 30(ptr) AccessChain 12(locals2) 94 103
|
||||
39(localFArray): 38(ptr) Variable Function
|
||||
52(localIArray): 51(ptr) Variable Function
|
||||
71(x): 55(ptr) Variable Function
|
||||
73(localArray): 38(ptr) Variable Function
|
||||
78(i): 55(ptr) Variable Function
|
||||
87(a): 38(ptr) Variable Function
|
||||
21: 20(ptr) AccessChain 18(foo3) 19
|
||||
22: 14(s2) Load 21
|
||||
Store 12(locals2) 22
|
||||
24: 23(ptr) AccessChain 18(foo3) 19 19
|
||||
25: 6(int) Load 24
|
||||
27: 26(bool) SGreaterThan 25 19
|
||||
SelectionMerge 29 None
|
||||
BranchConditional 27 28 57
|
||||
28: Label
|
||||
34: 33(ptr) AccessChain 12(locals2) 30 31
|
||||
Store 34 32
|
||||
46: 45(ptr) AccessChain 43(coord) 44
|
||||
47: 7(float) Load 46
|
||||
48: 33(ptr) AccessChain 39(localFArray) 40
|
||||
Store 48 47
|
||||
53: 23(ptr) AccessChain 18(foo3) 19 19
|
||||
54: 6(int) Load 53
|
||||
56: 55(ptr) AccessChain 52(localIArray) 30
|
||||
Store 56 54
|
||||
Branch 29
|
||||
57: Label
|
||||
58: 45(ptr) AccessChain 43(coord) 44
|
||||
59: 7(float) Load 58
|
||||
60: 33(ptr) AccessChain 12(locals2) 30 31
|
||||
Store 60 59
|
||||
61: 33(ptr) AccessChain 39(localFArray) 40
|
||||
Store 61 32
|
||||
62: 55(ptr) AccessChain 52(localIArray) 30
|
||||
Store 62 19
|
||||
Branch 29
|
||||
29: Label
|
||||
63: 55(ptr) AccessChain 52(localIArray) 30
|
||||
64: 6(int) Load 63
|
||||
65: 26(bool) IEqual 64 19
|
||||
SelectionMerge 67 None
|
||||
BranchConditional 65 66 67
|
||||
66: Label
|
||||
68: 33(ptr) AccessChain 39(localFArray) 40
|
||||
69: 7(float) Load 68
|
||||
70: 7(float) FAdd 69 32
|
||||
Store 68 70
|
||||
Branch 67
|
||||
67: Label
|
||||
Store 71(x) 72
|
||||
74: 6(int) Load 71(x)
|
||||
75: 45(ptr) AccessChain 43(coord) 44
|
||||
76: 7(float) Load 75
|
||||
77: 33(ptr) AccessChain 73(localArray) 74
|
||||
Store 77 76
|
||||
Store 78(i) 19
|
||||
Branch 79
|
||||
79: Label
|
||||
LoopMerge 81 82 None
|
||||
Branch 83
|
||||
83: Label
|
||||
84: 6(int) Load 78(i)
|
||||
86: 26(bool) SLessThan 84 85
|
||||
BranchConditional 86 80 81
|
||||
80: Label
|
||||
88: 6(int) Load 78(i)
|
||||
90: 33(ptr) AccessChain 87(a) 88
|
||||
Store 90 89
|
||||
Branch 82
|
||||
82: Label
|
||||
91: 6(int) Load 78(i)
|
||||
92: 6(int) IAdd 91 31
|
||||
Store 78(i) 92
|
||||
Branch 79
|
||||
81: Label
|
||||
94: 6(int) Load 93(condition)
|
||||
95: 26(bool) IEqual 94 31
|
||||
SelectionMerge 97 None
|
||||
BranchConditional 95 96 97
|
||||
96: Label
|
||||
98: 37 Load 73(localArray)
|
||||
Store 87(a) 98
|
||||
Branch 97
|
||||
97: Label
|
||||
102: 9(fvec4) Load 101(color)
|
||||
104: 103(ptr) AccessChain 12(locals2) 99
|
||||
Store 104 102
|
||||
107: 98(ptr) AccessChain 12(locals2) 94
|
||||
108: 9(fvec4) Load 107
|
||||
109: 30(ptr) AccessChain 36(localFArray) 37
|
||||
110: 7(float) Load 109
|
||||
111: 30(ptr) AccessChain 12(locals2) 27 28
|
||||
112: 7(float) Load 111
|
||||
113: 7(float) FAdd 110 112
|
||||
114: 6(int) Load 68(x)
|
||||
115: 30(ptr) AccessChain 70(localArray) 114
|
||||
116: 7(float) Load 115
|
||||
117: 7(float) FAdd 113 116
|
||||
118: 6(int) Load 68(x)
|
||||
119: 30(ptr) AccessChain 82(a) 118
|
||||
120: 7(float) Load 119
|
||||
121: 7(float) FAdd 117 120
|
||||
122: 9(fvec4) VectorTimesScalar 108 121
|
||||
127: 124 Load 126(samp2D)
|
||||
128: 38(fvec2) Load 40(coord)
|
||||
129: 9(fvec4) ImageSampleImplicitLod 127 128
|
||||
130: 9(fvec4) FMul 122 129
|
||||
Store 106(gl_FragColor) 130
|
||||
106: 45(ptr) AccessChain 43(coord) 105
|
||||
107: 7(float) Load 106
|
||||
109: 33(ptr) AccessChain 12(locals2) 99 108
|
||||
Store 109 107
|
||||
112: 103(ptr) AccessChain 12(locals2) 99
|
||||
113: 9(fvec4) Load 112
|
||||
114: 33(ptr) AccessChain 39(localFArray) 40
|
||||
115: 7(float) Load 114
|
||||
116: 33(ptr) AccessChain 12(locals2) 30 31
|
||||
117: 7(float) Load 116
|
||||
118: 7(float) FAdd 115 117
|
||||
119: 6(int) Load 71(x)
|
||||
120: 33(ptr) AccessChain 73(localArray) 119
|
||||
121: 7(float) Load 120
|
||||
122: 7(float) FAdd 118 121
|
||||
123: 6(int) Load 71(x)
|
||||
124: 33(ptr) AccessChain 87(a) 123
|
||||
125: 7(float) Load 124
|
||||
126: 7(float) FAdd 122 125
|
||||
127: 9(fvec4) VectorTimesScalar 113 126
|
||||
132: 129 Load 131(samp2D)
|
||||
133: 41(fvec2) Load 43(coord)
|
||||
134: 9(fvec4) ImageSampleImplicitLod 132 133
|
||||
135: 9(fvec4) FMul 127 134
|
||||
Store 111(gl_FragColor) 135
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,70 +1,40 @@
|
|||
spv.loopsArtificial.frag
|
||||
WARNING: 0:14: varying deprecated in version 130; may be removed in future release
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 191
|
||||
// Id's are bound by 158
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11 144
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
EntryPoint Fragment 4 "main" 11 17 27 80 140 142 143 144 145 146 147 148 149 150 151 152 153 154 157
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 9 "color"
|
||||
Name 11 "BaseColor"
|
||||
Name 17 "bigColor4"
|
||||
Name 27 "d4"
|
||||
Name 32 "bigColor4"
|
||||
Name 84 "d13"
|
||||
Name 144 "gl_FragColor"
|
||||
Name 146 "bigColor"
|
||||
Name 147 "bigColor1_1"
|
||||
Name 148 "bigColor1_2"
|
||||
Name 149 "bigColor1_3"
|
||||
Name 150 "bigColor2"
|
||||
Name 151 "bigColor3"
|
||||
Name 152 "bigColor5"
|
||||
Name 153 "bigColor6"
|
||||
Name 154 "bigColor7"
|
||||
Name 155 "bigColor8"
|
||||
Name 156 "d"
|
||||
Name 157 "d2"
|
||||
Name 158 "d3"
|
||||
Name 159 "d5"
|
||||
Name 160 "d6"
|
||||
Name 161 "d7"
|
||||
Name 162 "d8"
|
||||
Name 163 "d9"
|
||||
Name 164 "d10"
|
||||
Name 165 "d11"
|
||||
Name 166 "d12"
|
||||
Name 167 "d14"
|
||||
Name 168 "d15"
|
||||
Name 169 "d16"
|
||||
Name 170 "d17"
|
||||
Name 171 "d18"
|
||||
Name 172 "d19"
|
||||
Name 173 "d20"
|
||||
Name 174 "d21"
|
||||
Name 175 "d22"
|
||||
Name 176 "d23"
|
||||
Name 177 "d24"
|
||||
Name 178 "d25"
|
||||
Name 179 "d26"
|
||||
Name 180 "d27"
|
||||
Name 181 "d28"
|
||||
Name 182 "d29"
|
||||
Name 183 "d30"
|
||||
Name 184 "d31"
|
||||
Name 185 "d32"
|
||||
Name 186 "d33"
|
||||
Name 187 "d34"
|
||||
Name 190 "Count"
|
||||
Name 80 "d13"
|
||||
Name 140 "gl_FragColor"
|
||||
Name 142 "bigColor"
|
||||
Name 143 "bigColor1_1"
|
||||
Name 144 "bigColor1_2"
|
||||
Name 145 "bigColor1_3"
|
||||
Name 146 "bigColor2"
|
||||
Name 147 "bigColor3"
|
||||
Name 148 "bigColor5"
|
||||
Name 149 "bigColor6"
|
||||
Name 150 "bigColor7"
|
||||
Name 151 "bigColor8"
|
||||
Name 152 "d"
|
||||
Name 153 "d2"
|
||||
Name 154 "d3"
|
||||
Name 157 "Count"
|
||||
Decorate 157(Count) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -72,69 +42,37 @@ Linked fragment stage:
|
|||
8: TypePointer Function 7(fvec4)
|
||||
10: TypePointer Input 7(fvec4)
|
||||
11(BaseColor): 10(ptr) Variable Input
|
||||
17: TypeBool
|
||||
18: 17(bool) ConstantTrue
|
||||
17(bigColor4): 10(ptr) Variable Input
|
||||
21: TypeInt 32 0
|
||||
22: 21(int) Constant 2
|
||||
22: 21(int) Constant 0
|
||||
23: TypePointer Function 6(float)
|
||||
26: TypePointer UniformConstant 6(float)
|
||||
27(d4): 26(ptr) Variable UniformConstant
|
||||
31: TypePointer UniformConstant 7(fvec4)
|
||||
32(bigColor4): 31(ptr) Variable UniformConstant
|
||||
36: 21(int) Constant 0
|
||||
43: 6(float) Constant 1073741824
|
||||
56: 6(float) Constant 1065353216
|
||||
58: 17(bool) ConstantFalse
|
||||
60: 21(int) Constant 1
|
||||
81: 21(int) Constant 3
|
||||
84(d13): 26(ptr) Variable UniformConstant
|
||||
143: TypePointer Output 7(fvec4)
|
||||
144(gl_FragColor): 143(ptr) Variable Output
|
||||
146(bigColor): 31(ptr) Variable UniformConstant
|
||||
147(bigColor1_1): 31(ptr) Variable UniformConstant
|
||||
148(bigColor1_2): 31(ptr) Variable UniformConstant
|
||||
149(bigColor1_3): 31(ptr) Variable UniformConstant
|
||||
150(bigColor2): 31(ptr) Variable UniformConstant
|
||||
151(bigColor3): 31(ptr) Variable UniformConstant
|
||||
152(bigColor5): 31(ptr) Variable UniformConstant
|
||||
153(bigColor6): 31(ptr) Variable UniformConstant
|
||||
154(bigColor7): 31(ptr) Variable UniformConstant
|
||||
155(bigColor8): 31(ptr) Variable UniformConstant
|
||||
156(d): 26(ptr) Variable UniformConstant
|
||||
157(d2): 26(ptr) Variable UniformConstant
|
||||
158(d3): 26(ptr) Variable UniformConstant
|
||||
159(d5): 26(ptr) Variable UniformConstant
|
||||
160(d6): 26(ptr) Variable UniformConstant
|
||||
161(d7): 26(ptr) Variable UniformConstant
|
||||
162(d8): 26(ptr) Variable UniformConstant
|
||||
163(d9): 26(ptr) Variable UniformConstant
|
||||
164(d10): 26(ptr) Variable UniformConstant
|
||||
165(d11): 26(ptr) Variable UniformConstant
|
||||
166(d12): 26(ptr) Variable UniformConstant
|
||||
167(d14): 26(ptr) Variable UniformConstant
|
||||
168(d15): 26(ptr) Variable UniformConstant
|
||||
169(d16): 26(ptr) Variable UniformConstant
|
||||
170(d17): 26(ptr) Variable UniformConstant
|
||||
171(d18): 26(ptr) Variable UniformConstant
|
||||
172(d19): 26(ptr) Variable UniformConstant
|
||||
173(d20): 26(ptr) Variable UniformConstant
|
||||
174(d21): 26(ptr) Variable UniformConstant
|
||||
175(d22): 26(ptr) Variable UniformConstant
|
||||
176(d23): 26(ptr) Variable UniformConstant
|
||||
177(d24): 26(ptr) Variable UniformConstant
|
||||
178(d25): 26(ptr) Variable UniformConstant
|
||||
179(d26): 26(ptr) Variable UniformConstant
|
||||
180(d27): 26(ptr) Variable UniformConstant
|
||||
181(d28): 26(ptr) Variable UniformConstant
|
||||
182(d29): 26(ptr) Variable UniformConstant
|
||||
183(d30): 26(ptr) Variable UniformConstant
|
||||
184(d31): 26(ptr) Variable UniformConstant
|
||||
185(d32): 26(ptr) Variable UniformConstant
|
||||
186(d33): 26(ptr) Variable UniformConstant
|
||||
187(d34): 26(ptr) Variable UniformConstant
|
||||
188: TypeInt 32 1
|
||||
189: TypePointer UniformConstant 188(int)
|
||||
190(Count): 189(ptr) Variable UniformConstant
|
||||
26: TypePointer Input 6(float)
|
||||
27(d4): 26(ptr) Variable Input
|
||||
29: TypeBool
|
||||
33: 6(float) Constant 1073741824
|
||||
34: 21(int) Constant 2
|
||||
47: 6(float) Constant 1065353216
|
||||
50: 21(int) Constant 1
|
||||
77: 21(int) Constant 3
|
||||
80(d13): 26(ptr) Variable Input
|
||||
139: TypePointer Output 7(fvec4)
|
||||
140(gl_FragColor): 139(ptr) Variable Output
|
||||
142(bigColor): 10(ptr) Variable Input
|
||||
143(bigColor1_1): 10(ptr) Variable Input
|
||||
144(bigColor1_2): 10(ptr) Variable Input
|
||||
145(bigColor1_3): 10(ptr) Variable Input
|
||||
146(bigColor2): 10(ptr) Variable Input
|
||||
147(bigColor3): 10(ptr) Variable Input
|
||||
148(bigColor5): 10(ptr) Variable Input
|
||||
149(bigColor6): 10(ptr) Variable Input
|
||||
150(bigColor7): 10(ptr) Variable Input
|
||||
151(bigColor8): 10(ptr) Variable Input
|
||||
152(d): 26(ptr) Variable Input
|
||||
153(d2): 26(ptr) Variable Input
|
||||
154(d3): 26(ptr) Variable Input
|
||||
155: TypeInt 32 1
|
||||
156: TypePointer Input 155(int)
|
||||
157(Count): 156(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(color): 8(ptr) Variable Function
|
||||
|
|
@ -142,167 +80,164 @@ Linked fragment stage:
|
|||
Store 9(color) 12
|
||||
Branch 13
|
||||
13: Label
|
||||
16: 17(bool) Phi 18 5 58 52 58 66
|
||||
LoopMerge 14 13 None
|
||||
Branch 19
|
||||
19: Label
|
||||
SelectionMerge 15 None
|
||||
BranchConditional 16 15 20
|
||||
20: Label
|
||||
24: 23(ptr) AccessChain 9(color) 22
|
||||
25: 6(float) Load 24
|
||||
28: 6(float) Load 27(d4)
|
||||
29: 17(bool) FOrdLessThan 25 28
|
||||
SelectionMerge 30 None
|
||||
BranchConditional 29 30 14
|
||||
30: Label
|
||||
Branch 15
|
||||
15: Label
|
||||
33: 7(fvec4) Load 32(bigColor4)
|
||||
34: 7(fvec4) Load 9(color)
|
||||
35: 7(fvec4) FAdd 34 33
|
||||
Store 9(color) 35
|
||||
37: 23(ptr) AccessChain 9(color) 36
|
||||
38: 6(float) Load 37
|
||||
39: 6(float) Load 27(d4)
|
||||
40: 17(bool) FOrdLessThan 38 39
|
||||
SelectionMerge 42 None
|
||||
BranchConditional 40 41 42
|
||||
41: Label
|
||||
44: 23(ptr) AccessChain 9(color) 22
|
||||
45: 6(float) Load 44
|
||||
46: 6(float) FAdd 45 43
|
||||
47: 23(ptr) AccessChain 9(color) 22
|
||||
Store 47 46
|
||||
48: 23(ptr) AccessChain 9(color) 22
|
||||
49: 6(float) Load 48
|
||||
50: 6(float) Load 27(d4)
|
||||
51: 17(bool) FOrdLessThan 49 50
|
||||
SelectionMerge 53 None
|
||||
BranchConditional 51 52 53
|
||||
52: Label
|
||||
54: 23(ptr) AccessChain 9(color) 36
|
||||
55: 6(float) Load 54
|
||||
57: 6(float) FAdd 55 56
|
||||
Store 54 57
|
||||
Branch 13
|
||||
53: Label
|
||||
Branch 42
|
||||
42: Label
|
||||
61: 23(ptr) AccessChain 9(color) 60
|
||||
62: 6(float) Load 61
|
||||
63: 6(float) Load 27(d4)
|
||||
64: 17(bool) FOrdLessThan 62 63
|
||||
SelectionMerge 66 None
|
||||
BranchConditional 64 65 72
|
||||
65: Label
|
||||
67: 6(float) Load 27(d4)
|
||||
68: 23(ptr) AccessChain 9(color) 60
|
||||
69: 6(float) Load 68
|
||||
70: 6(float) FAdd 69 67
|
||||
71: 23(ptr) AccessChain 9(color) 60
|
||||
Store 71 70
|
||||
Branch 66
|
||||
72: Label
|
||||
73: 6(float) Load 27(d4)
|
||||
74: 23(ptr) AccessChain 9(color) 36
|
||||
75: 6(float) Load 74
|
||||
76: 6(float) FAdd 75 73
|
||||
77: 23(ptr) AccessChain 9(color) 36
|
||||
Store 77 76
|
||||
Branch 66
|
||||
66: Label
|
||||
Branch 13
|
||||
LoopMerge 15 16 None
|
||||
Branch 14
|
||||
14: Label
|
||||
Branch 78
|
||||
78: Label
|
||||
82: 23(ptr) AccessChain 9(color) 81
|
||||
83: 6(float) Load 82
|
||||
85: 6(float) Load 84(d13)
|
||||
86: 17(bool) FOrdLessThan 83 85
|
||||
LoopMerge 79 78 None
|
||||
BranchConditional 86 80 79
|
||||
80: Label
|
||||
87: 23(ptr) AccessChain 9(color) 22
|
||||
88: 6(float) Load 87
|
||||
89: 6(float) Load 84(d13)
|
||||
90: 17(bool) FOrdLessThan 88 89
|
||||
SelectionMerge 92 None
|
||||
BranchConditional 90 91 96
|
||||
91: Label
|
||||
18: 7(fvec4) Load 17(bigColor4)
|
||||
19: 7(fvec4) Load 9(color)
|
||||
20: 7(fvec4) FAdd 19 18
|
||||
Store 9(color) 20
|
||||
24: 23(ptr) AccessChain 9(color) 22
|
||||
25: 6(float) Load 24
|
||||
28: 6(float) Load 27(d4)
|
||||
30: 29(bool) FOrdLessThan 25 28
|
||||
SelectionMerge 32 None
|
||||
BranchConditional 30 31 32
|
||||
31: Label
|
||||
35: 23(ptr) AccessChain 9(color) 34
|
||||
36: 6(float) Load 35
|
||||
37: 6(float) FAdd 36 33
|
||||
38: 23(ptr) AccessChain 9(color) 34
|
||||
Store 38 37
|
||||
39: 23(ptr) AccessChain 9(color) 34
|
||||
40: 6(float) Load 39
|
||||
41: 6(float) Load 27(d4)
|
||||
42: 29(bool) FOrdLessThan 40 41
|
||||
SelectionMerge 44 None
|
||||
BranchConditional 42 43 44
|
||||
43: Label
|
||||
45: 23(ptr) AccessChain 9(color) 22
|
||||
46: 6(float) Load 45
|
||||
48: 6(float) FAdd 46 47
|
||||
Store 45 48
|
||||
Branch 16
|
||||
44: Label
|
||||
Branch 32
|
||||
32: Label
|
||||
51: 23(ptr) AccessChain 9(color) 50
|
||||
52: 6(float) Load 51
|
||||
53: 6(float) Load 27(d4)
|
||||
54: 29(bool) FOrdLessThan 52 53
|
||||
SelectionMerge 56 None
|
||||
BranchConditional 54 55 62
|
||||
55: Label
|
||||
57: 6(float) Load 27(d4)
|
||||
58: 23(ptr) AccessChain 9(color) 50
|
||||
59: 6(float) Load 58
|
||||
60: 6(float) FAdd 59 57
|
||||
61: 23(ptr) AccessChain 9(color) 50
|
||||
Store 61 60
|
||||
Branch 56
|
||||
62: Label
|
||||
63: 6(float) Load 27(d4)
|
||||
64: 23(ptr) AccessChain 9(color) 22
|
||||
65: 6(float) Load 64
|
||||
66: 6(float) FAdd 65 63
|
||||
67: 23(ptr) AccessChain 9(color) 22
|
||||
Store 67 66
|
||||
Branch 56
|
||||
56: Label
|
||||
Branch 16
|
||||
16: Label
|
||||
68: 23(ptr) AccessChain 9(color) 34
|
||||
69: 6(float) Load 68
|
||||
70: 6(float) Load 27(d4)
|
||||
71: 29(bool) FOrdLessThan 69 70
|
||||
BranchConditional 71 13 15
|
||||
15: Label
|
||||
Branch 72
|
||||
72: Label
|
||||
LoopMerge 74 75 None
|
||||
Branch 76
|
||||
76: Label
|
||||
78: 23(ptr) AccessChain 9(color) 77
|
||||
79: 6(float) Load 78
|
||||
81: 6(float) Load 80(d13)
|
||||
82: 29(bool) FOrdLessThan 79 81
|
||||
BranchConditional 82 73 74
|
||||
73: Label
|
||||
83: 23(ptr) AccessChain 9(color) 34
|
||||
84: 6(float) Load 83
|
||||
85: 6(float) Load 80(d13)
|
||||
86: 29(bool) FOrdLessThan 84 85
|
||||
SelectionMerge 88 None
|
||||
BranchConditional 86 87 92
|
||||
87: Label
|
||||
89: 7(fvec4) Load 9(color)
|
||||
90: 7(fvec4) CompositeConstruct 47 47 47 47
|
||||
91: 7(fvec4) FAdd 89 90
|
||||
Store 9(color) 91
|
||||
Branch 88
|
||||
92: Label
|
||||
93: 7(fvec4) Load 9(color)
|
||||
94: 7(fvec4) CompositeConstruct 56 56 56 56
|
||||
95: 7(fvec4) FAdd 93 94
|
||||
94: 7(fvec4) CompositeConstruct 47 47 47 47
|
||||
95: 7(fvec4) FSub 93 94
|
||||
Store 9(color) 95
|
||||
Branch 92
|
||||
96: Label
|
||||
97: 7(fvec4) Load 9(color)
|
||||
98: 7(fvec4) CompositeConstruct 56 56 56 56
|
||||
99: 7(fvec4) FSub 97 98
|
||||
Store 9(color) 99
|
||||
Branch 92
|
||||
92: Label
|
||||
100: 7(fvec4) Load 32(bigColor4)
|
||||
101: 7(fvec4) Load 9(color)
|
||||
102: 7(fvec4) FAdd 101 100
|
||||
Store 9(color) 102
|
||||
103: 23(ptr) AccessChain 9(color) 36
|
||||
104: 6(float) Load 103
|
||||
105: 6(float) Load 27(d4)
|
||||
106: 17(bool) FOrdLessThan 104 105
|
||||
SelectionMerge 108 None
|
||||
BranchConditional 106 107 108
|
||||
107: Label
|
||||
109: 23(ptr) AccessChain 9(color) 22
|
||||
Branch 88
|
||||
88: Label
|
||||
96: 7(fvec4) Load 17(bigColor4)
|
||||
97: 7(fvec4) Load 9(color)
|
||||
98: 7(fvec4) FAdd 97 96
|
||||
Store 9(color) 98
|
||||
99: 23(ptr) AccessChain 9(color) 22
|
||||
100: 6(float) Load 99
|
||||
101: 6(float) Load 27(d4)
|
||||
102: 29(bool) FOrdLessThan 100 101
|
||||
SelectionMerge 104 None
|
||||
BranchConditional 102 103 104
|
||||
103: Label
|
||||
105: 23(ptr) AccessChain 9(color) 34
|
||||
106: 6(float) Load 105
|
||||
107: 6(float) FAdd 106 33
|
||||
108: 23(ptr) AccessChain 9(color) 34
|
||||
Store 108 107
|
||||
109: 23(ptr) AccessChain 9(color) 34
|
||||
110: 6(float) Load 109
|
||||
111: 6(float) FAdd 110 43
|
||||
112: 23(ptr) AccessChain 9(color) 22
|
||||
Store 112 111
|
||||
113: 23(ptr) AccessChain 9(color) 22
|
||||
114: 6(float) Load 113
|
||||
115: 6(float) Load 27(d4)
|
||||
116: 17(bool) FOrdLessThan 114 115
|
||||
SelectionMerge 118 None
|
||||
BranchConditional 116 117 118
|
||||
117: Label
|
||||
119: 23(ptr) AccessChain 9(color) 36
|
||||
120: 6(float) Load 119
|
||||
121: 6(float) FAdd 120 56
|
||||
Store 119 121
|
||||
Branch 78
|
||||
118: Label
|
||||
Branch 108
|
||||
108: Label
|
||||
123: 23(ptr) AccessChain 9(color) 60
|
||||
124: 6(float) Load 123
|
||||
125: 6(float) Load 27(d4)
|
||||
126: 17(bool) FOrdLessThan 124 125
|
||||
SelectionMerge 128 None
|
||||
BranchConditional 126 127 134
|
||||
127: Label
|
||||
129: 6(float) Load 27(d4)
|
||||
130: 23(ptr) AccessChain 9(color) 60
|
||||
131: 6(float) Load 130
|
||||
132: 6(float) FAdd 131 129
|
||||
133: 23(ptr) AccessChain 9(color) 60
|
||||
Store 133 132
|
||||
Branch 128
|
||||
134: Label
|
||||
135: 6(float) Load 27(d4)
|
||||
136: 23(ptr) AccessChain 9(color) 36
|
||||
137: 6(float) Load 136
|
||||
138: 6(float) FAdd 137 135
|
||||
139: 23(ptr) AccessChain 9(color) 36
|
||||
Store 139 138
|
||||
Branch 128
|
||||
128: Label
|
||||
Branch 78
|
||||
79: Label
|
||||
140: 7(fvec4) Load 9(color)
|
||||
141: 7(fvec4) CompositeConstruct 56 56 56 56
|
||||
142: 7(fvec4) FAdd 140 141
|
||||
Store 9(color) 142
|
||||
145: 7(fvec4) Load 9(color)
|
||||
Store 144(gl_FragColor) 145
|
||||
111: 6(float) Load 27(d4)
|
||||
112: 29(bool) FOrdLessThan 110 111
|
||||
SelectionMerge 114 None
|
||||
BranchConditional 112 113 114
|
||||
113: Label
|
||||
115: 23(ptr) AccessChain 9(color) 22
|
||||
116: 6(float) Load 115
|
||||
117: 6(float) FAdd 116 47
|
||||
Store 115 117
|
||||
Branch 75
|
||||
114: Label
|
||||
Branch 104
|
||||
104: Label
|
||||
119: 23(ptr) AccessChain 9(color) 50
|
||||
120: 6(float) Load 119
|
||||
121: 6(float) Load 27(d4)
|
||||
122: 29(bool) FOrdLessThan 120 121
|
||||
SelectionMerge 124 None
|
||||
BranchConditional 122 123 130
|
||||
123: Label
|
||||
125: 6(float) Load 27(d4)
|
||||
126: 23(ptr) AccessChain 9(color) 50
|
||||
127: 6(float) Load 126
|
||||
128: 6(float) FAdd 127 125
|
||||
129: 23(ptr) AccessChain 9(color) 50
|
||||
Store 129 128
|
||||
Branch 124
|
||||
130: Label
|
||||
131: 6(float) Load 27(d4)
|
||||
132: 23(ptr) AccessChain 9(color) 22
|
||||
133: 6(float) Load 132
|
||||
134: 6(float) FAdd 133 131
|
||||
135: 23(ptr) AccessChain 9(color) 22
|
||||
Store 135 134
|
||||
Branch 124
|
||||
124: Label
|
||||
Branch 75
|
||||
75: Label
|
||||
Branch 72
|
||||
74: Label
|
||||
136: 7(fvec4) Load 9(color)
|
||||
137: 7(fvec4) CompositeConstruct 47 47 47 47
|
||||
138: 7(fvec4) FAdd 136 137
|
||||
Store 9(color) 138
|
||||
141: 7(fvec4) Load 9(color)
|
||||
Store 140(gl_FragColor) 141
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -1,17 +1,20 @@
|
|||
spv.matFun.vert
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 93
|
||||
// Id's are bound by 103
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 69 73 92
|
||||
Source GLSL 130
|
||||
EntryPoint Vertex 4 "main" 76 81
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
Name 14 "xf(mf33;vf3;"
|
||||
Name 12 "m"
|
||||
|
|
@ -21,18 +24,33 @@ Linked vertex stage:
|
|||
Name 26 "mxv(mf44;vf3;"
|
||||
Name 24 "m4"
|
||||
Name 25 "v"
|
||||
Name 63 "param"
|
||||
Name 69 "gl_Position"
|
||||
Name 71 "m4"
|
||||
Name 73 "v3"
|
||||
Name 74 "param"
|
||||
Name 76 "param"
|
||||
Name 80 "m3"
|
||||
Name 81 "param"
|
||||
Name 83 "param"
|
||||
Name 92 "gl_VertexID"
|
||||
Decorate 69(gl_Position) BuiltIn Position
|
||||
Decorate 92(gl_VertexID) BuiltIn VertexId
|
||||
Name 65 "param"
|
||||
Name 74 "gl_PerVertex"
|
||||
MemberName 74(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 74(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 74(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
Name 76 ""
|
||||
Name 77 "bl"
|
||||
MemberName 77(bl) 0 "m4"
|
||||
MemberName 77(bl) 1 "m3"
|
||||
Name 79 "bName"
|
||||
Name 81 "v3"
|
||||
Name 82 "param"
|
||||
Name 86 "param"
|
||||
Name 89 "param"
|
||||
Name 93 "param"
|
||||
MemberDecorate 74(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 74(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 74(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
Decorate 74(gl_PerVertex) Block
|
||||
MemberDecorate 77(bl) 0 ColMajor
|
||||
MemberDecorate 77(bl) 0 Offset 0
|
||||
MemberDecorate 77(bl) 0 MatrixStride 16
|
||||
MemberDecorate 77(bl) 1 ColMajor
|
||||
MemberDecorate 77(bl) 1 Offset 64
|
||||
MemberDecorate 77(bl) 1 MatrixStride 16
|
||||
Decorate 77(bl) Block
|
||||
Decorate 79(bName) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -46,45 +64,52 @@ Linked vertex stage:
|
|||
18: TypePointer Function 17
|
||||
19: TypeFunction 8 18(ptr)
|
||||
23: TypeFunction 7(fvec3) 18(ptr) 10(ptr)
|
||||
32: TypeInt 32 1
|
||||
33: 32(int) Constant 0
|
||||
34: TypePointer Function 16(fvec4)
|
||||
38: 32(int) Constant 1
|
||||
42: 32(int) Constant 2
|
||||
46: 6(float) Constant 1065353216
|
||||
47: 6(float) Constant 0
|
||||
68: TypePointer Output 16(fvec4)
|
||||
69(gl_Position): 68(ptr) Variable Output
|
||||
70: TypePointer UniformConstant 17
|
||||
71(m4): 70(ptr) Variable UniformConstant
|
||||
72: TypePointer Input 7(fvec3)
|
||||
73(v3): 72(ptr) Variable Input
|
||||
79: TypePointer UniformConstant 8
|
||||
80(m3): 79(ptr) Variable UniformConstant
|
||||
91: TypePointer Input 32(int)
|
||||
92(gl_VertexID): 91(ptr) Variable Input
|
||||
33: TypeInt 32 1
|
||||
34: 33(int) Constant 0
|
||||
35: TypePointer Function 16(fvec4)
|
||||
39: 33(int) Constant 1
|
||||
43: 33(int) Constant 2
|
||||
47: 6(float) Constant 1065353216
|
||||
48: 6(float) Constant 0
|
||||
71: TypeInt 32 0
|
||||
72: 71(int) Constant 1
|
||||
73: TypeArray 6(float) 72
|
||||
74(gl_PerVertex): TypeStruct 16(fvec4) 6(float) 73
|
||||
75: TypePointer Output 74(gl_PerVertex)
|
||||
76: 75(ptr) Variable Output
|
||||
77(bl): TypeStruct 17 8
|
||||
78: TypePointer Uniform 77(bl)
|
||||
79(bName): 78(ptr) Variable Uniform
|
||||
80: TypePointer Input 7(fvec3)
|
||||
81(v3): 80(ptr) Variable Input
|
||||
83: TypePointer Uniform 17
|
||||
90: TypePointer Uniform 8
|
||||
101: TypePointer Output 16(fvec4)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
74(param): 18(ptr) Variable Function
|
||||
76(param): 10(ptr) Variable Function
|
||||
81(param): 9(ptr) Variable Function
|
||||
83(param): 10(ptr) Variable Function
|
||||
75: 17 Load 71(m4)
|
||||
Store 74(param) 75
|
||||
77: 7(fvec3) Load 73(v3)
|
||||
Store 76(param) 77
|
||||
78: 7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 74(param) 76(param)
|
||||
82: 8 Load 80(m3)
|
||||
Store 81(param) 82
|
||||
84: 7(fvec3) Load 73(v3)
|
||||
Store 83(param) 84
|
||||
85: 7(fvec3) FunctionCall 14(xf(mf33;vf3;) 81(param) 83(param)
|
||||
86: 7(fvec3) FAdd 78 85
|
||||
87: 6(float) CompositeExtract 86 0
|
||||
88: 6(float) CompositeExtract 86 1
|
||||
89: 6(float) CompositeExtract 86 2
|
||||
90: 16(fvec4) CompositeConstruct 87 88 89 46
|
||||
Store 69(gl_Position) 90
|
||||
82(param): 18(ptr) Variable Function
|
||||
86(param): 10(ptr) Variable Function
|
||||
89(param): 9(ptr) Variable Function
|
||||
93(param): 10(ptr) Variable Function
|
||||
84: 83(ptr) AccessChain 79(bName) 34
|
||||
85: 17 Load 84
|
||||
Store 82(param) 85
|
||||
87: 7(fvec3) Load 81(v3)
|
||||
Store 86(param) 87
|
||||
88: 7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 82(param) 86(param)
|
||||
91: 90(ptr) AccessChain 79(bName) 39
|
||||
92: 8 Load 91
|
||||
Store 89(param) 92
|
||||
94: 7(fvec3) Load 81(v3)
|
||||
Store 93(param) 94
|
||||
95: 7(fvec3) FunctionCall 14(xf(mf33;vf3;) 89(param) 93(param)
|
||||
96: 7(fvec3) FAdd 88 95
|
||||
97: 6(float) CompositeExtract 96 0
|
||||
98: 6(float) CompositeExtract 96 1
|
||||
99: 6(float) CompositeExtract 96 2
|
||||
100: 16(fvec4) CompositeConstruct 97 98 99 47
|
||||
102: 101(ptr) AccessChain 76 34
|
||||
Store 102 100
|
||||
Return
|
||||
FunctionEnd
|
||||
14(xf(mf33;vf3;): 7(fvec3) Function None 11
|
||||
|
|
@ -99,39 +124,39 @@ Linked vertex stage:
|
|||
21(Mat3(mf44;): 8 Function None 19
|
||||
20(m): 18(ptr) FunctionParameter
|
||||
22: Label
|
||||
35: 34(ptr) AccessChain 20(m) 33
|
||||
36: 16(fvec4) Load 35
|
||||
37: 7(fvec3) VectorShuffle 36 36 0 1 2
|
||||
39: 34(ptr) AccessChain 20(m) 38
|
||||
40: 16(fvec4) Load 39
|
||||
41: 7(fvec3) VectorShuffle 40 40 0 1 2
|
||||
43: 34(ptr) AccessChain 20(m) 42
|
||||
44: 16(fvec4) Load 43
|
||||
45: 7(fvec3) VectorShuffle 44 44 0 1 2
|
||||
48: 6(float) CompositeExtract 37 0
|
||||
49: 6(float) CompositeExtract 37 1
|
||||
50: 6(float) CompositeExtract 37 2
|
||||
51: 6(float) CompositeExtract 41 0
|
||||
52: 6(float) CompositeExtract 41 1
|
||||
53: 6(float) CompositeExtract 41 2
|
||||
54: 6(float) CompositeExtract 45 0
|
||||
55: 6(float) CompositeExtract 45 1
|
||||
56: 6(float) CompositeExtract 45 2
|
||||
57: 7(fvec3) CompositeConstruct 48 49 50
|
||||
58: 7(fvec3) CompositeConstruct 51 52 53
|
||||
59: 7(fvec3) CompositeConstruct 54 55 56
|
||||
60: 8 CompositeConstruct 57 58 59
|
||||
ReturnValue 60
|
||||
36: 35(ptr) AccessChain 20(m) 34
|
||||
37: 16(fvec4) Load 36
|
||||
38: 7(fvec3) VectorShuffle 37 37 0 1 2
|
||||
40: 35(ptr) AccessChain 20(m) 39
|
||||
41: 16(fvec4) Load 40
|
||||
42: 7(fvec3) VectorShuffle 41 41 0 1 2
|
||||
44: 35(ptr) AccessChain 20(m) 43
|
||||
45: 16(fvec4) Load 44
|
||||
46: 7(fvec3) VectorShuffle 45 45 0 1 2
|
||||
49: 6(float) CompositeExtract 38 0
|
||||
50: 6(float) CompositeExtract 38 1
|
||||
51: 6(float) CompositeExtract 38 2
|
||||
52: 6(float) CompositeExtract 42 0
|
||||
53: 6(float) CompositeExtract 42 1
|
||||
54: 6(float) CompositeExtract 42 2
|
||||
55: 6(float) CompositeExtract 46 0
|
||||
56: 6(float) CompositeExtract 46 1
|
||||
57: 6(float) CompositeExtract 46 2
|
||||
58: 7(fvec3) CompositeConstruct 49 50 51
|
||||
59: 7(fvec3) CompositeConstruct 52 53 54
|
||||
60: 7(fvec3) CompositeConstruct 55 56 57
|
||||
61: 8 CompositeConstruct 58 59 60
|
||||
ReturnValue 61
|
||||
FunctionEnd
|
||||
26(mxv(mf44;vf3;): 7(fvec3) Function None 23
|
||||
24(m4): 18(ptr) FunctionParameter
|
||||
25(v): 10(ptr) FunctionParameter
|
||||
27: Label
|
||||
63(param): 18(ptr) Variable Function
|
||||
62: 7(fvec3) Load 25(v)
|
||||
64: 17 Load 24(m4)
|
||||
Store 63(param) 64
|
||||
65: 8 FunctionCall 21(Mat3(mf44;) 63(param)
|
||||
66: 7(fvec3) VectorTimesMatrix 62 65
|
||||
ReturnValue 66
|
||||
65(param): 18(ptr) Variable Function
|
||||
64: 7(fvec3) Load 25(v)
|
||||
66: 17 Load 24(m4)
|
||||
Store 65(param) 66
|
||||
67: 8 FunctionCall 21(Mat3(mf44;) 65(param)
|
||||
68: 7(fvec3) VectorTimesMatrix 64 67
|
||||
ReturnValue 68
|
||||
FunctionEnd
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ Linked fragment stage:
|
|||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 12 14 28 140 148 166
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 10 "sum34"
|
||||
Name 12 "m1"
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 213
|
||||
// Id's are bound by 221
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 12 16 37 38 65 87 139 150 173 210 211 212
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
EntryPoint Fragment 4 "main" 12 16 37 38 65 87 147 158 181 218 219 220
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 150
|
||||
Name 4 "main"
|
||||
Name 10 "m34"
|
||||
|
|
@ -22,15 +22,15 @@ Linked fragment stage:
|
|||
Name 63 "m44"
|
||||
Name 65 "un34"
|
||||
Name 87 "um43"
|
||||
Name 139 "um4"
|
||||
Name 148 "inv"
|
||||
Name 150 "um2"
|
||||
Name 171 "inv3"
|
||||
Name 173 "um3"
|
||||
Name 182 "inv4"
|
||||
Name 210 "colorTransform"
|
||||
Name 211 "m"
|
||||
Name 212 "n"
|
||||
Name 147 "um4"
|
||||
Name 156 "inv"
|
||||
Name 158 "um2"
|
||||
Name 179 "inv3"
|
||||
Name 181 "um3"
|
||||
Name 190 "inv4"
|
||||
Name 218 "colorTransform"
|
||||
Name 219 "m"
|
||||
Name 220 "n"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -62,35 +62,35 @@ Linked fragment stage:
|
|||
85: TypeMatrix 14(fvec3) 4
|
||||
86: TypePointer Input 85
|
||||
87(um43): 86(ptr) Variable Input
|
||||
138: TypePointer Input 61
|
||||
139(um4): 138(ptr) Variable Input
|
||||
145: TypeVector 6(float) 2
|
||||
146: TypeMatrix 145(fvec2) 2
|
||||
147: TypePointer Function 146
|
||||
149: TypePointer Input 146
|
||||
150(um2): 149(ptr) Variable Input
|
||||
153: TypeInt 32 1
|
||||
154: 153(int) Constant 0
|
||||
155: TypePointer Function 6(float)
|
||||
158: 153(int) Constant 1
|
||||
161: 54(int) Constant 1
|
||||
169: TypeMatrix 14(fvec3) 3
|
||||
170: TypePointer Function 169
|
||||
172: TypePointer Input 169
|
||||
173(um3): 172(ptr) Variable Input
|
||||
176: 153(int) Constant 2
|
||||
202: 54(int) Constant 3
|
||||
203: TypePointer Output 6(float)
|
||||
210(colorTransform): 172(ptr) Variable Input
|
||||
211(m): 138(ptr) Variable Input
|
||||
212(n): 138(ptr) Variable Input
|
||||
146: TypePointer Input 61
|
||||
147(um4): 146(ptr) Variable Input
|
||||
153: TypeVector 6(float) 2
|
||||
154: TypeMatrix 153(fvec2) 2
|
||||
155: TypePointer Function 154
|
||||
157: TypePointer Input 154
|
||||
158(um2): 157(ptr) Variable Input
|
||||
161: TypeInt 32 1
|
||||
162: 161(int) Constant 0
|
||||
163: TypePointer Function 6(float)
|
||||
166: 161(int) Constant 1
|
||||
169: 54(int) Constant 1
|
||||
177: TypeMatrix 14(fvec3) 3
|
||||
178: TypePointer Function 177
|
||||
180: TypePointer Input 177
|
||||
181(um3): 180(ptr) Variable Input
|
||||
184: 161(int) Constant 2
|
||||
210: 54(int) Constant 3
|
||||
211: TypePointer Output 6(float)
|
||||
218(colorTransform): 180(ptr) Variable Input
|
||||
219(m): 146(ptr) Variable Input
|
||||
220(n): 146(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(m34): 9(ptr) Variable Function
|
||||
63(m44): 62(ptr) Variable Function
|
||||
148(inv): 147(ptr) Variable Function
|
||||
171(inv3): 170(ptr) Variable Function
|
||||
182(inv4): 62(ptr) Variable Function
|
||||
156(inv): 155(ptr) Variable Function
|
||||
179(inv3): 178(ptr) Variable Function
|
||||
190(inv4): 62(ptr) Variable Function
|
||||
13: 7(fvec4) Load 12(v)
|
||||
17: 14(fvec3) Load 16(u)
|
||||
18: 8 OuterProduct 13 17
|
||||
|
|
@ -166,100 +166,108 @@ Linked fragment stage:
|
|||
103: 61 CompositeConstruct 93 96 99 102
|
||||
Store 63(m44) 103
|
||||
104: 61 Load 63(m44)
|
||||
105: 61 FNegate 104
|
||||
106: 7(fvec4) Load 12(v)
|
||||
107: 7(fvec4) MatrixTimesVector 105 106
|
||||
108: 7(fvec4) Load 37(FragColor)
|
||||
109: 7(fvec4) FAdd 108 107
|
||||
Store 37(FragColor) 109
|
||||
110: 61 Load 63(m44)
|
||||
111: 61 Load 63(m44)
|
||||
112: 7(fvec4) CompositeExtract 110 0
|
||||
113: 7(fvec4) CompositeExtract 111 0
|
||||
114: 7(fvec4) FMul 112 113
|
||||
115: 7(fvec4) CompositeExtract 110 1
|
||||
116: 7(fvec4) CompositeExtract 111 1
|
||||
117: 7(fvec4) FMul 115 116
|
||||
118: 7(fvec4) CompositeExtract 110 2
|
||||
119: 7(fvec4) CompositeExtract 111 2
|
||||
120: 7(fvec4) FMul 118 119
|
||||
121: 7(fvec4) CompositeExtract 110 3
|
||||
122: 7(fvec4) CompositeExtract 111 3
|
||||
123: 7(fvec4) FMul 121 122
|
||||
124: 61 CompositeConstruct 114 117 120 123
|
||||
125: 7(fvec4) Load 37(FragColor)
|
||||
126: 7(fvec4) VectorTimesMatrix 125 124
|
||||
Store 37(FragColor) 126
|
||||
127: 85 Load 87(um43)
|
||||
128: 8 Transpose 127
|
||||
Store 10(m34) 128
|
||||
129: 7(fvec4) Load 37(FragColor)
|
||||
130: 8 Load 10(m34)
|
||||
131: 14(fvec3) VectorTimesMatrix 129 130
|
||||
132: 6(float) CompositeExtract 131 0
|
||||
133: 6(float) CompositeExtract 131 1
|
||||
134: 6(float) CompositeExtract 131 2
|
||||
135: 7(fvec4) CompositeConstruct 132 133 134 40
|
||||
136: 7(fvec4) Load 37(FragColor)
|
||||
137: 7(fvec4) FMul 136 135
|
||||
Store 37(FragColor) 137
|
||||
140: 61 Load 139(um4)
|
||||
141: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 140
|
||||
142: 7(fvec4) CompositeConstruct 141 141 141 141
|
||||
143: 7(fvec4) Load 37(FragColor)
|
||||
144: 7(fvec4) FMul 143 142
|
||||
Store 37(FragColor) 144
|
||||
151: 146 Load 150(um2)
|
||||
152: 146 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 151
|
||||
Store 148(inv) 152
|
||||
156: 155(ptr) AccessChain 148(inv) 154 55
|
||||
157: 6(float) Load 156
|
||||
159: 155(ptr) AccessChain 148(inv) 158 55
|
||||
160: 6(float) Load 159
|
||||
162: 155(ptr) AccessChain 148(inv) 154 161
|
||||
163: 6(float) Load 162
|
||||
164: 155(ptr) AccessChain 148(inv) 158 161
|
||||
105: 7(fvec4) CompositeExtract 104 0
|
||||
106: 7(fvec4) FNegate 105
|
||||
107: 7(fvec4) CompositeExtract 104 1
|
||||
108: 7(fvec4) FNegate 107
|
||||
109: 7(fvec4) CompositeExtract 104 2
|
||||
110: 7(fvec4) FNegate 109
|
||||
111: 7(fvec4) CompositeExtract 104 3
|
||||
112: 7(fvec4) FNegate 111
|
||||
113: 61 CompositeConstruct 106 108 110 112
|
||||
114: 7(fvec4) Load 12(v)
|
||||
115: 7(fvec4) MatrixTimesVector 113 114
|
||||
116: 7(fvec4) Load 37(FragColor)
|
||||
117: 7(fvec4) FAdd 116 115
|
||||
Store 37(FragColor) 117
|
||||
118: 61 Load 63(m44)
|
||||
119: 61 Load 63(m44)
|
||||
120: 7(fvec4) CompositeExtract 118 0
|
||||
121: 7(fvec4) CompositeExtract 119 0
|
||||
122: 7(fvec4) FMul 120 121
|
||||
123: 7(fvec4) CompositeExtract 118 1
|
||||
124: 7(fvec4) CompositeExtract 119 1
|
||||
125: 7(fvec4) FMul 123 124
|
||||
126: 7(fvec4) CompositeExtract 118 2
|
||||
127: 7(fvec4) CompositeExtract 119 2
|
||||
128: 7(fvec4) FMul 126 127
|
||||
129: 7(fvec4) CompositeExtract 118 3
|
||||
130: 7(fvec4) CompositeExtract 119 3
|
||||
131: 7(fvec4) FMul 129 130
|
||||
132: 61 CompositeConstruct 122 125 128 131
|
||||
133: 7(fvec4) Load 37(FragColor)
|
||||
134: 7(fvec4) VectorTimesMatrix 133 132
|
||||
Store 37(FragColor) 134
|
||||
135: 85 Load 87(um43)
|
||||
136: 8 Transpose 135
|
||||
Store 10(m34) 136
|
||||
137: 7(fvec4) Load 37(FragColor)
|
||||
138: 8 Load 10(m34)
|
||||
139: 14(fvec3) VectorTimesMatrix 137 138
|
||||
140: 6(float) CompositeExtract 139 0
|
||||
141: 6(float) CompositeExtract 139 1
|
||||
142: 6(float) CompositeExtract 139 2
|
||||
143: 7(fvec4) CompositeConstruct 140 141 142 40
|
||||
144: 7(fvec4) Load 37(FragColor)
|
||||
145: 7(fvec4) FMul 144 143
|
||||
Store 37(FragColor) 145
|
||||
148: 61 Load 147(um4)
|
||||
149: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 148
|
||||
150: 7(fvec4) CompositeConstruct 149 149 149 149
|
||||
151: 7(fvec4) Load 37(FragColor)
|
||||
152: 7(fvec4) FMul 151 150
|
||||
Store 37(FragColor) 152
|
||||
159: 154 Load 158(um2)
|
||||
160: 154 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 159
|
||||
Store 156(inv) 160
|
||||
164: 163(ptr) AccessChain 156(inv) 162 55
|
||||
165: 6(float) Load 164
|
||||
166: 7(fvec4) CompositeConstruct 157 160 163 165
|
||||
167: 7(fvec4) Load 37(FragColor)
|
||||
168: 7(fvec4) FMul 167 166
|
||||
Store 37(FragColor) 168
|
||||
174: 169 Load 173(um3)
|
||||
175: 169 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 174
|
||||
Store 171(inv3) 175
|
||||
177: 155(ptr) AccessChain 171(inv3) 176 161
|
||||
178: 6(float) Load 177
|
||||
179: 7(fvec4) CompositeConstruct 178 178 178 178
|
||||
180: 7(fvec4) Load 37(FragColor)
|
||||
181: 7(fvec4) FMul 180 179
|
||||
Store 37(FragColor) 181
|
||||
183: 61 Load 139(um4)
|
||||
184: 61 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 183
|
||||
Store 182(inv4) 184
|
||||
185: 61 Load 182(inv4)
|
||||
186: 7(fvec4) Load 37(FragColor)
|
||||
187: 7(fvec4) VectorTimesMatrix 186 185
|
||||
Store 37(FragColor) 187
|
||||
167: 163(ptr) AccessChain 156(inv) 166 55
|
||||
168: 6(float) Load 167
|
||||
170: 163(ptr) AccessChain 156(inv) 162 169
|
||||
171: 6(float) Load 170
|
||||
172: 163(ptr) AccessChain 156(inv) 166 169
|
||||
173: 6(float) Load 172
|
||||
174: 7(fvec4) CompositeConstruct 165 168 171 173
|
||||
175: 7(fvec4) Load 37(FragColor)
|
||||
176: 7(fvec4) FMul 175 174
|
||||
Store 37(FragColor) 176
|
||||
182: 177 Load 181(um3)
|
||||
183: 177 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 182
|
||||
Store 179(inv3) 183
|
||||
185: 163(ptr) AccessChain 179(inv3) 184 169
|
||||
186: 6(float) Load 185
|
||||
187: 7(fvec4) CompositeConstruct 186 186 186 186
|
||||
188: 7(fvec4) Load 37(FragColor)
|
||||
189: 8 Load 65(un34)
|
||||
190: 8 Load 65(un34)
|
||||
191: 7(fvec4) CompositeExtract 189 0
|
||||
192: 7(fvec4) CompositeExtract 190 0
|
||||
193: 7(fvec4) FMul 191 192
|
||||
194: 7(fvec4) CompositeExtract 189 1
|
||||
195: 7(fvec4) CompositeExtract 190 1
|
||||
196: 7(fvec4) FMul 194 195
|
||||
197: 7(fvec4) CompositeExtract 189 2
|
||||
198: 7(fvec4) CompositeExtract 190 2
|
||||
199: 7(fvec4) FMul 197 198
|
||||
200: 8 CompositeConstruct 193 196 199
|
||||
201: 14(fvec3) VectorTimesMatrix 188 200
|
||||
204: 203(ptr) AccessChain 37(FragColor) 202
|
||||
205: 6(float) Load 204
|
||||
206: 6(float) CompositeExtract 201 0
|
||||
207: 6(float) CompositeExtract 201 1
|
||||
208: 6(float) CompositeExtract 201 2
|
||||
209: 7(fvec4) CompositeConstruct 206 207 208 205
|
||||
Store 37(FragColor) 209
|
||||
189: 7(fvec4) FMul 188 187
|
||||
Store 37(FragColor) 189
|
||||
191: 61 Load 147(um4)
|
||||
192: 61 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 191
|
||||
Store 190(inv4) 192
|
||||
193: 61 Load 190(inv4)
|
||||
194: 7(fvec4) Load 37(FragColor)
|
||||
195: 7(fvec4) VectorTimesMatrix 194 193
|
||||
Store 37(FragColor) 195
|
||||
196: 7(fvec4) Load 37(FragColor)
|
||||
197: 8 Load 65(un34)
|
||||
198: 8 Load 65(un34)
|
||||
199: 7(fvec4) CompositeExtract 197 0
|
||||
200: 7(fvec4) CompositeExtract 198 0
|
||||
201: 7(fvec4) FMul 199 200
|
||||
202: 7(fvec4) CompositeExtract 197 1
|
||||
203: 7(fvec4) CompositeExtract 198 1
|
||||
204: 7(fvec4) FMul 202 203
|
||||
205: 7(fvec4) CompositeExtract 197 2
|
||||
206: 7(fvec4) CompositeExtract 198 2
|
||||
207: 7(fvec4) FMul 205 206
|
||||
208: 8 CompositeConstruct 201 204 207
|
||||
209: 14(fvec3) VectorTimesMatrix 196 208
|
||||
212: 211(ptr) AccessChain 37(FragColor) 210
|
||||
213: 6(float) Load 212
|
||||
214: 6(float) CompositeExtract 209 0
|
||||
215: 6(float) CompositeExtract 209 1
|
||||
216: 6(float) CompositeExtract 209 2
|
||||
217: 7(fvec4) CompositeConstruct 214 215 216 213
|
||||
Store 37(FragColor) 217
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
181
Test/baseResults/spv.memoryQualifier.frag.out
Normal file
181
Test/baseResults/spv.memoryQualifier.frag.out
Normal file
|
|
@ -0,0 +1,181 @@
|
|||
spv.memoryQualifier.frag
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 97
|
||||
|
||||
Capability Shader
|
||||
Capability SampledRect
|
||||
Capability Sampled1D
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "texel"
|
||||
Name 12 "i1D"
|
||||
Name 19 "i2D"
|
||||
Name 28 "i2DRect"
|
||||
Name 35 "i3D"
|
||||
Name 44 "iCube"
|
||||
Name 49 "Data"
|
||||
MemberName 49(Data) 0 "f1"
|
||||
MemberName 49(Data) 1 "f2"
|
||||
Name 50 "Buffer"
|
||||
MemberName 50(Buffer) 0 "f1"
|
||||
MemberName 50(Buffer) 1 "f2"
|
||||
MemberName 50(Buffer) 2 "f3"
|
||||
MemberName 50(Buffer) 3 "f4"
|
||||
MemberName 50(Buffer) 4 "i1"
|
||||
MemberName 50(Buffer) 5 "data"
|
||||
Name 52 ""
|
||||
Decorate 12(i1D) DescriptorSet 0
|
||||
Decorate 12(i1D) Binding 0
|
||||
Decorate 12(i1D) Coherent
|
||||
Decorate 19(i2D) DescriptorSet 0
|
||||
Decorate 19(i2D) Binding 1
|
||||
Decorate 19(i2D) Volatile
|
||||
Decorate 28(i2DRect) DescriptorSet 0
|
||||
Decorate 28(i2DRect) Binding 2
|
||||
Decorate 28(i2DRect) Restrict
|
||||
Decorate 35(i3D) DescriptorSet 0
|
||||
Decorate 35(i3D) Binding 3
|
||||
Decorate 35(i3D) NonWritable
|
||||
Decorate 44(iCube) DescriptorSet 0
|
||||
Decorate 44(iCube) Binding 3
|
||||
Decorate 44(iCube) NonReadable
|
||||
MemberDecorate 49(Data) 0 Coherent
|
||||
MemberDecorate 49(Data) 0 Offset 0
|
||||
MemberDecorate 49(Data) 1 Coherent
|
||||
MemberDecorate 49(Data) 1 Offset 8
|
||||
MemberDecorate 50(Buffer) 0 Coherent
|
||||
MemberDecorate 50(Buffer) 0 Volatile
|
||||
MemberDecorate 50(Buffer) 0 Offset 0
|
||||
MemberDecorate 50(Buffer) 1 Coherent
|
||||
MemberDecorate 50(Buffer) 1 Restrict
|
||||
MemberDecorate 50(Buffer) 1 Offset 8
|
||||
MemberDecorate 50(Buffer) 2 Coherent
|
||||
MemberDecorate 50(Buffer) 2 NonWritable
|
||||
MemberDecorate 50(Buffer) 2 Offset 16
|
||||
MemberDecorate 50(Buffer) 3 Coherent
|
||||
MemberDecorate 50(Buffer) 3 NonReadable
|
||||
MemberDecorate 50(Buffer) 3 Offset 32
|
||||
MemberDecorate 50(Buffer) 4 Coherent
|
||||
MemberDecorate 50(Buffer) 4 Offset 48
|
||||
MemberDecorate 50(Buffer) 5 Coherent
|
||||
MemberDecorate 50(Buffer) 5 Offset 56
|
||||
Decorate 50(Buffer) BufferBlock
|
||||
Decorate 52 DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
10: TypeImage 6(float) 1D nonsampled format:R32f
|
||||
11: TypePointer UniformConstant 10
|
||||
12(i1D): 11(ptr) Variable UniformConstant
|
||||
14: TypeInt 32 1
|
||||
15: 14(int) Constant 1
|
||||
17: TypeImage 6(float) 2D nonsampled format:R32f
|
||||
18: TypePointer UniformConstant 17
|
||||
19(i2D): 18(ptr) Variable UniformConstant
|
||||
21: TypeVector 14(int) 2
|
||||
22: 21(ivec2) ConstantComposite 15 15
|
||||
26: TypeImage 6(float) Rect nonsampled format:R32f
|
||||
27: TypePointer UniformConstant 26
|
||||
28(i2DRect): 27(ptr) Variable UniformConstant
|
||||
33: TypeImage 6(float) 3D nonsampled format:R32f
|
||||
34: TypePointer UniformConstant 33
|
||||
35(i3D): 34(ptr) Variable UniformConstant
|
||||
37: TypeVector 14(int) 3
|
||||
38: 37(ivec3) ConstantComposite 15 15 15
|
||||
42: TypeImage 6(float) Cube nonsampled format:R32f
|
||||
43: TypePointer UniformConstant 42
|
||||
44(iCube): 43(ptr) Variable UniformConstant
|
||||
47: TypeVector 6(float) 2
|
||||
48: TypeVector 6(float) 3
|
||||
49(Data): TypeStruct 6(float) 47(fvec2)
|
||||
50(Buffer): TypeStruct 6(float) 47(fvec2) 48(fvec3) 7(fvec4) 14(int) 49(Data)
|
||||
51: TypePointer Uniform 50(Buffer)
|
||||
52: 51(ptr) Variable Uniform
|
||||
53: 14(int) Constant 4
|
||||
54: TypePointer Uniform 14(int)
|
||||
57: 14(int) Constant 0
|
||||
58: TypePointer Uniform 6(float)
|
||||
61: TypePointer Function 6(float)
|
||||
63: TypePointer Uniform 47(fvec2)
|
||||
71: 14(int) Constant 2
|
||||
72: TypePointer Uniform 48(fvec3)
|
||||
80: 14(int) Constant 5
|
||||
83: TypeInt 32 0
|
||||
84: 83(int) Constant 1
|
||||
88: 83(int) Constant 3
|
||||
93: 14(int) Constant 3
|
||||
95: TypePointer Uniform 7(fvec4)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(texel): 8(ptr) Variable Function
|
||||
13: 10 Load 12(i1D)
|
||||
16: 7(fvec4) ImageRead 13 15
|
||||
Store 9(texel) 16
|
||||
20: 17 Load 19(i2D)
|
||||
23: 7(fvec4) ImageRead 20 22
|
||||
24: 7(fvec4) Load 9(texel)
|
||||
25: 7(fvec4) FAdd 24 23
|
||||
Store 9(texel) 25
|
||||
29: 26 Load 28(i2DRect)
|
||||
30: 7(fvec4) ImageRead 29 22
|
||||
31: 7(fvec4) Load 9(texel)
|
||||
32: 7(fvec4) FAdd 31 30
|
||||
Store 9(texel) 32
|
||||
36: 33 Load 35(i3D)
|
||||
39: 7(fvec4) ImageRead 36 38
|
||||
40: 7(fvec4) Load 9(texel)
|
||||
41: 7(fvec4) FAdd 40 39
|
||||
Store 9(texel) 41
|
||||
45: 42 Load 44(iCube)
|
||||
46: 7(fvec4) Load 9(texel)
|
||||
ImageWrite 45 38 46
|
||||
55: 54(ptr) AccessChain 52 53
|
||||
56: 14(int) Load 55
|
||||
59: 58(ptr) AccessChain 52 57
|
||||
60: 6(float) Load 59
|
||||
62: 61(ptr) AccessChain 9(texel) 56
|
||||
Store 62 60
|
||||
64: 63(ptr) AccessChain 52 15
|
||||
65: 47(fvec2) Load 64
|
||||
66: 7(fvec4) Load 9(texel)
|
||||
67: 47(fvec2) VectorShuffle 66 66 0 1
|
||||
68: 47(fvec2) FAdd 67 65
|
||||
69: 7(fvec4) Load 9(texel)
|
||||
70: 7(fvec4) VectorShuffle 69 68 4 5 2 3
|
||||
Store 9(texel) 70
|
||||
73: 72(ptr) AccessChain 52 71
|
||||
74: 48(fvec3) Load 73
|
||||
75: 7(fvec4) Load 9(texel)
|
||||
76: 48(fvec3) VectorShuffle 75 75 0 1 2
|
||||
77: 48(fvec3) FSub 76 74
|
||||
78: 7(fvec4) Load 9(texel)
|
||||
79: 7(fvec4) VectorShuffle 78 77 4 5 6 3
|
||||
Store 9(texel) 79
|
||||
81: 58(ptr) AccessChain 52 80 57
|
||||
82: 6(float) Load 81
|
||||
85: 58(ptr) AccessChain 52 80 15 84
|
||||
86: 6(float) Load 85
|
||||
87: 6(float) FAdd 82 86
|
||||
89: 61(ptr) AccessChain 9(texel) 88
|
||||
90: 6(float) Load 89
|
||||
91: 6(float) FAdd 90 87
|
||||
92: 61(ptr) AccessChain 9(texel) 88
|
||||
Store 92 91
|
||||
94: 7(fvec4) Load 9(texel)
|
||||
96: 95(ptr) AccessChain 52 93
|
||||
Store 96 94
|
||||
Return
|
||||
FunctionEnd
|
||||
47
Test/baseResults/spv.merge-unreachable.frag.out
Normal file
47
Test/baseResults/spv.merge-unreachable.frag.out
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
spv.merge-unreachable.frag
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 25
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 9
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "v"
|
||||
Decorate 9(v) Location 1
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Input 7(fvec4)
|
||||
9(v): 8(ptr) Variable Input
|
||||
11: 6(float) Constant 1036831949
|
||||
12: 6(float) Constant 1045220557
|
||||
13: 6(float) Constant 1050253722
|
||||
14: 6(float) Constant 1053609165
|
||||
15: 7(fvec4) ConstantComposite 11 12 13 14
|
||||
16: TypeBool
|
||||
17: TypeVector 16(bool) 4
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10: 7(fvec4) Load 9(v)
|
||||
18: 17(bvec4) FOrdEqual 10 15
|
||||
19: 16(bool) All 18
|
||||
SelectionMerge 21 None
|
||||
BranchConditional 19 20 23
|
||||
20: Label
|
||||
Kill
|
||||
23: Label
|
||||
Return
|
||||
21: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
@ -10,10 +10,13 @@ Linked fragment stage:
|
|||
// Id's are bound by 278
|
||||
|
||||
Capability Shader
|
||||
Capability SampledRect
|
||||
Capability SampledCubeArray
|
||||
Capability ImageQuery
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 17 26 29 55 81 84 91 247 277
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 430
|
||||
Name 4 "main"
|
||||
Name 9 "v"
|
||||
|
|
@ -46,9 +49,27 @@ Linked fragment stage:
|
|||
Name 271 "usCube"
|
||||
Name 275 "us2DArray"
|
||||
Name 277 "ic4D"
|
||||
Decorate 13(s2D) DescriptorSet 0
|
||||
Decorate 23(sCubeArrayShadow) DescriptorSet 0
|
||||
Decorate 42(s3D) DescriptorSet 0
|
||||
Decorate 51(s2DArray) DescriptorSet 0
|
||||
Decorate 64(s2DShadow) DescriptorSet 0
|
||||
Decorate 81(ic3D) Flat
|
||||
Decorate 84(ic1D) Flat
|
||||
Decorate 91(ic2D) Flat
|
||||
Decorate 100(sr) DescriptorSet 0
|
||||
Decorate 125(sCube) DescriptorSet 0
|
||||
Decorate 136(s2DArrayShadow) DescriptorSet 0
|
||||
Decorate 168(is2D) DescriptorSet 0
|
||||
Decorate 203(is3D) DescriptorSet 0
|
||||
Decorate 215(isCube) DescriptorSet 0
|
||||
Decorate 227(is2DArray) DescriptorSet 0
|
||||
Decorate 241(sCubeShadow) DescriptorSet 0
|
||||
Decorate 259(is2Dms) DescriptorSet 0
|
||||
Decorate 263(us2D) DescriptorSet 0
|
||||
Decorate 267(us3D) DescriptorSet 0
|
||||
Decorate 271(usCube) DescriptorSet 0
|
||||
Decorate 275(us2DArray) DescriptorSet 0
|
||||
Decorate 277(ic4D) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ Linked vertex stage:
|
|||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 12 28 55
|
||||
Source GLSL 120
|
||||
EntryPoint Vertex 4 "main" 12 22 28 55
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 9 "a"
|
||||
Name 12 "v3"
|
||||
|
|
@ -32,8 +32,8 @@ Linked vertex stage:
|
|||
14: TypeMatrix 10(fvec3) 2
|
||||
15: TypePointer Function 14
|
||||
20: TypeMatrix 7(fvec2) 3
|
||||
21: TypePointer UniformConstant 20
|
||||
22(m32): 21(ptr) Variable UniformConstant
|
||||
21: TypePointer Output 20
|
||||
22(m32): 21(ptr) Variable Output
|
||||
26: TypeVector 6(float) 4
|
||||
27: TypePointer Output 26(fvec4)
|
||||
28(gl_Position): 27(ptr) Variable Output
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue