vulkan: Sync loader, headers and glslang to sdk-1.2.154.0

Actually sdk-1.2.154.1 for Vulkan-Loader.

glslang is updated to bacaef3237c515e40d1a24722be48c0a0b30f75f which is the
known-good version for Vulkan-ValidationLayers 1.2.154.0.

COPYRIGHT.txt was synced with the current version of the glslang LICENSE.txt,
and `glslang/register_types.cpp` now uses the upstream definition for its
default builtin resource instead of hardcoding it.
This commit is contained in:
Rémi Verschelde
2020-10-15 12:04:10 +02:00
parent b84f9b0068
commit 148ad49c93
112 changed files with 68299 additions and 39424 deletions

View File

@@ -9,6 +9,7 @@ env_glslang = env_modules.Clone()
if env["builtin_glslang"]:
thirdparty_dir = "#thirdparty/glslang/"
thirdparty_sources = [
"glslang/CInterface/glslang_c_interface.cpp",
"glslang/MachineIndependent/RemoveTree.cpp",
"glslang/MachineIndependent/ParseHelper.cpp",
"glslang/MachineIndependent/iomapper.cpp",
@@ -30,7 +31,6 @@ if env["builtin_glslang"]:
"glslang/MachineIndependent/intermOut.cpp",
"glslang/MachineIndependent/SymbolTable.cpp",
"glslang/MachineIndependent/glslang_tab.cpp",
"glslang/MachineIndependent/pch.cpp",
"glslang/MachineIndependent/Versions.cpp",
"glslang/MachineIndependent/ShaderLang.cpp",
"glslang/MachineIndependent/parseConst.cpp",
@@ -40,6 +40,7 @@ if env["builtin_glslang"]:
"glslang/GenericCodeGen/Link.cpp",
"glslang/GenericCodeGen/CodeGen.cpp",
"OGLCompilersDLL/InitializeDll.cpp",
"SPIRV/CInterface/spirv_c_interface.cpp",
"SPIRV/InReadableOrder.cpp",
"SPIRV/GlslangToSpv.cpp",
"SPIRV/SpvBuilder.cpp",
@@ -49,6 +50,7 @@ if env["builtin_glslang"]:
"SPIRV/SPVRemapper.cpp",
"SPIRV/SpvPostProcess.cpp",
"SPIRV/Logger.cpp",
"StandAlone/ResourceLimits.cpp",
]
if env["platform"] == "windows":
@@ -64,6 +66,8 @@ if env["builtin_glslang"]:
else:
env_glslang.Prepend(CPPPATH=[thirdparty_dir])
env_glslang.Append(CPPDEFINES=["ENABLE_OPT=0"])
env_thirdparty = env_glslang.Clone()
env_thirdparty.disable_warnings()
env_thirdparty.add_source_files(env.modules_sources, thirdparty_sources)

View File

@@ -33,115 +33,10 @@
#include "servers/rendering/rendering_device.h"
#include <SPIRV/GlslangToSpv.h>
#include <StandAlone/ResourceLimits.h>
#include <glslang/Include/Types.h>
#include <glslang/Public/ShaderLang.h>
static const TBuiltInResource default_builtin_resource = {
/*maxLights*/ 32,
/*maxClipPlanes*/ 6,
/*maxTextureUnits*/ 32,
/*maxTextureCoords*/ 32,
/*maxVertexAttribs*/ 64,
/*maxVertexUniformComponents*/ 4096,
/*maxVaryingFloats*/ 64,
/*maxVertexTextureImageUnits*/ 32,
/*maxCombinedTextureImageUnits*/ 80,
/*maxTextureImageUnits*/ 32,
/*maxFragmentUniformComponents*/ 4096,
/*maxDrawBuffers*/ 32,
/*maxVertexUniformVectors*/ 128,
/*maxVaryingVectors*/ 8,
/*maxFragmentUniformVectors*/ 16,
/*maxVertexOutputVectors*/ 16,
/*maxFragmentInputVectors*/ 15,
/*minProgramTexelOffset*/ -8,
/*maxProgramTexelOffset*/ 7,
/*maxClipDistances*/ 8,
/*maxComputeWorkGroupCountX*/ 65535,
/*maxComputeWorkGroupCountY*/ 65535,
/*maxComputeWorkGroupCountZ*/ 65535,
/*maxComputeWorkGroupSizeX*/ 1024,
/*maxComputeWorkGroupSizeY*/ 1024,
/*maxComputeWorkGroupSizeZ*/ 64,
/*maxComputeUniformComponents*/ 1024,
/*maxComputeTextureImageUnits*/ 16,
/*maxComputeImageUniforms*/ 8,
/*maxComputeAtomicCounters*/ 8,
/*maxComputeAtomicCounterBuffers*/ 1,
/*maxVaryingComponents*/ 60,
/*maxVertexOutputComponents*/ 64,
/*maxGeometryInputComponents*/ 64,
/*maxGeometryOutputComponents*/ 128,
/*maxFragmentInputComponents*/ 128,
/*maxImageUnits*/ 8,
/*maxCombinedImageUnitsAndFragmentOutputs*/ 8,
/*maxCombinedShaderOutputResources*/ 8,
/*maxImageSamples*/ 0,
/*maxVertexImageUniforms*/ 0,
/*maxTessControlImageUniforms*/ 0,
/*maxTessEvaluationImageUniforms*/ 0,
/*maxGeometryImageUniforms*/ 0,
/*maxFragmentImageUniforms*/ 8,
/*maxCombinedImageUniforms*/ 8,
/*maxGeometryTextureImageUnits*/ 16,
/*maxGeometryOutputVertices*/ 256,
/*maxGeometryTotalOutputComponents*/ 1024,
/*maxGeometryUniformComponents*/ 1024,
/*maxGeometryVaryingComponents*/ 64,
/*maxTessControlInputComponents*/ 128,
/*maxTessControlOutputComponents*/ 128,
/*maxTessControlTextureImageUnits*/ 16,
/*maxTessControlUniformComponents*/ 1024,
/*maxTessControlTotalOutputComponents*/ 4096,
/*maxTessEvaluationInputComponents*/ 128,
/*maxTessEvaluationOutputComponents*/ 128,
/*maxTessEvaluationTextureImageUnits*/ 16,
/*maxTessEvaluationUniformComponents*/ 1024,
/*maxTessPatchComponents*/ 120,
/*maxPatchVertices*/ 32,
/*maxTessGenLevel*/ 64,
/*maxViewports*/ 16,
/*maxVertexAtomicCounters*/ 0,
/*maxTessControlAtomicCounters*/ 0,
/*maxTessEvaluationAtomicCounters*/ 0,
/*maxGeometryAtomicCounters*/ 0,
/*maxFragmentAtomicCounters*/ 8,
/*maxCombinedAtomicCounters*/ 8,
/*maxAtomicCounterBindings*/ 1,
/*maxVertexAtomicCounterBuffers*/ 0,
/*maxTessControlAtomicCounterBuffers*/ 0,
/*maxTessEvaluationAtomicCounterBuffers*/ 0,
/*maxGeometryAtomicCounterBuffers*/ 0,
/*maxFragmentAtomicCounterBuffers*/ 1,
/*maxCombinedAtomicCounterBuffers*/ 1,
/*maxAtomicCounterBufferSize*/ 16384,
/*maxTransformFeedbackBuffers*/ 4,
/*maxTransformFeedbackInterleavedComponents*/ 64,
/*maxCullDistances*/ 8,
/*maxCombinedClipAndCullDistances*/ 8,
/*maxSamples*/ 4,
/*maxMeshOutputVerticesNV*/ 0,
/*maxMeshOutputPrimitivesNV*/ 0,
/*maxMeshWorkGroupSizeX_NV*/ 0,
/*maxMeshWorkGroupSizeY_NV*/ 0,
/*maxMeshWorkGroupSizeZ_NV*/ 0,
/*maxTaskWorkGroupSizeX_NV*/ 0,
/*maxTaskWorkGroupSizeY_NV*/ 0,
/*maxTaskWorkGroupSizeZ_NV*/ 0,
/*maxMeshViewCountNV*/ 0,
/*limits*/ {
/*nonInductiveForLoops*/ true,
/*whileLoops*/ true,
/*doWhileLoops*/ true,
/*generalUniformIndexing*/ true,
/*generalAttributeMatrixVectorIndexing*/ true,
/*generalVaryingIndexing*/ true,
/*generalSamplerIndexing*/ true,
/*generalVariableIndexing*/ true,
/*generalConstantMatrixVectorIndexing*/ true,
}
};
static Vector<uint8_t> _compile_shader_glsl(RenderingDevice::ShaderStage p_stage, const String &p_source_code, RenderingDevice::ShaderLanguage p_language, String *r_error) {
Vector<uint8_t> ret;
@@ -175,7 +70,7 @@ static Vector<uint8_t> _compile_shader_glsl(RenderingDevice::ShaderStage p_stage
std::string pre_processed_code;
//preprocess
if (!shader.preprocess(&default_builtin_resource, DefaultVersion, ENoProfile, false, false, messages, &pre_processed_code, includer)) {
if (!shader.preprocess(&glslang::DefaultTBuiltInResource, DefaultVersion, ENoProfile, false, false, messages, &pre_processed_code, includer)) {
if (r_error) {
(*r_error) = "Failed pre-process:\n";
(*r_error) += shader.getInfoLog();
@@ -190,7 +85,7 @@ static Vector<uint8_t> _compile_shader_glsl(RenderingDevice::ShaderStage p_stage
shader.setStrings(&cs_strings, 1);
//parse
if (!shader.parse(&default_builtin_resource, DefaultVersion, false, messages)) {
if (!shader.parse(&glslang::DefaultTBuiltInResource, DefaultVersion, false, messages)) {
if (r_error) {
(*r_error) = "Failed parse:\n";
(*r_error) += shader.getInfoLog();