| 36 | #endif |
| 37 | |
| 38 | static void ProcessConfigFile(const VkPhysicalDeviceLimits& device_limits, TBuiltInResource& out_resources) { |
| 39 | // These are the default resources for TBuiltInResources. |
| 40 | out_resources.maxLights = 32; |
| 41 | out_resources.maxClipPlanes = 6; |
| 42 | out_resources.maxTextureUnits = 32; |
| 43 | out_resources.maxTextureCoords = 32; |
| 44 | out_resources.maxVertexAttribs = 64; |
| 45 | out_resources.maxVertexUniformComponents = 4096; |
| 46 | out_resources.maxVaryingFloats = 64; |
| 47 | out_resources.maxVertexTextureImageUnits = 32; |
| 48 | out_resources.maxCombinedTextureImageUnits = 80; |
| 49 | out_resources.maxTextureImageUnits = 32; |
| 50 | out_resources.maxFragmentUniformComponents = 4096; |
| 51 | out_resources.maxDrawBuffers = 32; |
| 52 | out_resources.maxVertexUniformVectors = 128; |
| 53 | out_resources.maxVaryingVectors = 8; |
| 54 | out_resources.maxFragmentUniformVectors = 16; |
| 55 | out_resources.maxVertexOutputVectors = 16; |
| 56 | out_resources.maxFragmentInputVectors = 15; |
| 57 | out_resources.minProgramTexelOffset = -8; |
| 58 | out_resources.maxProgramTexelOffset = 7; |
| 59 | out_resources.maxClipDistances = device_limits.maxClipDistances; |
| 60 | out_resources.maxComputeWorkGroupCountX = device_limits.maxComputeWorkGroupCount[0]; |
| 61 | out_resources.maxComputeWorkGroupCountY = device_limits.maxComputeWorkGroupCount[1]; |
| 62 | out_resources.maxComputeWorkGroupCountZ = device_limits.maxComputeWorkGroupCount[2]; |
| 63 | out_resources.maxComputeWorkGroupSizeX = device_limits.maxComputeWorkGroupSize[0]; |
| 64 | out_resources.maxComputeWorkGroupSizeY = device_limits.maxComputeWorkGroupSize[1]; |
| 65 | out_resources.maxComputeWorkGroupSizeZ = device_limits.maxComputeWorkGroupSize[2]; |
| 66 | out_resources.maxComputeUniformComponents = 1024; |
| 67 | out_resources.maxComputeTextureImageUnits = 16; |
| 68 | out_resources.maxComputeImageUniforms = 8; |
| 69 | out_resources.maxComputeAtomicCounters = 8; |
| 70 | out_resources.maxComputeAtomicCounterBuffers = 1; |
| 71 | out_resources.maxVaryingComponents = 60; |
| 72 | out_resources.maxVertexOutputComponents = device_limits.maxVertexOutputComponents; |
| 73 | out_resources.maxGeometryInputComponents = device_limits.maxGeometryInputComponents; |
| 74 | out_resources.maxGeometryOutputComponents = device_limits.maxGeometryOutputComponents; |
| 75 | out_resources.maxFragmentInputComponents = device_limits.maxFragmentInputComponents; |
| 76 | out_resources.maxImageUnits = 8; |
| 77 | out_resources.maxCombinedImageUnitsAndFragmentOutputs = 8; |
| 78 | out_resources.maxCombinedShaderOutputResources = 8; |
| 79 | out_resources.maxImageSamples = 0; |
| 80 | out_resources.maxVertexImageUniforms = 0; |
| 81 | out_resources.maxTessControlImageUniforms = 0; |
| 82 | out_resources.maxTessEvaluationImageUniforms = 0; |
| 83 | out_resources.maxGeometryImageUniforms = 0; |
| 84 | out_resources.maxFragmentImageUniforms = 8; |
| 85 | out_resources.maxCombinedImageUniforms = 8; |
| 86 | out_resources.maxGeometryTextureImageUnits = 16; |
| 87 | out_resources.maxGeometryOutputVertices = device_limits.maxGeometryOutputVertices; |
| 88 | out_resources.maxGeometryTotalOutputComponents = device_limits.maxGeometryTotalOutputComponents; |
| 89 | out_resources.maxGeometryUniformComponents = 1024; |
| 90 | out_resources.maxGeometryVaryingComponents = 64; |
| 91 | out_resources.maxTessControlInputComponents = 128; |
| 92 | out_resources.maxTessControlOutputComponents = 128; |
| 93 | out_resources.maxTessControlTextureImageUnits = 16; |
| 94 | out_resources.maxTessControlUniformComponents = 1024; |
| 95 | out_resources.maxTessControlTotalOutputComponents = 4096; |