Merge branch 'master' of github.com:KhronosGroup/glslang into clang-format
This commit is contained in:
commit
f377f5287b
40
.appveyor.yml
Normal file
40
.appveyor.yml
Normal 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
1
.gitignore
vendored
@ -7,3 +7,4 @@ build/
|
||||
Test/localResults/
|
||||
Test/multiThread.out
|
||||
Test/singleThread.out
|
||||
External/googletest
|
||||
|
||||
60
.travis.yml
Normal file
60
.travis.yml
Normal 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
|
||||
@ -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
34
External/CMakeLists.txt
vendored
Normal 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()
|
||||
@ -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
|
||||
@ -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
172
README.md
@ -8,6 +8,9 @@ regarding the feature level of glslang.
|
||||
glslang
|
||||
=======
|
||||
|
||||
[](https://travis-ci.org/KhronosGroup/glslang)
|
||||
[](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
|
||||
|
||||
@ -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
@ -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);
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@ -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
68
SPIRV/Logger.cpp
Normal 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
74
SPIRV/Logger.h
Normal 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
|
||||
@ -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,8 +926,17 @@ namespace spv {
|
||||
// Count function variable use
|
||||
process(
|
||||
[&](spv::Op opCode, unsigned start) {
|
||||
if (opCode == spv::OpVariable) { ++varUseCount[asId(start+2)]; return true; }
|
||||
return false;
|
||||
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;
|
||||
},
|
||||
|
||||
[&](spv::Id& id) { if (varUseCount[id]) ++varUseCount[id]; }
|
||||
|
||||
@ -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),
|
||||
sourceVersion(0),
|
||||
addressModel(AddressingModelLogical),
|
||||
memoryModel(MemoryModelGLSL450),
|
||||
builderNumber(magicNumber),
|
||||
buildPoint(0),
|
||||
uniqueId(0),
|
||||
mainFunction(0)
|
||||
Builder::Builder(unsigned int magicNumber, SpvBuildLogger* buildLogger) :
|
||||
source(SourceLanguageUnknown),
|
||||
sourceVersion(0),
|
||||
addressModel(AddressingModelLogical),
|
||||
memoryModel(MemoryModelGLSL450),
|
||||
builderNumber(magicNumber),
|
||||
buildPoint(0),
|
||||
uniqueId(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);
|
||||
for (int c = 0; c < numComponents; ++c)
|
||||
smear->addIdOperand(scalar);
|
||||
buildPoint->addInstruction(std::unique_ptr<Instruction>(smear));
|
||||
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,12 +2385,12 @@ void Builder::eliminateDeadDecorations()
|
||||
}
|
||||
}
|
||||
decorations.erase(std::remove_if(decorations.begin(), decorations.end(),
|
||||
[&unreachable_definitions](std::unique_ptr<Instruction>& I) {
|
||||
Instruction* inst = I.get();
|
||||
Id decoration_id = inst->getIdOperand(0);
|
||||
return unreachable_definitions.count(decoration_id) != 0;
|
||||
}),
|
||||
decorations.end());
|
||||
[&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;
|
||||
}),
|
||||
decorations.end());
|
||||
}
|
||||
|
||||
void Builder::dump(std::vector<unsigned int>& out) const
|
||||
@ -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
|
||||
}; // end spv namespace
|
||||
|
||||
@ -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);
|
||||
|
||||
protected:
|
||||
// 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
|
||||
|
||||
@ -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.
|
||||
//
|
||||
|
||||
@ -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.
|
||||
//
|
||||
|
||||
@ -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";
|
||||
|
||||
@ -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.
|
||||
//
|
||||
|
||||
@ -61,6 +61,7 @@ enum SourceLanguage {
|
||||
SourceLanguageGLSL = 2,
|
||||
SourceLanguageOpenCL_C = 3,
|
||||
SourceLanguageOpenCL_CPP = 4,
|
||||
SourceLanguageHLSL = 5,
|
||||
};
|
||||
|
||||
enum ExecutionModel {
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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)
|
||||
|
||||
444
StandAlone/ResourceLimits.cpp
Normal file
444
StandAlone/ResourceLimits.cpp
Normal 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
|
||||
57
StandAlone/ResourceLimits.h
Normal file
57
StandAlone/ResourceLimits.h
Normal 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_
|
||||
@ -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);
|
||||
Resources = glslang::DefaultTBuiltInResource;
|
||||
return;
|
||||
}
|
||||
|
||||
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);
|
||||
glslang::DecodeResourceLimits(&Resources, config);
|
||||
|
||||
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);
|
||||
}
|
||||
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"
|
||||
|
||||
@ -148,3 +148,5 @@ void fooKeyMem()
|
||||
{
|
||||
KeyMem.precise;
|
||||
}
|
||||
|
||||
layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range
|
||||
@ -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
30
Test/420.comp
Executable 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();
|
||||
}
|
||||
@ -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];
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -22,3 +22,7 @@ ERROR: 0:65: 'limitations' : Non-constant-index-expression
|
||||
ERROR: 20 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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})
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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})
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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
122
Test/baseResults/420.comp.out
Executable 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)
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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})
|
||||
|
||||
|
||||
@ -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})
|
||||
|
||||
|
||||
@ -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})
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
27
Test/baseResults/es-link1.frag.out
Normal file
27
Test/baseResults/es-link1.frag.out
Normal 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
|
||||
|
||||
113
Test/baseResults/hlsl.assoc.frag.out
Executable file
113
Test/baseResults/hlsl.assoc.frag.out
Executable 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
|
||||
57
Test/baseResults/hlsl.attribute.frag.out
Executable file
57
Test/baseResults/hlsl.attribute.frag.out
Executable 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
|
||||
86
Test/baseResults/hlsl.cast.frag.out
Executable file
86
Test/baseResults/hlsl.cast.frag.out
Executable 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
|
||||
116
Test/baseResults/hlsl.doLoop.frag.out
Executable file
116
Test/baseResults/hlsl.doLoop.frag.out
Executable 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
|
||||
100
Test/baseResults/hlsl.float1.frag.out
Executable file
100
Test/baseResults/hlsl.float1.frag.out
Executable 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
|
||||
79
Test/baseResults/hlsl.float4.frag.out
Executable file
79
Test/baseResults/hlsl.float4.frag.out
Executable 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
|
||||
220
Test/baseResults/hlsl.forLoop.frag.out
Executable file
220
Test/baseResults/hlsl.forLoop.frag.out
Executable 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
|
||||
160
Test/baseResults/hlsl.frag.out
Normal file
160
Test/baseResults/hlsl.frag.out
Normal 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
223
Test/baseResults/hlsl.if.frag.out
Executable 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
|
||||
2178
Test/baseResults/hlsl.intrinsics.frag.out
Normal file
2178
Test/baseResults/hlsl.intrinsics.frag.out
Normal file
File diff suppressed because it is too large
Load Diff
702
Test/baseResults/hlsl.intrinsics.negative.frag.out
Normal file
702
Test/baseResults/hlsl.intrinsics.negative.frag.out
Normal 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
|
||||
1055
Test/baseResults/hlsl.intrinsics.negative.vert.out
Normal file
1055
Test/baseResults/hlsl.intrinsics.negative.vert.out
Normal file
File diff suppressed because it is too large
Load Diff
1994
Test/baseResults/hlsl.intrinsics.vert.out
Normal file
1994
Test/baseResults/hlsl.intrinsics.vert.out
Normal file
File diff suppressed because it is too large
Load Diff
101
Test/baseResults/hlsl.matType.frag.out
Executable file
101
Test/baseResults/hlsl.matType.frag.out
Executable 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
|
||||
60
Test/baseResults/hlsl.max.frag.out
Executable file
60
Test/baseResults/hlsl.max.frag.out
Executable 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
|
||||
80
Test/baseResults/hlsl.precedence.frag.out
Executable file
80
Test/baseResults/hlsl.precedence.frag.out
Executable 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
|
||||
103
Test/baseResults/hlsl.precedence2.frag.out
Executable file
103
Test/baseResults/hlsl.precedence2.frag.out
Executable 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
|
||||
53
Test/baseResults/hlsl.sin.frag.out
Executable file
53
Test/baseResults/hlsl.sin.frag.out
Executable 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
|
||||
145
Test/baseResults/hlsl.whileLoop.frag.out
Executable file
145
Test/baseResults/hlsl.whileLoop.frag.out
Executable 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
|
||||
@ -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
|
||||
|
||||
|
||||
24
Test/baseResults/negativeArraySize.comp.out
Normal file
24
Test/baseResults/negativeArraySize.comp.out
Normal 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
|
||||
|
||||
768
Test/baseResults/precise.tesc.out
Normal file
768
Test/baseResults/precise.tesc.out
Normal 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
|
||||
|
||||
1045
Test/baseResults/precise_struct_block.vert.out
Normal file
1045
Test/baseResults/precise_struct_block.vert.out
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
||||
0
Test/baseResults/preprocessor.eof_missing.vert.err
Normal file
0
Test/baseResults/preprocessor.eof_missing.vert.err
Normal file
2
Test/baseResults/preprocessor.eof_missing.vert.out
Normal file
2
Test/baseResults/preprocessor.eof_missing.vert.out
Normal file
@ -0,0 +1,2 @@
|
||||
noEOF
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -9,7 +9,6 @@ Linked geometry stage:
|
||||
|
||||
Capability Geometry
|
||||
Capability GeometryPointSize
|
||||
Capability ClipDistance
|
||||
Capability GeometryStreams
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
@ -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
0
Test/baseResults/spv.330.geom.out
Executable file → Normal file
@ -11,6 +11,7 @@ Linked fragment stage:
|
||||
|
||||
Capability Shader
|
||||
Capability Float64
|
||||
Capability ImageGatherExtended
|
||||
Capability ClipDistance
|
||||
Capability SampledRect
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -11,6 +11,7 @@ Linked geometry stage:
|
||||
|
||||
Capability Geometry
|
||||
Capability GeometryPointSize
|
||||
Capability ImageGatherExtended
|
||||
Capability GeometryStreams
|
||||
Capability MultiViewport
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
626
Test/baseResults/spv.int64.frag.out
Normal file
626
Test/baseResults/spv.int64.frag.out
Normal 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
|
||||
@ -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
Loading…
x
Reference in New Issue
Block a user