|
@@ -18,119 +18,11 @@
|
|
|
|
|
|
|
|
#ifndef CPPPARSER
|
|
#ifndef CPPPARSER
|
|
|
#include <glslang/Public/ShaderLang.h>
|
|
#include <glslang/Public/ShaderLang.h>
|
|
|
-#include <glslang/Include/ResourceLimits.h>
|
|
|
|
|
|
|
+#include <glslang/Public/ResourceLimits.h>
|
|
|
#include <glslang/SPIRV/GlslangToSpv.h>
|
|
#include <glslang/SPIRV/GlslangToSpv.h>
|
|
|
|
|
|
|
|
#include <spirv-tools/optimizer.hpp>
|
|
#include <spirv-tools/optimizer.hpp>
|
|
|
|
|
|
|
|
-const TBuiltInResource resource_limits = {
|
|
|
|
|
- /* .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 = */ 256,
|
|
|
|
|
- /* .maxMeshOutputPrimitivesNV = */ 512,
|
|
|
|
|
- /* .maxMeshWorkGroupSizeX_NV = */ 32,
|
|
|
|
|
- /* .maxMeshWorkGroupSizeY_NV = */ 1,
|
|
|
|
|
- /* .maxMeshWorkGroupSizeZ_NV = */ 1,
|
|
|
|
|
- /* .maxTaskWorkGroupSizeX_NV = */ 32,
|
|
|
|
|
- /* .maxTaskWorkGroupSizeY_NV = */ 1,
|
|
|
|
|
- /* .maxTaskWorkGroupSizeZ_NV = */ 1,
|
|
|
|
|
- /* .maxMeshViewCountNV = */ 4,
|
|
|
|
|
- /* .maxDualSourceDrawBuffersEXT = */ 1,
|
|
|
|
|
-
|
|
|
|
|
- /* .limits = */ {
|
|
|
|
|
- /* .nonInductiveForLoops = */ 1,
|
|
|
|
|
- /* .whileLoops = */ 1,
|
|
|
|
|
- /* .doWhileLoops = */ 1,
|
|
|
|
|
- /* .generalUniformIndexing = */ 1,
|
|
|
|
|
- /* .generalAttributeMatrixVectorIndexing = */ 1,
|
|
|
|
|
- /* .generalVaryingIndexing = */ 1,
|
|
|
|
|
- /* .generalSamplerIndexing = */ 1,
|
|
|
|
|
- /* .generalVariableIndexing = */ 1,
|
|
|
|
|
- /* .generalConstantMatrixVectorIndexing = */ 1,
|
|
|
|
|
- }
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* Interface for processing includes via the VirtualFileSystem.
|
|
* Interface for processing includes via the VirtualFileSystem.
|
|
|
*/
|
|
*/
|
|
@@ -417,7 +309,7 @@ compile_now(ShaderModule::Stage stage, std::istream &in,
|
|
|
shader.setAutoMapLocations(true);
|
|
shader.setAutoMapLocations(true);
|
|
|
|
|
|
|
|
Includer includer(record);
|
|
Includer includer(record);
|
|
|
- if (!shader.parse(&resource_limits, 110, false, messages, includer)) {
|
|
|
|
|
|
|
+ if (!shader.parse(GetDefaultResources(), 110, false, messages, includer)) {
|
|
|
shader_cat.error()
|
|
shader_cat.error()
|
|
|
<< "Failed to parse " << filename << ":\n"
|
|
<< "Failed to parse " << filename << ":\n"
|
|
|
<< shader.getInfoLog();
|
|
<< shader.getInfoLog();
|