Merge branch 'master' of github.com:KhronosGroup/glslang into clang-format

This commit is contained in:
Dejan Mircevski 2016-06-05 20:42:20 -04:00
commit f377f5287b
241 changed files with 33708 additions and 7992 deletions

40
.appveyor.yml Normal file
View File

@ -0,0 +1,40 @@
# Windows Build Configuration for AppVeyor
# http://www.appveyor.com/docs/appveyor-yml
# build version format
version: "{build}"
os: Visual Studio 2013
platform:
- Any CPU
configuration:
- Debug
- Release
branches:
only:
- master
clone_depth: 5
matrix:
fast_finish: true # Show final status immediately if a test fails.
# scripts that run after cloning repository
install:
- git clone https://github.com/google/googletest.git External/googletest
build:
parallel: true # enable MSBuild parallel builds
verbosity: minimal
build_script:
- mkdir build && cd build
- cmake .. -DCMAKE_INSTALL_PREFIX=install
- cmake --build . --config %CONFIGURATION% --target install
test_script:
- ctest -C %CONFIGURATION% --output-on-failure
- cd ../Test && bash runtests

1
.gitignore vendored
View File

@ -7,3 +7,4 @@ build/
Test/localResults/
Test/multiThread.out
Test/singleThread.out
External/googletest

60
.travis.yml Normal file
View File

@ -0,0 +1,60 @@
# Linux and Mac Build Configuration for Travis
language: cpp
os:
- linux
- osx
# Use Ubuntu 14.04 LTS (Trusty) as the Linux testing environment.
sudo: required
dist: trusty
env:
- GLSLANG_BUILD_TYPE=Release
- GLSLANG_BUILD_TYPE=Debug
compiler:
- clang
- gcc
matrix:
fast_finish: true # Show final status immediately if a test fails.
exclude:
# Skip GCC builds on Mac OS X.
- os: osx
compiler: gcc
cache:
apt: true
branches:
only:
- master
addons:
apt:
packages:
- clang-3.6
- ninja-build
install:
# Install ninja on Mac OS X.
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew install ninja; fi
# Make sure that clang-3.6 is selected.
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then
export CC=clang-3.6 CXX=clang++-3.6;
fi
before_script:
- git clone https://github.com/google/googletest.git External/googletest
script:
- mkdir build && cd build
# We need to install the compiled binaries so the paths in the runtests script can resolve correctly.
- cmake -GNinja -DCMAKE_BUILD_TYPE=${GLSLANG_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=`pwd`/install ..
- ninja install
# Run Google-Test-based tests.
- ctest --output-on-failure
# Run runtests-based tests.
- cd ../Test && ./runtests

View File

@ -1,17 +1,21 @@
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 2.8.12)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
enable_testing()
set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix")
project(glslang)
if(WIN32)
set(CMAKE_DEBUG_POSTFIX "d")
include(ChooseMSVCCRT.cmake)
add_definitions(-DGLSLANG_OSINCLUDE_WIN32)
elseif(UNIX)
add_definitions(-fPIC)
add_definitions(-DGLSLANG_OSINCLUDE_UNIX)
else(WIN32)
message("unkown platform")
message("unknown platform")
endif(WIN32)
if(CMAKE_COMPILER_IS_GNUCXX)
@ -20,7 +24,23 @@ elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
add_definitions(-std=c++11)
endif()
function(glslang_set_link_args TARGET)
# For MinGW compiles, statically link against the GCC and C++ runtimes.
# This avoids the need to ship those runtimes as DLLs.
if(WIN32)
if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
set_target_properties(${TARGET} PROPERTIES
LINK_FLAGS "-static -static-libgcc -static-libstdc++")
endif()
endif(WIN32)
endfunction(glslang_set_link_args)
# We depend on these for later projects, so they should come first.
add_subdirectory(External)
add_subdirectory(glslang)
add_subdirectory(OGLCompilersDLL)
add_subdirectory(StandAlone)
add_subdirectory(SPIRV)
add_subdirectory(hlsl)
add_subdirectory(gtests)

34
External/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,34 @@
# Suppress all warnings from external projects.
set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w)
if (TARGET gmock)
message(STATUS "Google Mock already configured - use it")
elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest)
# We need to make sure Google Test does not mess up with the
# global CRT settings on Windows.
if(WIN32)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
endif(WIN32)
add_subdirectory(googletest)
set(GTEST_TARGETS
gtest
gtest_main
gmock
gmock_main
)
foreach(target ${GTEST_TARGETS})
set_property(TARGET ${target} PROPERTY FOLDER gtest)
endforeach()
mark_as_advanced(gmock_build_tests
BUILD_GMOCK
BUILD_GTEST
BUILD_SHARED_LIBS
gtest_build_samples
gtest_build_tests
gtest_disable_pthreads
gtest_force_shared_crt
gtest_hide_internal_symbols)
else()
message(STATUS
"Google Mock was not found - tests based on that will not build")
endif()

View File

@ -1,34 +0,0 @@
#! /bin/bash
svn update
rm -f StandAlone/glslangValidator
rm -f Test/glslangValidator
rm -f glslang/MachineIndependent/lib/libglslang.so
rm -f Install/Linux/libglslang.so
rm -f Install/Linux/glslangValidator
cd StandAlone
make clean
cd ../glslang/MachineIndependent
make clean
cd ../..
# build the StandAlone app and all it's dependencies
make -C StandAlone
# so we can find the shared library
#LD_LIBRARY_PATH=`pwd`/glslang/MachineIndependent/lib
#export LD_LIBRARY_PATH
# install
cd Install/Linux
./install
cp glslangValidator ../../Test
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
# run using test data
cd ../../Test
chmod +x runtests
./runtests

View File

@ -1,8 +1,7 @@
cmake_minimum_required(VERSION 2.8)
set(SOURCES InitializeDll.cpp InitializeDll.h)
add_library(OGLCompiler STATIC ${SOURCES})
set_property(TARGET OGLCompiler PROPERTY FOLDER glslang)
if(WIN32)
source_group("Source" FILES ${SOURCES})

172
README.md
View File

@ -8,6 +8,9 @@ regarding the feature level of glslang.
glslang
=======
[![Build Status](https://travis-ci.org/KhronosGroup/glslang.svg?branch=master)](https://travis-ci.org/KhronosGroup/glslang)
[![Build status](https://ci.appveyor.com/api/projects/status/q6fi9cb0qnhkla68/branch/master?svg=true)](https://ci.appveyor.com/project/Khronoswebmaster/glslang/branch/master)
An OpenGL and OpenGL ES shader front end and validator.
There are two components:
@ -43,24 +46,149 @@ There is also a non-shader extension
Building
--------
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.
### Dependencies
The grammar in glslang/MachineIndependent/glslang.y has to be recompiled with
* [CMake][cmake]: for generating compilation targets.
* [bison][bison]: _optional_, but needed when changing the grammar (glslang.y).
* [googletest][googletest]: _optional_, but should use if making any changes to glslang.
### Build steps
#### 1) Check-Out External Projects
```bash
cd <the directory glslang was cloned to, External will be a subdirectory>
git clone https://github.com/google/googletest.git External/googletest
```
#### 2) Configure
Assume the source directory is `$SOURCE_DIR` and
the build directory is `$BUILD_DIR`:
For building on Linux (assuming using the Ninja generator):
```bash
cd $BUILD_DIR
cmake -GNinja -DCMAKE_BUILD_TYPE={Debug|Release|RelWithDebInfo} \
-DCMAKE_INSTALL_PREFIX=`pwd`/install $SOURCE_DIR
```
For building on Windows:
```bash
cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX=`pwd`/install
# The CMAKE_INSTALL_PREFIX part is for testing (explained later).
```
The CMake GUI also works for Windows (version 3.4.1 tested).
#### 3) Build and Install
```bash
# for Linux:
ninja install
# for Windows:
cmake --build . --config {Release|Debug|MinSizeRel|RelWithDebInfo} \
--target install
```
If using MSVC, after running CMake to configure, use the
Configuration Manager to check the `INSTALL` project.
### If you need to change the GLSL grammar
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).
[GnuWin32][bison-gnu-win32].
The command to rebuild is:
```
```bash
bison --defines=MachineIndependent/glslang_tab.cpp.h
-t MachineIndependent/glslang.y
-o MachineIndependent/glslang_tab.cpp
```
The above command is also available in the bash script at
`glslang/updateGrammar`.
Testing
-------
Right now, there are two test harnesses existing in glslang: one is [Google
Test](gtests/), one is the [`runtests` script](Test/runtests). The former
runs unit tests and single-shader single-threaded integration tests, while
the latter runs multiple-shader linking tests and multi-threaded tests.
### Running tests
The [`runtests` script](Test/runtests) requires compiled binaries to be
installed into `$BUILD_DIR/install`. Please make sure you have supplied the
correct configuration to CMake (using `-DCMAKE_INSTALL_PREFIX`) when building;
otherwise, you may want to modify the path in the `runtests` script.
Running Google Test-backed tests:
```bash
cd $BUILD_DIR
# for Linux:
ctest
# for Windows:
ctest -C {Debug|Release|RelWithDebInfo|MinSizeRel}
# or, run the test binary directly
# (which gives more fine-grained control like filtering):
<dir-to-glslangtests-in-build-dir>/glslangtests
```
Running `runtests` script-backed tests:
```bash
cd $SOURCE_DIR/Test && ./runtests
```
### Contributing tests
Test results should always be included with a pull request that modifies
functionality.
If you are writing unit tests, please use the Google Test framework and
place the tests under the `gtests/` directory.
Integration tests are placed in the `Test/` directory. It contains test input
and a subdirectory `baseResults/` that contains the expected results of the
tests. Both the tests and `baseResults/` are under source-code control.
Google Test runs those integration tests by reading the test input, compiling
them, and then compare against the expected results in `baseResults/`. The
integration tests to run via Google Test is registered in various
`gtests/*.FromFile.cpp` source files. `glslangtests` provides a command-line
option `--update-mode`, which, if supplied, will overwrite the golden files
under the `baseResults/` directory with real output from that invocation.
For more information, please check `gtests/` directory's
[README](gtests/README.md).
For the `runtests` script, it will generate current results in the
`localResults/` directory and `diff` them against the `baseResults/`.
The integration tests to run via the `runtests` script is registered
via various `Test/test-*` text files and `Test/testlist`.
When you want to update the tracked test results, they need to be
copied from `localResults/` to `baseResults/`. This can be done by
the `bump` shell script.
The list of files tested comes from `testlist`, and lists input shaders
in this directory, which must all be public for this to work. However,
you can add your own private list of tests, not tracked here, by using
`localtestlist` to list non-tracked tests. This is automatically read
by `runtests` and included in the `diff` and `bump` process.
Programmatic Interfaces
-----------------------
@ -97,7 +225,7 @@ class TProgram
See `ShaderLang.h` and the usage of it in `StandAlone/StandAlone.cpp` for more
details.
### C Functional Interface (orginal)
### C Functional Interface (orignal)
This interface is in roughly the first 2/3 of `ShaderLang.h`, and referred to
as the `Sh*()` interface, as all the entry points start `Sh`.
@ -112,29 +240,7 @@ ShCompile(shader, compiler) -> compiler(AST) -> <back end>
```
In practice, `ShCompile()` takes shader strings, default version, and
warning/error and other options for controling compilation.
Testing
-------
Test results should always be included with a pull request that modifies
functionality. There is a simple process for doing this, described here:
`Test` is an active test directory that contains test input and a
subdirectory `baseResults` that contains the expected results of the
tests. Both the tests and `baseResults` are under source-code control.
Executing the script `./runtests` will generate current results in
the `localResults` directory and `diff` them against the `baseResults`.
When you want to update the tracked test results, they need to be
copied from `localResults` to `baseResults`. This can be done by
the `bump` shell script.
The list of files tested comes from `testlist`, and lists input shaders
in this directory, which must all be public for this to work. However,
you can add your own private list of tests, not tracked here, by using
`localtestlist` to list non-tracked tests. This is automatically read
by `runtests` and included in the `diff` and `bump` process.
warning/error and other options for controlling compilation.
Basic Internal Operation
------------------------
@ -183,3 +289,9 @@ Basic Internal Operation
- the object does not come from the pool, and you have to do normal
C++ memory management of what you `new`
[cmake]: https://cmake.org/
[bison]: https://www.gnu.org/software/bison/
[googletest]: https://github.com/google/googletest
[bison-gnu-win32]: http://gnuwin32.sourceforge.net/packages/bison.htm

View File

@ -1,8 +1,7 @@
cmake_minimum_required(VERSION 2.8)
set(SOURCES
GlslangToSpv.cpp
InReadableOrder.cpp
Logger.cpp
SpvBuilder.cpp
SPVRemapper.cpp
doc.cpp
@ -12,6 +11,7 @@ set(HEADERS
spirv.hpp
GLSL.std.450.h
GlslangToSpv.h
Logger.h
SpvBuilder.h
SPVRemapper.h
spvIR.h
@ -19,6 +19,7 @@ set(HEADERS
disassemble.h)
add_library(SPIRV STATIC ${SOURCES} ${HEADERS})
set_property(TARGET SPIRV PROPERTY FOLDER glslang)
if(WIN32)
source_group("Source" FILES ${SOURCES} ${HEADERS})

File diff suppressed because it is too large Load Diff

View File

@ -34,10 +34,16 @@
#include "../glslang/Include/intermediate.h"
#include <string>
#include <vector>
#include "Logger.h"
namespace glslang {
void GetSpirvVersion(std::string&);
void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector<unsigned int>& spirv);
void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector<unsigned int>& spirv, spv::SpvBuildLogger* logger);
void OutputSpv(const std::vector<unsigned int>& spirv, const char* baseName);
};
}

View File

@ -32,10 +32,6 @@
//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.

68
SPIRV/Logger.cpp Normal file
View File

@ -0,0 +1,68 @@
//
// 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 Google Inc. 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.
#include "Logger.h"
#include <algorithm>
#include <iterator>
#include <sstream>
namespace spv {
void SpvBuildLogger::tbdFunctionality(const std::string& f)
{
if (std::find(std::begin(tbdFeatures), std::end(tbdFeatures), f) == std::end(tbdFeatures))
tbdFeatures.push_back(f);
}
void SpvBuildLogger::missingFunctionality(const std::string& f)
{
if (std::find(std::begin(missingFeatures), std::end(missingFeatures), f) == std::end(missingFeatures))
missingFeatures.push_back(f);
}
std::string SpvBuildLogger::getAllMessages() const {
std::ostringstream messages;
for (auto it = tbdFeatures.cbegin(); it != tbdFeatures.cend(); ++it)
messages << "TBD functionality: " << *it << "\n";
for (auto it = missingFeatures.cbegin(); it != missingFeatures.cend(); ++it)
messages << "Missing functionality: " << *it << "\n";
for (auto it = warnings.cbegin(); it != warnings.cend(); ++it)
messages << "warning: " << *it << "\n";
for (auto it = errors.cbegin(); it != errors.cend(); ++it)
messages << "error: " << *it << "\n";
return messages.str();
}
} // end spv namespace

74
SPIRV/Logger.h Normal file
View File

@ -0,0 +1,74 @@
//
// 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 Google Inc. 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.
#ifndef GLSLANG_SPIRV_LOGGER_H
#define GLSLANG_SPIRV_LOGGER_H
#include <string>
#include <vector>
namespace spv {
// A class for holding all SPIR-V build status messages, including
// missing/TBD functionalities, warnings, and errors.
class SpvBuildLogger {
public:
SpvBuildLogger() {}
// Registers a TBD functionality.
void tbdFunctionality(const std::string& f);
// Registers a missing functionality.
void missingFunctionality(const std::string& f);
// Logs a warning.
void warning(const std::string& w) { warnings.push_back(w); }
// Logs an error.
void error(const std::string& e) { errors.push_back(e); }
// Returns all messages accumulated in the order of:
// TBD functionalities, missing functionalities, warnings, errors.
std::string getAllMessages() const;
private:
SpvBuildLogger(const SpvBuildLogger&);
std::vector<std::string> tbdFeatures;
std::vector<std::string> missingFeatures;
std::vector<std::string> warnings;
std::vector<std::string> errors;
};
} // end spv namespace
#endif // GLSLANG_SPIRV_LOGGER_H

View File

@ -573,7 +573,7 @@ namespace spv {
op_fn_nop);
// Window size for context-sensitive canonicalization values
// Emperical best size from a single data set. TODO: Would be a good tunable.
// Empirical best size from a single data set. TODO: Would be a good tunable.
// 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.
@ -926,7 +926,16 @@ namespace spv {
// Count function variable use
process(
[&](spv::Op opCode, unsigned start) {
if (opCode == spv::OpVariable) { ++varUseCount[asId(start+2)]; return true; }
if (opCode == spv::OpVariable) {
++varUseCount[asId(start+2)];
return true;
} else if (opCode == spv::OpEntryPoint) {
const int wordCount = asWordCount(start);
for (int i = 4; i < wordCount; i++) {
++varUseCount[asId(start+i)];
}
return true;
} else
return false;
},

View File

@ -33,20 +33,16 @@
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//POSSIBILITY OF SUCH DAMAGE.
//
// Author: John Kessenich, LunarG
//
//
// Helper for making SPIR-V IR. Generally, this is documented in the header
// SpvBuilder.h.
//
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <unordered_set>
#include <algorithm>
#include "SpvBuilder.h"
@ -56,15 +52,17 @@
namespace spv {
Builder::Builder(unsigned int magicNumber)
: source(SourceLanguageUnknown),
Builder::Builder(unsigned int magicNumber, SpvBuildLogger* buildLogger) :
source(SourceLanguageUnknown),
sourceVersion(0),
addressModel(AddressingModelLogical),
memoryModel(MemoryModelGLSL450),
builderNumber(magicNumber),
buildPoint(0),
uniqueId(0),
mainFunction(0)
mainFunction(0),
generatingOpCodeForSpecConst(false),
logger(buildLogger)
{
clearAccessChain();
}
@ -616,7 +614,7 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned valu
return 0;
}
// Version of findScalarConstant (see above) for scalars that take two operands (e.g. a 'double').
// Version of findScalarConstant (see above) for scalars that take two operands (e.g. a 'double' or 'int64').
Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const
{
Instruction* constant;
@ -656,6 +654,21 @@ bool Builder::isConstantOpCode(Op opcode) const
}
}
// Return true if consuming 'opcode' means consuming a specialization constant.
bool Builder::isSpecConstantOpCode(Op opcode) const
{
switch (opcode) {
case OpSpecConstantTrue:
case OpSpecConstantFalse:
case OpSpecConstant:
case OpSpecConstantComposite:
case OpSpecConstantOp:
return true;
default:
return false;
}
}
Id Builder::makeBoolConstant(bool b, bool specConstant)
{
Id typeId = makeBoolType();
@ -710,6 +723,31 @@ Id Builder::makeIntConstant(Id typeId, unsigned value, bool specConstant)
return c->getResultId();
}
Id Builder::makeInt64Constant(Id typeId, unsigned long long value, bool specConstant)
{
Op opcode = specConstant ? OpSpecConstant : OpConstant;
unsigned op1 = value & 0xFFFFFFFF;
unsigned op2 = value >> 32;
// See if we already made it. Applies only to regular constants, because specialization constants
// must remain distinct for the purpose of applying a SpecId decoration.
if (! specConstant) {
Id existing = findScalarConstant(OpTypeInt, opcode, typeId, op1, op2);
if (existing)
return existing;
}
Instruction* c = new Instruction(getUniqueId(), typeId, opcode);
c->addImmediateOperand(op1);
c->addImmediateOperand(op2);
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(c));
groupedConstants[OpTypeInt].push_back(c);
module.mapInstruction(c);
return c->getResultId();
}
Id Builder::makeFloatConstant(float f, bool specConstant)
{
Op opcode = specConstant ? OpSpecConstant : OpConstant;
@ -924,7 +962,7 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat
}
// Comments in header
Function* Builder::makeMain()
Function* Builder::makeEntrypoint(const char* entryPoint)
{
assert(!mainFunction);
@ -932,8 +970,7 @@ Function* Builder::makeMain()
std::vector<Id> params;
std::vector<Decoration> precisions;
mainFunction =
makeFunctionEntry(NoPrecision, makeVoidType(), "main", params, precisions, &entry);
mainFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, precisions, &entry);
return mainFunction;
}
@ -1104,6 +1141,11 @@ Id Builder::createArrayLength(Id base, unsigned int member)
Id Builder::createCompositeExtract(Id composite, Id typeId, unsigned index)
{
// Generate code for spec constants if in spec constant operation
// generation mode.
if (generatingOpCodeForSpecConst) {
return createSpecConstantOp(OpCompositeExtract, typeId, std::vector<Id>(1, composite), std::vector<Id>(1, index));
}
Instruction* extract = new Instruction(getUniqueId(), typeId, OpCompositeExtract);
extract->addIdOperand(composite);
extract->addImmediateOperand(index);
@ -1114,6 +1156,11 @@ Id Builder::createCompositeExtract(Id composite, Id typeId, unsigned index)
Id Builder::createCompositeExtract(Id composite, Id typeId, std::vector<unsigned>& indexes)
{
// Generate code for spec constants if in spec constant operation
// generation mode.
if (generatingOpCodeForSpecConst) {
return createSpecConstantOp(OpCompositeExtract, typeId, std::vector<Id>(1, composite), indexes);
}
Instruction* extract = new Instruction(getUniqueId(), typeId, OpCompositeExtract);
extract->addIdOperand(composite);
for (int i = 0; i < (int)indexes.size(); ++i)
@ -1212,6 +1259,11 @@ void Builder::createMemoryBarrier(unsigned executionScope, unsigned memorySemant
// An opcode that has one operands, a result id, and a type
Id Builder::createUnaryOp(Op opCode, Id typeId, Id operand)
{
// Generate code for spec constants if in spec constant operation
// generation mode.
if (generatingOpCodeForSpecConst) {
return createSpecConstantOp(opCode, typeId, std::vector<Id>(1, operand), std::vector<Id>());
}
Instruction* op = new Instruction(getUniqueId(), typeId, opCode);
op->addIdOperand(operand);
buildPoint->addInstruction(std::unique_ptr<Instruction>(op));
@ -1221,6 +1273,13 @@ Id Builder::createUnaryOp(Op opCode, Id typeId, Id operand)
Id Builder::createBinOp(Op opCode, Id typeId, Id left, Id right)
{
// Generate code for spec constants if in spec constant operation
// generation mode.
if (generatingOpCodeForSpecConst) {
std::vector<Id> operands(2);
operands[0] = left; operands[1] = right;
return createSpecConstantOp(opCode, typeId, operands, std::vector<Id>());
}
Instruction* op = new Instruction(getUniqueId(), typeId, opCode);
op->addIdOperand(left);
op->addIdOperand(right);
@ -1231,6 +1290,16 @@ Id Builder::createBinOp(Op opCode, Id typeId, Id left, Id right)
Id Builder::createTriOp(Op opCode, Id typeId, Id op1, Id op2, Id op3)
{
// Generate code for spec constants if in spec constant operation
// generation mode.
if (generatingOpCodeForSpecConst) {
std::vector<Id> operands(3);
operands[0] = op1;
operands[1] = op2;
operands[2] = op3;
return createSpecConstantOp(
opCode, typeId, operands, std::vector<Id>());
}
Instruction* op = new Instruction(getUniqueId(), typeId, opCode);
op->addIdOperand(op1);
op->addIdOperand(op2);
@ -1250,6 +1319,20 @@ Id Builder::createOp(Op opCode, Id typeId, const std::vector<Id>& operands)
return op->getResultId();
}
Id Builder::createSpecConstantOp(Op opCode, Id typeId, const std::vector<Id>& operands, const std::vector<unsigned>& literals)
{
Instruction* op = new Instruction(getUniqueId(), typeId, OpSpecConstantOp);
op->addImmediateOperand((unsigned) opCode);
for (auto it = operands.cbegin(); it != operands.cend(); ++it)
op->addIdOperand(*it);
for (auto it = literals.cbegin(); it != literals.cend(); ++it)
op->addImmediateOperand(*it);
module.mapInstruction(op);
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(op));
return op->getResultId();
}
Id Builder::createFunctionCall(spv::Function* function, std::vector<spv::Id>& args)
{
Instruction* op = new Instruction(getUniqueId(), function->getReturnType(), OpFunctionCall);
@ -1268,6 +1351,11 @@ Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source,
if (channels.size() == 1)
return setPrecision(createCompositeExtract(source, typeId, channels.front()), precision);
if (generatingOpCodeForSpecConst) {
std::vector<Id> operands(2);
operands[0] = operands[1] = source;
return setPrecision(createSpecConstantOp(OpVectorShuffle, typeId, operands, channels), precision);
}
Instruction* swizzle = new Instruction(getUniqueId(), typeId, OpVectorShuffle);
assert(isVector(source));
swizzle->addIdOperand(source);
@ -1335,10 +1423,25 @@ Id Builder::smearScalar(Decoration precision, Id scalar, Id vectorType)
if (numComponents == 1)
return scalar;
Instruction* smear = new Instruction(getUniqueId(), vectorType, OpCompositeConstruct);
Instruction* smear = nullptr;
if (generatingOpCodeForSpecConst) {
auto members = std::vector<spv::Id>(numComponents, scalar);
// Sometime even in spec-constant-op mode, the temporary vector created by
// promoting a scalar might not be a spec constant. This should depend on
// the scalar.
// e.g.:
// const vec2 spec_const_result = a_spec_const_vec2 + a_front_end_const_scalar;
// In such cases, the temporary vector created from a_front_end_const_scalar
// is not a spec constant vector, even though the binary operation node is marked
// as 'specConstant' and we are in spec-constant-op mode.
auto result_id = makeCompositeConstant(vectorType, members, isSpecConstant(scalar));
smear = module.getInstruction(result_id);
} else {
smear = new Instruction(getUniqueId(), vectorType, OpCompositeConstruct);
for (int c = 0; c < numComponents; ++c)
smear->addIdOperand(scalar);
buildPoint->addInstruction(std::unique_ptr<Instruction>(smear));
}
return setPrecision(smear->getResultId(), precision);
}
@ -1413,8 +1516,10 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse,
{
if (isConstant(parameters.offset))
mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetMask);
else
else {
addCapability(CapabilityImageGatherExtended);
mask = (ImageOperandsMask)(mask | ImageOperandsOffsetMask);
}
texArgs[numArgs++] = parameters.offset;
}
if (parameters.offsets)
@ -1723,6 +1828,20 @@ Id Builder::createCompositeConstruct(Id typeId, std::vector<Id>& constituents)
assert(isAggregateType(typeId) || (getNumTypeConstituents(typeId) > 1 &&
getNumTypeConstituents(typeId) == (int)constituents.size()));
if (generatingOpCodeForSpecConst) {
// Sometime, even in spec-constant-op mode, the constant composite to be
// constructed may not be a specialization constant.
// e.g.:
// const mat2 m2 = mat2(a_spec_const, a_front_end_const, another_front_end_const, third_front_end_const);
// The first column vector should be a spec constant one, as a_spec_const is a spec constant.
// The second column vector should NOT be spec constant, as it does not contain any spec constants.
// To handle such cases, we check the constituents of the constant vector to determine whether this
// vector should be created as a spec constant.
return makeCompositeConstant(typeId, constituents,
std::any_of(constituents.begin(), constituents.end(),
[&](spv::Id id) { return isSpecConstant(id); }));
}
Instruction* op = new Instruction(getUniqueId(), typeId, OpCompositeConstruct);
for (int c = 0; c < (int)constituents.size(); ++c)
op->addIdOperand(constituents[c]);
@ -1788,6 +1907,9 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector<Id>&
int numCols = getTypeNumColumns(resultTypeId);
int numRows = getTypeNumRows(resultTypeId);
Instruction* instr = module.getInstruction(componentTypeId);
Id bitCount = instr->getIdOperand(0);
// Will use a two step process
// 1. make a compile-time 2D array of values
// 2. construct a matrix from that array
@ -1796,12 +1918,10 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector<Id>&
// initialize the array to the identity matrix
Id ids[maxMatrixSize][maxMatrixSize];
Id one = makeFloatConstant(1.0);
Id zero = makeFloatConstant(0.0);
for (int col = 0; col < 4; ++col)
{
for (int row = 0; row < 4; ++row)
{
Id one = (bitCount == 64 ? makeDoubleConstant(1.0) : makeFloatConstant(1.0));
Id zero = (bitCount == 64 ? makeDoubleConstant(0.0) : makeFloatConstant(0.0));
for (int col = 0; col < 4; ++col) {
for (int row = 0; row < 4; ++row) {
if (col == row)
ids[col][row] = one;
else
@ -2077,7 +2197,7 @@ void Builder::accessChainStore(Id rvalue)
Id base = collapseAccessChain();
if (accessChain.swizzle.size() && accessChain.component != NoResult)
MissingFunctionality("simultaneous l-value swizzle and dynamic component selection");
logger->missingFunctionality("simultaneous l-value swizzle and dynamic component selection");
// If swizzle still exists, it is out-of-order or not full, we must load the target vector,
// extract and insert elements to perform writeMask and/or swizzle.
@ -2265,7 +2385,7 @@ void Builder::eliminateDeadDecorations()
}
}
decorations.erase(std::remove_if(decorations.begin(), decorations.end(),
[&unreachable_definitions](std::unique_ptr<Instruction>& I) {
[&unreachable_definitions](std::unique_ptr<Instruction>& I) -> bool {
Instruction* inst = I.get();
Id decoration_id = inst->getIdOperand(0);
return unreachable_definitions.count(decoration_id) != 0;
@ -2383,7 +2503,7 @@ void Builder::simplifyAccessChainSwizzle()
// To the extent any swizzling can become part of the chain
// of accesses instead of a post operation, make it so.
// If 'dynamic' is true, include transfering a non-static component index,
// If 'dynamic' is true, include transferring a non-static component index,
// otherwise, only transfer static indexes.
//
// Also, Boolean vectors are likely to be special. While
@ -2484,16 +2604,4 @@ void Builder::dumpInstructions(std::vector<unsigned int>& out,
}
}
void TbdFunctionality(const char* tbd)
{
static std::unordered_set<const char*> issued;
if (issued.find(tbd) == issued.end())
{
printf("TBD functionality: %s\n", tbd);
issued.insert(tbd);
}
}
void MissingFunctionality(const char* fun) { printf("Missing functionality: %s\n", fun); }
}; // end spv namespace

View File

@ -33,10 +33,6 @@
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//POSSIBILITY OF SUCH DAMAGE.
//
// Author: John Kessenich, LunarG
//
//
// "Builder" is an interface to fully build SPIR-V IR. Allocate one of
// these to build (a thread safe) internal SPIR-V representation (IR),
@ -49,6 +45,7 @@
#ifndef SpvBuilder_H
#define SpvBuilder_H
#include "Logger.h"
#include "spirv.hpp"
#include "spvIR.h"
@ -56,13 +53,14 @@
#include <map>
#include <memory>
#include <set>
#include <sstream>
#include <stack>
namespace spv {
class Builder {
public:
Builder(unsigned int userNumber);
Builder(unsigned int userNumber, SpvBuildLogger* logger);
virtual ~Builder();
static const int maxMatrixSize = 4;
@ -155,16 +153,12 @@ public:
bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; }
bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; }
bool isConstantOpCode(Op opcode) const;
bool isSpecConstantOpCode(Op opcode) const;
bool isConstant(Id resultId) const { return isConstantOpCode(getOpCode(resultId)); }
bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; }
unsigned int getConstantScalar(Id resultId) const
{
return module.getInstruction(resultId)->getImmediateOperand(0);
}
StorageClass getStorageClass(Id resultId) const
{
return getTypeStorageClass(getTypeId(resultId));
}
bool isSpecConstant(Id resultId) const { return isSpecConstantOpCode(getOpCode(resultId)); }
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }
StorageClass getStorageClass(Id resultId) const { return getTypeStorageClass(getTypeId(resultId)); }
int getTypeNumColumns(Id typeId) const
{
@ -197,14 +191,10 @@ public:
// For making new constants (will return old constant if the requested one was already made).
Id makeBoolConstant(bool b, bool specConstant = false);
Id makeIntConstant(int i, bool specConstant = false)
{
return makeIntConstant(makeIntType(32), (unsigned)i, specConstant);
}
Id makeUintConstant(unsigned u, bool specConstant = false)
{
return makeIntConstant(makeUintType(32), u, specConstant);
}
Id makeIntConstant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(32), (unsigned)i, specConstant); }
Id makeUintConstant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(32), u, specConstant); }
Id makeInt64Constant(long long i, bool specConstant = false) { return makeInt64Constant(makeIntType(64), (unsigned long long)i, specConstant); }
Id makeUint64Constant(unsigned long long u, bool specConstant = false) { return makeInt64Constant(makeUintType(64), u, specConstant); }
Id makeFloatConstant(float f, bool specConstant = false);
Id makeDoubleConstant(double d, bool specConstant = false);
@ -224,9 +214,10 @@ 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. The returned pointer is only valid
// Make the entry-point function. The returned pointer is only valid
// for the lifetime of this builder.
Function* makeMain();
Function* makeEntrypoint(const char*);
// Make a shader-style function, and create its entry block if entry is non-zero.
// Return the function, pass back the entry.
@ -282,6 +273,7 @@ public:
Id createTriOp(Op, Id typeId, Id operand1, Id operand2, Id operand3);
Id createOp(Op, Id typeId, const std::vector<Id>& operands);
Id createFunctionCall(spv::Function*, std::vector<spv::Id>&);
Id createSpecConstantOp(Op, Id typeId, const std::vector<spv::Id>& operands, const std::vector<unsigned>& literals);
// Take an rvalue (source) and a set of channels to extract from it to
// make a new rvalue, which is returned.
@ -544,8 +536,16 @@ public:
void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock);
void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control);
// Sets to generate opcode for specialization constants.
void setToSpecConstCodeGenMode() { generatingOpCodeForSpecConst = true; }
// Sets to generate opcode for non-specialization constants (normal mode).
void setToNormalCodeGenMode() { generatingOpCodeForSpecConst = false; }
// Check if the builder is generating code for spec constants.
bool isInSpecConstCodeGenMode() { return generatingOpCodeForSpecConst; }
protected:
Id makeIntConstant(Id typeId, unsigned value, bool specConstant);
Id makeInt64Constant(Id typeId, unsigned long long value, bool specConstant);
Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) const;
Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const;
Id findCompositeConstant(Op typeClass, std::vector<Id>& comps) const;
@ -568,6 +568,7 @@ protected:
Block* buildPoint;
Id uniqueId;
Function* mainFunction;
bool generatingOpCodeForSpecConst;
AccessChain accessChain;
// special blocks of instructions for output
@ -590,14 +591,11 @@ protected:
// Our loop stack.
std::stack<LoopBlocks> loops;
// The stream for outputing warnings and errors.
SpvBuildLogger* logger;
}; // end Builder class
// Use for non-fatal notes about what's not complete
void TbdFunctionality(const char*);
// Use for fatal missing functionality
void MissingFunctionality(const char*);
}; // end spv namespace
#endif // SpvBuilder_H

View File

@ -32,10 +32,6 @@
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//POSSIBILITY OF SUCH DAMAGE.
//
// Author: John Kessenich, LunarG
//
//
// Disassembler for SPIR-V.
//

View File

@ -32,10 +32,6 @@
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//POSSIBILITY OF SUCH DAMAGE.
//
// Author: John Kessenich, LunarG
//
//
// Disassembler for SPIR-V.
//

View File

@ -32,10 +32,6 @@
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//POSSIBILITY OF SUCH DAMAGE.
//
// Author: John Kessenich, LunarG
//
//
// 1) Programatically fill in instruction/operand information.
// This can be used for disassembly, printing documentation, etc.
@ -64,7 +60,7 @@ namespace spv {
// (for non-sparse mask enums, this is the number of enumurants)
//
const int SourceLanguageCeiling = 5;
const int SourceLanguageCeiling = 6; // HLSL todo: need official enumerant
const char* SourceString(int source)
{
@ -74,6 +70,7 @@ const char* SourceString(int source)
case 2: return "GLSL";
case 3: return "OpenCL_C";
case 4: return "OpenCL_CPP";
case 5: return "HLSL";
case SourceLanguageCeiling:
default: return "Bad";

View File

@ -32,10 +32,6 @@
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//POSSIBILITY OF SUCH DAMAGE.
//
// Author: John Kessenich, LunarG
//
//
// Parameterize the SPIR-V enumerants.
//

View File

@ -61,6 +61,7 @@ enum SourceLanguage {
SourceLanguageGLSL = 2,
SourceLanguageOpenCL_C = 3,
SourceLanguageOpenCL_CPP = 4,
SourceLanguageHLSL = 5,
};
enum ExecutionModel {

View File

@ -32,10 +32,6 @@
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//POSSIBILITY OF SUCH DAMAGE.
//
// Author: John Kessenich, LunarG
//
// SPIRV-IR
//
// Simple in-memory representation (IR) of SPIRV. Just for holding

View File

@ -1,10 +0,0 @@
#!/bin/bash
rm -rf build
mkdir build
pushd build
cmake ..
cmake ..
make -j 2
make install
install/bin/glslangValidator -i ../Test/sample.vert ../Test/sample.frag
popd

View File

@ -1,16 +1,30 @@
cmake_minimum_required(VERSION 2.8)
add_library(glslang-default-resource-limits
${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp
)
set_property(TARGET glslang-default-resource-limits PROPERTY FOLDER glslang)
target_include_directories(glslang-default-resource-limits
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
PUBLIC ${PROJECT_SOURCE_DIR}
)
set(SOURCES StandAlone.cpp)
set(REMAPPER_SOURCES spirv-remap.cpp)
add_executable(glslangValidator ${SOURCES})
add_executable(spirv-remap ${REMAPPER_SOURCES})
set_property(TARGET glslangValidator PROPERTY FOLDER tools)
set_property(TARGET spirv-remap PROPERTY FOLDER tools)
glslang_set_link_args(glslangValidator)
glslang_set_link_args(spirv-remap)
set(LIBRARIES
glslang
OGLCompiler
OSDependent
SPIRV)
HLSL
SPIRV
glslang-default-resource-limits)
if(WIN32)
set(LIBRARIES ${LIBRARIES} psapi)

View File

@ -0,0 +1,444 @@
//
// 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 Google Inc. 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.
#include <cstdlib>
#include <cstring>
#include <sstream>
#include "ResourceLimits.h"
namespace glslang {
const TBuiltInResource DefaultTBuiltInResource = {
/* .MaxLights = */ 32,
/* .MaxClipPlanes = */ 6,
/* .MaxTextureUnits = */ 32,
/* .MaxTextureCoords = */ 32,
/* .MaxVertexAttribs = */ 64,
/* .MaxVertexUniformComponents = */ 4096,
/* .MaxVaryingFloats = */ 64,
/* .MaxVertexTextureImageUnits = */ 32,
/* .MaxCombinedTextureImageUnits = */ 80,
/* .MaxTextureImageUnits = */ 32,
/* .MaxFragmentUniformComponents = */ 4096,
/* .MaxDrawBuffers = */ 32,
/* .MaxVertexUniformVectors = */ 128,
/* .MaxVaryingVectors = */ 8,
/* .MaxFragmentUniformVectors = */ 16,
/* .MaxVertexOutputVectors = */ 16,
/* .MaxFragmentInputVectors = */ 15,
/* .MinProgramTexelOffset = */ -8,
/* .MaxProgramTexelOffset = */ 7,
/* .MaxClipDistances = */ 8,
/* .MaxComputeWorkGroupCountX = */ 65535,
/* .MaxComputeWorkGroupCountY = */ 65535,
/* .MaxComputeWorkGroupCountZ = */ 65535,
/* .MaxComputeWorkGroupSizeX = */ 1024,
/* .MaxComputeWorkGroupSizeY = */ 1024,
/* .MaxComputeWorkGroupSizeZ = */ 64,
/* .MaxComputeUniformComponents = */ 1024,
/* .MaxComputeTextureImageUnits = */ 16,
/* .MaxComputeImageUniforms = */ 8,
/* .MaxComputeAtomicCounters = */ 8,
/* .MaxComputeAtomicCounterBuffers = */ 1,
/* .MaxVaryingComponents = */ 60,
/* .MaxVertexOutputComponents = */ 64,
/* .MaxGeometryInputComponents = */ 64,
/* .MaxGeometryOutputComponents = */ 128,
/* .MaxFragmentInputComponents = */ 128,
/* .MaxImageUnits = */ 8,
/* .MaxCombinedImageUnitsAndFragmentOutputs = */ 8,
/* .MaxCombinedShaderOutputResources = */ 8,
/* .MaxImageSamples = */ 0,
/* .MaxVertexImageUniforms = */ 0,
/* .MaxTessControlImageUniforms = */ 0,
/* .MaxTessEvaluationImageUniforms = */ 0,
/* .MaxGeometryImageUniforms = */ 0,
/* .MaxFragmentImageUniforms = */ 8,
/* .MaxCombinedImageUniforms = */ 8,
/* .MaxGeometryTextureImageUnits = */ 16,
/* .MaxGeometryOutputVertices = */ 256,
/* .MaxGeometryTotalOutputComponents = */ 1024,
/* .MaxGeometryUniformComponents = */ 1024,
/* .MaxGeometryVaryingComponents = */ 64,
/* .MaxTessControlInputComponents = */ 128,
/* .MaxTessControlOutputComponents = */ 128,
/* .MaxTessControlTextureImageUnits = */ 16,
/* .MaxTessControlUniformComponents = */ 1024,
/* .MaxTessControlTotalOutputComponents = */ 4096,
/* .MaxTessEvaluationInputComponents = */ 128,
/* .MaxTessEvaluationOutputComponents = */ 128,
/* .MaxTessEvaluationTextureImageUnits = */ 16,
/* .MaxTessEvaluationUniformComponents = */ 1024,
/* .MaxTessPatchComponents = */ 120,
/* .MaxPatchVertices = */ 32,
/* .MaxTessGenLevel = */ 64,
/* .MaxViewports = */ 16,
/* .MaxVertexAtomicCounters = */ 0,
/* .MaxTessControlAtomicCounters = */ 0,
/* .MaxTessEvaluationAtomicCounters = */ 0,
/* .MaxGeometryAtomicCounters = */ 0,
/* .MaxFragmentAtomicCounters = */ 8,
/* .MaxCombinedAtomicCounters = */ 8,
/* .MaxAtomicCounterBindings = */ 1,
/* .MaxVertexAtomicCounterBuffers = */ 0,
/* .MaxTessControlAtomicCounterBuffers = */ 0,
/* .MaxTessEvaluationAtomicCounterBuffers = */ 0,
/* .MaxGeometryAtomicCounterBuffers = */ 0,
/* .MaxFragmentAtomicCounterBuffers = */ 1,
/* .MaxCombinedAtomicCounterBuffers = */ 1,
/* .MaxAtomicCounterBufferSize = */ 16384,
/* .MaxTransformFeedbackBuffers = */ 4,
/* .MaxTransformFeedbackInterleavedComponents = */ 64,
/* .MaxCullDistances = */ 8,
/* .MaxCombinedClipAndCullDistances = */ 8,
/* .MaxSamples = */ 4,
/* .limits = */ {
/* .nonInductiveForLoops = */ 1,
/* .whileLoops = */ 1,
/* .doWhileLoops = */ 1,
/* .generalUniformIndexing = */ 1,
/* .generalAttributeMatrixVectorIndexing = */ 1,
/* .generalVaryingIndexing = */ 1,
/* .generalSamplerIndexing = */ 1,
/* .generalVariableIndexing = */ 1,
/* .generalConstantMatrixVectorIndexing = */ 1,
}};
std::string GetDefaultTBuiltInResourceString()
{
std::ostringstream ostream;
ostream << "MaxLights " << DefaultTBuiltInResource.maxLights << "\n"
<< "MaxClipPlanes " << DefaultTBuiltInResource.maxClipPlanes << "\n"
<< "MaxTextureUnits " << DefaultTBuiltInResource.maxTextureUnits << "\n"
<< "MaxTextureCoords " << DefaultTBuiltInResource.maxTextureCoords << "\n"
<< "MaxVertexAttribs " << DefaultTBuiltInResource.maxVertexAttribs << "\n"
<< "MaxVertexUniformComponents " << DefaultTBuiltInResource.maxVertexUniformComponents << "\n"
<< "MaxVaryingFloats " << DefaultTBuiltInResource.maxVaryingFloats << "\n"
<< "MaxVertexTextureImageUnits " << DefaultTBuiltInResource.maxVertexTextureImageUnits << "\n"
<< "MaxCombinedTextureImageUnits " << DefaultTBuiltInResource.maxCombinedTextureImageUnits << "\n"
<< "MaxTextureImageUnits " << DefaultTBuiltInResource.maxTextureImageUnits << "\n"
<< "MaxFragmentUniformComponents " << DefaultTBuiltInResource.maxFragmentUniformComponents << "\n"
<< "MaxDrawBuffers " << DefaultTBuiltInResource.maxDrawBuffers << "\n"
<< "MaxVertexUniformVectors " << DefaultTBuiltInResource.maxVertexUniformVectors << "\n"
<< "MaxVaryingVectors " << DefaultTBuiltInResource.maxVaryingVectors << "\n"
<< "MaxFragmentUniformVectors " << DefaultTBuiltInResource.maxFragmentUniformVectors << "\n"
<< "MaxVertexOutputVectors " << DefaultTBuiltInResource.maxVertexOutputVectors << "\n"
<< "MaxFragmentInputVectors " << DefaultTBuiltInResource.maxFragmentInputVectors << "\n"
<< "MinProgramTexelOffset " << DefaultTBuiltInResource.minProgramTexelOffset << "\n"
<< "MaxProgramTexelOffset " << DefaultTBuiltInResource.maxProgramTexelOffset << "\n"
<< "MaxClipDistances " << DefaultTBuiltInResource.maxClipDistances << "\n"
<< "MaxComputeWorkGroupCountX " << DefaultTBuiltInResource.maxComputeWorkGroupCountX << "\n"
<< "MaxComputeWorkGroupCountY " << DefaultTBuiltInResource.maxComputeWorkGroupCountY << "\n"
<< "MaxComputeWorkGroupCountZ " << DefaultTBuiltInResource.maxComputeWorkGroupCountZ << "\n"
<< "MaxComputeWorkGroupSizeX " << DefaultTBuiltInResource.maxComputeWorkGroupSizeX << "\n"
<< "MaxComputeWorkGroupSizeY " << DefaultTBuiltInResource.maxComputeWorkGroupSizeY << "\n"
<< "MaxComputeWorkGroupSizeZ " << DefaultTBuiltInResource.maxComputeWorkGroupSizeZ << "\n"
<< "MaxComputeUniformComponents " << DefaultTBuiltInResource.maxComputeUniformComponents << "\n"
<< "MaxComputeTextureImageUnits " << DefaultTBuiltInResource.maxComputeTextureImageUnits << "\n"
<< "MaxComputeImageUniforms " << DefaultTBuiltInResource.maxComputeImageUniforms << "\n"
<< "MaxComputeAtomicCounters " << DefaultTBuiltInResource.maxComputeAtomicCounters << "\n"
<< "MaxComputeAtomicCounterBuffers " << DefaultTBuiltInResource.maxComputeAtomicCounterBuffers << "\n"
<< "MaxVaryingComponents " << DefaultTBuiltInResource.maxVaryingComponents << "\n"
<< "MaxVertexOutputComponents " << DefaultTBuiltInResource.maxVertexOutputComponents << "\n"
<< "MaxGeometryInputComponents " << DefaultTBuiltInResource.maxGeometryInputComponents << "\n"
<< "MaxGeometryOutputComponents " << DefaultTBuiltInResource.maxGeometryOutputComponents << "\n"
<< "MaxFragmentInputComponents " << DefaultTBuiltInResource.maxFragmentInputComponents << "\n"
<< "MaxImageUnits " << DefaultTBuiltInResource.maxImageUnits << "\n"
<< "MaxCombinedImageUnitsAndFragmentOutputs " << DefaultTBuiltInResource.maxCombinedImageUnitsAndFragmentOutputs << "\n"
<< "MaxCombinedShaderOutputResources " << DefaultTBuiltInResource.maxCombinedShaderOutputResources << "\n"
<< "MaxImageSamples " << DefaultTBuiltInResource.maxImageSamples << "\n"
<< "MaxVertexImageUniforms " << DefaultTBuiltInResource.maxVertexImageUniforms << "\n"
<< "MaxTessControlImageUniforms " << DefaultTBuiltInResource.maxTessControlImageUniforms << "\n"
<< "MaxTessEvaluationImageUniforms " << DefaultTBuiltInResource.maxTessEvaluationImageUniforms << "\n"
<< "MaxGeometryImageUniforms " << DefaultTBuiltInResource.maxGeometryImageUniforms << "\n"
<< "MaxFragmentImageUniforms " << DefaultTBuiltInResource.maxFragmentImageUniforms << "\n"
<< "MaxCombinedImageUniforms " << DefaultTBuiltInResource.maxCombinedImageUniforms << "\n"
<< "MaxGeometryTextureImageUnits " << DefaultTBuiltInResource.maxGeometryTextureImageUnits << "\n"
<< "MaxGeometryOutputVertices " << DefaultTBuiltInResource.maxGeometryOutputVertices << "\n"
<< "MaxGeometryTotalOutputComponents " << DefaultTBuiltInResource.maxGeometryTotalOutputComponents << "\n"
<< "MaxGeometryUniformComponents " << DefaultTBuiltInResource.maxGeometryUniformComponents << "\n"
<< "MaxGeometryVaryingComponents " << DefaultTBuiltInResource.maxGeometryVaryingComponents << "\n"
<< "MaxTessControlInputComponents " << DefaultTBuiltInResource.maxTessControlInputComponents << "\n"
<< "MaxTessControlOutputComponents " << DefaultTBuiltInResource.maxTessControlOutputComponents << "\n"
<< "MaxTessControlTextureImageUnits " << DefaultTBuiltInResource.maxTessControlTextureImageUnits << "\n"
<< "MaxTessControlUniformComponents " << DefaultTBuiltInResource.maxTessControlUniformComponents << "\n"
<< "MaxTessControlTotalOutputComponents " << DefaultTBuiltInResource.maxTessControlTotalOutputComponents << "\n"
<< "MaxTessEvaluationInputComponents " << DefaultTBuiltInResource.maxTessEvaluationInputComponents << "\n"
<< "MaxTessEvaluationOutputComponents " << DefaultTBuiltInResource.maxTessEvaluationOutputComponents << "\n"
<< "MaxTessEvaluationTextureImageUnits " << DefaultTBuiltInResource.maxTessEvaluationTextureImageUnits << "\n"
<< "MaxTessEvaluationUniformComponents " << DefaultTBuiltInResource.maxTessEvaluationUniformComponents << "\n"
<< "MaxTessPatchComponents " << DefaultTBuiltInResource.maxTessPatchComponents << "\n"
<< "MaxPatchVertices " << DefaultTBuiltInResource.maxPatchVertices << "\n"
<< "MaxTessGenLevel " << DefaultTBuiltInResource.maxTessGenLevel << "\n"
<< "MaxViewports " << DefaultTBuiltInResource.maxViewports << "\n"
<< "MaxVertexAtomicCounters " << DefaultTBuiltInResource.maxVertexAtomicCounters << "\n"
<< "MaxTessControlAtomicCounters " << DefaultTBuiltInResource.maxTessControlAtomicCounters << "\n"
<< "MaxTessEvaluationAtomicCounters " << DefaultTBuiltInResource.maxTessEvaluationAtomicCounters << "\n"
<< "MaxGeometryAtomicCounters " << DefaultTBuiltInResource.maxGeometryAtomicCounters << "\n"
<< "MaxFragmentAtomicCounters " << DefaultTBuiltInResource.maxFragmentAtomicCounters << "\n"
<< "MaxCombinedAtomicCounters " << DefaultTBuiltInResource.maxCombinedAtomicCounters << "\n"
<< "MaxAtomicCounterBindings " << DefaultTBuiltInResource.maxAtomicCounterBindings << "\n"
<< "MaxVertexAtomicCounterBuffers " << DefaultTBuiltInResource.maxVertexAtomicCounterBuffers << "\n"
<< "MaxTessControlAtomicCounterBuffers " << DefaultTBuiltInResource.maxTessControlAtomicCounterBuffers << "\n"
<< "MaxTessEvaluationAtomicCounterBuffers " << DefaultTBuiltInResource.maxTessEvaluationAtomicCounterBuffers << "\n"
<< "MaxGeometryAtomicCounterBuffers " << DefaultTBuiltInResource.maxGeometryAtomicCounterBuffers << "\n"
<< "MaxFragmentAtomicCounterBuffers " << DefaultTBuiltInResource.maxFragmentAtomicCounterBuffers << "\n"
<< "MaxCombinedAtomicCounterBuffers " << DefaultTBuiltInResource.maxCombinedAtomicCounterBuffers << "\n"
<< "MaxAtomicCounterBufferSize " << DefaultTBuiltInResource.maxAtomicCounterBufferSize << "\n"
<< "MaxTransformFeedbackBuffers " << DefaultTBuiltInResource.maxTransformFeedbackBuffers << "\n"
<< "MaxTransformFeedbackInterleavedComponents " << DefaultTBuiltInResource.maxTransformFeedbackInterleavedComponents << "\n"
<< "MaxCullDistances " << DefaultTBuiltInResource.maxCullDistances << "\n"
<< "MaxCombinedClipAndCullDistances " << DefaultTBuiltInResource.maxCombinedClipAndCullDistances << "\n"
<< "MaxSamples " << DefaultTBuiltInResource.maxSamples << "\n"
<< "nonInductiveForLoops " << DefaultTBuiltInResource.limits.nonInductiveForLoops << "\n"
<< "whileLoops " << DefaultTBuiltInResource.limits.whileLoops << "\n"
<< "doWhileLoops " << DefaultTBuiltInResource.limits.doWhileLoops << "\n"
<< "generalUniformIndexing " << DefaultTBuiltInResource.limits.generalUniformIndexing << "\n"
<< "generalAttributeMatrixVectorIndexing " << DefaultTBuiltInResource.limits.generalAttributeMatrixVectorIndexing << "\n"
<< "generalVaryingIndexing " << DefaultTBuiltInResource.limits.generalVaryingIndexing << "\n"
<< "generalSamplerIndexing " << DefaultTBuiltInResource.limits.generalSamplerIndexing << "\n"
<< "generalVariableIndexing " << DefaultTBuiltInResource.limits.generalVariableIndexing << "\n"
<< "generalConstantMatrixVectorIndexing " << DefaultTBuiltInResource.limits.generalConstantMatrixVectorIndexing << "\n"
;
return ostream.str();
}
void DecodeResourceLimits(TBuiltInResource* resources, char* config) {
const char* delims = " \t\n\r";
const char* token = strtok(config, delims);
while (token) {
const char* valueStr = strtok(0, delims);
if (valueStr == 0 || ! (valueStr[0] == '-' || (valueStr[0] >= '0' && valueStr[0] <= '9'))) {
printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", valueStr ? valueStr : "");
return;
}
int value = atoi(valueStr);
if (strcmp(token, "MaxLights") == 0)
resources->maxLights = value;
else if (strcmp(token, "MaxClipPlanes") == 0)
resources->maxClipPlanes = value;
else if (strcmp(token, "MaxTextureUnits") == 0)
resources->maxTextureUnits = value;
else if (strcmp(token, "MaxTextureCoords") == 0)
resources->maxTextureCoords = value;
else if (strcmp(token, "MaxVertexAttribs") == 0)
resources->maxVertexAttribs = value;
else if (strcmp(token, "MaxVertexUniformComponents") == 0)
resources->maxVertexUniformComponents = value;
else if (strcmp(token, "MaxVaryingFloats") == 0)
resources->maxVaryingFloats = value;
else if (strcmp(token, "MaxVertexTextureImageUnits") == 0)
resources->maxVertexTextureImageUnits = value;
else if (strcmp(token, "MaxCombinedTextureImageUnits") == 0)
resources->maxCombinedTextureImageUnits = value;
else if (strcmp(token, "MaxTextureImageUnits") == 0)
resources->maxTextureImageUnits = value;
else if (strcmp(token, "MaxFragmentUniformComponents") == 0)
resources->maxFragmentUniformComponents = value;
else if (strcmp(token, "MaxDrawBuffers") == 0)
resources->maxDrawBuffers = value;
else if (strcmp(token, "MaxVertexUniformVectors") == 0)
resources->maxVertexUniformVectors = value;
else if (strcmp(token, "MaxVaryingVectors") == 0)
resources->maxVaryingVectors = value;
else if (strcmp(token, "MaxFragmentUniformVectors") == 0)
resources->maxFragmentUniformVectors = value;
else if (strcmp(token, "MaxVertexOutputVectors") == 0)
resources->maxVertexOutputVectors = value;
else if (strcmp(token, "MaxFragmentInputVectors") == 0)
resources->maxFragmentInputVectors = value;
else if (strcmp(token, "MinProgramTexelOffset") == 0)
resources->minProgramTexelOffset = value;
else if (strcmp(token, "MaxProgramTexelOffset") == 0)
resources->maxProgramTexelOffset = value;
else if (strcmp(token, "MaxClipDistances") == 0)
resources->maxClipDistances = value;
else if (strcmp(token, "MaxComputeWorkGroupCountX") == 0)
resources->maxComputeWorkGroupCountX = value;
else if (strcmp(token, "MaxComputeWorkGroupCountY") == 0)
resources->maxComputeWorkGroupCountY = value;
else if (strcmp(token, "MaxComputeWorkGroupCountZ") == 0)
resources->maxComputeWorkGroupCountZ = value;
else if (strcmp(token, "MaxComputeWorkGroupSizeX") == 0)
resources->maxComputeWorkGroupSizeX = value;
else if (strcmp(token, "MaxComputeWorkGroupSizeY") == 0)
resources->maxComputeWorkGroupSizeY = value;
else if (strcmp(token, "MaxComputeWorkGroupSizeZ") == 0)
resources->maxComputeWorkGroupSizeZ = value;
else if (strcmp(token, "MaxComputeUniformComponents") == 0)
resources->maxComputeUniformComponents = value;
else if (strcmp(token, "MaxComputeTextureImageUnits") == 0)
resources->maxComputeTextureImageUnits = value;
else if (strcmp(token, "MaxComputeImageUniforms") == 0)
resources->maxComputeImageUniforms = value;
else if (strcmp(token, "MaxComputeAtomicCounters") == 0)
resources->maxComputeAtomicCounters = value;
else if (strcmp(token, "MaxComputeAtomicCounterBuffers") == 0)
resources->maxComputeAtomicCounterBuffers = value;
else if (strcmp(token, "MaxVaryingComponents") == 0)
resources->maxVaryingComponents = value;
else if (strcmp(token, "MaxVertexOutputComponents") == 0)
resources->maxVertexOutputComponents = value;
else if (strcmp(token, "MaxGeometryInputComponents") == 0)
resources->maxGeometryInputComponents = value;
else if (strcmp(token, "MaxGeometryOutputComponents") == 0)
resources->maxGeometryOutputComponents = value;
else if (strcmp(token, "MaxFragmentInputComponents") == 0)
resources->maxFragmentInputComponents = value;
else if (strcmp(token, "MaxImageUnits") == 0)
resources->maxImageUnits = value;
else if (strcmp(token, "MaxCombinedImageUnitsAndFragmentOutputs") == 0)
resources->maxCombinedImageUnitsAndFragmentOutputs = value;
else if (strcmp(token, "MaxCombinedShaderOutputResources") == 0)
resources->maxCombinedShaderOutputResources = value;
else if (strcmp(token, "MaxImageSamples") == 0)
resources->maxImageSamples = value;
else if (strcmp(token, "MaxVertexImageUniforms") == 0)
resources->maxVertexImageUniforms = value;
else if (strcmp(token, "MaxTessControlImageUniforms") == 0)
resources->maxTessControlImageUniforms = value;
else if (strcmp(token, "MaxTessEvaluationImageUniforms") == 0)
resources->maxTessEvaluationImageUniforms = value;
else if (strcmp(token, "MaxGeometryImageUniforms") == 0)
resources->maxGeometryImageUniforms = value;
else if (strcmp(token, "MaxFragmentImageUniforms") == 0)
resources->maxFragmentImageUniforms = value;
else if (strcmp(token, "MaxCombinedImageUniforms") == 0)
resources->maxCombinedImageUniforms = value;
else if (strcmp(token, "MaxGeometryTextureImageUnits") == 0)
resources->maxGeometryTextureImageUnits = value;
else if (strcmp(token, "MaxGeometryOutputVertices") == 0)
resources->maxGeometryOutputVertices = value;
else if (strcmp(token, "MaxGeometryTotalOutputComponents") == 0)
resources->maxGeometryTotalOutputComponents = value;
else if (strcmp(token, "MaxGeometryUniformComponents") == 0)
resources->maxGeometryUniformComponents = value;
else if (strcmp(token, "MaxGeometryVaryingComponents") == 0)
resources->maxGeometryVaryingComponents = value;
else if (strcmp(token, "MaxTessControlInputComponents") == 0)
resources->maxTessControlInputComponents = value;
else if (strcmp(token, "MaxTessControlOutputComponents") == 0)
resources->maxTessControlOutputComponents = value;
else if (strcmp(token, "MaxTessControlTextureImageUnits") == 0)
resources->maxTessControlTextureImageUnits = value;
else if (strcmp(token, "MaxTessControlUniformComponents") == 0)
resources->maxTessControlUniformComponents = value;
else if (strcmp(token, "MaxTessControlTotalOutputComponents") == 0)
resources->maxTessControlTotalOutputComponents = value;
else if (strcmp(token, "MaxTessEvaluationInputComponents") == 0)
resources->maxTessEvaluationInputComponents = value;
else if (strcmp(token, "MaxTessEvaluationOutputComponents") == 0)
resources->maxTessEvaluationOutputComponents = value;
else if (strcmp(token, "MaxTessEvaluationTextureImageUnits") == 0)
resources->maxTessEvaluationTextureImageUnits = value;
else if (strcmp(token, "MaxTessEvaluationUniformComponents") == 0)
resources->maxTessEvaluationUniformComponents = value;
else if (strcmp(token, "MaxTessPatchComponents") == 0)
resources->maxTessPatchComponents = value;
else if (strcmp(token, "MaxPatchVertices") == 0)
resources->maxPatchVertices = value;
else if (strcmp(token, "MaxTessGenLevel") == 0)
resources->maxTessGenLevel = value;
else if (strcmp(token, "MaxViewports") == 0)
resources->maxViewports = value;
else if (strcmp(token, "MaxVertexAtomicCounters") == 0)
resources->maxVertexAtomicCounters = value;
else if (strcmp(token, "MaxTessControlAtomicCounters") == 0)
resources->maxTessControlAtomicCounters = value;
else if (strcmp(token, "MaxTessEvaluationAtomicCounters") == 0)
resources->maxTessEvaluationAtomicCounters = value;
else if (strcmp(token, "MaxGeometryAtomicCounters") == 0)
resources->maxGeometryAtomicCounters = value;
else if (strcmp(token, "MaxFragmentAtomicCounters") == 0)
resources->maxFragmentAtomicCounters = value;
else if (strcmp(token, "MaxCombinedAtomicCounters") == 0)
resources->maxCombinedAtomicCounters = value;
else if (strcmp(token, "MaxAtomicCounterBindings") == 0)
resources->maxAtomicCounterBindings = value;
else if (strcmp(token, "MaxVertexAtomicCounterBuffers") == 0)
resources->maxVertexAtomicCounterBuffers = value;
else if (strcmp(token, "MaxTessControlAtomicCounterBuffers") == 0)
resources->maxTessControlAtomicCounterBuffers = value;
else if (strcmp(token, "MaxTessEvaluationAtomicCounterBuffers") == 0)
resources->maxTessEvaluationAtomicCounterBuffers = value;
else if (strcmp(token, "MaxGeometryAtomicCounterBuffers") == 0)
resources->maxGeometryAtomicCounterBuffers = value;
else if (strcmp(token, "MaxFragmentAtomicCounterBuffers") == 0)
resources->maxFragmentAtomicCounterBuffers = value;
else if (strcmp(token, "MaxCombinedAtomicCounterBuffers") == 0)
resources->maxCombinedAtomicCounterBuffers = value;
else if (strcmp(token, "MaxAtomicCounterBufferSize") == 0)
resources->maxAtomicCounterBufferSize = value;
else if (strcmp(token, "MaxTransformFeedbackBuffers") == 0)
resources->maxTransformFeedbackBuffers = value;
else if (strcmp(token, "MaxTransformFeedbackInterleavedComponents") == 0)
resources->maxTransformFeedbackInterleavedComponents = value;
else if (strcmp(token, "MaxCullDistances") == 0)
resources->maxCullDistances = value;
else if (strcmp(token, "MaxCombinedClipAndCullDistances") == 0)
resources->maxCombinedClipAndCullDistances = value;
else if (strcmp(token, "MaxSamples") == 0)
resources->maxSamples = value;
else if (strcmp(token, "nonInductiveForLoops") == 0)
resources->limits.nonInductiveForLoops = (value != 0);
else if (strcmp(token, "whileLoops") == 0)
resources->limits.whileLoops = (value != 0);
else if (strcmp(token, "doWhileLoops") == 0)
resources->limits.doWhileLoops = (value != 0);
else if (strcmp(token, "generalUniformIndexing") == 0)
resources->limits.generalUniformIndexing = (value != 0);
else if (strcmp(token, "generalAttributeMatrixVectorIndexing") == 0)
resources->limits.generalAttributeMatrixVectorIndexing = (value != 0);
else if (strcmp(token, "generalVaryingIndexing") == 0)
resources->limits.generalVaryingIndexing = (value != 0);
else if (strcmp(token, "generalSamplerIndexing") == 0)
resources->limits.generalSamplerIndexing = (value != 0);
else if (strcmp(token, "generalVariableIndexing") == 0)
resources->limits.generalVariableIndexing = (value != 0);
else if (strcmp(token, "generalConstantMatrixVectorIndexing") == 0)
resources->limits.generalConstantMatrixVectorIndexing = (value != 0);
else
printf("Warning: unrecognized limit (%s) in configuration file.\n", token);
token = strtok(0, delims);
}
}
} // end namespace glslang

View File

@ -0,0 +1,57 @@
//
// 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 Google Inc. 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.
#ifndef _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_
#define _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_
#include <string>
#include "glslang/Include/ResourceLimits.h"
namespace glslang {
// These are the default resources for TBuiltInResources, used for both
// - parsing this string for the case where the user didn't supply one,
// - dumping out a template for user construction of a config file.
extern const TBuiltInResource DefaultTBuiltInResource;
// Returns the DefaultTBuiltInResource as a human-readable string.
std::string GetDefaultTBuiltInResourceString();
// Decodes the resource limits from |config| to |resources|.
void DecodeResourceLimits(TBuiltInResource* resources, char* config);
} // end namespace glslang
#endif // _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_

View File

@ -37,6 +37,7 @@
// this only applies to the standalone wrapper, not the front end in general
#define _CRT_SECURE_NO_WARNINGS
#include "ResourceLimits.h"
#include "Worklist.h"
#include "./../glslang/Include/ShHandle.h"
#include "./../glslang/Include/revision.h"
@ -74,6 +75,7 @@ enum TOptions {
EOptionVulkanRules = 0x2000,
EOptionDefaultDesktop = 0x4000,
EOptionOutputPreprocessed = 0x8000,
EOptionReadHlsl = 0x10000,
};
//
@ -111,108 +113,7 @@ TBuiltInResource Resources;
std::string ConfigFile;
//
// These are the default resources for TBuiltInResources, used for both
// - parsing this string for the case where the user didn't supply one
// - dumping out a template for user construction of a config file
//
const char* DefaultConfig =
"MaxLights 32\n"
"MaxClipPlanes 6\n"
"MaxTextureUnits 32\n"
"MaxTextureCoords 32\n"
"MaxVertexAttribs 64\n"
"MaxVertexUniformComponents 4096\n"
"MaxVaryingFloats 64\n"
"MaxVertexTextureImageUnits 32\n"
"MaxCombinedTextureImageUnits 80\n"
"MaxTextureImageUnits 32\n"
"MaxFragmentUniformComponents 4096\n"
"MaxDrawBuffers 32\n"
"MaxVertexUniformVectors 128\n"
"MaxVaryingVectors 8\n"
"MaxFragmentUniformVectors 16\n"
"MaxVertexOutputVectors 16\n"
"MaxFragmentInputVectors 15\n"
"MinProgramTexelOffset -8\n"
"MaxProgramTexelOffset 7\n"
"MaxClipDistances 8\n"
"MaxComputeWorkGroupCountX 65535\n"
"MaxComputeWorkGroupCountY 65535\n"
"MaxComputeWorkGroupCountZ 65535\n"
"MaxComputeWorkGroupSizeX 1024\n"
"MaxComputeWorkGroupSizeY 1024\n"
"MaxComputeWorkGroupSizeZ 64\n"
"MaxComputeUniformComponents 1024\n"
"MaxComputeTextureImageUnits 16\n"
"MaxComputeImageUniforms 8\n"
"MaxComputeAtomicCounters 8\n"
"MaxComputeAtomicCounterBuffers 1\n"
"MaxVaryingComponents 60\n"
"MaxVertexOutputComponents 64\n"
"MaxGeometryInputComponents 64\n"
"MaxGeometryOutputComponents 128\n"
"MaxFragmentInputComponents 128\n"
"MaxImageUnits 8\n"
"MaxCombinedImageUnitsAndFragmentOutputs 8\n"
"MaxCombinedShaderOutputResources 8\n"
"MaxImageSamples 0\n"
"MaxVertexImageUniforms 0\n"
"MaxTessControlImageUniforms 0\n"
"MaxTessEvaluationImageUniforms 0\n"
"MaxGeometryImageUniforms 0\n"
"MaxFragmentImageUniforms 8\n"
"MaxCombinedImageUniforms 8\n"
"MaxGeometryTextureImageUnits 16\n"
"MaxGeometryOutputVertices 256\n"
"MaxGeometryTotalOutputComponents 1024\n"
"MaxGeometryUniformComponents 1024\n"
"MaxGeometryVaryingComponents 64\n"
"MaxTessControlInputComponents 128\n"
"MaxTessControlOutputComponents 128\n"
"MaxTessControlTextureImageUnits 16\n"
"MaxTessControlUniformComponents 1024\n"
"MaxTessControlTotalOutputComponents 4096\n"
"MaxTessEvaluationInputComponents 128\n"
"MaxTessEvaluationOutputComponents 128\n"
"MaxTessEvaluationTextureImageUnits 16\n"
"MaxTessEvaluationUniformComponents 1024\n"
"MaxTessPatchComponents 120\n"
"MaxPatchVertices 32\n"
"MaxTessGenLevel 64\n"
"MaxViewports 16\n"
"MaxVertexAtomicCounters 0\n"
"MaxTessControlAtomicCounters 0\n"
"MaxTessEvaluationAtomicCounters 0\n"
"MaxGeometryAtomicCounters 0\n"
"MaxFragmentAtomicCounters 8\n"
"MaxCombinedAtomicCounters 8\n"
"MaxAtomicCounterBindings 1\n"
"MaxVertexAtomicCounterBuffers 0\n"
"MaxTessControlAtomicCounterBuffers 0\n"
"MaxTessEvaluationAtomicCounterBuffers 0\n"
"MaxGeometryAtomicCounterBuffers 0\n"
"MaxFragmentAtomicCounterBuffers 1\n"
"MaxCombinedAtomicCounterBuffers 1\n"
"MaxAtomicCounterBufferSize 16384\n"
"MaxTransformFeedbackBuffers 4\n"
"MaxTransformFeedbackInterleavedComponents 64\n"
"MaxCullDistances 8\n"
"MaxCombinedClipAndCullDistances 8\n"
"MaxSamples 4\n"
"nonInductiveForLoops 1\n"
"whileLoops 1\n"
"doWhileLoops 1\n"
"generalUniformIndexing 1\n"
"generalAttributeMatrixVectorIndexing 1\n"
"generalVaryingIndexing 1\n"
"generalSamplerIndexing 1\n"
"generalVariableIndexing 1\n"
"generalConstantMatrixVectorIndexing 1\n"
;
//
// Parse either a .conf file provided by the user or the default string above.
// Parse either a .conf file provided by the user or the default from glslang::DefaultTBuiltInResource
//
void ProcessConfigFile()
{
@ -229,210 +130,12 @@ void ProcessConfigFile()
}
if (config == 0) {
config = new char[strlen(DefaultConfig) + 1];
strcpy(config, DefaultConfig);
}
const char* delims = " \t\n\r";
const char* token = strtok(config, delims);
while (token) {
const char* valueStr = strtok(0, delims);
if (valueStr == 0 || ! (valueStr[0] == '-' || (valueStr[0] >= '0' && valueStr[0] <= '9'))) {
printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", valueStr ? valueStr : "");
Resources = glslang::DefaultTBuiltInResource;
return;
}
int value = atoi(valueStr);
if (strcmp(token, "MaxLights") == 0)
Resources.maxLights = value;
else if (strcmp(token, "MaxClipPlanes") == 0)
Resources.maxClipPlanes = value;
else if (strcmp(token, "MaxTextureUnits") == 0)
Resources.maxTextureUnits = value;
else if (strcmp(token, "MaxTextureCoords") == 0)
Resources.maxTextureCoords = value;
else if (strcmp(token, "MaxVertexAttribs") == 0)
Resources.maxVertexAttribs = value;
else if (strcmp(token, "MaxVertexUniformComponents") == 0)
Resources.maxVertexUniformComponents = value;
else if (strcmp(token, "MaxVaryingFloats") == 0)
Resources.maxVaryingFloats = value;
else if (strcmp(token, "MaxVertexTextureImageUnits") == 0)
Resources.maxVertexTextureImageUnits = value;
else if (strcmp(token, "MaxCombinedTextureImageUnits") == 0)
Resources.maxCombinedTextureImageUnits = value;
else if (strcmp(token, "MaxTextureImageUnits") == 0)
Resources.maxTextureImageUnits = value;
else if (strcmp(token, "MaxFragmentUniformComponents") == 0)
Resources.maxFragmentUniformComponents = value;
else if (strcmp(token, "MaxDrawBuffers") == 0)
Resources.maxDrawBuffers = value;
else if (strcmp(token, "MaxVertexUniformVectors") == 0)
Resources.maxVertexUniformVectors = value;
else if (strcmp(token, "MaxVaryingVectors") == 0)
Resources.maxVaryingVectors = value;
else if (strcmp(token, "MaxFragmentUniformVectors") == 0)
Resources.maxFragmentUniformVectors = value;
else if (strcmp(token, "MaxVertexOutputVectors") == 0)
Resources.maxVertexOutputVectors = value;
else if (strcmp(token, "MaxFragmentInputVectors") == 0)
Resources.maxFragmentInputVectors = value;
else if (strcmp(token, "MinProgramTexelOffset") == 0)
Resources.minProgramTexelOffset = value;
else if (strcmp(token, "MaxProgramTexelOffset") == 0)
Resources.maxProgramTexelOffset = value;
else if (strcmp(token, "MaxClipDistances") == 0)
Resources.maxClipDistances = value;
else if (strcmp(token, "MaxComputeWorkGroupCountX") == 0)
Resources.maxComputeWorkGroupCountX = value;
else if (strcmp(token, "MaxComputeWorkGroupCountY") == 0)
Resources.maxComputeWorkGroupCountY = value;
else if (strcmp(token, "MaxComputeWorkGroupCountZ") == 0)
Resources.maxComputeWorkGroupCountZ = value;
else if (strcmp(token, "MaxComputeWorkGroupSizeX") == 0)
Resources.maxComputeWorkGroupSizeX = value;
else if (strcmp(token, "MaxComputeWorkGroupSizeY") == 0)
Resources.maxComputeWorkGroupSizeY = value;
else if (strcmp(token, "MaxComputeWorkGroupSizeZ") == 0)
Resources.maxComputeWorkGroupSizeZ = value;
else if (strcmp(token, "MaxComputeUniformComponents") == 0)
Resources.maxComputeUniformComponents = value;
else if (strcmp(token, "MaxComputeTextureImageUnits") == 0)
Resources.maxComputeTextureImageUnits = value;
else if (strcmp(token, "MaxComputeImageUniforms") == 0)
Resources.maxComputeImageUniforms = value;
else if (strcmp(token, "MaxComputeAtomicCounters") == 0)
Resources.maxComputeAtomicCounters = value;
else if (strcmp(token, "MaxComputeAtomicCounterBuffers") == 0)
Resources.maxComputeAtomicCounterBuffers = value;
else if (strcmp(token, "MaxVaryingComponents") == 0)
Resources.maxVaryingComponents = value;
else if (strcmp(token, "MaxVertexOutputComponents") == 0)
Resources.maxVertexOutputComponents = value;
else if (strcmp(token, "MaxGeometryInputComponents") == 0)
Resources.maxGeometryInputComponents = value;
else if (strcmp(token, "MaxGeometryOutputComponents") == 0)
Resources.maxGeometryOutputComponents = value;
else if (strcmp(token, "MaxFragmentInputComponents") == 0)
Resources.maxFragmentInputComponents = value;
else if (strcmp(token, "MaxImageUnits") == 0)
Resources.maxImageUnits = value;
else if (strcmp(token, "MaxCombinedImageUnitsAndFragmentOutputs") == 0)
Resources.maxCombinedImageUnitsAndFragmentOutputs = value;
else if (strcmp(token, "MaxCombinedShaderOutputResources") == 0)
Resources.maxCombinedShaderOutputResources = value;
else if (strcmp(token, "MaxImageSamples") == 0)
Resources.maxImageSamples = value;
else if (strcmp(token, "MaxVertexImageUniforms") == 0)
Resources.maxVertexImageUniforms = value;
else if (strcmp(token, "MaxTessControlImageUniforms") == 0)
Resources.maxTessControlImageUniforms = value;
else if (strcmp(token, "MaxTessEvaluationImageUniforms") == 0)
Resources.maxTessEvaluationImageUniforms = value;
else if (strcmp(token, "MaxGeometryImageUniforms") == 0)
Resources.maxGeometryImageUniforms = value;
else if (strcmp(token, "MaxFragmentImageUniforms") == 0)
Resources.maxFragmentImageUniforms = value;
else if (strcmp(token, "MaxCombinedImageUniforms") == 0)
Resources.maxCombinedImageUniforms = value;
else if (strcmp(token, "MaxGeometryTextureImageUnits") == 0)
Resources.maxGeometryTextureImageUnits = value;
else if (strcmp(token, "MaxGeometryOutputVertices") == 0)
Resources.maxGeometryOutputVertices = value;
else if (strcmp(token, "MaxGeometryTotalOutputComponents") == 0)
Resources.maxGeometryTotalOutputComponents = value;
else if (strcmp(token, "MaxGeometryUniformComponents") == 0)
Resources.maxGeometryUniformComponents = value;
else if (strcmp(token, "MaxGeometryVaryingComponents") == 0)
Resources.maxGeometryVaryingComponents = value;
else if (strcmp(token, "MaxTessControlInputComponents") == 0)
Resources.maxTessControlInputComponents = value;
else if (strcmp(token, "MaxTessControlOutputComponents") == 0)
Resources.maxTessControlOutputComponents = value;
else if (strcmp(token, "MaxTessControlTextureImageUnits") == 0)
Resources.maxTessControlTextureImageUnits = value;
else if (strcmp(token, "MaxTessControlUniformComponents") == 0)
Resources.maxTessControlUniformComponents = value;
else if (strcmp(token, "MaxTessControlTotalOutputComponents") == 0)
Resources.maxTessControlTotalOutputComponents = value;
else if (strcmp(token, "MaxTessEvaluationInputComponents") == 0)
Resources.maxTessEvaluationInputComponents = value;
else if (strcmp(token, "MaxTessEvaluationOutputComponents") == 0)
Resources.maxTessEvaluationOutputComponents = value;
else if (strcmp(token, "MaxTessEvaluationTextureImageUnits") == 0)
Resources.maxTessEvaluationTextureImageUnits = value;
else if (strcmp(token, "MaxTessEvaluationUniformComponents") == 0)
Resources.maxTessEvaluationUniformComponents = value;
else if (strcmp(token, "MaxTessPatchComponents") == 0)
Resources.maxTessPatchComponents = value;
else if (strcmp(token, "MaxPatchVertices") == 0)
Resources.maxPatchVertices = value;
else if (strcmp(token, "MaxTessGenLevel") == 0)
Resources.maxTessGenLevel = value;
else if (strcmp(token, "MaxViewports") == 0)
Resources.maxViewports = value;
else if (strcmp(token, "MaxVertexAtomicCounters") == 0)
Resources.maxVertexAtomicCounters = value;
else if (strcmp(token, "MaxTessControlAtomicCounters") == 0)
Resources.maxTessControlAtomicCounters = value;
else if (strcmp(token, "MaxTessEvaluationAtomicCounters") == 0)
Resources.maxTessEvaluationAtomicCounters = value;
else if (strcmp(token, "MaxGeometryAtomicCounters") == 0)
Resources.maxGeometryAtomicCounters = value;
else if (strcmp(token, "MaxFragmentAtomicCounters") == 0)
Resources.maxFragmentAtomicCounters = value;
else if (strcmp(token, "MaxCombinedAtomicCounters") == 0)
Resources.maxCombinedAtomicCounters = value;
else if (strcmp(token, "MaxAtomicCounterBindings") == 0)
Resources.maxAtomicCounterBindings = value;
else if (strcmp(token, "MaxVertexAtomicCounterBuffers") == 0)
Resources.maxVertexAtomicCounterBuffers = value;
else if (strcmp(token, "MaxTessControlAtomicCounterBuffers") == 0)
Resources.maxTessControlAtomicCounterBuffers = value;
else if (strcmp(token, "MaxTessEvaluationAtomicCounterBuffers") == 0)
Resources.maxTessEvaluationAtomicCounterBuffers = value;
else if (strcmp(token, "MaxGeometryAtomicCounterBuffers") == 0)
Resources.maxGeometryAtomicCounterBuffers = value;
else if (strcmp(token, "MaxFragmentAtomicCounterBuffers") == 0)
Resources.maxFragmentAtomicCounterBuffers = value;
else if (strcmp(token, "MaxCombinedAtomicCounterBuffers") == 0)
Resources.maxCombinedAtomicCounterBuffers = value;
else if (strcmp(token, "MaxAtomicCounterBufferSize") == 0)
Resources.maxAtomicCounterBufferSize = value;
else if (strcmp(token, "MaxTransformFeedbackBuffers") == 0)
Resources.maxTransformFeedbackBuffers = value;
else if (strcmp(token, "MaxTransformFeedbackInterleavedComponents") == 0)
Resources.maxTransformFeedbackInterleavedComponents = value;
else if (strcmp(token, "MaxCullDistances") == 0)
Resources.maxCullDistances = value;
else if (strcmp(token, "MaxCombinedClipAndCullDistances") == 0)
Resources.maxCombinedClipAndCullDistances = value;
else if (strcmp(token, "MaxSamples") == 0)
Resources.maxSamples = value;
glslang::DecodeResourceLimits(&Resources, config);
else if (strcmp(token, "nonInductiveForLoops") == 0)
Resources.limits.nonInductiveForLoops = (value != 0);
else if (strcmp(token, "whileLoops") == 0)
Resources.limits.whileLoops = (value != 0);
else if (strcmp(token, "doWhileLoops") == 0)
Resources.limits.doWhileLoops = (value != 0);
else if (strcmp(token, "generalUniformIndexing") == 0)
Resources.limits.generalUniformIndexing = (value != 0);
else if (strcmp(token, "generalAttributeMatrixVectorIndexing") == 0)
Resources.limits.generalAttributeMatrixVectorIndexing = (value != 0);
else if (strcmp(token, "generalVaryingIndexing") == 0)
Resources.limits.generalVaryingIndexing = (value != 0);
else if (strcmp(token, "generalSamplerIndexing") == 0)
Resources.limits.generalSamplerIndexing = (value != 0);
else if (strcmp(token, "generalVariableIndexing") == 0)
Resources.limits.generalVariableIndexing = (value != 0);
else if (strcmp(token, "generalConstantMatrixVectorIndexing") == 0)
Resources.limits.generalConstantMatrixVectorIndexing = (value != 0);
else
printf("Warning: unrecognized limit (%s) in configuration file.\n", token);
token = strtok(0, delims);
}
if (configStrings)
FreeFileData(configStrings);
else
@ -449,6 +152,7 @@ int NumWorkItems = 0;
int Options = 0;
const char* ExecutableName = nullptr;
const char* binaryFileName = nullptr;
const char* entryPointName = nullptr;
//
// Create the default name for saving a binary if -o is not provided.
@ -537,6 +241,19 @@ void ProcessArguments(int argc, char* argv[])
case 'd':
Options |= EOptionDefaultDesktop;
break;
case 'D':
Options |= EOptionReadHlsl;
break;
case 'e':
// HLSL todo: entry point handle needs much more sophistication.
// This is okay for one compilation unit with one entry point.
entryPointName = argv[1];
if (argc > 0) {
argc--;
argv++;
} else
Error("no <entry-point> provided for -e");
break;
case 'h':
usage();
break;
@ -616,6 +333,8 @@ void SetMessageOptions(EShMessages& messages)
messages = (EShMessages)(messages | EShMsgVulkanRules);
if (Options & EOptionOutputPreprocessed)
messages = (EShMessages)(messages | EShMsgOnlyPreprocessor);
if (Options & EOptionReadHlsl)
messages = (EShMessages)(messages | EShMsgReadHlsl);
}
//
@ -693,6 +412,8 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
const auto &compUnit = *it;
glslang::TShader* shader = new glslang::TShader(compUnit.stage);
shader->setStrings(compUnit.text, 1);
if (entryPointName) // HLSL todo: this needs to be tracked per compUnits
shader->setEntryPoint(entryPointName);
shaders.push_back(shader);
const int defaultVersion = Options & EOptionDefaultDesktop? 110: 100;
@ -727,20 +448,24 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
// Program-level processing...
//
// Link
if (! (Options & EOptionOutputPreprocessed) && ! program.link(messages))
LinkFailed = true;
// Report
if (! (Options & EOptionSuppressInfolog) &&
! (Options & EOptionMemoryLeakMode)) {
PutsIfNonEmpty(program.getInfoLog());
PutsIfNonEmpty(program.getInfoDebugLog());
}
// Reflect
if (Options & EOptionDumpReflection) {
program.buildReflection();
program.dumpReflection();
}
// Dump SPIR-V
if (Options & EOptionSpv) {
if (CompileFailed || LinkFailed)
printf("SPIR-V is not generated for failed compile or link\n");
@ -748,11 +473,14 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
for (int stage = 0; stage < EShLangCount; ++stage) {
if (program.getIntermediate((EShLanguage)stage)) {
std::vector<unsigned int> spirv;
glslang::GlslangToSpv(*program.getIntermediate((EShLanguage)stage), spirv);
std::string warningsErrors;
spv::SpvBuildLogger logger;
glslang::GlslangToSpv(*program.getIntermediate((EShLanguage)stage), spirv, &logger);
// 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)) {
printf("%s", logger.getAllMessages().c_str());
glslang::OutputSpv(spirv, GetBinaryName((EShLanguage)stage));
if (Options & EOptionHumanReadableSpv) {
spv::Disassemble(std::cout, spirv);
@ -832,7 +560,7 @@ int C_DECL main(int argc, char* argv[])
ProcessArguments(argc, argv);
if (Options & EOptionDumpConfig) {
printf("%s", DefaultConfig);
printf("%s", glslang::GetDefaultTBuiltInResourceString().c_str());
if (Worklist.empty())
return ESuccess;
}
@ -1031,6 +759,8 @@ void usage()
" creates the default configuration file (redirect to a .conf file)\n"
" -d default to desktop (#version 110) when there is no shader #version\n"
" (default is ES version 100)\n"
" -D input is HLSL\n"
" -e specify entry-point name\n"
" -h print this usage message\n"
" -i intermediate tree (glslang AST) is printed out\n"
" -l link all input files together to form a single module\n"

View File

@ -148,3 +148,5 @@ void fooKeyMem()
{
KeyMem.precise;
}
layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range

View File

@ -100,3 +100,6 @@ void foop()
patch out pinbn {
int a;
} pinbi;
invariant precise out vec4 badOrder[]; // ERROR, precise must appear first
void badp(out precise float f); // ERROR, precise must appear first

30
Test/420.comp Executable file
View File

@ -0,0 +1,30 @@
#version 420
layout(local_size_x = 2) in; // ERROR, no compute
#extension GL_ARB_compute_shader : enable
layout(local_size_x = 2, local_size_y = 4, local_size_z = 6) in;
shared vec3 sfoo;
void main()
{
sfoo = vec3(gl_WorkGroupSize.x, gl_WorkGroupSize.y, gl_WorkGroupSize.z);
sfoo += gl_WorkGroupSize + gl_NumWorkGroups + gl_WorkGroupID + gl_LocalInvocationID + gl_GlobalInvocationID;
sfoo *= gl_LocalInvocationIndex;
sfoo += gl_MaxComputeWorkGroupCount + gl_MaxComputeWorkGroupSize;
sfoo *= gl_MaxComputeUniformComponents +
gl_MaxComputeTextureImageUnits +
gl_MaxComputeImageUniforms +
gl_MaxComputeAtomicCounters +
gl_MaxComputeAtomicCounterBuffers;
barrier();
memoryBarrier();
memoryBarrierAtomicCounter();
memoryBarrierBuffer();
memoryBarrierImage();
memoryBarrierShared();
groupMemoryBarrier();
}

View File

@ -47,3 +47,10 @@ void foo()
s += imageSamples(i2dmsa);
float f = imageAtomicExchange(i2dmsa, ivec3(in3), 2, 4.5);
}
in float gl_CullDistance[6];
float cull(int i)
{
return (i >= 6) ? gl_CullDistance[5] : gl_CullDistance[i];
}

View File

@ -2,7 +2,6 @@
ERROR: 0:3: '{ } style initializers' : not supported with this profile: es
ERROR: 0:3: 'initializer' : not supported for this version or the enabled extensions
ERROR: 0:3: 'array initializer' : not supported for this version or the enabled extensions
ERROR: 0:3: 'non-constant global initializer' : not supported with this profile: es
ERROR: 0:4: '#version' : must occur first in shader
ERROR: 0:7: 'attribute' : not supported in this stage: fragment
ERROR: 0:7: 'float' : type requires declaration of default precision qualifier
@ -86,7 +85,7 @@ ERROR: 0:194: 'a' : can't use function syntax on variable
ERROR: 0:214: 'non-constant global initializer' : not supported with this profile: es
ERROR: 0:3000: '#error' : line of this error should be 3000
ERROR: 0:3002: '' : syntax error
ERROR: 78 compilation errors. No code generated.
ERROR: 77 compilation errors. No code generated.
Shader version: 100

View File

@ -22,3 +22,7 @@ ERROR: 0:65: 'limitations' : Non-constant-index-expression
ERROR: 20 compilation errors. No code generated.
Linked vertex stage:

View File

@ -4,14 +4,16 @@ ERROR: 0:17: 'b' : function name is redeclaration of existing name
ERROR: 0:20: 'c' : redefinition
ERROR: 0:22: 'f' : redefinition
ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es
ERROR: 0:24: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es
ERROR: 0:25: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
ERROR: 0:38: 'local function declaration' : not supported with this profile: es
ERROR: 0:43: 'sin' : can't use function syntax on variable
ERROR: 0:57: 'z' : undeclared identifier
ERROR: 0:57: 'z' : redefinition
ERROR: 0:73: 'degrees' : can't use function syntax on variable
ERROR: 0:76: 'vertex-shader struct output' : not supported for this version or the enabled extensions
ERROR: 12 compilation errors. No code generated.
ERROR: 14 compilation errors. No code generated.
Shader version: 100

View File

@ -215,9 +215,9 @@ ERROR: node is still EOpNull!
0:33 Constant:
0:33 3 (const int)
0:33 direct index (temp float ClipDistance)
0:33 gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:33 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
@ -230,8 +230,8 @@ ERROR: node is still EOpNull!
0:34 Constant:
0:34 0 (const uint)
0:34 gl_Position: direct index for structure (in 4-component vector of float Position)
0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:34 Constant:
0:34 0 (const int)
0:34 Constant:
@ -242,8 +242,8 @@ ERROR: node is still EOpNull!
0:35 Constant:
0:35 1 (const uint)
0:35 gl_PointSize: direct index for structure (in float PointSize)
0:35 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:35 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:35 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:35 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:35 Constant:
0:35 3 (const int)
0:35 Constant:
@ -293,7 +293,7 @@ ERROR: node is still EOpNull!
0:? 'toF' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
0:? 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:? 'ov0' (layout(stream=0 ) out 4-component vector of float)
0:? 'ov4' (layout(stream=4 ) out 4-component vector of float)
0:? 'o1v0' (layout(stream=0 ) out 4-component vector of float)

View File

@ -229,7 +229,10 @@ ERROR: 0:74: 'in' : type must be an array: ina
ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
ERROR: 0:83: 'location' : overlapping use of location 4
ERROR: 0:87: 'location' : overlapping use of location 4
ERROR: 18 compilation errors. No code generated.
ERROR: 0:104: '' : precise qualifier must appear first
ERROR: 0:105: '' : precise qualifier must appear first
ERROR: 0:105: '' : precise qualifier must appear first
ERROR: 21 compilation errors. No code generated.
Shader version: 400
@ -391,20 +394,20 @@ ERROR: node is still EOpNull!
0:91 Function Parameters:
0:? Sequence
0:95 multiply second child into first child (temp 3-component vector of float)
0:95 'pv3' (temp 3-component vector of float)
0:95 'pv3' (temp 3-component vector of float)
0:95 'pv3' (noContraction temp 3-component vector of float)
0:95 'pv3' (noContraction temp 3-component vector of float)
0:96 move second child to first child (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 fma (global 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:97 move second child to first child (temp double)
0:97 'd' (temp double)
0:97 'd' (noContraction temp double)
0:97 fma (global double)
0:97 'd' (temp double)
0:97 'd' (temp double)
0:97 'd' (temp double)
0:97 'd' (noContraction temp double)
0:97 'd' (noContraction temp double)
0:97 'd' (noContraction temp double)
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'outa' (global 4-element array of int)
@ -420,8 +423,9 @@ ERROR: node is still EOpNull!
0:? 'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
0:? 'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
0:? 'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
0:? 'pv3' (temp 3-component vector of float)
0:? 'pv3' (noContraction temp 3-component vector of float)
0:? 'pinbi' (patch out block{out int a})
0:? 'badOrder' (invariant noContraction out 4-element array of 4-component vector of float)
400.tese
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
@ -563,7 +567,7 @@ ERROR: node is still EOpNull!
0:? 'badp2' (flat patch in 4-component vector of float)
0:? 'badp3' (noperspective patch in 4-component vector of float)
0:? 'badp4' (patch sample in 3-component vector of float)
0:? 'gl_in' (in 32-element array of block{in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance gl_ClipDistance})
0:? 'ina' (in 2-component vector of float)
0:? 'inb' (in 32-element array of 2-component vector of float)
0:? 'inc' (in 32-element array of 2-component vector of float)
@ -716,18 +720,18 @@ ERROR: node is still EOpNull!
420.tese
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:7: '=' : cannot convert from 'global 3-element array of float' to 'global 2-element array of float'
ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): global 2-component vector of float
ERROR: 0:9: 'initializer list' : wrong number of matrix columns: global 3X3 matrix of float
ERROR: 0:10: 'initializer list' : wrong number of matrix columns: global 2X2 matrix of float
ERROR: 0:7: '=' : cannot convert from 'const 3-element array of float' to 'global 2-element array of float'
ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): temp 2-component vector of float
ERROR: 0:9: 'initializer list' : wrong number of matrix columns: temp 3X3 matrix of float
ERROR: 0:10: 'initializer list' : wrong number of matrix columns: temp 2X2 matrix of float
ERROR: 0:25: 'initializer list' : wrong number of structure members
ERROR: 0:27: '=' : cannot convert from 'const bool' to 'global int'
ERROR: 0:28: 'constructor' : cannot convert parameter 2 from 'const float' to 'global 4-component vector of float'
ERROR: 0:28: 'constructor' : cannot convert parameter 2 from 'const float' to 'temp 4-component vector of float'
ERROR: 0:29: 'constructor' : cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float'
ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments
ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'
ERROR: 0:30: 'initializer list' : wrong number of matrix columns: global 4X2 matrix of float
ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'global structure{global float s, global float t}'
ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float
ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'temp structure{global float s, global float t}'
ERROR: 0:58: 'initializer list' : wrong number of structure members
ERROR: 13 compilation errors. No code generated.
@ -776,7 +780,7 @@ ERROR: node is still EOpNull!
0:68 Sequence
0:68 move second child to first child (temp 3-component vector of float)
0:68 'bv3' (global 3-component vector of float)
0:68 Construct vec3 (global 3-component vector of float)
0:68 Construct vec3 (temp 3-component vector of float)
0:68 'vc1' (global float)
0:68 'vc2' (global float)
0:68 'vc3' (global float)
@ -932,8 +936,8 @@ vertices = 4
0:20 move second child to first child (temp 4-component vector of float)
0:20 'p' (temp 4-component vector of float)
0:20 gl_Position: direct index for structure (in 4-component vector of float Position)
0:20 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:20 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:20 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:20 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:20 Constant:
0:20 1 (const int)
0:20 Constant:
@ -942,8 +946,8 @@ vertices = 4
0:21 move second child to first child (temp float)
0:21 'ps' (temp float)
0:21 gl_PointSize: direct index for structure (in float PointSize)
0:21 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:21 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:21 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:21 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:21 Constant:
0:21 1 (const int)
0:21 Constant:
@ -952,9 +956,9 @@ vertices = 4
0:22 move second child to first child (temp float)
0:22 'cd' (temp float)
0:22 direct index (temp float ClipDistance)
0:22 gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
0:22 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:22 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:22 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
0:22 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:22 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:22 Constant:
0:22 1 (const int)
0:22 Constant:
@ -975,25 +979,25 @@ vertices = 4
0:26 'gl_InvocationID' (in int InvocationID)
0:28 move second child to first child (temp 4-component vector of float)
0:28 gl_Position: direct index for structure (out 4-component vector of float Position)
0:28 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:28 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:28 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:28 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:28 'gl_InvocationID' (in int InvocationID)
0:28 Constant:
0:28 0 (const int)
0:28 'p' (temp 4-component vector of float)
0:29 move second child to first child (temp float)
0:29 gl_PointSize: direct index for structure (out float PointSize)
0:29 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:29 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:29 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:29 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:29 'gl_InvocationID' (in int InvocationID)
0:29 Constant:
0:29 1 (const int)
0:29 'ps' (temp float)
0:30 move second child to first child (temp float)
0:30 direct index (temp float ClipDistance)
0:30 gl_ClipDistance: direct index for structure (out 1-element array of float ClipDistance)
0:30 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:30 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:30 gl_ClipDistance: direct index for structure (out 2-element array of float ClipDistance)
0:30 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:30 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:30 'gl_InvocationID' (in int InvocationID)
0:30 Constant:
0:30 2 (const int)
@ -1027,8 +1031,8 @@ vertices = 4
0:23 move second child to first child (temp 4-component vector of float)
0:23 'p' (temp 4-component vector of float)
0:23 gl_Position: direct index for structure (in 4-component vector of float Position)
0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:23 Constant:
0:23 1 (const int)
0:23 Constant:
@ -1037,8 +1041,8 @@ vertices = 4
0:24 move second child to first child (temp float)
0:24 'ps' (temp float)
0:24 gl_PointSize: direct index for structure (in float PointSize)
0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
@ -1047,9 +1051,9 @@ vertices = 4
0:25 move second child to first child (temp float)
0:25 'cd' (temp float)
0:25 direct index (temp float ClipDistance)
0:25 gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
0:25 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:25 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:25 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
0:25 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:25 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:25 Constant:
0:25 1 (const int)
0:25 Constant:
@ -1070,25 +1074,25 @@ vertices = 4
0:29 'gl_InvocationID' (in int InvocationID)
0:31 move second child to first child (temp 4-component vector of float)
0:31 gl_Position: direct index for structure (out 4-component vector of float Position)
0:31 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:31 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:31 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:31 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:31 'gl_InvocationID' (in int InvocationID)
0:31 Constant:
0:31 0 (const int)
0:31 'p' (temp 4-component vector of float)
0:32 move second child to first child (temp float)
0:32 gl_PointSize: direct index for structure (out float PointSize)
0:32 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:32 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_InvocationID' (in int InvocationID)
0:32 Constant:
0:32 1 (const int)
0:32 'ps' (temp float)
0:33 move second child to first child (temp float)
0:33 direct index (temp float ClipDistance)
0:33 gl_ClipDistance: direct index for structure (out 1-element array of float ClipDistance)
0:33 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:33 gl_ClipDistance: direct index for structure (out 2-element array of float ClipDistance)
0:33 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_InvocationID' (in int InvocationID)
0:33 Constant:
0:33 2 (const int)
@ -1158,8 +1162,8 @@ vertices = 4
0:67 Function Parameters:
0:69 Sequence
0:69 gl_PointSize: direct index for structure (out float PointSize)
0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:69 Constant:
0:69 4 (const int)
0:69 Constant:
@ -1169,20 +1173,20 @@ vertices = 4
0:91 Function Parameters:
0:? Sequence
0:95 multiply second child into first child (temp 3-component vector of float)
0:95 'pv3' (temp 3-component vector of float)
0:95 'pv3' (temp 3-component vector of float)
0:95 'pv3' (noContraction temp 3-component vector of float)
0:95 'pv3' (noContraction temp 3-component vector of float)
0:96 move second child to first child (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 fma (global 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:97 move second child to first child (temp double)
0:97 'd' (temp double)
0:97 'd' (noContraction temp double)
0:97 fma (global double)
0:97 'd' (temp double)
0:97 'd' (temp double)
0:97 'd' (temp double)
0:97 'd' (noContraction temp double)
0:97 'd' (noContraction temp double)
0:97 'd' (noContraction temp double)
0:8 Function Definition: main( (global void)
0:8 Function Parameters:
0:15 Function Definition: main( (global void)
@ -1192,8 +1196,8 @@ vertices = 4
0:17 move second child to first child (temp 4-component vector of float)
0:17 'p' (temp 4-component vector of float)
0:17 gl_Position: direct index for structure (in 4-component vector of float Position)
0:17 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:17 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:17 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:17 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:17 Constant:
0:17 1 (const int)
0:17 Constant:
@ -1202,8 +1206,8 @@ vertices = 4
0:18 move second child to first child (temp float)
0:18 'ps' (temp float)
0:18 gl_PointSize: direct index for structure (in float PointSize)
0:18 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:18 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:18 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:18 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:18 Constant:
0:18 1 (const int)
0:18 Constant:
@ -1212,9 +1216,9 @@ vertices = 4
0:19 move second child to first child (temp float)
0:19 'cd' (temp float)
0:19 direct index (temp float ClipDistance)
0:19 gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
0:19 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:19 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:19 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
0:19 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:19 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:19 Constant:
0:19 1 (const int)
0:19 Constant:
@ -1280,7 +1284,7 @@ vertices = 4
0:37 0 (const int)
0:36 true case is null
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:? 'outa' (global 4-element array of int)
0:? 'patchOut' (patch out 4-component vector of float)
0:? 'patchIn' (patch in 4-component vector of float)
@ -1294,8 +1298,9 @@ vertices = 4
0:? 'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
0:? 'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
0:? 'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
0:? 'pv3' (temp 3-component vector of float)
0:? 'pv3' (noContraction temp 3-component vector of float)
0:? 'pinbi' (patch out block{out int a})
0:? 'badOrder' (invariant noContraction out 4-element array of 4-component vector of float)
0:? 'a' (out 3-element array of int)
0:? 'outb' (out 5-element array of int)
0:? 'outc' (out 4-element array of int)
@ -1324,8 +1329,8 @@ ERROR: node is still EOpNull!
0:22 move second child to first child (temp 4-component vector of float)
0:22 'p' (temp 4-component vector of float)
0:22 gl_Position: direct index for structure (in 4-component vector of float Position)
0:22 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:22 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:22 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:22 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:22 Constant:
0:22 1 (const int)
0:22 Constant:
@ -1334,8 +1339,8 @@ ERROR: node is still EOpNull!
0:23 move second child to first child (temp float)
0:23 'ps' (temp float)
0:23 gl_PointSize: direct index for structure (in float PointSize)
0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:23 Constant:
0:23 1 (const int)
0:23 Constant:
@ -1344,9 +1349,9 @@ ERROR: node is still EOpNull!
0:24 move second child to first child (temp float)
0:24 'cd' (temp float)
0:24 direct index (temp float ClipDistance)
0:24 gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:24 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
@ -1414,8 +1419,8 @@ ERROR: node is still EOpNull!
0:32 move second child to first child (temp 4-component vector of float)
0:32 'p' (temp 4-component vector of float)
0:32 gl_Position: direct index for structure (in 4-component vector of float Position)
0:32 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:32 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:32 Constant:
0:32 1 (const int)
0:32 Constant:
@ -1424,8 +1429,8 @@ ERROR: node is still EOpNull!
0:33 move second child to first child (temp float)
0:33 'ps' (temp float)
0:33 gl_PointSize: direct index for structure (in float PointSize)
0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
@ -1434,9 +1439,9 @@ ERROR: node is still EOpNull!
0:34 move second child to first child (temp float)
0:34 'cd' (temp float)
0:34 direct index (temp float ClipDistance)
0:34 gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:34 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:34 Constant:
0:34 1 (const int)
0:34 Constant:
@ -1529,7 +1534,7 @@ ERROR: node is still EOpNull!
0:68 Sequence
0:68 move second child to first child (temp 3-component vector of float)
0:68 'bv3' (global 3-component vector of float)
0:68 Construct vec3 (global 3-component vector of float)
0:68 Construct vec3 (temp 3-component vector of float)
0:68 'vc1' (global float)
0:68 'vc2' (global float)
0:68 'vc3' (global float)

View File

@ -147,44 +147,44 @@ ERROR: node is still EOpNull!
0:69 'c2D' (smooth in lowp 2-component vector of float)
0:72 move second child to first child (temp mediump 4-component vector of int)
0:72 'iv' (temp mediump 4-component vector of int)
0:72 texture (global mediump 4-component vector of int)
0:72 texture (global lowp 4-component vector of int)
0:72 'is2D' (uniform lowp isampler2D)
0:72 'c2D' (smooth in lowp 2-component vector of float)
0:73 move second child to first child (temp mediump 4-component vector of int)
0:73 'iv' (temp mediump 4-component vector of int)
0:73 textureProjOffset (global mediump 4-component vector of int)
0:73 textureProjOffset (global lowp 4-component vector of int)
0:73 'is2D' (uniform lowp isampler2D)
0:73 'c4D' (smooth temp lowp 4-component vector of float)
0:73 'ic2D' (flat in mediump 2-component vector of int)
0:74 move second child to first child (temp mediump 4-component vector of int)
0:74 'iv' (temp mediump 4-component vector of int)
0:74 textureProjLod (global mediump 4-component vector of int)
0:74 textureProjLod (global lowp 4-component vector of int)
0:74 'is2D' (uniform lowp isampler2D)
0:74 'c3D' (smooth in lowp 3-component vector of float)
0:74 'c1D' (smooth in lowp float)
0:75 move second child to first child (temp mediump 4-component vector of int)
0:75 'iv' (temp mediump 4-component vector of int)
0:75 textureProjGrad (global mediump 4-component vector of int)
0:75 textureProjGrad (global lowp 4-component vector of int)
0:75 'is2D' (uniform lowp isampler2D)
0:75 'c3D' (smooth in lowp 3-component vector of float)
0:75 'c2D' (smooth in lowp 2-component vector of float)
0:75 'c2D' (smooth in lowp 2-component vector of float)
0:76 move second child to first child (temp mediump 4-component vector of int)
0:76 'iv' (temp mediump 4-component vector of int)
0:76 texture (global mediump 4-component vector of int)
0:76 texture (global lowp 4-component vector of int)
0:76 'is3D' (uniform lowp isampler3D)
0:76 'c3D' (smooth in lowp 3-component vector of float)
0:76 Constant:
0:76 4.200000
0:77 move second child to first child (temp mediump 4-component vector of int)
0:77 'iv' (temp mediump 4-component vector of int)
0:77 textureLod (global mediump 4-component vector of int)
0:77 textureLod (global lowp 4-component vector of int)
0:77 'isCube' (uniform lowp isamplerCube)
0:77 'c3D' (smooth in lowp 3-component vector of float)
0:77 'c1D' (smooth in lowp float)
0:78 move second child to first child (temp mediump 4-component vector of int)
0:78 'iv' (temp mediump 4-component vector of int)
0:78 textureFetch (global mediump 4-component vector of int)
0:78 textureFetch (global lowp 4-component vector of int)
0:78 'is2DArray' (uniform lowp isampler2DArray)
0:78 'ic3D' (flat in mediump 3-component vector of int)
0:78 'ic1D' (flat in mediump int)
@ -503,44 +503,44 @@ ERROR: node is still EOpNull!
0:69 'c2D' (smooth in lowp 2-component vector of float)
0:72 move second child to first child (temp mediump 4-component vector of int)
0:72 'iv' (temp mediump 4-component vector of int)
0:72 texture (global mediump 4-component vector of int)
0:72 texture (global lowp 4-component vector of int)
0:72 'is2D' (uniform lowp isampler2D)
0:72 'c2D' (smooth in lowp 2-component vector of float)
0:73 move second child to first child (temp mediump 4-component vector of int)
0:73 'iv' (temp mediump 4-component vector of int)
0:73 textureProjOffset (global mediump 4-component vector of int)
0:73 textureProjOffset (global lowp 4-component vector of int)
0:73 'is2D' (uniform lowp isampler2D)
0:73 'c4D' (smooth temp lowp 4-component vector of float)
0:73 'ic2D' (flat in mediump 2-component vector of int)
0:74 move second child to first child (temp mediump 4-component vector of int)
0:74 'iv' (temp mediump 4-component vector of int)
0:74 textureProjLod (global mediump 4-component vector of int)
0:74 textureProjLod (global lowp 4-component vector of int)
0:74 'is2D' (uniform lowp isampler2D)
0:74 'c3D' (smooth in lowp 3-component vector of float)
0:74 'c1D' (smooth in lowp float)
0:75 move second child to first child (temp mediump 4-component vector of int)
0:75 'iv' (temp mediump 4-component vector of int)
0:75 textureProjGrad (global mediump 4-component vector of int)
0:75 textureProjGrad (global lowp 4-component vector of int)
0:75 'is2D' (uniform lowp isampler2D)
0:75 'c3D' (smooth in lowp 3-component vector of float)
0:75 'c2D' (smooth in lowp 2-component vector of float)
0:75 'c2D' (smooth in lowp 2-component vector of float)
0:76 move second child to first child (temp mediump 4-component vector of int)
0:76 'iv' (temp mediump 4-component vector of int)
0:76 texture (global mediump 4-component vector of int)
0:76 texture (global lowp 4-component vector of int)
0:76 'is3D' (uniform lowp isampler3D)
0:76 'c3D' (smooth in lowp 3-component vector of float)
0:76 Constant:
0:76 4.200000
0:77 move second child to first child (temp mediump 4-component vector of int)
0:77 'iv' (temp mediump 4-component vector of int)
0:77 textureLod (global mediump 4-component vector of int)
0:77 textureLod (global lowp 4-component vector of int)
0:77 'isCube' (uniform lowp isamplerCube)
0:77 'c3D' (smooth in lowp 3-component vector of float)
0:77 'c1D' (smooth in lowp float)
0:78 move second child to first child (temp mediump 4-component vector of int)
0:78 'iv' (temp mediump 4-component vector of int)
0:78 textureFetch (global mediump 4-component vector of int)
0:78 textureFetch (global lowp 4-component vector of int)
0:78 'is2DArray' (uniform lowp isampler2DArray)
0:78 'ic3D' (flat in mediump 3-component vector of int)
0:78 'ic1D' (flat in mediump int)

View File

@ -3,7 +3,7 @@ ERROR: 0:8: 'varying' : Reserved word.
ERROR: 0:8: 'varying' : no longer supported in es profile; removed in version 300
ERROR: 0:9: 'vertex input arrays' : not supported with this profile: es
ERROR: 0:10: '' : precision qualifier must appear as last qualifier
ERROR: 0:11: '' : invariant qualifier must appear first
ERROR: 0:11: '' : invariant qualifier must appear before interpolation, storage, and precision qualifiers
ERROR: 0:12: '' : Auxiliary qualifiers (centroid, patch, and sample) must appear before storage and precision qualifiers
ERROR: 0:12: '' : vertex input cannot be further qualified
ERROR: 0:13: '' : interpolation qualifiers must appear before storage and precision qualifiers
@ -193,7 +193,7 @@ ERROR: node is still EOpNull!
0:124 Sequence
0:124 move second child to first child (temp highp 4-component vector of float)
0:124 'x4' (temp highp 4-component vector of float)
0:124 texture (global highp 4-component vector of float)
0:124 texture (global lowp 4-component vector of float)
0:124 's2D' (uniform lowp sampler2D)
0:124 'c2D' (in highp 2-component vector of float)
0:125 Constant:
@ -201,7 +201,7 @@ ERROR: node is still EOpNull!
0:126 Sequence
0:126 move second child to first child (temp highp 4-component vector of float)
0:126 'x5' (temp highp 4-component vector of float)
0:126 textureProjOffset (global highp 4-component vector of float)
0:126 textureProjOffset (global lowp 4-component vector of float)
0:126 's3D' (uniform lowp sampler3D)
0:126 Constant:
0:126 0.200000
@ -217,7 +217,7 @@ ERROR: node is still EOpNull!
0:128 Sequence
0:128 move second child to first child (temp highp float)
0:128 'x6' (temp highp float)
0:128 textureProjGradOffset (global highp float)
0:128 textureProjGradOffset (global lowp float)
0:128 's2DS' (uniform lowp sampler2DShadow)
0:128 'invIn' (invariant in highp 4-component vector of float)
0:128 Constant:
@ -477,7 +477,7 @@ ERROR: node is still EOpNull!
0:124 Sequence
0:124 move second child to first child (temp highp 4-component vector of float)
0:124 'x4' (temp highp 4-component vector of float)
0:124 texture (global highp 4-component vector of float)
0:124 texture (global lowp 4-component vector of float)
0:124 's2D' (uniform lowp sampler2D)
0:124 'c2D' (in highp 2-component vector of float)
0:125 Constant:
@ -485,7 +485,7 @@ ERROR: node is still EOpNull!
0:126 Sequence
0:126 move second child to first child (temp highp 4-component vector of float)
0:126 'x5' (temp highp 4-component vector of float)
0:126 textureProjOffset (global highp 4-component vector of float)
0:126 textureProjOffset (global lowp 4-component vector of float)
0:126 's3D' (uniform lowp sampler3D)
0:126 Constant:
0:126 0.200000
@ -501,7 +501,7 @@ ERROR: node is still EOpNull!
0:128 Sequence
0:128 move second child to first child (temp highp float)
0:128 'x6' (temp highp float)
0:128 textureProjGradOffset (global highp float)
0:128 textureProjGradOffset (global lowp float)
0:128 's2DS' (uniform lowp sampler2DShadow)
0:128 'invIn' (invariant in highp 4-component vector of float)
0:128 Constant:

View File

@ -24,18 +24,18 @@ ERROR: node is still EOpNull!
0:42 Function Definition: main( (global void)
0:42 Function Parameters:
0:44 Sequence
0:44 texture (global mediump 4-component vector of int)
0:44 texture (global lowp 4-component vector of int)
0:44 sampler: direct index for structure (global lowp isampler3D)
0:44 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
0:44 Constant:
0:44 2 (const int)
0:44 Construct vec3 (temp mediump 3-component vector of float)
0:44 Convert int to float (temp mediump float)
0:44 Construct vec3 (temp lowp 3-component vector of float)
0:44 Convert int to float (temp lowp float)
0:44 ni: direct index for structure (layout(column_major shared ) uniform mediump int)
0:44 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:44 Constant:
0:44 1 (const int)
0:44 Convert uint to float (temp mediump float)
0:44 Convert uint to float (temp lowp float)
0:44 direct index (temp mediump uint)
0:44 bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
0:44 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
@ -43,7 +43,7 @@ ERROR: node is still EOpNull!
0:44 0 (const uint)
0:44 Constant:
0:44 1 (const int)
0:44 Convert uint to float (temp mediump float)
0:44 Convert uint to float (temp lowp float)
0:44 direct index (temp mediump uint)
0:44 nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
0:44 direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
@ -92,18 +92,18 @@ ERROR: node is still EOpNull!
0:42 Function Definition: main( (global void)
0:42 Function Parameters:
0:44 Sequence
0:44 texture (global mediump 4-component vector of int)
0:44 texture (global lowp 4-component vector of int)
0:44 sampler: direct index for structure (global lowp isampler3D)
0:44 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
0:44 Constant:
0:44 2 (const int)
0:44 Construct vec3 (temp mediump 3-component vector of float)
0:44 Convert int to float (temp mediump float)
0:44 Construct vec3 (temp lowp 3-component vector of float)
0:44 Convert int to float (temp lowp float)
0:44 ni: direct index for structure (layout(column_major shared ) uniform mediump int)
0:44 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:44 Constant:
0:44 1 (const int)
0:44 Convert uint to float (temp mediump float)
0:44 Convert uint to float (temp lowp float)
0:44 direct index (temp mediump uint)
0:44 bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
0:44 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
@ -111,7 +111,7 @@ ERROR: node is still EOpNull!
0:44 0 (const uint)
0:44 Constant:
0:44 1 (const int)
0:44 Convert uint to float (temp mediump float)
0:44 Convert uint to float (temp lowp float)
0:44 direct index (temp mediump uint)
0:44 nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
0:44 direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

View File

@ -5,8 +5,10 @@ ERROR: 0:20: 'c' : redefinition
ERROR: 0:22: 'f' : redefinition
ERROR: 0:23: 'tan' : redefinition
ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es
ERROR: 0:24: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
ERROR: 0:24: 'sin' : function name is redeclaration of existing name
ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es
ERROR: 0:25: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
ERROR: 0:25: 'cos' : function name is redeclaration of existing name
ERROR: 0:25: 'cos' : function already has a body
ERROR: 0:27: 'return' : void function cannot return a value
@ -18,7 +20,7 @@ ERROR: 0:43: 'sin' : can't use function syntax on variable
ERROR: 0:57: 'z' : undeclared identifier
ERROR: 0:57: 'z' : redefinition
ERROR: 0:73: 'degrees' : can't use function syntax on variable
ERROR: 19 compilation errors. No code generated.
ERROR: 21 compilation errors. No code generated.
Shader version: 300

View File

@ -45,6 +45,7 @@ ERROR: 0:143: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCoun
ERROR: 0:149: '[]' : scalar integer expression required
ERROR: 0:166: 'precision' : can only apply highp to atomic_uint
ERROR: 0:168: 'precise' : Reserved word.
ERROR: 0:168: 'precise' : not supported for this version or the enabled extensions
ERROR: 0:170: 'dmat2x4' : Reserved word.
ERROR: 0:170: 'double matrix' : not supported with this profile: es
ERROR: 0:171: 'samplerCubeArray' : Reserved word.
@ -78,7 +79,7 @@ ERROR: 0:227: 'input block' : not supported in this stage: compute
ERROR: 0:231: 'output block' : not supported in this stage: compute
WARNING: 0:235: 't__' : identifiers containing consecutive underscores ("__") are reserved
WARNING: 0:238: '#define' : names containing consecutive underscores are reserved: __D
ERROR: 76 compilation errors. No code generated.
ERROR: 77 compilation errors. No code generated.
Shader version: 310
@ -484,7 +485,7 @@ ERROR: node is still EOpNull!
0:? 'i' (uniform highp int)
0:? 'atomi' (shared highp int)
0:? 'atomu' (shared highp uint)
0:? 'pfoo' (temp highp int)
0:? 'pfoo' (noContraction temp highp int)
0:? 'dm' (global 2X4 matrix of double)
0:? 'sca' (uniform mediump samplerCubeArray)
0:? 'i2dr' (uniform mediump iimage2DRect)
@ -911,7 +912,7 @@ ERROR: node is still EOpNull!
0:? 'i' (uniform highp int)
0:? 'atomi' (shared highp int)
0:? 'atomu' (shared highp uint)
0:? 'pfoo' (temp highp int)
0:? 'pfoo' (noContraction temp highp int)
0:? 'dm' (global 2X4 matrix of double)
0:? 'sca' (uniform mediump samplerCubeArray)
0:? 'i2dr' (uniform mediump iimage2DRect)

View File

@ -61,6 +61,7 @@ ERROR: 0:183: 'gl_PrimitiveID' : required extension not requested: Possible exte
GL_EXT_geometry_shader
GL_OES_geometry_shader
ERROR: 0:209: 'precise' : Reserved word.
ERROR: 0:209: 'precise' : not supported for this version or the enabled extensions
ERROR: 0:210: 'fma' : required extension not requested: Possible extensions include:
GL_EXT_gpu_shader5
GL_OES_gpu_shader5
@ -129,7 +130,7 @@ ERROR: 0:427: 'blend equation' : can only apply to a standalone qualifier
ERROR: 0:428: 'blend equation' : can only apply to a standalone qualifier
ERROR: 0:429: 'blend_support' : unknown blend equation
ERROR: 0:431: 'fragment-shader array-of-array output' : not supported with this profile: es
ERROR: 121 compilation errors. No code generated.
ERROR: 122 compilation errors. No code generated.
Shader version: 310
@ -169,9 +170,9 @@ ERROR: node is still EOpNull!
0:28 0 (const int)
0:28 'c2D' (smooth in mediump 2-component vector of float)
0:29 Sequence
0:29 move second child to first child (temp mediump 4-component vector of int)
0:29 move second child to first child (temp highp 4-component vector of int)
0:29 'iv4' (temp mediump 4-component vector of int)
0:29 textureGatherOffset (global mediump 4-component vector of int)
0:29 textureGatherOffset (global highp 4-component vector of int)
0:29 'isamp2DA' (uniform highp isampler2DArray)
0:29 Constant:
0:29 0.100000
@ -182,9 +183,9 @@ ERROR: node is still EOpNull!
0:29 1 (const int)
0:29 Constant:
0:29 3 (const int)
0:30 move second child to first child (temp mediump 4-component vector of int)
0:30 move second child to first child (temp highp 4-component vector of int)
0:30 'iv4' (temp mediump 4-component vector of int)
0:30 textureGatherOffset (global mediump 4-component vector of int)
0:30 textureGatherOffset (global highp 4-component vector of int)
0:30 'isamp2DA' (uniform highp isampler2DArray)
0:30 Constant:
0:30 0.100000
@ -194,9 +195,9 @@ ERROR: node is still EOpNull!
0:30 1 (const int)
0:30 1 (const int)
0:30 'i' (uniform mediump int)
0:31 move second child to first child (temp mediump 4-component vector of int)
0:31 move second child to first child (temp highp 4-component vector of int)
0:31 'iv4' (temp mediump 4-component vector of int)
0:31 textureGatherOffset (global mediump 4-component vector of int)
0:31 textureGatherOffset (global highp 4-component vector of int)
0:31 'isamp2DA' (uniform highp isampler2DArray)
0:31 Constant:
0:31 0.100000
@ -207,9 +208,9 @@ ERROR: node is still EOpNull!
0:31 1 (const int)
0:31 Constant:
0:31 4 (const int)
0:32 move second child to first child (temp mediump 4-component vector of int)
0:32 move second child to first child (temp highp 4-component vector of int)
0:32 'iv4' (temp mediump 4-component vector of int)
0:32 textureGatherOffset (global mediump 4-component vector of int)
0:32 textureGatherOffset (global highp 4-component vector of int)
0:32 'isamp2DA' (uniform highp isampler2DArray)
0:32 Constant:
0:32 0.100000
@ -220,9 +221,9 @@ ERROR: node is still EOpNull!
0:32 1 (const int)
0:32 Constant:
0:32 3 (const int)
0:33 move second child to first child (temp mediump 4-component vector of int)
0:33 move second child to first child (temp highp 4-component vector of int)
0:33 'iv4' (temp mediump 4-component vector of int)
0:33 textureGatherOffset (global mediump 4-component vector of int)
0:33 textureGatherOffset (global highp 4-component vector of int)
0:33 'isamp2DA' (uniform highp isampler2DArray)
0:33 Constant:
0:33 0.100000
@ -231,20 +232,20 @@ ERROR: node is still EOpNull!
0:33 Constant:
0:33 0 (const int)
0:33 0 (const int)
0:34 move second child to first child (temp mediump 4-component vector of int)
0:34 move second child to first child (temp highp 4-component vector of int)
0:34 'iv4' (temp mediump 4-component vector of int)
0:34 textureGatherOffset (global mediump 4-component vector of int)
0:34 textureGatherOffset (global highp 4-component vector of int)
0:34 'isamp2DA' (uniform highp isampler2DArray)
0:34 Constant:
0:34 0.100000
0:34 0.100000
0:34 0.100000
0:34 Construct ivec2 (temp mediump 2-component vector of int)
0:34 Construct ivec2 (temp highp 2-component vector of int)
0:34 'i' (uniform mediump int)
0:38 Function Definition: foo23( (global void)
0:38 Function Parameters:
0:? Sequence
0:42 textureProjGradOffset (global mediump 4-component vector of uint)
0:42 textureProjGradOffset (global highp 4-component vector of uint)
0:42 'usamp2d' (uniform highp usampler2D)
0:42 'outp' (out mediump 4-component vector of float)
0:42 Constant:
@ -253,9 +254,9 @@ ERROR: node is still EOpNull!
0:42 Constant:
0:42 0.000000
0:42 0.000000
0:42 Convert float to int (temp mediump 2-component vector of int)
0:42 Convert float to int (temp highp 2-component vector of int)
0:42 'c2D' (smooth in mediump 2-component vector of float)
0:43 textureProjGradOffset (global mediump 4-component vector of uint)
0:43 textureProjGradOffset (global highp 4-component vector of uint)
0:43 'usamp2d' (uniform highp usampler2D)
0:43 'outp' (out mediump 4-component vector of float)
0:43 Constant:
@ -267,7 +268,7 @@ ERROR: node is still EOpNull!
0:43 Constant:
0:43 3 (const int)
0:43 4 (const int)
0:44 textureProjGradOffset (global mediump 4-component vector of uint)
0:44 textureProjGradOffset (global highp 4-component vector of uint)
0:44 'usamp2d' (uniform highp usampler2D)
0:44 'outp' (out mediump 4-component vector of float)
0:44 Constant:
@ -279,7 +280,7 @@ ERROR: node is still EOpNull!
0:44 Constant:
0:44 15 (const int)
0:44 16 (const int)
0:45 textureProjGradOffset (global mediump 4-component vector of uint)
0:45 textureProjGradOffset (global highp 4-component vector of uint)
0:45 'usamp2d' (uniform highp usampler2D)
0:45 'outp' (out mediump 4-component vector of float)
0:45 Constant:
@ -431,11 +432,11 @@ ERROR: node is still EOpNull!
0:207 Function Parameters:
0:? Sequence
0:210 move second child to first child (temp mediump 2-component vector of float)
0:210 'h' (temp mediump 2-component vector of float)
0:210 'h' (noContraction temp mediump 2-component vector of float)
0:210 fma (global mediump 2-component vector of float)
0:210 'inf' (smooth in mediump 2-component vector of float)
0:210 'ing' (smooth in mediump 2-component vector of float)
0:210 'h' (temp mediump 2-component vector of float)
0:210 'h' (noContraction temp mediump 2-component vector of float)
0:211 textureGatherOffset (global highp 4-component vector of float)
0:211 direct index (temp highp sampler2D)
0:211 'sArray' (uniform 4-element array of highp sampler2D)
@ -467,11 +468,11 @@ ERROR: node is still EOpNull!
0:217 Function Parameters:
0:? Sequence
0:220 move second child to first child (temp mediump 2-component vector of float)
0:220 'h' (temp mediump 2-component vector of float)
0:220 'h' (noContraction temp mediump 2-component vector of float)
0:220 fma (global mediump 2-component vector of float)
0:220 'inf' (smooth in mediump 2-component vector of float)
0:220 'ing' (smooth in mediump 2-component vector of float)
0:220 'h' (temp mediump 2-component vector of float)
0:220 'h' (noContraction temp mediump 2-component vector of float)
0:221 textureGatherOffset (global highp 4-component vector of float)
0:221 direct index (temp highp sampler2D)
0:221 'sArray' (uniform 4-element array of highp sampler2D)
@ -526,7 +527,7 @@ ERROR: node is still EOpNull!
0:251 Sequence
0:251 move second child to first child (temp highp 4-component vector of int)
0:251 'b6' (temp highp 4-component vector of int)
0:251 texture (global mediump 4-component vector of int)
0:251 texture (global highp 4-component vector of int)
0:251 'CA6' (uniform highp isamplerCubeArray)
0:251 Constant:
0:251 0.500000
@ -538,7 +539,7 @@ ERROR: node is still EOpNull!
0:252 Sequence
0:252 move second child to first child (temp highp 4-component vector of uint)
0:252 'b7' (temp highp 4-component vector of uint)
0:252 texture (global mediump 4-component vector of uint)
0:252 texture (global highp 4-component vector of uint)
0:252 'CA7' (uniform highp usamplerCubeArray)
0:252 Constant:
0:252 0.500000
@ -611,59 +612,59 @@ ERROR: node is still EOpNull!
0:283 Function Definition: badImageAtom( (global void)
0:283 Function Parameters:
0:? Sequence
0:289 imageAtomicAdd (global mediump int)
0:289 imageAtomicAdd (global highp int)
0:289 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:289 'P' (uniform mediump 2-component vector of int)
0:289 'dati' (temp mediump int)
0:290 imageAtomicAdd (global mediump uint)
0:290 imageAtomicAdd (global highp uint)
0:290 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:290 'P' (uniform mediump 2-component vector of int)
0:290 'datu' (temp mediump uint)
0:291 imageAtomicMin (global mediump int)
0:291 imageAtomicMin (global highp int)
0:291 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:291 'P' (uniform mediump 2-component vector of int)
0:291 'dati' (temp mediump int)
0:292 imageAtomicMin (global mediump uint)
0:292 imageAtomicMin (global highp uint)
0:292 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:292 'P' (uniform mediump 2-component vector of int)
0:292 'datu' (temp mediump uint)
0:293 imageAtomicMax (global mediump int)
0:293 imageAtomicMax (global highp int)
0:293 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:293 'P' (uniform mediump 2-component vector of int)
0:293 'dati' (temp mediump int)
0:294 imageAtomicMax (global mediump uint)
0:294 imageAtomicMax (global highp uint)
0:294 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:294 'P' (uniform mediump 2-component vector of int)
0:294 'datu' (temp mediump uint)
0:295 imageAtomicAnd (global mediump int)
0:295 imageAtomicAnd (global highp int)
0:295 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:295 'P' (uniform mediump 2-component vector of int)
0:295 'dati' (temp mediump int)
0:296 imageAtomicAnd (global mediump uint)
0:296 imageAtomicAnd (global highp uint)
0:296 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:296 'P' (uniform mediump 2-component vector of int)
0:296 'datu' (temp mediump uint)
0:297 imageAtomicOr (global mediump int)
0:297 imageAtomicOr (global highp int)
0:297 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:297 'P' (uniform mediump 2-component vector of int)
0:297 'dati' (temp mediump int)
0:298 imageAtomicOr (global mediump uint)
0:298 imageAtomicOr (global highp uint)
0:298 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:298 'P' (uniform mediump 2-component vector of int)
0:298 'datu' (temp mediump uint)
0:299 imageAtomicXor (global mediump int)
0:299 imageAtomicXor (global highp int)
0:299 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:299 'P' (uniform mediump 2-component vector of int)
0:299 'dati' (temp mediump int)
0:300 imageAtomicXor (global mediump uint)
0:300 imageAtomicXor (global highp uint)
0:300 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:300 'P' (uniform mediump 2-component vector of int)
0:300 'datu' (temp mediump uint)
0:301 imageAtomicExchange (global mediump int)
0:301 imageAtomicExchange (global highp int)
0:301 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:301 'P' (uniform mediump 2-component vector of int)
0:301 'dati' (temp mediump int)
0:302 imageAtomicExchange (global mediump uint)
0:302 imageAtomicExchange (global highp uint)
0:302 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:302 'P' (uniform mediump 2-component vector of int)
0:302 'datu' (temp mediump uint)
@ -671,13 +672,13 @@ ERROR: node is still EOpNull!
0:303 'im2Df' (layout(r32f ) uniform highp image2D)
0:303 'P' (uniform mediump 2-component vector of int)
0:303 'datf' (temp mediump float)
0:304 imageAtomicCompSwap (global mediump int)
0:304 imageAtomicCompSwap (global highp int)
0:304 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:304 'P' (uniform mediump 2-component vector of int)
0:304 Constant:
0:304 3 (const int)
0:304 'dati' (temp mediump int)
0:305 imageAtomicCompSwap (global mediump uint)
0:305 imageAtomicCompSwap (global highp uint)
0:305 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:305 'P' (uniform mediump 2-component vector of int)
0:305 Constant:
@ -686,59 +687,59 @@ ERROR: node is still EOpNull!
0:316 Function Definition: goodImageAtom( (global void)
0:316 Function Parameters:
0:? Sequence
0:322 imageAtomicAdd (global mediump int)
0:322 imageAtomicAdd (global highp int)
0:322 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:322 'P' (uniform mediump 2-component vector of int)
0:322 'dati' (temp mediump int)
0:323 imageAtomicAdd (global mediump uint)
0:323 imageAtomicAdd (global highp uint)
0:323 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:323 'P' (uniform mediump 2-component vector of int)
0:323 'datu' (temp mediump uint)
0:324 imageAtomicMin (global mediump int)
0:324 imageAtomicMin (global highp int)
0:324 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:324 'P' (uniform mediump 2-component vector of int)
0:324 'dati' (temp mediump int)
0:325 imageAtomicMin (global mediump uint)
0:325 imageAtomicMin (global highp uint)
0:325 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:325 'P' (uniform mediump 2-component vector of int)
0:325 'datu' (temp mediump uint)
0:326 imageAtomicMax (global mediump int)
0:326 imageAtomicMax (global highp int)
0:326 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:326 'P' (uniform mediump 2-component vector of int)
0:326 'dati' (temp mediump int)
0:327 imageAtomicMax (global mediump uint)
0:327 imageAtomicMax (global highp uint)
0:327 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:327 'P' (uniform mediump 2-component vector of int)
0:327 'datu' (temp mediump uint)
0:328 imageAtomicAnd (global mediump int)
0:328 imageAtomicAnd (global highp int)
0:328 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:328 'P' (uniform mediump 2-component vector of int)
0:328 'dati' (temp mediump int)
0:329 imageAtomicAnd (global mediump uint)
0:329 imageAtomicAnd (global highp uint)
0:329 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:329 'P' (uniform mediump 2-component vector of int)
0:329 'datu' (temp mediump uint)
0:330 imageAtomicOr (global mediump int)
0:330 imageAtomicOr (global highp int)
0:330 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:330 'P' (uniform mediump 2-component vector of int)
0:330 'dati' (temp mediump int)
0:331 imageAtomicOr (global mediump uint)
0:331 imageAtomicOr (global highp uint)
0:331 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:331 'P' (uniform mediump 2-component vector of int)
0:331 'datu' (temp mediump uint)
0:332 imageAtomicXor (global mediump int)
0:332 imageAtomicXor (global highp int)
0:332 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:332 'P' (uniform mediump 2-component vector of int)
0:332 'dati' (temp mediump int)
0:333 imageAtomicXor (global mediump uint)
0:333 imageAtomicXor (global highp uint)
0:333 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:333 'P' (uniform mediump 2-component vector of int)
0:333 'datu' (temp mediump uint)
0:334 imageAtomicExchange (global mediump int)
0:334 imageAtomicExchange (global highp int)
0:334 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:334 'P' (uniform mediump 2-component vector of int)
0:334 'dati' (temp mediump int)
0:335 imageAtomicExchange (global mediump uint)
0:335 imageAtomicExchange (global highp uint)
0:335 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:335 'P' (uniform mediump 2-component vector of int)
0:335 'datu' (temp mediump uint)
@ -746,23 +747,23 @@ ERROR: node is still EOpNull!
0:336 'im2Df' (layout(r32f ) uniform highp image2D)
0:336 'P' (uniform mediump 2-component vector of int)
0:336 'datf' (temp mediump float)
0:337 imageAtomicCompSwap (global mediump int)
0:337 imageAtomicCompSwap (global highp int)
0:337 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:337 'P' (uniform mediump 2-component vector of int)
0:337 Constant:
0:337 3 (const int)
0:337 'dati' (temp mediump int)
0:338 imageAtomicCompSwap (global mediump uint)
0:338 imageAtomicCompSwap (global highp uint)
0:338 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:338 'P' (uniform mediump 2-component vector of int)
0:338 Constant:
0:338 5 (const uint)
0:338 'datu' (temp mediump uint)
0:340 imageAtomicMax (global mediump int)
0:340 imageAtomicMax (global highp int)
0:340 'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
0:340 'P' (uniform mediump 2-component vector of int)
0:340 'dati' (temp mediump int)
0:341 imageAtomicMax (global mediump uint)
0:341 imageAtomicMax (global highp uint)
0:341 'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
0:341 'P' (uniform mediump 2-component vector of int)
0:341 'datu' (temp mediump uint)
@ -1050,9 +1051,9 @@ ERROR: node is still EOpNull!
0:28 0 (const int)
0:28 'c2D' (smooth in mediump 2-component vector of float)
0:29 Sequence
0:29 move second child to first child (temp mediump 4-component vector of int)
0:29 move second child to first child (temp highp 4-component vector of int)
0:29 'iv4' (temp mediump 4-component vector of int)
0:29 textureGatherOffset (global mediump 4-component vector of int)
0:29 textureGatherOffset (global highp 4-component vector of int)
0:29 'isamp2DA' (uniform highp isampler2DArray)
0:29 Constant:
0:29 0.100000
@ -1063,9 +1064,9 @@ ERROR: node is still EOpNull!
0:29 1 (const int)
0:29 Constant:
0:29 3 (const int)
0:30 move second child to first child (temp mediump 4-component vector of int)
0:30 move second child to first child (temp highp 4-component vector of int)
0:30 'iv4' (temp mediump 4-component vector of int)
0:30 textureGatherOffset (global mediump 4-component vector of int)
0:30 textureGatherOffset (global highp 4-component vector of int)
0:30 'isamp2DA' (uniform highp isampler2DArray)
0:30 Constant:
0:30 0.100000
@ -1075,9 +1076,9 @@ ERROR: node is still EOpNull!
0:30 1 (const int)
0:30 1 (const int)
0:30 'i' (uniform mediump int)
0:31 move second child to first child (temp mediump 4-component vector of int)
0:31 move second child to first child (temp highp 4-component vector of int)
0:31 'iv4' (temp mediump 4-component vector of int)
0:31 textureGatherOffset (global mediump 4-component vector of int)
0:31 textureGatherOffset (global highp 4-component vector of int)
0:31 'isamp2DA' (uniform highp isampler2DArray)
0:31 Constant:
0:31 0.100000
@ -1088,9 +1089,9 @@ ERROR: node is still EOpNull!
0:31 1 (const int)
0:31 Constant:
0:31 4 (const int)
0:32 move second child to first child (temp mediump 4-component vector of int)
0:32 move second child to first child (temp highp 4-component vector of int)
0:32 'iv4' (temp mediump 4-component vector of int)
0:32 textureGatherOffset (global mediump 4-component vector of int)
0:32 textureGatherOffset (global highp 4-component vector of int)
0:32 'isamp2DA' (uniform highp isampler2DArray)
0:32 Constant:
0:32 0.100000
@ -1101,9 +1102,9 @@ ERROR: node is still EOpNull!
0:32 1 (const int)
0:32 Constant:
0:32 3 (const int)
0:33 move second child to first child (temp mediump 4-component vector of int)
0:33 move second child to first child (temp highp 4-component vector of int)
0:33 'iv4' (temp mediump 4-component vector of int)
0:33 textureGatherOffset (global mediump 4-component vector of int)
0:33 textureGatherOffset (global highp 4-component vector of int)
0:33 'isamp2DA' (uniform highp isampler2DArray)
0:33 Constant:
0:33 0.100000
@ -1112,20 +1113,20 @@ ERROR: node is still EOpNull!
0:33 Constant:
0:33 0 (const int)
0:33 0 (const int)
0:34 move second child to first child (temp mediump 4-component vector of int)
0:34 move second child to first child (temp highp 4-component vector of int)
0:34 'iv4' (temp mediump 4-component vector of int)
0:34 textureGatherOffset (global mediump 4-component vector of int)
0:34 textureGatherOffset (global highp 4-component vector of int)
0:34 'isamp2DA' (uniform highp isampler2DArray)
0:34 Constant:
0:34 0.100000
0:34 0.100000
0:34 0.100000
0:34 Construct ivec2 (temp mediump 2-component vector of int)
0:34 Construct ivec2 (temp highp 2-component vector of int)
0:34 'i' (uniform mediump int)
0:38 Function Definition: foo23( (global void)
0:38 Function Parameters:
0:? Sequence
0:42 textureProjGradOffset (global mediump 4-component vector of uint)
0:42 textureProjGradOffset (global highp 4-component vector of uint)
0:42 'usamp2d' (uniform highp usampler2D)
0:42 'outp' (out mediump 4-component vector of float)
0:42 Constant:
@ -1134,9 +1135,9 @@ ERROR: node is still EOpNull!
0:42 Constant:
0:42 0.000000
0:42 0.000000
0:42 Convert float to int (temp mediump 2-component vector of int)
0:42 Convert float to int (temp highp 2-component vector of int)
0:42 'c2D' (smooth in mediump 2-component vector of float)
0:43 textureProjGradOffset (global mediump 4-component vector of uint)
0:43 textureProjGradOffset (global highp 4-component vector of uint)
0:43 'usamp2d' (uniform highp usampler2D)
0:43 'outp' (out mediump 4-component vector of float)
0:43 Constant:
@ -1148,7 +1149,7 @@ ERROR: node is still EOpNull!
0:43 Constant:
0:43 3 (const int)
0:43 4 (const int)
0:44 textureProjGradOffset (global mediump 4-component vector of uint)
0:44 textureProjGradOffset (global highp 4-component vector of uint)
0:44 'usamp2d' (uniform highp usampler2D)
0:44 'outp' (out mediump 4-component vector of float)
0:44 Constant:
@ -1160,7 +1161,7 @@ ERROR: node is still EOpNull!
0:44 Constant:
0:44 15 (const int)
0:44 16 (const int)
0:45 textureProjGradOffset (global mediump 4-component vector of uint)
0:45 textureProjGradOffset (global highp 4-component vector of uint)
0:45 'usamp2d' (uniform highp usampler2D)
0:45 'outp' (out mediump 4-component vector of float)
0:45 Constant:
@ -1312,11 +1313,11 @@ ERROR: node is still EOpNull!
0:207 Function Parameters:
0:? Sequence
0:210 move second child to first child (temp mediump 2-component vector of float)
0:210 'h' (temp mediump 2-component vector of float)
0:210 'h' (noContraction temp mediump 2-component vector of float)
0:210 fma (global mediump 2-component vector of float)
0:210 'inf' (smooth in mediump 2-component vector of float)
0:210 'ing' (smooth in mediump 2-component vector of float)
0:210 'h' (temp mediump 2-component vector of float)
0:210 'h' (noContraction temp mediump 2-component vector of float)
0:211 textureGatherOffset (global highp 4-component vector of float)
0:211 direct index (temp highp sampler2D)
0:211 'sArray' (uniform 4-element array of highp sampler2D)
@ -1348,11 +1349,11 @@ ERROR: node is still EOpNull!
0:217 Function Parameters:
0:? Sequence
0:220 move second child to first child (temp mediump 2-component vector of float)
0:220 'h' (temp mediump 2-component vector of float)
0:220 'h' (noContraction temp mediump 2-component vector of float)
0:220 fma (global mediump 2-component vector of float)
0:220 'inf' (smooth in mediump 2-component vector of float)
0:220 'ing' (smooth in mediump 2-component vector of float)
0:220 'h' (temp mediump 2-component vector of float)
0:220 'h' (noContraction temp mediump 2-component vector of float)
0:221 textureGatherOffset (global highp 4-component vector of float)
0:221 direct index (temp highp sampler2D)
0:221 'sArray' (uniform 4-element array of highp sampler2D)
@ -1407,7 +1408,7 @@ ERROR: node is still EOpNull!
0:251 Sequence
0:251 move second child to first child (temp highp 4-component vector of int)
0:251 'b6' (temp highp 4-component vector of int)
0:251 texture (global mediump 4-component vector of int)
0:251 texture (global highp 4-component vector of int)
0:251 'CA6' (uniform highp isamplerCubeArray)
0:251 Constant:
0:251 0.500000
@ -1419,7 +1420,7 @@ ERROR: node is still EOpNull!
0:252 Sequence
0:252 move second child to first child (temp highp 4-component vector of uint)
0:252 'b7' (temp highp 4-component vector of uint)
0:252 texture (global mediump 4-component vector of uint)
0:252 texture (global highp 4-component vector of uint)
0:252 'CA7' (uniform highp usamplerCubeArray)
0:252 Constant:
0:252 0.500000
@ -1492,59 +1493,59 @@ ERROR: node is still EOpNull!
0:283 Function Definition: badImageAtom( (global void)
0:283 Function Parameters:
0:? Sequence
0:289 imageAtomicAdd (global mediump int)
0:289 imageAtomicAdd (global highp int)
0:289 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:289 'P' (uniform mediump 2-component vector of int)
0:289 'dati' (temp mediump int)
0:290 imageAtomicAdd (global mediump uint)
0:290 imageAtomicAdd (global highp uint)
0:290 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:290 'P' (uniform mediump 2-component vector of int)
0:290 'datu' (temp mediump uint)
0:291 imageAtomicMin (global mediump int)
0:291 imageAtomicMin (global highp int)
0:291 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:291 'P' (uniform mediump 2-component vector of int)
0:291 'dati' (temp mediump int)
0:292 imageAtomicMin (global mediump uint)
0:292 imageAtomicMin (global highp uint)
0:292 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:292 'P' (uniform mediump 2-component vector of int)
0:292 'datu' (temp mediump uint)
0:293 imageAtomicMax (global mediump int)
0:293 imageAtomicMax (global highp int)
0:293 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:293 'P' (uniform mediump 2-component vector of int)
0:293 'dati' (temp mediump int)
0:294 imageAtomicMax (global mediump uint)
0:294 imageAtomicMax (global highp uint)
0:294 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:294 'P' (uniform mediump 2-component vector of int)
0:294 'datu' (temp mediump uint)
0:295 imageAtomicAnd (global mediump int)
0:295 imageAtomicAnd (global highp int)
0:295 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:295 'P' (uniform mediump 2-component vector of int)
0:295 'dati' (temp mediump int)
0:296 imageAtomicAnd (global mediump uint)
0:296 imageAtomicAnd (global highp uint)
0:296 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:296 'P' (uniform mediump 2-component vector of int)
0:296 'datu' (temp mediump uint)
0:297 imageAtomicOr (global mediump int)
0:297 imageAtomicOr (global highp int)
0:297 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:297 'P' (uniform mediump 2-component vector of int)
0:297 'dati' (temp mediump int)
0:298 imageAtomicOr (global mediump uint)
0:298 imageAtomicOr (global highp uint)
0:298 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:298 'P' (uniform mediump 2-component vector of int)
0:298 'datu' (temp mediump uint)
0:299 imageAtomicXor (global mediump int)
0:299 imageAtomicXor (global highp int)
0:299 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:299 'P' (uniform mediump 2-component vector of int)
0:299 'dati' (temp mediump int)
0:300 imageAtomicXor (global mediump uint)
0:300 imageAtomicXor (global highp uint)
0:300 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:300 'P' (uniform mediump 2-component vector of int)
0:300 'datu' (temp mediump uint)
0:301 imageAtomicExchange (global mediump int)
0:301 imageAtomicExchange (global highp int)
0:301 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:301 'P' (uniform mediump 2-component vector of int)
0:301 'dati' (temp mediump int)
0:302 imageAtomicExchange (global mediump uint)
0:302 imageAtomicExchange (global highp uint)
0:302 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:302 'P' (uniform mediump 2-component vector of int)
0:302 'datu' (temp mediump uint)
@ -1552,13 +1553,13 @@ ERROR: node is still EOpNull!
0:303 'im2Df' (layout(r32f ) uniform highp image2D)
0:303 'P' (uniform mediump 2-component vector of int)
0:303 'datf' (temp mediump float)
0:304 imageAtomicCompSwap (global mediump int)
0:304 imageAtomicCompSwap (global highp int)
0:304 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:304 'P' (uniform mediump 2-component vector of int)
0:304 Constant:
0:304 3 (const int)
0:304 'dati' (temp mediump int)
0:305 imageAtomicCompSwap (global mediump uint)
0:305 imageAtomicCompSwap (global highp uint)
0:305 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:305 'P' (uniform mediump 2-component vector of int)
0:305 Constant:
@ -1567,59 +1568,59 @@ ERROR: node is still EOpNull!
0:316 Function Definition: goodImageAtom( (global void)
0:316 Function Parameters:
0:? Sequence
0:322 imageAtomicAdd (global mediump int)
0:322 imageAtomicAdd (global highp int)
0:322 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:322 'P' (uniform mediump 2-component vector of int)
0:322 'dati' (temp mediump int)
0:323 imageAtomicAdd (global mediump uint)
0:323 imageAtomicAdd (global highp uint)
0:323 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:323 'P' (uniform mediump 2-component vector of int)
0:323 'datu' (temp mediump uint)
0:324 imageAtomicMin (global mediump int)
0:324 imageAtomicMin (global highp int)
0:324 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:324 'P' (uniform mediump 2-component vector of int)
0:324 'dati' (temp mediump int)
0:325 imageAtomicMin (global mediump uint)
0:325 imageAtomicMin (global highp uint)
0:325 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:325 'P' (uniform mediump 2-component vector of int)
0:325 'datu' (temp mediump uint)
0:326 imageAtomicMax (global mediump int)
0:326 imageAtomicMax (global highp int)
0:326 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:326 'P' (uniform mediump 2-component vector of int)
0:326 'dati' (temp mediump int)
0:327 imageAtomicMax (global mediump uint)
0:327 imageAtomicMax (global highp uint)
0:327 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:327 'P' (uniform mediump 2-component vector of int)
0:327 'datu' (temp mediump uint)
0:328 imageAtomicAnd (global mediump int)
0:328 imageAtomicAnd (global highp int)
0:328 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:328 'P' (uniform mediump 2-component vector of int)
0:328 'dati' (temp mediump int)
0:329 imageAtomicAnd (global mediump uint)
0:329 imageAtomicAnd (global highp uint)
0:329 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:329 'P' (uniform mediump 2-component vector of int)
0:329 'datu' (temp mediump uint)
0:330 imageAtomicOr (global mediump int)
0:330 imageAtomicOr (global highp int)
0:330 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:330 'P' (uniform mediump 2-component vector of int)
0:330 'dati' (temp mediump int)
0:331 imageAtomicOr (global mediump uint)
0:331 imageAtomicOr (global highp uint)
0:331 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:331 'P' (uniform mediump 2-component vector of int)
0:331 'datu' (temp mediump uint)
0:332 imageAtomicXor (global mediump int)
0:332 imageAtomicXor (global highp int)
0:332 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:332 'P' (uniform mediump 2-component vector of int)
0:332 'dati' (temp mediump int)
0:333 imageAtomicXor (global mediump uint)
0:333 imageAtomicXor (global highp uint)
0:333 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:333 'P' (uniform mediump 2-component vector of int)
0:333 'datu' (temp mediump uint)
0:334 imageAtomicExchange (global mediump int)
0:334 imageAtomicExchange (global highp int)
0:334 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:334 'P' (uniform mediump 2-component vector of int)
0:334 'dati' (temp mediump int)
0:335 imageAtomicExchange (global mediump uint)
0:335 imageAtomicExchange (global highp uint)
0:335 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:335 'P' (uniform mediump 2-component vector of int)
0:335 'datu' (temp mediump uint)
@ -1627,23 +1628,23 @@ ERROR: node is still EOpNull!
0:336 'im2Df' (layout(r32f ) uniform highp image2D)
0:336 'P' (uniform mediump 2-component vector of int)
0:336 'datf' (temp mediump float)
0:337 imageAtomicCompSwap (global mediump int)
0:337 imageAtomicCompSwap (global highp int)
0:337 'im2Di' (layout(r32i ) uniform highp iimage2D)
0:337 'P' (uniform mediump 2-component vector of int)
0:337 Constant:
0:337 3 (const int)
0:337 'dati' (temp mediump int)
0:338 imageAtomicCompSwap (global mediump uint)
0:338 imageAtomicCompSwap (global highp uint)
0:338 'im2Du' (layout(r32ui ) uniform highp uimage2D)
0:338 'P' (uniform mediump 2-component vector of int)
0:338 Constant:
0:338 5 (const uint)
0:338 'datu' (temp mediump uint)
0:340 imageAtomicMax (global mediump int)
0:340 imageAtomicMax (global highp int)
0:340 'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
0:340 'P' (uniform mediump 2-component vector of int)
0:340 'dati' (temp mediump int)
0:341 imageAtomicMax (global mediump uint)
0:341 imageAtomicMax (global highp uint)
0:341 'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
0:341 'P' (uniform mediump 2-component vector of int)
0:341 'datu' (temp mediump uint)

View File

@ -31,6 +31,7 @@ ERROR: 0:80: '' : array size required
ERROR: 0:86: 'location' : overlapping use of location 4
ERROR: 0:90: 'location' : overlapping use of location 4
ERROR: 0:94: 'precise' : Reserved word.
ERROR: 0:94: 'precise' : not supported for this version or the enabled extensions
ERROR: 0:95: 'fma' : required extension not requested: Possible extensions include:
GL_EXT_gpu_shader5
GL_OES_gpu_shader5
@ -45,7 +46,7 @@ ERROR: 0:145: '' : array size required
ERROR: 0:161: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
ERROR: 0:162: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
ERROR: 0:165: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
ERROR: 37 compilation errors. No code generated.
ERROR: 38 compilation errors. No code generated.
Shader version: 310
@ -197,11 +198,11 @@ ERROR: node is still EOpNull!
0:92 Function Parameters:
0:? Sequence
0:95 move second child to first child (temp highp float)
0:95 'd' (temp highp float)
0:95 'd' (noContraction temp highp float)
0:95 fma (global highp float)
0:95 'd' (temp highp float)
0:95 'd' (temp highp float)
0:95 'd' (temp highp float)
0:95 'd' (noContraction temp highp float)
0:95 'd' (noContraction temp highp float)
0:95 'd' (noContraction temp highp float)
0:112 Function Definition: pointSize2( (global void)
0:112 Function Parameters:
0:114 Sequence
@ -227,20 +228,20 @@ ERROR: node is still EOpNull!
0:122 Function Parameters:
0:? Sequence
0:126 multiply second child into first child (temp highp 3-component vector of float)
0:126 'pv3' (temp highp 3-component vector of float)
0:126 'pv3' (temp highp 3-component vector of float)
0:126 'pv3' (noContraction temp highp 3-component vector of float)
0:126 'pv3' (noContraction temp highp 3-component vector of float)
0:127 move second child to first child (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:127 fma (global highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:128 move second child to first child (temp highp float)
0:128 'd' (temp highp float)
0:128 'd' (noContraction temp highp float)
0:128 fma (global highp float)
0:128 'd' (temp highp float)
0:128 'd' (temp highp float)
0:128 'd' (temp highp float)
0:128 'd' (noContraction temp highp float)
0:128 'd' (noContraction temp highp float)
0:128 'd' (noContraction temp highp float)
0:131 Function Definition: bbBad( (global void)
0:131 Function Parameters:
0:133 Sequence
@ -371,7 +372,7 @@ ERROR: node is still EOpNull!
0:? 'badlay' (out 4-element array of highp float)
0:? 'misSized' (out 5-element array of highp float)
0:? 'okaySize' (out 4-element array of highp float)
0:? 'pv3' (temp highp 3-component vector of float)
0:? 'pv3' (noContraction temp highp 3-component vector of float)
0:? 'badpatchIName' (patch out implicitly-sized array of block{out highp float f})
0:? 'patchIName' (patch out 4-element array of block{out highp float f})
@ -528,11 +529,11 @@ ERROR: node is still EOpNull!
0:92 Function Parameters:
0:? Sequence
0:95 move second child to first child (temp highp float)
0:95 'd' (temp highp float)
0:95 'd' (noContraction temp highp float)
0:95 fma (global highp float)
0:95 'd' (temp highp float)
0:95 'd' (temp highp float)
0:95 'd' (temp highp float)
0:95 'd' (noContraction temp highp float)
0:95 'd' (noContraction temp highp float)
0:95 'd' (noContraction temp highp float)
0:112 Function Definition: pointSize2( (global void)
0:112 Function Parameters:
0:114 Sequence
@ -558,20 +559,20 @@ ERROR: node is still EOpNull!
0:122 Function Parameters:
0:? Sequence
0:126 multiply second child into first child (temp highp 3-component vector of float)
0:126 'pv3' (temp highp 3-component vector of float)
0:126 'pv3' (temp highp 3-component vector of float)
0:126 'pv3' (noContraction temp highp 3-component vector of float)
0:126 'pv3' (noContraction temp highp 3-component vector of float)
0:127 move second child to first child (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:127 fma (global highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:127 'pv3' (noContraction temp highp 3-component vector of float)
0:128 move second child to first child (temp highp float)
0:128 'd' (temp highp float)
0:128 'd' (noContraction temp highp float)
0:128 fma (global highp float)
0:128 'd' (temp highp float)
0:128 'd' (temp highp float)
0:128 'd' (temp highp float)
0:128 'd' (noContraction temp highp float)
0:128 'd' (noContraction temp highp float)
0:128 'd' (noContraction temp highp float)
0:131 Function Definition: bbBad( (global void)
0:131 Function Parameters:
0:133 Sequence
@ -702,7 +703,7 @@ ERROR: node is still EOpNull!
0:? 'badlay' (out 4-element array of highp float)
0:? 'misSized' (out 5-element array of highp float)
0:? 'okaySize' (out 4-element array of highp float)
0:? 'pv3' (temp highp 3-component vector of float)
0:? 'pv3' (noContraction temp highp 3-component vector of float)
0:? 'badpatchIName' (patch out 1-element array of block{out highp float f})
0:? 'patchIName' (patch out 4-element array of block{out highp float f})

View File

@ -29,6 +29,7 @@ ERROR: 0:131: 'flat/smooth/noperspective' : cannot use interpolation qualifiers
ERROR: 0:135: 'centroid' : cannot use centroid qualifier on an interface block
ERROR: 0:139: 'invariant' : cannot use invariant qualifier on an interface block
ERROR: 0:155: 'precise' : Reserved word.
ERROR: 0:155: 'precise' : not supported for this version or the enabled extensions
ERROR: 0:156: 'fma' : required extension not requested: Possible extensions include:
GL_EXT_gpu_shader5
GL_OES_gpu_shader5
@ -96,7 +97,7 @@ ERROR: 0:389: 'sample' : Reserved word.
ERROR: 0:400: 'interpolateAtCentroid' : no matching overloaded function found
ERROR: 0:401: 'interpolateAtSample' : no matching overloaded function found
ERROR: 0:402: 'interpolateAtOffset' : no matching overloaded function found
ERROR: 92 compilation errors. No code generated.
ERROR: 93 compilation errors. No code generated.
Shader version: 310
@ -178,27 +179,27 @@ ERROR: node is still EOpNull!
0:31 'u4' (temp highp 4-component vector of uint)
0:32 move second child to first child (temp highp int)
0:32 'i1' (temp highp int)
0:32 bitCount (global highp int)
0:32 bitCount (global lowp int)
0:32 'i1' (temp highp int)
0:33 move second child to first child (temp highp 3-component vector of int)
0:33 'i3' (temp highp 3-component vector of int)
0:33 bitCount (global highp 3-component vector of int)
0:33 bitCount (global lowp 3-component vector of int)
0:33 'u3' (temp highp 3-component vector of uint)
0:34 move second child to first child (temp highp 2-component vector of int)
0:34 'i2' (temp highp 2-component vector of int)
0:34 findLSB (global highp 2-component vector of int)
0:34 findLSB (global lowp 2-component vector of int)
0:34 'i2' (temp highp 2-component vector of int)
0:35 move second child to first child (temp highp 4-component vector of int)
0:35 'i4' (temp highp 4-component vector of int)
0:35 findLSB (global highp 4-component vector of int)
0:35 findLSB (global lowp 4-component vector of int)
0:35 'u4' (temp highp 4-component vector of uint)
0:36 move second child to first child (temp highp int)
0:36 'i1' (temp highp int)
0:36 findMSB (global highp int)
0:36 findMSB (global lowp int)
0:36 'i1' (temp highp int)
0:37 move second child to first child (temp highp 2-component vector of int)
0:37 'i2' (temp highp 2-component vector of int)
0:37 findMSB (global highp 2-component vector of int)
0:37 findMSB (global lowp 2-component vector of int)
0:37 'u2' (temp highp 2-component vector of uint)
0:40 move second child to first child (temp highp 3-component vector of float)
0:40 'v3' (temp highp 3-component vector of float)
@ -285,11 +286,11 @@ ERROR: node is still EOpNull!
0:153 Function Parameters:
0:? Sequence
0:156 move second child to first child (temp highp 2-component vector of float)
0:156 'h' (temp highp 2-component vector of float)
0:156 'h' (noContraction temp highp 2-component vector of float)
0:156 fma (global highp 2-component vector of float)
0:156 'inf' (in highp 2-component vector of float)
0:156 'ing' (in highp 2-component vector of float)
0:156 'h' (temp highp 2-component vector of float)
0:156 'h' (noContraction temp highp 2-component vector of float)
0:157 indirect index (temp highp sampler2D)
0:157 'sArray' (uniform 4-element array of highp sampler2D)
0:157 add (temp highp int)
@ -360,11 +361,11 @@ ERROR: node is still EOpNull!
0:171 Function Parameters:
0:? Sequence
0:174 move second child to first child (temp highp 2-component vector of float)
0:174 'h' (temp highp 2-component vector of float)
0:174 'h' (noContraction temp highp 2-component vector of float)
0:174 fma (global highp 2-component vector of float)
0:174 'inf' (in highp 2-component vector of float)
0:174 'ing' (in highp 2-component vector of float)
0:174 'h' (temp highp 2-component vector of float)
0:174 'h' (noContraction temp highp 2-component vector of float)
0:175 indirect index (temp highp sampler2D)
0:175 'sArray' (uniform 4-element array of highp sampler2D)
0:175 add (temp highp int)
@ -1109,27 +1110,27 @@ ERROR: node is still EOpNull!
0:31 'u4' (temp highp 4-component vector of uint)
0:32 move second child to first child (temp highp int)
0:32 'i1' (temp highp int)
0:32 bitCount (global highp int)
0:32 bitCount (global lowp int)
0:32 'i1' (temp highp int)
0:33 move second child to first child (temp highp 3-component vector of int)
0:33 'i3' (temp highp 3-component vector of int)
0:33 bitCount (global highp 3-component vector of int)
0:33 bitCount (global lowp 3-component vector of int)
0:33 'u3' (temp highp 3-component vector of uint)
0:34 move second child to first child (temp highp 2-component vector of int)
0:34 'i2' (temp highp 2-component vector of int)
0:34 findLSB (global highp 2-component vector of int)
0:34 findLSB (global lowp 2-component vector of int)
0:34 'i2' (temp highp 2-component vector of int)
0:35 move second child to first child (temp highp 4-component vector of int)
0:35 'i4' (temp highp 4-component vector of int)
0:35 findLSB (global highp 4-component vector of int)
0:35 findLSB (global lowp 4-component vector of int)
0:35 'u4' (temp highp 4-component vector of uint)
0:36 move second child to first child (temp highp int)
0:36 'i1' (temp highp int)
0:36 findMSB (global highp int)
0:36 findMSB (global lowp int)
0:36 'i1' (temp highp int)
0:37 move second child to first child (temp highp 2-component vector of int)
0:37 'i2' (temp highp 2-component vector of int)
0:37 findMSB (global highp 2-component vector of int)
0:37 findMSB (global lowp 2-component vector of int)
0:37 'u2' (temp highp 2-component vector of uint)
0:40 move second child to first child (temp highp 3-component vector of float)
0:40 'v3' (temp highp 3-component vector of float)
@ -1216,11 +1217,11 @@ ERROR: node is still EOpNull!
0:153 Function Parameters:
0:? Sequence
0:156 move second child to first child (temp highp 2-component vector of float)
0:156 'h' (temp highp 2-component vector of float)
0:156 'h' (noContraction temp highp 2-component vector of float)
0:156 fma (global highp 2-component vector of float)
0:156 'inf' (in highp 2-component vector of float)
0:156 'ing' (in highp 2-component vector of float)
0:156 'h' (temp highp 2-component vector of float)
0:156 'h' (noContraction temp highp 2-component vector of float)
0:157 indirect index (temp highp sampler2D)
0:157 'sArray' (uniform 4-element array of highp sampler2D)
0:157 add (temp highp int)
@ -1291,11 +1292,11 @@ ERROR: node is still EOpNull!
0:171 Function Parameters:
0:? Sequence
0:174 move second child to first child (temp highp 2-component vector of float)
0:174 'h' (temp highp 2-component vector of float)
0:174 'h' (noContraction temp highp 2-component vector of float)
0:174 fma (global highp 2-component vector of float)
0:174 'inf' (in highp 2-component vector of float)
0:174 'ing' (in highp 2-component vector of float)
0:174 'h' (temp highp 2-component vector of float)
0:174 'h' (noContraction temp highp 2-component vector of float)
0:175 indirect index (temp highp sampler2D)
0:175 'sArray' (uniform 4-element array of highp sampler2D)
0:175 add (temp highp int)

View File

@ -37,7 +37,8 @@ ERROR: 0:140: 'textureQueryLod' : no matching overloaded function found
ERROR: 0:140: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found
ERROR: 0:141: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
ERROR: 38 compilation errors. No code generated.
ERROR: 0:152: 'index' : value must be 0 or 1
ERROR: 39 compilation errors. No code generated.
Shader version: 330
@ -122,6 +123,7 @@ ERROR: node is still EOpNull!
0:? 'samp2Ds' (uniform sampler2DShadow)
0:? 'precise' (global int)
0:? 'KeyMem' (global structure{global int precise})
0:? 'outIndex2' (layout(location=28 index=0 ) out 4-component vector of float)
Linked fragment stage:
@ -211,4 +213,5 @@ ERROR: node is still EOpNull!
0:? 'samp2Ds' (uniform sampler2DShadow)
0:? 'precise' (global int)
0:? 'KeyMem' (global structure{global int precise})
0:? 'outIndex2' (layout(location=28 index=0 ) out 4-component vector of float)

View File

@ -18,7 +18,10 @@ ERROR: 0:74: 'in' : type must be an array: ina
ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
ERROR: 0:83: 'location' : overlapping use of location 4
ERROR: 0:87: 'location' : overlapping use of location 4
ERROR: 18 compilation errors. No code generated.
ERROR: 0:104: '' : precise qualifier must appear first
ERROR: 0:105: '' : precise qualifier must appear first
ERROR: 0:105: '' : precise qualifier must appear first
ERROR: 21 compilation errors. No code generated.
Shader version: 400
@ -180,20 +183,20 @@ ERROR: node is still EOpNull!
0:91 Function Parameters:
0:? Sequence
0:95 multiply second child into first child (temp 3-component vector of float)
0:95 'pv3' (temp 3-component vector of float)
0:95 'pv3' (temp 3-component vector of float)
0:95 'pv3' (noContraction temp 3-component vector of float)
0:95 'pv3' (noContraction temp 3-component vector of float)
0:96 move second child to first child (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 fma (global 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:97 move second child to first child (temp double)
0:97 'd' (temp double)
0:97 'd' (noContraction temp double)
0:97 fma (global double)
0:97 'd' (temp double)
0:97 'd' (temp double)
0:97 'd' (temp double)
0:97 'd' (noContraction temp double)
0:97 'd' (noContraction temp double)
0:97 'd' (noContraction temp double)
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'outa' (global 4-element array of int)
@ -209,8 +212,9 @@ ERROR: node is still EOpNull!
0:? 'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
0:? 'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
0:? 'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
0:? 'pv3' (temp 3-component vector of float)
0:? 'pv3' (noContraction temp 3-component vector of float)
0:? 'pinbi' (patch out block{out int a})
0:? 'badOrder' (invariant noContraction out 4-element array of 4-component vector of float)
Linked tessellation control stage:
@ -233,8 +237,8 @@ ERROR: node is still EOpNull!
0:23 move second child to first child (temp 4-component vector of float)
0:23 'p' (temp 4-component vector of float)
0:23 gl_Position: direct index for structure (in 4-component vector of float Position)
0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:23 Constant:
0:23 1 (const int)
0:23 Constant:
@ -243,8 +247,8 @@ ERROR: node is still EOpNull!
0:24 move second child to first child (temp float)
0:24 'ps' (temp float)
0:24 gl_PointSize: direct index for structure (in float PointSize)
0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
@ -253,9 +257,9 @@ ERROR: node is still EOpNull!
0:25 move second child to first child (temp float)
0:25 'cd' (temp float)
0:25 direct index (temp float ClipDistance)
0:25 gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
0:25 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:25 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:25 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
0:25 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:25 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:25 Constant:
0:25 1 (const int)
0:25 Constant:
@ -276,25 +280,25 @@ ERROR: node is still EOpNull!
0:29 'gl_InvocationID' (in int InvocationID)
0:31 move second child to first child (temp 4-component vector of float)
0:31 gl_Position: direct index for structure (out 4-component vector of float Position)
0:31 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:31 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:31 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:31 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:31 'gl_InvocationID' (in int InvocationID)
0:31 Constant:
0:31 0 (const int)
0:31 'p' (temp 4-component vector of float)
0:32 move second child to first child (temp float)
0:32 gl_PointSize: direct index for structure (out float PointSize)
0:32 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:32 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_InvocationID' (in int InvocationID)
0:32 Constant:
0:32 1 (const int)
0:32 'ps' (temp float)
0:33 move second child to first child (temp float)
0:33 direct index (temp float ClipDistance)
0:33 gl_ClipDistance: direct index for structure (out 1-element array of float ClipDistance)
0:33 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:33 gl_ClipDistance: direct index for structure (out 2-element array of float ClipDistance)
0:33 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_InvocationID' (in int InvocationID)
0:33 Constant:
0:33 2 (const int)
@ -364,8 +368,8 @@ ERROR: node is still EOpNull!
0:67 Function Parameters:
0:69 Sequence
0:69 gl_PointSize: direct index for structure (out float PointSize)
0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:69 Constant:
0:69 4 (const int)
0:69 Constant:
@ -375,22 +379,22 @@ ERROR: node is still EOpNull!
0:91 Function Parameters:
0:? Sequence
0:95 multiply second child into first child (temp 3-component vector of float)
0:95 'pv3' (temp 3-component vector of float)
0:95 'pv3' (temp 3-component vector of float)
0:95 'pv3' (noContraction temp 3-component vector of float)
0:95 'pv3' (noContraction temp 3-component vector of float)
0:96 move second child to first child (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 fma (global 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:96 'pv3' (noContraction temp 3-component vector of float)
0:97 move second child to first child (temp double)
0:97 'd' (temp double)
0:97 'd' (noContraction temp double)
0:97 fma (global double)
0:97 'd' (temp double)
0:97 'd' (temp double)
0:97 'd' (temp double)
0:97 'd' (noContraction temp double)
0:97 'd' (noContraction temp double)
0:97 'd' (noContraction temp double)
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:? 'outa' (global 4-element array of int)
0:? 'patchIn' (patch in 4-component vector of float)
0:? 'patchOut' (patch out 4-component vector of float)
@ -404,6 +408,7 @@ ERROR: node is still EOpNull!
0:? 'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
0:? 'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
0:? 'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
0:? 'pv3' (temp 3-component vector of float)
0:? 'pv3' (noContraction temp 3-component vector of float)
0:? 'pinbi' (patch out block{out int a})
0:? 'badOrder' (invariant noContraction out 4-element array of 4-component vector of float)

View File

@ -138,7 +138,7 @@ ERROR: node is still EOpNull!
0:? 'badp2' (flat patch in 4-component vector of float)
0:? 'badp3' (noperspective patch in 4-component vector of float)
0:? 'badp4' (patch sample in 3-component vector of float)
0:? 'gl_in' (in 32-element array of block{in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance gl_ClipDistance})
0:? 'ina' (in 2-component vector of float)
0:? 'inb' (in 32-element array of 2-component vector of float)
0:? 'inc' (in 32-element array of 2-component vector of float)
@ -179,8 +179,8 @@ ERROR: node is still EOpNull!
0:32 move second child to first child (temp 4-component vector of float)
0:32 'p' (temp 4-component vector of float)
0:32 gl_Position: direct index for structure (in 4-component vector of float Position)
0:32 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:32 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:32 Constant:
0:32 1 (const int)
0:32 Constant:
@ -189,8 +189,8 @@ ERROR: node is still EOpNull!
0:33 move second child to first child (temp float)
0:33 'ps' (temp float)
0:33 gl_PointSize: direct index for structure (in float PointSize)
0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
@ -199,9 +199,9 @@ ERROR: node is still EOpNull!
0:34 move second child to first child (temp float)
0:34 'cd' (temp float)
0:34 direct index (temp float ClipDistance)
0:34 gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:34 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:34 Constant:
0:34 1 (const int)
0:34 Constant:

122
Test/baseResults/420.comp.out Executable file
View File

@ -0,0 +1,122 @@
420.comp
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'gl_WorkGroupSize' : not supported for this version or the enabled extensions
ERROR: 1 compilation errors. No code generated.
Shader version: 420
Requested GL_ARB_compute_shader
local_size = (2, 4, 6)
ERROR: node is still EOpNull!
0:11 Function Definition: main( (global void)
0:11 Function Parameters:
0:13 Sequence
0:13 move second child to first child (temp 3-component vector of float)
0:13 'sfoo' (shared 3-component vector of float)
0:13 Constant:
0:13 2.000000
0:13 4.000000
0:13 6.000000
0:14 add second child into first child (temp 3-component vector of float)
0:14 'sfoo' (shared 3-component vector of float)
0:14 Convert uint to float (temp 3-component vector of float)
0:14 add (temp 3-component vector of uint)
0:14 add (temp 3-component vector of uint)
0:14 add (temp 3-component vector of uint)
0:14 add (temp 3-component vector of uint)
0:14 Constant:
0:14 2 (const uint)
0:14 4 (const uint)
0:14 6 (const uint)
0:14 'gl_NumWorkGroups' (in 3-component vector of uint NumWorkGroups)
0:14 'gl_WorkGroupID' (in 3-component vector of uint WorkGroupID)
0:14 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
0:14 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
0:15 vector scale second child into first child (temp 3-component vector of float)
0:15 'sfoo' (shared 3-component vector of float)
0:15 Convert uint to float (temp float)
0:15 'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)
0:16 add second child into first child (temp 3-component vector of float)
0:16 'sfoo' (shared 3-component vector of float)
0:16 Constant:
0:16 66559.000000
0:16 66559.000000
0:16 65599.000000
0:17 vector scale second child into first child (temp 3-component vector of float)
0:17 'sfoo' (shared 3-component vector of float)
0:17 Constant:
0:17 1057.000000
0:23 Barrier (global void)
0:24 MemoryBarrier (global void)
0:25 MemoryBarrierAtomicCounter (global void)
0:26 MemoryBarrierBuffer (global void)
0:27 MemoryBarrierImage (global void)
0:28 MemoryBarrierShared (global void)
0:29 GroupMemoryBarrier (global void)
0:? Linker Objects
0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
0:? 2 (const uint)
0:? 4 (const uint)
0:? 6 (const uint)
0:? 'sfoo' (shared 3-component vector of float)
Linked compute stage:
Shader version: 420
Requested GL_ARB_compute_shader
local_size = (2, 4, 6)
ERROR: node is still EOpNull!
0:11 Function Definition: main( (global void)
0:11 Function Parameters:
0:13 Sequence
0:13 move second child to first child (temp 3-component vector of float)
0:13 'sfoo' (shared 3-component vector of float)
0:13 Constant:
0:13 2.000000
0:13 4.000000
0:13 6.000000
0:14 add second child into first child (temp 3-component vector of float)
0:14 'sfoo' (shared 3-component vector of float)
0:14 Convert uint to float (temp 3-component vector of float)
0:14 add (temp 3-component vector of uint)
0:14 add (temp 3-component vector of uint)
0:14 add (temp 3-component vector of uint)
0:14 add (temp 3-component vector of uint)
0:14 Constant:
0:14 2 (const uint)
0:14 4 (const uint)
0:14 6 (const uint)
0:14 'gl_NumWorkGroups' (in 3-component vector of uint NumWorkGroups)
0:14 'gl_WorkGroupID' (in 3-component vector of uint WorkGroupID)
0:14 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
0:14 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
0:15 vector scale second child into first child (temp 3-component vector of float)
0:15 'sfoo' (shared 3-component vector of float)
0:15 Convert uint to float (temp float)
0:15 'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)
0:16 add second child into first child (temp 3-component vector of float)
0:16 'sfoo' (shared 3-component vector of float)
0:16 Constant:
0:16 66559.000000
0:16 66559.000000
0:16 65599.000000
0:17 vector scale second child into first child (temp 3-component vector of float)
0:17 'sfoo' (shared 3-component vector of float)
0:17 Constant:
0:17 1057.000000
0:23 Barrier (global void)
0:24 MemoryBarrier (global void)
0:25 MemoryBarrierAtomicCounter (global void)
0:26 MemoryBarrierBuffer (global void)
0:27 MemoryBarrierImage (global void)
0:28 MemoryBarrierShared (global void)
0:29 GroupMemoryBarrier (global void)
0:? Linker Objects
0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
0:? 2 (const uint)
0:? 4 (const uint)
0:? 6 (const uint)
0:? 'sfoo' (shared 3-component vector of float)

View File

@ -132,8 +132,8 @@ ERROR: node is still EOpNull!
0:17 move second child to first child (temp 4-component vector of float)
0:17 'p' (temp 4-component vector of float)
0:17 gl_Position: direct index for structure (in 4-component vector of float Position)
0:17 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:17 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:17 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:17 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:17 Constant:
0:17 1 (const int)
0:17 Constant:
@ -142,8 +142,8 @@ ERROR: node is still EOpNull!
0:18 move second child to first child (temp float)
0:18 'ps' (temp float)
0:18 gl_PointSize: direct index for structure (in float PointSize)
0:18 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:18 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:18 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:18 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:18 Constant:
0:18 1 (const int)
0:18 Constant:
@ -152,9 +152,9 @@ ERROR: node is still EOpNull!
0:19 move second child to first child (temp float)
0:19 'cd' (temp float)
0:19 direct index (temp float ClipDistance)
0:19 gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
0:19 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:19 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:19 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
0:19 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:19 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
0:19 Constant:
0:19 1 (const int)
0:19 Constant:

View File

@ -1,17 +1,17 @@
420.tese
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:7: '=' : cannot convert from 'global 3-element array of float' to 'global 2-element array of float'
ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): global 2-component vector of float
ERROR: 0:9: 'initializer list' : wrong number of matrix columns: global 3X3 matrix of float
ERROR: 0:10: 'initializer list' : wrong number of matrix columns: global 2X2 matrix of float
ERROR: 0:7: '=' : cannot convert from 'const 3-element array of float' to 'global 2-element array of float'
ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): temp 2-component vector of float
ERROR: 0:9: 'initializer list' : wrong number of matrix columns: temp 3X3 matrix of float
ERROR: 0:10: 'initializer list' : wrong number of matrix columns: temp 2X2 matrix of float
ERROR: 0:25: 'initializer list' : wrong number of structure members
ERROR: 0:27: '=' : cannot convert from 'const bool' to 'global int'
ERROR: 0:28: 'constructor' : cannot convert parameter 2 from 'const float' to 'global 4-component vector of float'
ERROR: 0:28: 'constructor' : cannot convert parameter 2 from 'const float' to 'temp 4-component vector of float'
ERROR: 0:29: 'constructor' : cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float'
ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments
ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'
ERROR: 0:30: 'initializer list' : wrong number of matrix columns: global 4X2 matrix of float
ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'global structure{global float s, global float t}'
ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float
ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'temp structure{global float s, global float t}'
ERROR: 0:58: 'initializer list' : wrong number of structure members
ERROR: 13 compilation errors. No code generated.
@ -60,7 +60,7 @@ ERROR: node is still EOpNull!
0:68 Sequence
0:68 move second child to first child (temp 3-component vector of float)
0:68 'bv3' (global 3-component vector of float)
0:68 Construct vec3 (global 3-component vector of float)
0:68 Construct vec3 (temp 3-component vector of float)
0:68 'vc1' (global float)
0:68 'vc2' (global float)
0:68 'vc3' (global float)
@ -210,7 +210,7 @@ ERROR: node is still EOpNull!
0:68 Sequence
0:68 move second child to first child (temp 3-component vector of float)
0:68 'bv3' (global 3-component vector of float)
0:68 Construct vec3 (global 3-component vector of float)
0:68 Construct vec3 (temp 3-component vector of float)
0:68 'vc1' (global float)
0:68 'vc2' (global float)
0:68 'vc3' (global float)

View File

@ -275,7 +275,7 @@ ERROR: node is still EOpNull!
0:? 'sampb3' (layout(binding=80 ) uniform sampler2D)
0:? 'sampb4' (layout(binding=31 ) uniform sampler2D)
0:? 'sampb5' (layout(binding=79 ) uniform 2-element array of sampler2D)
0:? 'anon@3' (out block{out implicitly-sized array of float ClipDistance gl_ClipDistance, })
0:? 'anon@3' (out block{out 4-element array of float ClipDistance gl_ClipDistance, })
0:? 'patchIn' (patch in 4-component vector of float)
0:? 'patchOut' (smooth patch out 4-component vector of float)
0:? 'comma0' (temp int)
@ -527,7 +527,7 @@ ERROR: node is still EOpNull!
0:? 'sampb3' (layout(binding=80 ) uniform sampler2D)
0:? 'sampb4' (layout(binding=31 ) uniform sampler2D)
0:? 'sampb5' (layout(binding=79 ) uniform 2-element array of sampler2D)
0:? 'anon@3' (out block{out 1-element array of float ClipDistance gl_ClipDistance, })
0:? 'anon@3' (out block{out 4-element array of float ClipDistance gl_ClipDistance, })
0:? 'patchIn' (patch in 4-component vector of float)
0:? 'patchOut' (smooth patch out 4-component vector of float)
0:? 'comma0' (temp int)

View File

@ -6,7 +6,7 @@ ERROR: 0:15: 'constructior' : array constructor argument not correct type to con
ERROR: 0:28: '[' : array index out of range '4'
ERROR: 0:56: 'constructor' : cannot convert parameter 2 from 'const 3-element array of 4-component vector of float' to 'temp 2-element array of 4-component vector of float'
ERROR: 0:60: 'constructor' : cannot convert parameter 2 from 'const 2-element array of 4-component vector of float' to 'temp 3-element array of 4-component vector of float'
ERROR: 0:64: '=' : cannot convert from 'temp 3-element array of 2-element array of 4-component vector of float' to 'temp 4-element array of 2-element array of 4-component vector of float'
ERROR: 0:64: '=' : cannot convert from 'const 3-element array of 2-element array of 4-component vector of float' to 'temp 4-element array of 2-element array of 4-component vector of float'
ERROR: 0:70: 'assign' : cannot convert from 'global 4-element array of 7-element array of float' to 'global 5-element array of 7-element array of float'
ERROR: 0:71: 'assign' : cannot convert from 'global 4-element array of 7-element array of float' to 'global implicitly-sized array of 7-element array of float'
ERROR: 0:73: 'foo' : no matching overloaded function found

View File

@ -51,7 +51,7 @@ Shader version: 450
0:18 move second child to first child (temp float)
0:18 'cull' (temp float)
0:18 direct index (smooth temp float CullDistance)
0:18 'gl_CullDistance' (smooth in implicitly-sized array of float CullDistance)
0:18 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
0:18 Constant:
0:18 2 (const int)
0:19 Sequence
@ -130,12 +130,32 @@ Shader version: 450
0:48 2 (const int)
0:48 Constant:
0:48 4.500000
0:53 Function Definition: cull(i1; (global float)
0:53 Function Parameters:
0:53 'i' (in int)
0:55 Sequence
0:55 Branch: Return with expression
0:55 Test condition and select (temp float)
0:55 Condition
0:55 Compare Greater Than or Equal (temp bool)
0:55 'i' (in int)
0:55 Constant:
0:55 6 (const int)
0:55 true case
0:55 direct index (smooth temp float CullDistance)
0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
0:55 Constant:
0:55 5 (const int)
0:55 false case
0:55 indirect index (smooth temp float CullDistance)
0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
0:55 'i' (in int)
0:? Linker Objects
0:? 'in1' (smooth in float)
0:? 'in2' (smooth in 2-component vector of float)
0:? 'in3' (smooth in 3-component vector of float)
0:? 'in4' (smooth in 4-component vector of float)
0:? 'gl_CullDistance' (smooth in implicitly-sized array of float CullDistance)
0:? 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
0:? 's2dms' (uniform sampler2DMS)
0:? 'us2dmsa' (uniform usampler2DMSArray)
0:? 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
@ -195,7 +215,7 @@ Shader version: 450
0:18 move second child to first child (temp float)
0:18 'cull' (temp float)
0:18 direct index (smooth temp float CullDistance)
0:18 'gl_CullDistance' (smooth in 3-element array of float CullDistance)
0:18 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
0:18 Constant:
0:18 2 (const int)
0:19 Sequence
@ -274,12 +294,32 @@ Shader version: 450
0:48 2 (const int)
0:48 Constant:
0:48 4.500000
0:53 Function Definition: cull(i1; (global float)
0:53 Function Parameters:
0:53 'i' (in int)
0:55 Sequence
0:55 Branch: Return with expression
0:55 Test condition and select (temp float)
0:55 Condition
0:55 Compare Greater Than or Equal (temp bool)
0:55 'i' (in int)
0:55 Constant:
0:55 6 (const int)
0:55 true case
0:55 direct index (smooth temp float CullDistance)
0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
0:55 Constant:
0:55 5 (const int)
0:55 false case
0:55 indirect index (smooth temp float CullDistance)
0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
0:55 'i' (in int)
0:? Linker Objects
0:? 'in1' (smooth in float)
0:? 'in2' (smooth in 2-component vector of float)
0:? 'in3' (smooth in 3-component vector of float)
0:? 'in4' (smooth in 4-component vector of float)
0:? 'gl_CullDistance' (smooth in 3-element array of float CullDistance)
0:? 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
0:? 's2dms' (uniform sampler2DMS)
0:? 'us2dmsa' (uniform usampler2DMSArray)
0:? 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

View File

@ -12,16 +12,16 @@ output primitive = none
0:13 Sequence
0:13 move second child to first child (temp float)
0:13 direct index (layout(stream=0 ) temp float CullDistance)
0:13 gl_CullDistance: direct index for structure (layout(stream=0 ) out implicitly-sized array of float CullDistance)
0:13 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out implicitly-sized array of float CullDistance gl_CullDistance})
0:13 gl_CullDistance: direct index for structure (layout(stream=0 ) out 3-element array of float CullDistance)
0:13 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})
0:13 Constant:
0:13 3 (const uint)
0:13 Constant:
0:13 2 (const int)
0:13 direct index (temp float CullDistance)
0:13 gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)
0:13 direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in implicitly-sized array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in implicitly-sized array of block{in 3-element array of float CullDistance gl_CullDistance})
0:13 Constant:
0:13 1 (const int)
0:13 Constant:
@ -29,8 +29,8 @@ output primitive = none
0:13 Constant:
0:13 2 (const int)
0:? Linker Objects
0:? 'gl_in' (in implicitly-sized array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out implicitly-sized array of float CullDistance gl_CullDistance})
0:? 'gl_in' (in implicitly-sized array of block{in 3-element array of float CullDistance gl_CullDistance})
0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})
Linked geometry stage:
@ -57,9 +57,9 @@ output primitive = none
0:13 Constant:
0:13 2 (const int)
0:13 direct index (temp float CullDistance)
0:13 gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)
0:13 direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in 2-element array of block{in 1-element array of float CullDistance gl_CullDistance})
0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in 2-element array of block{in 3-element array of float CullDistance gl_CullDistance})
0:13 Constant:
0:13 1 (const int)
0:13 Constant:
@ -67,6 +67,6 @@ output primitive = none
0:13 Constant:
0:13 2 (const int)
0:? Linker Objects
0:? 'gl_in' (in 2-element array of block{in 1-element array of float CullDistance gl_CullDistance})
0:? 'gl_in' (in 2-element array of block{in 3-element array of float CullDistance gl_CullDistance})
0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})

View File

@ -9,18 +9,18 @@ vertices = -1
0:13 Sequence
0:13 move second child to first child (temp float)
0:13 direct index (temp float CullDistance)
0:13 gl_CullDistance: direct index for structure (out implicitly-sized array of float CullDistance)
0:13 indirect index (temp block{out implicitly-sized array of float CullDistance gl_CullDistance})
0:13 'gl_out' (out 4-element array of block{out implicitly-sized array of float CullDistance gl_CullDistance})
0:13 gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
0:13 indirect index (temp block{out 3-element array of float CullDistance gl_CullDistance})
0:13 'gl_out' (out 4-element array of block{out 3-element array of float CullDistance gl_CullDistance})
0:13 'gl_InvocationID' (in int InvocationID)
0:13 Constant:
0:13 0 (const int)
0:13 Constant:
0:13 2 (const int)
0:13 direct index (temp float CullDistance)
0:13 gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)
0:13 direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
0:13 Constant:
0:13 1 (const int)
0:13 Constant:
@ -28,8 +28,8 @@ vertices = -1
0:13 Constant:
0:13 2 (const int)
0:? Linker Objects
0:? 'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
0:? 'gl_out' (out 4-element array of block{out implicitly-sized array of float CullDistance gl_CullDistance})
0:? 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
0:? 'gl_out' (out 4-element array of block{out 3-element array of float CullDistance gl_CullDistance})
Linked tessellation control stage:
@ -44,18 +44,18 @@ vertices = -1
0:13 Sequence
0:13 move second child to first child (temp float)
0:13 direct index (temp float CullDistance)
0:13 gl_CullDistance: direct index for structure (out 1-element array of float CullDistance)
0:13 indirect index (temp block{out 1-element array of float CullDistance gl_CullDistance})
0:13 'gl_out' (out 4-element array of block{out 1-element array of float CullDistance gl_CullDistance})
0:13 gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
0:13 indirect index (temp block{out 3-element array of float CullDistance gl_CullDistance})
0:13 'gl_out' (out 4-element array of block{out 3-element array of float CullDistance gl_CullDistance})
0:13 'gl_InvocationID' (in int InvocationID)
0:13 Constant:
0:13 0 (const int)
0:13 Constant:
0:13 2 (const int)
0:13 direct index (temp float CullDistance)
0:13 gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)
0:13 direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
0:13 Constant:
0:13 1 (const int)
0:13 Constant:
@ -63,6 +63,6 @@ vertices = -1
0:13 Constant:
0:13 2 (const int)
0:? Linker Objects
0:? 'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
0:? 'gl_out' (out 4-element array of block{out 1-element array of float CullDistance gl_CullDistance})
0:? 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
0:? 'gl_out' (out 4-element array of block{out 3-element array of float CullDistance gl_CullDistance})

View File

@ -11,16 +11,16 @@ triangle order = none
0:13 Sequence
0:13 move second child to first child (temp float)
0:13 direct index (temp float CullDistance)
0:13 gl_CullDistance: direct index for structure (out implicitly-sized array of float CullDistance)
0:13 'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})
0:13 gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
0:13 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
0:13 Constant:
0:13 3 (const uint)
0:13 Constant:
0:13 2 (const int)
0:13 direct index (temp float CullDistance)
0:13 gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)
0:13 direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
0:13 Constant:
0:13 1 (const int)
0:13 Constant:
@ -28,8 +28,8 @@ triangle order = none
0:13 Constant:
0:13 2 (const int)
0:? Linker Objects
0:? 'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
0:? 'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})
0:? 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
0:? 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
Linked tessellation evaluation stage:
@ -53,9 +53,9 @@ triangle order = ccw
0:13 Constant:
0:13 2 (const int)
0:13 direct index (temp float CullDistance)
0:13 gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)
0:13 direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
0:13 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
0:13 Constant:
0:13 1 (const int)
0:13 Constant:
@ -63,6 +63,6 @@ triangle order = ccw
0:13 Constant:
0:13 2 (const int)
0:? Linker Objects
0:? 'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
0:? 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
0:? 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})

View File

@ -12,8 +12,8 @@ ERROR: node is still EOpNull!
0:9 Sequence
0:9 move second child to first child (temp float)
0:9 direct index (temp float CullDistance)
0:9 gl_CullDistance: direct index for structure (out implicitly-sized array of float CullDistance)
0:9 'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})
0:9 gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
0:9 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
0:9 Constant:
0:9 10 (const uint)
0:9 Constant:
@ -21,7 +21,7 @@ ERROR: node is still EOpNull!
0:9 Constant:
0:9 4.500000
0:? Linker Objects
0:? 'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})
0:? 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
0:? 'outb' (smooth out bool)
0:? 'outo' (smooth out sampler2D)
0:? 'outa' (smooth out 4-element array of float)

View File

@ -13,16 +13,5 @@ Shader version: 110
0:? Sequence
0:? Linker Objects
Linked fragment stage:
ERROR: Linking fragment stage: Cannot mix ES profile with non-ES profile shaders
ERROR: Linking fragment stage: Cannot mix ES profile with non-ES profile shaders
ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
Shader version: 110
0:? Sequence
0:? Linker Objects
ERROR: Cannot mix ES profile with non-ES profile shaders

View File

@ -0,0 +1,27 @@
es-link1.frag
Shader version: 100
0:? Sequence
0:5 Function Definition: main( (global void)
0:5 Function Parameters:
0:7 Sequence
0:7 move second child to first child (temp mediump 4-component vector of float)
0:7 'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
0:7 Function Call: calculateColor( (global mediump 4-component vector of float)
0:? Linker Objects
es-link2.frag
Shader version: 100
0:? Sequence
0:5 Function Definition: calculateColor( (global mediump 4-component vector of float)
0:5 Function Parameters:
0:7 Sequence
0:7 Branch: Return with expression
0:7 vector-scale (temp mediump 4-component vector of float)
0:7 'varyingColor' (smooth in mediump 4-component vector of float)
0:7 Constant:
0:7 0.500000
0:? Linker Objects
0:? 'varyingColor' (smooth in mediump 4-component vector of float)
ERROR: Cannot attach multiple ES shaders of the same type to a single program

View File

@ -0,0 +1,113 @@
hlsl.assoc.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
0:8 Function Parameters:
0:8 'a1' (temp 4-component vector of float)
0:8 'a2' (temp 4-component vector of float)
0:8 'a3' (temp 4-component vector of float)
0:8 'a4' (temp 4-component vector of float)
0:8 'a5' (temp 4-component vector of float)
0:? Sequence
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a1' (temp 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a2' (temp 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a3' (temp 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a4' (temp 4-component vector of float)
0:9 'a5' (temp 4-component vector of float)
0:10 Branch: Return with expression
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 'a1' (temp 4-component vector of float)
0:10 'a2' (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 'a3' (temp 4-component vector of float)
0:10 'a4' (temp 4-component vector of float)
0:10 'a5' (temp 4-component vector of float)
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
0:8 Function Parameters:
0:8 'a1' (temp 4-component vector of float)
0:8 'a2' (temp 4-component vector of float)
0:8 'a3' (temp 4-component vector of float)
0:8 'a4' (temp 4-component vector of float)
0:8 'a5' (temp 4-component vector of float)
0:? Sequence
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a1' (temp 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a2' (temp 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a3' (temp 4-component vector of float)
0:9 move second child to first child (temp 4-component vector of float)
0:9 'a4' (temp 4-component vector of float)
0:9 'a5' (temp 4-component vector of float)
0:10 Branch: Return with expression
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 'a1' (temp 4-component vector of float)
0:10 'a2' (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 'a3' (temp 4-component vector of float)
0:10 'a4' (temp 4-component vector of float)
0:10 'a5' (temp 4-component vector of float)
0:? Linker Objects
// 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 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 9 "a1"
Name 10 "a2"
Name 11 "a3"
Name 12 "a4"
Name 13 "a5"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
4(PixelShaderFunction): 2 Function None 3
5: Label
9(a1): 8(ptr) Variable Function
10(a2): 8(ptr) Variable Function
11(a3): 8(ptr) Variable Function
12(a4): 8(ptr) Variable Function
13(a5): 8(ptr) Variable Function
14: 7(fvec4) Load 13(a5)
Store 12(a4) 14
Store 11(a3) 14
Store 10(a2) 14
Store 9(a1) 14
15: 7(fvec4) Load 9(a1)
16: 7(fvec4) Load 10(a2)
17: 7(fvec4) FAdd 15 16
18: 7(fvec4) Load 11(a3)
19: 7(fvec4) Load 12(a4)
20: 7(fvec4) FAdd 18 19
21: 7(fvec4) FAdd 17 20
22: 7(fvec4) Load 13(a5)
23: 7(fvec4) FAdd 21 22
ReturnValue 23
FunctionEnd

View File

@ -0,0 +1,57 @@
hlsl.attribute.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:11 Test condition and select (temp void)
0:11 Condition
0:11 Constant:
0:11 0 (const int)
0:11 true case is null
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:11 Test condition and select (temp void)
0:11 Condition
0:11 Constant:
0:11 0 (const int)
0:11 true case is null
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 10
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: 6(int) Constant 0
4(PixelShaderFunction): 2 Function None 3
5: Label
SelectionMerge 9 None
BranchConditional 7 8 9
8: Label
Branch 9
9: Label
Return
FunctionEnd

View File

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

View File

@ -0,0 +1,116 @@
hlsl.doLoop.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:3 Loop with condition not tested first
0:3 Loop Condition
0:3 Constant:
0:3 false (const bool)
0:3 No loop body
0:4 Loop with condition not tested first
0:4 Loop Condition
0:4 Constant:
0:4 false (const bool)
0:4 No loop body
0:5 Loop with condition not tested first
0:5 Loop Condition
0:5 Compare Equal (temp bool)
0:5 'input' (temp 4-component vector of float)
0:5 'input' (temp 4-component vector of float)
0:5 Loop Body
0:5 Branch: Return with expression
0:5 'input' (temp 4-component vector of float)
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:3 Loop with condition not tested first
0:3 Loop Condition
0:3 Constant:
0:3 false (const bool)
0:3 No loop body
0:4 Loop with condition not tested first
0:4 Loop Condition
0:4 Constant:
0:4 false (const bool)
0:4 No loop body
0:5 Loop with condition not tested first
0:5 Loop Condition
0:5 Compare Equal (temp bool)
0:5 'input' (temp 4-component vector of float)
0:5 'input' (temp 4-component vector of float)
0:5 Loop Body
0:5 Branch: Return with expression
0:5 'input' (temp 4-component vector of float)
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 31
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 23 "input"
2: TypeVoid
3: TypeFunction 2
10: TypeBool
11: 10(bool) ConstantFalse
20: TypeFloat 32
21: TypeVector 20(float) 4
22: TypePointer Function 21(fvec4)
28: TypeVector 10(bool) 4
4(PixelShaderFunction): 2 Function None 3
5: Label
23(input): 22(ptr) Variable Function
Branch 6
6: Label
LoopMerge 8 9 None
Branch 7
7: Label
Branch 9
9: Label
BranchConditional 11 6 8
8: Label
Branch 12
12: Label
LoopMerge 14 15 None
Branch 13
13: Label
Branch 15
15: Label
BranchConditional 11 12 14
14: Label
Branch 16
16: Label
LoopMerge 18 19 None
Branch 17
17: Label
24: 21(fvec4) Load 23(input)
ReturnValue 24
19: Label
26: 21(fvec4) Load 23(input)
27: 21(fvec4) Load 23(input)
29: 28(bvec4) FOrdEqual 26 27
30: 10(bool) All 29
BranchConditional 30 16 18
18: Label
Return
FunctionEnd

View File

@ -0,0 +1,100 @@
hlsl.float1.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1 move second child to first child (temp 1-component vector of float)
0:1 'f1' (temp 1-component vector of float)
0:1 Constant:
0:1 1.000000
0:2 move second child to first child (temp float)
0:2 'scalar' (temp float)
0:2 Constant:
0:2 2.000000
0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
0:5 Function Parameters:
0:5 'inFloat1' (temp 1-component vector of float)
0:5 'inScalar' (temp float)
0:? Sequence
0:6 Branch: Return with expression
0:6 add (temp 1-component vector of float)
0:6 vector-scale (temp 1-component vector of float)
0:6 'f1' (temp 1-component vector of float)
0:6 'scalar' (temp float)
0:6 vector-scale (temp 1-component vector of float)
0:6 'inFloat1' (temp 1-component vector of float)
0:6 'inScalar' (temp float)
0:? Linker Objects
0:? 'f1' (temp 1-component vector of float)
0:? 'scalar' (temp float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1 move second child to first child (temp 1-component vector of float)
0:1 'f1' (temp 1-component vector of float)
0:1 Constant:
0:1 1.000000
0:2 move second child to first child (temp float)
0:2 'scalar' (temp float)
0:2 Constant:
0:2 2.000000
0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
0:5 Function Parameters:
0:5 'inFloat1' (temp 1-component vector of float)
0:5 'inScalar' (temp float)
0:? Sequence
0:6 Branch: Return with expression
0:6 add (temp 1-component vector of float)
0:6 vector-scale (temp 1-component vector of float)
0:6 'f1' (temp 1-component vector of float)
0:6 'scalar' (temp float)
0:6 vector-scale (temp 1-component vector of float)
0:6 'inFloat1' (temp 1-component vector of float)
0:6 'inScalar' (temp float)
0:? Linker Objects
0:? 'f1' (temp 1-component vector of float)
0:? 'scalar' (temp float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 11 "ShaderFunction(vf1;f1;"
Name 9 "inFloat1"
Name 10 "inScalar"
Name 13 "f1"
Name 15 "scalar"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
8: TypeFunction 6(float) 7(ptr) 7(ptr)
4(PixelShaderFunction): 2 Function None 3
5: Label
FunctionEnd
11(ShaderFunction(vf1;f1;): 6(float) Function None 8
9(inFloat1): 7(ptr) FunctionParameter
10(inScalar): 7(ptr) FunctionParameter
12: Label
13(f1): 7(ptr) Variable Function
15(scalar): 7(ptr) Variable Function
14: 6(float) Load 13(f1)
16: 6(float) Load 15(scalar)
17: 6(float) IMul 14 16
18: 6(float) Load 9(inFloat1)
19: 6(float) Load 10(inScalar)
20: 6(float) IMul 18 19
21: 6(float) FAdd 17 20
ReturnValue 21
FunctionEnd

View File

@ -0,0 +1,79 @@
hlsl.float4.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1 move second child to first child (temp 4-component vector of float)
0:1 'AmbientColor' (temp 4-component vector of float)
0:? Constant:
0:? 1.000000
0:? 0.500000
0:? 0.000000
0:? 1.000000
0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
0:4 Function Parameters:
0:4 'input' (temp 4-component vector of float)
0:? Sequence
0:5 Branch: Return with expression
0:5 component-wise multiply (temp 4-component vector of float)
0:5 'input' (temp 4-component vector of float)
0:5 'AmbientColor' (temp 4-component vector of float)
0:? Linker Objects
0:? 'AmbientColor' (temp 4-component vector of float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1 move second child to first child (temp 4-component vector of float)
0:1 'AmbientColor' (temp 4-component vector of float)
0:? Constant:
0:? 1.000000
0:? 0.500000
0:? 0.000000
0:? 1.000000
0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
0:4 Function Parameters:
0:4 'input' (temp 4-component vector of float)
0:? Sequence
0:5 Branch: Return with expression
0:5 component-wise multiply (temp 4-component vector of float)
0:5 'input' (temp 4-component vector of float)
0:5 'AmbientColor' (temp 4-component vector of float)
0:? Linker Objects
0:? 'AmbientColor' (temp 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 19
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 11 "ShaderFunction(vf4;"
Name 10 "input"
Name 14 "AmbientColor"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr)
4(PixelShaderFunction): 2 Function None 3
5: Label
FunctionEnd
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
10(input): 8(ptr) FunctionParameter
12: Label
14(AmbientColor): 8(ptr) Variable Function
13: 7(fvec4) Load 10(input)
15: 7(fvec4) Load 14(AmbientColor)
16: 7(fvec4) FMul 13 15
ReturnValue 16
FunctionEnd

View File

@ -0,0 +1,220 @@
hlsl.forLoop.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:? Sequence
0:3 Loop with condition tested first
0:3 No loop condition
0:3 No loop body
0:4 Sequence
0:4 Pre-Increment (temp 4-component vector of float)
0:4 'input' (temp 4-component vector of float)
0:4 Loop with condition tested first
0:4 No loop condition
0:4 No loop body
0:? Sequence
0:5 Loop with condition tested first
0:5 Loop Condition
0:5 Compare Not Equal (temp bool)
0:5 'input' (temp 4-component vector of float)
0:5 'input' (temp 4-component vector of float)
0:5 No loop body
0:? Sequence
0:6 Loop with condition tested first
0:6 Loop Condition
0:6 Compare Not Equal (temp bool)
0:6 'input' (temp 4-component vector of float)
0:6 'input' (temp 4-component vector of float)
0:6 Loop Body
0:? Sequence
0:6 Branch: Return with expression
0:6 Negate value (temp 4-component vector of float)
0:6 'input' (temp 4-component vector of float)
0:7 Sequence
0:7 Pre-Decrement (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 Loop with condition tested first
0:7 Loop Condition
0:7 Compare Not Equal (temp bool)
0:7 'input' (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 Loop Body
0:? Sequence
0:7 Branch: Return with expression
0:7 Negate value (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 Loop Terminal Expression
0:7 add second child into first child (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 Constant:
0:7 2.000000
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:? Sequence
0:3 Loop with condition tested first
0:3 No loop condition
0:3 No loop body
0:4 Sequence
0:4 Pre-Increment (temp 4-component vector of float)
0:4 'input' (temp 4-component vector of float)
0:4 Loop with condition tested first
0:4 No loop condition
0:4 No loop body
0:? Sequence
0:5 Loop with condition tested first
0:5 Loop Condition
0:5 Compare Not Equal (temp bool)
0:5 'input' (temp 4-component vector of float)
0:5 'input' (temp 4-component vector of float)
0:5 No loop body
0:? Sequence
0:6 Loop with condition tested first
0:6 Loop Condition
0:6 Compare Not Equal (temp bool)
0:6 'input' (temp 4-component vector of float)
0:6 'input' (temp 4-component vector of float)
0:6 Loop Body
0:? Sequence
0:6 Branch: Return with expression
0:6 Negate value (temp 4-component vector of float)
0:6 'input' (temp 4-component vector of float)
0:7 Sequence
0:7 Pre-Decrement (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 Loop with condition tested first
0:7 Loop Condition
0:7 Compare Not Equal (temp bool)
0:7 'input' (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 Loop Body
0:? Sequence
0:7 Branch: Return with expression
0:7 Negate value (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 Loop Terminal Expression
0:7 add second child into first child (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 Constant:
0:7 2.000000
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 64
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 13 "input"
2: TypeVoid
3: TypeFunction 2
10: TypeFloat 32
11: TypeVector 10(float) 4
12: TypePointer Function 11(fvec4)
15: 10(float) Constant 1065353216
29: TypeBool
30: TypeVector 29(bool) 4
60: 10(float) Constant 1073741824
4(PixelShaderFunction): 2 Function None 3
5: Label
13(input): 12(ptr) Variable Function
Branch 6
6: Label
LoopMerge 8 9 None
Branch 7
7: Label
Branch 9
9: Label
Branch 6
8: Label
14: 11(fvec4) Load 13(input)
16: 11(fvec4) CompositeConstruct 15 15 15 15
17: 11(fvec4) FAdd 14 16
Store 13(input) 17
Branch 18
18: Label
LoopMerge 20 21 None
Branch 19
19: Label
Branch 21
21: Label
Branch 18
20: Label
Branch 22
22: Label
LoopMerge 24 25 None
Branch 26
26: Label
27: 11(fvec4) Load 13(input)
28: 11(fvec4) Load 13(input)
31: 30(bvec4) FOrdNotEqual 27 28
32: 29(bool) Any 31
BranchConditional 32 23 24
23: Label
Branch 25
25: Label
Branch 22
24: Label
Branch 33
33: Label
LoopMerge 35 36 None
Branch 37
37: Label
38: 11(fvec4) Load 13(input)
39: 11(fvec4) Load 13(input)
40: 30(bvec4) FOrdNotEqual 38 39
41: 29(bool) Any 40
BranchConditional 41 34 35
34: Label
42: 11(fvec4) Load 13(input)
43: 11(fvec4) FNegate 42
ReturnValue 43
36: Label
Branch 33
35: Label
45: 11(fvec4) Load 13(input)
46: 11(fvec4) CompositeConstruct 15 15 15 15
47: 11(fvec4) FSub 45 46
Store 13(input) 47
Branch 48
48: Label
LoopMerge 50 51 None
Branch 52
52: Label
53: 11(fvec4) Load 13(input)
54: 11(fvec4) Load 13(input)
55: 30(bvec4) FOrdNotEqual 53 54
56: 29(bool) Any 55
BranchConditional 56 49 50
49: Label
57: 11(fvec4) Load 13(input)
58: 11(fvec4) FNegate 57
ReturnValue 58
51: Label
61: 11(fvec4) Load 13(input)
62: 11(fvec4) CompositeConstruct 60 60 60 60
63: 11(fvec4) FAdd 61 62
Store 13(input) 63
Branch 48
50: Label
Return
FunctionEnd

View File

@ -0,0 +1,160 @@
hlsl.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1 move second child to first child (temp 4-component vector of float)
0:1 'AmbientColor' (temp 4-component vector of float)
0:? Constant:
0:? 1.000000
0:? 0.500000
0:? 0.000000
0:? 1.000000
0:2 move second child to first child (temp float)
0:2 'AmbientIntensity' (temp float)
0:2 Constant:
0:2 0.100000
0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:5 Function Parameters:
0:5 'input' (temp 4-component vector of float)
0:? Sequence
0:6 Branch: Return with expression
0:6 add (temp 4-component vector of float)
0:6 vector-scale (temp 4-component vector of float)
0:6 'input' (temp 4-component vector of float)
0:6 'AmbientIntensity' (temp float)
0:6 'AmbientColor' (temp 4-component vector of float)
0:7 Branch: Return with expression
0:7 add (temp 4-component vector of float)
0:7 component-wise multiply (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 component-wise multiply (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:8 Branch: Return with expression
0:8 add (temp 4-component vector of float)
0:8 add (temp 4-component vector of float)
0:8 'input' (temp 4-component vector of float)
0:8 component-wise multiply (temp 4-component vector of float)
0:8 'input' (temp 4-component vector of float)
0:8 'input' (temp 4-component vector of float)
0:8 'input' (temp 4-component vector of float)
0:9 Branch: Return with expression
0:9 component-wise multiply (temp 4-component vector of float)
0:9 Pre-Increment (temp 4-component vector of float)
0:9 'input' (temp 4-component vector of float)
0:9 Negate value (temp 4-component vector of float)
0:9 Negate value (temp 4-component vector of float)
0:9 Pre-Decrement (temp 4-component vector of float)
0:9 'input' (temp 4-component vector of float)
0:10 Branch: Return with expression
0:10 add (temp 4-component vector of float)
0:10 Post-Increment (temp 4-component vector of float)
0:10 'input' (temp 4-component vector of float)
0:10 Pre-Increment (temp 4-component vector of float)
0:10 'input' (temp 4-component vector of float)
0:11 Branch: Return with expression
0:11 sine (global 4-component vector of float)
0:11 'input' (temp 4-component vector of float)
0:? Linker Objects
0:? 'AmbientColor' (temp 4-component vector of float)
0:? 'AmbientIntensity' (temp float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1 move second child to first child (temp 4-component vector of float)
0:1 'AmbientColor' (temp 4-component vector of float)
0:? Constant:
0:? 1.000000
0:? 0.500000
0:? 0.000000
0:? 1.000000
0:2 move second child to first child (temp float)
0:2 'AmbientIntensity' (temp float)
0:2 Constant:
0:2 0.100000
0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:5 Function Parameters:
0:5 'input' (temp 4-component vector of float)
0:? Sequence
0:6 Branch: Return with expression
0:6 add (temp 4-component vector of float)
0:6 vector-scale (temp 4-component vector of float)
0:6 'input' (temp 4-component vector of float)
0:6 'AmbientIntensity' (temp float)
0:6 'AmbientColor' (temp 4-component vector of float)
0:7 Branch: Return with expression
0:7 add (temp 4-component vector of float)
0:7 component-wise multiply (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 component-wise multiply (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:7 'input' (temp 4-component vector of float)
0:8 Branch: Return with expression
0:8 add (temp 4-component vector of float)
0:8 add (temp 4-component vector of float)
0:8 'input' (temp 4-component vector of float)
0:8 component-wise multiply (temp 4-component vector of float)
0:8 'input' (temp 4-component vector of float)
0:8 'input' (temp 4-component vector of float)
0:8 'input' (temp 4-component vector of float)
0:9 Branch: Return with expression
0:9 component-wise multiply (temp 4-component vector of float)
0:9 Pre-Increment (temp 4-component vector of float)
0:9 'input' (temp 4-component vector of float)
0:9 Negate value (temp 4-component vector of float)
0:9 Negate value (temp 4-component vector of float)
0:9 Pre-Decrement (temp 4-component vector of float)
0:9 'input' (temp 4-component vector of float)
0:10 Branch: Return with expression
0:10 add (temp 4-component vector of float)
0:10 Post-Increment (temp 4-component vector of float)
0:10 'input' (temp 4-component vector of float)
0:10 Pre-Increment (temp 4-component vector of float)
0:10 'input' (temp 4-component vector of float)
0:11 Branch: Return with expression
0:11 sine (global 4-component vector of float)
0:11 'input' (temp 4-component vector of float)
0:? Linker Objects
0:? 'AmbientColor' (temp 4-component vector of float)
0:? 'AmbientIntensity' (temp float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 57
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 9 "input"
Name 12 "AmbientIntensity"
Name 15 "AmbientColor"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
11: TypePointer Function 6(float)
36: 6(float) Constant 1065353216
4(PixelShaderFunction): 2 Function None 3
5: Label
9(input): 8(ptr) Variable Function
12(AmbientIntensity): 11(ptr) Variable Function
15(AmbientColor): 8(ptr) Variable Function
10: 7(fvec4) Load 9(input)
13: 6(float) Load 12(AmbientIntensity)
14: 7(fvec4) VectorTimesScalar 10 13
16: 7(fvec4) Load 15(AmbientColor)
17: 7(fvec4) FAdd 14 16
ReturnValue 17
FunctionEnd

223
Test/baseResults/hlsl.if.frag.out Executable file
View File

@ -0,0 +1,223 @@
hlsl.if.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:3 Test condition and select (temp void)
0:3 Condition
0:3 Compare Equal (temp bool)
0:3 'input' (temp 4-component vector of float)
0:3 'input' (temp 4-component vector of float)
0:3 true case
0:4 Branch: Return with expression
0:4 'input' (temp 4-component vector of float)
0:6 Test condition and select (temp void)
0:6 Condition
0:6 Compare Equal (temp bool)
0:6 'input' (temp 4-component vector of float)
0:6 'input' (temp 4-component vector of float)
0:6 true case
0:7 Branch: Return with expression
0:7 'input' (temp 4-component vector of float)
0:6 false case
0:9 Branch: Return with expression
0:9 Negate value (temp 4-component vector of float)
0:9 'input' (temp 4-component vector of float)
0:11 Test condition and select (temp void)
0:11 Condition
0:11 Compare Equal (temp bool)
0:11 'input' (temp 4-component vector of float)
0:11 'input' (temp 4-component vector of float)
0:11 true case is null
0:14 Test condition and select (temp void)
0:14 Condition
0:14 Compare Equal (temp bool)
0:14 'input' (temp 4-component vector of float)
0:14 'input' (temp 4-component vector of float)
0:14 true case is null
0:19 Test condition and select (temp void)
0:19 Condition
0:19 Compare Equal (temp bool)
0:19 'input' (temp 4-component vector of float)
0:19 'input' (temp 4-component vector of float)
0:19 true case
0:? Sequence
0:20 Branch: Return with expression
0:20 'input' (temp 4-component vector of float)
0:23 Test condition and select (temp void)
0:23 Condition
0:23 Compare Equal (temp bool)
0:23 'input' (temp 4-component vector of float)
0:23 'input' (temp 4-component vector of float)
0:23 true case
0:? Sequence
0:24 Branch: Return with expression
0:24 'input' (temp 4-component vector of float)
0:23 false case
0:? Sequence
0:26 Branch: Return with expression
0:26 Negate value (temp 4-component vector of float)
0:26 'input' (temp 4-component vector of float)
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:3 Test condition and select (temp void)
0:3 Condition
0:3 Compare Equal (temp bool)
0:3 'input' (temp 4-component vector of float)
0:3 'input' (temp 4-component vector of float)
0:3 true case
0:4 Branch: Return with expression
0:4 'input' (temp 4-component vector of float)
0:6 Test condition and select (temp void)
0:6 Condition
0:6 Compare Equal (temp bool)
0:6 'input' (temp 4-component vector of float)
0:6 'input' (temp 4-component vector of float)
0:6 true case
0:7 Branch: Return with expression
0:7 'input' (temp 4-component vector of float)
0:6 false case
0:9 Branch: Return with expression
0:9 Negate value (temp 4-component vector of float)
0:9 'input' (temp 4-component vector of float)
0:11 Test condition and select (temp void)
0:11 Condition
0:11 Compare Equal (temp bool)
0:11 'input' (temp 4-component vector of float)
0:11 'input' (temp 4-component vector of float)
0:11 true case is null
0:14 Test condition and select (temp void)
0:14 Condition
0:14 Compare Equal (temp bool)
0:14 'input' (temp 4-component vector of float)
0:14 'input' (temp 4-component vector of float)
0:14 true case is null
0:19 Test condition and select (temp void)
0:19 Condition
0:19 Compare Equal (temp bool)
0:19 'input' (temp 4-component vector of float)
0:19 'input' (temp 4-component vector of float)
0:19 true case
0:? Sequence
0:20 Branch: Return with expression
0:20 'input' (temp 4-component vector of float)
0:23 Test condition and select (temp void)
0:23 Condition
0:23 Compare Equal (temp bool)
0:23 'input' (temp 4-component vector of float)
0:23 'input' (temp 4-component vector of float)
0:23 true case
0:? Sequence
0:24 Branch: Return with expression
0:24 'input' (temp 4-component vector of float)
0:23 false case
0:? Sequence
0:26 Branch: Return with expression
0:26 Negate value (temp 4-component vector of float)
0:26 'input' (temp 4-component vector of float)
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 64
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 9 "input"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
12: TypeBool
13: TypeVector 12(bool) 4
4(PixelShaderFunction): 2 Function None 3
5: Label
9(input): 8(ptr) Variable Function
10: 7(fvec4) Load 9(input)
11: 7(fvec4) Load 9(input)
14: 13(bvec4) FOrdEqual 10 11
15: 12(bool) All 14
SelectionMerge 17 None
BranchConditional 15 16 17
16: Label
18: 7(fvec4) Load 9(input)
ReturnValue 18
17: Label
20: 7(fvec4) Load 9(input)
21: 7(fvec4) Load 9(input)
22: 13(bvec4) FOrdEqual 20 21
23: 12(bool) All 22
SelectionMerge 25 None
BranchConditional 23 24 28
24: Label
26: 7(fvec4) Load 9(input)
ReturnValue 26
28: Label
29: 7(fvec4) Load 9(input)
30: 7(fvec4) FNegate 29
ReturnValue 30
25: Label
32: 7(fvec4) Load 9(input)
33: 7(fvec4) Load 9(input)
34: 13(bvec4) FOrdEqual 32 33
35: 12(bool) All 34
SelectionMerge 37 None
BranchConditional 35 36 37
36: Label
Branch 37
37: Label
38: 7(fvec4) Load 9(input)
39: 7(fvec4) Load 9(input)
40: 13(bvec4) FOrdEqual 38 39
41: 12(bool) All 40
SelectionMerge 43 None
BranchConditional 41 42 43
42: Label
Branch 43
43: Label
44: 7(fvec4) Load 9(input)
45: 7(fvec4) Load 9(input)
46: 13(bvec4) FOrdEqual 44 45
47: 12(bool) All 46
SelectionMerge 49 None
BranchConditional 47 48 49
48: Label
50: 7(fvec4) Load 9(input)
ReturnValue 50
49: Label
52: 7(fvec4) Load 9(input)
53: 7(fvec4) Load 9(input)
54: 13(bvec4) FOrdEqual 52 53
55: 12(bool) All 54
SelectionMerge 57 None
BranchConditional 55 56 60
56: Label
58: 7(fvec4) Load 9(input)
ReturnValue 58
60: Label
61: 7(fvec4) Load 9(input)
62: 7(fvec4) FNegate 61
ReturnValue 62
57: Label
Return
FunctionEnd

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,702 @@
hlsl.intrinsics.negative.frag
ERROR: 0:5: 'asdouble' : no matching overloaded function found
ERROR: 0:6: 'CheckAccessFullyMapped' : no matching overloaded function found
ERROR: 0:7: 'countbits' : no matching overloaded function found
ERROR: 0:8: 'cross' : no matching overloaded function found
ERROR: 0:9: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
ERROR: 0:10: 'determinant' : no matching overloaded function found
ERROR: 0:12: 'f16tof32' : no matching overloaded function found
ERROR: 0:13: 'firstbithigh' : no matching overloaded function found
ERROR: 0:14: 'firstbitlow' : no matching overloaded function found
ERROR: 0:15: 'fma' : no matching overloaded function found
ERROR: 0:23: 'length' : no matching overloaded function found
ERROR: 0:24: 'msad4' : no matching overloaded function found
ERROR: 0:25: 'normalize' : no matching overloaded function found
ERROR: 0:26: 'reflect' : no matching overloaded function found
ERROR: 0:27: 'refract' : no matching overloaded function found
ERROR: 0:28: 'refract' : no matching overloaded function found
ERROR: 0:29: 'reversebits' : no matching overloaded function found
ERROR: 0:30: 'transpose' : no matching overloaded function found
ERROR: 0:39: 'GetRenderTargetSamplePosition' : no matching overloaded function found
ERROR: 0:46: 'asdouble' : no matching overloaded function found
ERROR: 0:47: 'CheckAccessFullyMapped' : no matching overloaded function found
ERROR: 0:48: 'countbits' : no matching overloaded function found
ERROR: 0:49: 'cross' : no matching overloaded function found
ERROR: 0:50: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
ERROR: 0:51: 'determinant' : no matching overloaded function found
ERROR: 0:52: 'f16tof32' : no matching overloaded function found
ERROR: 0:53: 'firstbithigh' : no matching overloaded function found
ERROR: 0:54: 'firstbitlow' : no matching overloaded function found
ERROR: 0:55: 'fma' : no matching overloaded function found
ERROR: 0:56: 'reversebits' : no matching overloaded function found
ERROR: 0:57: 'transpose' : no matching overloaded function found
ERROR: 0:64: 'CheckAccessFullyMapped' : no matching overloaded function found
ERROR: 0:65: 'countbits' : no matching overloaded function found
ERROR: 0:66: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
ERROR: 0:67: 'determinant' : no matching overloaded function found
ERROR: 0:68: 'f16tof32' : no matching overloaded function found
ERROR: 0:69: 'firstbithigh' : no matching overloaded function found
ERROR: 0:70: 'firstbitlow' : no matching overloaded function found
ERROR: 0:71: 'fma' : no matching overloaded function found
ERROR: 0:72: 'reversebits' : no matching overloaded function found
ERROR: 0:73: 'transpose' : no matching overloaded function found
ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found
ERROR: 0:82: 'countbits' : no matching overloaded function found
ERROR: 0:83: 'cross' : no matching overloaded function found
ERROR: 0:84: 'determinant' : no matching overloaded function found
ERROR: 0:85: 'f16tof32' : no matching overloaded function found
ERROR: 0:86: 'firstbithigh' : no matching overloaded function found
ERROR: 0:87: 'firstbitlow' : no matching overloaded function found
ERROR: 0:88: 'fma' : no matching overloaded function found
ERROR: 0:89: 'reversebits' : no matching overloaded function found
ERROR: 0:90: 'transpose' : no matching overloaded function found
ERROR: 0:118: 'countbits' : no matching overloaded function found
ERROR: 0:118: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
ERROR: 0:118: 'cross' : no matching overloaded function found
ERROR: 0:118: 'f16tof32' : no matching overloaded function found
ERROR: 0:118: 'firstbithigh' : no matching overloaded function found
ERROR: 0:118: 'firstbitlow' : no matching overloaded function found
ERROR: 0:118: 'fma' : no matching overloaded function found
ERROR: 0:118: 'reversebits' : no matching overloaded function found
ERROR: 0:118: 'length' : no matching overloaded function found
ERROR: 0:118: 'noise' : no matching overloaded function found
ERROR: 0:118: 'normalize' : no matching overloaded function found
ERROR: 0:118: 'reflect' : no matching overloaded function found
ERROR: 0:118: 'refract' : no matching overloaded function found
ERROR: 0:118: 'reversebits' : no matching overloaded function found
ERROR: 0:126: 'countbits' : no matching overloaded function found
ERROR: 0:126: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
ERROR: 0:126: 'cross' : no matching overloaded function found
ERROR: 0:126: 'f16tof32' : no matching overloaded function found
ERROR: 0:126: 'firstbithigh' : no matching overloaded function found
ERROR: 0:126: 'firstbitlow' : no matching overloaded function found
ERROR: 0:126: 'fma' : no matching overloaded function found
ERROR: 0:126: 'reversebits' : no matching overloaded function found
ERROR: 0:126: 'length' : no matching overloaded function found
ERROR: 0:126: 'noise' : no matching overloaded function found
ERROR: 0:126: 'normalize' : no matching overloaded function found
ERROR: 0:126: 'reflect' : no matching overloaded function found
ERROR: 0:126: 'refract' : no matching overloaded function found
ERROR: 0:126: 'reversebits' : no matching overloaded function found
ERROR: 0:134: 'countbits' : no matching overloaded function found
ERROR: 0:134: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
ERROR: 0:134: 'cross' : no matching overloaded function found
ERROR: 0:134: 'f16tof32' : no matching overloaded function found
ERROR: 0:134: 'firstbithigh' : no matching overloaded function found
ERROR: 0:134: 'firstbitlow' : no matching overloaded function found
ERROR: 0:134: 'fma' : no matching overloaded function found
ERROR: 0:134: 'reversebits' : no matching overloaded function found
ERROR: 0:134: 'length' : no matching overloaded function found
ERROR: 0:134: 'noise' : no matching overloaded function found
ERROR: 0:134: 'normalize' : no matching overloaded function found
ERROR: 0:134: 'reflect' : no matching overloaded function found
ERROR: 0:134: 'refract' : no matching overloaded function found
ERROR: 0:134: 'reversebits' : no matching overloaded function found
ERROR: 93 compilation errors. No code generated.
Shader version: 450
gl_FragCoord origin is upper left
ERROR: node is still EOpNull!
0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float)
0:2 Function Parameters:
0:2 'inF0' (temp float)
0:2 'inF1' (temp float)
0:2 'inF2' (temp float)
0:2 'inI0' (temp int)
0:? Sequence
0:5 Constant:
0:5 0.000000
0:6 Constant:
0:6 0.000000
0:7 Constant:
0:7 0.000000
0:8 Constant:
0:8 0.000000
0:9 Constant:
0:9 0.000000
0:10 Constant:
0:10 0.000000
0:12 Constant:
0:12 0.000000
0:13 Constant:
0:13 0.000000
0:14 Constant:
0:14 0.000000
0:15 Constant:
0:15 0.000000
0:23 Constant:
0:23 0.000000
0:24 Constant:
0:24 0.000000
0:25 Constant:
0:25 0.000000
0:26 Constant:
0:26 0.000000
0:27 Constant:
0:27 0.000000
0:28 Constant:
0:28 0.000000
0:29 Constant:
0:29 0.000000
0:30 Constant:
0:30 0.000000
0:32 Branch: Return with expression
0:32 Constant:
0:32 0.000000
0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;i1; (temp 1-component vector of float)
0:36 Function Parameters:
0:36 'inF0' (temp 1-component vector of float)
0:36 'inF1' (temp 1-component vector of float)
0:36 'inF2' (temp 1-component vector of float)
0:36 'inI0' (temp int)
0:? Sequence
0:39 Constant:
0:39 0.000000
0:41 Branch: Return with expression
0:41 Constant:
0:41 0.000000
0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
0:45 Function Parameters:
0:45 'inF0' (temp 2-component vector of float)
0:45 'inF1' (temp 2-component vector of float)
0:45 'inF2' (temp 2-component vector of float)
0:45 'inI0' (temp 2-component vector of int)
0:? Sequence
0:46 Constant:
0:46 0.000000
0:47 Constant:
0:47 0.000000
0:48 Constant:
0:48 0.000000
0:49 Constant:
0:49 0.000000
0:50 Constant:
0:50 0.000000
0:51 Constant:
0:51 0.000000
0:52 Constant:
0:52 0.000000
0:53 Constant:
0:53 0.000000
0:54 Constant:
0:54 0.000000
0:55 Constant:
0:55 0.000000
0:56 Constant:
0:56 0.000000
0:57 Constant:
0:57 0.000000
0:59 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
0:63 Function Parameters:
0:63 'inF0' (temp 3-component vector of float)
0:63 'inF1' (temp 3-component vector of float)
0:63 'inF2' (temp 3-component vector of float)
0:63 'inI0' (temp 3-component vector of int)
0:? Sequence
0:64 Constant:
0:64 0.000000
0:65 Constant:
0:65 0.000000
0:66 Constant:
0:66 0.000000
0:67 Constant:
0:67 0.000000
0:68 Constant:
0:68 0.000000
0:69 Constant:
0:69 0.000000
0:70 Constant:
0:70 0.000000
0:71 Constant:
0:71 0.000000
0:72 Constant:
0:72 0.000000
0:73 Constant:
0:73 0.000000
0:76 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
0:80 Function Parameters:
0:80 'inF0' (temp 4-component vector of float)
0:80 'inF1' (temp 4-component vector of float)
0:80 'inF2' (temp 4-component vector of float)
0:80 'inI0' (temp 4-component vector of int)
0:? Sequence
0:81 Constant:
0:81 0.000000
0:82 Constant:
0:82 0.000000
0:83 Constant:
0:83 0.000000
0:84 Constant:
0:84 0.000000
0:85 Constant:
0:85 0.000000
0:86 Constant:
0:86 0.000000
0:87 Constant:
0:87 0.000000
0:88 Constant:
0:88 0.000000
0:89 Constant:
0:89 0.000000
0:90 Constant:
0:90 0.000000
0:92 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
0:116 Function Parameters:
0:116 'inF0' (temp 2X2 matrix of float)
0:116 'inF1' (temp 2X2 matrix of float)
0:116 'inF2' (temp 2X2 matrix of float)
0:? Sequence
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:120 Branch: Return with expression
0:? Constant:
0:? 2.000000
0:? 2.000000
0:? 2.000000
0:? 2.000000
0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
0:124 Function Parameters:
0:124 'inF0' (temp 3X3 matrix of float)
0:124 'inF1' (temp 3X3 matrix of float)
0:124 'inF2' (temp 3X3 matrix of float)
0:? Sequence
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:128 Branch: Return with expression
0:? Constant:
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
0:132 Function Parameters:
0:132 'inF0' (temp 4X4 matrix of float)
0:132 'inF1' (temp 4X4 matrix of float)
0:132 'inF2' (temp 4X4 matrix of float)
0:? Sequence
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:136 Branch: Return with expression
0:? Constant:
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
ERROR: node is still EOpNull!
0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float)
0:2 Function Parameters:
0:2 'inF0' (temp float)
0:2 'inF1' (temp float)
0:2 'inF2' (temp float)
0:2 'inI0' (temp int)
0:? Sequence
0:5 Constant:
0:5 0.000000
0:6 Constant:
0:6 0.000000
0:7 Constant:
0:7 0.000000
0:8 Constant:
0:8 0.000000
0:9 Constant:
0:9 0.000000
0:10 Constant:
0:10 0.000000
0:12 Constant:
0:12 0.000000
0:13 Constant:
0:13 0.000000
0:14 Constant:
0:14 0.000000
0:15 Constant:
0:15 0.000000
0:23 Constant:
0:23 0.000000
0:24 Constant:
0:24 0.000000
0:25 Constant:
0:25 0.000000
0:26 Constant:
0:26 0.000000
0:27 Constant:
0:27 0.000000
0:28 Constant:
0:28 0.000000
0:29 Constant:
0:29 0.000000
0:30 Constant:
0:30 0.000000
0:32 Branch: Return with expression
0:32 Constant:
0:32 0.000000
0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;i1; (temp 1-component vector of float)
0:36 Function Parameters:
0:36 'inF0' (temp 1-component vector of float)
0:36 'inF1' (temp 1-component vector of float)
0:36 'inF2' (temp 1-component vector of float)
0:36 'inI0' (temp int)
0:? Sequence
0:39 Constant:
0:39 0.000000
0:41 Branch: Return with expression
0:41 Constant:
0:41 0.000000
0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
0:45 Function Parameters:
0:45 'inF0' (temp 2-component vector of float)
0:45 'inF1' (temp 2-component vector of float)
0:45 'inF2' (temp 2-component vector of float)
0:45 'inI0' (temp 2-component vector of int)
0:? Sequence
0:46 Constant:
0:46 0.000000
0:47 Constant:
0:47 0.000000
0:48 Constant:
0:48 0.000000
0:49 Constant:
0:49 0.000000
0:50 Constant:
0:50 0.000000
0:51 Constant:
0:51 0.000000
0:52 Constant:
0:52 0.000000
0:53 Constant:
0:53 0.000000
0:54 Constant:
0:54 0.000000
0:55 Constant:
0:55 0.000000
0:56 Constant:
0:56 0.000000
0:57 Constant:
0:57 0.000000
0:59 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
0:63 Function Parameters:
0:63 'inF0' (temp 3-component vector of float)
0:63 'inF1' (temp 3-component vector of float)
0:63 'inF2' (temp 3-component vector of float)
0:63 'inI0' (temp 3-component vector of int)
0:? Sequence
0:64 Constant:
0:64 0.000000
0:65 Constant:
0:65 0.000000
0:66 Constant:
0:66 0.000000
0:67 Constant:
0:67 0.000000
0:68 Constant:
0:68 0.000000
0:69 Constant:
0:69 0.000000
0:70 Constant:
0:70 0.000000
0:71 Constant:
0:71 0.000000
0:72 Constant:
0:72 0.000000
0:73 Constant:
0:73 0.000000
0:76 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
0:80 Function Parameters:
0:80 'inF0' (temp 4-component vector of float)
0:80 'inF1' (temp 4-component vector of float)
0:80 'inF2' (temp 4-component vector of float)
0:80 'inI0' (temp 4-component vector of int)
0:? Sequence
0:81 Constant:
0:81 0.000000
0:82 Constant:
0:82 0.000000
0:83 Constant:
0:83 0.000000
0:84 Constant:
0:84 0.000000
0:85 Constant:
0:85 0.000000
0:86 Constant:
0:86 0.000000
0:87 Constant:
0:87 0.000000
0:88 Constant:
0:88 0.000000
0:89 Constant:
0:89 0.000000
0:90 Constant:
0:90 0.000000
0:92 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
0:116 Function Parameters:
0:116 'inF0' (temp 2X2 matrix of float)
0:116 'inF1' (temp 2X2 matrix of float)
0:116 'inF2' (temp 2X2 matrix of float)
0:? Sequence
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:118 Constant:
0:118 0.000000
0:120 Branch: Return with expression
0:? Constant:
0:? 2.000000
0:? 2.000000
0:? 2.000000
0:? 2.000000
0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
0:124 Function Parameters:
0:124 'inF0' (temp 3X3 matrix of float)
0:124 'inF1' (temp 3X3 matrix of float)
0:124 'inF2' (temp 3X3 matrix of float)
0:? Sequence
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:126 Constant:
0:126 0.000000
0:128 Branch: Return with expression
0:? Constant:
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:? 3.000000
0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
0:132 Function Parameters:
0:132 'inF0' (temp 4X4 matrix of float)
0:132 'inF1' (temp 4X4 matrix of float)
0:132 'inF2' (temp 4X4 matrix of float)
0:? Sequence
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:134 Constant:
0:134 0.000000
0:136 Branch: Return with expression
0:? Constant:
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? 4.000000
0:? Linker Objects
SPIR-V is not generated for failed compile or link

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,101 @@
hlsl.matType.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1 move second child to first child (temp 1-component vector of float)
0:1 'f1' (temp 1-component vector of float)
0:1 Constant:
0:1 1.000000
0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
0:9 Function Parameters:
0:9 'inFloat1' (temp 1-component vector of float)
0:9 'inScalar' (temp float)
0:? Linker Objects
0:? 'f1' (temp 1-component vector of float)
0:? 'fmat11' (temp 1X1 matrix of float)
0:? 'fmat41' (temp 1X4 matrix of float)
0:? 'fmat12' (temp 2X1 matrix of float)
0:? 'dmat23' (temp 3X2 matrix of double)
0:? 'int44' (temp 4X4 matrix of int)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1 move second child to first child (temp 1-component vector of float)
0:1 'f1' (temp 1-component vector of float)
0:1 Constant:
0:1 1.000000
0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
0:9 Function Parameters:
0:9 'inFloat1' (temp 1-component vector of float)
0:9 'inScalar' (temp float)
0:? Linker Objects
0:? 'f1' (temp 1-component vector of float)
0:? 'fmat11' (temp 1X1 matrix of float)
0:? 'fmat41' (temp 1X4 matrix of float)
0:? 'fmat12' (temp 2X1 matrix of float)
0:? 'dmat23' (temp 3X2 matrix of double)
0:? 'int44' (temp 4X4 matrix of int)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 36
Capability Shader
Capability Float64
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 11 "ShaderFunction(vf1;f1;"
Name 9 "inFloat1"
Name 10 "inScalar"
Name 14 "f1"
Name 18 "fmat11"
Name 22 "fmat41"
Name 25 "fmat12"
Name 30 "dmat23"
Name 35 "int44"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
8: TypeFunction 6(float) 7(ptr) 7(ptr)
15: TypeVector 6(float) 1
16: TypeMatrix 15(fvec) 1
17: TypePointer Function 16
19: TypeVector 6(float) 4
20: TypeMatrix 19(fvec4) 1
21: TypePointer Function 20
23: TypeMatrix 15(fvec) 2
24: TypePointer Function 23
26: TypeFloat 64
27: TypeVector 26(float) 2
28: TypeMatrix 27(fvec2) 3
29: TypePointer Function 28
31: TypeInt 32 1
32: TypeVector 31(int) 4
33: TypeMatrix 32(ivec4) 4
34: TypePointer Function 33
4(PixelShaderFunction): 2 Function None 3
5: Label
FunctionEnd
11(ShaderFunction(vf1;f1;): 6(float) Function None 8
9(inFloat1): 7(ptr) FunctionParameter
10(inScalar): 7(ptr) FunctionParameter
12: Label
14(f1): 7(ptr) Variable Function
18(fmat11): 17(ptr) Variable Function
22(fmat41): 21(ptr) Variable Function
25(fmat12): 24(ptr) Variable Function
30(dmat23): 29(ptr) Variable Function
35(int44): 34(ptr) Variable Function
13: 6(float) Undef
ReturnValue 13
FunctionEnd

View File

@ -0,0 +1,60 @@
hlsl.max.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input1' (temp 4-component vector of float)
0:2 'input2' (temp 4-component vector of float)
0:? Sequence
0:3 Branch: Return with expression
0:3 max (global 4-component vector of float)
0:3 'input1' (temp 4-component vector of float)
0:3 'input2' (temp 4-component vector of float)
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input1' (temp 4-component vector of float)
0:2 'input2' (temp 4-component vector of float)
0:? Sequence
0:3 Branch: Return with expression
0:3 max (global 4-component vector of float)
0:3 'input1' (temp 4-component vector of float)
0:3 'input2' (temp 4-component vector of float)
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 15
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 9 "input1"
Name 11 "input2"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
4(PixelShaderFunction): 2 Function None 3
5: Label
9(input1): 8(ptr) Variable Function
11(input2): 8(ptr) Variable Function
10: 7(fvec4) Load 9(input1)
12: 7(fvec4) Load 11(input2)
13: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 10 12
ReturnValue 13
FunctionEnd

View File

@ -0,0 +1,80 @@
hlsl.precedence.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
0:7 Function Parameters:
0:7 'a1' (temp 4-component vector of float)
0:7 'a2' (temp 4-component vector of float)
0:7 'a3' (temp 4-component vector of float)
0:7 'a4' (temp 4-component vector of float)
0:? Sequence
0:8 Branch: Return with expression
0:8 add (temp 4-component vector of float)
0:8 add (temp 4-component vector of float)
0:8 'a1' (temp 4-component vector of float)
0:8 component-wise multiply (temp 4-component vector of float)
0:8 'a2' (temp 4-component vector of float)
0:8 'a3' (temp 4-component vector of float)
0:8 'a4' (temp 4-component vector of float)
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
0:7 Function Parameters:
0:7 'a1' (temp 4-component vector of float)
0:7 'a2' (temp 4-component vector of float)
0:7 'a3' (temp 4-component vector of float)
0:7 'a4' (temp 4-component vector of float)
0:? Sequence
0:8 Branch: Return with expression
0:8 add (temp 4-component vector of float)
0:8 add (temp 4-component vector of float)
0:8 'a1' (temp 4-component vector of float)
0:8 component-wise multiply (temp 4-component vector of float)
0:8 'a2' (temp 4-component vector of float)
0:8 'a3' (temp 4-component vector of float)
0:8 'a4' (temp 4-component vector of float)
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 21
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 9 "a1"
Name 11 "a2"
Name 13 "a3"
Name 17 "a4"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
4(PixelShaderFunction): 2 Function None 3
5: Label
9(a1): 8(ptr) Variable Function
11(a2): 8(ptr) Variable Function
13(a3): 8(ptr) Variable Function
17(a4): 8(ptr) Variable Function
10: 7(fvec4) Load 9(a1)
12: 7(fvec4) Load 11(a2)
14: 7(fvec4) Load 13(a3)
15: 7(fvec4) FMul 12 14
16: 7(fvec4) FAdd 10 15
18: 7(fvec4) Load 17(a4)
19: 7(fvec4) FAdd 16 18
ReturnValue 19
FunctionEnd

View File

@ -0,0 +1,103 @@
hlsl.precedence2.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
0:7 Function Parameters:
0:7 'a1' (temp int)
0:7 'a2' (temp int)
0:7 'a3' (temp int)
0:7 'a4' (temp int)
0:? Sequence
0:8 Branch: Return with expression
0:8 add (temp int)
0:8 left-shift (temp int)
0:8 add (temp int)
0:8 component-wise multiply (temp int)
0:8 'a1' (temp int)
0:8 'a2' (temp int)
0:8 'a3' (temp int)
0:8 'a4' (temp int)
0:8 left-shift (temp int)
0:8 'a1' (temp int)
0:8 add (temp int)
0:8 'a2' (temp int)
0:8 component-wise multiply (temp int)
0:8 'a3' (temp int)
0:8 'a4' (temp int)
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
0:7 Function Parameters:
0:7 'a1' (temp int)
0:7 'a2' (temp int)
0:7 'a3' (temp int)
0:7 'a4' (temp int)
0:? Sequence
0:8 Branch: Return with expression
0:8 add (temp int)
0:8 left-shift (temp int)
0:8 add (temp int)
0:8 component-wise multiply (temp int)
0:8 'a1' (temp int)
0:8 'a2' (temp int)
0:8 'a3' (temp int)
0:8 'a4' (temp int)
0:8 left-shift (temp int)
0:8 'a1' (temp int)
0:8 add (temp int)
0:8 'a2' (temp int)
0:8 component-wise multiply (temp int)
0:8 'a3' (temp int)
0:8 'a4' (temp int)
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 28
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 8 "a1"
Name 10 "a2"
Name 13 "a3"
Name 16 "a4"
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
4(PixelShaderFunction): 2 Function None 3
5: Label
8(a1): 7(ptr) Variable Function
10(a2): 7(ptr) Variable Function
13(a3): 7(ptr) Variable Function
16(a4): 7(ptr) Variable Function
9: 6(int) Load 8(a1)
11: 6(int) Load 10(a2)
12: 6(int) IMul 9 11
14: 6(int) Load 13(a3)
15: 6(int) IAdd 12 14
17: 6(int) Load 16(a4)
18: 6(int) ShiftLeftLogical 15 17
19: 6(int) Load 8(a1)
20: 6(int) Load 10(a2)
21: 6(int) Load 13(a3)
22: 6(int) Load 16(a4)
23: 6(int) IMul 21 22
24: 6(int) IAdd 20 23
25: 6(int) ShiftLeftLogical 19 24
26: 6(int) IAdd 18 25
ReturnValue 26
FunctionEnd

View File

@ -0,0 +1,53 @@
hlsl.sin.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:3 Branch: Return with expression
0:3 sine (global 4-component vector of float)
0:3 'input' (temp 4-component vector of float)
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:3 Branch: Return with expression
0:3 sine (global 4-component vector of float)
0:3 'input' (temp 4-component vector of float)
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 13
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 9 "input"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
4(PixelShaderFunction): 2 Function None 3
5: Label
9(input): 8(ptr) Variable Function
10: 7(fvec4) Load 9(input)
11: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 10
ReturnValue 11
FunctionEnd

View File

@ -0,0 +1,145 @@
hlsl.whileLoop.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:3 Loop with condition tested first
0:3 Loop Condition
0:3 Compare Not Equal (temp bool)
0:3 'input' (temp 4-component vector of float)
0:3 'input' (temp 4-component vector of float)
0:3 Loop Body
0:? Sequence
0:3 Branch: Return with expression
0:3 'input' (temp 4-component vector of float)
0:4 Loop with condition tested first
0:4 Loop Condition
0:4 Constant:
0:4 false (const bool)
0:4 No loop body
0:5 Loop with condition tested first
0:5 Loop Condition
0:5 Constant:
0:5 false (const bool)
0:5 No loop body
0:6 Loop with condition tested first
0:6 Loop Condition
0:6 Constant:
0:6 false (const bool)
0:6 No loop body
0:? Linker Objects
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' (temp 4-component vector of float)
0:? Sequence
0:3 Loop with condition tested first
0:3 Loop Condition
0:3 Compare Not Equal (temp bool)
0:3 'input' (temp 4-component vector of float)
0:3 'input' (temp 4-component vector of float)
0:3 Loop Body
0:? Sequence
0:3 Branch: Return with expression
0:3 'input' (temp 4-component vector of float)
0:4 Loop with condition tested first
0:4 Loop Condition
0:4 Constant:
0:4 false (const bool)
0:4 No loop body
0:5 Loop with condition tested first
0:5 Loop Condition
0:5 Constant:
0:5 false (const bool)
0:5 No loop body
0:6 Loop with condition tested first
0:6 Loop Condition
0:6 Constant:
0:6 false (const bool)
0:6 No loop body
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 39
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
Name 14 "input"
2: TypeVoid
3: TypeFunction 2
11: TypeFloat 32
12: TypeVector 11(float) 4
13: TypePointer Function 12(fvec4)
17: TypeBool
18: TypeVector 17(bool) 4
28: 17(bool) ConstantFalse
4(PixelShaderFunction): 2 Function None 3
5: Label
14(input): 13(ptr) Variable Function
Branch 6
6: Label
LoopMerge 8 9 None
Branch 10
10: Label
15: 12(fvec4) Load 14(input)
16: 12(fvec4) Load 14(input)
19: 18(bvec4) FOrdNotEqual 15 16
20: 17(bool) Any 19
BranchConditional 20 7 8
7: Label
21: 12(fvec4) Load 14(input)
ReturnValue 21
9: Label
Branch 6
8: Label
Branch 23
23: Label
LoopMerge 25 26 None
Branch 27
27: Label
BranchConditional 28 24 25
24: Label
Branch 26
26: Label
Branch 23
25: Label
Branch 29
29: Label
LoopMerge 31 32 None
Branch 33
33: Label
BranchConditional 28 30 31
30: Label
Branch 32
32: Label
Branch 29
31: Label
Branch 34
34: Label
LoopMerge 36 37 None
Branch 38
38: Label
BranchConditional 28 35 36
35: Label
Branch 37
37: Label
Branch 34
36: Label
Return
FunctionEnd

View File

@ -158,136 +158,5 @@ Requested GL_OES_texture_3D
0:? Linker Objects
0:? 'iv3' (smooth in highp 2-component vector of float)
Linked fragment stage:
ERROR: Linking fragment stage: Types must match:
glass: "uniform 3-component vector of float" versus "uniform 2-component vector of float"
ERROR: Linking fragment stage: Interpolation and auxiliary storage qualifiers must match:
cup: "smooth in 4-component vector of float" versus "flat in 4-component vector of float"
ERROR: Linking fragment stage: Initializers must match:
cv3e
ERROR: Linking fragment stage: Initializers must match:
um2e
ERROR: Linking fragment stage: Initializers must match:
se
ERROR: Linking fragment stage: Cannot mix ES profile with non-ES profile shaders
ERROR: Linking fragment stage: Types must match:
ERROR: Linking fragment stage: Precision qualifiers must match:
iv3: "smooth in 3-component vector of float" versus "smooth in highp 2-component vector of float"
Shader version: 300
Requested GL_OES_EGL_image_external
Requested GL_OES_standard_derivatives
Requested GL_OES_texture_3D
0:? Sequence
0:8 Sequence
0:8 move second child to first child (temp 4-component vector of float)
0:8 'a' (global 4-component vector of float)
0:8 vector-scale (temp 4-component vector of float)
0:8 Constant:
0:8 8.000000
0:8 'uv4' (uniform 4-component vector of float)
0:13 Function Definition: main( (global void)
0:13 Function Parameters:
0:17 Sequence
0:17 move second child to first child (temp 4-component vector of float)
0:17 'b' (global 4-component vector of float)
0:17 vector-scale (temp 4-component vector of float)
0:17 Constant:
0:17 8.000000
0:17 'a' (global 4-component vector of float)
0:19 Function Definition: foo(mf22; (global 2-component vector of int)
0:19 Function Parameters:
0:19 'm' (in 2X2 matrix of float)
0:21 Sequence
0:21 Branch: Return with expression
0:21 Convert float to int (temp 2-component vector of int)
0:21 direct index (temp 2-component vector of float)
0:21 'm' (in 2X2 matrix of float)
0:21 Constant:
0:21 0 (const int)
0:24 Sequence
0:24 move second child to first child (temp 4-component vector of float)
0:24 'c' (global 4-component vector of float)
0:24 component-wise multiply (temp 4-component vector of float)
0:24 'b' (global 4-component vector of float)
0:24 'b' (global 4-component vector of float)
0:8 Sequence
0:8 move second child to first child (temp 4-component vector of float)
0:8 'd' (global 4-component vector of float)
0:8 vector-scale (temp 4-component vector of float)
0:8 Constant:
0:8 8.000000
0:8 'uv4' (uniform 4-component vector of float)
0:13 Sequence
0:13 move second child to first child (temp 4-component vector of float)
0:13 'e' (global 4-component vector of float)
0:13 vector-scale (temp 4-component vector of float)
0:13 Constant:
0:13 8.000000
0:13 'd' (global 4-component vector of float)
0:15 Function Definition: foo( (global 2-component vector of int)
0:15 Function Parameters:
0:17 Sequence
0:17 Branch: Return with expression
0:17 Constant:
0:17 2 (const int)
0:17 2 (const int)
0:20 Sequence
0:20 move second child to first child (temp 4-component vector of float)
0:20 'f' (global 4-component vector of float)
0:20 component-wise multiply (temp 4-component vector of float)
0:20 'e' (global 4-component vector of float)
0:20 'e' (global 4-component vector of float)
0:? Linker Objects
0:? 'uv4' (uniform 4-component vector of float)
0:? 'glass' (uniform 3-component vector of float)
0:? 'ci' (const int)
0:? 8 (const int)
0:? 'a' (global 4-component vector of float)
0:? 'iv3' (smooth in 3-component vector of float)
0:? 'cup' (smooth in 4-component vector of float)
0:? 'b' (global 4-component vector of float)
0:? 'c' (global 4-component vector of float)
0:? 'cv3' (const 3-component vector of float)
0:? 43.000000
0:? 0.340000
0:? 9.900000
0:? 'cv3n' (const 3-component vector of float)
0:? 43.000000
0:? 0.340000
0:? 9.900000
0:? 'cv3e' (const 3-component vector of float)
0:? 43.000000
0:? 0.340000
0:? 9.900000
0:? 'um2' (uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 'um2n' (uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 'um2e' (uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 's' (uniform structure{global int a, global float b})
0:? 82 (const int)
0:? 3.900000
0:? 'sn' (uniform structure{global int a, global float b})
0:? 82 (const int)
0:? 3.900000
0:? 'se' (uniform structure{global int a, global float b})
0:? 82 (const int)
0:? 3.900000
0:? 'd' (global 4-component vector of float)
0:? 'e' (global 4-component vector of float)
0:? 'f' (global 4-component vector of float)
ERROR: Cannot mix ES profile with non-ES profile shaders

View File

@ -0,0 +1,24 @@
negativeArraySize.comp
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:9: '' : array size must be a positive integer
ERROR: 1 compilation errors. No code generated.
Shader version: 310
local_size = (1, 1, 1)
ERROR: node is still EOpNull!
0:7 Function Definition: main( (global void)
0:7 Function Parameters:
0:? Linker Objects
Linked compute stage:
Shader version: 310
local_size = (1, 1, 1)
ERROR: node is still EOpNull!
0:7 Function Definition: main( (global void)
0:7 Function Parameters:
0:? Linker Objects

View File

@ -0,0 +1,768 @@
precise.tesc
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 450
Requested GL_EXT_gpu_shader5
Requested GL_EXT_shader_io_blocks
Requested GL_EXT_tessellation_shader
vertices = -1
0:? Sequence
0:5 Function Definition: minimal( (global float)
0:5 Function Parameters:
0:6 Sequence
0:6 Sequence
0:6 move second child to first child (temp float)
0:6 'result' (noContraction temp float)
0:6 Constant:
0:6 5.000000
0:7 Sequence
0:7 move second child to first child (temp float)
0:7 'a' (noContraction temp float)
0:7 Constant:
0:7 10.000000
0:8 Sequence
0:8 move second child to first child (temp float)
0:8 'b' (noContraction temp float)
0:8 Constant:
0:8 20.000000
0:9 Sequence
0:9 move second child to first child (temp float)
0:9 'c' (noContraction temp float)
0:9 Constant:
0:9 30.000000
0:10 Sequence
0:10 move second child to first child (temp float)
0:10 'd' (noContraction temp float)
0:10 Constant:
0:10 40.000000
0:11 move second child to first child (temp float)
0:11 'result' (noContraction temp float)
0:11 add (noContraction temp float)
0:11 component-wise multiply (noContraction temp float)
0:11 'a' (noContraction temp float)
0:11 'b' (noContraction temp float)
0:11 component-wise multiply (noContraction temp float)
0:11 'c' (noContraction temp float)
0:11 'd' (noContraction temp float)
0:12 Branch: Return with expression
0:12 'result' (noContraction temp float)
0:15 Function Definition: continuous_assignment( (global void)
0:15 Function Parameters:
0:16 Sequence
0:16 Sequence
0:16 move second child to first child (temp float)
0:16 'result' (noContraction temp float)
0:16 Constant:
0:16 5.000000
0:17 Sequence
0:17 move second child to first child (temp float)
0:17 'a' (noContraction temp float)
0:17 Constant:
0:17 10.000000
0:18 Sequence
0:18 move second child to first child (temp float)
0:18 'b' (noContraction temp float)
0:18 Constant:
0:18 20.000000
0:19 move second child to first child (temp float)
0:19 'result' (noContraction temp float)
0:19 move second child to first child (temp float)
0:19 'a' (noContraction temp float)
0:19 add (noContraction temp float)
0:19 'b' (noContraction temp float)
0:19 Constant:
0:19 4.000000
0:22 Function Definition: convert( (global void)
0:22 Function Parameters:
0:? Sequence
0:24 Sequence
0:24 move second child to first child (temp float)
0:24 'a' (noContraction temp float)
0:24 Constant:
0:24 10.000000
0:25 Sequence
0:25 move second child to first child (temp float)
0:25 'b' (noContraction temp float)
0:25 Constant:
0:25 20.000000
0:26 move second child to first child (temp float)
0:26 'b' (noContraction temp float)
0:26 add (noContraction temp float)
0:26 'a' (noContraction temp float)
0:26 'b' (noContraction temp float)
0:27 move second child to first child (temp double)
0:27 'result' (noContraction temp double)
0:27 Convert float to double (temp double)
0:27 'b' (noContraction temp float)
0:30 Function Definition: loop_for( (global float)
0:30 Function Parameters:
0:31 Sequence
0:31 Sequence
0:31 move second child to first child (temp float)
0:31 'r1' (noContraction temp float)
0:31 Constant:
0:31 5.000000
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'r2' (noContraction temp float)
0:32 Constant:
0:32 10.000000
0:33 Sequence
0:33 move second child to first child (temp int)
0:33 'a' (temp int)
0:33 Constant:
0:33 10 (const int)
0:34 Sequence
0:34 move second child to first child (temp int)
0:34 'b' (noContraction temp int)
0:34 Constant:
0:34 20 (const int)
0:35 Sequence
0:35 move second child to first child (temp int)
0:35 'c' (noContraction temp int)
0:35 Constant:
0:35 30 (const int)
0:36 Sequence
0:36 Sequence
0:36 move second child to first child (temp int)
0:36 'i' (noContraction temp int)
0:36 Constant:
0:36 0 (const int)
0:36 Loop with condition tested first
0:36 Loop Condition
0:36 Compare Less Than (temp bool)
0:36 'i' (temp int)
0:36 'a' (temp int)
0:36 Loop Body
0:37 Sequence
0:37 add second child into first child (noContraction temp float)
0:37 'r1' (noContraction temp float)
0:37 add (noContraction temp float)
0:37 add (noContraction temp float)
0:37 Constant:
0:37 3.120000
0:37 Convert int to float (temp float)
0:37 'b' (noContraction temp int)
0:37 Convert int to float (temp float)
0:37 'i' (noContraction temp int)
0:38 add second child into first child (noContraction temp int)
0:38 'c' (noContraction temp int)
0:38 Constant:
0:38 1 (const int)
0:36 Loop Terminal Expression
0:36 Post-Increment (noContraction temp int)
0:36 'i' (noContraction temp int)
0:40 add second child into first child (temp int)
0:40 'a' (temp int)
0:40 Constant:
0:40 1 (const int)
0:41 move second child to first child (temp float)
0:41 'r2' (noContraction temp float)
0:41 Convert int to float (temp float)
0:41 'c' (noContraction temp int)
0:42 Branch: Return with expression
0:42 Construct float (temp float)
0:42 add (temp float)
0:42 'r1' (noContraction temp float)
0:42 'r2' (noContraction temp float)
0:45 Function Definition: loop_array( (global void)
0:45 Function Parameters:
0:? Sequence
0:48 Sequence
0:48 move second child to first child (temp int)
0:48 'x' (noContraction temp int)
0:48 Constant:
0:48 22 (const int)
0:49 Sequence
0:49 move second child to first child (temp int)
0:49 'y' (noContraction temp int)
0:49 Constant:
0:49 33 (const int)
0:52 add second child into first child (noContraction temp float)
0:52 'result' (noContraction temp float)
0:52 add (noContraction temp float)
0:52 Convert int to float (temp float)
0:52 'x' (noContraction temp int)
0:52 Convert int to float (temp float)
0:52 'y' (noContraction temp int)
0:54 Sequence
0:54 Sequence
0:54 move second child to first child (temp int)
0:54 'i' (temp int)
0:54 Constant:
0:54 0 (const int)
0:54 Loop with condition tested first
0:54 Loop Condition
0:54 Compare Less Than (temp bool)
0:54 'i' (temp int)
0:54 Constant:
0:54 3 (const int)
0:54 Loop Body
0:56 Sequence
0:56 add second child into first child (noContraction temp float)
0:56 'result' (noContraction temp float)
0:56 add (noContraction temp float)
0:56 indirect index (noContraction temp float)
0:56 'a0' (temp 3-element array of float)
0:56 'i' (temp int)
0:56 Constant:
0:56 2.000000
0:58 move second child to first child (temp float)
0:58 indirect index (noContraction temp float)
0:58 'a0' (noContraction temp 3-element array of float)
0:58 'i' (temp int)
0:58 subtract (noContraction temp float)
0:58 Constant:
0:58 3.000000
0:58 Post-Increment (noContraction temp float)
0:58 'result' (noContraction temp float)
0:54 Loop Terminal Expression
0:54 Pre-Increment (temp int)
0:54 'i' (temp int)
0:62 Function Definition: loop_while( (global void)
0:62 Function Parameters:
0:63 Sequence
0:63 Sequence
0:63 move second child to first child (temp float)
0:63 'result' (noContraction temp float)
0:63 Constant:
0:63 5.000000
0:64 Sequence
0:64 move second child to first child (temp int)
0:64 'a' (noContraction temp int)
0:64 Constant:
0:64 10 (const int)
0:65 Sequence
0:65 move second child to first child (temp int)
0:65 'b' (noContraction temp int)
0:65 Constant:
0:65 20 (const int)
0:66 Loop with condition tested first
0:66 Loop Condition
0:66 Compare Less Than (temp bool)
0:66 'result' (noContraction temp float)
0:66 Constant:
0:66 10.000000
0:66 Loop Body
0:67 Sequence
0:67 add second child into first child (noContraction temp float)
0:67 'result' (noContraction temp float)
0:67 add (noContraction temp float)
0:67 Constant:
0:67 3.120000
0:67 Convert int to float (temp float)
0:67 'b' (noContraction temp int)
0:69 move second child to first child (temp float)
0:69 'result' (noContraction temp float)
0:69 Convert int to float (temp float)
0:69 add (temp int)
0:69 add (temp int)
0:69 'a' (noContraction temp int)
0:69 'b' (noContraction temp int)
0:69 Constant:
0:69 5 (const int)
0:70 move second child to first child (temp float)
0:70 'result' (noContraction temp float)
0:70 Constant:
0:70 11.100000
0:73 Function Definition: fma_not_decorated( (global float)
0:73 Function Parameters:
0:? Sequence
0:75 Sequence
0:75 move second child to first child (temp float)
0:75 'a' (noContraction temp float)
0:75 Constant:
0:75 1.000000
0:76 Sequence
0:76 move second child to first child (temp float)
0:76 'b' (noContraction temp float)
0:76 Constant:
0:76 2.000000
0:77 Sequence
0:77 move second child to first child (temp float)
0:77 'c' (noContraction temp float)
0:77 Constant:
0:77 3.000000
0:78 move second child to first child (temp float)
0:78 'b' (noContraction temp float)
0:78 add (noContraction temp float)
0:78 'b' (noContraction temp float)
0:78 'c' (noContraction temp float)
0:79 move second child to first child (temp float)
0:79 'result' (noContraction temp float)
0:79 fma (global float)
0:79 'a' (noContraction temp float)
0:79 'b' (noContraction temp float)
0:79 'c' (noContraction temp float)
0:80 Branch: Return with expression
0:80 'result' (noContraction temp float)
0:83 Function Definition: precise_return_exp_func( (noContraction temp float)
0:83 Function Parameters:
0:84 Sequence
0:84 Sequence
0:84 move second child to first child (temp float)
0:84 'a' (noContraction temp float)
0:84 Constant:
0:84 1.000000
0:85 Sequence
0:85 move second child to first child (temp float)
0:85 'b' (noContraction temp float)
0:85 Constant:
0:85 2.000000
0:86 Branch: Return with expression
0:86 add (noContraction temp float)
0:86 'a' (noContraction temp float)
0:86 'b' (noContraction temp float)
0:89 Function Definition: precise_return_val_func( (noContraction temp float)
0:89 Function Parameters:
0:90 Sequence
0:90 Sequence
0:90 move second child to first child (temp float)
0:90 'a' (noContraction temp float)
0:90 Constant:
0:90 1.000000
0:91 Sequence
0:91 move second child to first child (temp float)
0:91 'b' (noContraction temp float)
0:91 Constant:
0:91 2.000000
0:92 Sequence
0:92 move second child to first child (temp float)
0:92 'result' (noContraction temp float)
0:92 add (noContraction temp float)
0:92 'a' (noContraction temp float)
0:92 'b' (noContraction temp float)
0:93 Branch: Return with expression
0:93 'result' (noContraction temp float)
0:96 Function Definition: precise_func_parameter(f1;f1; (global float)
0:96 Function Parameters:
0:96 'b' (in float)
0:96 'c' (noContraction out float)
0:97 Sequence
0:97 Sequence
0:97 move second child to first child (temp float)
0:97 'a' (noContraction temp float)
0:97 Constant:
0:97 0.500000
0:98 move second child to first child (temp float)
0:98 'c' (noContraction out float)
0:98 add (noContraction temp float)
0:98 'a' (noContraction temp float)
0:98 'b' (noContraction in float)
0:99 Branch: Return with expression
0:99 subtract (temp float)
0:99 'a' (temp float)
0:99 'b' (in float)
0:102 Function Definition: matrix(mf23;mf32; (global 3X3 matrix of float)
0:102 Function Parameters:
0:102 'a' (in 2X3 matrix of float)
0:102 'b' (in 3X2 matrix of float)
0:103 Sequence
0:103 Sequence
0:103 move second child to first child (temp 2X3 matrix of float)
0:103 'c' (noContraction temp 2X3 matrix of float)
0:103 Constant:
0:103 1.000000
0:103 2.000000
0:103 3.000000
0:103 4.000000
0:103 5.000000
0:103 6.000000
0:105 move second child to first child (temp 3X3 matrix of float)
0:105 'result' (noContraction temp 3X3 matrix of float)
0:105 matrix-multiply (noContraction temp 3X3 matrix of float)
0:105 add (noContraction temp 2X3 matrix of float)
0:105 'a' (noContraction in 2X3 matrix of float)
0:105 'c' (noContraction temp 2X3 matrix of float)
0:105 'b' (noContraction in 3X2 matrix of float)
0:106 Branch: Return with expression
0:106 'result' (noContraction temp 3X3 matrix of float)
0:109 Function Definition: main( (global void)
0:109 Function Parameters:
0:? Linker Objects
Linked tessellation control stage:
ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
Shader version: 450
Requested GL_EXT_gpu_shader5
Requested GL_EXT_shader_io_blocks
Requested GL_EXT_tessellation_shader
vertices = -1
0:? Sequence
0:5 Function Definition: minimal( (global float)
0:5 Function Parameters:
0:6 Sequence
0:6 Sequence
0:6 move second child to first child (temp float)
0:6 'result' (noContraction temp float)
0:6 Constant:
0:6 5.000000
0:7 Sequence
0:7 move second child to first child (temp float)
0:7 'a' (noContraction temp float)
0:7 Constant:
0:7 10.000000
0:8 Sequence
0:8 move second child to first child (temp float)
0:8 'b' (noContraction temp float)
0:8 Constant:
0:8 20.000000
0:9 Sequence
0:9 move second child to first child (temp float)
0:9 'c' (noContraction temp float)
0:9 Constant:
0:9 30.000000
0:10 Sequence
0:10 move second child to first child (temp float)
0:10 'd' (noContraction temp float)
0:10 Constant:
0:10 40.000000
0:11 move second child to first child (temp float)
0:11 'result' (noContraction temp float)
0:11 add (noContraction temp float)
0:11 component-wise multiply (noContraction temp float)
0:11 'a' (noContraction temp float)
0:11 'b' (noContraction temp float)
0:11 component-wise multiply (noContraction temp float)
0:11 'c' (noContraction temp float)
0:11 'd' (noContraction temp float)
0:12 Branch: Return with expression
0:12 'result' (noContraction temp float)
0:15 Function Definition: continuous_assignment( (global void)
0:15 Function Parameters:
0:16 Sequence
0:16 Sequence
0:16 move second child to first child (temp float)
0:16 'result' (noContraction temp float)
0:16 Constant:
0:16 5.000000
0:17 Sequence
0:17 move second child to first child (temp float)
0:17 'a' (noContraction temp float)
0:17 Constant:
0:17 10.000000
0:18 Sequence
0:18 move second child to first child (temp float)
0:18 'b' (noContraction temp float)
0:18 Constant:
0:18 20.000000
0:19 move second child to first child (temp float)
0:19 'result' (noContraction temp float)
0:19 move second child to first child (temp float)
0:19 'a' (noContraction temp float)
0:19 add (noContraction temp float)
0:19 'b' (noContraction temp float)
0:19 Constant:
0:19 4.000000
0:22 Function Definition: convert( (global void)
0:22 Function Parameters:
0:? Sequence
0:24 Sequence
0:24 move second child to first child (temp float)
0:24 'a' (noContraction temp float)
0:24 Constant:
0:24 10.000000
0:25 Sequence
0:25 move second child to first child (temp float)
0:25 'b' (noContraction temp float)
0:25 Constant:
0:25 20.000000
0:26 move second child to first child (temp float)
0:26 'b' (noContraction temp float)
0:26 add (noContraction temp float)
0:26 'a' (noContraction temp float)
0:26 'b' (noContraction temp float)
0:27 move second child to first child (temp double)
0:27 'result' (noContraction temp double)
0:27 Convert float to double (temp double)
0:27 'b' (noContraction temp float)
0:30 Function Definition: loop_for( (global float)
0:30 Function Parameters:
0:31 Sequence
0:31 Sequence
0:31 move second child to first child (temp float)
0:31 'r1' (noContraction temp float)
0:31 Constant:
0:31 5.000000
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'r2' (noContraction temp float)
0:32 Constant:
0:32 10.000000
0:33 Sequence
0:33 move second child to first child (temp int)
0:33 'a' (temp int)
0:33 Constant:
0:33 10 (const int)
0:34 Sequence
0:34 move second child to first child (temp int)
0:34 'b' (noContraction temp int)
0:34 Constant:
0:34 20 (const int)
0:35 Sequence
0:35 move second child to first child (temp int)
0:35 'c' (noContraction temp int)
0:35 Constant:
0:35 30 (const int)
0:36 Sequence
0:36 Sequence
0:36 move second child to first child (temp int)
0:36 'i' (noContraction temp int)
0:36 Constant:
0:36 0 (const int)
0:36 Loop with condition tested first
0:36 Loop Condition
0:36 Compare Less Than (temp bool)
0:36 'i' (temp int)
0:36 'a' (temp int)
0:36 Loop Body
0:37 Sequence
0:37 add second child into first child (noContraction temp float)
0:37 'r1' (noContraction temp float)
0:37 add (noContraction temp float)
0:37 add (noContraction temp float)
0:37 Constant:
0:37 3.120000
0:37 Convert int to float (temp float)
0:37 'b' (noContraction temp int)
0:37 Convert int to float (temp float)
0:37 'i' (noContraction temp int)
0:38 add second child into first child (noContraction temp int)
0:38 'c' (noContraction temp int)
0:38 Constant:
0:38 1 (const int)
0:36 Loop Terminal Expression
0:36 Post-Increment (noContraction temp int)
0:36 'i' (noContraction temp int)
0:40 add second child into first child (temp int)
0:40 'a' (temp int)
0:40 Constant:
0:40 1 (const int)
0:41 move second child to first child (temp float)
0:41 'r2' (noContraction temp float)
0:41 Convert int to float (temp float)
0:41 'c' (noContraction temp int)
0:42 Branch: Return with expression
0:42 Construct float (temp float)
0:42 add (temp float)
0:42 'r1' (noContraction temp float)
0:42 'r2' (noContraction temp float)
0:45 Function Definition: loop_array( (global void)
0:45 Function Parameters:
0:? Sequence
0:48 Sequence
0:48 move second child to first child (temp int)
0:48 'x' (noContraction temp int)
0:48 Constant:
0:48 22 (const int)
0:49 Sequence
0:49 move second child to first child (temp int)
0:49 'y' (noContraction temp int)
0:49 Constant:
0:49 33 (const int)
0:52 add second child into first child (noContraction temp float)
0:52 'result' (noContraction temp float)
0:52 add (noContraction temp float)
0:52 Convert int to float (temp float)
0:52 'x' (noContraction temp int)
0:52 Convert int to float (temp float)
0:52 'y' (noContraction temp int)
0:54 Sequence
0:54 Sequence
0:54 move second child to first child (temp int)
0:54 'i' (temp int)
0:54 Constant:
0:54 0 (const int)
0:54 Loop with condition tested first
0:54 Loop Condition
0:54 Compare Less Than (temp bool)
0:54 'i' (temp int)
0:54 Constant:
0:54 3 (const int)
0:54 Loop Body
0:56 Sequence
0:56 add second child into first child (noContraction temp float)
0:56 'result' (noContraction temp float)
0:56 add (noContraction temp float)
0:56 indirect index (noContraction temp float)
0:56 'a0' (temp 3-element array of float)
0:56 'i' (temp int)
0:56 Constant:
0:56 2.000000
0:58 move second child to first child (temp float)
0:58 indirect index (noContraction temp float)
0:58 'a0' (noContraction temp 3-element array of float)
0:58 'i' (temp int)
0:58 subtract (noContraction temp float)
0:58 Constant:
0:58 3.000000
0:58 Post-Increment (noContraction temp float)
0:58 'result' (noContraction temp float)
0:54 Loop Terminal Expression
0:54 Pre-Increment (temp int)
0:54 'i' (temp int)
0:62 Function Definition: loop_while( (global void)
0:62 Function Parameters:
0:63 Sequence
0:63 Sequence
0:63 move second child to first child (temp float)
0:63 'result' (noContraction temp float)
0:63 Constant:
0:63 5.000000
0:64 Sequence
0:64 move second child to first child (temp int)
0:64 'a' (noContraction temp int)
0:64 Constant:
0:64 10 (const int)
0:65 Sequence
0:65 move second child to first child (temp int)
0:65 'b' (noContraction temp int)
0:65 Constant:
0:65 20 (const int)
0:66 Loop with condition tested first
0:66 Loop Condition
0:66 Compare Less Than (temp bool)
0:66 'result' (noContraction temp float)
0:66 Constant:
0:66 10.000000
0:66 Loop Body
0:67 Sequence
0:67 add second child into first child (noContraction temp float)
0:67 'result' (noContraction temp float)
0:67 add (noContraction temp float)
0:67 Constant:
0:67 3.120000
0:67 Convert int to float (temp float)
0:67 'b' (noContraction temp int)
0:69 move second child to first child (temp float)
0:69 'result' (noContraction temp float)
0:69 Convert int to float (temp float)
0:69 add (temp int)
0:69 add (temp int)
0:69 'a' (noContraction temp int)
0:69 'b' (noContraction temp int)
0:69 Constant:
0:69 5 (const int)
0:70 move second child to first child (temp float)
0:70 'result' (noContraction temp float)
0:70 Constant:
0:70 11.100000
0:73 Function Definition: fma_not_decorated( (global float)
0:73 Function Parameters:
0:? Sequence
0:75 Sequence
0:75 move second child to first child (temp float)
0:75 'a' (noContraction temp float)
0:75 Constant:
0:75 1.000000
0:76 Sequence
0:76 move second child to first child (temp float)
0:76 'b' (noContraction temp float)
0:76 Constant:
0:76 2.000000
0:77 Sequence
0:77 move second child to first child (temp float)
0:77 'c' (noContraction temp float)
0:77 Constant:
0:77 3.000000
0:78 move second child to first child (temp float)
0:78 'b' (noContraction temp float)
0:78 add (noContraction temp float)
0:78 'b' (noContraction temp float)
0:78 'c' (noContraction temp float)
0:79 move second child to first child (temp float)
0:79 'result' (noContraction temp float)
0:79 fma (global float)
0:79 'a' (noContraction temp float)
0:79 'b' (noContraction temp float)
0:79 'c' (noContraction temp float)
0:80 Branch: Return with expression
0:80 'result' (noContraction temp float)
0:83 Function Definition: precise_return_exp_func( (noContraction temp float)
0:83 Function Parameters:
0:84 Sequence
0:84 Sequence
0:84 move second child to first child (temp float)
0:84 'a' (noContraction temp float)
0:84 Constant:
0:84 1.000000
0:85 Sequence
0:85 move second child to first child (temp float)
0:85 'b' (noContraction temp float)
0:85 Constant:
0:85 2.000000
0:86 Branch: Return with expression
0:86 add (noContraction temp float)
0:86 'a' (noContraction temp float)
0:86 'b' (noContraction temp float)
0:89 Function Definition: precise_return_val_func( (noContraction temp float)
0:89 Function Parameters:
0:90 Sequence
0:90 Sequence
0:90 move second child to first child (temp float)
0:90 'a' (noContraction temp float)
0:90 Constant:
0:90 1.000000
0:91 Sequence
0:91 move second child to first child (temp float)
0:91 'b' (noContraction temp float)
0:91 Constant:
0:91 2.000000
0:92 Sequence
0:92 move second child to first child (temp float)
0:92 'result' (noContraction temp float)
0:92 add (noContraction temp float)
0:92 'a' (noContraction temp float)
0:92 'b' (noContraction temp float)
0:93 Branch: Return with expression
0:93 'result' (noContraction temp float)
0:96 Function Definition: precise_func_parameter(f1;f1; (global float)
0:96 Function Parameters:
0:96 'b' (in float)
0:96 'c' (noContraction out float)
0:97 Sequence
0:97 Sequence
0:97 move second child to first child (temp float)
0:97 'a' (noContraction temp float)
0:97 Constant:
0:97 0.500000
0:98 move second child to first child (temp float)
0:98 'c' (noContraction out float)
0:98 add (noContraction temp float)
0:98 'a' (noContraction temp float)
0:98 'b' (noContraction in float)
0:99 Branch: Return with expression
0:99 subtract (temp float)
0:99 'a' (temp float)
0:99 'b' (in float)
0:102 Function Definition: matrix(mf23;mf32; (global 3X3 matrix of float)
0:102 Function Parameters:
0:102 'a' (in 2X3 matrix of float)
0:102 'b' (in 3X2 matrix of float)
0:103 Sequence
0:103 Sequence
0:103 move second child to first child (temp 2X3 matrix of float)
0:103 'c' (noContraction temp 2X3 matrix of float)
0:103 Constant:
0:103 1.000000
0:103 2.000000
0:103 3.000000
0:103 4.000000
0:103 5.000000
0:103 6.000000
0:105 move second child to first child (temp 3X3 matrix of float)
0:105 'result' (noContraction temp 3X3 matrix of float)
0:105 matrix-multiply (noContraction temp 3X3 matrix of float)
0:105 add (noContraction temp 2X3 matrix of float)
0:105 'a' (noContraction in 2X3 matrix of float)
0:105 'c' (noContraction temp 2X3 matrix of float)
0:105 'b' (noContraction in 3X2 matrix of float)
0:106 Branch: Return with expression
0:106 'result' (noContraction temp 3X3 matrix of float)
0:109 Function Definition: main( (global void)
0:109 Function Parameters:
0:? Linker Objects

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ ERROR: node is still EOpNull!
0:20 Sequence
0:20 move second child to first child (temp highp 4-component vector of float)
0:20 't' (temp highp 4-component vector of float)
0:20 texture (global highp 4-component vector of float)
0:20 texture (global lowp 4-component vector of float)
0:20 's2D' (uniform lowp sampler2D)
0:20 Constant:
0:20 0.100000
@ -27,7 +27,7 @@ ERROR: node is still EOpNull!
0:21 0.200000
0:22 add second child into first child (temp highp 4-component vector of float)
0:22 't' (temp highp 4-component vector of float)
0:22 texture (global highp float)
0:22 texture (global mediump float)
0:22 's2dAS' (uniform mediump sampler2DArrayShadow)
0:22 Constant:
0:22 0.500000
@ -61,7 +61,7 @@ ERROR: node is still EOpNull!
0:20 Sequence
0:20 move second child to first child (temp highp 4-component vector of float)
0:20 't' (temp highp 4-component vector of float)
0:20 texture (global highp 4-component vector of float)
0:20 texture (global lowp 4-component vector of float)
0:20 's2D' (uniform lowp sampler2D)
0:20 Constant:
0:20 0.100000
@ -75,7 +75,7 @@ ERROR: node is still EOpNull!
0:21 0.200000
0:22 add second child into first child (temp highp 4-component vector of float)
0:22 't' (temp highp 4-component vector of float)
0:22 texture (global highp float)
0:22 texture (global mediump float)
0:22 's2dAS' (uniform mediump sampler2DArrayShadow)
0:22 Constant:
0:22 0.500000

View File

@ -0,0 +1,2 @@
noEOF

View File

@ -95,3 +95,10 @@ abl2[1]: offset -1, type ffffffff, size 4, index -1
abl2[2]: offset -1, type ffffffff, size 4, index -1
abl2[3]: offset -1, type ffffffff, size 4, index -1
Vertex attribute reflection:
attributeFloat: offset 0, type 1406, size 0, index 0
attributeFloat2: offset 0, type 8b50, size 0, index 0
attributeFloat3: offset 0, type 8b51, size 0, index 0
attributeFloat4: offset 0, type 8b52, size 0, index 0
attributeMat4: offset 0, type 8b5c, size 0, index 0

View File

@ -28,7 +28,6 @@ ERROR: 0:97: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCount
ERROR: 0:106: '' : vertex input cannot be further qualified
ERROR: 0:106: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor
ERROR: 0:112: 'ColorIvn' : identifier not previously declared
WARNING: 0:118: '' : unknown requalification
ERROR: 0:132: 'shared' : not supported in this stage: vertex
ERROR: 0:134: '' : function does not return a value: funcA
ERROR: 0:136: '' : function does not return a value: funcB
@ -70,7 +69,7 @@ ERROR: node is still EOpNull!
0:148 Sequence
0:148 Sequence
0:148 move second child to first child (temp float)
0:148 'result' (temp float)
0:148 'result' (noContraction temp float)
0:148 add (temp float)
0:148 component-wise multiply (temp float)
0:148 'e' (in float)
@ -79,15 +78,15 @@ ERROR: node is still EOpNull!
0:148 'g' (in float)
0:148 'h' (in float)
0:150 Branch: Return with expression
0:150 'result' (temp float)
0:150 'result' (noContraction temp float)
0:153 Function Definition: func3(f1;f1;f1; (global float)
0:153 Function Parameters:
0:153 'i' (in float)
0:153 'j' (in float)
0:153 'k' (out float)
0:153 'k' (noContraction out float)
0:155 Sequence
0:155 move second child to first child (temp float)
0:155 'k' (out float)
0:155 'k' (noContraction out float)
0:155 add (temp float)
0:155 component-wise multiply (temp float)
0:155 'i' (in float)
@ -111,8 +110,8 @@ ERROR: node is still EOpNull!
0:161 'c' (in 4-component vector of float)
0:161 'd' (in 4-component vector of float)
0:162 move second child to first child (temp 3-component vector of float)
0:162 vector swizzle (temp 3-component vector of float)
0:162 'v' (smooth out 4-component vector of float)
0:162 vector swizzle (noContraction temp 3-component vector of float)
0:162 'v' (noContraction smooth out 4-component vector of float)
0:162 Sequence
0:162 Constant:
0:162 0 (const int)
@ -124,8 +123,8 @@ ERROR: node is still EOpNull!
0:162 'r' (temp 3-component vector of float)
0:162 's' (temp 3-component vector of float)
0:163 move second child to first child (temp float)
0:163 direct index (temp float)
0:163 'v' (smooth out 4-component vector of float)
0:163 direct index (noContraction temp float)
0:163 'v' (noContraction smooth out 4-component vector of float)
0:163 Constant:
0:163 3 (const int)
0:163 add (temp float)
@ -148,8 +147,8 @@ ERROR: node is still EOpNull!
0:163 Constant:
0:163 3 (const int)
0:164 move second child to first child (temp float)
0:164 direct index (temp float)
0:164 'v' (smooth out 4-component vector of float)
0:164 direct index (noContraction temp float)
0:164 'v' (noContraction smooth out 4-component vector of float)
0:164 Constant:
0:164 0 (const int)
0:164 Function Call: func(f1;f1;f1;f1; (global float)
@ -170,8 +169,8 @@ ERROR: node is still EOpNull!
0:164 Constant:
0:164 0 (const int)
0:166 move second child to first child (temp float)
0:166 direct index (temp float)
0:166 'v' (smooth out 4-component vector of float)
0:166 direct index (noContraction temp float)
0:166 'v' (noContraction smooth out 4-component vector of float)
0:166 Constant:
0:166 0 (const int)
0:166 Function Call: func2(f1;f1;f1;f1; (global float)
@ -210,8 +209,8 @@ ERROR: node is still EOpNull!
0:167 'd' (in 4-component vector of float)
0:167 Constant:
0:167 0 (const int)
0:167 direct index (temp float)
0:167 'v' (smooth out 4-component vector of float)
0:167 direct index (noContraction temp float)
0:167 'v' (noContraction smooth out 4-component vector of float)
0:167 Constant:
0:167 0 (const int)
0:169 Function Call: funcA(I21; (global 4-component vector of float)
@ -302,13 +301,13 @@ ERROR: node is still EOpNull!
0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'ColorInv' (smooth out 3-component vector of float)
0:? 'Color4' (invariant centroid smooth out 3-component vector of float)
0:? 'position' (smooth out 4-component vector of float)
0:? 'position' (noContraction smooth out 4-component vector of float)
0:? 'Color5' (smooth out 3-component vector of float)
0:? 'a' (in 4-component vector of float)
0:? 'b' (in 4-component vector of float)
0:? 'c' (in 4-component vector of float)
0:? 'd' (in 4-component vector of float)
0:? 'v' (smooth out 4-component vector of float)
0:? 'v' (noContraction smooth out 4-component vector of float)
0:? 'anon@6' (layout(column_major shared ) coherent buffer block{layout(column_major shared ) readonly buffer 4-component vector of float member1, layout(column_major shared ) buffer 4-component vector of float member2})
0:? 'anon@7' (layout(column_major shared ) buffer block{layout(column_major shared ) coherent readonly buffer 4-component vector of float member1A, layout(column_major shared ) coherent buffer 4-component vector of float member2A})
0:? 'shv' (shared 4-component vector of float)
@ -354,7 +353,7 @@ ERROR: node is still EOpNull!
0:148 Sequence
0:148 Sequence
0:148 move second child to first child (temp float)
0:148 'result' (temp float)
0:148 'result' (noContraction temp float)
0:148 add (temp float)
0:148 component-wise multiply (temp float)
0:148 'e' (in float)
@ -363,15 +362,15 @@ ERROR: node is still EOpNull!
0:148 'g' (in float)
0:148 'h' (in float)
0:150 Branch: Return with expression
0:150 'result' (temp float)
0:150 'result' (noContraction temp float)
0:153 Function Definition: func3(f1;f1;f1; (global float)
0:153 Function Parameters:
0:153 'i' (in float)
0:153 'j' (in float)
0:153 'k' (out float)
0:153 'k' (noContraction out float)
0:155 Sequence
0:155 move second child to first child (temp float)
0:155 'k' (out float)
0:155 'k' (noContraction out float)
0:155 add (temp float)
0:155 component-wise multiply (temp float)
0:155 'i' (in float)
@ -395,8 +394,8 @@ ERROR: node is still EOpNull!
0:161 'c' (in 4-component vector of float)
0:161 'd' (in 4-component vector of float)
0:162 move second child to first child (temp 3-component vector of float)
0:162 vector swizzle (temp 3-component vector of float)
0:162 'v' (smooth out 4-component vector of float)
0:162 vector swizzle (noContraction temp 3-component vector of float)
0:162 'v' (noContraction smooth out 4-component vector of float)
0:162 Sequence
0:162 Constant:
0:162 0 (const int)
@ -408,8 +407,8 @@ ERROR: node is still EOpNull!
0:162 'r' (temp 3-component vector of float)
0:162 's' (temp 3-component vector of float)
0:163 move second child to first child (temp float)
0:163 direct index (temp float)
0:163 'v' (smooth out 4-component vector of float)
0:163 direct index (noContraction temp float)
0:163 'v' (noContraction smooth out 4-component vector of float)
0:163 Constant:
0:163 3 (const int)
0:163 add (temp float)
@ -432,8 +431,8 @@ ERROR: node is still EOpNull!
0:163 Constant:
0:163 3 (const int)
0:164 move second child to first child (temp float)
0:164 direct index (temp float)
0:164 'v' (smooth out 4-component vector of float)
0:164 direct index (noContraction temp float)
0:164 'v' (noContraction smooth out 4-component vector of float)
0:164 Constant:
0:164 0 (const int)
0:164 Function Call: func(f1;f1;f1;f1; (global float)
@ -454,8 +453,8 @@ ERROR: node is still EOpNull!
0:164 Constant:
0:164 0 (const int)
0:166 move second child to first child (temp float)
0:166 direct index (temp float)
0:166 'v' (smooth out 4-component vector of float)
0:166 direct index (noContraction temp float)
0:166 'v' (noContraction smooth out 4-component vector of float)
0:166 Constant:
0:166 0 (const int)
0:166 Function Call: func2(f1;f1;f1;f1; (global float)
@ -494,8 +493,8 @@ ERROR: node is still EOpNull!
0:167 'd' (in 4-component vector of float)
0:167 Constant:
0:167 0 (const int)
0:167 direct index (temp float)
0:167 'v' (smooth out 4-component vector of float)
0:167 direct index (noContraction temp float)
0:167 'v' (noContraction smooth out 4-component vector of float)
0:167 Constant:
0:167 0 (const int)
0:169 Function Call: funcA(I21; (global 4-component vector of float)
@ -586,13 +585,13 @@ ERROR: node is still EOpNull!
0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'ColorInv' (smooth out 3-component vector of float)
0:? 'Color4' (invariant centroid smooth out 3-component vector of float)
0:? 'position' (smooth out 4-component vector of float)
0:? 'position' (noContraction smooth out 4-component vector of float)
0:? 'Color5' (smooth out 3-component vector of float)
0:? 'a' (in 4-component vector of float)
0:? 'b' (in 4-component vector of float)
0:? 'c' (in 4-component vector of float)
0:? 'd' (in 4-component vector of float)
0:? 'v' (smooth out 4-component vector of float)
0:? 'v' (noContraction smooth out 4-component vector of float)
0:? 'anon@6' (layout(column_major shared ) coherent buffer block{layout(column_major shared ) readonly buffer 4-component vector of float member1, layout(column_major shared ) buffer 4-component vector of float member2})
0:? 'anon@7' (layout(column_major shared ) buffer block{layout(column_major shared ) coherent readonly buffer 4-component vector of float member1A, layout(column_major shared ) coherent buffer 4-component vector of float member2A})
0:? 'shv' (shared 4-component vector of float)

View File

@ -9,7 +9,6 @@ Linked geometry stage:
Capability Geometry
Capability GeometryPointSize
Capability ClipDistance
Capability GeometryStreams
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450

View File

@ -7,123 +7,121 @@ Linked compute stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 67
// Id's are bound by 66
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 53
EntryPoint GLCompute 4 "main" 52
ExecutionMode 4 LocalSize 16 32 4
Source ESSL 310
Name 4 "main"
Name 13 "outb"
MemberName 13(outb) 0 "f"
MemberName 13(outb) 1 "g"
MemberName 13(outb) 2 "h"
MemberName 13(outb) 3 "uns"
Name 15 "outbname"
Name 19 "s"
Name 24 "outbna"
MemberName 24(outbna) 0 "k"
MemberName 24(outbna) 1 "na"
Name 26 "outbnamena"
Name 42 "i"
Name 48 "outs"
MemberName 48(outs) 0 "s"
MemberName 48(outs) 1 "va"
Name 50 "outnames"
Name 53 "gl_LocalInvocationID"
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 15(outbname) DescriptorSet 0
MemberDecorate 24(outbna) 0 Offset 0
MemberDecorate 24(outbna) 1 Offset 16
Decorate 24(outbna) BufferBlock
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
Name 12 "outb"
MemberName 12(outb) 0 "f"
MemberName 12(outb) 1 "g"
MemberName 12(outb) 2 "h"
MemberName 12(outb) 3 "uns"
Name 14 "outbname"
Name 18 "s"
Name 23 "outbna"
MemberName 23(outbna) 0 "k"
MemberName 23(outbna) 1 "na"
Name 25 "outbnamena"
Name 41 "i"
Name 47 "outs"
MemberName 47(outs) 0 "s"
MemberName 47(outs) 1 "va"
Name 49 "outnames"
Name 52 "gl_LocalInvocationID"
Decorate 11 ArrayStride 16
MemberDecorate 12(outb) 0 Offset 0
MemberDecorate 12(outb) 1 Offset 4
MemberDecorate 12(outb) 2 Offset 8
MemberDecorate 12(outb) 3 Offset 16
Decorate 12(outb) BufferBlock
Decorate 14(outbname) DescriptorSet 0
MemberDecorate 23(outbna) 0 Offset 0
MemberDecorate 23(outbna) 1 Offset 16
Decorate 23(outbna) BufferBlock
Decorate 25(outbnamena) DescriptorSet 0
Decorate 46 ArrayStride 16
MemberDecorate 47(outs) 0 Offset 0
MemberDecorate 47(outs) 1 Offset 16
Decorate 47(outs) BufferBlock
Decorate 49(outnames) DescriptorSet 0
Decorate 52(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 65 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: 6(int) Constant 1
8: 6(int) Constant 4062
9: 6(int) Constant 0
10: TypeFloat 32
11: TypeVector 10(float) 3
12: TypeRuntimeArray 11(fvec3)
13(outb): TypeStruct 10(float) 10(float) 10(float) 12
14: TypePointer Uniform 13(outb)
15(outbname): 14(ptr) Variable Uniform
16: TypeInt 32 1
17: 16(int) Constant 0
18: TypePointer Workgroup 10(float)
19(s): 18(ptr) Variable Workgroup
21: TypePointer Uniform 10(float)
23: TypeVector 10(float) 4
24(outbna): TypeStruct 16(int) 23(fvec4)
25: TypePointer Uniform 24(outbna)
26(outbnamena): 25(ptr) Variable Uniform
27: 16(int) Constant 1
30: TypePointer Uniform 23(fvec4)
32: 16(int) Constant 3
33: 16(int) Constant 18
36: 16(int) Constant 17
37: 10(float) Constant 1077936128
38: 11(fvec3) ConstantComposite 37 37 37
39: TypePointer Uniform 11(fvec3)
41: TypePointer Workgroup 16(int)
42(i): 41(ptr) Variable Workgroup
47: TypeRuntimeArray 23(fvec4)
48(outs): TypeStruct 16(int) 47
49: TypePointer Uniform 48(outs)
50(outnames): 49(ptr) Variable Uniform
51: TypeVector 6(int) 3
52: TypePointer Input 51(ivec3)
53(gl_LocalInvocationID): 52(ptr) Variable Input
54: TypePointer Input 6(int)
61: TypePointer Uniform 16(int)
63: 6(int) Constant 16
64: 6(int) Constant 32
65: 6(int) Constant 4
66: 51(ivec3) ConstantComposite 63 64 65
8: 6(int) Constant 0
9: TypeFloat 32
10: TypeVector 9(float) 3
11: TypeRuntimeArray 10(fvec3)
12(outb): TypeStruct 9(float) 9(float) 9(float) 11
13: TypePointer Uniform 12(outb)
14(outbname): 13(ptr) Variable Uniform
15: TypeInt 32 1
16: 15(int) Constant 0
17: TypePointer Workgroup 9(float)
18(s): 17(ptr) Variable Workgroup
20: TypePointer Uniform 9(float)
22: TypeVector 9(float) 4
23(outbna): TypeStruct 15(int) 22(fvec4)
24: TypePointer Uniform 23(outbna)
25(outbnamena): 24(ptr) Variable Uniform
26: 15(int) Constant 1
29: TypePointer Uniform 22(fvec4)
31: 15(int) Constant 3
32: 15(int) Constant 18
35: 15(int) Constant 17
36: 9(float) Constant 1077936128
37: 10(fvec3) ConstantComposite 36 36 36
38: TypePointer Uniform 10(fvec3)
40: TypePointer Workgroup 15(int)
41(i): 40(ptr) Variable Workgroup
46: TypeRuntimeArray 22(fvec4)
47(outs): TypeStruct 15(int) 46
48: TypePointer Uniform 47(outs)
49(outnames): 48(ptr) Variable Uniform
50: TypeVector 6(int) 3
51: TypePointer Input 50(ivec3)
52(gl_LocalInvocationID): 51(ptr) Variable Input
53: TypePointer Input 6(int)
60: TypePointer Uniform 15(int)
62: 6(int) Constant 16
63: 6(int) Constant 32
64: 6(int) Constant 4
65: 50(ivec3) ConstantComposite 62 63 64
4(main): 2 Function None 3
5: Label
MemoryBarrier 7 8
ControlBarrier 7 7 9
20: 10(float) Load 19(s)
22: 21(ptr) AccessChain 15(outbname) 17
Store 22 20
28: 10(float) Load 19(s)
29: 23(fvec4) CompositeConstruct 28 28 28 28
31: 30(ptr) AccessChain 26(outbnamena) 27
Store 31 29
34: 21(ptr) AccessChain 15(outbname) 32 33 9
35: 10(float) Load 34
Store 19(s) 35
40: 39(ptr) AccessChain 15(outbname) 32 36
Store 40 38
43: 16(int) Load 42(i)
44: 10(float) Load 19(s)
45: 11(fvec3) CompositeConstruct 44 44 44
46: 39(ptr) AccessChain 15(outbname) 32 43
Store 46 45
55: 54(ptr) AccessChain 53(gl_LocalInvocationID) 9
56: 6(int) Load 55
57: 10(float) Load 19(s)
58: 23(fvec4) CompositeConstruct 57 57 57 57
59: 30(ptr) AccessChain 50(outnames) 27 56
Store 59 58
60: 16(int) ArrayLength 15(outbname) 3
62: 61(ptr) AccessChain 50(outnames) 17
Store 62 60
ControlBarrier 7 7 8
19: 9(float) Load 18(s)
21: 20(ptr) AccessChain 14(outbname) 16
Store 21 19
27: 9(float) Load 18(s)
28: 22(fvec4) CompositeConstruct 27 27 27 27
30: 29(ptr) AccessChain 25(outbnamena) 26
Store 30 28
33: 20(ptr) AccessChain 14(outbname) 31 32 8
34: 9(float) Load 33
Store 18(s) 34
39: 38(ptr) AccessChain 14(outbname) 31 35
Store 39 37
42: 15(int) Load 41(i)
43: 9(float) Load 18(s)
44: 10(fvec3) CompositeConstruct 43 43 43
45: 38(ptr) AccessChain 14(outbname) 31 42
Store 45 44
54: 53(ptr) AccessChain 52(gl_LocalInvocationID) 8
55: 6(int) Load 54
56: 9(float) Load 18(s)
57: 22(fvec4) CompositeConstruct 56 56 56 56
58: 29(ptr) AccessChain 49(outnames) 26 55
Store 58 57
59: 15(int) ArrayLength 14(outbname) 3
61: 60(ptr) AccessChain 49(outnames) 16
Store 61 59
Return
FunctionEnd

0
Test/baseResults/spv.330.geom.out Executable file → Normal file
View File

View File

@ -11,6 +11,7 @@ Linked fragment stage:
Capability Shader
Capability Float64
Capability ImageGatherExtended
Capability ClipDistance
Capability SampledRect
1: ExtInstImport "GLSL.std.450"

View File

@ -7,68 +7,68 @@ Linked tessellation control stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 93
// Id's are bound by 94
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
EntryPoint TessellationControl 4 "main" 24 41 44 47 55 69 74 80 84 85 88 89 92 93
ExecutionMode 4 OutputVertices 4
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
Name 4 "main"
Name 12 "a"
Name 17 "p"
Name 19 "gl_PerVertex"
MemberName 19(gl_PerVertex) 0 "gl_Position"
MemberName 19(gl_PerVertex) 1 "gl_PointSize"
MemberName 19(gl_PerVertex) 2 "gl_ClipDistance"
Name 23 "gl_in"
Name 30 "ps"
Name 34 "cd"
Name 38 "pvi"
Name 40 "gl_PatchVerticesIn"
Name 42 "pid"
Name 43 "gl_PrimitiveID"
Name 45 "iid"
Name 46 "gl_InvocationID"
Name 48 "gl_PerVertex"
MemberName 48(gl_PerVertex) 0 "gl_Position"
MemberName 48(gl_PerVertex) 1 "gl_PointSize"
MemberName 48(gl_PerVertex) 2 "gl_ClipDistance"
Name 52 "gl_out"
Name 66 "gl_TessLevelOuter"
Name 73 "gl_TessLevelInner"
Name 78 "outa"
Name 79 "patchOut"
Name 83 "inb"
Name 84 "ind"
Name 87 "ivla"
Name 88 "ivlb"
Name 91 "ovla"
Name 92 "ovlb"
MemberDecorate 19(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 19(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 19(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 19(gl_PerVertex) Block
Decorate 40(gl_PatchVerticesIn) BuiltIn PatchVertices
Decorate 43(gl_PrimitiveID) BuiltIn PrimitiveId
Decorate 46(gl_InvocationID) BuiltIn InvocationId
MemberDecorate 48(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 48(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 48(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 48(gl_PerVertex) Block
Decorate 66(gl_TessLevelOuter) Patch
Decorate 66(gl_TessLevelOuter) BuiltIn TessLevelOuter
Decorate 73(gl_TessLevelInner) Patch
Decorate 73(gl_TessLevelInner) BuiltIn TessLevelInner
Decorate 79(patchOut) Patch
Decorate 87(ivla) Location 3
Decorate 88(ivlb) Location 4
Decorate 91(ovla) Location 3
Decorate 92(ovlb) Location 4
Name 20 "gl_PerVertex"
MemberName 20(gl_PerVertex) 0 "gl_Position"
MemberName 20(gl_PerVertex) 1 "gl_PointSize"
MemberName 20(gl_PerVertex) 2 "gl_ClipDistance"
Name 24 "gl_in"
Name 31 "ps"
Name 35 "cd"
Name 39 "pvi"
Name 41 "gl_PatchVerticesIn"
Name 43 "pid"
Name 44 "gl_PrimitiveID"
Name 46 "iid"
Name 47 "gl_InvocationID"
Name 51 "gl_PerVertex"
MemberName 51(gl_PerVertex) 0 "gl_Position"
MemberName 51(gl_PerVertex) 1 "gl_PointSize"
MemberName 51(gl_PerVertex) 2 "gl_ClipDistance"
Name 55 "gl_out"
Name 69 "gl_TessLevelOuter"
Name 74 "gl_TessLevelInner"
Name 79 "outa"
Name 80 "patchOut"
Name 84 "inb"
Name 85 "ind"
Name 88 "ivla"
Name 89 "ivlb"
Name 92 "ovla"
Name 93 "ovlb"
MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 20(gl_PerVertex) Block
Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices
Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId
Decorate 47(gl_InvocationID) BuiltIn InvocationId
MemberDecorate 51(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 51(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 51(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 51(gl_PerVertex) Block
Decorate 69(gl_TessLevelOuter) Patch
Decorate 69(gl_TessLevelOuter) BuiltIn TessLevelOuter
Decorate 74(gl_TessLevelInner) Patch
Decorate 74(gl_TessLevelInner) BuiltIn TessLevelInner
Decorate 80(patchOut) Patch
Decorate 88(ivla) Location 3
Decorate 89(ivlb) Location 4
Decorate 92(ovla) Location 3
Decorate 93(ovlb) Location 4
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
@ -81,98 +81,99 @@ Linked tessellation control stage:
14: TypeFloat 32
15: TypeVector 14(float) 4
16: TypePointer Function 15(fvec4)
18: TypeArray 14(float) 7
19(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 18
20: 6(int) Constant 32
21: TypeArray 19(gl_PerVertex) 20
22: TypePointer Input 21
23(gl_in): 22(ptr) Variable Input
24: 10(int) Constant 1
25: 10(int) Constant 0
26: TypePointer Input 15(fvec4)
29: TypePointer Function 14(float)
31: TypePointer Input 14(float)
35: 10(int) Constant 2
39: TypePointer Input 10(int)
40(gl_PatchVerticesIn): 39(ptr) Variable Input
43(gl_PrimitiveID): 39(ptr) Variable Input
46(gl_InvocationID): 39(ptr) Variable Input
48(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 18
49: 6(int) Constant 4
50: TypeArray 48(gl_PerVertex) 49
51: TypePointer Output 50
52(gl_out): 51(ptr) Variable Output
55: TypePointer Output 15(fvec4)
59: TypePointer Output 14(float)
64: TypeArray 14(float) 49
65: TypePointer Output 64
66(gl_TessLevelOuter): 65(ptr) Variable Output
67: 10(int) Constant 3
68: 14(float) Constant 1078774989
70: 6(int) Constant 2
71: TypeArray 14(float) 70
72: TypePointer Output 71
73(gl_TessLevelInner): 72(ptr) Variable Output
74: 14(float) Constant 1067869798
76: TypeArray 10(int) 49
77: TypePointer Private 76
78(outa): 77(ptr) Variable Private
79(patchOut): 55(ptr) Variable Output
80: TypeVector 14(float) 2
81: TypeArray 80(fvec2) 20
82: TypePointer Input 81
83(inb): 82(ptr) Variable Input
84(ind): 82(ptr) Variable Input
85: TypeArray 15(fvec4) 20
86: TypePointer Input 85
87(ivla): 86(ptr) Variable Input
88(ivlb): 86(ptr) Variable Input
89: TypeArray 15(fvec4) 49
90: TypePointer Output 89
91(ovla): 90(ptr) Variable Output
92(ovlb): 90(ptr) Variable Output
18: 6(int) Constant 3
19: TypeArray 14(float) 18
20(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 19
21: 6(int) Constant 32
22: TypeArray 20(gl_PerVertex) 21
23: TypePointer Input 22
24(gl_in): 23(ptr) Variable Input
25: 10(int) Constant 1
26: 10(int) Constant 0
27: TypePointer Input 15(fvec4)
30: TypePointer Function 14(float)
32: TypePointer Input 14(float)
36: 10(int) Constant 2
40: TypePointer Input 10(int)
41(gl_PatchVerticesIn): 40(ptr) Variable Input
44(gl_PrimitiveID): 40(ptr) Variable Input
47(gl_InvocationID): 40(ptr) Variable Input
49: 6(int) Constant 2
50: TypeArray 14(float) 49
51(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 50
52: 6(int) Constant 4
53: TypeArray 51(gl_PerVertex) 52
54: TypePointer Output 53
55(gl_out): 54(ptr) Variable Output
58: TypePointer Output 15(fvec4)
62: TypePointer Output 14(float)
67: TypeArray 14(float) 52
68: TypePointer Output 67
69(gl_TessLevelOuter): 68(ptr) Variable Output
70: 10(int) Constant 3
71: 14(float) Constant 1078774989
73: TypePointer Output 50
74(gl_TessLevelInner): 73(ptr) Variable Output
75: 14(float) Constant 1067869798
77: TypeArray 10(int) 52
78: TypePointer Private 77
79(outa): 78(ptr) Variable Private
80(patchOut): 58(ptr) Variable Output
81: TypeVector 14(float) 2
82: TypeArray 81(fvec2) 21
83: TypePointer Input 82
84(inb): 83(ptr) Variable Input
85(ind): 83(ptr) Variable Input
86: TypeArray 15(fvec4) 21
87: TypePointer Input 86
88(ivla): 87(ptr) Variable Input
89(ivlb): 87(ptr) Variable Input
90: TypeArray 15(fvec4) 52
91: TypePointer Output 90
92(ovla): 91(ptr) Variable Output
93(ovlb): 91(ptr) Variable Output
4(main): 2 Function None 3
5: Label
12(a): 11(ptr) Variable Function
17(p): 16(ptr) Variable Function
30(ps): 29(ptr) Variable Function
34(cd): 29(ptr) Variable Function
38(pvi): 11(ptr) Variable Function
42(pid): 11(ptr) Variable Function
45(iid): 11(ptr) Variable Function
31(ps): 30(ptr) Variable Function
35(cd): 30(ptr) Variable Function
39(pvi): 11(ptr) Variable Function
43(pid): 11(ptr) Variable Function
46(iid): 11(ptr) Variable Function
MemoryBarrier 7 8
ControlBarrier 7 7 9
Store 12(a) 13
27: 26(ptr) AccessChain 23(gl_in) 24 25
28: 15(fvec4) Load 27
Store 17(p) 28
32: 31(ptr) AccessChain 23(gl_in) 24 24
33: 14(float) Load 32
Store 30(ps) 33
36: 31(ptr) AccessChain 23(gl_in) 24 35 35
37: 14(float) Load 36
Store 34(cd) 37
41: 10(int) Load 40(gl_PatchVerticesIn)
Store 38(pvi) 41
44: 10(int) Load 43(gl_PrimitiveID)
Store 42(pid) 44
47: 10(int) Load 46(gl_InvocationID)
Store 45(iid) 47
53: 10(int) Load 46(gl_InvocationID)
54: 15(fvec4) Load 17(p)
56: 55(ptr) AccessChain 52(gl_out) 53 25
Store 56 54
57: 10(int) Load 46(gl_InvocationID)
58: 14(float) Load 30(ps)
60: 59(ptr) AccessChain 52(gl_out) 57 24
Store 60 58
61: 10(int) Load 46(gl_InvocationID)
62: 14(float) Load 34(cd)
63: 59(ptr) AccessChain 52(gl_out) 61 35 24
Store 63 62
69: 59(ptr) AccessChain 66(gl_TessLevelOuter) 67
Store 69 68
75: 59(ptr) AccessChain 73(gl_TessLevelInner) 24
Store 75 74
28: 27(ptr) AccessChain 24(gl_in) 25 26
29: 15(fvec4) Load 28
Store 17(p) 29
33: 32(ptr) AccessChain 24(gl_in) 25 25
34: 14(float) Load 33
Store 31(ps) 34
37: 32(ptr) AccessChain 24(gl_in) 25 36 36
38: 14(float) Load 37
Store 35(cd) 38
42: 10(int) Load 41(gl_PatchVerticesIn)
Store 39(pvi) 42
45: 10(int) Load 44(gl_PrimitiveID)
Store 43(pid) 45
48: 10(int) Load 47(gl_InvocationID)
Store 46(iid) 48
56: 10(int) Load 47(gl_InvocationID)
57: 15(fvec4) Load 17(p)
59: 58(ptr) AccessChain 55(gl_out) 56 26
Store 59 57
60: 10(int) Load 47(gl_InvocationID)
61: 14(float) Load 31(ps)
63: 62(ptr) AccessChain 55(gl_out) 60 25
Store 63 61
64: 10(int) Load 47(gl_InvocationID)
65: 14(float) Load 35(cd)
66: 62(ptr) AccessChain 55(gl_out) 64 36 25
Store 66 65
72: 62(ptr) AccessChain 69(gl_TessLevelOuter) 70
Store 72 71
76: 62(ptr) AccessChain 74(gl_TessLevelInner) 25
Store 76 75
Return
FunctionEnd

View File

@ -7,14 +7,14 @@ Linked tessellation evaluation stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 98
// Id's are bound by 96
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
EntryPoint TessellationEvaluation 4 "main" 21 38 41 47 53 61 66 75 79 80 84 88 91 92 95
ExecutionMode 4 Triangles
ExecutionMode 4 SpacingFractionalOdd
ExecutionMode 4 VertexOrderCcw
@ -41,23 +41,23 @@ Linked tessellation evaluation stage:
Name 53 "gl_TessLevelOuter"
Name 57 "tli"
Name 61 "gl_TessLevelInner"
Name 66 "gl_PerVertex"
MemberName 66(gl_PerVertex) 0 "gl_Position"
MemberName 66(gl_PerVertex) 1 "gl_PointSize"
MemberName 66(gl_PerVertex) 2 "gl_ClipDistance"
Name 68 ""
Name 77 "patchIn"
Name 81 "inb"
Name 82 "ind"
Name 83 "testblb"
MemberName 83(testblb) 0 "f"
Name 86 "blb"
Name 87 "testbld"
MemberName 87(testbld) 0 "f"
Name 90 "bld"
Name 93 "ivla"
Name 94 "ivlb"
Name 97 "ovla"
Name 64 "gl_PerVertex"
MemberName 64(gl_PerVertex) 0 "gl_Position"
MemberName 64(gl_PerVertex) 1 "gl_PointSize"
MemberName 64(gl_PerVertex) 2 "gl_ClipDistance"
Name 66 ""
Name 75 "patchIn"
Name 79 "inb"
Name 80 "ind"
Name 81 "testblb"
MemberName 81(testblb) 0 "f"
Name 84 "blb"
Name 85 "testbld"
MemberName 85(testbld) 0 "f"
Name 88 "bld"
Name 91 "ivla"
Name 92 "ivlb"
Name 95 "ovla"
MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 17(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 17(gl_PerVertex) 2 BuiltIn ClipDistance
@ -69,16 +69,16 @@ Linked tessellation evaluation stage:
Decorate 53(gl_TessLevelOuter) BuiltIn TessLevelOuter
Decorate 61(gl_TessLevelInner) Patch
Decorate 61(gl_TessLevelInner) BuiltIn TessLevelInner
MemberDecorate 66(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 66(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 66(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 66(gl_PerVertex) Block
Decorate 77(patchIn) Patch
Decorate 83(testblb) Block
Decorate 87(testbld) Block
Decorate 93(ivla) Location 23
Decorate 94(ivlb) Location 24
Decorate 97(ovla) Location 23
MemberDecorate 64(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 64(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 64(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 64(gl_PerVertex) Block
Decorate 75(patchIn) Patch
Decorate 81(testblb) Block
Decorate 85(testbld) Block
Decorate 91(ivla) Location 23
Decorate 92(ivlb) Location 24
Decorate 95(ovla) Location 23
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -88,7 +88,7 @@ Linked tessellation evaluation stage:
11: TypeVector 10(float) 4
12: TypePointer Function 11(fvec4)
14: TypeInt 32 0
15: 14(int) Constant 1
15: 14(int) Constant 3
16: TypeArray 10(float) 15
17(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16
18: 14(int) Constant 32
@ -117,34 +117,32 @@ Linked tessellation evaluation stage:
59: TypeArray 10(float) 58
60: TypePointer Input 59
61(gl_TessLevelInner): 60(ptr) Variable Input
64: 14(int) Constant 3
65: TypeArray 10(float) 64
66(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 65
67: TypePointer Output 66(gl_PerVertex)
68: 67(ptr) Variable Output
70: TypePointer Output 11(fvec4)
73: TypePointer Output 10(float)
77(patchIn): 24(ptr) Variable Input
78: TypeVector 10(float) 2
79: TypeArray 78(fvec2) 18
80: TypePointer Input 79
81(inb): 80(ptr) Variable Input
82(ind): 80(ptr) Variable Input
83(testblb): TypeStruct 6(int)
84: TypeArray 83(testblb) 18
85: TypePointer Input 84
86(blb): 85(ptr) Variable Input
87(testbld): TypeStruct 6(int)
88: TypeArray 87(testbld) 18
89: TypePointer Input 88
90(bld): 89(ptr) Variable Input
91: TypeArray 11(fvec4) 18
92: TypePointer Input 91
93(ivla): 92(ptr) Variable Input
94(ivlb): 92(ptr) Variable Input
95: TypeArray 11(fvec4) 58
96: TypePointer Output 95
97(ovla): 96(ptr) Variable Output
64(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16
65: TypePointer Output 64(gl_PerVertex)
66: 65(ptr) Variable Output
68: TypePointer Output 11(fvec4)
71: TypePointer Output 10(float)
75(patchIn): 24(ptr) Variable Input
76: TypeVector 10(float) 2
77: TypeArray 76(fvec2) 18
78: TypePointer Input 77
79(inb): 78(ptr) Variable Input
80(ind): 78(ptr) Variable Input
81(testblb): TypeStruct 6(int)
82: TypeArray 81(testblb) 18
83: TypePointer Input 82
84(blb): 83(ptr) Variable Input
85(testbld): TypeStruct 6(int)
86: TypeArray 85(testbld) 18
87: TypePointer Input 86
88(bld): 87(ptr) Variable Input
89: TypeArray 11(fvec4) 18
90: TypePointer Input 89
91(ivla): 90(ptr) Variable Input
92(ivlb): 90(ptr) Variable Input
93: TypeArray 11(fvec4) 58
94: TypePointer Output 93
95(ovla): 94(ptr) Variable Output
4(main): 2 Function None 3
5: Label
8(a): 7(ptr) Variable Function
@ -178,14 +176,14 @@ Linked tessellation evaluation stage:
62: 29(ptr) AccessChain 61(gl_TessLevelInner) 22
63: 10(float) Load 62
Store 57(tli) 63
69: 11(fvec4) Load 13(p)
71: 70(ptr) AccessChain 68 23
Store 71 69
72: 10(float) Load 28(ps)
74: 73(ptr) AccessChain 68 22
Store 74 72
75: 10(float) Load 32(cd)
76: 73(ptr) AccessChain 68 33 33
Store 76 75
67: 11(fvec4) Load 13(p)
69: 68(ptr) AccessChain 66 23
Store 69 67
70: 10(float) Load 28(ps)
72: 71(ptr) AccessChain 66 22
Store 72 70
73: 10(float) Load 32(cd)
74: 71(ptr) AccessChain 66 33 33
Store 74 73
Return
FunctionEnd

View File

@ -11,6 +11,7 @@ Linked geometry stage:
Capability Geometry
Capability GeometryPointSize
Capability ImageGatherExtended
Capability GeometryStreams
Capability MultiViewport
1: ExtInstImport "GLSL.std.450"

View File

@ -10,7 +10,6 @@ Linked vertex stage:
// 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 38 41 42 62 65
@ -63,18 +62,10 @@ Linked vertex stage:
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
Decorate 62(var) Location 0
MemberDecorate 63(MS) 0 Location 17
Decorate 63(MS) Block
2: TypeVoid

View File

@ -470,7 +470,7 @@ Linked fragment stage:
339: Label
341: 179(bvec4) Load 181(ub41)
343: 179(bvec4) Load 342(ub42)
344: 179(bvec4) IEqual 341 343
344: 179(bvec4) LogicalEqual 341 343
345: 178(bool) Any 344
Branch 340
340: Label
@ -482,7 +482,7 @@ Linked fragment stage:
348: Label
350: 179(bvec4) Load 181(ub41)
351: 179(bvec4) Load 342(ub42)
352: 179(bvec4) INotEqual 350 351
352: 179(bvec4) LogicalNotEqual 350 351
353: 178(bool) Any 352
Branch 349
349: Label

View File

@ -10,8 +10,6 @@ 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" 24
@ -91,6 +89,6 @@ Linked vertex stage:
9(b): 7(ptr) FunctionParameter
11: Label
12: 6(bool) Load 9(b)
14: 6(bool) INotEqual 12 13
14: 6(bool) LogicalNotEqual 12 13
ReturnValue 14
FunctionEnd

View File

@ -0,0 +1,626 @@
spv.int64.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
Missing functionality: shader int64
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 455
Capability Shader
Capability Float64
Capability Int64
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_ARB_gpu_shader_int64"
Name 4 "main"
Name 6 "literal("
Name 8 "typeCast("
Name 10 "operators("
Name 12 "builtinFuncs("
Name 16 "i64"
Name 24 "Uniforms"
MemberName 24(Uniforms) 0 "index"
Name 26 ""
Name 33 "indexable"
Name 38 "u64"
Name 47 "indexable"
Name 52 "i64v"
Name 56 "bv"
Name 65 "u64v"
Name 74 "iv"
Name 81 "uv"
Name 89 "fv"
Name 95 "dv"
Name 132 "u64v"
Name 137 "i64"
Name 157 "i"
Name 164 "uv"
Name 216 "b"
Name 276 "i64v"
Name 279 "i64"
Name 289 "u64v"
Name 291 "u64"
Name 363 "dv"
Name 382 "iv"
Name 387 "uv"
Name 391 "bv"
Name 452 "Block"
MemberName 452(Block) 0 "i64v"
MemberName 452(Block) 1 "u64"
Name 454 "block"
MemberDecorate 24(Uniforms) 0 Offset 0
Decorate 24(Uniforms) Block
Decorate 26 DescriptorSet 0
Decorate 26 Binding 0
MemberDecorate 452(Block) 0 Offset 0
MemberDecorate 452(Block) 1 Offset 24
Decorate 452(Block) Block
Decorate 454(block) DescriptorSet 0
Decorate 454(block) Binding 1
2: TypeVoid
3: TypeFunction 2
14: TypeInt 64 1
15: TypePointer Function 14(int)
17: TypeInt 32 0
18: 17(int) Constant 3
19: TypeArray 14(int) 18
20: 14(int) Constant 4008636143 4008636142
21: 14(int) Constant 4294967295 4294967295
22: 14(int) Constant 0 1
23: 19 ConstantComposite 20 21 22
24(Uniforms): TypeStruct 17(int)
25: TypePointer Uniform 24(Uniforms)
26: 25(ptr) Variable Uniform
27: TypeInt 32 1
28: 27(int) Constant 0
29: TypePointer Uniform 17(int)
32: TypePointer Function 19
36: TypeInt 64 0
37: TypePointer Function 36(int)
39: TypeArray 36(int) 18
40: 36(int) Constant 4294967295 4294967295
41: 36(int) Constant 0 1
42: 36(int) Constant 4294967295 1
43: 39 ConstantComposite 40 41 42
46: TypePointer Function 39
50: TypeVector 14(int) 2
51: TypePointer Function 50(ivec2)
53: TypeBool
54: TypeVector 53(bool) 2
55: TypePointer Function 54(bvec2)
58: 14(int) Constant 0 0
59: 14(int) Constant 1 0
60: 50(ivec2) ConstantComposite 58 58
61: 50(ivec2) ConstantComposite 59 59
63: TypeVector 36(int) 2
64: TypePointer Function 63(ivec2)
67: 36(int) Constant 0 0
68: 36(int) Constant 1 0
69: 63(ivec2) ConstantComposite 67 67
70: 63(ivec2) ConstantComposite 68 68
72: TypeVector 27(int) 2
73: TypePointer Function 72(ivec2)
79: TypeVector 17(int) 2
80: TypePointer Function 79(ivec2)
86: TypeFloat 32
87: TypeVector 86(float) 2
88: TypePointer Function 87(fvec2)
92: TypeFloat 64
93: TypeVector 92(float) 2
94: TypePointer Function 93(fvec2)
130: TypeVector 36(int) 3
131: TypePointer Function 130(ivec3)
134: TypeVector 14(int) 3
156: TypePointer Function 27(int)
162: TypeVector 17(int) 3
163: TypePointer Function 162(ivec3)
197: TypeVector 27(int) 3
200: 17(int) Constant 1
201: TypePointer Function 17(int)
207: 17(int) Constant 2
215: TypePointer Function 53(bool)
217: 17(int) Constant 0
287: 50(ivec2) ConstantComposite 21 21
296: 130(ivec3) ConstantComposite 67 67 67
338: 53(bool) ConstantTrue
345: 53(bool) ConstantFalse
346: 54(bvec2) ConstantComposite 345 345
358: TypeVector 53(bool) 3
359: 358(bvec3) ConstantComposite 345 345 345
361: TypeVector 92(float) 3
362: TypePointer Function 361(fvec3)
367: TypePointer Function 92(float)
378: 27(int) Constant 1
379: 27(int) Constant 2
380: 72(ivec2) ConstantComposite 378 379
385: 79(ivec2) ConstantComposite 207 18
390: TypePointer Function 358(bvec3)
452(Block): TypeStruct 134(ivec3) 36(int)
453: TypePointer Uniform 452(Block)
454(block): 453(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
Return
FunctionEnd
6(literal(): 2 Function None 3
7: Label
16(i64): 15(ptr) Variable Function
33(indexable): 32(ptr) Variable Function
38(u64): 37(ptr) Variable Function
47(indexable): 46(ptr) Variable Function
30: 29(ptr) AccessChain 26 28
31: 17(int) Load 30
Store 33(indexable) 23
34: 15(ptr) AccessChain 33(indexable) 31
35: 14(int) Load 34
Store 16(i64) 35
44: 29(ptr) AccessChain 26 28
45: 17(int) Load 44
Store 47(indexable) 43
48: 37(ptr) AccessChain 47(indexable) 45
49: 36(int) Load 48
Store 38(u64) 49
Return
FunctionEnd
8(typeCast(): 2 Function None 3
9: Label
52(i64v): 51(ptr) Variable Function
56(bv): 55(ptr) Variable Function
65(u64v): 64(ptr) Variable Function
74(iv): 73(ptr) Variable Function
81(uv): 80(ptr) Variable Function
89(fv): 88(ptr) Variable Function
95(dv): 94(ptr) Variable Function
57: 54(bvec2) Load 56(bv)
62: 50(ivec2) Select 57 61 60
Store 52(i64v) 62
66: 54(bvec2) Load 56(bv)
71: 63(ivec2) Select 66 70 69
Store 65(u64v) 71
75: 72(ivec2) Load 74(iv)
76: 50(ivec2) SConvert 75
Store 52(i64v) 76
77: 50(ivec2) Load 52(i64v)
78: 72(ivec2) SConvert 77
Store 74(iv) 78
82: 79(ivec2) Load 81(uv)
83: 63(ivec2) UConvert 82
Store 65(u64v) 83
84: 63(ivec2) Load 65(u64v)
85: 79(ivec2) UConvert 84
Store 81(uv) 85
90: 50(ivec2) Load 52(i64v)
91: 87(fvec2) ConvertSToF 90
Store 89(fv) 91
96: 50(ivec2) Load 52(i64v)
97: 93(fvec2) ConvertSToF 96
Store 95(dv) 97
98: 63(ivec2) Load 65(u64v)
99: 87(fvec2) ConvertUToF 98
Store 89(fv) 99
100: 63(ivec2) Load 65(u64v)
101: 93(fvec2) ConvertUToF 100
Store 95(dv) 101
102: 87(fvec2) Load 89(fv)
103: 50(ivec2) ConvertFToS 102
Store 52(i64v) 103
104: 93(fvec2) Load 95(dv)
105: 50(ivec2) ConvertFToS 104
Store 52(i64v) 105
106: 87(fvec2) Load 89(fv)
107: 63(ivec2) ConvertFToU 106
Store 65(u64v) 107
108: 93(fvec2) Load 95(dv)
109: 63(ivec2) ConvertFToU 108
Store 65(u64v) 109
110: 50(ivec2) Load 52(i64v)
111: 54(bvec2) INotEqual 110 69
Store 56(bv) 111
112: 63(ivec2) Load 65(u64v)
113: 54(bvec2) INotEqual 112 69
Store 56(bv) 113
114: 50(ivec2) Load 52(i64v)
115: 63(ivec2) Bitcast 114
Store 65(u64v) 115
116: 63(ivec2) Load 65(u64v)
117: 50(ivec2) Bitcast 116
Store 52(i64v) 117
118: 50(ivec2) Load 52(i64v)
119: 72(ivec2) SConvert 118
120: 79(ivec2) Bitcast 119
Store 81(uv) 120
121: 79(ivec2) Load 81(uv)
122: 63(ivec2) UConvert 121
123: 50(ivec2) Bitcast 122
Store 52(i64v) 123
124: 63(ivec2) Load 65(u64v)
125: 79(ivec2) UConvert 124
126: 72(ivec2) Bitcast 125
Store 74(iv) 126
127: 72(ivec2) Load 74(iv)
128: 50(ivec2) SConvert 127
129: 63(ivec2) Bitcast 128
Store 65(u64v) 129
Return
FunctionEnd
10(operators(): 2 Function None 3
11: Label
132(u64v): 131(ptr) Variable Function
137(i64): 15(ptr) Variable Function
157(i): 156(ptr) Variable Function
164(uv): 163(ptr) Variable Function
216(b): 215(ptr) Variable Function
133: 130(ivec3) Load 132(u64v)
135: 134(ivec3) CompositeConstruct 59 59 59
136: 130(ivec3) IAdd 133 135
Store 132(u64v) 136
138: 14(int) Load 137(i64)
139: 14(int) ISub 138 59
Store 137(i64) 139
140: 14(int) Load 137(i64)
141: 14(int) IAdd 140 59
Store 137(i64) 141
142: 130(ivec3) Load 132(u64v)
143: 134(ivec3) CompositeConstruct 59 59 59
144: 130(ivec3) ISub 142 143
Store 132(u64v) 144
145: 130(ivec3) Load 132(u64v)
146: 130(ivec3) Not 145
Store 132(u64v) 146
147: 14(int) Load 137(i64)
Store 137(i64) 147
148: 130(ivec3) Load 132(u64v)
149: 130(ivec3) SNegate 148
Store 132(u64v) 149
150: 14(int) Load 137(i64)
151: 14(int) Load 137(i64)
152: 14(int) IAdd 151 150
Store 137(i64) 152
153: 130(ivec3) Load 132(u64v)
154: 130(ivec3) Load 132(u64v)
155: 130(ivec3) ISub 154 153
Store 132(u64v) 155
158: 27(int) Load 157(i)
159: 14(int) SConvert 158
160: 14(int) Load 137(i64)
161: 14(int) IMul 160 159
Store 137(i64) 161
165: 162(ivec3) Load 164(uv)
166: 130(ivec3) UConvert 165
167: 130(ivec3) Load 132(u64v)
168: 130(ivec3) UDiv 167 166
Store 132(u64v) 168
169: 27(int) Load 157(i)
170: 14(int) SConvert 169
171: 36(int) Bitcast 170
172: 130(ivec3) Load 132(u64v)
173: 130(ivec3) CompositeConstruct 171 171 171
174: 130(ivec3) UMod 172 173
Store 132(u64v) 174
175: 130(ivec3) Load 132(u64v)
176: 162(ivec3) Load 164(uv)
177: 130(ivec3) UConvert 176
178: 130(ivec3) IAdd 175 177
Store 132(u64v) 178
179: 14(int) Load 137(i64)
180: 27(int) Load 157(i)
181: 14(int) SConvert 180
182: 14(int) ISub 179 181
Store 137(i64) 182
183: 130(ivec3) Load 132(u64v)
184: 162(ivec3) Load 164(uv)
185: 130(ivec3) UConvert 184
186: 130(ivec3) IMul 183 185
Store 132(u64v) 186
187: 14(int) Load 137(i64)
188: 27(int) Load 157(i)
189: 14(int) SConvert 188
190: 14(int) IMul 187 189
Store 137(i64) 190
191: 14(int) Load 137(i64)
192: 27(int) Load 157(i)
193: 14(int) SConvert 192
194: 14(int) SMod 191 193
Store 137(i64) 194
195: 27(int) Load 157(i)
196: 130(ivec3) Load 132(u64v)
198: 197(ivec3) CompositeConstruct 195 195 195
199: 130(ivec3) ShiftLeftLogical 196 198
Store 132(u64v) 199
202: 201(ptr) AccessChain 164(uv) 200
203: 17(int) Load 202
204: 14(int) Load 137(i64)
205: 14(int) ShiftRightArithmetic 204 203
Store 137(i64) 205
206: 14(int) Load 137(i64)
208: 37(ptr) AccessChain 132(u64v) 207
209: 36(int) Load 208
210: 14(int) ShiftLeftLogical 206 209
Store 137(i64) 210
211: 130(ivec3) Load 132(u64v)
212: 14(int) Load 137(i64)
213: 134(ivec3) CompositeConstruct 212 212 212
214: 130(ivec3) ShiftLeftLogical 211 213
Store 132(u64v) 214
218: 37(ptr) AccessChain 132(u64v) 217
219: 36(int) Load 218
220: 14(int) Load 137(i64)
221: 36(int) Bitcast 220
222: 53(bool) INotEqual 219 221
Store 216(b) 222
223: 14(int) Load 137(i64)
224: 36(int) Bitcast 223
225: 37(ptr) AccessChain 132(u64v) 217
226: 36(int) Load 225
227: 53(bool) IEqual 224 226
Store 216(b) 227
228: 37(ptr) AccessChain 132(u64v) 217
229: 36(int) Load 228
230: 201(ptr) AccessChain 164(uv) 200
231: 17(int) Load 230
232: 36(int) UConvert 231
233: 53(bool) UGreaterThan 229 232
Store 216(b) 233
234: 14(int) Load 137(i64)
235: 27(int) Load 157(i)
236: 14(int) SConvert 235
237: 53(bool) SLessThan 234 236
Store 216(b) 237
238: 37(ptr) AccessChain 132(u64v) 200
239: 36(int) Load 238
240: 201(ptr) AccessChain 164(uv) 217
241: 17(int) Load 240
242: 36(int) UConvert 241
243: 53(bool) UGreaterThanEqual 239 242
Store 216(b) 243
244: 14(int) Load 137(i64)
245: 27(int) Load 157(i)
246: 14(int) SConvert 245
247: 53(bool) SLessThanEqual 244 246
Store 216(b) 247
248: 27(int) Load 157(i)
249: 14(int) SConvert 248
250: 36(int) Bitcast 249
251: 130(ivec3) Load 132(u64v)
252: 130(ivec3) CompositeConstruct 250 250 250
253: 130(ivec3) BitwiseOr 251 252
Store 132(u64v) 253
254: 14(int) Load 137(i64)
255: 27(int) Load 157(i)
256: 14(int) SConvert 255
257: 14(int) BitwiseOr 254 256
Store 137(i64) 257
258: 27(int) Load 157(i)
259: 14(int) SConvert 258
260: 14(int) Load 137(i64)
261: 14(int) BitwiseAnd 260 259
Store 137(i64) 261
262: 130(ivec3) Load 132(u64v)
263: 162(ivec3) Load 164(uv)
264: 130(ivec3) UConvert 263
265: 130(ivec3) BitwiseAnd 262 264
Store 132(u64v) 265
266: 14(int) Load 137(i64)
267: 36(int) Bitcast 266
268: 130(ivec3) Load 132(u64v)
269: 130(ivec3) CompositeConstruct 267 267 267
270: 130(ivec3) BitwiseXor 268 269
Store 132(u64v) 270
271: 130(ivec3) Load 132(u64v)
272: 14(int) Load 137(i64)
273: 36(int) Bitcast 272
274: 130(ivec3) CompositeConstruct 273 273 273
275: 130(ivec3) BitwiseXor 271 274
Store 132(u64v) 275
Return
FunctionEnd
12(builtinFuncs(): 2 Function None 3
13: Label
276(i64v): 51(ptr) Variable Function
279(i64): 15(ptr) Variable Function
289(u64v): 131(ptr) Variable Function
291(u64): 37(ptr) Variable Function
363(dv): 362(ptr) Variable Function
382(iv): 73(ptr) Variable Function
387(uv): 80(ptr) Variable Function
391(bv): 390(ptr) Variable Function
277: 50(ivec2) Load 276(i64v)
278: 50(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 277
Store 276(i64v) 278
280: 14(int) Load 279(i64)
281: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 280
Store 279(i64) 281
282: 50(ivec2) Load 276(i64v)
283: 14(int) Load 279(i64)
284: 50(ivec2) CompositeConstruct 283 283
285: 50(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 282 284
Store 276(i64v) 285
286: 50(ivec2) Load 276(i64v)
288: 50(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 286 287
Store 276(i64v) 288
290: 130(ivec3) Load 289(u64v)
292: 36(int) Load 291(u64)
293: 130(ivec3) CompositeConstruct 292 292 292
294: 130(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 290 293
Store 289(u64v) 294
295: 130(ivec3) Load 289(u64v)
297: 130(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 295 296
Store 289(u64v) 297
298: 50(ivec2) Load 276(i64v)
299: 14(int) Load 279(i64)
300: 50(ivec2) CompositeConstruct 299 299
301: 50(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 298 300
Store 276(i64v) 301
302: 50(ivec2) Load 276(i64v)
303: 50(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 302 287
Store 276(i64v) 303
304: 130(ivec3) Load 289(u64v)
305: 36(int) Load 291(u64)
306: 130(ivec3) CompositeConstruct 305 305 305
307: 130(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 304 306
Store 289(u64v) 307
308: 130(ivec3) Load 289(u64v)
309: 130(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 308 296
Store 289(u64v) 309
310: 50(ivec2) Load 276(i64v)
311: 14(int) Load 279(i64)
312: 14(int) SNegate 311
313: 14(int) Load 279(i64)
314: 50(ivec2) CompositeConstruct 312 312
315: 50(ivec2) CompositeConstruct 313 313
316: 50(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 310 314 315
Store 276(i64v) 316
317: 50(ivec2) Load 276(i64v)
318: 50(ivec2) Load 276(i64v)
319: 50(ivec2) SNegate 318
320: 50(ivec2) Load 276(i64v)
321: 50(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 317 319 320
Store 276(i64v) 321
322: 130(ivec3) Load 289(u64v)
323: 36(int) Load 291(u64)
324: 36(int) SNegate 323
325: 36(int) Load 291(u64)
326: 130(ivec3) CompositeConstruct 324 324 324
327: 130(ivec3) CompositeConstruct 325 325 325
328: 130(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 322 326 327
Store 289(u64v) 328
329: 130(ivec3) Load 289(u64v)
330: 130(ivec3) Load 289(u64v)
331: 130(ivec3) SNegate 330
332: 130(ivec3) Load 289(u64v)
333: 130(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 329 331 332
Store 289(u64v) 333
334: 15(ptr) AccessChain 276(i64v) 217
335: 14(int) Load 334
336: 15(ptr) AccessChain 276(i64v) 200
337: 14(int) Load 336
339: 14(int) Select 338 337 335
Store 279(i64) 339
340: 14(int) Load 279(i64)
341: 50(ivec2) CompositeConstruct 340 340
342: 14(int) Load 279(i64)
343: 14(int) SNegate 342
344: 50(ivec2) CompositeConstruct 343 343
347: 50(ivec2) Select 346 344 341
Store 276(i64v) 347
348: 37(ptr) AccessChain 289(u64v) 217
349: 36(int) Load 348
350: 37(ptr) AccessChain 289(u64v) 200
351: 36(int) Load 350
352: 36(int) Select 338 351 349
Store 291(u64) 352
353: 36(int) Load 291(u64)
354: 130(ivec3) CompositeConstruct 353 353 353
355: 36(int) Load 291(u64)
356: 36(int) SNegate 355
357: 130(ivec3) CompositeConstruct 356 356 356
360: 130(ivec3) Select 359 357 354
Store 289(u64v) 360
364: 361(fvec3) Load 363(dv)
365: 93(fvec2) VectorShuffle 364 364 0 1
366: 50(ivec2) Bitcast 365
Store 276(i64v) 366
368: 367(ptr) AccessChain 363(dv) 207
369: 92(float) Load 368
370: 36(int) Bitcast 369
371: 37(ptr) AccessChain 289(u64v) 217
Store 371 370
372: 50(ivec2) Load 276(i64v)
373: 93(fvec2) Bitcast 372
374: 361(fvec3) Load 363(dv)
375: 361(fvec3) VectorShuffle 374 373 3 4 2
Store 363(dv) 375
376: 130(ivec3) Load 289(u64v)
377: 361(fvec3) Bitcast 376
Store 363(dv) 377
381: 14(int) ExtInst 1(GLSL.std.450) 0(Unknown) 380
Store 279(i64) 381
383: 14(int) Load 279(i64)
384: 72(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 383
Store 382(iv) 384
386: 36(int) ExtInst 1(GLSL.std.450) 0(Unknown) 385
Store 291(u64) 386
388: 36(int) Load 291(u64)
389: 79(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 388
Store 387(uv) 389
392: 130(ivec3) Load 289(u64v)
393: 36(int) Load 291(u64)
394: 130(ivec3) CompositeConstruct 393 393 393
395: 358(bvec3) ULessThan 392 394
Store 391(bv) 395
396: 50(ivec2) Load 276(i64v)
397: 14(int) Load 279(i64)
398: 50(ivec2) CompositeConstruct 397 397
399: 54(bvec2) SLessThan 396 398
400: 358(bvec3) Load 391(bv)
401: 358(bvec3) VectorShuffle 400 399 3 4 2
Store 391(bv) 401
402: 130(ivec3) Load 289(u64v)
403: 36(int) Load 291(u64)
404: 130(ivec3) CompositeConstruct 403 403 403
405: 358(bvec3) ULessThanEqual 402 404
Store 391(bv) 405
406: 50(ivec2) Load 276(i64v)
407: 14(int) Load 279(i64)
408: 50(ivec2) CompositeConstruct 407 407
409: 54(bvec2) SLessThanEqual 406 408
410: 358(bvec3) Load 391(bv)
411: 358(bvec3) VectorShuffle 410 409 3 4 2
Store 391(bv) 411
412: 130(ivec3) Load 289(u64v)
413: 36(int) Load 291(u64)
414: 130(ivec3) CompositeConstruct 413 413 413
415: 358(bvec3) UGreaterThan 412 414
Store 391(bv) 415
416: 50(ivec2) Load 276(i64v)
417: 14(int) Load 279(i64)
418: 50(ivec2) CompositeConstruct 417 417
419: 54(bvec2) SGreaterThan 416 418
420: 358(bvec3) Load 391(bv)
421: 358(bvec3) VectorShuffle 420 419 3 4 2
Store 391(bv) 421
422: 130(ivec3) Load 289(u64v)
423: 36(int) Load 291(u64)
424: 130(ivec3) CompositeConstruct 423 423 423
425: 358(bvec3) UGreaterThanEqual 422 424
Store 391(bv) 425
426: 50(ivec2) Load 276(i64v)
427: 14(int) Load 279(i64)
428: 50(ivec2) CompositeConstruct 427 427
429: 54(bvec2) SGreaterThanEqual 426 428
430: 358(bvec3) Load 391(bv)
431: 358(bvec3) VectorShuffle 430 429 3 4 2
Store 391(bv) 431
432: 130(ivec3) Load 289(u64v)
433: 36(int) Load 291(u64)
434: 130(ivec3) CompositeConstruct 433 433 433
435: 358(bvec3) IEqual 432 434
Store 391(bv) 435
436: 50(ivec2) Load 276(i64v)
437: 14(int) Load 279(i64)
438: 50(ivec2) CompositeConstruct 437 437
439: 54(bvec2) IEqual 436 438
440: 358(bvec3) Load 391(bv)
441: 358(bvec3) VectorShuffle 440 439 3 4 2
Store 391(bv) 441
442: 130(ivec3) Load 289(u64v)
443: 36(int) Load 291(u64)
444: 130(ivec3) CompositeConstruct 443 443 443
445: 358(bvec3) INotEqual 442 444
Store 391(bv) 445
446: 50(ivec2) Load 276(i64v)
447: 14(int) Load 279(i64)
448: 50(ivec2) CompositeConstruct 447 447
449: 54(bvec2) INotEqual 446 448
450: 358(bvec3) Load 391(bv)
451: 358(bvec3) VectorShuffle 450 449 3 4 2
Store 391(bv) 451
Return
FunctionEnd

View File

@ -44,6 +44,12 @@ Linked vertex stage:
Name 173 "u3"
Name 182 "i3"
Name 247 "v4"
Decorate 210 RelaxedPrecision
Decorate 216 RelaxedPrecision
Decorate 223 RelaxedPrecision
Decorate 230 RelaxedPrecision
Decorate 234 RelaxedPrecision
Decorate 240 RelaxedPrecision
Decorate 261 RelaxedPrecision
Decorate 265 RelaxedPrecision
2: TypeVoid

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