{
    "file_format_version" : "1.2.0",
    "layer": {
        "name": "VK_LAYER_KHRONOS_shader_object",
        "type": "GLOBAL",
        "library_path": ".\\VkLayer_khronos_shader_object.dll",
        "api_version": "1.4.304",
        "implementation_version": "1",
        "description": "Khronos Shader object layer",
        "instance_extensions": [
            {
                "name": "VK_EXT_layer_settings",
                "spec_version": "2"
            }
        ],
        "device_extensions": [
            {
                "name": "VK_EXT_shader_object",
                "spec_version": "1",
                "entrypoints": [
                    "vkCmdBindShadersEXT",
                    "vkCmdBindVertexBuffers2EXT",
                    "vkCmdSetAlphaToCoverageEnableEXT",
                    "vkCmdSetAlphaToOneEnableEXT",
                    "vkCmdSetColorBlendAdvancedEXT",
                    "vkCmdSetColorBlendEnableEXT",
                    "vkCmdSetColorBlendEquationEXT",
                    "vkCmdSetColorWriteMaskEXT",
                    "vkCmdSetConservativeRasterizationModeEXT",
                    "vkCmdSetCoverageModulationModeNV",
                    "vkCmdSetCoverageModulationTableEnableNV",
                    "vkCmdSetCoverageModulationTableNV",
                    "vkCmdSetCoverageReductionModeNV",
                    "vkCmdSetCoverageToColorEnableNV",
                    "vkCmdSetCoverageToColorLocationNV",
                    "vkCmdSetCullModeEXT",
                    "vkCmdSetDepthBiasEnableEXT",
                    "vkCmdSetDepthBoundsTestEnableEXT",
                    "vkCmdSetDepthClampEnableEXT",
                    "vkCmdSetDepthClipEnableEXT",
                    "vkCmdSetDepthClipNegativeOneToOneEXT",
                    "vkCmdSetDepthCompareOpEXT",
                    "vkCmdSetDepthTestEnableEXT",
                    "vkCmdSetDepthWriteEnableEXT",
                    "vkCmdSetExtraPrimitiveOverestimationSizeEXT",
                    "vkCmdSetFrontFaceEXT",
                    "vkCmdSetLineRasterizationModeEXT",
                    "vkCmdSetLineStippleEnableEXT",
                    "vkCmdSetLogicOpEXT",
                    "vkCmdSetLogicOpEnableEXT",
                    "vkCmdSetPatchControlPointsEXT",
                    "vkCmdSetPolygonModeEXT",
                    "vkCmdSetPrimitiveRestartEnableEXT",
                    "vkCmdSetPrimitiveTopologyEXT",
                    "vkCmdSetProvokingVertexModeEXT",
                    "vkCmdSetRasterizationSamplesEXT",
                    "vkCmdSetRasterizationStreamEXT",
                    "vkCmdSetRasterizerDiscardEnableEXT",
                    "vkCmdSetRepresentativeFragmentTestEnableNV",
                    "vkCmdSetSampleLocationsEnableEXT",
                    "vkCmdSetSampleMaskEXT",
                    "vkCmdSetScissorWithCountEXT",
                    "vkCmdSetShadingRateImageEnableNV",
                    "vkCmdSetStencilOpEXT",
                    "vkCmdSetStencilTestEnableEXT",
                    "vkCmdSetTessellationDomainOriginEXT",
                    "vkCmdSetVertexInputEXT",
                    "vkCmdSetViewportSwizzleNV",
                    "vkCmdSetViewportWScalingEnableNV",
                    "vkCmdSetViewportWithCountEXT",
                    "vkCreateShadersEXT",
                    "vkDestroyShaderEXT",
                    "vkGetShaderBinaryDataEXT"
                ]
            }
        ],
        "features": {
            "settings": [
                {
                    "key": "force_enable",
                    "env": "VK_SHADER_OBJECT_FORCE_ENABLE",
                    "label": "Force Enable",
                    "description": "Force the layer to be active even if the underlying driver also implements the shader object extension.",
                    "type": "BOOL",
                    "default": false
                },
                {
                    "key": "disable_pipeline_pre_caching",
                    "env": "VK_SHADER_OBJECT_DISABLE_PIPELINE_PRE_CACHING",
                    "label": "Disable Pipeline Pre-Caching",
                    "description": "Disable the layer from pre-caching pipelines, reducing the memory overhead.",
                    "type": "BOOL",
                    "default": false
                }
            ]
        }
    }
}
