mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
Updated GENie, BGFX, BX, added BIMG since it is separated now, updated all shader binaries and MAME part of code to support new interfaces [Miodrag Milanovic]
This commit is contained in:
parent
6829ecb3b0
commit
3917627494
9
3rdparty/bgfx/.appveyor.yml
vendored
9
3rdparty/bgfx/.appveyor.yml
vendored
@ -1,20 +1,21 @@
|
||||
shallow_clone: true
|
||||
|
||||
os:
|
||||
- Visual Studio 2015
|
||||
- Visual Studio 2017
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- TOOLSET: vs2013
|
||||
- TOOLSET: vs2015
|
||||
- TOOLSET: vs2017
|
||||
|
||||
configuration:
|
||||
- Debug
|
||||
- Release
|
||||
|
||||
install:
|
||||
- git clone https://github.com/bkaradzic/bx ..\bx
|
||||
- ..\bx\tools\bin\windows\genie --with-tools %TOOLSET%
|
||||
- git clone --depth 1 https://github.com/bkaradzic/bx ..\bx
|
||||
- git clone --depth 1 https://github.com/bkaradzic/bimg ..\bimg
|
||||
- ..\bx\tools\bin\windows\genie --with-tools --with-examples %TOOLSET%
|
||||
|
||||
build:
|
||||
project: .build/projects/$(TOOLSET)/bgfx.sln
|
||||
|
3
3rdparty/bgfx/.travis.yml
vendored
3
3rdparty/bgfx/.travis.yml
vendored
@ -16,7 +16,8 @@ addons:
|
||||
- clang
|
||||
|
||||
before_script:
|
||||
git clone https://github.com/bkaradzic/bx ../bx
|
||||
- git clone --depth 1 https://github.com/bkaradzic/bx ../bx
|
||||
- git clone --depth 1 https://github.com/bkaradzic/bimg ../bimg
|
||||
|
||||
script:
|
||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then make build CXX="g++-4.8" CC="gcc-4.8"; fi
|
||||
|
21
3rdparty/bgfx/3rdparty/dxsdk/include/d3dx12.h
vendored
21
3rdparty/bgfx/3rdparty/dxsdk/include/d3dx12.h
vendored
@ -1345,6 +1345,17 @@ inline void MemcpySubresource(
|
||||
}
|
||||
}
|
||||
|
||||
namespace MinGW_Workaround
|
||||
{
|
||||
inline D3D12_RESOURCE_DESC ID3D12ResourceGetDesc(ID3D12Resource* _resource)
|
||||
{
|
||||
typedef void (STDMETHODCALLTYPE ID3D12Resource::*PFN_GET_GET_DESC)(D3D12_RESOURCE_DESC*);
|
||||
D3D12_RESOURCE_DESC desc;
|
||||
(_resource->*(PFN_GET_GET_DESC)(&ID3D12Resource::GetDesc))(&desc);
|
||||
return desc;
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------
|
||||
// Returns required size of a buffer to be used for data upload
|
||||
inline UINT64 GetRequiredIntermediateSize(
|
||||
@ -1352,7 +1363,7 @@ inline UINT64 GetRequiredIntermediateSize(
|
||||
_In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
|
||||
_In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources)
|
||||
{
|
||||
D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc();
|
||||
D3D12_RESOURCE_DESC Desc = MinGW_Workaround::ID3D12ResourceGetDesc(pDestinationResource);
|
||||
UINT64 RequiredSize = 0;
|
||||
|
||||
ID3D12Device* pDevice;
|
||||
@ -1378,8 +1389,8 @@ inline UINT64 UpdateSubresources(
|
||||
_In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData)
|
||||
{
|
||||
// Minor validation
|
||||
D3D12_RESOURCE_DESC IntermediateDesc = pIntermediate->GetDesc();
|
||||
D3D12_RESOURCE_DESC DestinationDesc = pDestinationResource->GetDesc();
|
||||
D3D12_RESOURCE_DESC IntermediateDesc = MinGW_Workaround::ID3D12ResourceGetDesc(pIntermediate);
|
||||
D3D12_RESOURCE_DESC DestinationDesc = MinGW_Workaround::ID3D12ResourceGetDesc(pDestinationResource);
|
||||
if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER ||
|
||||
IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset ||
|
||||
RequiredSize > (SIZE_T)-1 ||
|
||||
@ -1448,7 +1459,7 @@ inline UINT64 UpdateSubresources(
|
||||
UINT64* pRowSizesInBytes = reinterpret_cast<UINT64*>(pLayouts + NumSubresources);
|
||||
UINT* pNumRows = reinterpret_cast<UINT*>(pRowSizesInBytes + NumSubresources);
|
||||
|
||||
D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc();
|
||||
D3D12_RESOURCE_DESC Desc = MinGW_Workaround::ID3D12ResourceGetDesc(pDestinationResource);
|
||||
ID3D12Device* pDevice;
|
||||
pDestinationResource->GetDevice(__uuidof(ID3D12Device), reinterpret_cast<void**>(&pDevice));
|
||||
pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize);
|
||||
@ -1476,7 +1487,7 @@ inline UINT64 UpdateSubresources(
|
||||
UINT NumRows[MaxSubresources];
|
||||
UINT64 RowSizesInBytes[MaxSubresources];
|
||||
|
||||
D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc();
|
||||
D3D12_RESOURCE_DESC Desc = MinGW_Workaround::ID3D12ResourceGetDesc(pDestinationResource);
|
||||
ID3D12Device* pDevice;
|
||||
pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast<void**>(&pDevice));
|
||||
pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize);
|
||||
|
@ -73,10 +73,8 @@
|
||||
// BK - STFU!
|
||||
# pragma GCC diagnostic ignored "-Wunknown-pragmas" // for clang to disable GCC pragmas
|
||||
# pragma GCC diagnostic ignored "-Wpragmas" // for GCC to disable clang pragmas
|
||||
# pragma GCC diagnostic ignored "-Wformat="
|
||||
# pragma GCC diagnostic ignored "-Wformat-extra-args"
|
||||
# pragma GCC diagnostic ignored "-Wignored-qualifiers"
|
||||
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
||||
# pragma GCC diagnostic ignored "-Wmissing-field-initializers"
|
||||
# pragma GCC diagnostic ignored "-Wreorder"
|
||||
# pragma GCC diagnostic ignored "-Woverloaded-virtual"
|
||||
@ -85,6 +83,13 @@
|
||||
# pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
# pragma GCC diagnostic ignored "-Wunused-private-field"
|
||||
# pragma GCC diagnostic ignored "-Wunused-variable"
|
||||
# pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor"
|
||||
|
||||
# if !defined(__clang__)
|
||||
# pragma GCC diagnostic ignored "-Wformat="
|
||||
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -161,6 +161,9 @@ lod_exists_in_stage(const _mesa_glsl_parse_state *state)
|
||||
*/
|
||||
return state->stage == MESA_SHADER_VERTEX ||
|
||||
state->is_version(130, 300) ||
|
||||
state->EXT_texture_array_enable || /* BK - don't complain about texture array in fragment shaders. */
|
||||
state->OES_texture_3D_enable || /* BK - shut up */
|
||||
state->EXT_shader_texture_lod_enable || /* BK - pretend it's ok too */
|
||||
state->ARB_shader_texture_lod_enable;
|
||||
}
|
||||
|
||||
|
@ -568,9 +568,9 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
|
||||
EXT(EXT_separate_shader_objects, false, true, dummy_true),
|
||||
EXT(EXT_shader_framebuffer_fetch, false, true, EXT_shader_framebuffer_fetch),
|
||||
EXT(EXT_shader_integer_mix, true, true, EXT_shader_integer_mix),
|
||||
EXT(EXT_shader_texture_lod, false, true, ARB_shader_texture_lod),
|
||||
EXT(EXT_shader_texture_lod, true, true, ARB_shader_texture_lod), // BK - made it available in GLSL
|
||||
EXT(EXT_shadow_samplers, false, true, EXT_shadow_samplers),
|
||||
EXT(EXT_texture_array, true, false, EXT_texture_array),
|
||||
EXT(EXT_texture_array, true, true, EXT_texture_array), // BK - made it available in ESSL
|
||||
};
|
||||
|
||||
#undef EXT
|
||||
|
52
3rdparty/bgfx/3rdparty/glslang/.appveyor.yml
vendored
52
3rdparty/bgfx/3rdparty/glslang/.appveyor.yml
vendored
@ -7,7 +7,7 @@ version: "{build}"
|
||||
os: Visual Studio 2013
|
||||
|
||||
platform:
|
||||
- Any CPU
|
||||
- x64
|
||||
|
||||
configuration:
|
||||
- Debug
|
||||
@ -17,6 +17,13 @@ branches:
|
||||
only:
|
||||
- master
|
||||
|
||||
# Travis advances the master-tot tag to current top of the tree after
|
||||
# each push into the master branch, because it relies on that tag to
|
||||
# upload build artifacts to the master-tot release. This will cause
|
||||
# double testing for each push on Appveyor: one for the push, one for
|
||||
# the tag advance. Disable testing tags.
|
||||
skip_tags: true
|
||||
|
||||
clone_depth: 5
|
||||
|
||||
matrix:
|
||||
@ -25,6 +32,7 @@ matrix:
|
||||
# scripts that run after cloning repository
|
||||
install:
|
||||
- git clone https://github.com/google/googletest.git External/googletest
|
||||
- C:/Python27/python.exe update_glslang_sources.py
|
||||
|
||||
build:
|
||||
parallel: true # enable MSBuild parallel builds
|
||||
@ -38,3 +46,45 @@ build_script:
|
||||
test_script:
|
||||
- ctest -C %CONFIGURATION% --output-on-failure
|
||||
- cd ../Test && bash runtests
|
||||
- cd ../build
|
||||
|
||||
after_test:
|
||||
# For debug build, the generated dll has a postfix "d" in its name.
|
||||
- ps: >-
|
||||
If ($env:configuration -Match "Debug") {
|
||||
$env:SUFFIX="d"
|
||||
} Else {
|
||||
$env:SUFFIX=""
|
||||
}
|
||||
- cd install
|
||||
# Zip all glslang artifacts for uploading and deploying
|
||||
- 7z a glslang-master-windows-"%PLATFORM%"-"%CONFIGURATION%".zip
|
||||
bin\glslangValidator.exe
|
||||
include\glslang\*
|
||||
include\SPIRV\*
|
||||
lib\glslang%SUFFIX%.lib
|
||||
lib\HLSL%SUFFIX%.lib
|
||||
lib\OGLCompiler%SUFFIX%.lib
|
||||
lib\OSDependent%SUFFIX%.lib
|
||||
lib\SPIRV%SUFFIX%.lib
|
||||
lib\SPVRemapper%SUFFIX%.lib
|
||||
lib\SPIRV-Tools%SUFFIX%.lib
|
||||
lib\SPIRV-Tools-opt%SUFFIX%.lib
|
||||
|
||||
artifacts:
|
||||
- path: build\install\*.zip
|
||||
name: artifacts-zip
|
||||
|
||||
deploy:
|
||||
- provider: GitHub
|
||||
auth_token:
|
||||
secure: YglcSYdl0TylEa59H4K6lylBEDr586NAt2EMgZquSo+iuPrwgZQuJLPCoihSm9y6
|
||||
release: master-tot
|
||||
description: "Continuous build of the latest master branch by Appveyor and Travis CI"
|
||||
artifact: artifacts-zip
|
||||
draft: false
|
||||
prerelease: false
|
||||
force_update: true
|
||||
on:
|
||||
branch: master
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
||||
|
5
3rdparty/bgfx/3rdparty/glslang/.gitignore
vendored
5
3rdparty/bgfx/3rdparty/glslang/.gitignore
vendored
@ -6,8 +6,5 @@ tags
|
||||
TAGS
|
||||
build/
|
||||
Test/localResults/
|
||||
Test/multiThread.out
|
||||
Test/singleThread.out
|
||||
Test/vert.spv
|
||||
Test/frag.spv
|
||||
External/googletest
|
||||
External/spirv-tools
|
||||
|
93
3rdparty/bgfx/3rdparty/glslang/.travis.yml
vendored
93
3rdparty/bgfx/3rdparty/glslang/.travis.yml
vendored
@ -7,12 +7,15 @@ os:
|
||||
- osx
|
||||
|
||||
# Use Ubuntu 14.04 LTS (Trusty) as the Linux testing environment.
|
||||
sudo: required
|
||||
sudo: false
|
||||
dist: trusty
|
||||
|
||||
env:
|
||||
- GLSLANG_BUILD_TYPE=Release
|
||||
- GLSLANG_BUILD_TYPE=Debug
|
||||
global:
|
||||
- secure: aGFrgzyKp+84hKrGkxVWg8cHV61uqrKEHT38gfSQK6+WS4GfLOyH83p7WnsEBb7AMhzU7LMNFdvOFr6+NaMpVnqRvc40CEG1Q+lNg9Pq9mhIZLowvDrfqTL9kQ+8Nbw5Q6/dg6CTvY7fvRfpfCEmKIUZBRkoKUuHeuM1uy3IupFcdNuL5bSYn3Beo+apSJginh9DI4BLDXFUgBzTRSLLyCX5g3cpaeGGOCr8quJlYx75W6HRck5g9SZuLtUoH9GFEV3l+ZEWB8noErW+J56L03bwNwFuuAh321evw++oQk5KFa8rlDvar3SJ3b1RHB8u/eq5DBYMyaK/fS8+Q7QbGr8diF/wDe68bKO7U9IhpNfExXmczCpExjHomW5TQv4rYdGhygPMfW97aIsPRYyNKcl4fkmb7NDrM8w0Jscdq2g5c2Kz0ItyZoBri/NXLwFQQjaVCs7Pf97TjuMA7mK0GJmDTRzi6SrDYlWMt5BQL3y0CCojyfLIRcTh0CQjQI29s97bLfQrYAxt9GNNFR+HTXRLLrkaAlJkPGEPwUywlSfEThnvHLesNxYqemolAYpQT4ithoL4GehGIHmaxsW295aKVhuRf8K9eBODNqrfblvM42UHhjntT+92ZnQ/Gkq80GqaMxnxi4PO5FyPIxt0r981b54YBkWi8YA4P7w5pNI=
|
||||
matrix:
|
||||
- GLSLANG_BUILD_TYPE=Release
|
||||
- GLSLANG_BUILD_TYPE=Debug
|
||||
|
||||
compiler:
|
||||
- clang
|
||||
@ -24,6 +27,9 @@ matrix:
|
||||
# Skip GCC builds on Mac OS X.
|
||||
- os: osx
|
||||
compiler: gcc
|
||||
include:
|
||||
# Additional build using Android NDK.
|
||||
- env: BUILD_NDK=ON
|
||||
|
||||
cache:
|
||||
apt: true
|
||||
@ -36,25 +42,82 @@ 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.
|
||||
# Make sure that clang-3.6 is selected on Linux.
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then
|
||||
export CC=clang-3.6 CXX=clang++-3.6;
|
||||
fi
|
||||
# Download Android NDK and Android CMake toolchain file.
|
||||
- if [[ "$BUILD_NDK" == "ON" ]]; then
|
||||
git clone --depth=1 https://github.com/urho3d/android-ndk.git $HOME/android-ndk;
|
||||
export ANDROID_NDK=$HOME/android-ndk;
|
||||
git clone --depth=1 https://github.com/taka-no-me/android-cmake.git $HOME/android-cmake;
|
||||
export TOOLCHAIN_PATH=$HOME/android-cmake/android.toolchain.cmake;
|
||||
fi
|
||||
|
||||
before_script:
|
||||
- git clone https://github.com/google/googletest.git External/googletest
|
||||
- git clone --depth=1 https://github.com/google/googletest.git External/googletest
|
||||
- ./update_glslang_sources.py
|
||||
|
||||
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
|
||||
# For Android, do release building using NDK without testing.
|
||||
# For Linux and macOS, do debug/release building with testing.
|
||||
- if [[ "$BUILD_NDK" == "ON" ]]; then
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH}
|
||||
-DANDROID_NATIVE_API_LEVEL=android-12
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DANDROID_ABI="armeabi-v7a with NEON"
|
||||
-DBUILD_TESTING=OFF ..;
|
||||
make -j4;
|
||||
else
|
||||
cmake -DCMAKE_BUILD_TYPE=${GLSLANG_BUILD_TYPE}
|
||||
-DCMAKE_INSTALL_PREFIX=`pwd`/install ..;
|
||||
make -j4 install;
|
||||
ctest --output-on-failure &&
|
||||
cd ../Test && ./runtests;
|
||||
fi
|
||||
|
||||
after_success:
|
||||
# For debug build, the generated dll has a postfix "d" in its name.
|
||||
- if [[ "${GLSLANG_BUILD_TYPE}" == "Debug" ]]; then
|
||||
export SUFFIX="d";
|
||||
else
|
||||
export SUFFIX="";
|
||||
fi
|
||||
# Create tarball for deployment
|
||||
- if [[ ${CC} == clang* && "${BUILD_NDK}" != "ON" ]]; then
|
||||
cd ../build/install;
|
||||
export TARBALL=glslang-master-${TRAVIS_OS_NAME}-${GLSLANG_BUILD_TYPE}.zip;
|
||||
zip ${TARBALL}
|
||||
bin/glslangValidator
|
||||
include/glslang/*
|
||||
include/SPIRV/*
|
||||
lib/libglslang${SUFFIX}.a
|
||||
lib/libHLSL${SUFFIX}.a
|
||||
lib/libOGLCompiler${SUFFIX}.a
|
||||
lib/libOSDependent${SUFFIX}.a
|
||||
lib/libSPIRV${SUFFIX}.a
|
||||
lib/libSPVRemapper${SUFFIX}.a
|
||||
lib/libSPIRV-Tools${SUFFIX}.a
|
||||
lib/libSPIRV-Tools-opt${SUFFIX}.a;
|
||||
fi
|
||||
|
||||
before_deploy:
|
||||
# Tag the current top of the tree as "master-tot".
|
||||
# Travis CI replies on the tag name to properly push to GitHub Releases.
|
||||
- git config --global user.name "Travis CI"
|
||||
- git config --global user.email "builds@travis-ci.org"
|
||||
- git tag -f master-tot
|
||||
- git push -q -f https://${glslangtoken}@github.com/KhronosGroup/glslang --tags
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
api_key: ${glslangtoken}
|
||||
on:
|
||||
branch: master
|
||||
condition: ${CC} == clang* && ${BUILD_NDK} != ON
|
||||
file: ${TARBALL}
|
||||
skip_cleanup: true
|
||||
overwrite: true
|
||||
|
74
3rdparty/bgfx/3rdparty/glslang/CMakeLists.txt
vendored
74
3rdparty/bgfx/3rdparty/glslang/CMakeLists.txt
vendored
@ -1,6 +1,19 @@
|
||||
cmake_minimum_required(VERSION 2.8.11)
|
||||
# increase to 3.1 once all major distributions
|
||||
# include a version of CMake >= 3.1
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
if (POLICY CMP0048)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
endif()
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
# Adhere to GNU filesystem layout conventions
|
||||
include(GNUInstallDirs)
|
||||
|
||||
option(SKIP_GLSLANG_INSTALL "Skip installation" ${SKIP_GLSLANG_INSTALL})
|
||||
if(NOT ${SKIP_GLSLANG_INSTALL})
|
||||
set(ENABLE_GLSLANG_INSTALL ON)
|
||||
endif()
|
||||
|
||||
option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" ON)
|
||||
option(ENABLE_GLSLANG_BINARIES "Builds glslangValidator and spirv-remap" ON)
|
||||
|
||||
@ -8,11 +21,15 @@ option(ENABLE_NV_EXTENSIONS "Enables support of Nvidia-specific extensions" ON)
|
||||
|
||||
option(ENABLE_HLSL "Enables HLSL input support" ON)
|
||||
|
||||
enable_testing()
|
||||
option(ENABLE_OPT "Enables spirv-opt capability if present" ON)
|
||||
|
||||
set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix")
|
||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND WIN32)
|
||||
set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "..." FORCE)
|
||||
endif()
|
||||
|
||||
project(glslang)
|
||||
# make testing optional
|
||||
include(CTest)
|
||||
|
||||
if(ENABLE_AMD_EXTENSIONS)
|
||||
add_definitions(-DAMD_EXTENSIONS)
|
||||
@ -33,42 +50,59 @@ if(WIN32)
|
||||
endif(MSVC)
|
||||
add_definitions(-DGLSLANG_OSINCLUDE_WIN32)
|
||||
elseif(UNIX)
|
||||
add_definitions(-fPIC)
|
||||
add_definitions(-DGLSLANG_OSINCLUDE_UNIX)
|
||||
else(WIN32)
|
||||
message("unknown platform")
|
||||
endif(WIN32)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
add_definitions(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs
|
||||
-Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable)
|
||||
add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over.
|
||||
add_definitions(-std=c++11)
|
||||
if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
|
||||
add_compile_options(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs
|
||||
-Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable -fno-exceptions)
|
||||
add_compile_options(-Wno-reorder) # disable this from -Wall, since it happens all over.
|
||||
elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
|
||||
add_definitions(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs
|
||||
-Wunused-parameter -Wunused-value -Wunused-variable)
|
||||
add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over.
|
||||
add_definitions(-std=c++11)
|
||||
add_compile_options(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs
|
||||
-Wunused-parameter -Wunused-value -Wunused-variable)
|
||||
add_compile_options(-Wno-reorder) # disable this from -Wall, since it happens all over.
|
||||
endif()
|
||||
|
||||
# Request C++11
|
||||
if(${CMAKE_VERSION} VERSION_LESS 3.1)
|
||||
# CMake versions before 3.1 do not understand CMAKE_CXX_STANDARD
|
||||
# remove this block once CMake >=3.1 has fixated in the ecosystem
|
||||
add_compile_options(-std=c++11)
|
||||
else()
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
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)
|
||||
if(WIN32 AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
|
||||
set_target_properties(${TARGET} PROPERTIES
|
||||
LINK_FLAGS "-static -static-libgcc -static-libstdc++")
|
||||
endif()
|
||||
endfunction(glslang_set_link_args)
|
||||
|
||||
# We depend on these for later projects, so they should come first.
|
||||
add_subdirectory(External)
|
||||
|
||||
if(NOT TARGET SPIRV-Tools-opt)
|
||||
set(ENABLE_OPT OFF)
|
||||
endif()
|
||||
|
||||
if(ENABLE_OPT)
|
||||
message(STATUS "optimizer enabled")
|
||||
add_definitions(-DENABLE_OPT)
|
||||
elseif(ENABLE_HLSL)
|
||||
message(STATUS "spirv-tools not linked - illegal SPIRV may be generated for HLSL")
|
||||
endif()
|
||||
|
||||
add_subdirectory(glslang)
|
||||
add_subdirectory(OGLCompilersDLL)
|
||||
if(ENABLE_GLSLANG_BINARIES)
|
||||
add_subdirectory(StandAlone)
|
||||
add_subdirectory(StandAlone)
|
||||
endif()
|
||||
add_subdirectory(SPIRV)
|
||||
if(ENABLE_HLSL)
|
||||
|
@ -1,34 +1,43 @@
|
||||
# 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")
|
||||
if(BUILD_TESTING)
|
||||
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()
|
||||
endif()
|
||||
|
||||
if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt)
|
||||
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools)
|
||||
set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests")
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools spirv-tools)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -2,10 +2,13 @@ set(SOURCES InitializeDll.cpp InitializeDll.h)
|
||||
|
||||
add_library(OGLCompiler STATIC ${SOURCES})
|
||||
set_property(TARGET OGLCompiler PROPERTY FOLDER glslang)
|
||||
set_property(TARGET OGLCompiler PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
if(WIN32)
|
||||
source_group("Source" FILES ${SOURCES})
|
||||
endif(WIN32)
|
||||
|
||||
install(TARGETS OGLCompiler
|
||||
ARCHIVE DESTINATION lib)
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
install(TARGETS OGLCompiler
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
@ -38,13 +38,17 @@
|
||||
|
||||
#include "InitializeDll.h"
|
||||
#include "../glslang/Include/InitializeGlobals.h"
|
||||
|
||||
#include "../glslang/Public/ShaderLang.h"
|
||||
#include "../glslang/Include/PoolAlloc.h"
|
||||
|
||||
namespace glslang {
|
||||
|
||||
OS_TLSIndex ThreadInitializeIndex = OS_INVALID_TLS_INDEX;
|
||||
|
||||
// Per-process initialization.
|
||||
// Needs to be called at least once before parsing, etc. is done.
|
||||
// Will also do thread initialization for the calling thread; other
|
||||
// threads will need to do that explicitly.
|
||||
bool InitProcess()
|
||||
{
|
||||
glslang::GetGlobalLock();
|
||||
@ -85,7 +89,9 @@ bool InitProcess()
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Per-thread scoped initialization.
|
||||
// Must be called at least once by each new thread sharing the
|
||||
// symbol tables, etc., needed to parse.
|
||||
bool InitThread()
|
||||
{
|
||||
//
|
||||
@ -99,17 +105,21 @@ bool InitThread()
|
||||
if (OS_GetTLSValue(ThreadInitializeIndex) != 0)
|
||||
return true;
|
||||
|
||||
InitializeMemoryPools();
|
||||
|
||||
if (! OS_SetTLSValue(ThreadInitializeIndex, (void *)1)) {
|
||||
assert(0 && "InitThread(): Unable to set init flag.");
|
||||
return false;
|
||||
}
|
||||
|
||||
glslang::SetThreadPoolAllocator(nullptr);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Not necessary to call this: InitThread() is reentrant, and the need
|
||||
// to do per thread tear down has been removed.
|
||||
//
|
||||
// This is kept, with memory management removed, to satisfy any exiting
|
||||
// calls to it that rely on it.
|
||||
bool DetachThread()
|
||||
{
|
||||
bool success = true;
|
||||
@ -125,14 +135,18 @@ bool DetachThread()
|
||||
assert(0 && "DetachThread(): Unable to clear init flag.");
|
||||
success = false;
|
||||
}
|
||||
|
||||
FreeGlobalPools();
|
||||
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
// Not necessary to call this: InitProcess() is reentrant.
|
||||
//
|
||||
// This is kept, with memory management removed, to satisfy any exiting
|
||||
// calls to it that rely on it.
|
||||
//
|
||||
// Users of glslang should call shFinalize() or glslang::FinalizeProcess() for
|
||||
// process-scoped memory tear down.
|
||||
bool DetachProcess()
|
||||
{
|
||||
bool success = true;
|
||||
@ -140,12 +154,8 @@ bool DetachProcess()
|
||||
if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX)
|
||||
return true;
|
||||
|
||||
ShFinalize();
|
||||
|
||||
success = DetachThread();
|
||||
|
||||
FreePoolIndex();
|
||||
|
||||
OS_FreeTLSIndex(ThreadInitializeIndex);
|
||||
ThreadInitializeIndex = OS_INVALID_TLS_INDEX;
|
||||
|
||||
|
@ -40,8 +40,8 @@ namespace glslang {
|
||||
|
||||
bool InitProcess();
|
||||
bool InitThread();
|
||||
bool DetachThread();
|
||||
bool DetachProcess();
|
||||
bool DetachThread(); // not called from standalone, perhaps other tools rely on parts of it
|
||||
bool DetachProcess(); // not called from standalone, perhaps other tools rely on parts of it
|
||||
|
||||
} // end namespace glslang
|
||||
|
||||
|
21
3rdparty/bgfx/3rdparty/glslang/README.md
vendored
21
3rdparty/bgfx/3rdparty/glslang/README.md
vendored
@ -49,9 +49,16 @@ There is also a non-shader extension
|
||||
Building
|
||||
--------
|
||||
|
||||
Instead of building manually, you can also download the binaries for your
|
||||
platform directly from the [master-tot release][master-tot-release] on GitHub.
|
||||
Those binaries are automatically uploaded by the buildbots after successful
|
||||
testing and they always reflect the current top of the tree of the master
|
||||
branch.
|
||||
|
||||
### Dependencies
|
||||
|
||||
* [CMake][cmake]: for generating compilation targets.
|
||||
* [Python 2.7][python]: for executing SPIRV-Tools scripts. (Optional if not using SPIRV-Tools.)
|
||||
* [bison][bison]: _optional_, but needed when changing the grammar (glslang.y).
|
||||
* [googletest][googletest]: _optional_, but should use if making any changes to glslang.
|
||||
|
||||
@ -74,6 +81,18 @@ cd <the directory glslang was cloned to, "External" will be a subdirectory>
|
||||
git clone https://github.com/google/googletest.git External/googletest
|
||||
```
|
||||
|
||||
If you wish to assure that SPIR-V generated from HLSL is legal for Vulkan,
|
||||
or wish to invoke -Os to reduce SPIR-V size from HLSL or GLSL, install
|
||||
spirv-tools with this:
|
||||
|
||||
```bash
|
||||
./update_glslang_sources.py
|
||||
```
|
||||
|
||||
For running the CMake GUI or Visual Studio with python dependencies, you will,
|
||||
in addition to python within the cygwin environment, need a Windows [python][python]
|
||||
installation, including selecting the `PATH` update.
|
||||
|
||||
#### 3) Configure
|
||||
|
||||
Assume the source directory is `$SOURCE_DIR` and
|
||||
@ -301,6 +320,8 @@ Basic Internal Operation
|
||||
|
||||
|
||||
[cmake]: https://cmake.org/
|
||||
[python]: https://www.python.org/
|
||||
[bison]: https://www.gnu.org/software/bison/
|
||||
[googletest]: https://github.com/google/googletest
|
||||
[bison-gnu-win32]: http://gnuwin32.sourceforge.net/packages/bison.htm
|
||||
[master-tot-release]: https://github.com/KhronosGroup/glslang/releases/tag/master-tot
|
||||
|
@ -41,17 +41,30 @@ endif(ENABLE_NV_EXTENSIONS)
|
||||
|
||||
add_library(SPIRV STATIC ${SOURCES} ${HEADERS})
|
||||
set_property(TARGET SPIRV PROPERTY FOLDER glslang)
|
||||
target_link_libraries(SPIRV glslang)
|
||||
set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
add_library(SPVRemapper STATIC ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
|
||||
set_property(TARGET SPVRemapper PROPERTY FOLDER glslang)
|
||||
set_property(TARGET SPVRemapper PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
if(ENABLE_OPT)
|
||||
target_include_directories(SPIRV
|
||||
PRIVATE ${spirv-tools_SOURCE_DIR}/include
|
||||
PRIVATE ${spirv-tools_SOURCE_DIR}/source
|
||||
)
|
||||
target_link_libraries(SPIRV glslang SPIRV-Tools-opt SPVRemapper)
|
||||
else()
|
||||
target_link_libraries(SPIRV glslang)
|
||||
endif(ENABLE_OPT)
|
||||
|
||||
if(WIN32)
|
||||
source_group("Source" FILES ${SOURCES} ${HEADERS})
|
||||
source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
|
||||
endif(WIN32)
|
||||
|
||||
install(TARGETS SPIRV SPVRemapper
|
||||
ARCHIVE DESTINATION lib)
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
install(TARGETS SPIRV SPVRemapper
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION include/SPIRV/)
|
||||
install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SPIRV/)
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
@ -28,24 +28,16 @@
|
||||
#define GLSLextAMD_H
|
||||
|
||||
enum BuiltIn;
|
||||
enum Capability;
|
||||
enum Decoration;
|
||||
enum Op;
|
||||
|
||||
static const int GLSLextAMDVersion = 100;
|
||||
static const int GLSLextAMDRevision = 2;
|
||||
static const int GLSLextAMDRevision = 6;
|
||||
|
||||
// SPV_AMD_shader_ballot
|
||||
static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot";
|
||||
|
||||
static const Op OpGroupIAddNonUniformAMD = static_cast<Op>(5000);
|
||||
static const Op OpGroupFAddNonUniformAMD = static_cast<Op>(5001);
|
||||
static const Op OpGroupFMinNonUniformAMD = static_cast<Op>(5002);
|
||||
static const Op OpGroupUMinNonUniformAMD = static_cast<Op>(5003);
|
||||
static const Op OpGroupSMinNonUniformAMD = static_cast<Op>(5004);
|
||||
static const Op OpGroupFMaxNonUniformAMD = static_cast<Op>(5005);
|
||||
static const Op OpGroupUMaxNonUniformAMD = static_cast<Op>(5006);
|
||||
static const Op OpGroupSMaxNonUniformAMD = static_cast<Op>(5007);
|
||||
|
||||
enum ShaderBallotAMD {
|
||||
ShaderBallotBadAMD = 0, // Don't use
|
||||
|
||||
@ -79,16 +71,6 @@ enum ShaderTrinaryMinMaxAMD {
|
||||
// SPV_AMD_shader_explicit_vertex_parameter
|
||||
static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter";
|
||||
|
||||
static const BuiltIn BuiltInBaryCoordNoPerspAMD = static_cast<BuiltIn>(4992);
|
||||
static const BuiltIn BuiltInBaryCoordNoPerspCentroidAMD = static_cast<BuiltIn>(4993);
|
||||
static const BuiltIn BuiltInBaryCoordNoPerspSampleAMD = static_cast<BuiltIn>(4994);
|
||||
static const BuiltIn BuiltInBaryCoordSmoothAMD = static_cast<BuiltIn>(4995);
|
||||
static const BuiltIn BuiltInBaryCoordSmoothCentroidAMD = static_cast<BuiltIn>(4996);
|
||||
static const BuiltIn BuiltInBaryCoordSmoothSampleAMD = static_cast<BuiltIn>(4997);
|
||||
static const BuiltIn BuiltInBaryCoordPullModelAMD = static_cast<BuiltIn>(4998);
|
||||
|
||||
static const Decoration DecorationExplicitInterpAMD = static_cast<Decoration>(4999);
|
||||
|
||||
enum ShaderExplicitVertexParameterAMD {
|
||||
ShaderExplicitVertexParameterBadAMD = 0, // Don't use
|
||||
|
||||
@ -113,4 +95,23 @@ enum GcnShaderAMD {
|
||||
// SPV_AMD_gpu_shader_half_float
|
||||
static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_half_float";
|
||||
|
||||
// SPV_AMD_texture_gather_bias_lod
|
||||
static const char* const E_SPV_AMD_texture_gather_bias_lod = "SPV_AMD_texture_gather_bias_lod";
|
||||
|
||||
// SPV_AMD_gpu_shader_int16
|
||||
static const char* const E_SPV_AMD_gpu_shader_int16 = "SPV_AMD_gpu_shader_int16";
|
||||
|
||||
// SPV_AMD_shader_image_load_store_lod
|
||||
static const char* const E_SPV_AMD_shader_image_load_store_lod = "SPV_AMD_shader_image_load_store_lod";
|
||||
|
||||
static const Capability CapabilityImageReadWriteLodAMD = static_cast<Capability>(5015);
|
||||
|
||||
// SPV_AMD_shader_fragment_mask
|
||||
static const char* const E_SPV_AMD_shader_fragment_mask = "SPV_AMD_shader_fragment_mask";
|
||||
|
||||
static const Capability CapabilityFragmentMaskAMD = static_cast<Capability>(5010);
|
||||
|
||||
static const Op OpFragmentMaskFetchAMD = static_cast<Op>(5011);
|
||||
static const Op OpFragmentFetchAMD = static_cast<Op>(5012);
|
||||
|
||||
#endif // #ifndef GLSLextAMD_H
|
||||
|
@ -32,12 +32,17 @@ enum Op;
|
||||
enum Capability;
|
||||
|
||||
static const int GLSLextKHRVersion = 100;
|
||||
static const int GLSLextKHRRevision = 1;
|
||||
static const int GLSLextKHRRevision = 2;
|
||||
|
||||
static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot";
|
||||
static const char* const E_SPV_KHR_subgroup_vote = "SPV_KHR_subgroup_vote";
|
||||
static const char* const E_SPV_KHR_device_group = "SPV_KHR_device_group";
|
||||
static const char* const E_SPV_KHR_multiview = "SPV_KHR_multiview";
|
||||
static const char* const E_SPV_KHR_shader_draw_parameters = "SPV_KHR_shader_draw_parameters";
|
||||
static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot";
|
||||
static const char* const E_SPV_KHR_subgroup_vote = "SPV_KHR_subgroup_vote";
|
||||
static const char* const E_SPV_KHR_device_group = "SPV_KHR_device_group";
|
||||
static const char* const E_SPV_KHR_multiview = "SPV_KHR_multiview";
|
||||
static const char* const E_SPV_KHR_shader_draw_parameters = "SPV_KHR_shader_draw_parameters";
|
||||
static const char* const E_SPV_KHR_16bit_storage = "SPV_KHR_16bit_storage";
|
||||
static const char* const E_SPV_KHR_storage_buffer_storage_class = "SPV_KHR_storage_buffer_storage_class";
|
||||
static const char* const E_SPV_KHR_post_depth_coverage = "SPV_KHR_post_depth_coverage";
|
||||
static const char* const E_SPV_EXT_shader_stencil_export = "SPV_EXT_shader_stencil_export";
|
||||
static const char* const E_SPV_EXT_shader_viewport_index_layer = "SPV_EXT_shader_viewport_index_layer";
|
||||
|
||||
#endif // #ifndef GLSLextKHR_H
|
||||
|
1023
3rdparty/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp
vendored
1023
3rdparty/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp
vendored
File diff suppressed because it is too large
Load Diff
@ -32,6 +32,8 @@
|
||||
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
// POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#pragma once
|
||||
|
||||
#if _MSC_VER >= 1900
|
||||
#pragma warning(disable : 4464) // relative include path contains '..'
|
||||
#endif
|
||||
@ -45,9 +47,20 @@
|
||||
|
||||
namespace glslang {
|
||||
|
||||
struct SpvOptions {
|
||||
SpvOptions() : generateDebugInfo(false), disableOptimizer(true),
|
||||
optimizeSize(false) { }
|
||||
bool generateDebugInfo;
|
||||
bool disableOptimizer;
|
||||
bool optimizeSize;
|
||||
};
|
||||
|
||||
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);
|
||||
int GetSpirvGeneratorVersion();
|
||||
void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector<unsigned int>& spirv,
|
||||
SpvOptions* options = nullptr);
|
||||
void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector<unsigned int>& spirv,
|
||||
spv::SpvBuildLogger* logger, SpvOptions* options = nullptr);
|
||||
void OutputSpvBin(const std::vector<unsigned int>& spirv, const char* baseName);
|
||||
void OutputSpvHex(const std::vector<unsigned int>& spirv, const char* baseName, const char* varName);
|
||||
|
||||
|
@ -51,7 +51,7 @@
|
||||
#include "spvIR.h"
|
||||
|
||||
#include <cassert>
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
|
||||
using spv::Block;
|
||||
using spv::Id;
|
||||
@ -69,33 +69,33 @@ public:
|
||||
void visit(Block* block)
|
||||
{
|
||||
assert(block);
|
||||
if (visited_[block] || delayed_[block])
|
||||
if (visited_.count(block) || delayed_.count(block))
|
||||
return;
|
||||
callback_(block);
|
||||
visited_[block] = true;
|
||||
visited_.insert(block);
|
||||
Block* mergeBlock = nullptr;
|
||||
Block* continueBlock = nullptr;
|
||||
auto mergeInst = block->getMergeInstruction();
|
||||
if (mergeInst) {
|
||||
Id mergeId = mergeInst->getIdOperand(0);
|
||||
mergeBlock = block->getParent().getParent().getInstruction(mergeId)->getBlock();
|
||||
delayed_[mergeBlock] = true;
|
||||
delayed_.insert(mergeBlock);
|
||||
if (mergeInst->getOpCode() == spv::OpLoopMerge) {
|
||||
Id continueId = mergeInst->getIdOperand(1);
|
||||
continueBlock =
|
||||
block->getParent().getParent().getInstruction(continueId)->getBlock();
|
||||
delayed_[continueBlock] = true;
|
||||
delayed_.insert(continueBlock);
|
||||
}
|
||||
}
|
||||
const auto successors = block->getSuccessors();
|
||||
for (auto it = successors.cbegin(); it != successors.cend(); ++it)
|
||||
visit(*it);
|
||||
if (continueBlock) {
|
||||
delayed_[continueBlock] = false;
|
||||
delayed_.erase(continueBlock);
|
||||
visit(continueBlock);
|
||||
}
|
||||
if (mergeBlock) {
|
||||
delayed_[mergeBlock] = false;
|
||||
delayed_.erase(mergeBlock);
|
||||
visit(mergeBlock);
|
||||
}
|
||||
}
|
||||
@ -103,7 +103,7 @@ public:
|
||||
private:
|
||||
std::function<void(Block*)> callback_;
|
||||
// Whether a block has already been visited or is being delayed.
|
||||
std::unordered_map<Block *, bool> visited_, delayed_;
|
||||
std::unordered_set<Block *> visited_, delayed_;
|
||||
};
|
||||
}
|
||||
|
||||
|
194
3rdparty/bgfx/3rdparty/glslang/SPIRV/SPVRemapper.cpp
vendored
194
3rdparty/bgfx/3rdparty/glslang/SPIRV/SPVRemapper.cpp
vendored
@ -135,6 +135,9 @@ namespace spv {
|
||||
const unsigned typeStart = idPos(id);
|
||||
const spv::Op opCode = asOpCode(typeStart);
|
||||
|
||||
if (errorLatch)
|
||||
return 0;
|
||||
|
||||
switch (opCode) {
|
||||
case spv::OpTypeInt: // fall through...
|
||||
case spv::OpTypeFloat: return (spv[typeStart+2]+31)/32;
|
||||
@ -148,8 +151,10 @@ namespace spv {
|
||||
unsigned spirvbin_t::idTypeSizeInWords(spv::Id id) const
|
||||
{
|
||||
const auto tid_it = idTypeSizeMap.find(id);
|
||||
if (tid_it == idTypeSizeMap.end())
|
||||
if (tid_it == idTypeSizeMap.end()) {
|
||||
error("type size for ID not found");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return tid_it->second;
|
||||
}
|
||||
@ -215,14 +220,19 @@ namespace spv {
|
||||
bool spirvbin_t::isConstOp(spv::Op opCode) const
|
||||
{
|
||||
switch (opCode) {
|
||||
case spv::OpConstantNull: error("unimplemented constant type");
|
||||
case spv::OpConstantSampler: error("unimplemented constant type");
|
||||
case spv::OpConstantNull:
|
||||
case spv::OpConstantSampler:
|
||||
error("unimplemented constant type");
|
||||
return true;
|
||||
|
||||
case spv::OpConstantTrue:
|
||||
case spv::OpConstantFalse:
|
||||
case spv::OpConstantComposite:
|
||||
case spv::OpConstant: return true;
|
||||
default: return false;
|
||||
case spv::OpConstant:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -248,19 +258,31 @@ namespace spv {
|
||||
{
|
||||
assert(id != spv::NoResult && newId != spv::NoResult);
|
||||
|
||||
if (id > bound()) {
|
||||
error(std::string("ID out of range: ") + std::to_string(id));
|
||||
return spirvbin_t::unused;
|
||||
}
|
||||
|
||||
if (id >= idMapL.size())
|
||||
idMapL.resize(id+1, unused);
|
||||
|
||||
if (newId != unmapped && newId != unused) {
|
||||
if (isOldIdUnused(id))
|
||||
if (isOldIdUnused(id)) {
|
||||
error(std::string("ID unused in module: ") + std::to_string(id));
|
||||
return spirvbin_t::unused;
|
||||
}
|
||||
|
||||
if (!isOldIdUnmapped(id))
|
||||
if (!isOldIdUnmapped(id)) {
|
||||
error(std::string("ID already mapped: ") + std::to_string(id) + " -> "
|
||||
+ std::to_string(localId(id)));
|
||||
+ std::to_string(localId(id)));
|
||||
|
||||
if (isNewIdMapped(newId))
|
||||
return spirvbin_t::unused;
|
||||
}
|
||||
|
||||
if (isNewIdMapped(newId)) {
|
||||
error(std::string("ID already used in module: ") + std::to_string(newId));
|
||||
return spirvbin_t::unused;
|
||||
}
|
||||
|
||||
msg(4, 4, std::string("map: ") + std::to_string(id) + " -> " + std::to_string(newId));
|
||||
setMapped(newId);
|
||||
@ -294,6 +316,10 @@ namespace spv {
|
||||
process(inst_fn_nop, // ignore instructions
|
||||
[this](spv::Id& id) {
|
||||
id = localId(id);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
assert(id != unused && id != unmapped);
|
||||
}
|
||||
);
|
||||
@ -312,14 +338,22 @@ namespace spv {
|
||||
continue;
|
||||
|
||||
// Find a new mapping for any used but unmapped IDs
|
||||
if (isOldIdUnmapped(id))
|
||||
if (isOldIdUnmapped(id)) {
|
||||
localId(id, unusedId = nextUnusedId(unusedId));
|
||||
if (errorLatch)
|
||||
return;
|
||||
}
|
||||
|
||||
if (isOldIdUnmapped(id))
|
||||
if (isOldIdUnmapped(id)) {
|
||||
error(std::string("old ID not mapped: ") + std::to_string(id));
|
||||
return;
|
||||
}
|
||||
|
||||
// Track max bound
|
||||
maxBound = std::max(maxBound, localId(id) + 1);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
}
|
||||
|
||||
bound(maxBound); // reset header ID bound to as big as it now needs to be
|
||||
@ -401,6 +435,9 @@ namespace spv {
|
||||
if (typeId != spv::NoResult) {
|
||||
const unsigned idTypeSize = typeSizeInWords(typeId);
|
||||
|
||||
if (errorLatch)
|
||||
return false;
|
||||
|
||||
if (idTypeSize != 0)
|
||||
idTypeSizeMap[resultId] = idTypeSize;
|
||||
}
|
||||
@ -416,17 +453,26 @@ namespace spv {
|
||||
} else if (opCode == spv::Op::OpEntryPoint) {
|
||||
entryPoint = asId(start + 2);
|
||||
} else if (opCode == spv::Op::OpFunction) {
|
||||
if (fnStart != 0)
|
||||
if (fnStart != 0) {
|
||||
error("nested function found");
|
||||
return false;
|
||||
}
|
||||
|
||||
fnStart = start;
|
||||
fnRes = asId(start + 2);
|
||||
} else if (opCode == spv::Op::OpFunctionEnd) {
|
||||
assert(fnRes != spv::NoResult);
|
||||
if (fnStart == 0)
|
||||
if (fnStart == 0) {
|
||||
error("function end without function start");
|
||||
return false;
|
||||
}
|
||||
|
||||
fnPos[fnRes] = range_t(fnStart, start + asWordCount(start));
|
||||
fnStart = 0;
|
||||
} else if (isConstOp(opCode)) {
|
||||
if (errorLatch)
|
||||
return false;
|
||||
|
||||
assert(asId(start + 2) != spv::NoResult);
|
||||
typeConstPos.insert(start);
|
||||
} else if (isTypeOp(opCode)) {
|
||||
@ -446,29 +492,37 @@ namespace spv {
|
||||
{
|
||||
msg(2, 2, std::string("validating: "));
|
||||
|
||||
if (spv.size() < header_size)
|
||||
if (spv.size() < header_size) {
|
||||
error("file too short: ");
|
||||
return;
|
||||
}
|
||||
|
||||
if (magic() != spv::MagicNumber)
|
||||
if (magic() != spv::MagicNumber) {
|
||||
error("bad magic number");
|
||||
return;
|
||||
}
|
||||
|
||||
// field 1 = version
|
||||
// field 2 = generator magic
|
||||
// field 3 = result <id> bound
|
||||
|
||||
if (schemaNum() != 0)
|
||||
if (schemaNum() != 0) {
|
||||
error("bad schema, must be 0");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
int spirvbin_t::processInstruction(unsigned word, instfn_t instFn, idfn_t idFn)
|
||||
{
|
||||
const auto instructionStart = word;
|
||||
const unsigned wordCount = asWordCount(instructionStart);
|
||||
const spv::Op opCode = asOpCode(instructionStart);
|
||||
const int nextInst = word++ + wordCount;
|
||||
spv::Op opCode = asOpCode(instructionStart);
|
||||
|
||||
if (nextInst > int(spv.size()))
|
||||
if (nextInst > int(spv.size())) {
|
||||
error("spir instruction terminated too early");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Base for computing number of operands; will be updated as more is learned
|
||||
unsigned numOperands = wordCount - 1;
|
||||
@ -506,6 +560,18 @@ namespace spv {
|
||||
|
||||
// Store IDs from instruction in our map
|
||||
for (int op = 0; numOperands > 0; ++op, --numOperands) {
|
||||
// SpecConstantOp is special: it includes the operands of another opcode which is
|
||||
// given as a literal in the 3rd word. We will switch over to pretending that the
|
||||
// opcode being processed is the literal opcode value of the SpecConstantOp. See the
|
||||
// SPIRV spec for details. This way we will handle IDs and literals as appropriate for
|
||||
// the embedded op.
|
||||
if (opCode == spv::OpSpecConstantOp) {
|
||||
if (op == 0) {
|
||||
opCode = asOpCode(word++); // this is the opcode embedded in the SpecConstantOp.
|
||||
--numOperands;
|
||||
}
|
||||
}
|
||||
|
||||
switch (spv::InstructionDesc[opCode].operands.getClass(op)) {
|
||||
case spv::OperandId:
|
||||
case spv::OperandScope:
|
||||
@ -538,6 +604,9 @@ namespace spv {
|
||||
const unsigned literalSize = idTypeSizeInWords(idBuffer[literalSizePos]);
|
||||
const unsigned numLiteralIdPairs = (nextInst-word) / (1+literalSize);
|
||||
|
||||
if (errorLatch)
|
||||
return -1;
|
||||
|
||||
for (unsigned arg=0; arg<numLiteralIdPairs; ++arg) {
|
||||
word += literalSize; // literal
|
||||
idFn(asId(word++)); // label
|
||||
@ -614,9 +683,13 @@ namespace spv {
|
||||
// basic parsing and InstructionDesc table borrowed from SpvDisassemble.cpp...
|
||||
unsigned nextInst = unsigned(spv.size());
|
||||
|
||||
for (unsigned word = begin; word < end; word = nextInst)
|
||||
for (unsigned word = begin; word < end; word = nextInst) {
|
||||
nextInst = processInstruction(word, instFn, idFn);
|
||||
|
||||
if (errorLatch)
|
||||
return *this;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
@ -631,8 +704,11 @@ namespace spv {
|
||||
for (const char c : name.first)
|
||||
hashval = hashval * 1009 + c;
|
||||
|
||||
if (isOldIdUnmapped(name.second))
|
||||
if (isOldIdUnmapped(name.second)) {
|
||||
localId(name.second, nextUnusedId(hashval % softTypeIdLimit + firstMappedID));
|
||||
if (errorLatch)
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -654,6 +730,9 @@ namespace spv {
|
||||
[&](spv::Op, unsigned start) { instPos.push_back(start); return true; },
|
||||
op_fn_nop);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
// Window size for context-sensitive canonicalization values
|
||||
// Empirical best size from a single data set. TODO: Would be a good tunable.
|
||||
// We essentially perform a little convolution around each instruction,
|
||||
@ -689,8 +768,12 @@ namespace spv {
|
||||
hashval = hashval * 30103 + asOpCodeHash(instPos[i]); // 30103 = semiarbitrary prime
|
||||
}
|
||||
|
||||
if (isOldIdUnmapped(resId))
|
||||
if (isOldIdUnmapped(resId)) {
|
||||
localId(resId, nextUnusedId(hashval % softTypeIdLimit + firstMappedID));
|
||||
if (errorLatch)
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -783,6 +866,9 @@ namespace spv {
|
||||
[&](spv::Id& id) { if (idMap.find(id) != idMap.end()) id = idMap[id]; }
|
||||
);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
// EXPERIMENTAL: Implicit output stores
|
||||
fnLocalVars.clear();
|
||||
idMap.clear();
|
||||
@ -803,11 +889,17 @@ namespace spv {
|
||||
},
|
||||
op_fn_nop);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
process(
|
||||
inst_fn_nop,
|
||||
[&](spv::Id& id) { if (idMap.find(id) != idMap.end()) id = idMap[id]; }
|
||||
);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
strip(); // strip out data we decided to eliminate
|
||||
}
|
||||
|
||||
@ -907,6 +999,9 @@ namespace spv {
|
||||
}
|
||||
);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
process(
|
||||
[&](spv::Op opCode, unsigned start) {
|
||||
if (opCode == spv::OpLoad && fnLocalVars.count(asId(start+3)) > 0)
|
||||
@ -915,6 +1010,9 @@ namespace spv {
|
||||
},
|
||||
op_fn_nop);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
// Chase replacements to their origins, in case there is a chain such as:
|
||||
// 2 = store 1
|
||||
// 3 = load 2
|
||||
@ -948,6 +1046,9 @@ namespace spv {
|
||||
}
|
||||
);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
strip(); // strip out data we decided to eliminate
|
||||
}
|
||||
|
||||
@ -991,6 +1092,9 @@ namespace spv {
|
||||
fn->second.first,
|
||||
fn->second.second);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
fn = fnPos.erase(fn);
|
||||
} else ++fn;
|
||||
}
|
||||
@ -1023,6 +1127,9 @@ namespace spv {
|
||||
[&](spv::Id& id) { if (varUseCount[id]) ++varUseCount[id]; }
|
||||
);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
// Remove single-use function variables + associated decorations and names
|
||||
process(
|
||||
[&](spv::Op opCode, unsigned start) {
|
||||
@ -1064,6 +1171,9 @@ namespace spv {
|
||||
[&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; }
|
||||
);
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
// Remove single reference types
|
||||
for (const auto typeStart : typeConstPos) {
|
||||
const spv::Id typeId = asTypeConstId(typeStart);
|
||||
@ -1073,6 +1183,9 @@ namespace spv {
|
||||
stripInst(typeStart);
|
||||
}
|
||||
}
|
||||
|
||||
if (errorLatch)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1151,8 +1264,10 @@ namespace spv {
|
||||
unsigned spirvbin_t::idPos(spv::Id id) const
|
||||
{
|
||||
const auto tid_it = idPosR.find(id);
|
||||
if (tid_it == idPosR.end())
|
||||
if (tid_it == idPosR.end()) {
|
||||
error("ID not found");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return tid_it->second;
|
||||
}
|
||||
@ -1251,8 +1366,14 @@ namespace spv {
|
||||
const spv::Id resId = asTypeConstId(typeStart);
|
||||
const std::uint32_t hashval = hashType(typeStart);
|
||||
|
||||
if (isOldIdUnmapped(resId))
|
||||
if (errorLatch)
|
||||
return;
|
||||
|
||||
if (isOldIdUnmapped(resId)) {
|
||||
localId(resId, nextUnusedId(hashval % softTypeIdLimit + firstMappedID));
|
||||
if (errorLatch)
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1271,7 +1392,7 @@ namespace spv {
|
||||
|
||||
int strippedPos = 0;
|
||||
for (unsigned word = 0; word < unsigned(spv.size()); ++word) {
|
||||
if (strip_it != stripRange.end() && word >= strip_it->second)
|
||||
while (strip_it != stripRange.end() && word >= strip_it->second)
|
||||
++strip_it;
|
||||
|
||||
if (strip_it == stripRange.end() || word < strip_it->first || word >= strip_it->second)
|
||||
@ -1298,24 +1419,49 @@ namespace spv {
|
||||
msg(3, 4, std::string("ID bound: ") + std::to_string(bound()));
|
||||
|
||||
if (options & STRIP) stripDebug();
|
||||
if (errorLatch) return;
|
||||
|
||||
strip(); // strip out data we decided to eliminate
|
||||
if (errorLatch) return;
|
||||
|
||||
if (options & OPT_LOADSTORE) optLoadStore();
|
||||
if (errorLatch) return;
|
||||
|
||||
if (options & OPT_FWD_LS) forwardLoadStores();
|
||||
if (errorLatch) return;
|
||||
|
||||
if (options & DCE_FUNCS) dceFuncs();
|
||||
if (errorLatch) return;
|
||||
|
||||
if (options & DCE_VARS) dceVars();
|
||||
if (errorLatch) return;
|
||||
|
||||
if (options & DCE_TYPES) dceTypes();
|
||||
if (errorLatch) return;
|
||||
|
||||
strip(); // strip out data we decided to eliminate
|
||||
if (errorLatch) return;
|
||||
|
||||
stripDeadRefs(); // remove references to things we DCEed
|
||||
if (errorLatch) return;
|
||||
|
||||
// after the last strip, we must clean any debug info referring to now-deleted data
|
||||
|
||||
if (options & MAP_TYPES) mapTypeConst();
|
||||
if (errorLatch) return;
|
||||
|
||||
if (options & MAP_NAMES) mapNames();
|
||||
if (errorLatch) return;
|
||||
|
||||
if (options & MAP_FUNCS) mapFnBodies();
|
||||
if (errorLatch) return;
|
||||
|
||||
if (options & MAP_ALL) {
|
||||
mapRemainder(); // map any unmapped IDs
|
||||
if (errorLatch) return;
|
||||
|
||||
applyMap(); // Now remap each shader to the new IDs we've come up with
|
||||
if (errorLatch) return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <cstdlib>
|
||||
#include <exception>
|
||||
|
||||
namespace spv {
|
||||
|
||||
@ -111,7 +112,9 @@ namespace spv {
|
||||
class spirvbin_t : public spirvbin_base_t
|
||||
{
|
||||
public:
|
||||
spirvbin_t(int verbose = 0) : entryPoint(spv::NoResult), largestNewId(0), verbose(verbose) { }
|
||||
spirvbin_t(int verbose = 0) : entryPoint(spv::NoResult), largestNewId(0), verbose(verbose), errorLatch(false)
|
||||
{ }
|
||||
|
||||
virtual ~spirvbin_t() { }
|
||||
|
||||
// remap on an existing binary in memory
|
||||
@ -165,7 +168,7 @@ private:
|
||||
typedef std::unordered_map<spv::Id, unsigned> typesize_map_t;
|
||||
|
||||
// handle error
|
||||
void error(const std::string& txt) const { errorHandler(txt); }
|
||||
void error(const std::string& txt) const { errorLatch = true; errorHandler(txt); }
|
||||
|
||||
bool isConstOp(spv::Op opCode) const;
|
||||
bool isTypeOp(spv::Op opCode) const;
|
||||
@ -286,6 +289,11 @@ private:
|
||||
std::uint32_t options;
|
||||
int verbose; // verbosity level
|
||||
|
||||
// Error latch: this is set if the error handler is ever executed. It would be better to
|
||||
// use a try/catch block and throw, but that's not desired for certain environments, so
|
||||
// this is the alternative.
|
||||
mutable bool errorLatch;
|
||||
|
||||
static errorfn_t errorHandler;
|
||||
static logfn_t logHandler;
|
||||
};
|
||||
|
139
3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.cpp
vendored
139
3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.cpp
vendored
@ -59,6 +59,9 @@ namespace spv {
|
||||
Builder::Builder(unsigned int magicNumber, SpvBuildLogger* buildLogger) :
|
||||
source(SourceLanguageUnknown),
|
||||
sourceVersion(0),
|
||||
sourceFileStringId(NoResult),
|
||||
currentLine(0),
|
||||
emitOpLines(false),
|
||||
addressModel(AddressingModelLogical),
|
||||
memoryModel(MemoryModelGLSL450),
|
||||
builderNumber(magicNumber),
|
||||
@ -84,6 +87,26 @@ Id Builder::import(const char* name)
|
||||
return import->getResultId();
|
||||
}
|
||||
|
||||
// Emit an OpLine if we've been asked to emit OpLines and the line number
|
||||
// has changed since the last time, and is a valid line number.
|
||||
void Builder::setLine(int lineNum)
|
||||
{
|
||||
if (lineNum != 0 && lineNum != currentLine) {
|
||||
currentLine = lineNum;
|
||||
if (emitOpLines)
|
||||
addLine(sourceFileStringId, currentLine, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void Builder::addLine(Id fileName, int lineNum, int column)
|
||||
{
|
||||
Instruction* line = new Instruction(OpLine);
|
||||
line->addIdOperand(fileName);
|
||||
line->addImmediateOperand(lineNum);
|
||||
line->addImmediateOperand(column);
|
||||
buildPoint->addInstruction(std::unique_ptr<Instruction>(line));
|
||||
}
|
||||
|
||||
// For creating new groupedTypes (will return old type if the requested one was already made).
|
||||
Id Builder::makeVoidType()
|
||||
{
|
||||
@ -379,6 +402,8 @@ Id Builder::makeFunctionType(Id returnType, const std::vector<Id>& paramTypes)
|
||||
|
||||
Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format)
|
||||
{
|
||||
assert(sampled == 1 || sampled == 2);
|
||||
|
||||
// try to find it
|
||||
Instruction* type;
|
||||
for (int t = 0; t < (int)groupedTypes[OpTypeImage].size(); ++t) {
|
||||
@ -410,27 +435,27 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo
|
||||
// deal with capabilities
|
||||
switch (dim) {
|
||||
case DimBuffer:
|
||||
if (sampled)
|
||||
if (sampled == 1)
|
||||
addCapability(CapabilitySampledBuffer);
|
||||
else
|
||||
addCapability(CapabilityImageBuffer);
|
||||
break;
|
||||
case Dim1D:
|
||||
if (sampled)
|
||||
if (sampled == 1)
|
||||
addCapability(CapabilitySampled1D);
|
||||
else
|
||||
addCapability(CapabilityImage1D);
|
||||
break;
|
||||
case DimCube:
|
||||
if (arrayed) {
|
||||
if (sampled)
|
||||
if (sampled == 1)
|
||||
addCapability(CapabilitySampledCubeArray);
|
||||
else
|
||||
addCapability(CapabilityImageCubeArray);
|
||||
}
|
||||
break;
|
||||
case DimRect:
|
||||
if (sampled)
|
||||
if (sampled == 1)
|
||||
addCapability(CapabilitySampledRect);
|
||||
else
|
||||
addCapability(CapabilityImageRect);
|
||||
@ -443,10 +468,14 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo
|
||||
}
|
||||
|
||||
if (ms) {
|
||||
if (arrayed)
|
||||
addCapability(CapabilityImageMSArray);
|
||||
if (! sampled)
|
||||
addCapability(CapabilityStorageImageMultisample);
|
||||
if (sampled == 2) {
|
||||
// Images used with subpass data are not storage
|
||||
// images, so don't require the capability for them.
|
||||
if (dim != Dim::DimSubpassData)
|
||||
addCapability(CapabilityStorageImageMultisample);
|
||||
if (arrayed)
|
||||
addCapability(CapabilityImageMSArray);
|
||||
}
|
||||
}
|
||||
|
||||
return type->getResultId();
|
||||
@ -928,17 +957,6 @@ void Builder::addMemberName(Id id, int memberNumber, const char* string)
|
||||
names.push_back(std::unique_ptr<Instruction>(name));
|
||||
}
|
||||
|
||||
void Builder::addLine(Id target, Id fileName, int lineNum, int column)
|
||||
{
|
||||
Instruction* line = new Instruction(OpLine);
|
||||
line->addIdOperand(target);
|
||||
line->addIdOperand(fileName);
|
||||
line->addImmediateOperand(lineNum);
|
||||
line->addImmediateOperand(column);
|
||||
|
||||
lines.push_back(std::unique_ptr<Instruction>(line));
|
||||
}
|
||||
|
||||
void Builder::addDecoration(Id id, Decoration decoration, int num)
|
||||
{
|
||||
if (decoration == spv::DecorationMax)
|
||||
@ -971,16 +989,16 @@ Function* Builder::makeEntryPoint(const char* entryPoint)
|
||||
|
||||
Block* entry;
|
||||
std::vector<Id> params;
|
||||
std::vector<Decoration> precisions;
|
||||
std::vector<std::vector<Decoration>> decorations;
|
||||
|
||||
entryPointFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, precisions, &entry);
|
||||
entryPointFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, decorations, &entry);
|
||||
|
||||
return entryPointFunction;
|
||||
}
|
||||
|
||||
// Comments in header
|
||||
Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const char* name,
|
||||
const std::vector<Id>& paramTypes, const std::vector<Decoration>& precisions, Block **entry)
|
||||
const std::vector<Id>& paramTypes, const std::vector<std::vector<Decoration>>& decorations, Block **entry)
|
||||
{
|
||||
// Make the function and initial instructions in it
|
||||
Id typeId = makeFunctionType(returnType, paramTypes);
|
||||
@ -989,8 +1007,10 @@ Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const
|
||||
|
||||
// Set up the precisions
|
||||
setPrecision(function->getId(), precision);
|
||||
for (unsigned p = 0; p < (unsigned)precisions.size(); ++p)
|
||||
setPrecision(firstParamId + p, precisions[p]);
|
||||
for (unsigned p = 0; p < (unsigned)decorations.size(); ++p) {
|
||||
for (int d = 0; d < (int)decorations[p].size(); ++d)
|
||||
addDecoration(firstParamId + p, decorations[p][d]);
|
||||
}
|
||||
|
||||
// CFG
|
||||
if (entry) {
|
||||
@ -1997,9 +2017,10 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector<Id>&
|
||||
}
|
||||
|
||||
// Comments in header
|
||||
Builder::If::If(Id cond, Builder& gb) :
|
||||
Builder::If::If(Id cond, unsigned int ctrl, Builder& gb) :
|
||||
builder(gb),
|
||||
condition(cond),
|
||||
control(ctrl),
|
||||
elseBlock(0)
|
||||
{
|
||||
function = &builder.getBuildPoint()->getParent();
|
||||
@ -2040,7 +2061,7 @@ void Builder::If::makeEndIf()
|
||||
|
||||
// Go back to the headerBlock and make the flow control split
|
||||
builder.setBuildPoint(headerBlock);
|
||||
builder.createSelectionMerge(mergeBlock, SelectionControlMaskNone);
|
||||
builder.createSelectionMerge(mergeBlock, control);
|
||||
if (elseBlock)
|
||||
builder.createConditionalBranch(condition, thenBlock, elseBlock);
|
||||
else
|
||||
@ -2052,7 +2073,7 @@ void Builder::If::makeEndIf()
|
||||
}
|
||||
|
||||
// Comments in header
|
||||
void Builder::makeSwitch(Id selector, int numSegments, const std::vector<int>& caseValues,
|
||||
void Builder::makeSwitch(Id selector, unsigned int control, int numSegments, const std::vector<int>& caseValues,
|
||||
const std::vector<int>& valueIndexToSegment, int defaultSegment,
|
||||
std::vector<Block*>& segmentBlocks)
|
||||
{
|
||||
@ -2065,7 +2086,7 @@ void Builder::makeSwitch(Id selector, int numSegments, const std::vector<int>& c
|
||||
Block* mergeBlock = new Block(getUniqueId(), function);
|
||||
|
||||
// make and insert the switch's selection-merge instruction
|
||||
createSelectionMerge(mergeBlock, SelectionControlMaskNone);
|
||||
createSelectionMerge(mergeBlock, control);
|
||||
|
||||
// make the switch instruction
|
||||
Instruction* switchInst = new Instruction(NoResult, NoType, OpSwitch);
|
||||
@ -2411,12 +2432,9 @@ void Builder::dump(std::vector<unsigned int>& out) const
|
||||
dumpInstructions(out, executionModes);
|
||||
|
||||
// Debug instructions
|
||||
if (source != SourceLanguageUnknown) {
|
||||
Instruction sourceInst(0, 0, OpSource);
|
||||
sourceInst.addImmediateOperand(source);
|
||||
sourceInst.addImmediateOperand(sourceVersion);
|
||||
sourceInst.dump(out);
|
||||
}
|
||||
dumpInstructions(out, strings);
|
||||
dumpModuleProcesses(out);
|
||||
dumpSourceInstructions(out);
|
||||
for (int e = 0; e < (int)sourceExtensions.size(); ++e) {
|
||||
Instruction sourceExtInst(0, 0, OpSourceExtension);
|
||||
sourceExtInst.addStringOperand(sourceExtensions[e]);
|
||||
@ -2574,6 +2592,48 @@ void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* els
|
||||
elseBlock->addPredecessor(buildPoint);
|
||||
}
|
||||
|
||||
// OpSource
|
||||
// [OpSourceContinued]
|
||||
// ...
|
||||
void Builder::dumpSourceInstructions(std::vector<unsigned int>& out) const
|
||||
{
|
||||
const int maxWordCount = 0xFFFF;
|
||||
const int opSourceWordCount = 4;
|
||||
const int nonNullBytesPerInstruction = 4 * (maxWordCount - opSourceWordCount) - 1;
|
||||
|
||||
if (source != SourceLanguageUnknown) {
|
||||
// OpSource Language Version File Source
|
||||
Instruction sourceInst(NoResult, NoType, OpSource);
|
||||
sourceInst.addImmediateOperand(source);
|
||||
sourceInst.addImmediateOperand(sourceVersion);
|
||||
// File operand
|
||||
if (sourceFileStringId != NoResult) {
|
||||
sourceInst.addIdOperand(sourceFileStringId);
|
||||
// Source operand
|
||||
if (sourceText.size() > 0) {
|
||||
int nextByte = 0;
|
||||
std::string subString;
|
||||
while ((int)sourceText.size() - nextByte > 0) {
|
||||
subString = sourceText.substr(nextByte, nonNullBytesPerInstruction);
|
||||
if (nextByte == 0) {
|
||||
// OpSource
|
||||
sourceInst.addStringOperand(subString.c_str());
|
||||
sourceInst.dump(out);
|
||||
} else {
|
||||
// OpSourcContinued
|
||||
Instruction sourceContinuedInst(OpSourceContinued);
|
||||
sourceContinuedInst.addStringOperand(subString.c_str());
|
||||
sourceContinuedInst.dump(out);
|
||||
}
|
||||
nextByte += nonNullBytesPerInstruction;
|
||||
}
|
||||
} else
|
||||
sourceInst.dump(out);
|
||||
} else
|
||||
sourceInst.dump(out);
|
||||
}
|
||||
}
|
||||
|
||||
void Builder::dumpInstructions(std::vector<unsigned int>& out, const std::vector<std::unique_ptr<Instruction> >& instructions) const
|
||||
{
|
||||
for (int i = 0; i < (int)instructions.size(); ++i) {
|
||||
@ -2581,4 +2641,15 @@ void Builder::dumpInstructions(std::vector<unsigned int>& out, const std::vector
|
||||
}
|
||||
}
|
||||
|
||||
void Builder::dumpModuleProcesses(std::vector<unsigned int>& out) const
|
||||
{
|
||||
for (int i = 0; i < (int)moduleProcesses.size(); ++i) {
|
||||
// TODO: switch this out for the 1.1 headers
|
||||
const spv::Op OpModuleProcessed = (spv::Op)330;
|
||||
Instruction moduleProcessed(OpModuleProcessed);
|
||||
moduleProcessed.addStringOperand(moduleProcesses[i]);
|
||||
moduleProcessed.dump(out);
|
||||
}
|
||||
}
|
||||
|
||||
}; // end spv namespace
|
||||
|
@ -70,7 +70,17 @@ public:
|
||||
source = lang;
|
||||
sourceVersion = version;
|
||||
}
|
||||
void setSourceFile(const std::string& file)
|
||||
{
|
||||
Instruction* fileString = new Instruction(getUniqueId(), NoType, OpString);
|
||||
fileString->addStringOperand(file.c_str());
|
||||
sourceFileStringId = fileString->getResultId();
|
||||
strings.push_back(std::unique_ptr<Instruction>(fileString));
|
||||
}
|
||||
void setSourceText(const std::string& text) { sourceText = text; }
|
||||
void addSourceExtension(const char* ext) { sourceExtensions.push_back(ext); }
|
||||
void addModuleProcessed(const std::string& p) { moduleProcesses.push_back(p.c_str()); }
|
||||
void setEmitOpLines() { emitOpLines = true; }
|
||||
void addExtension(const char* ext) { extensions.insert(ext); }
|
||||
Id import(const char*);
|
||||
void setMemoryModel(spv::AddressingModel addr, spv::MemoryModel mem)
|
||||
@ -92,6 +102,12 @@ public:
|
||||
return id;
|
||||
}
|
||||
|
||||
// Log the current line, and if different than the last one,
|
||||
// issue a new OpLine, using the current file name.
|
||||
void setLine(int line);
|
||||
// Low-level OpLine. See setLine() for a layered helper.
|
||||
void addLine(Id fileName, int line, int column);
|
||||
|
||||
// For creating new types (will return old type if the requested one was already made).
|
||||
Id makeVoidType();
|
||||
Id makeBoolType();
|
||||
@ -134,6 +150,9 @@ public:
|
||||
bool isSampledImage(Id resultId) const { return isSampledImageType(getTypeId(resultId)); }
|
||||
|
||||
bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); }
|
||||
bool isIntType(Id typeId) const { return getTypeClass(typeId) == OpTypeInt && module.getInstruction(typeId)->getImmediateOperand(1) != 0; }
|
||||
bool isUintType(Id typeId) const { return getTypeClass(typeId) == OpTypeInt && module.getInstruction(typeId)->getImmediateOperand(1) == 0; }
|
||||
bool isFloatType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat; }
|
||||
bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; }
|
||||
bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; }
|
||||
bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; }
|
||||
@ -153,6 +172,13 @@ public:
|
||||
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }
|
||||
StorageClass getStorageClass(Id resultId) const { return getTypeStorageClass(getTypeId(resultId)); }
|
||||
|
||||
int getScalarTypeWidth(Id typeId) const
|
||||
{
|
||||
Id scalarTypeId = getScalarTypeId(typeId);
|
||||
assert(getTypeClass(scalarTypeId) == OpTypeInt || getTypeClass(scalarTypeId) == OpTypeFloat);
|
||||
return module.getInstruction(scalarTypeId)->getImmediateOperand(0);
|
||||
}
|
||||
|
||||
int getTypeNumColumns(Id typeId) const
|
||||
{
|
||||
assert(isMatrixType(typeId));
|
||||
@ -189,6 +215,10 @@ public:
|
||||
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); }
|
||||
#ifdef AMD_EXTENSIONS
|
||||
Id makeInt16Constant(short i, bool specConstant = false) { return makeIntConstant(makeIntType(16), (unsigned)((unsigned short)i), specConstant); }
|
||||
Id makeUint16Constant(unsigned short u, bool specConstant = false) { return makeIntConstant(makeUintType(16), (unsigned)u, specConstant); }
|
||||
#endif
|
||||
Id makeFloatConstant(float f, bool specConstant = false);
|
||||
Id makeDoubleConstant(double d, bool specConstant = false);
|
||||
#ifdef AMD_EXTENSIONS
|
||||
@ -203,7 +233,6 @@ public:
|
||||
void addExecutionMode(Function*, ExecutionMode mode, int value1 = -1, int value2 = -1, int value3 = -1);
|
||||
void addName(Id, const char* name);
|
||||
void addMemberName(Id, int member, const char* name);
|
||||
void addLine(Id target, Id fileName, int line, int column);
|
||||
void addDecoration(Id, Decoration, int num = -1);
|
||||
void addMemberDecoration(Id, unsigned int member, Decoration, int num = -1);
|
||||
|
||||
@ -219,7 +248,7 @@ public:
|
||||
// Return the function, pass back the entry.
|
||||
// The returned pointer is only valid for the lifetime of this builder.
|
||||
Function* makeFunctionEntry(Decoration precision, Id returnType, const char* name, const std::vector<Id>& paramTypes,
|
||||
const std::vector<Decoration>& precisions, Block **entry = 0);
|
||||
const std::vector<std::vector<Decoration>>& precisions, Block **entry = 0);
|
||||
|
||||
// Create a return. An 'implicit' return is one not appearing in the source
|
||||
// code. In the case of an implicit return, no post-return block is inserted.
|
||||
@ -357,7 +386,7 @@ public:
|
||||
// Helper to use for building nested control flow with if-then-else.
|
||||
class If {
|
||||
public:
|
||||
If(Id condition, Builder& builder);
|
||||
If(Id condition, unsigned int ctrl, Builder& builder);
|
||||
~If() {}
|
||||
|
||||
void makeBeginElse();
|
||||
@ -369,6 +398,7 @@ public:
|
||||
|
||||
Builder& builder;
|
||||
Id condition;
|
||||
unsigned int control;
|
||||
Function* function;
|
||||
Block* headerBlock;
|
||||
Block* thenBlock;
|
||||
@ -388,7 +418,7 @@ public:
|
||||
// Returns the right set of basic blocks to start each code segment with, so that the caller's
|
||||
// recursion stack can hold the memory for it.
|
||||
//
|
||||
void makeSwitch(Id condition, int numSegments, const std::vector<int>& caseValues,
|
||||
void makeSwitch(Id condition, unsigned int control, int numSegments, const std::vector<int>& caseValues,
|
||||
const std::vector<int>& valueToSegment, int defaultSegment, std::vector<Block*>& segmentBB); // return argument
|
||||
|
||||
// Add a branch to the innermost switch's merge block.
|
||||
@ -551,12 +581,19 @@ public:
|
||||
void simplifyAccessChainSwizzle();
|
||||
void createAndSetNoPredecessorBlock(const char*);
|
||||
void createSelectionMerge(Block* mergeBlock, unsigned int control);
|
||||
void dumpSourceInstructions(std::vector<unsigned int>&) const;
|
||||
void dumpInstructions(std::vector<unsigned int>&, const std::vector<std::unique_ptr<Instruction> >&) const;
|
||||
void dumpModuleProcesses(std::vector<unsigned int>&) const;
|
||||
|
||||
SourceLanguage source;
|
||||
int sourceVersion;
|
||||
spv::Id sourceFileStringId;
|
||||
std::string sourceText;
|
||||
int currentLine;
|
||||
bool emitOpLines;
|
||||
std::set<std::string> extensions;
|
||||
std::vector<const char*> sourceExtensions;
|
||||
std::vector<const char*> moduleProcesses;
|
||||
AddressingModel addressModel;
|
||||
MemoryModel memoryModel;
|
||||
std::set<spv::Capability> capabilities;
|
||||
@ -569,6 +606,7 @@ public:
|
||||
AccessChain accessChain;
|
||||
|
||||
// special blocks of instructions for output
|
||||
std::vector<std::unique_ptr<Instruction> > strings;
|
||||
std::vector<std::unique_ptr<Instruction> > imports;
|
||||
std::vector<std::unique_ptr<Instruction> > entryPoints;
|
||||
std::vector<std::unique_ptr<Instruction> > executionModes;
|
||||
@ -589,7 +627,7 @@ public:
|
||||
// Our loop stack.
|
||||
std::stack<LoopBlocks> loops;
|
||||
|
||||
// The stream for outputing warnings and errors.
|
||||
// The stream for outputting warnings and errors.
|
||||
SpvBuildLogger* logger;
|
||||
}; // end Builder class
|
||||
|
||||
|
41
3rdparty/bgfx/3rdparty/glslang/SPIRV/doc.cpp
vendored
41
3rdparty/bgfx/3rdparty/glslang/SPIRV/doc.cpp
vendored
@ -68,9 +68,9 @@ namespace spv {
|
||||
// Also, the ceilings are declared next to these, to help keep them in sync.
|
||||
// Ceilings should be
|
||||
// - one more than the maximum value an enumerant takes on, for non-mask enumerants
|
||||
// (for non-sparse enums, this is the number of enumurants)
|
||||
// (for non-sparse enums, this is the number of enumerants)
|
||||
// - the number of bits consumed by the set of masks
|
||||
// (for non-sparse mask enums, this is the number of enumurants)
|
||||
// (for non-sparse mask enums, this is the number of enumerants)
|
||||
//
|
||||
|
||||
const int SourceLanguageCeiling = 6; // HLSL todo: need official enumerant
|
||||
@ -175,12 +175,13 @@ const char* ExecutionModeString(int mode)
|
||||
case 31: return "ContractionOff";
|
||||
case 32: return "Bad";
|
||||
|
||||
case 4446: return "PostDepthCoverage";
|
||||
case ExecutionModeCeiling:
|
||||
default: return "Bad";
|
||||
}
|
||||
}
|
||||
|
||||
const int StorageClassCeiling = 12;
|
||||
const int StorageClassCeiling = 13;
|
||||
|
||||
const char* StorageClassString(int StorageClass)
|
||||
{
|
||||
@ -197,6 +198,7 @@ const char* StorageClassString(int StorageClass)
|
||||
case 9: return "PushConstant";
|
||||
case 10: return "AtomicCounter";
|
||||
case 11: return "Image";
|
||||
case 12: return "StorageBuffer";
|
||||
|
||||
case StorageClassCeiling:
|
||||
default: return "Bad";
|
||||
@ -329,6 +331,7 @@ const char* BuiltInString(int builtIn)
|
||||
case 4424: return "BaseVertex";
|
||||
case 4425: return "BaseInstance";
|
||||
case 4426: return "DrawIndex";
|
||||
case 5014: return "FragStencilRefEXT";
|
||||
|
||||
#ifdef AMD_EXTENSIONS
|
||||
case 4992: return "BaryCoordNoPerspAMD";
|
||||
@ -635,13 +638,15 @@ const char* SelectControlString(int cont)
|
||||
}
|
||||
}
|
||||
|
||||
const int LoopControlCeiling = 2;
|
||||
const int LoopControlCeiling = 4;
|
||||
|
||||
const char* LoopControlString(int cont)
|
||||
{
|
||||
switch (cont) {
|
||||
case 0: return "Unroll";
|
||||
case 1: return "DontUnroll";
|
||||
case 2: return "DependencyInfinite";
|
||||
case 3: return "DependencyLength";
|
||||
|
||||
case LoopControlCeiling:
|
||||
default: return "Bad";
|
||||
@ -830,9 +835,25 @@ const char* CapabilityString(int info)
|
||||
case 4427: return "DrawParameters";
|
||||
case 4431: return "SubgroupVoteKHR";
|
||||
|
||||
case 4433: return "StorageUniformBufferBlock16";
|
||||
case 4434: return "StorageUniform16";
|
||||
case 4435: return "StoragePushConstant16";
|
||||
case 4436: return "StorageInputOutput16";
|
||||
|
||||
case 4437: return "DeviceGroup";
|
||||
case 4439: return "MultiView";
|
||||
|
||||
case 5013: return "StencilExportEXT";
|
||||
|
||||
#ifdef AMD_EXTENSIONS
|
||||
case 5009: return "ImageGatherBiasLodAMD";
|
||||
case 5010: return "FragmentMaskAMD";
|
||||
case 5015: return "ImageReadWriteLodAMD";
|
||||
#endif
|
||||
|
||||
case 4445: return "AtomicStorageOps";
|
||||
|
||||
case 4447: return "SampleMaskPostDepthCoverage";
|
||||
#ifdef NV_EXTENSIONS
|
||||
case 5251: return "GeometryShaderPassthroughNV";
|
||||
case 5254: return "ShaderViewportIndexLayerNV";
|
||||
@ -1187,6 +1208,9 @@ const char* OpcodeString(int op)
|
||||
case 5005: return "OpGroupFMaxNonUniformAMD";
|
||||
case 5006: return "OpGroupUMaxNonUniformAMD";
|
||||
case 5007: return "OpGroupSMaxNonUniformAMD";
|
||||
|
||||
case 5011: return "OpFragmentMaskFetchAMD";
|
||||
case 5012: return "OpFragmentFetchAMD";
|
||||
#endif
|
||||
|
||||
case OpcodeCeiling:
|
||||
@ -2849,6 +2873,15 @@ void Parameterize()
|
||||
InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandScope, "'Execution'");
|
||||
InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
|
||||
InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandId, "X");
|
||||
|
||||
InstructionDesc[OpFragmentMaskFetchAMD].capabilities.push_back(CapabilityFragmentMaskAMD);
|
||||
InstructionDesc[OpFragmentMaskFetchAMD].operands.push(OperandId, "'Image'");
|
||||
InstructionDesc[OpFragmentMaskFetchAMD].operands.push(OperandId, "'Coordinate'");
|
||||
|
||||
InstructionDesc[OpFragmentFetchAMD].capabilities.push_back(CapabilityFragmentMaskAMD);
|
||||
InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Image'");
|
||||
InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Coordinate'");
|
||||
InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Fragment Index'");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
2
3rdparty/bgfx/3rdparty/glslang/SPIRV/doc.h
vendored
2
3rdparty/bgfx/3rdparty/glslang/SPIRV/doc.h
vendored
@ -36,6 +36,8 @@
|
||||
// Parameterize the SPIR-V enumerants.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "spirv.hpp"
|
||||
|
||||
#include <vector>
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include <limits>
|
||||
#include <sstream>
|
||||
|
||||
#if defined(_MSC_VER) && _MSC_VER < 1700
|
||||
#if defined(_MSC_VER) && _MSC_VER < 1800
|
||||
namespace std {
|
||||
bool isnan(double f)
|
||||
{
|
||||
|
33
3rdparty/bgfx/3rdparty/glslang/SPIRV/spirv.hpp
vendored
33
3rdparty/bgfx/3rdparty/glslang/SPIRV/spirv.hpp
vendored
@ -47,11 +47,11 @@ namespace spv {
|
||||
typedef unsigned int Id;
|
||||
|
||||
#define SPV_VERSION 0x10000
|
||||
#define SPV_REVISION 10
|
||||
#define SPV_REVISION 12
|
||||
|
||||
static const unsigned int MagicNumber = 0x07230203;
|
||||
static const unsigned int Version = 0x00010000;
|
||||
static const unsigned int Revision = 10;
|
||||
static const unsigned int Revision = 12;
|
||||
static const unsigned int OpCodeMask = 0xffff;
|
||||
static const unsigned int WordCountShift = 16;
|
||||
|
||||
@ -61,6 +61,7 @@ enum SourceLanguage {
|
||||
SourceLanguageGLSL = 2,
|
||||
SourceLanguageOpenCL_C = 3,
|
||||
SourceLanguageOpenCL_CPP = 4,
|
||||
SourceLanguageHLSL = 5,
|
||||
SourceLanguageMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -121,6 +122,7 @@ enum ExecutionMode {
|
||||
ExecutionModeOutputTriangleStrip = 29,
|
||||
ExecutionModeVecTypeHint = 30,
|
||||
ExecutionModeContractionOff = 31,
|
||||
ExecutionModePostDepthCoverage = 4446,
|
||||
ExecutionModeMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -137,6 +139,7 @@ enum StorageClass {
|
||||
StorageClassPushConstant = 9,
|
||||
StorageClassAtomicCounter = 10,
|
||||
StorageClassImage = 11,
|
||||
StorageClassStorageBuffer = 12,
|
||||
StorageClassMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -374,6 +377,7 @@ enum Decoration {
|
||||
DecorationNoContraction = 42,
|
||||
DecorationInputAttachmentIndex = 43,
|
||||
DecorationAlignment = 44,
|
||||
DecorationExplicitInterpAMD = 4999,
|
||||
DecorationOverrideCoverageNV = 5248,
|
||||
DecorationPassthroughNV = 5250,
|
||||
DecorationViewportRelativeNV = 5252,
|
||||
@ -433,6 +437,14 @@ enum BuiltIn {
|
||||
BuiltInDrawIndex = 4426,
|
||||
BuiltInDeviceIndex = 4438,
|
||||
BuiltInViewIndex = 4440,
|
||||
BuiltInBaryCoordNoPerspAMD = 4992,
|
||||
BuiltInBaryCoordNoPerspCentroidAMD = 4993,
|
||||
BuiltInBaryCoordNoPerspSampleAMD = 4994,
|
||||
BuiltInBaryCoordSmoothAMD = 4995,
|
||||
BuiltInBaryCoordSmoothCentroidAMD = 4996,
|
||||
BuiltInBaryCoordSmoothSampleAMD = 4997,
|
||||
BuiltInBaryCoordPullModelAMD = 4998,
|
||||
BuiltInFragStencilRefEXT = 5014,
|
||||
BuiltInViewportMaskNV = 5253,
|
||||
BuiltInSecondaryPositionNV = 5257,
|
||||
BuiltInSecondaryViewportMaskNV = 5258,
|
||||
@ -616,14 +628,23 @@ enum Capability {
|
||||
CapabilitySubgroupBallotKHR = 4423,
|
||||
CapabilityDrawParameters = 4427,
|
||||
CapabilitySubgroupVoteKHR = 4431,
|
||||
CapabilityStorageBuffer16BitAccess = 4433,
|
||||
CapabilityStorageUniformBufferBlock16 = 4433,
|
||||
CapabilityStorageUniform16 = 4434,
|
||||
CapabilityUniformAndStorageBuffer16BitAccess = 4434,
|
||||
CapabilityStoragePushConstant16 = 4435,
|
||||
CapabilityStorageInputOutput16 = 4436,
|
||||
CapabilityDeviceGroup = 4437,
|
||||
CapabilityMultiView = 4439,
|
||||
CapabilityVariablePointersStorageBuffer = 4441,
|
||||
CapabilityVariablePointers = 4442,
|
||||
CapabilityAtomicStorageOps = 4445,
|
||||
CapabilitySampleMaskPostDepthCoverage = 4447,
|
||||
CapabilityImageGatherBiasLodAMD = 5009,
|
||||
CapabilityStencilExportEXT = 5013,
|
||||
CapabilitySampleMaskOverrideCoverageNV = 5249,
|
||||
CapabilityGeometryShaderPassthroughNV = 5251,
|
||||
CapabilityShaderViewportIndexLayerEXT = 5254,
|
||||
CapabilityShaderViewportIndexLayerNV = 5254,
|
||||
CapabilityShaderViewportMaskNV = 5255,
|
||||
CapabilityShaderStereoViewNV = 5259,
|
||||
@ -932,6 +953,14 @@ enum Op {
|
||||
OpSubgroupAnyKHR = 4429,
|
||||
OpSubgroupAllEqualKHR = 4430,
|
||||
OpSubgroupReadInvocationKHR = 4432,
|
||||
OpGroupIAddNonUniformAMD = 5000,
|
||||
OpGroupFAddNonUniformAMD = 5001,
|
||||
OpGroupFMinNonUniformAMD = 5002,
|
||||
OpGroupUMinNonUniformAMD = 5003,
|
||||
OpGroupSMinNonUniformAMD = 5004,
|
||||
OpGroupFMaxNonUniformAMD = 5005,
|
||||
OpGroupUMaxNonUniformAMD = 5006,
|
||||
OpGroupSMaxNonUniformAMD = 5007,
|
||||
OpMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
|
11
3rdparty/bgfx/3rdparty/glslang/SPIRV/spvIR.h
vendored
11
3rdparty/bgfx/3rdparty/glslang/SPIRV/spvIR.h
vendored
@ -65,6 +65,14 @@ const Id NoResult = 0;
|
||||
const Id NoType = 0;
|
||||
|
||||
const Decoration NoPrecision = DecorationMax;
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define POTENTIALLY_UNUSED __attribute__((unused))
|
||||
#else
|
||||
# define POTENTIALLY_UNUSED
|
||||
#endif
|
||||
|
||||
POTENTIALLY_UNUSED
|
||||
const MemorySemanticsMask MemorySemanticsAllMemory =
|
||||
(MemorySemanticsMask)(MemorySemanticsSequentiallyConsistentMask |
|
||||
MemorySemanticsUniformMemoryMask |
|
||||
@ -87,7 +95,6 @@ public:
|
||||
void addImmediateOperand(unsigned int immediate) { operands.push_back(immediate); }
|
||||
void addStringOperand(const char* str)
|
||||
{
|
||||
originalString = str;
|
||||
unsigned int word;
|
||||
char* wordString = (char*)&word;
|
||||
char* wordPtr = wordString;
|
||||
@ -120,7 +127,6 @@ public:
|
||||
Id getTypeId() const { return typeId; }
|
||||
Id getIdOperand(int op) const { return operands[op]; }
|
||||
unsigned int getImmediateOperand(int op) const { return operands[op]; }
|
||||
const char* getStringOperand() const { return originalString.c_str(); }
|
||||
|
||||
// Write out the binary form.
|
||||
void dump(std::vector<unsigned int>& out) const
|
||||
@ -151,7 +157,6 @@ protected:
|
||||
Id typeId;
|
||||
Op opCode;
|
||||
std::vector<Id> operands;
|
||||
std::string originalString; // could be optimized away; convenience for getting string operand
|
||||
Block* block;
|
||||
};
|
||||
|
||||
|
@ -1,14 +1,13 @@
|
||||
add_library(glslang-default-resource-limits
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp
|
||||
)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp)
|
||||
set_property(TARGET glslang-default-resource-limits PROPERTY FOLDER glslang)
|
||||
set_property(TARGET glslang-default-resource-limits PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
target_include_directories(glslang-default-resource-limits
|
||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
PUBLIC ${PROJECT_SOURCE_DIR}
|
||||
)
|
||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
PUBLIC ${PROJECT_SOURCE_DIR})
|
||||
|
||||
set(SOURCES StandAlone.cpp)
|
||||
set(SOURCES StandAlone.cpp DirStackFileIncluder.h)
|
||||
set(REMAPPER_SOURCES spirv-remap.cpp)
|
||||
|
||||
add_executable(glslangValidator ${SOURCES})
|
||||
@ -24,7 +23,6 @@ set(LIBRARIES
|
||||
SPVRemapper
|
||||
glslang-default-resource-limits)
|
||||
|
||||
|
||||
if(WIN32)
|
||||
set(LIBRARIES ${LIBRARIES} psapi)
|
||||
elseif(UNIX)
|
||||
@ -40,8 +38,10 @@ if(WIN32)
|
||||
source_group("Source" FILES ${SOURCES})
|
||||
endif(WIN32)
|
||||
|
||||
install(TARGETS glslangValidator
|
||||
RUNTIME DESTINATION bin)
|
||||
if(ENABLE_GLSLANG_INSTALL)
|
||||
install(TARGETS glslangValidator
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
install(TARGETS spirv-remap
|
||||
RUNTIME DESTINATION bin)
|
||||
install(TARGETS spirv-remap
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(ENABLE_GLSLANG_INSTALL)
|
||||
|
141
3rdparty/bgfx/3rdparty/glslang/StandAlone/DirStackFileIncluder.h
vendored
Normal file
141
3rdparty/bgfx/3rdparty/glslang/StandAlone/DirStackFileIncluder.h
vendored
Normal file
@ -0,0 +1,141 @@
|
||||
//
|
||||
// Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
|
||||
// Copyright (C) 2017 Google, Inc.
|
||||
//
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions
|
||||
// are met:
|
||||
//
|
||||
// Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
//
|
||||
// Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following
|
||||
// disclaimer in the documentation and/or other materials provided
|
||||
// with the distribution.
|
||||
//
|
||||
// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived
|
||||
// from this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
// POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
#include <algorithm>
|
||||
|
||||
#include "./../glslang/Public/ShaderLang.h"
|
||||
|
||||
// Default include class for normal include convention of search backward
|
||||
// through the stack of active include paths (for nested includes).
|
||||
// Can be overridden to customize.
|
||||
class DirStackFileIncluder : public glslang::TShader::Includer {
|
||||
public:
|
||||
DirStackFileIncluder() : externalLocalDirectoryCount(0) { }
|
||||
|
||||
virtual IncludeResult* includeLocal(const char* headerName,
|
||||
const char* includerName,
|
||||
size_t inclusionDepth) override
|
||||
{
|
||||
return readLocalPath(headerName, includerName, (int)inclusionDepth);
|
||||
}
|
||||
|
||||
virtual IncludeResult* includeSystem(const char* headerName,
|
||||
const char* /*includerName*/,
|
||||
size_t /*inclusionDepth*/) override
|
||||
{
|
||||
return readSystemPath(headerName);
|
||||
}
|
||||
|
||||
// Externally set directories. E.g., from a command-line -I<dir>.
|
||||
// - Most-recently pushed are checked first.
|
||||
// - All these are checked after the parse-time stack of local directories
|
||||
// is checked.
|
||||
// - This only applies to the "local" form of #include.
|
||||
// - Makes its own copy of the path.
|
||||
virtual void pushExternalLocalDirectory(const std::string& dir)
|
||||
{
|
||||
directoryStack.push_back(dir);
|
||||
externalLocalDirectoryCount = (int)directoryStack.size();
|
||||
}
|
||||
|
||||
virtual void releaseInclude(IncludeResult* result) override
|
||||
{
|
||||
if (result != nullptr) {
|
||||
delete [] static_cast<tUserDataElement*>(result->userData);
|
||||
delete result;
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~DirStackFileIncluder() override { }
|
||||
|
||||
protected:
|
||||
typedef char tUserDataElement;
|
||||
std::vector<std::string> directoryStack;
|
||||
int externalLocalDirectoryCount;
|
||||
|
||||
// Search for a valid "local" path based on combining the stack of include
|
||||
// directories and the nominal name of the header.
|
||||
virtual IncludeResult* readLocalPath(const char* headerName, const char* includerName, int depth)
|
||||
{
|
||||
// Discard popped include directories, and
|
||||
// initialize when at parse-time first level.
|
||||
directoryStack.resize(depth + externalLocalDirectoryCount);
|
||||
if (depth == 1)
|
||||
directoryStack.back() = getDirectory(includerName);
|
||||
|
||||
// Find a directory that works, using a reverse search of the include stack.
|
||||
for (auto it = directoryStack.rbegin(); it != directoryStack.rend(); ++it) {
|
||||
std::string path = *it + '/' + headerName;
|
||||
std::replace(path.begin(), path.end(), '\\', '/');
|
||||
std::ifstream file(path, std::ios_base::binary | std::ios_base::ate);
|
||||
if (file) {
|
||||
directoryStack.push_back(getDirectory(path));
|
||||
return newIncludeResult(path, file, (int)file.tellg());
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// Search for a valid <system> path.
|
||||
// Not implemented yet; returning nullptr signals failure to find.
|
||||
virtual IncludeResult* readSystemPath(const char* /*headerName*/) const
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// Do actual reading of the file, filling in a new include result.
|
||||
virtual IncludeResult* newIncludeResult(const std::string& path, std::ifstream& file, int length) const
|
||||
{
|
||||
char* content = new tUserDataElement [length];
|
||||
file.seekg(0, file.beg);
|
||||
file.read(content, length);
|
||||
return new IncludeResult(path, content, length, content);
|
||||
}
|
||||
|
||||
// If no path markers, return current working directory.
|
||||
// Otherwise, strip file name and return path leading up to it.
|
||||
virtual std::string getDirectory(const std::string path) const
|
||||
{
|
||||
size_t last = path.find_last_of("/\\");
|
||||
return last == std::string::npos ? "." : path.substr(0, last);
|
||||
}
|
||||
};
|
1024
3rdparty/bgfx/3rdparty/glslang/StandAlone/StandAlone.cpp
vendored
1024
3rdparty/bgfx/3rdparty/glslang/StandAlone/StandAlone.cpp
vendored
File diff suppressed because it is too large
Load Diff
@ -36,8 +36,9 @@
|
||||
#define WORKLIST_H_INCLUDED
|
||||
|
||||
#include "../glslang/OSDependent/osinclude.h"
|
||||
#include <string>
|
||||
#include <list>
|
||||
#include <mutex>
|
||||
#include <string>
|
||||
|
||||
namespace glslang {
|
||||
|
||||
@ -58,24 +59,19 @@ namespace glslang {
|
||||
|
||||
void add(TWorkItem* item)
|
||||
{
|
||||
GetGlobalLock();
|
||||
|
||||
std::lock_guard<std::mutex> guard(mutex);
|
||||
worklist.push_back(item);
|
||||
|
||||
ReleaseGlobalLock();
|
||||
}
|
||||
|
||||
bool remove(TWorkItem*& item)
|
||||
{
|
||||
GetGlobalLock();
|
||||
std::lock_guard<std::mutex> guard(mutex);
|
||||
|
||||
if (worklist.empty())
|
||||
return false;
|
||||
item = worklist.front();
|
||||
worklist.pop_front();
|
||||
|
||||
ReleaseGlobalLock();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -90,6 +86,7 @@ namespace glslang {
|
||||
}
|
||||
|
||||
protected:
|
||||
std::mutex mutex;
|
||||
std::list<TWorkItem*> worklist;
|
||||
};
|
||||
|
||||
|
41
3rdparty/bgfx/3rdparty/glslang/Test/100samplerExternal.frag
vendored
Normal file
41
3rdparty/bgfx/3rdparty/glslang/Test/100samplerExternal.frag
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
#version 100
|
||||
|
||||
#extension GL_OES_EGL_image_external : enable
|
||||
|
||||
uniform samplerExternalOES sExt;
|
||||
precision mediump samplerExternalOES;
|
||||
uniform samplerExternalOES mediumExt;
|
||||
uniform highp samplerExternalOES highExt;
|
||||
|
||||
void main()
|
||||
{
|
||||
texture2D(sExt, vec2(0.2));
|
||||
texture2D(mediumExt, vec2(0.2));
|
||||
texture2D(highExt, vec2(0.2));
|
||||
texture2DProj(sExt, vec3(0.3));
|
||||
texture2DProj(sExt, vec4(0.3));
|
||||
|
||||
int lod = 0;
|
||||
highp float bias = 0.01;
|
||||
textureSize(sExt, lod); // ERROR
|
||||
texture(sExt, vec2(0.2)); // ERROR
|
||||
texture(sExt, vec2(0.2), bias); // ERROR
|
||||
textureProj(sExt, vec3(0.2)); // ERROR
|
||||
textureProj(sExt, vec3(0.2), bias); // ERROR
|
||||
textureProj(sExt, vec4(0.2)); // ERROR
|
||||
textureProj(sExt, vec4(0.2), bias); // ERROR
|
||||
texelFetch(sExt, ivec2(4), lod); // ERROR
|
||||
|
||||
texture3D(sExt, vec3(0.3)); // ERROR
|
||||
texture2DProjLod(sExt, vec3(0.3), 0.3); // ERROR
|
||||
texture(sExt, vec3(0.3)); // ERROR
|
||||
textureProjLod(sExt, vec3(0.3), 0.3); // ERROR
|
||||
}
|
||||
|
||||
#extension GL_OES_EGL_image_external : disable
|
||||
|
||||
#extension GL_OES_EGL_image_external_essl3 : enable
|
||||
uniform samplerExternalOES badExt; // ERROR
|
||||
#extension GL_OES_EGL_image_external_essl3 : disable
|
||||
|
||||
uniform samplerExternalOES badExt; // ERROR
|
17
3rdparty/bgfx/3rdparty/glslang/Test/300.vert
vendored
17
3rdparty/bgfx/3rdparty/glslang/Test/300.vert
vendored
@ -184,4 +184,21 @@ void fooDeeparray()
|
||||
yp = y;
|
||||
xp = y; // ERROR, wrong size
|
||||
yp = x; // ERROR, wrong size
|
||||
}
|
||||
|
||||
layout(num_views = 2) in; // ERROR, no extension
|
||||
|
||||
void mwErr()
|
||||
{
|
||||
gl_ViewID_OVR; // ERROR, no extension
|
||||
}
|
||||
|
||||
#extension GL_OVR_multiview : enable
|
||||
|
||||
layout(num_views = 2) uniform float mwUniform; // ERROR, must be global
|
||||
layout(num_views = 2) in; // OK
|
||||
|
||||
void mwOk()
|
||||
{
|
||||
gl_ViewID_OVR;
|
||||
}
|
||||
|
41
3rdparty/bgfx/3rdparty/glslang/Test/300samplerExternal.frag
vendored
Normal file
41
3rdparty/bgfx/3rdparty/glslang/Test/300samplerExternal.frag
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
#version 300 es
|
||||
|
||||
#extension GL_OES_EGL_image_external_essl3 : enable
|
||||
|
||||
uniform samplerExternalOES sExt;
|
||||
precision mediump samplerExternalOES;
|
||||
uniform samplerExternalOES mediumExt;
|
||||
uniform highp samplerExternalOES highExt;
|
||||
|
||||
void main()
|
||||
{
|
||||
texture2D(sExt, vec2(0.2)); // ERROR
|
||||
texture2D(mediumExt, vec2(0.2)); // ERROR
|
||||
texture2D(highExt, vec2(0.2)); // ERROR
|
||||
texture2DProj(sExt, vec3(0.3)); // ERROR
|
||||
texture2DProj(sExt, vec4(0.3)); // ERROR
|
||||
|
||||
int lod = 0;
|
||||
highp float bias = 0.01;
|
||||
textureSize(sExt, lod);
|
||||
texture(sExt, vec2(0.2));
|
||||
texture(sExt, vec2(0.2), bias);
|
||||
textureProj(sExt, vec3(0.2));
|
||||
textureProj(sExt, vec3(0.2), bias);
|
||||
textureProj(sExt, vec4(0.2));
|
||||
textureProj(sExt, vec4(0.2), bias);
|
||||
texelFetch(sExt, ivec2(4), lod);
|
||||
|
||||
texture3D(sExt, vec3(0.3)); // ERROR
|
||||
texture2DProjLod(sExt, vec3(0.3), 0.3); // ERROR
|
||||
texture(sExt, vec3(0.3)); // ERROR
|
||||
textureProjLod(sExt, vec3(0.3), 0.3); // ERROR
|
||||
}
|
||||
|
||||
#extension GL_OES_EGL_image_external_essl3 : disable
|
||||
|
||||
#extension GL_OES_EGL_image_external : enable
|
||||
uniform samplerExternalOES badExt; // ERROR
|
||||
#extension GL_OES_EGL_image_external : disable
|
||||
|
||||
uniform samplerExternalOES badExt; // ERROR
|
2
3rdparty/bgfx/3rdparty/glslang/Test/310.comp
vendored
2
3rdparty/bgfx/3rdparty/glslang/Test/310.comp
vendored
@ -4,7 +4,7 @@ layout(local_size_x = 2) in;
|
||||
layout(local_size_x = 16) in; // ERROR, changing
|
||||
layout(local_size_z = 4096) in; // ERROR, too large
|
||||
layout(local_size_x = 2) in;
|
||||
|
||||
layout(local_size_y = 0) in; // ERROR, 0 not allowed
|
||||
const int total = gl_MaxComputeWorkGroupCount.y
|
||||
+ gl_MaxComputeUniformComponents
|
||||
+ gl_MaxComputeTextureImageUnits
|
||||
|
5
3rdparty/bgfx/3rdparty/glslang/Test/320.comp
vendored
Normal file
5
3rdparty/bgfx/3rdparty/glslang/Test/320.comp
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
#version 320 es
|
||||
|
||||
void main()
|
||||
{
|
||||
}
|
225
3rdparty/bgfx/3rdparty/glslang/Test/320.frag
vendored
Normal file
225
3rdparty/bgfx/3rdparty/glslang/Test/320.frag
vendored
Normal file
@ -0,0 +1,225 @@
|
||||
#version 320 es
|
||||
|
||||
out outbname { int a; } outbinst; // ERROR, not out block in fragment shader
|
||||
|
||||
in inbname {
|
||||
int a;
|
||||
vec4 v;
|
||||
struct { int b; } s; // ERROR, nested struct definition
|
||||
} inbinst;
|
||||
|
||||
in inbname2 {
|
||||
layout(location = 12) int aAnon;
|
||||
layout(location = 13) centroid in vec4 vAnon;
|
||||
};
|
||||
|
||||
in layout(location = 13) vec4 aliased; // ERROR, aliased
|
||||
|
||||
in inbname2 { // ERROR, reuse of block name
|
||||
int aAnon;
|
||||
centroid in vec4 vAnon;
|
||||
};
|
||||
|
||||
in badmember { // ERROR, aAnon already in global scope
|
||||
int aAnon;
|
||||
};
|
||||
|
||||
int inbname; // ERROR, redefinition of block name
|
||||
|
||||
vec4 vAnon; // ERROR, anon in global scope; redefinition
|
||||
|
||||
in arrayed {
|
||||
float f;
|
||||
} arrayedInst[4];
|
||||
uniform int i;
|
||||
void fooIO()
|
||||
{
|
||||
vec4 v = inbinst.v + vAnon;
|
||||
v *= arrayedInst[2].f;
|
||||
v *= arrayedInst[i].f;
|
||||
}
|
||||
|
||||
in vec4 gl_FragCoord;
|
||||
layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, non-ES
|
||||
|
||||
layout(early_fragment_tests) in;
|
||||
out float gl_FragDepth;
|
||||
layout(depth_any) out float gl_FragDepth; // ERROR, non-ES
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragDepth = 0.2; // ERROR, early_fragment_tests declared
|
||||
bool f = gl_FrontFacing;
|
||||
}
|
||||
|
||||
out float gl_FragDepth;
|
||||
|
||||
void foo_GS()
|
||||
{
|
||||
highp int l = gl_Layer;
|
||||
highp int p = gl_PrimitiveID;
|
||||
}
|
||||
|
||||
in vec2 inf, ing;
|
||||
uniform ivec2 offsets[4];
|
||||
uniform sampler2D sArray[4];
|
||||
uniform int sIndex;
|
||||
layout(binding = 0) uniform atomic_uint auArray[2];
|
||||
uniform ubName { int i; } ubInst[4];
|
||||
buffer bbName { int i; } bbInst[4];
|
||||
highp uniform writeonly image2D iArray[5];
|
||||
const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4));
|
||||
|
||||
void pfoo()
|
||||
{
|
||||
precise vec2 h;
|
||||
h = fma(inf, ing, h);
|
||||
textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf));
|
||||
textureGatherOffsets(sArray[0], vec2(0.1), constOffsets);
|
||||
textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant
|
||||
}
|
||||
|
||||
precision highp imageCubeArray ;
|
||||
precision highp iimageCubeArray ;
|
||||
precision highp uimageCubeArray ;
|
||||
|
||||
precision highp samplerCubeArray ;
|
||||
precision highp samplerCubeArrayShadow;
|
||||
precision highp isamplerCubeArray ;
|
||||
precision highp usamplerCubeArray ;
|
||||
|
||||
uniform writeonly imageCubeArray CA1;
|
||||
uniform writeonly iimageCubeArray CA2;
|
||||
uniform writeonly uimageCubeArray CA3;
|
||||
|
||||
#ifdef GL_EXT_texture_cube_map_array
|
||||
uniform samplerCubeArray CA4;
|
||||
uniform samplerCubeArrayShadow CA5;
|
||||
uniform isamplerCubeArray CA6;
|
||||
uniform usamplerCubeArray CA7;
|
||||
#endif
|
||||
|
||||
void CAT()
|
||||
{
|
||||
highp vec4 b4 = texture(CA4, vec4(0.5), 0.24);
|
||||
highp ivec4 b6 = texture(CA6, vec4(0.5), 0.26);
|
||||
highp uvec4 b7 = texture(CA7, vec4(0.5), 0.27);
|
||||
}
|
||||
|
||||
void goodSample()
|
||||
{
|
||||
lowp int a1 = gl_SampleID;
|
||||
mediump vec2 a2 = gl_SamplePosition;
|
||||
highp int a3 = gl_SampleMaskIn[0];
|
||||
gl_SampleMask[0] = a3;
|
||||
mediump int n1 = gl_MaxSamples;
|
||||
mediump int n2 = gl_NumSamples;
|
||||
}
|
||||
|
||||
uniform layout(r32f) highp image2D im2Df;
|
||||
uniform layout(r32ui) highp uimage2D im2Du;
|
||||
uniform layout(r32i) highp iimage2D im2Di;
|
||||
uniform ivec2 P;
|
||||
|
||||
uniform layout(rgba32f) highp image2D badIm2Df; // ERROR, needs readonly or writeonly
|
||||
uniform layout(rgba8ui) highp uimage2D badIm2Du; // ERROR, needs readonly or writeonly
|
||||
uniform layout(rgba16i) highp iimage2D badIm2Di; // ERROR, needs readonly or writeonly
|
||||
|
||||
void goodImageAtom()
|
||||
{
|
||||
float datf;
|
||||
int dati;
|
||||
uint datu;
|
||||
|
||||
imageAtomicAdd( im2Di, P, dati);
|
||||
imageAtomicAdd( im2Du, P, datu);
|
||||
imageAtomicMin( im2Di, P, dati);
|
||||
imageAtomicMin( im2Du, P, datu);
|
||||
imageAtomicMax( im2Di, P, dati);
|
||||
imageAtomicMax( im2Du, P, datu);
|
||||
imageAtomicAnd( im2Di, P, dati);
|
||||
imageAtomicAnd( im2Du, P, datu);
|
||||
imageAtomicOr( im2Di, P, dati);
|
||||
imageAtomicOr( im2Du, P, datu);
|
||||
imageAtomicXor( im2Di, P, dati);
|
||||
imageAtomicXor( im2Du, P, datu);
|
||||
imageAtomicExchange(im2Di, P, dati);
|
||||
imageAtomicExchange(im2Du, P, datu);
|
||||
imageAtomicExchange(im2Df, P, datf);
|
||||
imageAtomicCompSwap(im2Di, P, 3, dati);
|
||||
imageAtomicCompSwap(im2Du, P, 5u, datu);
|
||||
|
||||
imageAtomicMax(badIm2Di, P, dati); // ERROR, not an allowed layout() on the image
|
||||
imageAtomicMax(badIm2Du, P, datu); // ERROR, not an allowed layout() on the image
|
||||
imageAtomicExchange(badIm2Df, P, datf); // ERROR, not an allowed layout() on the image
|
||||
}
|
||||
|
||||
centroid out vec4 colorCentroidBad; // ERROR
|
||||
flat out vec4 colorBadFlat; // ERROR
|
||||
smooth out vec4 colorBadSmooth; // ERROR
|
||||
noperspective out vec4 colorBadNo; // ERROR
|
||||
flat centroid in vec2 colorfc;
|
||||
in float scalarIn;
|
||||
|
||||
sample in vec4 colorSampIn;
|
||||
sample out vec4 colorSampleBad; // ERROR
|
||||
flat sample in vec4 colorfsi;
|
||||
sample in vec3 sampInArray[4];
|
||||
|
||||
void interp()
|
||||
{
|
||||
float res;
|
||||
vec2 res2;
|
||||
vec3 res3;
|
||||
vec4 res4;
|
||||
|
||||
res2 = interpolateAtCentroid(colorfc);
|
||||
res4 = interpolateAtCentroid(colorSampIn);
|
||||
res4 = interpolateAtCentroid(colorfsi);
|
||||
res = interpolateAtCentroid(scalarIn);
|
||||
res3 = interpolateAtCentroid(sampInArray); // ERROR
|
||||
res3 = interpolateAtCentroid(sampInArray[2]);
|
||||
res2 = interpolateAtCentroid(sampInArray[2].xy); // ERROR
|
||||
|
||||
res3 = interpolateAtSample(sampInArray, 1); // ERROR
|
||||
res3 = interpolateAtSample(sampInArray[i], 0);
|
||||
res2 = interpolateAtSample(sampInArray[2].xy, 2); // ERROR
|
||||
res = interpolateAtSample(scalarIn, 1);
|
||||
|
||||
res3 = interpolateAtOffset(sampInArray, vec2(0.2)); // ERROR
|
||||
res3 = interpolateAtOffset(sampInArray[2], vec2(0.2));
|
||||
res2 = interpolateAtOffset(sampInArray[2].xy, vec2(0.2)); // ERROR, no swizzle
|
||||
res = interpolateAtOffset(scalarIn + scalarIn, vec2(0.2)); // ERROR, no binary ops other than dereference
|
||||
res = interpolateAtOffset(scalarIn, vec2(0.2));
|
||||
|
||||
float f;
|
||||
res = interpolateAtCentroid(f); // ERROR, not interpolant
|
||||
res4 = interpolateAtSample(outp, 0); // ERROR, not interpolant
|
||||
}
|
||||
|
||||
layout(blend_support_multiply) out;
|
||||
layout(blend_support_screen) out;
|
||||
layout(blend_support_overlay) out;
|
||||
layout(blend_support_darken, blend_support_lighten) out;
|
||||
layout(blend_support_colordodge) layout(blend_support_colorburn) out;
|
||||
layout(blend_support_hardlight) out;
|
||||
layout(blend_support_softlight) out;
|
||||
layout(blend_support_difference) out;
|
||||
layout(blend_support_exclusion) out;
|
||||
layout(blend_support_hsl_hue) out;
|
||||
layout(blend_support_hsl_saturation) out;
|
||||
layout(blend_support_hsl_color) out;
|
||||
layout(blend_support_hsl_luminosity) out;
|
||||
layout(blend_support_all_equations) out;
|
||||
|
||||
layout(blend_support_hsl_luminosity) out; // okay to repeat
|
||||
|
||||
layout(blend_support_hsl_luminosity) in; // ERROR, only on "out"
|
||||
layout(blend_support_hsl_luminosity) out vec4; // ERROR, only on standalone
|
||||
layout(blend_support_hsl_luminosity) out vec4 badout; // ERROR, only on standalone
|
||||
layout(blend_support_hsl_luminosity) struct badS {int i;}; // ERROR, only on standalone
|
||||
layout(blend_support_hsl_luminosity) void blendFoo() { } // ERROR, only on standalone
|
||||
void blendFoo(layout(blend_support_hsl_luminosity) vec3 v) { } // ERROR, only on standalone
|
||||
layout(blend_support_flizbit) out; // ERROR, no flizbit
|
||||
|
||||
out vec4 outAA[2][2]; // ERROR
|
134
3rdparty/bgfx/3rdparty/glslang/Test/320.geom
vendored
Normal file
134
3rdparty/bgfx/3rdparty/glslang/Test/320.geom
vendored
Normal file
@ -0,0 +1,134 @@
|
||||
#version 320 es
|
||||
|
||||
precision mediump float;
|
||||
|
||||
in fromVertex {
|
||||
in vec3 color;
|
||||
} fromV[];
|
||||
|
||||
in vec4 nonBlockUnsized[];
|
||||
|
||||
out toFragment {
|
||||
out vec3 color;
|
||||
} toF;
|
||||
|
||||
out fromVertex { // okay to reuse a block name for another block name
|
||||
vec3 color;
|
||||
};
|
||||
|
||||
out fooB { // ERROR, cannot reuse block name as block instance
|
||||
vec2 color;
|
||||
} fromVertex;
|
||||
|
||||
int fromVertex; // ERROR, cannot reuse a block name for something else
|
||||
|
||||
out fooC { // ERROR, cannot have same name for block and instance name
|
||||
vec2 color;
|
||||
} fooC;
|
||||
|
||||
void main()
|
||||
{
|
||||
EmitVertex();
|
||||
EndPrimitive();
|
||||
EmitStreamVertex(1); // ERROR
|
||||
EndStreamPrimitive(0); // ERROR
|
||||
|
||||
color = fromV[0].color;
|
||||
gl_ClipDistance[3] = // ERROR, no ClipDistance
|
||||
gl_in[1].gl_ClipDistance[2]; // ERROR, no ClipDistance
|
||||
gl_Position = gl_in[0].gl_Position;
|
||||
|
||||
gl_PrimitiveID = gl_PrimitiveIDIn;
|
||||
gl_Layer = 2;
|
||||
}
|
||||
|
||||
layout(stream = 4) out vec4 ov4; // ERROR, no streams
|
||||
|
||||
layout(line_strip, points, triangle_strip, points, triangle_strip) out; // just means triangle_strip"
|
||||
|
||||
out ooutb { vec4 a; } ouuaa6;
|
||||
|
||||
layout(max_vertices = 200) out;
|
||||
layout(max_vertices = 300) out; // ERROR, too big
|
||||
void foo(layout(max_vertices = 4) int a) // ERROR
|
||||
{
|
||||
ouuaa6.a = vec4(1.0);
|
||||
}
|
||||
|
||||
layout(line_strip, points, triangle_strip, points) out; // ERROR, changing output primitive
|
||||
layout(line_strip, points) out; // ERROR, changing output primitive
|
||||
layout(triangle_strip) in; // ERROR, not an input primitive
|
||||
layout(triangle_strip) uniform; // ERROR
|
||||
layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable
|
||||
layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input
|
||||
layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0
|
||||
out outbn2 {
|
||||
layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0
|
||||
layout(max_vertices = 3) int b; // ERROR, not on a block member
|
||||
layout(triangle_strip) int c; // ERROR, not on a block member
|
||||
} outbi;
|
||||
|
||||
layout(lines) out; // ERROR, not on output
|
||||
layout(lines_adjacency) in;
|
||||
layout(triangles) in; // ERROR, can't change it
|
||||
layout(triangles_adjacency) in; // ERROR, can't change it
|
||||
layout(invocations = 4) in;
|
||||
|
||||
in sameName {
|
||||
int a15;
|
||||
} insn[];
|
||||
|
||||
out sameName {
|
||||
float f15;
|
||||
};
|
||||
|
||||
uniform sameName {
|
||||
bool b15;
|
||||
};
|
||||
|
||||
const int summ = gl_MaxVertexAttribs +
|
||||
gl_MaxGeometryInputComponents +
|
||||
gl_MaxGeometryOutputComponents +
|
||||
gl_MaxGeometryImageUniforms +
|
||||
gl_MaxGeometryTextureImageUnits +
|
||||
gl_MaxGeometryOutputVertices +
|
||||
gl_MaxGeometryTotalOutputComponents +
|
||||
gl_MaxGeometryUniformComponents +
|
||||
gl_MaxGeometryAtomicCounters +
|
||||
gl_MaxGeometryAtomicCounterBuffers +
|
||||
gl_MaxVertexTextureImageUnits +
|
||||
gl_MaxCombinedTextureImageUnits +
|
||||
gl_MaxTextureImageUnits +
|
||||
gl_MaxDrawBuffers;
|
||||
|
||||
void fooe1()
|
||||
{
|
||||
gl_ViewportIndex; // ERROR, not in ES
|
||||
gl_MaxViewports; // ERROR, not in ES
|
||||
insn.length(); // 4: lines_adjacency
|
||||
int inv = gl_InvocationID;
|
||||
}
|
||||
|
||||
in vec4 explArray[4];
|
||||
in vec4 explArrayBad[5]; // ERROR, wrong size
|
||||
in vec4 nonArrayed; // ERROR, not an array
|
||||
flat out vec3 myColor1;
|
||||
centroid out vec3 myColor2;
|
||||
centroid in vec3 centr[];
|
||||
sample out vec4 perSampleColor; // ERROR without sample extensions
|
||||
|
||||
layout(max_vertices = 200) out; // matching redecl
|
||||
|
||||
layout(location = 7, component = 2) in float comp[]; // ERROR, es has no component
|
||||
|
||||
void notHere()
|
||||
{
|
||||
gl_MaxGeometryVaryingComponents; // ERROR, not in ES
|
||||
gl_VerticesIn; // ERROR, not in ES
|
||||
}
|
||||
|
||||
void pointSize2()
|
||||
{
|
||||
highp float ps = gl_in[3].gl_PointSize; // ERROR, need extension
|
||||
gl_PointSize = ps; // ERROR, need extension
|
||||
}
|
150
3rdparty/bgfx/3rdparty/glslang/Test/320.tesc
vendored
Normal file
150
3rdparty/bgfx/3rdparty/glslang/Test/320.tesc
vendored
Normal file
@ -0,0 +1,150 @@
|
||||
#version 320 es
|
||||
|
||||
layout(vertices = 4) out;
|
||||
out int outa[gl_out.length()];
|
||||
|
||||
layout(quads) in; // ERROR
|
||||
layout(ccw) out; // ERROR
|
||||
layout(fractional_even_spacing) in; // ERROR
|
||||
|
||||
patch in vec4 patchIn; // ERROR
|
||||
patch out vec4 patchOut;
|
||||
|
||||
void main()
|
||||
{
|
||||
barrier();
|
||||
|
||||
int a = gl_MaxTessControlInputComponents +
|
||||
gl_MaxTessControlOutputComponents +
|
||||
gl_MaxTessControlTextureImageUnits +
|
||||
gl_MaxTessControlUniformComponents +
|
||||
gl_MaxTessControlTotalOutputComponents;
|
||||
|
||||
vec4 p = gl_in[1].gl_Position;
|
||||
float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension
|
||||
float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES
|
||||
|
||||
int pvi = gl_PatchVerticesIn;
|
||||
int pid = gl_PrimitiveID;
|
||||
int iid = gl_InvocationID;
|
||||
|
||||
gl_out[gl_InvocationID].gl_Position = p;
|
||||
gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension
|
||||
gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; // ERROR, not in ES
|
||||
|
||||
gl_TessLevelOuter[3] = 3.2;
|
||||
gl_TessLevelInner[1] = 1.3;
|
||||
|
||||
if (a > 10)
|
||||
barrier(); // ERROR
|
||||
else
|
||||
barrier(); // ERROR
|
||||
|
||||
barrier();
|
||||
|
||||
do {
|
||||
barrier(); // ERROR
|
||||
} while (a > 10);
|
||||
|
||||
switch (a) {
|
||||
default:
|
||||
barrier(); // ERROR
|
||||
break;
|
||||
}
|
||||
a < 12 ? a : (barrier(), a); // ERROR
|
||||
{
|
||||
barrier();
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
barrier(); // ERROR
|
||||
}
|
||||
|
||||
layout(vertices = 4) in; // ERROR, not on in
|
||||
layout(vertices = 5) out; // ERROR, changing #
|
||||
|
||||
void foo()
|
||||
{
|
||||
gl_out[4].gl_Position; // ERROR, out of range
|
||||
|
||||
barrier(); // ERROR, not in main
|
||||
}
|
||||
|
||||
in vec2 ina; // ERROR, not array
|
||||
in vec2 inb[];
|
||||
in vec2 inc[18]; // ERROR, wrong size
|
||||
in vec2 ind[gl_MaxPatchVertices];
|
||||
patch out float implA[]; // ERROR, not sized
|
||||
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
|
||||
layout(location = 3) in vec4 ivla[];
|
||||
layout(location = 4) in vec4 ivlb[];
|
||||
layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping
|
||||
|
||||
layout(location = 3) out vec4 ovla[];
|
||||
layout(location = 4) out vec4 ovlb[];
|
||||
layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping
|
||||
|
||||
patch out pinbn {
|
||||
int a;
|
||||
} pinbi;
|
||||
|
||||
centroid out vec3 myColor2[];
|
||||
centroid in vec3 centr[];
|
||||
sample out vec4 perSampleColor[];
|
||||
|
||||
layout(vertices = 4) out float badlay[]; // ERROR, not on a variable
|
||||
out float misSized[5]; // ERROR, size doesn't match
|
||||
out float okaySize[4];
|
||||
|
||||
void pointSize2()
|
||||
{
|
||||
float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension
|
||||
gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension
|
||||
}
|
||||
|
||||
precise vec3 pv3;
|
||||
|
||||
void goodfoop()
|
||||
{
|
||||
precise float d;
|
||||
|
||||
pv3 *= pv3;
|
||||
pv3 = fma(pv3, pv3, pv3);
|
||||
d = fma(d, d, d);
|
||||
}
|
||||
|
||||
void bb()
|
||||
{
|
||||
gl_BoundingBoxOES[0] = vec4(0.0);
|
||||
gl_BoundingBoxOES[1] = vec4(1.0);
|
||||
gl_BoundingBoxOES[2] = vec4(2.0); // ERROR, overflow
|
||||
}
|
||||
|
||||
out patch badpatchBName { // ERROR, array size required
|
||||
float f;
|
||||
} badpatchIName[];
|
||||
|
||||
out patch patchBName {
|
||||
float f;
|
||||
} patchIName[4];
|
||||
|
||||
void outputtingOutparam(out int a)
|
||||
{
|
||||
a = 2;
|
||||
}
|
||||
|
||||
void outputting()
|
||||
{
|
||||
outa[gl_InvocationID] = 2;
|
||||
outa[1] = 2; // ERROR, not gl_InvocationID
|
||||
gl_out[0].gl_Position = vec4(1.0); // ERROR, not gl_InvocationID
|
||||
outa[1];
|
||||
gl_out[0];
|
||||
outputtingOutparam(outa[0]); // ERROR, not gl_InvocationID
|
||||
outputtingOutparam(outa[gl_InvocationID]);
|
||||
patchIName[1].f = 3.14;
|
||||
outa[(gl_InvocationID)] = 2;
|
||||
}
|
114
3rdparty/bgfx/3rdparty/glslang/Test/320.tese
vendored
Normal file
114
3rdparty/bgfx/3rdparty/glslang/Test/320.tese
vendored
Normal file
@ -0,0 +1,114 @@
|
||||
#version 320 es
|
||||
|
||||
layout(vertices = 4) out; // ERROR
|
||||
layout(quads, cw) in;
|
||||
layout(triangles) in; // ERROR
|
||||
layout(isolines) in; // ERROR
|
||||
|
||||
layout(ccw) in; // ERROR
|
||||
layout(cw) in;
|
||||
|
||||
layout(fractional_odd_spacing) in;
|
||||
layout(equal_spacing) in; // ERROR
|
||||
layout(fractional_even_spacing) in; // ERROR
|
||||
|
||||
layout(point_mode) in;
|
||||
|
||||
patch in vec4 patchIn;
|
||||
patch out vec4 patchOut; // ERROR
|
||||
|
||||
void main()
|
||||
{
|
||||
barrier(); // ERROR
|
||||
|
||||
int a = gl_MaxTessEvaluationInputComponents +
|
||||
gl_MaxTessEvaluationOutputComponents +
|
||||
gl_MaxTessEvaluationTextureImageUnits +
|
||||
gl_MaxTessEvaluationUniformComponents +
|
||||
gl_MaxTessPatchComponents +
|
||||
gl_MaxPatchVertices +
|
||||
gl_MaxTessGenLevel;
|
||||
|
||||
vec4 p = gl_in[1].gl_Position;
|
||||
float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension
|
||||
float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES
|
||||
|
||||
int pvi = gl_PatchVerticesIn;
|
||||
int pid = gl_PrimitiveID;
|
||||
vec3 tc = gl_TessCoord;
|
||||
float tlo = gl_TessLevelOuter[3];
|
||||
float tli = gl_TessLevelInner[1];
|
||||
|
||||
gl_Position = p;
|
||||
gl_PointSize = ps; // ERROR, need point_size extension
|
||||
gl_ClipDistance[2] = cd; // ERROR, not in ES
|
||||
}
|
||||
|
||||
smooth patch in vec4 badp1; // ERROR
|
||||
flat patch in vec4 badp2; // ERROR
|
||||
noperspective patch in vec4 badp3; // ERROR
|
||||
patch sample in vec3 badp4; // ERROR
|
||||
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
|
||||
in gl_PerVertex // ERROR, no size
|
||||
{
|
||||
vec4 gl_Position;
|
||||
} gl_in[];
|
||||
|
||||
in gl_PerVertex // ERROR, second redeclaration of gl_in
|
||||
{
|
||||
vec4 gl_Position;
|
||||
} gl_in[];
|
||||
|
||||
layout(quads, cw) out; // ERROR
|
||||
layout(triangles) out; // ERROR
|
||||
layout(isolines) out; // ERROR
|
||||
layout(cw) out; // ERROR
|
||||
layout(fractional_odd_spacing) out; // ERROR
|
||||
layout(equal_spacing) out; // ERROR
|
||||
layout(fractional_even_spacing) out; // ERROR
|
||||
layout(point_mode) out; // ERROR
|
||||
|
||||
in vec2 ina; // ERROR, not array
|
||||
in vec2 inb[];
|
||||
in vec2 inc[18]; // ERROR, wrong size
|
||||
in vec2 ind[gl_MaxPatchVertices];
|
||||
|
||||
in testbla { // ERROR, not array
|
||||
int f;
|
||||
} bla;
|
||||
|
||||
in testblb {
|
||||
int f;
|
||||
} blb[];
|
||||
|
||||
in testblc { // ERROR wrong size
|
||||
int f;
|
||||
} blc[18];
|
||||
|
||||
in testbld {
|
||||
int f;
|
||||
} bld[gl_MaxPatchVertices];
|
||||
|
||||
layout(location = 23) in vec4 ivla[];
|
||||
layout(location = 24) in vec4 ivlb[];
|
||||
layout(location = 24) in vec4 ivlc[]; // ERROR, overlap
|
||||
|
||||
layout(location = 23) out vec4 ovla[2];
|
||||
layout(location = 24) out vec4 ovlb[2]; // ERROR, overlap
|
||||
|
||||
in float gl_TessLevelOuter[4]; // ERROR, can't redeclare
|
||||
|
||||
patch in pinbn {
|
||||
int a;
|
||||
} pinbi;
|
||||
|
||||
centroid out vec3 myColor2;
|
||||
centroid in vec3 centr[];
|
||||
sample out vec4 perSampleColor;
|
||||
|
||||
void bbbad()
|
||||
{
|
||||
gl_BoundingBoxOES; // ERROR, wrong stage
|
||||
}
|
255
3rdparty/bgfx/3rdparty/glslang/Test/320.vert
vendored
Normal file
255
3rdparty/bgfx/3rdparty/glslang/Test/320.vert
vendored
Normal file
@ -0,0 +1,255 @@
|
||||
#version 320 es
|
||||
|
||||
out outbname {
|
||||
int a;
|
||||
out vec4 v;
|
||||
highp sampler2D s; // ERROR, opaque type
|
||||
} outbinst;
|
||||
|
||||
out outbname2 {
|
||||
layout(location = 12) int aAnon;
|
||||
layout(location = 13) vec4 vAnon;
|
||||
};
|
||||
|
||||
layout(location = 12) out highp int aliased; // ERROR, aliasing location
|
||||
|
||||
in inbname { int a; } inbinst; // ERROR, no in block in vertex shader
|
||||
|
||||
out gl_PerVertex { // ERROR, has extra member
|
||||
highp vec4 gl_Position;
|
||||
highp vec4 t;
|
||||
};
|
||||
|
||||
void main()
|
||||
{
|
||||
int sum = gl_VertexID +
|
||||
gl_InstanceID;
|
||||
gl_Position = vec4(1.0);
|
||||
gl_PointSize = 2.0; // ERROR, removed by redeclaration
|
||||
}
|
||||
|
||||
out gl_PerVertex { // ERROR, already used and already redeclared
|
||||
highp vec4 gl_Position;
|
||||
highp vec4 t;
|
||||
};
|
||||
|
||||
smooth out smo { // ERROR, no smooth on a block
|
||||
int i;
|
||||
} smon;
|
||||
|
||||
flat out fmo { // ERROR, no flat on a block
|
||||
int i;
|
||||
} fmon;
|
||||
|
||||
centroid out cmo { // ERROR, no centroid on a block
|
||||
int i;
|
||||
} cmon;
|
||||
|
||||
invariant out imo { // ERROR, no invariant on a block
|
||||
int i;
|
||||
} imon;
|
||||
|
||||
in vec2 inf, ing;
|
||||
uniform ivec2 offsets[4];
|
||||
uniform sampler2D sArray[4];
|
||||
uniform int sIndex;
|
||||
layout(binding = 0) uniform atomic_uint auArray[2];
|
||||
uniform ubName { int i; } ubInst[4];
|
||||
buffer bbName { int i; } bbInst[4];
|
||||
highp uniform writeonly image2D iArray[5];
|
||||
const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4));
|
||||
|
||||
void pfoo()
|
||||
{
|
||||
precise vec2 h;
|
||||
h = fma(inf, ing, h);
|
||||
sArray[sIndex + 1];
|
||||
ubInst[sIndex + 1];
|
||||
bbInst[sIndex - 2]; // ERROR, still not supported
|
||||
iArray[2];
|
||||
iArray[sIndex - 2];
|
||||
textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf));
|
||||
textureGatherOffsets(sArray[0], vec2(0.1), constOffsets);
|
||||
textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant
|
||||
}
|
||||
|
||||
uniform samplerBuffer noPreSamp1; // ERROR, no default precision
|
||||
uniform isamplerBuffer noPreSamp2; // ERROR, no default precision
|
||||
uniform usamplerBuffer noPreSamp3; // ERROR, no default precision
|
||||
uniform writeonly imageBuffer noPreSamp4; // ERROR, no default precision
|
||||
uniform writeonly iimageBuffer noPreSamp5; // ERROR, no default precision
|
||||
uniform writeonly uimageBuffer noPreSamp6; // ERROR, no default precision
|
||||
|
||||
precision highp samplerBuffer;
|
||||
precision highp isamplerBuffer;
|
||||
precision highp usamplerBuffer;
|
||||
precision highp imageBuffer;
|
||||
precision highp iimageBuffer;
|
||||
precision highp uimageBuffer;
|
||||
|
||||
#ifdef GL_OES_texture_buffer
|
||||
uniform samplerBuffer bufSamp1;
|
||||
uniform isamplerBuffer bufSamp2;
|
||||
uniform usamplerBuffer bufSamp3;
|
||||
#endif
|
||||
#ifdef GL_EXT_texture_buffer
|
||||
uniform writeonly imageBuffer bufSamp4;
|
||||
uniform writeonly iimageBuffer bufSamp5;
|
||||
uniform writeonly uimageBuffer bufSamp6;
|
||||
#endif
|
||||
|
||||
void bufferT()
|
||||
{
|
||||
highp int s1 = textureSize(bufSamp1);
|
||||
highp int s2 = textureSize(bufSamp2);
|
||||
highp int s3 = textureSize(bufSamp3);
|
||||
|
||||
highp int s4 = imageSize(bufSamp4);
|
||||
highp int s5 = imageSize(bufSamp5);
|
||||
highp int s6 = imageSize(bufSamp6);
|
||||
|
||||
highp vec4 f1 = texelFetch(bufSamp1, s1);
|
||||
highp ivec4 f2 = texelFetch(bufSamp2, s2);
|
||||
highp uvec4 f3 = texelFetch(bufSamp3, s3);
|
||||
}
|
||||
|
||||
uniform writeonly imageCubeArray noPreCA1; // ERROR, no default precision
|
||||
uniform writeonly iimageCubeArray noPreCA2; // ERROR, no default precision
|
||||
uniform writeonly uimageCubeArray noPreCA3; // ERROR, no default precision
|
||||
|
||||
uniform samplerCubeArray noPreCA4; // ERROR, no default precision
|
||||
uniform samplerCubeArrayShadow noPreCA5; // ERROR, no default precision
|
||||
uniform isamplerCubeArray noPreCA6; // ERROR, no default precision
|
||||
uniform usamplerCubeArray noPreCA7; // ERROR, no default precision
|
||||
|
||||
precision highp imageCubeArray ;
|
||||
precision highp iimageCubeArray ;
|
||||
precision highp uimageCubeArray ;
|
||||
|
||||
precision highp samplerCubeArray ;
|
||||
precision highp samplerCubeArrayShadow;
|
||||
precision highp isamplerCubeArray ;
|
||||
precision highp usamplerCubeArray ;
|
||||
|
||||
uniform writeonly imageCubeArray CA1;
|
||||
uniform writeonly iimageCubeArray CA2;
|
||||
uniform writeonly uimageCubeArray CA3;
|
||||
|
||||
layout(rgba16f) uniform readonly imageCubeArray rCA1;
|
||||
layout(rgba32i) uniform readonly iimageCubeArray rCA2;
|
||||
layout(r32ui) uniform readonly uimageCubeArray rCA3;
|
||||
|
||||
#ifdef GL_OES_texture_cube_map_array
|
||||
uniform samplerCubeArray CA4;
|
||||
uniform samplerCubeArrayShadow CA5;
|
||||
uniform isamplerCubeArray CA6;
|
||||
uniform usamplerCubeArray CA7;
|
||||
#endif
|
||||
|
||||
void CAT()
|
||||
{
|
||||
highp ivec3 s4 = textureSize(CA4, 1);
|
||||
highp ivec3 s5 = textureSize(CA5, 1);
|
||||
highp ivec3 s6 = textureSize(CA6, 1);
|
||||
highp ivec3 s7 = textureSize(CA7, 1);
|
||||
|
||||
highp vec4 t4 = texture(CA4, vec4(0.5));
|
||||
highp float t5 = texture(CA5, vec4(0.5), 3.0);
|
||||
highp ivec4 t6 = texture(CA6, vec4(0.5));
|
||||
highp uvec4 t7 = texture(CA7, vec4(0.5));
|
||||
|
||||
highp vec4 L4 = textureLod(CA4, vec4(0.5), 0.24);
|
||||
highp ivec4 L6 = textureLod(CA6, vec4(0.5), 0.26);
|
||||
highp uvec4 L7 = textureLod(CA7, vec4(0.5), 0.27);
|
||||
|
||||
highp vec4 g4 = textureGrad(CA4, vec4(0.5), vec3(0.1), vec3(0.2));
|
||||
highp ivec4 g6 = textureGrad(CA6, vec4(0.5), vec3(0.1), vec3(0.2));
|
||||
highp uvec4 g7 = textureGrad(CA7, vec4(0.5), vec3(0.1), vec3(0.2));
|
||||
|
||||
highp vec4 gath4 = textureGather(CA4, vec4(0.5));
|
||||
highp vec4 gathC4 = textureGather(CA4, vec4(0.5), 2);
|
||||
highp ivec4 gath6 = textureGather(CA6, vec4(0.5));
|
||||
highp ivec4 gathC6 = textureGather(CA6, vec4(0.5), 1);
|
||||
highp uvec4 gath7 = textureGather(CA7, vec4(0.5));
|
||||
highp uvec4 gathC7 = textureGather(CA7, vec4(0.5), 0);
|
||||
|
||||
highp vec4 gath5 = textureGather(CA5, vec4(0.5), 2.5);
|
||||
|
||||
highp ivec3 s1 = imageSize(CA1);
|
||||
highp ivec3 s2 = imageSize(CA2);
|
||||
highp ivec3 s3 = imageSize(CA3);
|
||||
|
||||
imageStore(CA1, s3, vec4(1));
|
||||
imageStore(CA2, s3, ivec4(1));
|
||||
imageStore(CA3, s3, uvec4(1));
|
||||
|
||||
highp vec4 cl1 = imageLoad(rCA1, s3);
|
||||
highp ivec4 cl2 = imageLoad(rCA2, s3);
|
||||
highp uvec4 cl3 = imageLoad(rCA3, s3);
|
||||
}
|
||||
|
||||
uniform sampler2DMSArray noPrec2DMS; // ERROR, no default
|
||||
uniform isampler2DMSArray noPrec2DMSi; // ERROR, no default
|
||||
uniform usampler2DMSArray noPrec2DMSu; // ERROR, no default
|
||||
|
||||
precision highp sampler2DMSArray;
|
||||
precision highp isampler2DMSArray;
|
||||
precision highp usampler2DMSArray;
|
||||
|
||||
uniform sampler2DMSArray samp2DMSA;
|
||||
uniform isampler2DMSArray samp2DMSAi;
|
||||
uniform usampler2DMSArray samp2DMSAu;
|
||||
|
||||
void MSA()
|
||||
{
|
||||
vec4 tf = texelFetch(samp2DMSA, ivec3(5), 2);
|
||||
ivec4 tfi = texelFetch(samp2DMSAi, ivec3(5), 2);
|
||||
uvec4 tfu = texelFetch(samp2DMSAu, ivec3(5), 2);
|
||||
|
||||
ivec3 tfs = textureSize(samp2DMSA);
|
||||
ivec3 tfsi = textureSize(samp2DMSAi);
|
||||
ivec3 tfsb = textureSize(samp2DMSAi, 4); // ERROR, no lod
|
||||
ivec3 tfsu = textureSize(samp2DMSAu);
|
||||
}
|
||||
|
||||
uniform layout(r32f) highp image2D im2Df;
|
||||
uniform layout(r32ui) highp uimage2D im2Du;
|
||||
uniform layout(r32i) highp iimage2D im2Di;
|
||||
uniform ivec2 P;
|
||||
|
||||
void goodImageAtom()
|
||||
{
|
||||
float datf;
|
||||
int dati;
|
||||
uint datu;
|
||||
|
||||
imageAtomicAdd( im2Di, P, dati);
|
||||
imageAtomicAdd( im2Du, P, datu);
|
||||
imageAtomicMin( im2Di, P, dati);
|
||||
imageAtomicMin( im2Du, P, datu);
|
||||
imageAtomicMax( im2Di, P, dati);
|
||||
imageAtomicMax( im2Du, P, datu);
|
||||
imageAtomicAnd( im2Di, P, dati);
|
||||
imageAtomicAnd( im2Du, P, datu);
|
||||
imageAtomicOr( im2Di, P, dati);
|
||||
imageAtomicOr( im2Du, P, datu);
|
||||
imageAtomicXor( im2Di, P, dati);
|
||||
imageAtomicXor( im2Du, P, datu);
|
||||
imageAtomicExchange(im2Di, P, dati);
|
||||
imageAtomicExchange(im2Du, P, datu);
|
||||
imageAtomicExchange(im2Df, P, datf);
|
||||
imageAtomicCompSwap(im2Di, P, 3, dati);
|
||||
imageAtomicCompSwap(im2Du, P, 5u, datu);
|
||||
}
|
||||
|
||||
sample out vec4 colorSample;
|
||||
flat sample out vec4 colorfsi;
|
||||
sample out vec3 sampInArray[4];
|
||||
in vec4 inv4;
|
||||
|
||||
void badInterp()
|
||||
{
|
||||
interpolateAtCentroid(inv4); // ERROR, wrong stage
|
||||
interpolateAtSample(inv4, 1); // ERROR, need extension
|
||||
interpolateAtOffset(inv4, vec2(0.2)); // ERROR, need extension
|
||||
}
|
10
3rdparty/bgfx/3rdparty/glslang/Test/400.frag
vendored
10
3rdparty/bgfx/3rdparty/glslang/Test/400.frag
vendored
@ -184,10 +184,8 @@ void qlod()
|
||||
lod = textureQueryLod(sampRect, pf2); // ERROR
|
||||
}
|
||||
|
||||
struct SKeyMem { int precise; } KeyMem; // ERROR, keyword can't be a member
|
||||
|
||||
uniform uint uu;
|
||||
out int iout;
|
||||
out uint iout;
|
||||
|
||||
void bitwiseConv()
|
||||
{
|
||||
@ -195,3 +193,9 @@ void bitwiseConv()
|
||||
iout += uu ^ i;
|
||||
iout += i | uu;
|
||||
}
|
||||
|
||||
subroutine(subT1, subT2);
|
||||
subroutine float subT1() { return 1.0; }
|
||||
subroutine float subT2() { return 1.0; }
|
||||
|
||||
struct SKeyMem { int precise; } KeyMem; // ERROR, keyword can't be a member
|
||||
|
2
3rdparty/bgfx/3rdparty/glslang/Test/435.vert
vendored
Normal file
2
3rdparty/bgfx/3rdparty/glslang/Test/435.vert
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
#version 435
|
||||
void main() {}
|
5
3rdparty/bgfx/3rdparty/glslang/Test/450.comp
vendored
5
3rdparty/bgfx/3rdparty/glslang/Test/450.comp
vendored
@ -1 +1,6 @@
|
||||
#version 450 core
|
||||
layout(local_size_x = 0) in; // ERROR, 0 not allowed
|
||||
void main()
|
||||
{
|
||||
shared float f; // ERROR shared must be global
|
||||
}
|
||||
|
12
3rdparty/bgfx/3rdparty/glslang/Test/450.frag
vendored
12
3rdparty/bgfx/3rdparty/glslang/Test/450.frag
vendored
@ -54,3 +54,15 @@ float cull(int i)
|
||||
{
|
||||
return (i >= 6) ? gl_CullDistance[5] : gl_CullDistance[i];
|
||||
}
|
||||
|
||||
layout(location = 6) in bName1 {
|
||||
float f;
|
||||
layout(location = 7) float g;
|
||||
mat4 m;
|
||||
} bInst1;
|
||||
layout(location = 12) in bName2 {
|
||||
float f;
|
||||
layout(location = 13) float g; // ERROR, location on array
|
||||
} bInst2[3];
|
||||
|
||||
layout(early_fragment_tests) in float f; // ERROR, must be standalone
|
||||
|
5
3rdparty/bgfx/3rdparty/glslang/Test/450.geom
vendored
5
3rdparty/bgfx/3rdparty/glslang/Test/450.geom
vendored
@ -8,7 +8,12 @@ out gl_PerVertex {
|
||||
float gl_CullDistance[3];
|
||||
};
|
||||
|
||||
layout(triangles) in;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_in[3].gl_Position; // ERROR, out of range
|
||||
gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
|
||||
}
|
||||
|
||||
layout(points) in float f[3]; // ERROR, must be standalone
|
||||
|
9
3rdparty/bgfx/3rdparty/glslang/Test/450.tesc
vendored
9
3rdparty/bgfx/3rdparty/glslang/Test/450.tesc
vendored
@ -12,3 +12,12 @@ void main()
|
||||
{
|
||||
gl_out[gl_InvocationID].gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
|
||||
}
|
||||
|
||||
layout(location = 4) out bName1 {
|
||||
float f;
|
||||
layout(location = 5) float g;
|
||||
} bInst1[2];
|
||||
layout(location = 6) out bName2 {
|
||||
float f;
|
||||
layout(location = 7) float g; // ERROR, location on array
|
||||
} bInst2[2][3];
|
||||
|
7
3rdparty/bgfx/3rdparty/glslang/Test/450.tese
vendored
7
3rdparty/bgfx/3rdparty/glslang/Test/450.tese
vendored
@ -12,3 +12,10 @@ void main()
|
||||
{
|
||||
gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
|
||||
}
|
||||
|
||||
layout(equal_spacing) in float f1[]; // ERROR, must be standalone
|
||||
layout(fractional_even_spacing) in float f2[]; // ERROR, must be standalone
|
||||
layout(fractional_odd_spacing) in float f3[]; // ERROR, must be standalone
|
||||
layout(cw) in float f4[]; // ERROR, must be standalone
|
||||
layout(ccw) in float f5[]; // ERROR, must be standalone
|
||||
layout(point_mode) in float f6[]; // ERROR, must be standalone
|
||||
|
20
3rdparty/bgfx/3rdparty/glslang/Test/450.vert
vendored
20
3rdparty/bgfx/3rdparty/glslang/Test/450.vert
vendored
@ -22,7 +22,27 @@ out SA outSA;
|
||||
struct SS { float f; S s; };
|
||||
out SS outSS;
|
||||
|
||||
layout(binding = 0) uniform atomic_uint aui;
|
||||
uint ui;
|
||||
|
||||
void foo()
|
||||
{
|
||||
SS::f;
|
||||
atomicCounterAdd(aui, ui); // ERROR, need 4.6
|
||||
atomicCounterSubtract(aui, ui); // ERROR, need 4.6
|
||||
atomicCounterMin(aui, ui); // ERROR, need 4.6
|
||||
atomicCounterMax(aui, ui); // ERROR, need 4.6
|
||||
atomicCounterAnd(aui, ui); // ERROR, need 4.6
|
||||
atomicCounterOr(aui, ui); // ERROR, need 4.6
|
||||
atomicCounterXor(aui, ui); // ERROR, need 4.6
|
||||
atomicCounterExchange(aui, ui); // ERROR, need 4.6
|
||||
atomicCounterCompSwap(aui, ui, ui); // ERROR, need 4.6
|
||||
|
||||
int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; // ERROR, need 4.6
|
||||
|
||||
bool b1;
|
||||
anyInvocation(b1); // ERROR, need 4.6
|
||||
allInvocations(b1); // ERROR, need 4.6
|
||||
allInvocationsEqual(b1); // ERROR, need 4.6
|
||||
}
|
||||
; // ERROR: no extraneous semicolons
|
||||
|
17
3rdparty/bgfx/3rdparty/glslang/Test/460.frag
vendored
Normal file
17
3rdparty/bgfx/3rdparty/glslang/Test/460.frag
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
#version 460 core
|
||||
|
||||
struct S {
|
||||
float f;
|
||||
vec4 v;
|
||||
};
|
||||
|
||||
in S s;
|
||||
|
||||
void main()
|
||||
{
|
||||
interpolateAtCentroid(s.v);
|
||||
bool b1;
|
||||
b1 = anyInvocation(b1);
|
||||
b1 = allInvocations(b1);
|
||||
b1 = allInvocationsEqual(b1);
|
||||
}
|
15
3rdparty/bgfx/3rdparty/glslang/Test/460.vert
vendored
Normal file
15
3rdparty/bgfx/3rdparty/glslang/Test/460.vert
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
#version 460 core
|
||||
|
||||
int i;
|
||||
; // extraneous semicolon okay
|
||||
float f;;;
|
||||
|
||||
void main()
|
||||
{
|
||||
bool b1;
|
||||
b1 = anyInvocation(b1);
|
||||
b1 = allInvocations(b1);
|
||||
b1 = allInvocationsEqual(b1);
|
||||
}
|
||||
;
|
||||
;
|
1
3rdparty/bgfx/3rdparty/glslang/Test/bar.h
vendored
Normal file
1
3rdparty/bgfx/3rdparty/glslang/Test/bar.h
vendored
Normal file
@ -0,0 +1 @@
|
||||
float4 i1;
|
50
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
vendored
Normal file
50
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
hlsl.aliasOpaque.frag
|
||||
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80002
|
||||
// Id's are bound by 81
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 57
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 37 "gss2"
|
||||
Name 39 "gss"
|
||||
Name 43 "gtex"
|
||||
Name 57 "@entryPointOutput"
|
||||
Decorate 37(gss2) DescriptorSet 0
|
||||
Decorate 39(gss) DescriptorSet 0
|
||||
Decorate 43(gtex) DescriptorSet 0
|
||||
Decorate 57(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeSampler
|
||||
8: TypeFloat 32
|
||||
10: TypeImage 8(float) 2D sampled format:Unknown
|
||||
12: TypeVector 8(float) 4
|
||||
25: TypeSampledImage 10
|
||||
27: TypeVector 8(float) 2
|
||||
28: 8(float) Constant 1045220557
|
||||
29: 8(float) Constant 1050253722
|
||||
30: 27(fvec2) ConstantComposite 28 29
|
||||
36: TypePointer UniformConstant 6
|
||||
37(gss2): 36(ptr) Variable UniformConstant
|
||||
39(gss): 36(ptr) Variable UniformConstant
|
||||
42: TypePointer UniformConstant 10
|
||||
43(gtex): 42(ptr) Variable UniformConstant
|
||||
46: 8(float) Constant 1077936128
|
||||
56: TypePointer Output 12(fvec4)
|
||||
57(@entryPointOutput): 56(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
68: 6 Load 39(gss)
|
||||
69: 10 Load 43(gtex)
|
||||
78: 25 SampledImage 69 68
|
||||
79: 12(fvec4) ImageSampleImplicitLod 78 30
|
||||
80: 12(fvec4) VectorTimesScalar 79 46
|
||||
Store 57(@entryPointOutput) 80
|
||||
Return
|
||||
FunctionEnd
|
65
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
vendored
Normal file
65
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
hlsl.flattenOpaque.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80002
|
||||
// Id's are bound by 144
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 97
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 38 "tex"
|
||||
Name 70 "s.s2D"
|
||||
Name 79 "s2.s2D"
|
||||
Name 80 "s2.tex"
|
||||
Name 97 "@entryPointOutput"
|
||||
Decorate 38(tex) DescriptorSet 0
|
||||
Decorate 70(s.s2D) DescriptorSet 0
|
||||
Decorate 79(s2.s2D) DescriptorSet 0
|
||||
Decorate 80(s2.tex) DescriptorSet 0
|
||||
Decorate 97(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeSampler
|
||||
8: TypeFloat 32
|
||||
9: TypeVector 8(float) 4
|
||||
14: TypeVector 8(float) 2
|
||||
21: TypeImage 8(float) 2D sampled format:Unknown
|
||||
37: TypePointer UniformConstant 21
|
||||
38(tex): 37(ptr) Variable UniformConstant
|
||||
41: TypeSampledImage 21
|
||||
43: 8(float) Constant 1045220557
|
||||
44: 8(float) Constant 1050253722
|
||||
45: 14(fvec2) ConstantComposite 43 44
|
||||
69: TypePointer UniformConstant 6
|
||||
70(s.s2D): 69(ptr) Variable UniformConstant
|
||||
79(s2.s2D): 69(ptr) Variable UniformConstant
|
||||
80(s2.tex): 37(ptr) Variable UniformConstant
|
||||
96: TypePointer Output 9(fvec4)
|
||||
97(@entryPointOutput): 96(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
109: 6 Load 70(s.s2D)
|
||||
123: 21 Load 38(tex)
|
||||
125: 41 SampledImage 123 109
|
||||
126: 9(fvec4) ImageSampleImplicitLod 125 45
|
||||
111: 6 Load 70(s.s2D)
|
||||
128: 21 Load 38(tex)
|
||||
130: 41 SampledImage 128 111
|
||||
132: 9(fvec4) ImageSampleImplicitLod 130 45
|
||||
113: 9(fvec4) FAdd 126 132
|
||||
114: 6 Load 79(s2.s2D)
|
||||
115: 21 Load 80(s2.tex)
|
||||
136: 41 SampledImage 115 114
|
||||
137: 9(fvec4) ImageSampleImplicitLod 136 45
|
||||
117: 9(fvec4) FAdd 113 137
|
||||
118: 6 Load 79(s2.s2D)
|
||||
119: 21 Load 80(s2.tex)
|
||||
141: 41 SampledImage 119 118
|
||||
143: 9(fvec4) ImageSampleImplicitLod 141 45
|
||||
121: 9(fvec4) FAdd 117 143
|
||||
Store 97(@entryPointOutput) 121
|
||||
Return
|
||||
FunctionEnd
|
49
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
vendored
Normal file
49
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
hlsl.flattenOpaqueInit.vert
|
||||
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80002
|
||||
// Id's are bound by 125
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 82
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 17 "FxaaTex"
|
||||
MemberName 17(FxaaTex) 0 "smpl"
|
||||
MemberName 17(FxaaTex) 1 "tex"
|
||||
Name 38 "g_tInputTexture_sampler"
|
||||
Name 42 "g_tInputTexture"
|
||||
Name 82 "@entryPointOutput"
|
||||
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
|
||||
Decorate 42(g_tInputTexture) DescriptorSet 0
|
||||
Decorate 82(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeSampler
|
||||
8: TypeFloat 32
|
||||
9: TypeImage 8(float) 2D sampled format:Unknown
|
||||
11: TypeVector 8(float) 4
|
||||
17(FxaaTex): TypeStruct 6 9
|
||||
26: TypeSampledImage 9
|
||||
28: TypeVector 8(float) 2
|
||||
29: 8(float) Constant 1050253722
|
||||
30: 8(float) Constant 1053609165
|
||||
31: 28(fvec2) ConstantComposite 29 30
|
||||
32: 8(float) Constant 0
|
||||
37: TypePointer UniformConstant 6
|
||||
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant
|
||||
41: TypePointer UniformConstant 9
|
||||
42(g_tInputTexture): 41(ptr) Variable UniformConstant
|
||||
81: TypePointer Output 11(fvec4)
|
||||
82(@entryPointOutput): 81(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
96: 6 Load 38(g_tInputTexture_sampler)
|
||||
97: 9 Load 42(g_tInputTexture)
|
||||
123: 26 SampledImage 97 96
|
||||
124: 11(fvec4) ImageSampleExplicitLod 123 31 Lod 32
|
||||
Store 82(@entryPointOutput) 124
|
||||
Return
|
||||
FunctionEnd
|
49
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
vendored
Normal file
49
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
hlsl.flattenOpaqueInitMix.vert
|
||||
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80002
|
||||
// Id's are bound by 100
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 68
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 34 "FxaaTex"
|
||||
MemberName 34(FxaaTex) 0 "smpl"
|
||||
MemberName 34(FxaaTex) 1 "tex"
|
||||
MemberName 34(FxaaTex) 2 "f"
|
||||
Name 38 "g_tInputTexture_sampler"
|
||||
Name 41 "g_tInputTexture"
|
||||
Name 68 "@entryPointOutput"
|
||||
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
|
||||
Decorate 41(g_tInputTexture) DescriptorSet 0
|
||||
Decorate 68(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeSampler
|
||||
8: TypeFloat 32
|
||||
9: TypeImage 8(float) 2D sampled format:Unknown
|
||||
12: TypeVector 8(float) 4
|
||||
24: TypeSampledImage 9
|
||||
28: TypeVector 8(float) 2
|
||||
30: 8(float) Constant 0
|
||||
34(FxaaTex): TypeStruct 6 9 8(float)
|
||||
37: TypePointer UniformConstant 6
|
||||
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant
|
||||
40: TypePointer UniformConstant 9
|
||||
41(g_tInputTexture): 40(ptr) Variable UniformConstant
|
||||
43: 8(float) Constant 1056964608
|
||||
67: TypePointer Output 12(fvec4)
|
||||
68(@entryPointOutput): 67(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
79: 6 Load 38(g_tInputTexture_sampler)
|
||||
80: 9 Load 41(g_tInputTexture)
|
||||
95: 24 SampledImage 80 79
|
||||
98: 28(fvec2) CompositeConstruct 43 43
|
||||
99: 12(fvec4) ImageSampleExplicitLod 95 98 Lod 30
|
||||
Store 68(@entryPointOutput) 99
|
||||
Return
|
||||
FunctionEnd
|
48
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out
vendored
Normal file
48
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
hlsl.flattenSubset.frag
|
||||
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80002
|
||||
// Id's are bound by 85
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 54 57
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 17 "samp"
|
||||
Name 41 "tex"
|
||||
Name 54 "vpos"
|
||||
Name 57 "@entryPointOutput"
|
||||
Decorate 17(samp) DescriptorSet 0
|
||||
Decorate 41(tex) DescriptorSet 0
|
||||
Decorate 54(vpos) Location 0
|
||||
Decorate 57(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
13: TypeSampler
|
||||
16: TypePointer UniformConstant 13
|
||||
17(samp): 16(ptr) Variable UniformConstant
|
||||
39: TypeImage 6(float) 2D sampled format:Unknown
|
||||
40: TypePointer UniformConstant 39
|
||||
41(tex): 40(ptr) Variable UniformConstant
|
||||
44: TypeSampledImage 39
|
||||
46: TypeVector 6(float) 2
|
||||
47: 6(float) Constant 1056964608
|
||||
48: 46(fvec2) ConstantComposite 47 47
|
||||
53: TypePointer Input 7(fvec4)
|
||||
54(vpos): 53(ptr) Variable Input
|
||||
56: TypePointer Output 7(fvec4)
|
||||
57(@entryPointOutput): 56(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
74: 13 Load 17(samp)
|
||||
81: 39 Load 41(tex)
|
||||
83: 44 SampledImage 81 74
|
||||
84: 7(fvec4) ImageSampleImplicitLod 83 48
|
||||
Store 57(@entryPointOutput) 84
|
||||
Return
|
||||
FunctionEnd
|
37
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
vendored
Normal file
37
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
hlsl.flattenSubset2.frag
|
||||
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80002
|
||||
// Id's are bound by 44
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 40 43
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 31 "someTex"
|
||||
Name 40 "vpos"
|
||||
Name 43 "@entryPointOutput"
|
||||
Decorate 31(someTex) DescriptorSet 0
|
||||
Decorate 40(vpos) Location 0
|
||||
Decorate 43(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
17: TypeImage 6(float) 2D sampled format:Unknown
|
||||
30: TypePointer UniformConstant 17
|
||||
31(someTex): 30(ptr) Variable UniformConstant
|
||||
34: 6(float) Constant 0
|
||||
35: 7(fvec4) ConstantComposite 34 34 34 34
|
||||
39: TypePointer Input 7(fvec4)
|
||||
40(vpos): 39(ptr) Variable Input
|
||||
42: TypePointer Output 7(fvec4)
|
||||
43(@entryPointOutput): 42(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
Store 43(@entryPointOutput) 35
|
||||
Return
|
||||
FunctionEnd
|
91
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
vendored
Normal file
91
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
vendored
Normal file
@ -0,0 +1,91 @@
|
||||
hlsl.partialFlattenLocal.vert
|
||||
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80002
|
||||
// Id's are bound by 148
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 90 93
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 17 "tex"
|
||||
Name 90 "pos"
|
||||
Name 93 "@entryPointOutput"
|
||||
Decorate 17(tex) DescriptorSet 0
|
||||
Decorate 90(pos) Location 0
|
||||
Decorate 93(@entryPointOutput) BuiltIn Position
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
13: TypeImage 6(float) 2D sampled format:Unknown
|
||||
16: TypePointer UniformConstant 13
|
||||
17(tex): 16(ptr) Variable UniformConstant
|
||||
19: TypeVector 6(float) 3
|
||||
20: TypeInt 32 0
|
||||
21: 20(int) Constant 3
|
||||
22: TypeArray 19(fvec3) 21
|
||||
23: TypePointer Function 22
|
||||
25: TypeInt 32 1
|
||||
26: 25(int) Constant 0
|
||||
27: 6(float) Constant 0
|
||||
28: 19(fvec3) ConstantComposite 27 27 27
|
||||
29: TypePointer Function 19(fvec3)
|
||||
31: TypeVector 6(float) 2
|
||||
32: 20(int) Constant 2
|
||||
33: TypeArray 31(fvec2) 32
|
||||
34: TypePointer Function 33
|
||||
36: 6(float) Constant 1065353216
|
||||
37: 31(fvec2) ConstantComposite 27 36
|
||||
38: TypePointer Function 31(fvec2)
|
||||
52: 25(int) Constant 1
|
||||
53: TypeBool
|
||||
89: TypePointer Input 7(fvec4)
|
||||
90(pos): 89(ptr) Variable Input
|
||||
92: TypePointer Output 7(fvec4)
|
||||
93(@entryPointOutput): 92(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
98: 23(ptr) Variable Function
|
||||
99: 34(ptr) Variable Function
|
||||
91: 7(fvec4) Load 90(pos)
|
||||
110: 29(ptr) AccessChain 98 26
|
||||
Store 110 28
|
||||
111: 38(ptr) AccessChain 99 26
|
||||
Store 111 37
|
||||
Branch 112
|
||||
112: Label
|
||||
147: 25(int) Phi 26 5 131 114
|
||||
LoopMerge 113 114 None
|
||||
Branch 115
|
||||
115: Label
|
||||
117: 53(bool) SLessThan 147 52
|
||||
BranchConditional 117 118 113
|
||||
118: Label
|
||||
121: 38(ptr) AccessChain 99 147
|
||||
122: 31(fvec2) Load 121
|
||||
123: 29(ptr) AccessChain 98 147
|
||||
124: 19(fvec3) Load 123
|
||||
125: 31(fvec2) VectorShuffle 124 124 0 1
|
||||
126: 31(fvec2) FAdd 125 122
|
||||
127: 29(ptr) AccessChain 98 147
|
||||
128: 19(fvec3) Load 127
|
||||
129: 19(fvec3) VectorShuffle 128 126 3 4 2
|
||||
Store 127 129
|
||||
Branch 114
|
||||
114: Label
|
||||
131: 25(int) IAdd 147 52
|
||||
Branch 112
|
||||
113: Label
|
||||
133: 22 Load 98
|
||||
146: 19(fvec3) CompositeExtract 133 0
|
||||
140: 6(float) CompositeExtract 146 0
|
||||
141: 6(float) CompositeExtract 146 1
|
||||
142: 6(float) CompositeExtract 146 2
|
||||
143: 7(fvec4) CompositeConstruct 140 141 142 27
|
||||
144: 7(fvec4) FAdd 91 143
|
||||
Store 93(@entryPointOutput) 144
|
||||
Return
|
||||
FunctionEnd
|
38
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
vendored
Normal file
38
3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
hlsl.partialFlattenMixed.vert
|
||||
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80002
|
||||
// Id's are bound by 31
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 27 30
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 20 "tex"
|
||||
Name 27 "pos"
|
||||
Name 30 "@entryPointOutput"
|
||||
Decorate 20(tex) DescriptorSet 0
|
||||
Decorate 27(pos) Location 0
|
||||
Decorate 30(@entryPointOutput) BuiltIn Position
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
13: TypeImage 6(float) 2D sampled format:Unknown
|
||||
14: TypeInt 32 0
|
||||
15: 14(int) Constant 2
|
||||
16: TypeArray 13 15
|
||||
19: TypePointer UniformConstant 16
|
||||
20(tex): 19(ptr) Variable UniformConstant
|
||||
26: TypePointer Input 7(fvec4)
|
||||
27(pos): 26(ptr) Variable Input
|
||||
29: TypePointer Output 7(fvec4)
|
||||
30(@entryPointOutput): 29(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
28: 7(fvec4) Load 27(pos)
|
||||
Store 30(@entryPointOutput) 28
|
||||
Return
|
||||
FunctionEnd
|
@ -84,7 +84,7 @@ ERROR: 0:194: '.' : cannot apply to an array: method
|
||||
ERROR: 0:194: 'a' : can't use function syntax on variable
|
||||
ERROR: 0:214: 'non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:3000: '#error' : line of this error should be 3000
|
||||
ERROR: 0:3002: '' : syntax error
|
||||
ERROR: 0:3002: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON
|
||||
ERROR: 77 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
172
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/100samplerExternal.frag.out
vendored
Normal file
172
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/100samplerExternal.frag.out
vendored
Normal file
@ -0,0 +1,172 @@
|
||||
100samplerExternal.frag
|
||||
ERROR: 0:20: 'textureSize' : no matching overloaded function found
|
||||
ERROR: 0:21: 'texture' : no matching overloaded function found
|
||||
ERROR: 0:22: 'texture' : no matching overloaded function found
|
||||
ERROR: 0:23: 'textureProj' : no matching overloaded function found
|
||||
ERROR: 0:24: 'textureProj' : no matching overloaded function found
|
||||
ERROR: 0:25: 'textureProj' : no matching overloaded function found
|
||||
ERROR: 0:26: 'textureProj' : no matching overloaded function found
|
||||
ERROR: 0:27: 'texelFetch' : no matching overloaded function found
|
||||
ERROR: 0:29: 'texture3D' : no matching overloaded function found
|
||||
ERROR: 0:30: 'texture2DProjLod' : no matching overloaded function found
|
||||
ERROR: 0:31: 'texture' : no matching overloaded function found
|
||||
ERROR: 0:32: 'textureProjLod' : no matching overloaded function found
|
||||
ERROR: 0:38: 'samplerExternalOES' : required extension not requested: GL_OES_EGL_image_external
|
||||
ERROR: 0:41: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON
|
||||
ERROR: 14 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Requested GL_OES_EGL_image_external
|
||||
Requested GL_OES_EGL_image_external_essl3
|
||||
ERROR: node is still EOpNull!
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 texture ( global lowp 4-component vector of float)
|
||||
0:12 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:12 Constant:
|
||||
0:12 0.200000
|
||||
0:12 0.200000
|
||||
0:13 texture ( global mediump 4-component vector of float)
|
||||
0:13 'mediumExt' ( uniform mediump samplerExternalOES)
|
||||
0:13 Constant:
|
||||
0:13 0.200000
|
||||
0:13 0.200000
|
||||
0:14 texture ( global highp 4-component vector of float)
|
||||
0:14 'highExt' ( uniform highp samplerExternalOES)
|
||||
0:14 Constant:
|
||||
0:14 0.200000
|
||||
0:14 0.200000
|
||||
0:15 textureProj ( global lowp 4-component vector of float)
|
||||
0:15 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:15 Constant:
|
||||
0:15 0.300000
|
||||
0:15 0.300000
|
||||
0:15 0.300000
|
||||
0:16 textureProj ( global lowp 4-component vector of float)
|
||||
0:16 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:16 Constant:
|
||||
0:16 0.300000
|
||||
0:16 0.300000
|
||||
0:16 0.300000
|
||||
0:16 0.300000
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child ( temp mediump int)
|
||||
0:18 'lod' ( temp mediump int)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child ( temp highp float)
|
||||
0:19 'bias' ( temp highp float)
|
||||
0:19 Constant:
|
||||
0:19 0.010000
|
||||
0:20 Constant:
|
||||
0:20 0.000000
|
||||
0:21 Constant:
|
||||
0:21 0.000000
|
||||
0:22 Constant:
|
||||
0:22 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:29 Constant:
|
||||
0:29 0.000000
|
||||
0:30 Constant:
|
||||
0:30 0.000000
|
||||
0:31 Constant:
|
||||
0:31 0.000000
|
||||
0:32 Constant:
|
||||
0:32 0.000000
|
||||
0:? Linker Objects
|
||||
0:? 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:? 'mediumExt' ( uniform mediump samplerExternalOES)
|
||||
0:? 'highExt' ( uniform highp samplerExternalOES)
|
||||
0:? 'badExt' ( uniform mediump samplerExternalOES)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Requested GL_OES_EGL_image_external
|
||||
Requested GL_OES_EGL_image_external_essl3
|
||||
ERROR: node is still EOpNull!
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 texture ( global lowp 4-component vector of float)
|
||||
0:12 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:12 Constant:
|
||||
0:12 0.200000
|
||||
0:12 0.200000
|
||||
0:13 texture ( global mediump 4-component vector of float)
|
||||
0:13 'mediumExt' ( uniform mediump samplerExternalOES)
|
||||
0:13 Constant:
|
||||
0:13 0.200000
|
||||
0:13 0.200000
|
||||
0:14 texture ( global highp 4-component vector of float)
|
||||
0:14 'highExt' ( uniform highp samplerExternalOES)
|
||||
0:14 Constant:
|
||||
0:14 0.200000
|
||||
0:14 0.200000
|
||||
0:15 textureProj ( global lowp 4-component vector of float)
|
||||
0:15 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:15 Constant:
|
||||
0:15 0.300000
|
||||
0:15 0.300000
|
||||
0:15 0.300000
|
||||
0:16 textureProj ( global lowp 4-component vector of float)
|
||||
0:16 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:16 Constant:
|
||||
0:16 0.300000
|
||||
0:16 0.300000
|
||||
0:16 0.300000
|
||||
0:16 0.300000
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child ( temp mediump int)
|
||||
0:18 'lod' ( temp mediump int)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child ( temp highp float)
|
||||
0:19 'bias' ( temp highp float)
|
||||
0:19 Constant:
|
||||
0:19 0.010000
|
||||
0:20 Constant:
|
||||
0:20 0.000000
|
||||
0:21 Constant:
|
||||
0:21 0.000000
|
||||
0:22 Constant:
|
||||
0:22 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:29 Constant:
|
||||
0:29 0.000000
|
||||
0:30 Constant:
|
||||
0:30 0.000000
|
||||
0:31 Constant:
|
||||
0:31 0.000000
|
||||
0:32 Constant:
|
||||
0:32 0.000000
|
||||
0:? Linker Objects
|
||||
0:? 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:? 'mediumExt' ( uniform mediump samplerExternalOES)
|
||||
0:? 'highExt' ( uniform highp samplerExternalOES)
|
||||
0:? 'badExt' ( uniform mediump samplerExternalOES)
|
||||
|
@ -52,7 +52,7 @@ ERROR: 0:209: 'assign' : cannot convert from ' const float' to ' temp 4-compone
|
||||
ERROR: 0:212: 'sampler2DRect' : Reserved word.
|
||||
ERROR: 0:244: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' global void' and a right operand of type ' const int' (or there is no acceptable conversion)
|
||||
ERROR: 0:245: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' const int' and a right operand of type ' global void' (or there is no acceptable conversion)
|
||||
ERROR: 0:248: '' : syntax error
|
||||
ERROR: 0:248: '' : syntax error, unexpected IDENTIFIER, expecting COMMA or SEMICOLON
|
||||
ERROR: 54 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
@ -210,7 +210,6 @@ ERROR: node is still EOpNull!
|
||||
0:? 'anon@0' ( out block{ 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})
|
||||
|
||||
400.tesc
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
@ -442,7 +441,6 @@ ERROR: node is still EOpNull!
|
||||
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.
|
||||
ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value
|
||||
ERROR: 0:5: 'triangles' : cannot change previously set input primitive
|
||||
ERROR: 0:6: 'isolines' : cannot change previously set input primitive
|
||||
@ -612,7 +610,6 @@ ERROR: node is still EOpNull!
|
||||
0:? 'pinbi' ( patch in block{ in int a})
|
||||
|
||||
410.tesc
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
@ -628,7 +625,6 @@ ERROR: node is still EOpNull!
|
||||
0:? 'patchOut' ( patch out 4-component vector of float)
|
||||
|
||||
420.tesc
|
||||
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out
|
||||
ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a
|
||||
ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb
|
||||
@ -747,7 +743,6 @@ ERROR: node is still EOpNull!
|
||||
0:? 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double)
|
||||
|
||||
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 ' 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
|
||||
@ -759,7 +754,7 @@ ERROR: 0:29: 'constructor' : cannot convert parameter 2 from ' const 2X2 matrix
|
||||
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: 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:40: 'constructor' : cannot convert parameter 1 from ' const structure{ global 4-component vector of float a, global 4-component vector of float b}' to ' temp structure{ global float s, global float t}'
|
||||
ERROR: 0:70: 'initializer list' : wrong number of structure members
|
||||
ERROR: 13 compilation errors. No code generated.
|
||||
|
||||
|
@ -43,7 +43,7 @@ ERROR: 0:156: 'invariant' : can only apply to an output
|
||||
ERROR: 0:157: 'invariant' : can only apply to an output
|
||||
ERROR: 0:158: 'invariant' : can only apply to an output
|
||||
ERROR: 0:160: 'imageBuffer' : Reserved word.
|
||||
ERROR: 0:160: '' : syntax error
|
||||
ERROR: 0:160: '' : syntax error, unexpected IMAGEBUFFER, expecting COMMA or SEMICOLON
|
||||
ERROR: 45 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
@ -43,10 +43,18 @@ ERROR: 0:172: 'std430' : requires the 'buffer' storage qualifier
|
||||
ERROR: 0:175: '' : array size required
|
||||
ERROR: 0:185: 'assign' : cannot convert from ' temp 4-element array of highp float' to ' temp 3-element array of highp float'
|
||||
ERROR: 0:186: 'assign' : cannot convert from ' temp 3-element array of highp float' to ' temp 4-element array of highp float'
|
||||
ERROR: 44 compilation errors. No code generated.
|
||||
ERROR: 0:189: 'num_views' : required extension not requested: Possible extensions include:
|
||||
GL_OVR_multiview
|
||||
GL_OVR_multiview2
|
||||
ERROR: 0:193: 'gl_ViewID_OVR' : required extension not requested: Possible extensions include:
|
||||
GL_OVR_multiview
|
||||
GL_OVR_multiview2
|
||||
ERROR: 0:198: 'num_views' : can only apply to a standalone qualifier
|
||||
ERROR: 47 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 300
|
||||
Requested GL_OVR_multiview
|
||||
ERROR: node is still EOpNull!
|
||||
0:27 Function Definition: main( ( global void)
|
||||
0:27 Function Parameters:
|
||||
@ -289,6 +297,14 @@ ERROR: node is still EOpNull!
|
||||
0:184 'y' ( temp 4-element array of highp float)
|
||||
0:185 'xp' ( temp 3-element array of highp float)
|
||||
0:186 'yp' ( temp 4-element array of highp float)
|
||||
0:191 Function Definition: mwErr( ( global void)
|
||||
0:191 Function Parameters:
|
||||
0:193 Sequence
|
||||
0:193 'gl_ViewID_OVR' ( in highp uint ViewIndex)
|
||||
0:201 Function Definition: mwOk( ( global void)
|
||||
0:201 Function Parameters:
|
||||
0:203 Sequence
|
||||
0:203 'gl_ViewID_OVR' ( in highp uint ViewIndex)
|
||||
0:? Linker Objects
|
||||
0:? 'm43' ( uniform highp 4X3 matrix of float)
|
||||
0:? 'm33' ( uniform highp 3X3 matrix of float)
|
||||
@ -323,6 +339,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'Binst' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp int a})
|
||||
0:? 'Bfoo' ( global highp int)
|
||||
0:? 'B430i' (layout( column_major std430) uniform block{layout( column_major std430 offset=0) uniform highp int a})
|
||||
0:? 'mwUniform' ( uniform highp float)
|
||||
0:? 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
|
||||
|
||||
@ -331,6 +348,7 @@ Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 300
|
||||
Requested GL_OVR_multiview
|
||||
ERROR: node is still EOpNull!
|
||||
0:27 Function Definition: main( ( global void)
|
||||
0:27 Function Parameters:
|
||||
@ -481,6 +499,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'Binst' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp int a})
|
||||
0:? 'Bfoo' ( global highp int)
|
||||
0:? 'B430i' (layout( column_major std430) uniform block{layout( column_major std430 offset=0) uniform highp int a})
|
||||
0:? 'mwUniform' ( uniform highp float)
|
||||
0:? 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
|
||||
|
||||
|
197
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/300samplerExternal.frag.out
vendored
Normal file
197
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/300samplerExternal.frag.out
vendored
Normal file
@ -0,0 +1,197 @@
|
||||
300samplerExternal.frag
|
||||
ERROR: 0:12: 'texture2D' : no matching overloaded function found
|
||||
ERROR: 0:13: 'texture2D' : no matching overloaded function found
|
||||
ERROR: 0:14: 'texture2D' : no matching overloaded function found
|
||||
ERROR: 0:15: 'texture2DProj' : no matching overloaded function found
|
||||
ERROR: 0:16: 'texture2DProj' : no matching overloaded function found
|
||||
ERROR: 0:29: 'texture3D' : no matching overloaded function found
|
||||
ERROR: 0:30: 'texture2DProjLod' : no matching overloaded function found
|
||||
ERROR: 0:31: 'texture' : no matching overloaded function found
|
||||
ERROR: 0:32: 'textureProjLod' : no matching overloaded function found
|
||||
ERROR: 0:38: 'samplerExternalOES' : required extension not requested: GL_OES_EGL_image_external_essl3
|
||||
ERROR: 0:41: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON
|
||||
ERROR: 11 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 300
|
||||
Requested GL_OES_EGL_image_external
|
||||
Requested GL_OES_EGL_image_external_essl3
|
||||
ERROR: node is still EOpNull!
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
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:16 Constant:
|
||||
0:16 0.000000
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child ( temp mediump int)
|
||||
0:18 'lod' ( temp mediump int)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child ( temp highp float)
|
||||
0:19 'bias' ( temp highp float)
|
||||
0:19 Constant:
|
||||
0:19 0.010000
|
||||
0:20 textureSize ( global highp 2-component vector of int, operation at mediump)
|
||||
0:20 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:20 'lod' ( temp mediump int)
|
||||
0:21 texture ( global lowp 4-component vector of float)
|
||||
0:21 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:21 Constant:
|
||||
0:21 0.200000
|
||||
0:21 0.200000
|
||||
0:22 texture ( global lowp 4-component vector of float, operation at highp)
|
||||
0:22 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:22 Constant:
|
||||
0:22 0.200000
|
||||
0:22 0.200000
|
||||
0:22 'bias' ( temp highp float)
|
||||
0:23 textureProj ( global lowp 4-component vector of float)
|
||||
0:23 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:23 Constant:
|
||||
0:23 0.200000
|
||||
0:23 0.200000
|
||||
0:23 0.200000
|
||||
0:24 textureProj ( global lowp 4-component vector of float, operation at highp)
|
||||
0:24 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:24 Constant:
|
||||
0:24 0.200000
|
||||
0:24 0.200000
|
||||
0:24 0.200000
|
||||
0:24 'bias' ( temp highp float)
|
||||
0:25 textureProj ( global lowp 4-component vector of float)
|
||||
0:25 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:25 Constant:
|
||||
0:25 0.200000
|
||||
0:25 0.200000
|
||||
0:25 0.200000
|
||||
0:25 0.200000
|
||||
0:26 textureProj ( global lowp 4-component vector of float, operation at highp)
|
||||
0:26 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:26 Constant:
|
||||
0:26 0.200000
|
||||
0:26 0.200000
|
||||
0:26 0.200000
|
||||
0:26 0.200000
|
||||
0:26 'bias' ( temp highp float)
|
||||
0:27 textureFetch ( global lowp 4-component vector of float, operation at mediump)
|
||||
0:27 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:27 Constant:
|
||||
0:27 4 (const int)
|
||||
0:27 4 (const int)
|
||||
0:27 'lod' ( temp mediump int)
|
||||
0:29 Constant:
|
||||
0:29 0.000000
|
||||
0:30 Constant:
|
||||
0:30 0.000000
|
||||
0:31 Constant:
|
||||
0:31 0.000000
|
||||
0:32 Constant:
|
||||
0:32 0.000000
|
||||
0:? Linker Objects
|
||||
0:? 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:? 'mediumExt' ( uniform mediump samplerExternalOES)
|
||||
0:? 'highExt' ( uniform highp samplerExternalOES)
|
||||
0:? 'badExt' ( uniform mediump samplerExternalOES)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 300
|
||||
Requested GL_OES_EGL_image_external
|
||||
Requested GL_OES_EGL_image_external_essl3
|
||||
ERROR: node is still EOpNull!
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
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:16 Constant:
|
||||
0:16 0.000000
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child ( temp mediump int)
|
||||
0:18 'lod' ( temp mediump int)
|
||||
0:18 Constant:
|
||||
0:18 0 (const int)
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child ( temp highp float)
|
||||
0:19 'bias' ( temp highp float)
|
||||
0:19 Constant:
|
||||
0:19 0.010000
|
||||
0:20 textureSize ( global highp 2-component vector of int, operation at mediump)
|
||||
0:20 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:20 'lod' ( temp mediump int)
|
||||
0:21 texture ( global lowp 4-component vector of float)
|
||||
0:21 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:21 Constant:
|
||||
0:21 0.200000
|
||||
0:21 0.200000
|
||||
0:22 texture ( global lowp 4-component vector of float, operation at highp)
|
||||
0:22 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:22 Constant:
|
||||
0:22 0.200000
|
||||
0:22 0.200000
|
||||
0:22 'bias' ( temp highp float)
|
||||
0:23 textureProj ( global lowp 4-component vector of float)
|
||||
0:23 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:23 Constant:
|
||||
0:23 0.200000
|
||||
0:23 0.200000
|
||||
0:23 0.200000
|
||||
0:24 textureProj ( global lowp 4-component vector of float, operation at highp)
|
||||
0:24 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:24 Constant:
|
||||
0:24 0.200000
|
||||
0:24 0.200000
|
||||
0:24 0.200000
|
||||
0:24 'bias' ( temp highp float)
|
||||
0:25 textureProj ( global lowp 4-component vector of float)
|
||||
0:25 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:25 Constant:
|
||||
0:25 0.200000
|
||||
0:25 0.200000
|
||||
0:25 0.200000
|
||||
0:25 0.200000
|
||||
0:26 textureProj ( global lowp 4-component vector of float, operation at highp)
|
||||
0:26 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:26 Constant:
|
||||
0:26 0.200000
|
||||
0:26 0.200000
|
||||
0:26 0.200000
|
||||
0:26 0.200000
|
||||
0:26 'bias' ( temp highp float)
|
||||
0:27 textureFetch ( global lowp 4-component vector of float, operation at mediump)
|
||||
0:27 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:27 Constant:
|
||||
0:27 4 (const int)
|
||||
0:27 4 (const int)
|
||||
0:27 'lod' ( temp mediump int)
|
||||
0:29 Constant:
|
||||
0:29 0.000000
|
||||
0:30 Constant:
|
||||
0:30 0.000000
|
||||
0:31 Constant:
|
||||
0:31 0.000000
|
||||
0:32 Constant:
|
||||
0:32 0.000000
|
||||
0:? Linker Objects
|
||||
0:? 'sExt' ( uniform lowp samplerExternalOES)
|
||||
0:? 'mediumExt' ( uniform mediump samplerExternalOES)
|
||||
0:? 'highExt' ( uniform highp samplerExternalOES)
|
||||
0:? 'badExt' ( uniform mediump samplerExternalOES)
|
||||
|
@ -1,7 +1,7 @@
|
||||
310.comp
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:4: 'local_size' : cannot change previously set size
|
||||
ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize
|
||||
ERROR: 0:7: 'local_size_y' : must be at least 1
|
||||
ERROR: 0:23: '' : array size required
|
||||
ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute shader
|
||||
ERROR: 0:39: 'location qualifier on input' : not supported in this stage: compute
|
||||
@ -16,7 +16,7 @@ ERROR: 0:47: 'local_size' : can only apply to 'in'
|
||||
ERROR: 0:61: 'assign' : l-value required "ro" (can't modify a readonly buffer)
|
||||
ERROR: 0:66: 'buffer' : buffers can be declared only as blocks
|
||||
ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:76: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:76: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:82: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:87: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic
|
||||
@ -54,12 +54,12 @@ ERROR: 0:171: 'samplerCubeArray' : Reserved word.
|
||||
ERROR: 0:171: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:172: 'iimage2DRect' : Reserved word.
|
||||
ERROR: 0:172: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:172: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:172: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:173: 'image2DMS' : Reserved word.
|
||||
ERROR: 0:173: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:173: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:174: 'uimage2DMSArray' : Reserved word.
|
||||
ERROR: 0:174: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:174: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:174: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:181: 'rgba32f' : format requires readonly or writeonly memory qualifier
|
||||
ERROR: 0:182: 'rgba8i' : format requires readonly or writeonly memory qualifier
|
||||
ERROR: 0:183: 'rgba16ui' : format requires readonly or writeonly memory qualifier
|
||||
@ -84,7 +84,7 @@ WARNING: 0:238: '#define' : names containing consecutive underscores are reserve
|
||||
ERROR: 0:244: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group
|
||||
ERROR: 0:245: 'gl_ViewIndex' : undeclared identifier
|
||||
ERROR: 0:255: 'gl_ViewIndex' : undeclared identifier
|
||||
ERROR: 82 compilation errors. No code generated.
|
||||
ERROR: 83 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 310
|
||||
|
@ -1,5 +1,4 @@
|
||||
310.frag
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:2: 'float' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:8: 'origin_upper_left' : not supported with this profile: es
|
||||
ERROR: 0:8: 'pixel_center_integer' : not supported with this profile: es
|
||||
@ -19,13 +18,13 @@ ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset,
|
||||
ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
|
||||
ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
|
||||
ERROR: 0:66: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:66: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:66: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:67: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:67: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:67: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:68: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:68: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:69: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:69: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:69: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:73: 'binding' : requires block, or sampler/image, or atomic-counter type
|
||||
ERROR: 0:77: 'location' : location is too large
|
||||
ERROR: 0:81: 'location' : too large for fragment output
|
||||
@ -36,7 +35,7 @@ ERROR: 0:83: 'layout-id value' : cannot be negative
|
||||
ERROR: 0:96: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:110: 'out' : cannot be bool
|
||||
ERROR: 0:111: 'image2D' : sampler/image types can only be used in uniform variables or function parameters: imageOut
|
||||
ERROR: 0:111: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:111: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:112: 'out' : cannot be a matrix
|
||||
ERROR: 0:114: 'in' : cannot be bool
|
||||
ERROR: 0:115: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: ino
|
||||
@ -124,7 +123,7 @@ ERROR: 0:391: 'interpolateAtOffset' : first argument must be an interpolant, or
|
||||
ERROR: 0:392: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:396: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:397: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:400: 'blend equation' : required extension not requested: GL_KHR_blend_equation_advanced
|
||||
ERROR: 0:400: 'blend equation' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:423: 'blend equation' : can only apply to 'out'
|
||||
ERROR: 0:424: 'blend equation' : can only apply to a standalone qualifier
|
||||
ERROR: 0:425: 'blend equation' : can only apply to a standalone qualifier
|
||||
|
@ -1,5 +1,4 @@
|
||||
310.geom
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:29: 'fromVertex' : block instance name redefinition
|
||||
ERROR: 0:33: 'fromVertex' : redefinition
|
||||
ERROR: 0:35: 'fooC' : block instance name redefinition
|
||||
|
@ -1,5 +1,4 @@
|
||||
310.tesc
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:8: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
ERROR: 0:9: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
ERROR: 0:10: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
|
@ -1,5 +1,4 @@
|
||||
310.tese
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:7: 'vertices' : there is no such layout identifier for this stage taking an assigned value
|
||||
ERROR: 0:9: 'triangles' : cannot change previously set input primitive
|
||||
ERROR: 0:10: 'isolines' : cannot change previously set input primitive
|
||||
|
@ -1,5 +1,4 @@
|
||||
310.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:3: 'shared' : not supported in this stage: vertex
|
||||
ERROR: 0:4: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value
|
||||
ERROR: 0:5: 'buffer' : buffers can be declared only as blocks
|
||||
|
@ -1,5 +1,4 @@
|
||||
310AofA.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:17: '' : array size required
|
||||
ERROR: 0:23: '' : array size required
|
||||
ERROR: 0:28: '[]' : only outermost dimension of an array of arrays can be implicitly sized
|
||||
@ -321,7 +320,7 @@ ERROR: node is still EOpNull!
|
||||
0:? Linker Objects
|
||||
0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
|
||||
0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform implicitly-sized array of highp 4-component vector of float v})
|
||||
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of implicitly-sized array of highp 4-component vector of float v})
|
||||
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 1-element array of highp 4-component vector of float v})
|
||||
0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
|
||||
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
|
||||
0:? 'gu' ( global implicitly-sized array of 7-element array of highp float)
|
||||
@ -362,7 +361,7 @@ ERROR: node is still EOpNull!
|
||||
0:? Linker Objects
|
||||
0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
|
||||
0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform 1-element array of highp 4-component vector of float v})
|
||||
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of implicitly-sized array of highp 4-component vector of float v})
|
||||
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 1-element array of highp 4-component vector of float v})
|
||||
0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
|
||||
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
|
||||
0:? 'gu' ( global 1-element array of 7-element array of highp float)
|
||||
|
@ -1,5 +1,4 @@
|
||||
310implicitSizeArrayError.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:3: '' : array size required
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
19
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.comp.out
vendored
Normal file
19
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.comp.out
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
320.comp
|
||||
Shader version: 320
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:3 Function Definition: main( ( global void)
|
||||
0:3 Function Parameters:
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:3 Function Definition: main( ( global void)
|
||||
0:3 Function Parameters:
|
||||
0:? Linker Objects
|
||||
|
576
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.frag.out
vendored
Normal file
576
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.frag.out
vendored
Normal file
@ -0,0 +1,576 @@
|
||||
320.frag
|
||||
ERROR: 0:3: 'output block' : not supported in this stage: fragment
|
||||
ERROR: 0:7: 'float' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:8: '' : cannot nest a structure definition inside a structure or block
|
||||
ERROR: 0:16: 'location' : overlapping use of location 13
|
||||
ERROR: 0:18: 'inbname2' : Cannot reuse block name within the same interface: in
|
||||
ERROR: 0:23: 'badmember' : nameless block contains a member that already has a name at global scope
|
||||
ERROR: 0:27: 'inbname' : redefinition
|
||||
ERROR: 0:29: 'vAnon' : redefinition
|
||||
ERROR: 0:43: 'origin_upper_left' : not supported with this profile: es
|
||||
ERROR: 0:43: 'pixel_center_integer' : not supported with this profile: es
|
||||
ERROR: 0:43: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
|
||||
ERROR: 0:47: 'depth layout qualifier' : not supported with this profile: es
|
||||
ERROR: 0:51: 'assign' : l-value required "gl_FragDepth" (can't modify gl_FragDepth if using early_fragment_tests)
|
||||
ERROR: 0:79: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
|
||||
ERROR: 0:124: 'rgba32f' : format requires readonly or writeonly memory qualifier
|
||||
ERROR: 0:125: 'rgba8ui' : format requires readonly or writeonly memory qualifier
|
||||
ERROR: 0:126: 'rgba16i' : format requires readonly or writeonly memory qualifier
|
||||
ERROR: 0:152: 'imageAtomicMax' : only supported on image with format r32i or r32ui
|
||||
ERROR: 0:153: 'imageAtomicMax' : only supported on image with format r32i or r32ui
|
||||
ERROR: 0:154: 'imageAtomicExchange' : only supported on image with format r32f
|
||||
ERROR: 0:157: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output
|
||||
ERROR: 0:158: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output
|
||||
ERROR: 0:159: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output
|
||||
ERROR: 0:160: 'noperspective' : Reserved word.
|
||||
ERROR: 0:160: 'noperspective' : not supported with this profile: es
|
||||
ERROR: 0:160: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output
|
||||
ERROR: 0:165: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output
|
||||
ERROR: 0:180: 'interpolateAtCentroid' : no matching overloaded function found
|
||||
ERROR: 0:180: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
|
||||
ERROR: 0:182: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:184: 'interpolateAtSample' : no matching overloaded function found
|
||||
ERROR: 0:184: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
|
||||
ERROR: 0:186: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:189: 'interpolateAtOffset' : no matching overloaded function found
|
||||
ERROR: 0:189: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
|
||||
ERROR: 0:191: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:192: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:196: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:197: 'outp' : undeclared identifier
|
||||
ERROR: 0:197: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:197: 'assign' : cannot convert from ' global float' to ' temp mediump 4-component vector of float'
|
||||
ERROR: 0:217: 'blend equation' : can only apply to 'out'
|
||||
ERROR: 0:218: 'blend equation' : can only apply to a standalone qualifier
|
||||
ERROR: 0:219: 'blend equation' : can only apply to a standalone qualifier
|
||||
ERROR: 0:220: 'blend equation' : can only apply to a standalone qualifier
|
||||
ERROR: 0:221: 'blend equation' : can only apply to a standalone qualifier
|
||||
ERROR: 0:222: 'blend equation' : can only apply to a standalone qualifier
|
||||
ERROR: 0:223: 'blend_support' : unknown blend equation
|
||||
ERROR: 0:225: 'fragment-shader array-of-array output' : not supported with this profile: es
|
||||
ERROR: 49 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 320
|
||||
gl_FragCoord pixel center is integer
|
||||
gl_FragCoord origin is upper left
|
||||
using early_fragment_tests
|
||||
using depth_any
|
||||
using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations
|
||||
ERROR: node is still EOpNull!
|
||||
0:35 Function Definition: fooIO( ( global void)
|
||||
0:35 Function Parameters:
|
||||
0:37 Sequence
|
||||
0:37 Sequence
|
||||
0:37 move second child to first child ( temp mediump 4-component vector of float)
|
||||
0:37 'v' ( temp mediump 4-component vector of float)
|
||||
0:37 add ( temp mediump 4-component vector of float)
|
||||
0:37 v: direct index for structure ( in mediump 4-component vector of float)
|
||||
0:37 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s})
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 vAnon: direct index for structure (layout( location=13) centroid in mediump 4-component vector of float)
|
||||
0:37 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon})
|
||||
0:37 Constant:
|
||||
0:37 1 (const uint)
|
||||
0:38 vector scale second child into first child ( temp mediump 4-component vector of float)
|
||||
0:38 'v' ( temp mediump 4-component vector of float)
|
||||
0:38 f: direct index for structure ( in mediump float)
|
||||
0:38 direct index ( temp block{ in mediump float f})
|
||||
0:38 'arrayedInst' ( in 4-element array of block{ in mediump float f})
|
||||
0:38 Constant:
|
||||
0:38 2 (const int)
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:39 vector scale second child into first child ( temp mediump 4-component vector of float)
|
||||
0:39 'v' ( temp mediump 4-component vector of float)
|
||||
0:39 f: direct index for structure ( in mediump float)
|
||||
0:39 indirect index ( temp block{ in mediump float f})
|
||||
0:39 'arrayedInst' ( in 4-element array of block{ in mediump float f})
|
||||
0:39 'i' ( uniform mediump int)
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:49 Function Definition: main( ( global void)
|
||||
0:49 Function Parameters:
|
||||
0:51 Sequence
|
||||
0:51 move second child to first child ( temp highp float)
|
||||
0:51 'gl_FragDepth' ( gl_FragDepth highp float FragDepth)
|
||||
0:51 Constant:
|
||||
0:51 0.200000
|
||||
0:52 Sequence
|
||||
0:52 move second child to first child ( temp bool)
|
||||
0:52 'f' ( temp bool)
|
||||
0:52 'gl_FrontFacing' ( gl_FrontFacing bool Face)
|
||||
0:57 Function Definition: foo_GS( ( global void)
|
||||
0:57 Function Parameters:
|
||||
0:59 Sequence
|
||||
0:59 Sequence
|
||||
0:59 move second child to first child ( temp highp int)
|
||||
0:59 'l' ( temp highp int)
|
||||
0:59 'gl_Layer' ( flat in highp int Layer)
|
||||
0:60 Sequence
|
||||
0:60 move second child to first child ( temp highp int)
|
||||
0:60 'p' ( temp highp int)
|
||||
0:60 'gl_PrimitiveID' ( flat in highp int PrimitiveID)
|
||||
0:73 Function Definition: pfoo( ( global void)
|
||||
0:73 Function Parameters:
|
||||
0:? Sequence
|
||||
0:76 move second child to first child ( temp mediump 2-component vector of float)
|
||||
0:76 'h' ( noContraction temp mediump 2-component vector of float)
|
||||
0:76 fma ( global mediump 2-component vector of float)
|
||||
0:76 'inf' ( smooth in mediump 2-component vector of float)
|
||||
0:76 'ing' ( smooth in mediump 2-component vector of float)
|
||||
0:76 'h' ( noContraction temp mediump 2-component vector of float)
|
||||
0:77 textureGatherOffset ( global lowp 4-component vector of float)
|
||||
0:77 direct index ( temp lowp sampler2D)
|
||||
0:77 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:77 Constant:
|
||||
0:77 0 (const int)
|
||||
0:77 Constant:
|
||||
0:77 0.100000
|
||||
0:77 0.100000
|
||||
0:77 Convert float to int ( temp lowp 2-component vector of int)
|
||||
0:77 'inf' ( smooth in mediump 2-component vector of float)
|
||||
0:78 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump)
|
||||
0:78 direct index ( temp lowp sampler2D)
|
||||
0:78 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:78 Constant:
|
||||
0:78 0 (const int)
|
||||
0:78 Constant:
|
||||
0:78 0.100000
|
||||
0:78 0.100000
|
||||
0:78 Constant:
|
||||
0:78 0 (const int)
|
||||
0:78 0 (const int)
|
||||
0:78 0 (const int)
|
||||
0:78 0 (const int)
|
||||
0:78 0 (const int)
|
||||
0:78 0 (const int)
|
||||
0:78 0 (const int)
|
||||
0:78 0 (const int)
|
||||
0:79 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump)
|
||||
0:79 direct index ( temp lowp sampler2D)
|
||||
0:79 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:79 Constant:
|
||||
0:79 0 (const int)
|
||||
0:79 Constant:
|
||||
0:79 0.100000
|
||||
0:79 0.100000
|
||||
0:79 'offsets' ( uniform 4-element array of mediump 2-component vector of int)
|
||||
0:102 Function Definition: CAT( ( global void)
|
||||
0:102 Function Parameters:
|
||||
0:104 Sequence
|
||||
0:104 Sequence
|
||||
0:104 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:104 'b4' ( temp highp 4-component vector of float)
|
||||
0:104 texture ( global highp 4-component vector of float)
|
||||
0:104 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:104 Constant:
|
||||
0:104 0.500000
|
||||
0:104 0.500000
|
||||
0:104 0.500000
|
||||
0:104 0.500000
|
||||
0:104 Constant:
|
||||
0:104 0.240000
|
||||
0:105 Sequence
|
||||
0:105 move second child to first child ( temp highp 4-component vector of int)
|
||||
0:105 'b6' ( temp highp 4-component vector of int)
|
||||
0:105 texture ( global highp 4-component vector of int)
|
||||
0:105 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:105 Constant:
|
||||
0:105 0.500000
|
||||
0:105 0.500000
|
||||
0:105 0.500000
|
||||
0:105 0.500000
|
||||
0:105 Constant:
|
||||
0:105 0.260000
|
||||
0:106 Sequence
|
||||
0:106 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:106 'b7' ( temp highp 4-component vector of uint)
|
||||
0:106 texture ( global highp 4-component vector of uint)
|
||||
0:106 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:106 Constant:
|
||||
0:106 0.500000
|
||||
0:106 0.500000
|
||||
0:106 0.500000
|
||||
0:106 0.500000
|
||||
0:106 Constant:
|
||||
0:106 0.270000
|
||||
0:109 Function Definition: goodSample( ( global void)
|
||||
0:109 Function Parameters:
|
||||
0:111 Sequence
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp lowp int)
|
||||
0:111 'a1' ( temp lowp int)
|
||||
0:111 'gl_SampleID' ( flat in lowp int SampleId)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp mediump 2-component vector of float)
|
||||
0:112 'a2' ( temp mediump 2-component vector of float)
|
||||
0:112 'gl_SamplePosition' ( smooth in mediump 2-component vector of float SamplePosition)
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp highp int)
|
||||
0:113 'a3' ( temp highp int)
|
||||
0:113 direct index ( flat temp highp int SampleMaskIn)
|
||||
0:113 'gl_SampleMaskIn' ( flat in implicitly-sized array of highp int SampleMaskIn)
|
||||
0:113 Constant:
|
||||
0:113 0 (const int)
|
||||
0:114 move second child to first child ( temp highp int)
|
||||
0:114 direct index ( temp highp int SampleMaskIn)
|
||||
0:114 'gl_SampleMask' ( out implicitly-sized array of highp int SampleMaskIn)
|
||||
0:114 Constant:
|
||||
0:114 0 (const int)
|
||||
0:114 'a3' ( temp highp int)
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp mediump int)
|
||||
0:115 'n1' ( temp mediump int)
|
||||
0:115 Constant:
|
||||
0:115 4 (const int)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp mediump int)
|
||||
0:116 'n2' ( temp mediump int)
|
||||
0:116 'gl_NumSamples' ( uniform lowp int)
|
||||
0:128 Function Definition: goodImageAtom( ( global void)
|
||||
0:128 Function Parameters:
|
||||
0:? Sequence
|
||||
0:134 imageAtomicAdd ( global highp int)
|
||||
0:134 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:134 'P' ( uniform mediump 2-component vector of int)
|
||||
0:134 'dati' ( temp mediump int)
|
||||
0:135 imageAtomicAdd ( global highp uint)
|
||||
0:135 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:135 'P' ( uniform mediump 2-component vector of int)
|
||||
0:135 'datu' ( temp mediump uint)
|
||||
0:136 imageAtomicMin ( global highp int)
|
||||
0:136 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:136 'P' ( uniform mediump 2-component vector of int)
|
||||
0:136 'dati' ( temp mediump int)
|
||||
0:137 imageAtomicMin ( global highp uint)
|
||||
0:137 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:137 'P' ( uniform mediump 2-component vector of int)
|
||||
0:137 'datu' ( temp mediump uint)
|
||||
0:138 imageAtomicMax ( global highp int)
|
||||
0:138 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:138 'P' ( uniform mediump 2-component vector of int)
|
||||
0:138 'dati' ( temp mediump int)
|
||||
0:139 imageAtomicMax ( global highp uint)
|
||||
0:139 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:139 'P' ( uniform mediump 2-component vector of int)
|
||||
0:139 'datu' ( temp mediump uint)
|
||||
0:140 imageAtomicAnd ( global highp int)
|
||||
0:140 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:140 'P' ( uniform mediump 2-component vector of int)
|
||||
0:140 'dati' ( temp mediump int)
|
||||
0:141 imageAtomicAnd ( global highp uint)
|
||||
0:141 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:141 'P' ( uniform mediump 2-component vector of int)
|
||||
0:141 'datu' ( temp mediump uint)
|
||||
0:142 imageAtomicOr ( global highp int)
|
||||
0:142 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:142 'P' ( uniform mediump 2-component vector of int)
|
||||
0:142 'dati' ( temp mediump int)
|
||||
0:143 imageAtomicOr ( global highp uint)
|
||||
0:143 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:143 'P' ( uniform mediump 2-component vector of int)
|
||||
0:143 'datu' ( temp mediump uint)
|
||||
0:144 imageAtomicXor ( global highp int)
|
||||
0:144 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:144 'P' ( uniform mediump 2-component vector of int)
|
||||
0:144 'dati' ( temp mediump int)
|
||||
0:145 imageAtomicXor ( global highp uint)
|
||||
0:145 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:145 'P' ( uniform mediump 2-component vector of int)
|
||||
0:145 'datu' ( temp mediump uint)
|
||||
0:146 imageAtomicExchange ( global highp int)
|
||||
0:146 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:146 'P' ( uniform mediump 2-component vector of int)
|
||||
0:146 'dati' ( temp mediump int)
|
||||
0:147 imageAtomicExchange ( global highp uint)
|
||||
0:147 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:147 'P' ( uniform mediump 2-component vector of int)
|
||||
0:147 'datu' ( temp mediump uint)
|
||||
0:148 imageAtomicExchange ( global highp float)
|
||||
0:148 'im2Df' (layout( r32f) uniform highp image2D)
|
||||
0:148 'P' ( uniform mediump 2-component vector of int)
|
||||
0:148 'datf' ( temp mediump float)
|
||||
0:149 imageAtomicCompSwap ( global highp int)
|
||||
0:149 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:149 'P' ( uniform mediump 2-component vector of int)
|
||||
0:149 Constant:
|
||||
0:149 3 (const int)
|
||||
0:149 'dati' ( temp mediump int)
|
||||
0:150 imageAtomicCompSwap ( global highp uint)
|
||||
0:150 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:150 'P' ( uniform mediump 2-component vector of int)
|
||||
0:150 Constant:
|
||||
0:150 5 (const uint)
|
||||
0:150 'datu' ( temp mediump uint)
|
||||
0:152 imageAtomicMax ( global highp int)
|
||||
0:152 'badIm2Di' (layout( rgba16i) uniform highp iimage2D)
|
||||
0:152 'P' ( uniform mediump 2-component vector of int)
|
||||
0:152 'dati' ( temp mediump int)
|
||||
0:153 imageAtomicMax ( global highp uint)
|
||||
0:153 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D)
|
||||
0:153 'P' ( uniform mediump 2-component vector of int)
|
||||
0:153 'datu' ( temp mediump uint)
|
||||
0:154 imageAtomicExchange ( global highp float)
|
||||
0:154 'badIm2Df' (layout( rgba32f) uniform highp image2D)
|
||||
0:154 'P' ( uniform mediump 2-component vector of int)
|
||||
0:154 'datf' ( temp mediump float)
|
||||
0:169 Function Definition: interp( ( global void)
|
||||
0:169 Function Parameters:
|
||||
0:? Sequence
|
||||
0:176 move second child to first child ( temp mediump 2-component vector of float)
|
||||
0:176 'res2' ( temp mediump 2-component vector of float)
|
||||
0:176 interpolateAtCentroid ( global mediump 2-component vector of float)
|
||||
0:176 'colorfc' ( centroid flat in mediump 2-component vector of float)
|
||||
0:177 move second child to first child ( temp mediump 4-component vector of float)
|
||||
0:177 'res4' ( temp mediump 4-component vector of float)
|
||||
0:177 interpolateAtCentroid ( global mediump 4-component vector of float)
|
||||
0:177 'colorSampIn' ( smooth sample in mediump 4-component vector of float)
|
||||
0:178 move second child to first child ( temp mediump 4-component vector of float)
|
||||
0:178 'res4' ( temp mediump 4-component vector of float)
|
||||
0:178 interpolateAtCentroid ( global mediump 4-component vector of float)
|
||||
0:178 'colorfsi' ( flat sample in mediump 4-component vector of float)
|
||||
0:179 move second child to first child ( temp mediump float)
|
||||
0:179 'res' ( temp mediump float)
|
||||
0:179 interpolateAtCentroid ( global mediump float)
|
||||
0:179 'scalarIn' ( smooth in mediump float)
|
||||
0:180 'res3' ( temp mediump 3-component vector of float)
|
||||
0:181 move second child to first child ( temp mediump 3-component vector of float)
|
||||
0:181 'res3' ( temp mediump 3-component vector of float)
|
||||
0:181 interpolateAtCentroid ( global mediump 3-component vector of float)
|
||||
0:181 direct index ( smooth sample temp mediump 3-component vector of float)
|
||||
0:181 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
|
||||
0:181 Constant:
|
||||
0:181 2 (const int)
|
||||
0:182 move second child to first child ( temp mediump 2-component vector of float)
|
||||
0:182 'res2' ( temp mediump 2-component vector of float)
|
||||
0:182 interpolateAtCentroid ( global mediump 2-component vector of float)
|
||||
0:182 vector swizzle ( temp mediump 2-component vector of float)
|
||||
0:182 direct index ( smooth sample temp mediump 3-component vector of float)
|
||||
0:182 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
|
||||
0:182 Constant:
|
||||
0:182 2 (const int)
|
||||
0:182 Sequence
|
||||
0:182 Constant:
|
||||
0:182 0 (const int)
|
||||
0:182 Constant:
|
||||
0:182 1 (const int)
|
||||
0:184 'res3' ( temp mediump 3-component vector of float)
|
||||
0:185 move second child to first child ( temp mediump 3-component vector of float)
|
||||
0:185 'res3' ( temp mediump 3-component vector of float)
|
||||
0:185 interpolateAtSample ( global mediump 3-component vector of float)
|
||||
0:185 indirect index ( smooth sample temp mediump 3-component vector of float)
|
||||
0:185 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
|
||||
0:185 'i' ( uniform mediump int)
|
||||
0:185 Constant:
|
||||
0:185 0 (const int)
|
||||
0:186 move second child to first child ( temp mediump 2-component vector of float)
|
||||
0:186 'res2' ( temp mediump 2-component vector of float)
|
||||
0:186 interpolateAtSample ( global mediump 2-component vector of float)
|
||||
0:186 vector swizzle ( temp mediump 2-component vector of float)
|
||||
0:186 direct index ( smooth sample temp mediump 3-component vector of float)
|
||||
0:186 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
|
||||
0:186 Constant:
|
||||
0:186 2 (const int)
|
||||
0:186 Sequence
|
||||
0:186 Constant:
|
||||
0:186 0 (const int)
|
||||
0:186 Constant:
|
||||
0:186 1 (const int)
|
||||
0:186 Constant:
|
||||
0:186 2 (const int)
|
||||
0:187 move second child to first child ( temp mediump float)
|
||||
0:187 'res' ( temp mediump float)
|
||||
0:187 interpolateAtSample ( global mediump float)
|
||||
0:187 'scalarIn' ( smooth in mediump float)
|
||||
0:187 Constant:
|
||||
0:187 1 (const int)
|
||||
0:189 'res3' ( temp mediump 3-component vector of float)
|
||||
0:190 move second child to first child ( temp mediump 3-component vector of float)
|
||||
0:190 'res3' ( temp mediump 3-component vector of float)
|
||||
0:190 interpolateAtOffset ( global mediump 3-component vector of float)
|
||||
0:190 direct index ( smooth sample temp mediump 3-component vector of float)
|
||||
0:190 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
|
||||
0:190 Constant:
|
||||
0:190 2 (const int)
|
||||
0:190 Constant:
|
||||
0:190 0.200000
|
||||
0:190 0.200000
|
||||
0:191 move second child to first child ( temp mediump 2-component vector of float)
|
||||
0:191 'res2' ( temp mediump 2-component vector of float)
|
||||
0:191 interpolateAtOffset ( global mediump 2-component vector of float)
|
||||
0:191 vector swizzle ( temp mediump 2-component vector of float)
|
||||
0:191 direct index ( smooth sample temp mediump 3-component vector of float)
|
||||
0:191 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
|
||||
0:191 Constant:
|
||||
0:191 2 (const int)
|
||||
0:191 Sequence
|
||||
0:191 Constant:
|
||||
0:191 0 (const int)
|
||||
0:191 Constant:
|
||||
0:191 1 (const int)
|
||||
0:191 Constant:
|
||||
0:191 0.200000
|
||||
0:191 0.200000
|
||||
0:192 move second child to first child ( temp mediump float)
|
||||
0:192 'res' ( temp mediump float)
|
||||
0:192 interpolateAtOffset ( global mediump float)
|
||||
0:192 add ( temp mediump float)
|
||||
0:192 'scalarIn' ( smooth in mediump float)
|
||||
0:192 'scalarIn' ( smooth in mediump float)
|
||||
0:192 Constant:
|
||||
0:192 0.200000
|
||||
0:192 0.200000
|
||||
0:193 move second child to first child ( temp mediump float)
|
||||
0:193 'res' ( temp mediump float)
|
||||
0:193 interpolateAtOffset ( global mediump float)
|
||||
0:193 'scalarIn' ( smooth in mediump float)
|
||||
0:193 Constant:
|
||||
0:193 0.200000
|
||||
0:193 0.200000
|
||||
0:196 move second child to first child ( temp mediump float)
|
||||
0:196 'res' ( temp mediump float)
|
||||
0:196 interpolateAtCentroid ( global mediump float)
|
||||
0:196 'f' ( temp mediump float)
|
||||
0:197 'res4' ( temp mediump 4-component vector of float)
|
||||
0:221 Function Definition: blendFoo( ( temp void)
|
||||
0:221 Function Parameters:
|
||||
0:222 Function Definition: blendFoo(vf3; ( global void)
|
||||
0:222 Function Parameters:
|
||||
0:222 'v' ( in mediump 3-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'outbinst' ( out block{ out mediump int a})
|
||||
0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s})
|
||||
0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon})
|
||||
0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float)
|
||||
0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f})
|
||||
0:? 'i' ( uniform mediump int)
|
||||
0:? 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
|
||||
0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth)
|
||||
0:? 'inf' ( smooth in mediump 2-component vector of float)
|
||||
0:? 'ing' ( smooth in mediump 2-component vector of float)
|
||||
0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int)
|
||||
0:? 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:? 'sIndex' ( uniform mediump int)
|
||||
0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint)
|
||||
0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i})
|
||||
0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i})
|
||||
0:? 'iArray' ( writeonly uniform 5-element array of highp image2D)
|
||||
0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 'CA1' ( writeonly uniform highp imageCubeArray)
|
||||
0:? 'CA2' ( writeonly uniform highp iimageCubeArray)
|
||||
0:? 'CA3' ( writeonly uniform highp uimageCubeArray)
|
||||
0:? 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:? 'CA5' ( uniform highp samplerCubeArrayShadow)
|
||||
0:? 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:? 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:? 'gl_SampleMaskIn' ( flat in implicitly-sized array of highp int SampleMaskIn)
|
||||
0:? 'gl_SampleMask' ( out implicitly-sized array of highp int SampleMaskIn)
|
||||
0:? 'im2Df' (layout( r32f) uniform highp image2D)
|
||||
0:? 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:? 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:? 'P' ( uniform mediump 2-component vector of int)
|
||||
0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D)
|
||||
0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D)
|
||||
0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D)
|
||||
0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float)
|
||||
0:? 'colorBadFlat' ( flat out mediump 4-component vector of float)
|
||||
0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float)
|
||||
0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float)
|
||||
0:? 'colorfc' ( centroid flat in mediump 2-component vector of float)
|
||||
0:? 'scalarIn' ( smooth in mediump float)
|
||||
0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float)
|
||||
0:? 'colorSampleBad' ( sample out mediump 4-component vector of float)
|
||||
0:? 'colorfsi' ( flat sample in mediump 4-component vector of float)
|
||||
0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
|
||||
0:? 'badout' ( out mediump 4-component vector of float)
|
||||
0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers
|
||||
|
||||
Shader version: 320
|
||||
gl_FragCoord pixel center is integer
|
||||
gl_FragCoord origin is upper left
|
||||
using early_fragment_tests
|
||||
using depth_any
|
||||
using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations
|
||||
ERROR: node is still EOpNull!
|
||||
0:49 Function Definition: main( ( global void)
|
||||
0:49 Function Parameters:
|
||||
0:51 Sequence
|
||||
0:51 move second child to first child ( temp highp float)
|
||||
0:51 'gl_FragDepth' ( gl_FragDepth highp float FragDepth)
|
||||
0:51 Constant:
|
||||
0:51 0.200000
|
||||
0:52 Sequence
|
||||
0:52 move second child to first child ( temp bool)
|
||||
0:52 'f' ( temp bool)
|
||||
0:52 'gl_FrontFacing' ( gl_FrontFacing bool Face)
|
||||
0:? Linker Objects
|
||||
0:? 'outbinst' ( out block{ out mediump int a})
|
||||
0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s})
|
||||
0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon})
|
||||
0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float)
|
||||
0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f})
|
||||
0:? 'i' ( uniform mediump int)
|
||||
0:? 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
|
||||
0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth)
|
||||
0:? 'inf' ( smooth in mediump 2-component vector of float)
|
||||
0:? 'ing' ( smooth in mediump 2-component vector of float)
|
||||
0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int)
|
||||
0:? 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:? 'sIndex' ( uniform mediump int)
|
||||
0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint)
|
||||
0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i})
|
||||
0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i})
|
||||
0:? 'iArray' ( writeonly uniform 5-element array of highp image2D)
|
||||
0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 'CA1' ( writeonly uniform highp imageCubeArray)
|
||||
0:? 'CA2' ( writeonly uniform highp iimageCubeArray)
|
||||
0:? 'CA3' ( writeonly uniform highp uimageCubeArray)
|
||||
0:? 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:? 'CA5' ( uniform highp samplerCubeArrayShadow)
|
||||
0:? 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:? 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:? 'gl_SampleMaskIn' ( flat in 1-element array of highp int SampleMaskIn)
|
||||
0:? 'gl_SampleMask' ( out 1-element array of highp int SampleMaskIn)
|
||||
0:? 'im2Df' (layout( r32f) uniform highp image2D)
|
||||
0:? 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:? 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:? 'P' ( uniform mediump 2-component vector of int)
|
||||
0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D)
|
||||
0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D)
|
||||
0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D)
|
||||
0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float)
|
||||
0:? 'colorBadFlat' ( flat out mediump 4-component vector of float)
|
||||
0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float)
|
||||
0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float)
|
||||
0:? 'colorfc' ( centroid flat in mediump 2-component vector of float)
|
||||
0:? 'scalarIn' ( smooth in mediump float)
|
||||
0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float)
|
||||
0:? 'colorSampleBad' ( sample out mediump 4-component vector of float)
|
||||
0:? 'colorfsi' ( flat sample in mediump 4-component vector of float)
|
||||
0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
|
||||
0:? 'badout' ( out mediump 4-component vector of float)
|
||||
0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float)
|
||||
|
251
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.geom.out
vendored
Normal file
251
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.geom.out
vendored
Normal file
@ -0,0 +1,251 @@
|
||||
320.geom
|
||||
ERROR: 0:19: 'fromVertex' : block instance name redefinition
|
||||
ERROR: 0:23: 'fromVertex' : redefinition
|
||||
ERROR: 0:25: 'fooC' : block instance name redefinition
|
||||
ERROR: 0:33: 'EmitStreamVertex' : no matching overloaded function found
|
||||
ERROR: 0:34: 'EndStreamPrimitive' : no matching overloaded function found
|
||||
ERROR: 0:37: 'gl_ClipDistance' : undeclared identifier
|
||||
ERROR: 0:37: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
|
||||
ERROR: 0:38: 'gl_ClipDistance' : no such field in structure
|
||||
ERROR: 0:38: 'expression' : left of '[' is not of type array, matrix, or vector
|
||||
ERROR: 0:37: 'assign' : l-value required (can't modify a const)
|
||||
ERROR: 0:45: 'selecting output stream' : not supported with this profile: es
|
||||
ERROR: 0:52: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices
|
||||
ERROR: 0:52: 'max_vertices' : cannot change previously set layout value
|
||||
ERROR: 0:53: 'max_vertices' : can only apply to a standalone qualifier
|
||||
ERROR: 0:58: 'points' : cannot change previously set output primitive
|
||||
ERROR: 0:59: 'points' : cannot change previously set output primitive
|
||||
ERROR: 0:60: 'triangle_strip' : cannot apply to input
|
||||
ERROR: 0:61: 'triangle_strip' : cannot apply to: uniform
|
||||
ERROR: 0:62: 'triangle_strip' : can only apply to a standalone qualifier
|
||||
ERROR: 0:63: 'triangle_strip' : can only apply to a standalone qualifier
|
||||
ERROR: 0:64: 'invocations' : can only apply to a standalone qualifier
|
||||
ERROR: 0:66: 'invocations' : can only apply to a standalone qualifier
|
||||
ERROR: 0:67: 'max_vertices' : can only apply to a standalone qualifier
|
||||
ERROR: 0:68: 'triangle_strip' : can only apply to a standalone qualifier
|
||||
ERROR: 0:71: 'lines' : cannot apply to 'out'
|
||||
ERROR: 0:73: 'triangles' : cannot change previously set input primitive
|
||||
ERROR: 0:74: 'triangles_adjacency' : cannot change previously set input primitive
|
||||
ERROR: 0:106: 'gl_ViewportIndex' : undeclared identifier
|
||||
ERROR: 0:107: 'gl_MaxViewports' : undeclared identifier
|
||||
ERROR: 0:113: 'lines_adjacency' : inconsistent input primitive for array size of explArrayBad
|
||||
ERROR: 0:114: 'in' : type must be an array: nonArrayed
|
||||
ERROR: 0:122: 'component' : not supported with this profile: es
|
||||
ERROR: 0:126: 'gl_MaxGeometryVaryingComponents' : undeclared identifier
|
||||
ERROR: 0:127: 'gl_VerticesIn' : undeclared identifier
|
||||
ERROR: 0:132: 'gl_PointSize' : required extension not requested: Possible extensions include:
|
||||
GL_EXT_geometry_point_size
|
||||
GL_OES_geometry_point_size
|
||||
ERROR: 0:133: 'gl_PointSize' : required extension not requested: Possible extensions include:
|
||||
GL_EXT_geometry_point_size
|
||||
GL_OES_geometry_point_size
|
||||
ERROR: 36 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 320
|
||||
invocations = 4
|
||||
max_vertices = 200
|
||||
input primitive = lines_adjacency
|
||||
output primitive = triangle_strip
|
||||
ERROR: node is still EOpNull!
|
||||
0:29 Function Definition: main( ( global void)
|
||||
0:29 Function Parameters:
|
||||
0:31 Sequence
|
||||
0:31 EmitVertex ( global void)
|
||||
0:32 EndPrimitive ( global void)
|
||||
0:33 Constant:
|
||||
0:33 0.000000
|
||||
0:34 Constant:
|
||||
0:34 0.000000
|
||||
0:36 move second child to first child ( temp mediump 3-component vector of float)
|
||||
0:36 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float)
|
||||
0:36 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
|
||||
0:36 Constant:
|
||||
0:36 0 (const uint)
|
||||
0:36 color: direct index for structure ( in mediump 3-component vector of float)
|
||||
0:36 direct index ( temp block{ in mediump 3-component vector of float color})
|
||||
0:36 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color})
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:37 move second child to first child ( temp float)
|
||||
0:37 Constant:
|
||||
0:37 0.000000
|
||||
0:38 Constant:
|
||||
0:38 0.000000
|
||||
0:39 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:39 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position)
|
||||
0:39 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize})
|
||||
0:39 Constant:
|
||||
0:39 0 (const uint)
|
||||
0:39 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
|
||||
0:39 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
|
||||
0:39 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:41 move second child to first child ( temp highp int)
|
||||
0:41 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID)
|
||||
0:41 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
|
||||
0:42 move second child to first child ( temp highp int)
|
||||
0:42 'gl_Layer' (layout( stream=0) out highp int Layer)
|
||||
0:42 Constant:
|
||||
0:42 2 (const int)
|
||||
0:53 Function Definition: foo(i1; ( global void)
|
||||
0:53 Function Parameters:
|
||||
0:53 'a' ( in highp int)
|
||||
0:55 Sequence
|
||||
0:55 move second child to first child ( temp mediump 4-component vector of float)
|
||||
0:55 a: direct index for structure (layout( stream=0) out mediump 4-component vector of float)
|
||||
0:55 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a})
|
||||
0:55 Constant:
|
||||
0:55 0 (const int)
|
||||
0:55 Constant:
|
||||
0:55 1.000000
|
||||
0:55 1.000000
|
||||
0:55 1.000000
|
||||
0:55 1.000000
|
||||
0:104 Function Definition: fooe1( ( global void)
|
||||
0:104 Function Parameters:
|
||||
0:106 Sequence
|
||||
0:106 'gl_ViewportIndex' ( temp float)
|
||||
0:107 'gl_MaxViewports' ( temp float)
|
||||
0:108 Constant:
|
||||
0:108 4 (const int)
|
||||
0:109 Sequence
|
||||
0:109 move second child to first child ( temp highp int)
|
||||
0:109 'inv' ( temp highp int)
|
||||
0:109 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:124 Function Definition: notHere( ( global void)
|
||||
0:124 Function Parameters:
|
||||
0:126 Sequence
|
||||
0:126 'gl_MaxGeometryVaryingComponents' ( temp float)
|
||||
0:127 'gl_VerticesIn' ( temp float)
|
||||
0:130 Function Definition: pointSize2( ( global void)
|
||||
0:130 Function Parameters:
|
||||
0:132 Sequence
|
||||
0:132 Sequence
|
||||
0:132 move second child to first child ( temp highp float)
|
||||
0:132 'ps' ( temp highp float)
|
||||
0:132 gl_PointSize: direct index for structure ( in highp float PointSize)
|
||||
0:132 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
|
||||
0:132 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
|
||||
0:132 Constant:
|
||||
0:132 3 (const int)
|
||||
0:132 Constant:
|
||||
0:132 1 (const int)
|
||||
0:133 move second child to first child ( temp highp float)
|
||||
0:133 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize highp float PointSize)
|
||||
0:133 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize})
|
||||
0:133 Constant:
|
||||
0:133 1 (const uint)
|
||||
0:133 'ps' ( temp highp float)
|
||||
0:? Linker Objects
|
||||
0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color})
|
||||
0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float)
|
||||
0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
|
||||
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
|
||||
0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
|
||||
0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float)
|
||||
0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a})
|
||||
0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float)
|
||||
0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float)
|
||||
0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a})
|
||||
0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c})
|
||||
0:? 'insn' ( in 4-element array of block{ in highp int a15})
|
||||
0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15})
|
||||
0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15})
|
||||
0:? 'summ' ( const highp int)
|
||||
0:? 2752 (const int)
|
||||
0:? 'explArray' ( in 4-element array of mediump 4-component vector of float)
|
||||
0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float)
|
||||
0:? 'nonArrayed' ( in mediump 4-component vector of float)
|
||||
0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float)
|
||||
0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float)
|
||||
0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float)
|
||||
0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float)
|
||||
0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float)
|
||||
|
||||
|
||||
Linked geometry stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
invocations = 4
|
||||
max_vertices = 200
|
||||
input primitive = lines_adjacency
|
||||
output primitive = triangle_strip
|
||||
ERROR: node is still EOpNull!
|
||||
0:29 Function Definition: main( ( global void)
|
||||
0:29 Function Parameters:
|
||||
0:31 Sequence
|
||||
0:31 EmitVertex ( global void)
|
||||
0:32 EndPrimitive ( global void)
|
||||
0:33 Constant:
|
||||
0:33 0.000000
|
||||
0:34 Constant:
|
||||
0:34 0.000000
|
||||
0:36 move second child to first child ( temp mediump 3-component vector of float)
|
||||
0:36 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float)
|
||||
0:36 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
|
||||
0:36 Constant:
|
||||
0:36 0 (const uint)
|
||||
0:36 color: direct index for structure ( in mediump 3-component vector of float)
|
||||
0:36 direct index ( temp block{ in mediump 3-component vector of float color})
|
||||
0:36 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color})
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:37 move second child to first child ( temp float)
|
||||
0:37 Constant:
|
||||
0:37 0.000000
|
||||
0:38 Constant:
|
||||
0:38 0.000000
|
||||
0:39 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:39 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position)
|
||||
0:39 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize})
|
||||
0:39 Constant:
|
||||
0:39 0 (const uint)
|
||||
0:39 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
|
||||
0:39 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
|
||||
0:39 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:41 move second child to first child ( temp highp int)
|
||||
0:41 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID)
|
||||
0:41 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
|
||||
0:42 move second child to first child ( temp highp int)
|
||||
0:42 'gl_Layer' (layout( stream=0) out highp int Layer)
|
||||
0:42 Constant:
|
||||
0:42 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color})
|
||||
0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float)
|
||||
0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
|
||||
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
|
||||
0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
|
||||
0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float)
|
||||
0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a})
|
||||
0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float)
|
||||
0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float)
|
||||
0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a})
|
||||
0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c})
|
||||
0:? 'insn' ( in 4-element array of block{ in highp int a15})
|
||||
0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15})
|
||||
0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15})
|
||||
0:? 'summ' ( const highp int)
|
||||
0:? 2752 (const int)
|
||||
0:? 'explArray' ( in 4-element array of mediump 4-component vector of float)
|
||||
0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float)
|
||||
0:? 'nonArrayed' ( in mediump 4-component vector of float)
|
||||
0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float)
|
||||
0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float)
|
||||
0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float)
|
||||
0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float)
|
||||
0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float)
|
||||
|
516
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.tesc.out
vendored
Normal file
516
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.tesc.out
vendored
Normal file
@ -0,0 +1,516 @@
|
||||
320.tesc
|
||||
ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader
|
||||
ERROR: 0:24: 'gl_PointSize' : required extension not requested: Possible extensions include:
|
||||
GL_EXT_tessellation_point_size
|
||||
GL_OES_tessellation_point_size
|
||||
ERROR: 0:25: 'gl_ClipDistance' : no such field in structure
|
||||
ERROR: 0:25: 'expression' : left of '[' is not of type array, matrix, or vector
|
||||
ERROR: 0:32: 'gl_PointSize' : required extension not requested: Possible extensions include:
|
||||
GL_EXT_tessellation_point_size
|
||||
GL_OES_tessellation_point_size
|
||||
ERROR: 0:33: 'gl_ClipDistance' : no such field in structure
|
||||
ERROR: 0:33: 'expression' : left of '[' is not of type array, matrix, or vector
|
||||
ERROR: 0:33: 'assign' : l-value required (can't modify a const)
|
||||
ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control
|
||||
ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control
|
||||
ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control
|
||||
ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control
|
||||
ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control
|
||||
ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main()
|
||||
ERROR: 0:64: 'vertices' : can only apply to 'out'
|
||||
ERROR: 0:65: 'vertices' : cannot change previously set layout value
|
||||
ERROR: 0:69: '[' : array index out of range '4'
|
||||
ERROR: 0:71: '' : tessellation control barrier() must be in main()
|
||||
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:78: '' : array size required
|
||||
ERROR: 0:84: 'location' : overlapping use of location 4
|
||||
ERROR: 0:88: 'location' : overlapping use of location 4
|
||||
ERROR: 0:98: 'vertices' : can only apply to a standalone qualifier
|
||||
ERROR: 0:99: 'vertices' : inconsistent output number of vertices for array size of misSized
|
||||
ERROR: 0:104: 'gl_PointSize' : required extension not requested: Possible extensions include:
|
||||
GL_EXT_tessellation_point_size
|
||||
GL_OES_tessellation_point_size
|
||||
ERROR: 0:105: 'gl_PointSize' : required extension not requested: Possible extensions include:
|
||||
GL_EXT_tessellation_point_size
|
||||
GL_OES_tessellation_point_size
|
||||
ERROR: 0:123: '[' : array index out of range '2'
|
||||
ERROR: 0:126: '' : array size required
|
||||
ERROR: 0:142: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
|
||||
ERROR: 0:143: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
|
||||
ERROR: 0:146: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
|
||||
ERROR: 35 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
vertices = 4
|
||||
ERROR: node is still EOpNull!
|
||||
0:13 Function Definition: main( ( global void)
|
||||
0:13 Function Parameters:
|
||||
0:15 Sequence
|
||||
0:15 Barrier ( global void)
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child ( temp highp int)
|
||||
0:17 'a' ( temp highp int)
|
||||
0:17 Constant:
|
||||
0:17 5392 (const int)
|
||||
0:23 Sequence
|
||||
0:23 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:23 'p' ( temp highp 4-component vector of float)
|
||||
0:23 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
|
||||
0:23 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:23 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp highp float)
|
||||
0:24 'ps' ( temp highp float)
|
||||
0:24 gl_PointSize: direct index for structure ( in highp float PointSize)
|
||||
0:24 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:24 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:24 Constant:
|
||||
0:24 1 (const int)
|
||||
0:24 Constant:
|
||||
0:24 1 (const int)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp highp float)
|
||||
0:25 'cd' ( temp highp float)
|
||||
0:25 Constant:
|
||||
0:25 0.000000
|
||||
0:27 Sequence
|
||||
0:27 move second child to first child ( temp highp int)
|
||||
0:27 'pvi' ( temp highp int)
|
||||
0:27 'gl_PatchVerticesIn' ( in highp int PatchVertices)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp highp int)
|
||||
0:28 'pid' ( temp highp int)
|
||||
0:28 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:29 Sequence
|
||||
0:29 move second child to first child ( temp highp int)
|
||||
0:29 'iid' ( temp highp int)
|
||||
0:29 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:31 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:31 gl_Position: direct index for structure ( out highp 4-component vector of float Position)
|
||||
0:31 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:31 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:31 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 'p' ( temp highp 4-component vector of float)
|
||||
0:32 move second child to first child ( temp highp float)
|
||||
0:32 gl_PointSize: direct index for structure ( out highp float PointSize)
|
||||
0:32 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:32 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:32 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 'ps' ( temp highp float)
|
||||
0:33 move second child to first child ( temp highp float)
|
||||
0:33 Constant:
|
||||
0:33 0.000000
|
||||
0:33 'cd' ( temp highp float)
|
||||
0:35 move second child to first child ( temp highp float)
|
||||
0:35 direct index ( patch temp highp float TessLevelOuter)
|
||||
0:35 'gl_TessLevelOuter' ( patch out 4-element array of highp float TessLevelOuter)
|
||||
0:35 Constant:
|
||||
0:35 3 (const int)
|
||||
0:35 Constant:
|
||||
0:35 3.200000
|
||||
0:36 move second child to first child ( temp highp float)
|
||||
0:36 direct index ( patch temp highp float TessLevelInner)
|
||||
0:36 'gl_TessLevelInner' ( patch out 2-element array of highp float TessLevelInner)
|
||||
0:36 Constant:
|
||||
0:36 1 (const int)
|
||||
0:36 Constant:
|
||||
0:36 1.300000
|
||||
0:38 Test condition and select ( temp void)
|
||||
0:38 Condition
|
||||
0:38 Compare Greater Than ( temp bool)
|
||||
0:38 'a' ( temp highp int)
|
||||
0:38 Constant:
|
||||
0:38 10 (const int)
|
||||
0:38 true case
|
||||
0:39 Barrier ( global void)
|
||||
0:38 false case
|
||||
0:41 Barrier ( global void)
|
||||
0:43 Barrier ( global void)
|
||||
0:47 Loop with condition not tested first
|
||||
0:47 Loop Condition
|
||||
0:47 Compare Greater Than ( temp bool)
|
||||
0:47 'a' ( temp highp int)
|
||||
0:47 Constant:
|
||||
0:47 10 (const int)
|
||||
0:47 Loop Body
|
||||
0:46 Sequence
|
||||
0:46 Barrier ( global void)
|
||||
0:49 switch
|
||||
0:49 condition
|
||||
0:49 'a' ( temp highp int)
|
||||
0:49 body
|
||||
0:49 Sequence
|
||||
0:50 default:
|
||||
0:? Sequence
|
||||
0:51 Barrier ( global void)
|
||||
0:52 Branch: Break
|
||||
0:54 Test condition and select ( temp highp int)
|
||||
0:54 Condition
|
||||
0:54 Compare Less Than ( temp bool)
|
||||
0:54 'a' ( temp highp int)
|
||||
0:54 Constant:
|
||||
0:54 12 (const int)
|
||||
0:54 true case
|
||||
0:54 'a' ( temp highp int)
|
||||
0:54 false case
|
||||
0:54 Comma ( temp highp int)
|
||||
0:54 Barrier ( global void)
|
||||
0:54 'a' ( temp highp int)
|
||||
0:56 Sequence
|
||||
0:56 Barrier ( global void)
|
||||
0:59 Branch: Return
|
||||
0:61 Barrier ( global void)
|
||||
0:67 Function Definition: foo( ( global void)
|
||||
0:67 Function Parameters:
|
||||
0:69 Sequence
|
||||
0:69 gl_Position: direct index for structure ( out highp 4-component vector of float Position)
|
||||
0:69 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:69 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:69 Constant:
|
||||
0:69 4 (const int)
|
||||
0:69 Constant:
|
||||
0:69 0 (const int)
|
||||
0:71 Barrier ( global void)
|
||||
0:102 Function Definition: pointSize2( ( global void)
|
||||
0:102 Function Parameters:
|
||||
0:104 Sequence
|
||||
0:104 Sequence
|
||||
0:104 move second child to first child ( temp highp float)
|
||||
0:104 'ps' ( temp highp float)
|
||||
0:104 gl_PointSize: direct index for structure ( in highp float PointSize)
|
||||
0:104 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:104 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:104 Constant:
|
||||
0:104 1 (const int)
|
||||
0:104 Constant:
|
||||
0:104 1 (const int)
|
||||
0:105 move second child to first child ( temp highp float)
|
||||
0:105 gl_PointSize: direct index for structure ( out highp float PointSize)
|
||||
0:105 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:105 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:105 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:105 Constant:
|
||||
0:105 1 (const int)
|
||||
0:105 'ps' ( temp highp float)
|
||||
0:110 Function Definition: goodfoop( ( global void)
|
||||
0:110 Function Parameters:
|
||||
0:? Sequence
|
||||
0:114 multiply second child into first child ( temp highp 3-component vector of float)
|
||||
0:114 'pv3' ( noContraction temp highp 3-component vector of float)
|
||||
0:114 'pv3' ( noContraction temp highp 3-component vector of float)
|
||||
0:115 move second child to first child ( temp highp 3-component vector of float)
|
||||
0:115 'pv3' ( noContraction temp highp 3-component vector of float)
|
||||
0:115 fma ( global highp 3-component vector of float)
|
||||
0:115 'pv3' ( noContraction temp highp 3-component vector of float)
|
||||
0:115 'pv3' ( noContraction temp highp 3-component vector of float)
|
||||
0:115 'pv3' ( noContraction temp highp 3-component vector of float)
|
||||
0:116 move second child to first child ( temp highp float)
|
||||
0:116 'd' ( noContraction temp highp float)
|
||||
0:116 fma ( global highp float)
|
||||
0:116 'd' ( noContraction temp highp float)
|
||||
0:116 'd' ( noContraction temp highp float)
|
||||
0:116 'd' ( noContraction temp highp float)
|
||||
0:119 Function Definition: bb( ( global void)
|
||||
0:119 Function Parameters:
|
||||
0:121 Sequence
|
||||
0:121 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:121 direct index ( patch temp highp 4-component vector of float BoundingBox)
|
||||
0:121 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:121 Constant:
|
||||
0:121 0 (const int)
|
||||
0:121 Constant:
|
||||
0:121 0.000000
|
||||
0:121 0.000000
|
||||
0:121 0.000000
|
||||
0:121 0.000000
|
||||
0:122 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:122 direct index ( patch temp highp 4-component vector of float BoundingBox)
|
||||
0:122 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:122 Constant:
|
||||
0:122 1 (const int)
|
||||
0:122 Constant:
|
||||
0:122 1.000000
|
||||
0:122 1.000000
|
||||
0:122 1.000000
|
||||
0:122 1.000000
|
||||
0:123 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:123 direct index ( patch temp highp 4-component vector of float BoundingBox)
|
||||
0:123 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:123 Constant:
|
||||
0:123 2 (const int)
|
||||
0:123 Constant:
|
||||
0:123 2.000000
|
||||
0:123 2.000000
|
||||
0:123 2.000000
|
||||
0:123 2.000000
|
||||
0:134 Function Definition: outputtingOutparam(i1; ( global void)
|
||||
0:134 Function Parameters:
|
||||
0:134 'a' ( out highp int)
|
||||
0:136 Sequence
|
||||
0:136 move second child to first child ( temp highp int)
|
||||
0:136 'a' ( out highp int)
|
||||
0:136 Constant:
|
||||
0:136 2 (const int)
|
||||
0:139 Function Definition: outputting( ( global void)
|
||||
0:139 Function Parameters:
|
||||
0:141 Sequence
|
||||
0:141 move second child to first child ( temp highp int)
|
||||
0:141 indirect index ( temp highp int)
|
||||
0:141 'outa' ( out 4-element array of highp int)
|
||||
0:141 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:141 Constant:
|
||||
0:141 2 (const int)
|
||||
0:142 move second child to first child ( temp highp int)
|
||||
0:142 direct index ( temp highp int)
|
||||
0:142 'outa' ( out 4-element array of highp int)
|
||||
0:142 Constant:
|
||||
0:142 1 (const int)
|
||||
0:142 Constant:
|
||||
0:142 2 (const int)
|
||||
0:143 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:143 gl_Position: direct index for structure ( out highp 4-component vector of float Position)
|
||||
0:143 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:143 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:143 Constant:
|
||||
0:143 0 (const int)
|
||||
0:143 Constant:
|
||||
0:143 0 (const int)
|
||||
0:143 Constant:
|
||||
0:143 1.000000
|
||||
0:143 1.000000
|
||||
0:143 1.000000
|
||||
0:143 1.000000
|
||||
0:144 direct index ( temp highp int)
|
||||
0:144 'outa' ( out 4-element array of highp int)
|
||||
0:144 Constant:
|
||||
0:144 1 (const int)
|
||||
0:145 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:145 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:145 Constant:
|
||||
0:145 0 (const int)
|
||||
0:146 Function Call: outputtingOutparam(i1; ( global void)
|
||||
0:146 direct index ( temp highp int)
|
||||
0:146 'outa' ( out 4-element array of highp int)
|
||||
0:146 Constant:
|
||||
0:146 0 (const int)
|
||||
0:147 Function Call: outputtingOutparam(i1; ( global void)
|
||||
0:147 indirect index ( temp highp int)
|
||||
0:147 'outa' ( out 4-element array of highp int)
|
||||
0:147 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:148 move second child to first child ( temp highp float)
|
||||
0:148 f: direct index for structure ( out highp float)
|
||||
0:148 direct index ( patch temp block{ out highp float f})
|
||||
0:148 'patchIName' ( patch out 4-element array of block{ out highp float f})
|
||||
0:148 Constant:
|
||||
0:148 1 (const int)
|
||||
0:148 Constant:
|
||||
0:148 0 (const int)
|
||||
0:148 Constant:
|
||||
0:148 3.140000
|
||||
0:149 move second child to first child ( temp highp int)
|
||||
0:149 indirect index ( temp highp int)
|
||||
0:149 'outa' ( out 4-element array of highp int)
|
||||
0:149 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:149 Constant:
|
||||
0:149 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:? 'outa' ( out 4-element array of highp int)
|
||||
0:? 'patchIn' ( patch in highp 4-component vector of float)
|
||||
0:? 'patchOut' ( patch out highp 4-component vector of float)
|
||||
0:? 'ina' ( in highp 2-component vector of float)
|
||||
0:? 'inb' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'inc' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'ind' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'implA' ( patch out implicitly-sized array of highp float)
|
||||
0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ovla' (layout( location=3) out 4-element array of highp 4-component vector of float)
|
||||
0:? 'ovlb' (layout( location=4) out 4-element array of highp 4-component vector of float)
|
||||
0:? 'ovlc' (layout( location=4) out 4-element array of highp 4-component vector of float)
|
||||
0:? 'pinbi' ( patch out block{ out highp int a})
|
||||
0:? 'myColor2' ( centroid out 4-element array of highp 3-component vector of float)
|
||||
0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float)
|
||||
0:? 'perSampleColor' ( sample out 4-element array of highp 4-component vector of float)
|
||||
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' ( 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})
|
||||
|
||||
|
||||
Linked tessellation control stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
vertices = 4
|
||||
ERROR: node is still EOpNull!
|
||||
0:13 Function Definition: main( ( global void)
|
||||
0:13 Function Parameters:
|
||||
0:15 Sequence
|
||||
0:15 Barrier ( global void)
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child ( temp highp int)
|
||||
0:17 'a' ( temp highp int)
|
||||
0:17 Constant:
|
||||
0:17 5392 (const int)
|
||||
0:23 Sequence
|
||||
0:23 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:23 'p' ( temp highp 4-component vector of float)
|
||||
0:23 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
|
||||
0:23 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:23 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp highp float)
|
||||
0:24 'ps' ( temp highp float)
|
||||
0:24 gl_PointSize: direct index for structure ( in highp float PointSize)
|
||||
0:24 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:24 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:24 Constant:
|
||||
0:24 1 (const int)
|
||||
0:24 Constant:
|
||||
0:24 1 (const int)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp highp float)
|
||||
0:25 'cd' ( temp highp float)
|
||||
0:25 Constant:
|
||||
0:25 0.000000
|
||||
0:27 Sequence
|
||||
0:27 move second child to first child ( temp highp int)
|
||||
0:27 'pvi' ( temp highp int)
|
||||
0:27 'gl_PatchVerticesIn' ( in highp int PatchVertices)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp highp int)
|
||||
0:28 'pid' ( temp highp int)
|
||||
0:28 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:29 Sequence
|
||||
0:29 move second child to first child ( temp highp int)
|
||||
0:29 'iid' ( temp highp int)
|
||||
0:29 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:31 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:31 gl_Position: direct index for structure ( out highp 4-component vector of float Position)
|
||||
0:31 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:31 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:31 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 'p' ( temp highp 4-component vector of float)
|
||||
0:32 move second child to first child ( temp highp float)
|
||||
0:32 gl_PointSize: direct index for structure ( out highp float PointSize)
|
||||
0:32 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:32 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:32 'gl_InvocationID' ( in highp int InvocationID)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 'ps' ( temp highp float)
|
||||
0:33 move second child to first child ( temp highp float)
|
||||
0:33 Constant:
|
||||
0:33 0.000000
|
||||
0:33 'cd' ( temp highp float)
|
||||
0:35 move second child to first child ( temp highp float)
|
||||
0:35 direct index ( patch temp highp float TessLevelOuter)
|
||||
0:35 'gl_TessLevelOuter' ( patch out 4-element array of highp float TessLevelOuter)
|
||||
0:35 Constant:
|
||||
0:35 3 (const int)
|
||||
0:35 Constant:
|
||||
0:35 3.200000
|
||||
0:36 move second child to first child ( temp highp float)
|
||||
0:36 direct index ( patch temp highp float TessLevelInner)
|
||||
0:36 'gl_TessLevelInner' ( patch out 2-element array of highp float TessLevelInner)
|
||||
0:36 Constant:
|
||||
0:36 1 (const int)
|
||||
0:36 Constant:
|
||||
0:36 1.300000
|
||||
0:38 Test condition and select ( temp void)
|
||||
0:38 Condition
|
||||
0:38 Compare Greater Than ( temp bool)
|
||||
0:38 'a' ( temp highp int)
|
||||
0:38 Constant:
|
||||
0:38 10 (const int)
|
||||
0:38 true case
|
||||
0:39 Barrier ( global void)
|
||||
0:38 false case
|
||||
0:41 Barrier ( global void)
|
||||
0:43 Barrier ( global void)
|
||||
0:47 Loop with condition not tested first
|
||||
0:47 Loop Condition
|
||||
0:47 Compare Greater Than ( temp bool)
|
||||
0:47 'a' ( temp highp int)
|
||||
0:47 Constant:
|
||||
0:47 10 (const int)
|
||||
0:47 Loop Body
|
||||
0:46 Sequence
|
||||
0:46 Barrier ( global void)
|
||||
0:49 switch
|
||||
0:49 condition
|
||||
0:49 'a' ( temp highp int)
|
||||
0:49 body
|
||||
0:49 Sequence
|
||||
0:50 default:
|
||||
0:? Sequence
|
||||
0:51 Barrier ( global void)
|
||||
0:52 Branch: Break
|
||||
0:54 Test condition and select ( temp highp int)
|
||||
0:54 Condition
|
||||
0:54 Compare Less Than ( temp bool)
|
||||
0:54 'a' ( temp highp int)
|
||||
0:54 Constant:
|
||||
0:54 12 (const int)
|
||||
0:54 true case
|
||||
0:54 'a' ( temp highp int)
|
||||
0:54 false case
|
||||
0:54 Comma ( temp highp int)
|
||||
0:54 Barrier ( global void)
|
||||
0:54 'a' ( temp highp int)
|
||||
0:56 Sequence
|
||||
0:56 Barrier ( global void)
|
||||
0:59 Branch: Return
|
||||
0:61 Barrier ( global void)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:? 'outa' ( out 4-element array of highp int)
|
||||
0:? 'patchIn' ( patch in highp 4-component vector of float)
|
||||
0:? 'patchOut' ( patch out highp 4-component vector of float)
|
||||
0:? 'ina' ( in highp 2-component vector of float)
|
||||
0:? 'inb' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'inc' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'ind' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'implA' ( patch out 1-element array of highp float)
|
||||
0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ovla' (layout( location=3) out 4-element array of highp 4-component vector of float)
|
||||
0:? 'ovlb' (layout( location=4) out 4-element array of highp 4-component vector of float)
|
||||
0:? 'ovlc' (layout( location=4) out 4-element array of highp 4-component vector of float)
|
||||
0:? 'pinbi' ( patch out block{ out highp int a})
|
||||
0:? 'myColor2' ( centroid out 4-element array of highp 3-component vector of float)
|
||||
0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float)
|
||||
0:? 'perSampleColor' ( sample out 4-element array of highp 4-component vector of float)
|
||||
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' ( 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})
|
||||
|
276
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.tese.out
vendored
Normal file
276
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.tese.out
vendored
Normal file
@ -0,0 +1,276 @@
|
||||
320.tese
|
||||
ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value
|
||||
ERROR: 0:5: 'triangles' : cannot change previously set input primitive
|
||||
ERROR: 0:6: 'isolines' : cannot change previously set input primitive
|
||||
ERROR: 0:8: 'ccw' : cannot change previously set vertex order
|
||||
ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing
|
||||
ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing
|
||||
ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader
|
||||
ERROR: 0:22: 'barrier' : no matching overloaded function found
|
||||
ERROR: 0:33: 'gl_PointSize' : required extension not requested: Possible extensions include:
|
||||
GL_EXT_tessellation_point_size
|
||||
GL_OES_tessellation_point_size
|
||||
ERROR: 0:34: 'gl_ClipDistance' : no such field in structure
|
||||
ERROR: 0:34: 'expression' : left of '[' is not of type array, matrix, or vector
|
||||
ERROR: 0:43: 'gl_PointSize' : required extension not requested: Possible extensions include:
|
||||
GL_EXT_tessellation_point_size
|
||||
GL_OES_tessellation_point_size
|
||||
ERROR: 0:44: 'gl_ClipDistance' : undeclared identifier
|
||||
ERROR: 0:44: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
|
||||
ERROR: 0:44: 'assign' : l-value required (can't modify a const)
|
||||
ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch
|
||||
ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch
|
||||
ERROR: 0:49: 'noperspective' : Reserved word.
|
||||
ERROR: 0:49: 'noperspective' : not supported with this profile: es
|
||||
ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch
|
||||
ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
|
||||
ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized
|
||||
ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
|
||||
ERROR: 0:64: 'quads' : cannot apply to 'out'
|
||||
ERROR: 0:64: 'cw' : can only apply to 'in'
|
||||
ERROR: 0:65: 'triangles' : cannot apply to 'out'
|
||||
ERROR: 0:66: 'isolines' : cannot apply to 'out'
|
||||
ERROR: 0:67: 'cw' : can only apply to 'in'
|
||||
ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in'
|
||||
ERROR: 0:69: 'equal_spacing' : can only apply to 'in'
|
||||
ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in'
|
||||
ERROR: 0:71: 'point_mode' : can only apply to 'in'
|
||||
ERROR: 0:73: 'in' : type must be an array: ina
|
||||
ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
|
||||
ERROR: 0:78: 'in' : type must be an array: bla
|
||||
ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
|
||||
ERROR: 0:96: 'location' : overlapping use of location 24
|
||||
ERROR: 0:99: 'location' : overlapping use of location 24
|
||||
ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved
|
||||
ERROR: 0:113: 'gl_BoundingBoxOES' : undeclared identifier
|
||||
ERROR: 40 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
input primitive = quads
|
||||
vertex spacing = fractional_odd_spacing
|
||||
triangle order = cw
|
||||
using point mode
|
||||
ERROR: node is still EOpNull!
|
||||
0:20 Function Definition: main( ( global void)
|
||||
0:20 Function Parameters:
|
||||
0:22 Sequence
|
||||
0:22 Constant:
|
||||
0:22 0.000000
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp highp int)
|
||||
0:24 'a' ( temp highp int)
|
||||
0:24 Constant:
|
||||
0:24 1512 (const int)
|
||||
0:32 Sequence
|
||||
0:32 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:32 'p' ( temp highp 4-component vector of float)
|
||||
0:32 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
|
||||
0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:32 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:33 Sequence
|
||||
0:33 move second child to first child ( temp highp float)
|
||||
0:33 'ps' ( temp highp float)
|
||||
0:33 gl_PointSize: direct index for structure ( in highp float PointSize)
|
||||
0:33 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:33 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:34 Sequence
|
||||
0:34 move second child to first child ( temp highp float)
|
||||
0:34 'cd' ( temp highp float)
|
||||
0:34 Constant:
|
||||
0:34 0.000000
|
||||
0:36 Sequence
|
||||
0:36 move second child to first child ( temp highp int)
|
||||
0:36 'pvi' ( temp highp int)
|
||||
0:36 'gl_PatchVerticesIn' ( in highp int PatchVertices)
|
||||
0:37 Sequence
|
||||
0:37 move second child to first child ( temp highp int)
|
||||
0:37 'pid' ( temp highp int)
|
||||
0:37 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:38 Sequence
|
||||
0:38 move second child to first child ( temp highp 3-component vector of float)
|
||||
0:38 'tc' ( temp highp 3-component vector of float)
|
||||
0:38 'gl_TessCoord' ( in highp 3-component vector of float TessCoord)
|
||||
0:39 Sequence
|
||||
0:39 move second child to first child ( temp highp float)
|
||||
0:39 'tlo' ( temp highp float)
|
||||
0:39 direct index ( patch temp highp float TessLevelOuter)
|
||||
0:39 'gl_TessLevelOuter' ( patch in 4-element array of highp float TessLevelOuter)
|
||||
0:39 Constant:
|
||||
0:39 3 (const int)
|
||||
0:40 Sequence
|
||||
0:40 move second child to first child ( temp highp float)
|
||||
0:40 'tli' ( temp highp float)
|
||||
0:40 direct index ( patch temp highp float TessLevelInner)
|
||||
0:40 'gl_TessLevelInner' ( patch in 2-element array of highp float TessLevelInner)
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:42 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:42 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
|
||||
0:42 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
|
||||
0:42 Constant:
|
||||
0:42 0 (const uint)
|
||||
0:42 'p' ( temp highp 4-component vector of float)
|
||||
0:43 move second child to first child ( temp highp float)
|
||||
0:43 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize)
|
||||
0:43 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
|
||||
0:43 Constant:
|
||||
0:43 1 (const uint)
|
||||
0:43 'ps' ( temp highp float)
|
||||
0:44 move second child to first child ( temp highp float)
|
||||
0:44 Constant:
|
||||
0:44 0.000000
|
||||
0:44 'cd' ( temp highp float)
|
||||
0:111 Function Definition: bbbad( ( global void)
|
||||
0:111 Function Parameters:
|
||||
0:113 Sequence
|
||||
0:113 'gl_BoundingBoxOES' ( temp float)
|
||||
0:? Linker Objects
|
||||
0:? 'patchIn' ( patch in highp 4-component vector of float)
|
||||
0:? 'patchOut' ( patch out highp 4-component vector of float)
|
||||
0:? 'badp1' ( smooth patch in highp 4-component vector of float)
|
||||
0:? 'badp2' ( flat patch in highp 4-component vector of float)
|
||||
0:? 'badp3' ( noperspective patch in highp 4-component vector of float)
|
||||
0:? 'badp4' ( patch sample in highp 3-component vector of float)
|
||||
0:? 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position})
|
||||
0:? 'ina' ( in highp 2-component vector of float)
|
||||
0:? 'inb' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'inc' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'ind' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'bla' ( in block{ in highp int f})
|
||||
0:? 'blb' ( in 32-element array of block{ in highp int f})
|
||||
0:? 'blc' ( in 32-element array of block{ in highp int f})
|
||||
0:? 'bld' ( in 32-element array of block{ in highp int f})
|
||||
0:? 'ivla' (layout( location=23) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ivlb' (layout( location=24) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ivlc' (layout( location=24) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ovla' (layout( location=23) out 2-element array of highp 4-component vector of float)
|
||||
0:? 'ovlb' (layout( location=24) out 2-element array of highp 4-component vector of float)
|
||||
0:? 'pinbi' ( patch in block{ in highp int a})
|
||||
0:? 'myColor2' ( centroid out highp 3-component vector of float)
|
||||
0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float)
|
||||
0:? 'perSampleColor' ( sample out highp 4-component vector of float)
|
||||
|
||||
|
||||
Linked tessellation evaluation stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
input primitive = quads
|
||||
vertex spacing = fractional_odd_spacing
|
||||
triangle order = cw
|
||||
using point mode
|
||||
ERROR: node is still EOpNull!
|
||||
0:20 Function Definition: main( ( global void)
|
||||
0:20 Function Parameters:
|
||||
0:22 Sequence
|
||||
0:22 Constant:
|
||||
0:22 0.000000
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp highp int)
|
||||
0:24 'a' ( temp highp int)
|
||||
0:24 Constant:
|
||||
0:24 1512 (const int)
|
||||
0:32 Sequence
|
||||
0:32 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:32 'p' ( temp highp 4-component vector of float)
|
||||
0:32 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
|
||||
0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:32 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:33 Sequence
|
||||
0:33 move second child to first child ( temp highp float)
|
||||
0:33 'ps' ( temp highp float)
|
||||
0:33 gl_PointSize: direct index for structure ( in highp float PointSize)
|
||||
0:33 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:33 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:34 Sequence
|
||||
0:34 move second child to first child ( temp highp float)
|
||||
0:34 'cd' ( temp highp float)
|
||||
0:34 Constant:
|
||||
0:34 0.000000
|
||||
0:36 Sequence
|
||||
0:36 move second child to first child ( temp highp int)
|
||||
0:36 'pvi' ( temp highp int)
|
||||
0:36 'gl_PatchVerticesIn' ( in highp int PatchVertices)
|
||||
0:37 Sequence
|
||||
0:37 move second child to first child ( temp highp int)
|
||||
0:37 'pid' ( temp highp int)
|
||||
0:37 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:38 Sequence
|
||||
0:38 move second child to first child ( temp highp 3-component vector of float)
|
||||
0:38 'tc' ( temp highp 3-component vector of float)
|
||||
0:38 'gl_TessCoord' ( in highp 3-component vector of float TessCoord)
|
||||
0:39 Sequence
|
||||
0:39 move second child to first child ( temp highp float)
|
||||
0:39 'tlo' ( temp highp float)
|
||||
0:39 direct index ( patch temp highp float TessLevelOuter)
|
||||
0:39 'gl_TessLevelOuter' ( patch in 4-element array of highp float TessLevelOuter)
|
||||
0:39 Constant:
|
||||
0:39 3 (const int)
|
||||
0:40 Sequence
|
||||
0:40 move second child to first child ( temp highp float)
|
||||
0:40 'tli' ( temp highp float)
|
||||
0:40 direct index ( patch temp highp float TessLevelInner)
|
||||
0:40 'gl_TessLevelInner' ( patch in 2-element array of highp float TessLevelInner)
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:42 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:42 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
|
||||
0:42 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
|
||||
0:42 Constant:
|
||||
0:42 0 (const uint)
|
||||
0:42 'p' ( temp highp 4-component vector of float)
|
||||
0:43 move second child to first child ( temp highp float)
|
||||
0:43 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize)
|
||||
0:43 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
|
||||
0:43 Constant:
|
||||
0:43 1 (const uint)
|
||||
0:43 'ps' ( temp highp float)
|
||||
0:44 move second child to first child ( temp highp float)
|
||||
0:44 Constant:
|
||||
0:44 0.000000
|
||||
0:44 'cd' ( temp highp float)
|
||||
0:? Linker Objects
|
||||
0:? 'patchIn' ( patch in highp 4-component vector of float)
|
||||
0:? 'patchOut' ( patch out highp 4-component vector of float)
|
||||
0:? 'badp1' ( smooth patch in highp 4-component vector of float)
|
||||
0:? 'badp2' ( flat patch in highp 4-component vector of float)
|
||||
0:? 'badp3' ( noperspective patch in highp 4-component vector of float)
|
||||
0:? 'badp4' ( patch sample in highp 3-component vector of float)
|
||||
0:? 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position})
|
||||
0:? 'ina' ( in highp 2-component vector of float)
|
||||
0:? 'inb' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'inc' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'ind' ( in 32-element array of highp 2-component vector of float)
|
||||
0:? 'bla' ( in block{ in highp int f})
|
||||
0:? 'blb' ( in 32-element array of block{ in highp int f})
|
||||
0:? 'blc' ( in 32-element array of block{ in highp int f})
|
||||
0:? 'bld' ( in 32-element array of block{ in highp int f})
|
||||
0:? 'ivla' (layout( location=23) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ivlb' (layout( location=24) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ivlc' (layout( location=24) in 32-element array of highp 4-component vector of float)
|
||||
0:? 'ovla' (layout( location=23) out 2-element array of highp 4-component vector of float)
|
||||
0:? 'ovlb' (layout( location=24) out 2-element array of highp 4-component vector of float)
|
||||
0:? 'pinbi' ( patch in block{ in highp int a})
|
||||
0:? 'myColor2' ( centroid out highp 3-component vector of float)
|
||||
0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float)
|
||||
0:? 'perSampleColor' ( sample out highp 4-component vector of float)
|
||||
|
797
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.vert.out
vendored
Normal file
797
3rdparty/bgfx/3rdparty/glslang/Test/baseResults/320.vert.out
vendored
Normal file
@ -0,0 +1,797 @@
|
||||
320.vert
|
||||
ERROR: 0:6: 's' : member of block cannot be or contain a sampler, image, or atomic_uint type
|
||||
ERROR: 0:14: 'location' : overlapping use of location 12
|
||||
ERROR: 0:16: 'input block' : not supported in this stage: vertex
|
||||
ERROR: 0:18: 'gl_PerVertex' : block redeclaration has extra members
|
||||
ERROR: 0:28: 'gl_PointSize' : member of nameless block was not redeclared
|
||||
ERROR: 0:28: 'assign' : cannot convert from ' const float' to ' gl_PointSize highp void PointSize'
|
||||
ERROR: 0:31: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
|
||||
ERROR: 0:36: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block
|
||||
ERROR: 0:40: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block
|
||||
ERROR: 0:44: 'centroid' : cannot use centroid qualifier on an interface block
|
||||
ERROR: 0:48: 'invariant' : cannot use invariant qualifier on an interface block
|
||||
ERROR: 0:68: 'variable indexing buffer block array' : not supported with this profile: es
|
||||
ERROR: 0:73: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
|
||||
ERROR: 0:76: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:77: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:78: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:79: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:80: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:116: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:117: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:118: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:120: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:121: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:122: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:123: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:191: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:192: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:193: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:211: 'textureSize' : no matching overloaded function found
|
||||
ERROR: 0:211: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
|
||||
ERROR: 0:252: 'interpolateAtCentroid' : no matching overloaded function found
|
||||
ERROR: 0:253: 'interpolateAtSample' : no matching overloaded function found
|
||||
ERROR: 0:254: 'interpolateAtOffset' : no matching overloaded function found
|
||||
ERROR: 34 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 320
|
||||
ERROR: node is still EOpNull!
|
||||
0:23 Function Definition: main( ( global void)
|
||||
0:23 Function Parameters:
|
||||
0:25 Sequence
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp highp int)
|
||||
0:25 'sum' ( temp highp int)
|
||||
0:25 add ( temp highp int)
|
||||
0:25 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:26 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
|
||||
0:27 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:27 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
|
||||
0:27 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
|
||||
0:27 Constant:
|
||||
0:27 0 (const uint)
|
||||
0:27 Constant:
|
||||
0:27 1.000000
|
||||
0:27 1.000000
|
||||
0:27 1.000000
|
||||
0:27 1.000000
|
||||
0:28 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize)
|
||||
0:28 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
|
||||
0:28 Constant:
|
||||
0:28 1 (const uint)
|
||||
0:62 Function Definition: pfoo( ( global void)
|
||||
0:62 Function Parameters:
|
||||
0:? Sequence
|
||||
0:65 move second child to first child ( temp highp 2-component vector of float)
|
||||
0:65 'h' ( noContraction temp highp 2-component vector of float)
|
||||
0:65 fma ( global highp 2-component vector of float)
|
||||
0:65 'inf' ( in highp 2-component vector of float)
|
||||
0:65 'ing' ( in highp 2-component vector of float)
|
||||
0:65 'h' ( noContraction temp highp 2-component vector of float)
|
||||
0:66 indirect index ( temp lowp sampler2D)
|
||||
0:66 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:66 add ( temp highp int)
|
||||
0:66 'sIndex' ( uniform highp int)
|
||||
0:66 Constant:
|
||||
0:66 1 (const int)
|
||||
0:67 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i})
|
||||
0:67 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i})
|
||||
0:67 add ( temp highp int)
|
||||
0:67 'sIndex' ( uniform highp int)
|
||||
0:67 Constant:
|
||||
0:67 1 (const int)
|
||||
0:68 indirect index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i})
|
||||
0:68 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i})
|
||||
0:68 subtract ( temp highp int)
|
||||
0:68 'sIndex' ( uniform highp int)
|
||||
0:68 Constant:
|
||||
0:68 2 (const int)
|
||||
0:69 direct index ( writeonly temp highp image2D)
|
||||
0:69 'iArray' ( writeonly uniform 5-element array of highp image2D)
|
||||
0:69 Constant:
|
||||
0:69 2 (const int)
|
||||
0:70 indirect index ( writeonly temp highp image2D)
|
||||
0:70 'iArray' ( writeonly uniform 5-element array of highp image2D)
|
||||
0:70 subtract ( temp highp int)
|
||||
0:70 'sIndex' ( uniform highp int)
|
||||
0:70 Constant:
|
||||
0:70 2 (const int)
|
||||
0:71 textureGatherOffset ( global lowp 4-component vector of float)
|
||||
0:71 direct index ( temp lowp sampler2D)
|
||||
0:71 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:71 Constant:
|
||||
0:71 0 (const int)
|
||||
0:71 Constant:
|
||||
0:71 0.100000
|
||||
0:71 0.100000
|
||||
0:71 Convert float to int ( temp lowp 2-component vector of int)
|
||||
0:71 'inf' ( in highp 2-component vector of float)
|
||||
0:72 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp)
|
||||
0:72 direct index ( temp lowp sampler2D)
|
||||
0:72 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:72 Constant:
|
||||
0:72 0 (const int)
|
||||
0:72 Constant:
|
||||
0:72 0.100000
|
||||
0:72 0.100000
|
||||
0:72 Constant:
|
||||
0:72 0 (const int)
|
||||
0:72 0 (const int)
|
||||
0:72 0 (const int)
|
||||
0:72 0 (const int)
|
||||
0:72 0 (const int)
|
||||
0:72 0 (const int)
|
||||
0:72 0 (const int)
|
||||
0:72 0 (const int)
|
||||
0:73 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp)
|
||||
0:73 direct index ( temp lowp sampler2D)
|
||||
0:73 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:73 Constant:
|
||||
0:73 0 (const int)
|
||||
0:73 Constant:
|
||||
0:73 0.100000
|
||||
0:73 0.100000
|
||||
0:73 'offsets' ( uniform 4-element array of highp 2-component vector of int)
|
||||
0:101 Function Definition: bufferT( ( global void)
|
||||
0:101 Function Parameters:
|
||||
0:103 Sequence
|
||||
0:103 Sequence
|
||||
0:103 move second child to first child ( temp highp int)
|
||||
0:103 's1' ( temp highp int)
|
||||
0:103 textureSize ( global highp int)
|
||||
0:103 'bufSamp1' ( uniform highp samplerBuffer)
|
||||
0:104 Sequence
|
||||
0:104 move second child to first child ( temp highp int)
|
||||
0:104 's2' ( temp highp int)
|
||||
0:104 textureSize ( global highp int)
|
||||
0:104 'bufSamp2' ( uniform highp isamplerBuffer)
|
||||
0:105 Sequence
|
||||
0:105 move second child to first child ( temp highp int)
|
||||
0:105 's3' ( temp highp int)
|
||||
0:105 textureSize ( global highp int)
|
||||
0:105 'bufSamp3' ( uniform highp usamplerBuffer)
|
||||
0:107 Sequence
|
||||
0:107 move second child to first child ( temp highp int)
|
||||
0:107 's4' ( temp highp int)
|
||||
0:107 imageQuerySize ( global highp int)
|
||||
0:107 'bufSamp4' ( writeonly uniform highp imageBuffer)
|
||||
0:108 Sequence
|
||||
0:108 move second child to first child ( temp highp int)
|
||||
0:108 's5' ( temp highp int)
|
||||
0:108 imageQuerySize ( global highp int)
|
||||
0:108 'bufSamp5' ( writeonly uniform highp iimageBuffer)
|
||||
0:109 Sequence
|
||||
0:109 move second child to first child ( temp highp int)
|
||||
0:109 's6' ( temp highp int)
|
||||
0:109 imageQuerySize ( global highp int)
|
||||
0:109 'bufSamp6' ( writeonly uniform highp uimageBuffer)
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:111 'f1' ( temp highp 4-component vector of float)
|
||||
0:111 textureFetch ( global highp 4-component vector of float)
|
||||
0:111 'bufSamp1' ( uniform highp samplerBuffer)
|
||||
0:111 's1' ( temp highp int)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp highp 4-component vector of int)
|
||||
0:112 'f2' ( temp highp 4-component vector of int)
|
||||
0:112 textureFetch ( global highp 4-component vector of int)
|
||||
0:112 'bufSamp2' ( uniform highp isamplerBuffer)
|
||||
0:112 's2' ( temp highp int)
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:113 'f3' ( temp highp 4-component vector of uint)
|
||||
0:113 textureFetch ( global highp 4-component vector of uint)
|
||||
0:113 'bufSamp3' ( uniform highp usamplerBuffer)
|
||||
0:113 's3' ( temp highp int)
|
||||
0:149 Function Definition: CAT( ( global void)
|
||||
0:149 Function Parameters:
|
||||
0:151 Sequence
|
||||
0:151 Sequence
|
||||
0:151 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:151 's4' ( temp highp 3-component vector of int)
|
||||
0:151 textureSize ( global highp 3-component vector of int)
|
||||
0:151 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:151 Constant:
|
||||
0:151 1 (const int)
|
||||
0:152 Sequence
|
||||
0:152 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:152 's5' ( temp highp 3-component vector of int)
|
||||
0:152 textureSize ( global highp 3-component vector of int)
|
||||
0:152 'CA5' ( uniform highp samplerCubeArrayShadow)
|
||||
0:152 Constant:
|
||||
0:152 1 (const int)
|
||||
0:153 Sequence
|
||||
0:153 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:153 's6' ( temp highp 3-component vector of int)
|
||||
0:153 textureSize ( global highp 3-component vector of int)
|
||||
0:153 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:153 Constant:
|
||||
0:153 1 (const int)
|
||||
0:154 Sequence
|
||||
0:154 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:154 's7' ( temp highp 3-component vector of int)
|
||||
0:154 textureSize ( global highp 3-component vector of int)
|
||||
0:154 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:154 Constant:
|
||||
0:154 1 (const int)
|
||||
0:156 Sequence
|
||||
0:156 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:156 't4' ( temp highp 4-component vector of float)
|
||||
0:156 texture ( global highp 4-component vector of float)
|
||||
0:156 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:156 Constant:
|
||||
0:156 0.500000
|
||||
0:156 0.500000
|
||||
0:156 0.500000
|
||||
0:156 0.500000
|
||||
0:157 Sequence
|
||||
0:157 move second child to first child ( temp highp float)
|
||||
0:157 't5' ( temp highp float)
|
||||
0:157 texture ( global highp float)
|
||||
0:157 'CA5' ( uniform highp samplerCubeArrayShadow)
|
||||
0:157 Constant:
|
||||
0:157 0.500000
|
||||
0:157 0.500000
|
||||
0:157 0.500000
|
||||
0:157 0.500000
|
||||
0:157 Constant:
|
||||
0:157 3.000000
|
||||
0:158 Sequence
|
||||
0:158 move second child to first child ( temp highp 4-component vector of int)
|
||||
0:158 't6' ( temp highp 4-component vector of int)
|
||||
0:158 texture ( global highp 4-component vector of int)
|
||||
0:158 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:158 Constant:
|
||||
0:158 0.500000
|
||||
0:158 0.500000
|
||||
0:158 0.500000
|
||||
0:158 0.500000
|
||||
0:159 Sequence
|
||||
0:159 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:159 't7' ( temp highp 4-component vector of uint)
|
||||
0:159 texture ( global highp 4-component vector of uint)
|
||||
0:159 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:159 Constant:
|
||||
0:159 0.500000
|
||||
0:159 0.500000
|
||||
0:159 0.500000
|
||||
0:159 0.500000
|
||||
0:161 Sequence
|
||||
0:161 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:161 'L4' ( temp highp 4-component vector of float)
|
||||
0:161 textureLod ( global highp 4-component vector of float)
|
||||
0:161 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:161 Constant:
|
||||
0:161 0.500000
|
||||
0:161 0.500000
|
||||
0:161 0.500000
|
||||
0:161 0.500000
|
||||
0:161 Constant:
|
||||
0:161 0.240000
|
||||
0:162 Sequence
|
||||
0:162 move second child to first child ( temp highp 4-component vector of int)
|
||||
0:162 'L6' ( temp highp 4-component vector of int)
|
||||
0:162 textureLod ( global highp 4-component vector of int)
|
||||
0:162 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:162 Constant:
|
||||
0:162 0.500000
|
||||
0:162 0.500000
|
||||
0:162 0.500000
|
||||
0:162 0.500000
|
||||
0:162 Constant:
|
||||
0:162 0.260000
|
||||
0:163 Sequence
|
||||
0:163 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:163 'L7' ( temp highp 4-component vector of uint)
|
||||
0:163 textureLod ( global highp 4-component vector of uint)
|
||||
0:163 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:163 Constant:
|
||||
0:163 0.500000
|
||||
0:163 0.500000
|
||||
0:163 0.500000
|
||||
0:163 0.500000
|
||||
0:163 Constant:
|
||||
0:163 0.270000
|
||||
0:165 Sequence
|
||||
0:165 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:165 'g4' ( temp highp 4-component vector of float)
|
||||
0:165 textureGrad ( global highp 4-component vector of float)
|
||||
0:165 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:165 Constant:
|
||||
0:165 0.500000
|
||||
0:165 0.500000
|
||||
0:165 0.500000
|
||||
0:165 0.500000
|
||||
0:165 Constant:
|
||||
0:165 0.100000
|
||||
0:165 0.100000
|
||||
0:165 0.100000
|
||||
0:165 Constant:
|
||||
0:165 0.200000
|
||||
0:165 0.200000
|
||||
0:165 0.200000
|
||||
0:166 Sequence
|
||||
0:166 move second child to first child ( temp highp 4-component vector of int)
|
||||
0:166 'g6' ( temp highp 4-component vector of int)
|
||||
0:166 textureGrad ( global highp 4-component vector of int)
|
||||
0:166 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:166 Constant:
|
||||
0:166 0.500000
|
||||
0:166 0.500000
|
||||
0:166 0.500000
|
||||
0:166 0.500000
|
||||
0:166 Constant:
|
||||
0:166 0.100000
|
||||
0:166 0.100000
|
||||
0:166 0.100000
|
||||
0:166 Constant:
|
||||
0:166 0.200000
|
||||
0:166 0.200000
|
||||
0:166 0.200000
|
||||
0:167 Sequence
|
||||
0:167 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:167 'g7' ( temp highp 4-component vector of uint)
|
||||
0:167 textureGrad ( global highp 4-component vector of uint)
|
||||
0:167 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:167 Constant:
|
||||
0:167 0.500000
|
||||
0:167 0.500000
|
||||
0:167 0.500000
|
||||
0:167 0.500000
|
||||
0:167 Constant:
|
||||
0:167 0.100000
|
||||
0:167 0.100000
|
||||
0:167 0.100000
|
||||
0:167 Constant:
|
||||
0:167 0.200000
|
||||
0:167 0.200000
|
||||
0:167 0.200000
|
||||
0:169 Sequence
|
||||
0:169 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:169 'gath4' ( temp highp 4-component vector of float)
|
||||
0:169 textureGather ( global highp 4-component vector of float)
|
||||
0:169 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:169 Constant:
|
||||
0:169 0.500000
|
||||
0:169 0.500000
|
||||
0:169 0.500000
|
||||
0:169 0.500000
|
||||
0:170 Sequence
|
||||
0:170 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:170 'gathC4' ( temp highp 4-component vector of float)
|
||||
0:170 textureGather ( global highp 4-component vector of float)
|
||||
0:170 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:170 Constant:
|
||||
0:170 0.500000
|
||||
0:170 0.500000
|
||||
0:170 0.500000
|
||||
0:170 0.500000
|
||||
0:170 Constant:
|
||||
0:170 2 (const int)
|
||||
0:171 Sequence
|
||||
0:171 move second child to first child ( temp highp 4-component vector of int)
|
||||
0:171 'gath6' ( temp highp 4-component vector of int)
|
||||
0:171 textureGather ( global highp 4-component vector of int)
|
||||
0:171 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:171 Constant:
|
||||
0:171 0.500000
|
||||
0:171 0.500000
|
||||
0:171 0.500000
|
||||
0:171 0.500000
|
||||
0:172 Sequence
|
||||
0:172 move second child to first child ( temp highp 4-component vector of int)
|
||||
0:172 'gathC6' ( temp highp 4-component vector of int)
|
||||
0:172 textureGather ( global highp 4-component vector of int)
|
||||
0:172 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:172 Constant:
|
||||
0:172 0.500000
|
||||
0:172 0.500000
|
||||
0:172 0.500000
|
||||
0:172 0.500000
|
||||
0:172 Constant:
|
||||
0:172 1 (const int)
|
||||
0:173 Sequence
|
||||
0:173 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:173 'gath7' ( temp highp 4-component vector of uint)
|
||||
0:173 textureGather ( global highp 4-component vector of uint)
|
||||
0:173 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:173 Constant:
|
||||
0:173 0.500000
|
||||
0:173 0.500000
|
||||
0:173 0.500000
|
||||
0:173 0.500000
|
||||
0:174 Sequence
|
||||
0:174 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:174 'gathC7' ( temp highp 4-component vector of uint)
|
||||
0:174 textureGather ( global highp 4-component vector of uint)
|
||||
0:174 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:174 Constant:
|
||||
0:174 0.500000
|
||||
0:174 0.500000
|
||||
0:174 0.500000
|
||||
0:174 0.500000
|
||||
0:174 Constant:
|
||||
0:174 0 (const int)
|
||||
0:176 Sequence
|
||||
0:176 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:176 'gath5' ( temp highp 4-component vector of float)
|
||||
0:176 textureGather ( global highp 4-component vector of float)
|
||||
0:176 'CA5' ( uniform highp samplerCubeArrayShadow)
|
||||
0:176 Constant:
|
||||
0:176 0.500000
|
||||
0:176 0.500000
|
||||
0:176 0.500000
|
||||
0:176 0.500000
|
||||
0:176 Constant:
|
||||
0:176 2.500000
|
||||
0:178 Sequence
|
||||
0:178 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:178 's1' ( temp highp 3-component vector of int)
|
||||
0:178 imageQuerySize ( global highp 3-component vector of int)
|
||||
0:178 'CA1' ( writeonly uniform highp imageCubeArray)
|
||||
0:179 Sequence
|
||||
0:179 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:179 's2' ( temp highp 3-component vector of int)
|
||||
0:179 imageQuerySize ( global highp 3-component vector of int)
|
||||
0:179 'CA2' ( writeonly uniform highp iimageCubeArray)
|
||||
0:180 Sequence
|
||||
0:180 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:180 's3' ( temp highp 3-component vector of int)
|
||||
0:180 imageQuerySize ( global highp 3-component vector of int)
|
||||
0:180 'CA3' ( writeonly uniform highp uimageCubeArray)
|
||||
0:182 imageStore ( global highp void)
|
||||
0:182 'CA1' ( writeonly uniform highp imageCubeArray)
|
||||
0:182 's3' ( temp highp 3-component vector of int)
|
||||
0:182 Constant:
|
||||
0:182 1.000000
|
||||
0:182 1.000000
|
||||
0:182 1.000000
|
||||
0:182 1.000000
|
||||
0:183 imageStore ( global highp void)
|
||||
0:183 'CA2' ( writeonly uniform highp iimageCubeArray)
|
||||
0:183 's3' ( temp highp 3-component vector of int)
|
||||
0:183 Constant:
|
||||
0:183 1 (const int)
|
||||
0:183 1 (const int)
|
||||
0:183 1 (const int)
|
||||
0:183 1 (const int)
|
||||
0:184 imageStore ( global highp void)
|
||||
0:184 'CA3' ( writeonly uniform highp uimageCubeArray)
|
||||
0:184 's3' ( temp highp 3-component vector of int)
|
||||
0:184 Constant:
|
||||
0:184 1 (const uint)
|
||||
0:184 1 (const uint)
|
||||
0:184 1 (const uint)
|
||||
0:184 1 (const uint)
|
||||
0:186 Sequence
|
||||
0:186 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:186 'cl1' ( temp highp 4-component vector of float)
|
||||
0:186 imageLoad ( global highp 4-component vector of float)
|
||||
0:186 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray)
|
||||
0:186 's3' ( temp highp 3-component vector of int)
|
||||
0:187 Sequence
|
||||
0:187 move second child to first child ( temp highp 4-component vector of int)
|
||||
0:187 'cl2' ( temp highp 4-component vector of int)
|
||||
0:187 imageLoad ( global highp 4-component vector of int)
|
||||
0:187 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray)
|
||||
0:187 's3' ( temp highp 3-component vector of int)
|
||||
0:188 Sequence
|
||||
0:188 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:188 'cl3' ( temp highp 4-component vector of uint)
|
||||
0:188 imageLoad ( global highp 4-component vector of uint)
|
||||
0:188 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray)
|
||||
0:188 's3' ( temp highp 3-component vector of int)
|
||||
0:203 Function Definition: MSA( ( global void)
|
||||
0:203 Function Parameters:
|
||||
0:205 Sequence
|
||||
0:205 Sequence
|
||||
0:205 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:205 'tf' ( temp highp 4-component vector of float)
|
||||
0:205 textureFetch ( global highp 4-component vector of float)
|
||||
0:205 'samp2DMSA' ( uniform highp sampler2DMSArray)
|
||||
0:205 Constant:
|
||||
0:205 5 (const int)
|
||||
0:205 5 (const int)
|
||||
0:205 5 (const int)
|
||||
0:205 Constant:
|
||||
0:205 2 (const int)
|
||||
0:206 Sequence
|
||||
0:206 move second child to first child ( temp highp 4-component vector of int)
|
||||
0:206 'tfi' ( temp highp 4-component vector of int)
|
||||
0:206 textureFetch ( global highp 4-component vector of int)
|
||||
0:206 'samp2DMSAi' ( uniform highp isampler2DMSArray)
|
||||
0:206 Constant:
|
||||
0:206 5 (const int)
|
||||
0:206 5 (const int)
|
||||
0:206 5 (const int)
|
||||
0:206 Constant:
|
||||
0:206 2 (const int)
|
||||
0:207 Sequence
|
||||
0:207 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:207 'tfu' ( temp highp 4-component vector of uint)
|
||||
0:207 textureFetch ( global highp 4-component vector of uint)
|
||||
0:207 'samp2DMSAu' ( uniform highp usampler2DMSArray)
|
||||
0:207 Constant:
|
||||
0:207 5 (const int)
|
||||
0:207 5 (const int)
|
||||
0:207 5 (const int)
|
||||
0:207 Constant:
|
||||
0:207 2 (const int)
|
||||
0:209 Sequence
|
||||
0:209 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:209 'tfs' ( temp highp 3-component vector of int)
|
||||
0:209 textureSize ( global highp 3-component vector of int)
|
||||
0:209 'samp2DMSA' ( uniform highp sampler2DMSArray)
|
||||
0:210 Sequence
|
||||
0:210 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:210 'tfsi' ( temp highp 3-component vector of int)
|
||||
0:210 textureSize ( global highp 3-component vector of int)
|
||||
0:210 'samp2DMSAi' ( uniform highp isampler2DMSArray)
|
||||
0:212 Sequence
|
||||
0:212 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:212 'tfsu' ( temp highp 3-component vector of int)
|
||||
0:212 textureSize ( global highp 3-component vector of int)
|
||||
0:212 'samp2DMSAu' ( uniform highp usampler2DMSArray)
|
||||
0:220 Function Definition: goodImageAtom( ( global void)
|
||||
0:220 Function Parameters:
|
||||
0:? Sequence
|
||||
0:226 imageAtomicAdd ( global highp int)
|
||||
0:226 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:226 'P' ( uniform highp 2-component vector of int)
|
||||
0:226 'dati' ( temp highp int)
|
||||
0:227 imageAtomicAdd ( global highp uint)
|
||||
0:227 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:227 'P' ( uniform highp 2-component vector of int)
|
||||
0:227 'datu' ( temp highp uint)
|
||||
0:228 imageAtomicMin ( global highp int)
|
||||
0:228 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:228 'P' ( uniform highp 2-component vector of int)
|
||||
0:228 'dati' ( temp highp int)
|
||||
0:229 imageAtomicMin ( global highp uint)
|
||||
0:229 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:229 'P' ( uniform highp 2-component vector of int)
|
||||
0:229 'datu' ( temp highp uint)
|
||||
0:230 imageAtomicMax ( global highp int)
|
||||
0:230 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:230 'P' ( uniform highp 2-component vector of int)
|
||||
0:230 'dati' ( temp highp int)
|
||||
0:231 imageAtomicMax ( global highp uint)
|
||||
0:231 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:231 'P' ( uniform highp 2-component vector of int)
|
||||
0:231 'datu' ( temp highp uint)
|
||||
0:232 imageAtomicAnd ( global highp int)
|
||||
0:232 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:232 'P' ( uniform highp 2-component vector of int)
|
||||
0:232 'dati' ( temp highp int)
|
||||
0:233 imageAtomicAnd ( global highp uint)
|
||||
0:233 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:233 'P' ( uniform highp 2-component vector of int)
|
||||
0:233 'datu' ( temp highp uint)
|
||||
0:234 imageAtomicOr ( global highp int)
|
||||
0:234 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:234 'P' ( uniform highp 2-component vector of int)
|
||||
0:234 'dati' ( temp highp int)
|
||||
0:235 imageAtomicOr ( global highp uint)
|
||||
0:235 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:235 'P' ( uniform highp 2-component vector of int)
|
||||
0:235 'datu' ( temp highp uint)
|
||||
0:236 imageAtomicXor ( global highp int)
|
||||
0:236 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:236 'P' ( uniform highp 2-component vector of int)
|
||||
0:236 'dati' ( temp highp int)
|
||||
0:237 imageAtomicXor ( global highp uint)
|
||||
0:237 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:237 'P' ( uniform highp 2-component vector of int)
|
||||
0:237 'datu' ( temp highp uint)
|
||||
0:238 imageAtomicExchange ( global highp int)
|
||||
0:238 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:238 'P' ( uniform highp 2-component vector of int)
|
||||
0:238 'dati' ( temp highp int)
|
||||
0:239 imageAtomicExchange ( global highp uint)
|
||||
0:239 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:239 'P' ( uniform highp 2-component vector of int)
|
||||
0:239 'datu' ( temp highp uint)
|
||||
0:240 imageAtomicExchange ( global highp float)
|
||||
0:240 'im2Df' (layout( r32f) uniform highp image2D)
|
||||
0:240 'P' ( uniform highp 2-component vector of int)
|
||||
0:240 'datf' ( temp highp float)
|
||||
0:241 imageAtomicCompSwap ( global highp int)
|
||||
0:241 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:241 'P' ( uniform highp 2-component vector of int)
|
||||
0:241 Constant:
|
||||
0:241 3 (const int)
|
||||
0:241 'dati' ( temp highp int)
|
||||
0:242 imageAtomicCompSwap ( global highp uint)
|
||||
0:242 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:242 'P' ( uniform highp 2-component vector of int)
|
||||
0:242 Constant:
|
||||
0:242 5 (const uint)
|
||||
0:242 'datu' ( temp highp uint)
|
||||
0:250 Function Definition: badInterp( ( global void)
|
||||
0:250 Function Parameters:
|
||||
0:252 Sequence
|
||||
0:252 Constant:
|
||||
0:252 0.000000
|
||||
0:253 Constant:
|
||||
0:253 0.000000
|
||||
0:254 Constant:
|
||||
0:254 0.000000
|
||||
0:? Linker Objects
|
||||
0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s})
|
||||
0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon})
|
||||
0:? 'aliased' (layout( location=12) smooth out highp int)
|
||||
0:? 'inbinst' ( in block{ in highp int a})
|
||||
0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
|
||||
0:? 'smon' ( smooth out block{ out highp int i})
|
||||
0:? 'fmon' ( flat out block{ out highp int i})
|
||||
0:? 'cmon' ( centroid out block{ out highp int i})
|
||||
0:? 'imon' ( invariant out block{ out highp int i})
|
||||
0:? 'inf' ( in highp 2-component vector of float)
|
||||
0:? 'ing' ( in highp 2-component vector of float)
|
||||
0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int)
|
||||
0:? 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:? 'sIndex' ( uniform highp int)
|
||||
0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint)
|
||||
0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i})
|
||||
0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i})
|
||||
0:? 'iArray' ( writeonly uniform 5-element array of highp image2D)
|
||||
0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 'noPreSamp1' ( uniform mediump samplerBuffer)
|
||||
0:? 'noPreSamp2' ( uniform mediump isamplerBuffer)
|
||||
0:? 'noPreSamp3' ( uniform mediump usamplerBuffer)
|
||||
0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer)
|
||||
0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer)
|
||||
0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer)
|
||||
0:? 'bufSamp1' ( uniform highp samplerBuffer)
|
||||
0:? 'bufSamp2' ( uniform highp isamplerBuffer)
|
||||
0:? 'bufSamp3' ( uniform highp usamplerBuffer)
|
||||
0:? 'bufSamp4' ( writeonly uniform highp imageBuffer)
|
||||
0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer)
|
||||
0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer)
|
||||
0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray)
|
||||
0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray)
|
||||
0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray)
|
||||
0:? 'noPreCA4' ( uniform mediump samplerCubeArray)
|
||||
0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow)
|
||||
0:? 'noPreCA6' ( uniform mediump isamplerCubeArray)
|
||||
0:? 'noPreCA7' ( uniform mediump usamplerCubeArray)
|
||||
0:? 'CA1' ( writeonly uniform highp imageCubeArray)
|
||||
0:? 'CA2' ( writeonly uniform highp iimageCubeArray)
|
||||
0:? 'CA3' ( writeonly uniform highp uimageCubeArray)
|
||||
0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray)
|
||||
0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray)
|
||||
0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray)
|
||||
0:? 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:? 'CA5' ( uniform highp samplerCubeArrayShadow)
|
||||
0:? 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:? 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray)
|
||||
0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray)
|
||||
0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray)
|
||||
0:? 'samp2DMSA' ( uniform highp sampler2DMSArray)
|
||||
0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray)
|
||||
0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray)
|
||||
0:? 'im2Df' (layout( r32f) uniform highp image2D)
|
||||
0:? 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:? 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:? 'P' ( uniform highp 2-component vector of int)
|
||||
0:? 'colorSample' ( smooth sample out highp 4-component vector of float)
|
||||
0:? 'colorfsi' ( flat sample out highp 4-component vector of float)
|
||||
0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float)
|
||||
0:? 'inv4' ( in highp 4-component vector of float)
|
||||
0:? 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
ERROR: node is still EOpNull!
|
||||
0:23 Function Definition: main( ( global void)
|
||||
0:23 Function Parameters:
|
||||
0:25 Sequence
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp highp int)
|
||||
0:25 'sum' ( temp highp int)
|
||||
0:25 add ( temp highp int)
|
||||
0:25 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:26 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
|
||||
0:27 move second child to first child ( temp highp 4-component vector of float)
|
||||
0:27 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
|
||||
0:27 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
|
||||
0:27 Constant:
|
||||
0:27 0 (const uint)
|
||||
0:27 Constant:
|
||||
0:27 1.000000
|
||||
0:27 1.000000
|
||||
0:27 1.000000
|
||||
0:27 1.000000
|
||||
0:28 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize)
|
||||
0:28 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
|
||||
0:28 Constant:
|
||||
0:28 1 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s})
|
||||
0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon})
|
||||
0:? 'aliased' (layout( location=12) smooth out highp int)
|
||||
0:? 'inbinst' ( in block{ in highp int a})
|
||||
0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
|
||||
0:? 'smon' ( smooth out block{ out highp int i})
|
||||
0:? 'fmon' ( flat out block{ out highp int i})
|
||||
0:? 'cmon' ( centroid out block{ out highp int i})
|
||||
0:? 'imon' ( invariant out block{ out highp int i})
|
||||
0:? 'inf' ( in highp 2-component vector of float)
|
||||
0:? 'ing' ( in highp 2-component vector of float)
|
||||
0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int)
|
||||
0:? 'sArray' ( uniform 4-element array of lowp sampler2D)
|
||||
0:? 'sIndex' ( uniform highp int)
|
||||
0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint)
|
||||
0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i})
|
||||
0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i})
|
||||
0:? 'iArray' ( writeonly uniform 5-element array of highp image2D)
|
||||
0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 0 (const int)
|
||||
0:? 'noPreSamp1' ( uniform mediump samplerBuffer)
|
||||
0:? 'noPreSamp2' ( uniform mediump isamplerBuffer)
|
||||
0:? 'noPreSamp3' ( uniform mediump usamplerBuffer)
|
||||
0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer)
|
||||
0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer)
|
||||
0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer)
|
||||
0:? 'bufSamp1' ( uniform highp samplerBuffer)
|
||||
0:? 'bufSamp2' ( uniform highp isamplerBuffer)
|
||||
0:? 'bufSamp3' ( uniform highp usamplerBuffer)
|
||||
0:? 'bufSamp4' ( writeonly uniform highp imageBuffer)
|
||||
0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer)
|
||||
0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer)
|
||||
0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray)
|
||||
0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray)
|
||||
0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray)
|
||||
0:? 'noPreCA4' ( uniform mediump samplerCubeArray)
|
||||
0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow)
|
||||
0:? 'noPreCA6' ( uniform mediump isamplerCubeArray)
|
||||
0:? 'noPreCA7' ( uniform mediump usamplerCubeArray)
|
||||
0:? 'CA1' ( writeonly uniform highp imageCubeArray)
|
||||
0:? 'CA2' ( writeonly uniform highp iimageCubeArray)
|
||||
0:? 'CA3' ( writeonly uniform highp uimageCubeArray)
|
||||
0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray)
|
||||
0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray)
|
||||
0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray)
|
||||
0:? 'CA4' ( uniform highp samplerCubeArray)
|
||||
0:? 'CA5' ( uniform highp samplerCubeArrayShadow)
|
||||
0:? 'CA6' ( uniform highp isamplerCubeArray)
|
||||
0:? 'CA7' ( uniform highp usamplerCubeArray)
|
||||
0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray)
|
||||
0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray)
|
||||
0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray)
|
||||
0:? 'samp2DMSA' ( uniform highp sampler2DMSArray)
|
||||
0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray)
|
||||
0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray)
|
||||
0:? 'im2Df' (layout( r32f) uniform highp image2D)
|
||||
0:? 'im2Du' (layout( r32ui) uniform highp uimage2D)
|
||||
0:? 'im2Di' (layout( r32i) uniform highp iimage2D)
|
||||
0:? 'P' ( uniform highp 2-component vector of int)
|
||||
0:? 'colorSample' ( smooth sample out highp 4-component vector of float)
|
||||
0:? 'colorfsi' ( flat sample out highp 4-component vector of float)
|
||||
0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float)
|
||||
0:? 'inv4' ( in highp 4-component vector of float)
|
||||
0:? 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
|
||||
|
@ -100,7 +100,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'v20' ( smooth in 4-component vector of float)
|
||||
0:? 'v21' (layout( location=60) smooth in float)
|
||||
0:? 'v22' (layout( location=2) smooth in float)
|
||||
0:? 'anon@1' ( in block{layout( location=1 component=0) in float f1, layout( location=3) in float f2})
|
||||
0:? 'anon@1' ( in block{layout( location=1) in float f1, layout( location=3) in float f2})
|
||||
0:? 'uinst' (layout( location=1 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2})
|
||||
0:? 'v3' (layout( location=6) smooth in 4-component vector of float)
|
||||
0:? 'v4' ( smooth in 4-component vector of float)
|
||||
@ -108,12 +108,12 @@ ERROR: node is still EOpNull!
|
||||
0:? 'v6' (layout( location=30) smooth in 4-component vector of float)
|
||||
0:? 'v23' (layout( location=61) smooth in float)
|
||||
0:? 'v24' (layout( location=62) smooth in float)
|
||||
0:? 'ininst2' ( in block{layout( location=28 component=0) in bool b1, layout( location=29 component=0) in float f1, layout( location=25) in float f2, layout( location=26 component=0) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23 component=0) in 4-component vector of float f4, layout( location=24 component=0) in 4-component vector of float f5})
|
||||
0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2, layout( location=26) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23) in 4-component vector of float f4, layout( location=24) in 4-component vector of float f5})
|
||||
0:? 'uinst2' (layout( location=13 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2})
|
||||
0:? 'in3' ( in block{ in float f1, layout( location=40) in float f2})
|
||||
0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2})
|
||||
0:? 's' (layout( location=33) smooth in structure{ global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A})
|
||||
0:? 'anon@2' ( in block{layout( location=44 component=0) in 4-component vector of float d, layout( location=45 component=0) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48 component=0) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42 component=0) in 4-component vector of float i, layout( location=43 component=0) in 4-component vector of float j, layout( location=44 component=0) in 4-component vector of float k})
|
||||
0:? 'anon@2' ( in block{layout( location=44) in 4-component vector of float d, layout( location=45) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42) in 4-component vector of float i, layout( location=43) in 4-component vector of float j, layout( location=44) in 4-component vector of float k})
|
||||
0:? 'outVar2' (layout( location=4095 index=0) out 4-component vector of float)
|
||||
0:? 'outVar3' (layout( location=0 index=1) out 4-component vector of float)
|
||||
0:? 'outVar4' (layout( location=0 index=1) out 4-component vector of float)
|
||||
@ -165,7 +165,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'v20' ( smooth in 4-component vector of float)
|
||||
0:? 'v21' (layout( location=60) smooth in float)
|
||||
0:? 'v22' (layout( location=2) smooth in float)
|
||||
0:? 'anon@1' ( in block{layout( location=1 component=0) in float f1, layout( location=3) in float f2})
|
||||
0:? 'anon@1' ( in block{layout( location=1) in float f1, layout( location=3) in float f2})
|
||||
0:? 'uinst' (layout( location=1 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2})
|
||||
0:? 'v3' (layout( location=6) smooth in 4-component vector of float)
|
||||
0:? 'v4' ( smooth in 4-component vector of float)
|
||||
@ -173,12 +173,12 @@ ERROR: node is still EOpNull!
|
||||
0:? 'v6' (layout( location=30) smooth in 4-component vector of float)
|
||||
0:? 'v23' (layout( location=61) smooth in float)
|
||||
0:? 'v24' (layout( location=62) smooth in float)
|
||||
0:? 'ininst2' ( in block{layout( location=28 component=0) in bool b1, layout( location=29 component=0) in float f1, layout( location=25) in float f2, layout( location=26 component=0) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23 component=0) in 4-component vector of float f4, layout( location=24 component=0) in 4-component vector of float f5})
|
||||
0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2, layout( location=26) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23) in 4-component vector of float f4, layout( location=24) in 4-component vector of float f5})
|
||||
0:? 'uinst2' (layout( location=13 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2})
|
||||
0:? 'in3' ( in block{ in float f1, layout( location=40) in float f2})
|
||||
0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2})
|
||||
0:? 's' (layout( location=33) smooth in structure{ global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A})
|
||||
0:? 'anon@2' ( in block{layout( location=44 component=0) in 4-component vector of float d, layout( location=45 component=0) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48 component=0) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42 component=0) in 4-component vector of float i, layout( location=43 component=0) in 4-component vector of float j, layout( location=44 component=0) in 4-component vector of float k})
|
||||
0:? 'anon@2' ( in block{layout( location=44) in 4-component vector of float d, layout( location=45) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42) in 4-component vector of float i, layout( location=43) in 4-component vector of float j, layout( location=44) in 4-component vector of float k})
|
||||
0:? 'outVar2' (layout( location=4095 index=0) out 4-component vector of float)
|
||||
0:? 'outVar3' (layout( location=0 index=1) out 4-component vector of float)
|
||||
0:? 'outVar4' (layout( location=0 index=1) out 4-component vector of float)
|
||||
|
@ -1,5 +1,4 @@
|
||||
400.frag
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:18: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
|
||||
ERROR: 0:22: 'textureGatherOffset(...)' : must be a compile-time constant: component argument
|
||||
ERROR: 0:23: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument
|
||||
@ -34,8 +33,12 @@ ERROR: 0:183: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:183: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float'
|
||||
ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:184: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float'
|
||||
ERROR: 0:187: '' : syntax error
|
||||
ERROR: 35 compilation errors. No code generated.
|
||||
ERROR: 0:197: 'subroutine' : feature not yet implemented
|
||||
ERROR: 0:197: '' : default qualifier requires 'uniform', 'buffer', 'in', or 'out' storage qualification
|
||||
ERROR: 0:198: 'subroutine' : feature not yet implemented
|
||||
ERROR: 0:199: 'subroutine' : feature not yet implemented
|
||||
ERROR: 0:201: '' : syntax error, unexpected PRECISE, expecting IDENTIFIER
|
||||
ERROR: 39 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 400
|
||||
@ -469,6 +472,39 @@ ERROR: node is still EOpNull!
|
||||
0:181 'pf3' ( temp 3-component vector of float)
|
||||
0:183 'lod' ( temp 2-component vector of float)
|
||||
0:184 'lod' ( temp 2-component vector of float)
|
||||
0:190 Function Definition: bitwiseConv( ( global void)
|
||||
0:190 Function Parameters:
|
||||
0:192 Sequence
|
||||
0:192 move second child to first child ( temp uint)
|
||||
0:192 'iout' ( out uint)
|
||||
0:192 bitwise and ( temp uint)
|
||||
0:192 'uu' ( uniform uint)
|
||||
0:192 Convert int to uint ( temp uint)
|
||||
0:192 'i' ( flat in int)
|
||||
0:193 add second child into first child ( temp uint)
|
||||
0:193 'iout' ( out uint)
|
||||
0:193 exclusive-or ( temp uint)
|
||||
0:193 'uu' ( uniform uint)
|
||||
0:193 Convert int to uint ( temp uint)
|
||||
0:193 'i' ( flat in int)
|
||||
0:194 add second child into first child ( temp uint)
|
||||
0:194 'iout' ( out uint)
|
||||
0:194 inclusive-or ( temp uint)
|
||||
0:194 Convert int to uint ( temp uint)
|
||||
0:194 'i' ( flat in int)
|
||||
0:194 'uu' ( uniform uint)
|
||||
0:198 Function Definition: subT1( ( temp float)
|
||||
0:198 Function Parameters:
|
||||
0:198 Sequence
|
||||
0:198 Branch: Return with expression
|
||||
0:198 Constant:
|
||||
0:198 1.000000
|
||||
0:199 Function Definition: subT2( ( temp float)
|
||||
0:199 Function Parameters:
|
||||
0:199 Sequence
|
||||
0:199 Branch: Return with expression
|
||||
0:199 Constant:
|
||||
0:199 1.000000
|
||||
0:? Linker Objects
|
||||
0:? 'c2D' ( smooth in 2-component vector of float)
|
||||
0:? 'i' ( flat in int)
|
||||
@ -512,6 +548,8 @@ ERROR: node is still EOpNull!
|
||||
0:? 'sampCubeAs' ( uniform samplerCubeArrayShadow)
|
||||
0:? 'sampBuf' ( uniform samplerBuffer)
|
||||
0:? 'sampRect' ( uniform sampler2DRect)
|
||||
0:? 'uu' ( uniform uint)
|
||||
0:? 'iout' ( out uint)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -685,4 +723,6 @@ ERROR: node is still EOpNull!
|
||||
0:? 'sampCubeAs' ( uniform samplerCubeArrayShadow)
|
||||
0:? 'sampBuf' ( uniform samplerBuffer)
|
||||
0:? 'sampRect' ( uniform sampler2DRect)
|
||||
0:? 'uu' ( uniform uint)
|
||||
0:? 'iout' ( out uint)
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
400.geom
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:12: 'invocations' : can only apply to a standalone qualifier
|
||||
ERROR: 0:20: 'patch' : not supported in this stage: geometry
|
||||
ERROR: 0:20: 'gl_PointSize' : cannot add layout to redeclared block member
|
||||
|
@ -1,5 +1,4 @@
|
||||
400.tesc
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
|
||||
|
@ -1,5 +1,4 @@
|
||||
400.tese
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value
|
||||
ERROR: 0:5: 'triangles' : cannot change previously set input primitive
|
||||
ERROR: 0:6: 'isolines' : cannot change previously set input primitive
|
||||
|
@ -1,5 +1,4 @@
|
||||
400.vert
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
|
||||
|
@ -1,5 +1,4 @@
|
||||
410.geom
|
||||
Warning, version 410 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:8: 'myIn' : cannot redeclare a built-in block with a user name
|
||||
ERROR: 0:12: 'gl_myIn' : no declaration found for redeclaration
|
||||
ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
|
||||
|
@ -1,5 +1,4 @@
|
||||
410.tesc
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
@ -1,6 +1,4 @@
|
||||
410.vert
|
||||
Warning, version 410 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 410
|
||||
0:? Sequence
|
||||
0:7 Function Definition: main( ( global void)
|
||||
|
@ -1,5 +1,4 @@
|
||||
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.
|
||||
|
||||
|
@ -1,10 +1,9 @@
|
||||
420.frag
|
||||
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:4: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
|
||||
ERROR: 0:11: 'layout qualifier' : can only apply depth layout to gl_FragDepth
|
||||
ERROR: 0:12: 'gl_FragDepth' : cannot redeclare after use
|
||||
WARNING: 0:14: 'atomic_uint' : implicitly sized atomic_uint array treated as having one element for tracking the default offset
|
||||
ERROR: 3 compilation errors. No code generated.
|
||||
ERROR: 0:14: 'atomic_uint' : array must be explicitly sized
|
||||
ERROR: 4 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 420
|
||||
|
@ -1,5 +1,4 @@
|
||||
420.geom
|
||||
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:9: 'length' : array must first be sized by a redeclaration or layout qualifier
|
||||
ERROR: 0:11: '[' : array must be sized by a redeclaration or layout qualifier before being indexed with a variable
|
||||
ERROR: 0:42: 'assign' : l-value required (can't modify a const)
|
||||
|
@ -1,5 +1,4 @@
|
||||
420.tesc
|
||||
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out
|
||||
ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a
|
||||
ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb
|
||||
|
@ -1,5 +1,4 @@
|
||||
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 ' 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
|
||||
@ -11,7 +10,7 @@ ERROR: 0:29: 'constructor' : cannot convert parameter 2 from ' const 2X2 matrix
|
||||
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: 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:40: 'constructor' : cannot convert parameter 1 from ' const structure{ global 4-component vector of float a, global 4-component vector of float b}' to ' temp structure{ global float s, global float t}'
|
||||
ERROR: 0:70: 'initializer list' : wrong number of structure members
|
||||
ERROR: 13 compilation errors. No code generated.
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
420.vert
|
||||
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:2: '#version' : must occur first in shader
|
||||
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
|
||||
ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420
|
||||
@ -33,7 +32,7 @@ ERROR: 0:85: '' : vertex input cannot be further qualified
|
||||
ERROR: 0:86: 'patch' : not supported in this stage: vertex
|
||||
ERROR: 0:100: '=' : global const initializers must be constant ' const int'
|
||||
ERROR: 0:101: '' : array size must be a constant integer expression
|
||||
ERROR: 0:107: 'image variables declared 'writeonly' without a format layout qualifier' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:107: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:114: 'imageAtomicMin' : only supported on image with format r32i or r32ui
|
||||
ERROR: 0:115: 'imageAtomicMax' : no matching overloaded function found
|
||||
ERROR: 0:119: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter
|
||||
|
@ -1,5 +1,4 @@
|
||||
420_size_gl_in.geom
|
||||
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:19: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user