blob: 37efbae2dcf81a68096dec4ec7fef32382081ef6 [file] [log] [blame]
// *** THIS FILE IS GENERATED - DO NOT EDIT ***
// See dynamic_state_generator.py for modifications
/***************************************************************************
*
* Copyright (c) 2023-2025 Valve Corporation
* Copyright (c) 2023-2025 LunarG, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
****************************************************************************/
// NOLINTBEGIN
#include "state_tracker/pipeline_state.h"
VkDynamicState ConvertToDynamicState(CBDynamicState dynamic_state) {
switch (dynamic_state) {
case CB_DYNAMIC_STATE_VIEWPORT:
return VK_DYNAMIC_STATE_VIEWPORT;
case CB_DYNAMIC_STATE_SCISSOR:
return VK_DYNAMIC_STATE_SCISSOR;
case CB_DYNAMIC_STATE_LINE_WIDTH:
return VK_DYNAMIC_STATE_LINE_WIDTH;
case CB_DYNAMIC_STATE_DEPTH_BIAS:
return VK_DYNAMIC_STATE_DEPTH_BIAS;
case CB_DYNAMIC_STATE_BLEND_CONSTANTS:
return VK_DYNAMIC_STATE_BLEND_CONSTANTS;
case CB_DYNAMIC_STATE_DEPTH_BOUNDS:
return VK_DYNAMIC_STATE_DEPTH_BOUNDS;
case CB_DYNAMIC_STATE_STENCIL_COMPARE_MASK:
return VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK;
case CB_DYNAMIC_STATE_STENCIL_WRITE_MASK:
return VK_DYNAMIC_STATE_STENCIL_WRITE_MASK;
case CB_DYNAMIC_STATE_STENCIL_REFERENCE:
return VK_DYNAMIC_STATE_STENCIL_REFERENCE;
case CB_DYNAMIC_STATE_CULL_MODE:
return VK_DYNAMIC_STATE_CULL_MODE;
case CB_DYNAMIC_STATE_FRONT_FACE:
return VK_DYNAMIC_STATE_FRONT_FACE;
case CB_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:
return VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY;
case CB_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:
return VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT;
case CB_DYNAMIC_STATE_SCISSOR_WITH_COUNT:
return VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT;
case CB_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:
return VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE;
case CB_DYNAMIC_STATE_DEPTH_TEST_ENABLE:
return VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE;
case CB_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:
return VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE;
case CB_DYNAMIC_STATE_DEPTH_COMPARE_OP:
return VK_DYNAMIC_STATE_DEPTH_COMPARE_OP;
case CB_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:
return VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE;
case CB_DYNAMIC_STATE_STENCIL_TEST_ENABLE:
return VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE;
case CB_DYNAMIC_STATE_STENCIL_OP:
return VK_DYNAMIC_STATE_STENCIL_OP;
case CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:
return VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE;
case CB_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:
return VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE;
case CB_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:
return VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE;
case CB_DYNAMIC_STATE_LINE_STIPPLE:
return VK_DYNAMIC_STATE_LINE_STIPPLE;
case CB_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:
return VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV;
case CB_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:
return VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT;
case CB_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT:
return VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT;
case CB_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT:
return VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT;
case CB_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:
return VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT;
case CB_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:
return VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR;
case CB_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:
return VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV;
case CB_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:
return VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV;
case CB_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV:
return VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV;
case CB_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:
return VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV;
case CB_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:
return VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR;
case CB_DYNAMIC_STATE_VERTEX_INPUT_EXT:
return VK_DYNAMIC_STATE_VERTEX_INPUT_EXT;
case CB_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:
return VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT;
case CB_DYNAMIC_STATE_LOGIC_OP_EXT:
return VK_DYNAMIC_STATE_LOGIC_OP_EXT;
case CB_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:
return VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT;
case CB_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT:
return VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT;
case CB_DYNAMIC_STATE_POLYGON_MODE_EXT:
return VK_DYNAMIC_STATE_POLYGON_MODE_EXT;
case CB_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT:
return VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT;
case CB_DYNAMIC_STATE_SAMPLE_MASK_EXT:
return VK_DYNAMIC_STATE_SAMPLE_MASK_EXT;
case CB_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT:
return VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT;
case CB_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:
return VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT;
case CB_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT:
return VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT;
case CB_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT:
return VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT;
case CB_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT:
return VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT;
case CB_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT:
return VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT;
case CB_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT:
return VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT;
case CB_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT:
return VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT;
case CB_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT:
return VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT;
case CB_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT:
return VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT;
case CB_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT:
return VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT;
case CB_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT:
return VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT;
case CB_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT:
return VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT;
case CB_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT:
return VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT;
case CB_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT:
return VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT;
case CB_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT:
return VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT;
case CB_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT:
return VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT;
case CB_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV:
return VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV;
case CB_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV:
return VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV;
case CB_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV:
return VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV;
case CB_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV:
return VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV;
case CB_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV:
return VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV;
case CB_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV:
return VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV;
case CB_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV:
return VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV;
case CB_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV:
return VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV;
case CB_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV:
return VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV;
case CB_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV:
return VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV;
case CB_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT:
return VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT;
case CB_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT:
return VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT;
default:
return VK_DYNAMIC_STATE_MAX_ENUM;
}
}
CBDynamicState ConvertToCBDynamicState(VkDynamicState dynamic_state) {
switch (dynamic_state) {
case VK_DYNAMIC_STATE_VIEWPORT:
return CB_DYNAMIC_STATE_VIEWPORT;
case VK_DYNAMIC_STATE_SCISSOR:
return CB_DYNAMIC_STATE_SCISSOR;
case VK_DYNAMIC_STATE_LINE_WIDTH:
return CB_DYNAMIC_STATE_LINE_WIDTH;
case VK_DYNAMIC_STATE_DEPTH_BIAS:
return CB_DYNAMIC_STATE_DEPTH_BIAS;
case VK_DYNAMIC_STATE_BLEND_CONSTANTS:
return CB_DYNAMIC_STATE_BLEND_CONSTANTS;
case VK_DYNAMIC_STATE_DEPTH_BOUNDS:
return CB_DYNAMIC_STATE_DEPTH_BOUNDS;
case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:
return CB_DYNAMIC_STATE_STENCIL_COMPARE_MASK;
case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:
return CB_DYNAMIC_STATE_STENCIL_WRITE_MASK;
case VK_DYNAMIC_STATE_STENCIL_REFERENCE:
return CB_DYNAMIC_STATE_STENCIL_REFERENCE;
case VK_DYNAMIC_STATE_CULL_MODE:
return CB_DYNAMIC_STATE_CULL_MODE;
case VK_DYNAMIC_STATE_FRONT_FACE:
return CB_DYNAMIC_STATE_FRONT_FACE;
case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:
return CB_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY;
case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:
return CB_DYNAMIC_STATE_VIEWPORT_WITH_COUNT;
case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT:
return CB_DYNAMIC_STATE_SCISSOR_WITH_COUNT;
case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:
return CB_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE;
case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE:
return CB_DYNAMIC_STATE_DEPTH_TEST_ENABLE;
case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:
return CB_DYNAMIC_STATE_DEPTH_WRITE_ENABLE;
case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP:
return CB_DYNAMIC_STATE_DEPTH_COMPARE_OP;
case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:
return CB_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE;
case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:
return CB_DYNAMIC_STATE_STENCIL_TEST_ENABLE;
case VK_DYNAMIC_STATE_STENCIL_OP:
return CB_DYNAMIC_STATE_STENCIL_OP;
case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:
return CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE;
case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:
return CB_DYNAMIC_STATE_DEPTH_BIAS_ENABLE;
case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:
return CB_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE;
case VK_DYNAMIC_STATE_LINE_STIPPLE:
return CB_DYNAMIC_STATE_LINE_STIPPLE;
case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:
return CB_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV;
case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:
return CB_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT;
case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT:
return CB_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT;
case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT:
return CB_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT;
case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:
return CB_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT;
case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:
return CB_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR;
case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:
return CB_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV;
case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:
return CB_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV;
case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV:
return CB_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV;
case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:
return CB_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV;
case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:
return CB_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR;
case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:
return CB_DYNAMIC_STATE_VERTEX_INPUT_EXT;
case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:
return CB_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT;
case VK_DYNAMIC_STATE_LOGIC_OP_EXT:
return CB_DYNAMIC_STATE_LOGIC_OP_EXT;
case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:
return CB_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT;
case VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT:
return CB_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT;
case VK_DYNAMIC_STATE_POLYGON_MODE_EXT:
return CB_DYNAMIC_STATE_POLYGON_MODE_EXT;
case VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT:
return CB_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT;
case VK_DYNAMIC_STATE_SAMPLE_MASK_EXT:
return CB_DYNAMIC_STATE_SAMPLE_MASK_EXT;
case VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT:
return CB_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT;
case VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:
return CB_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT;
case VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT:
return CB_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT;
case VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT:
return CB_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT;
case VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT:
return CB_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT;
case VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT:
return CB_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT;
case VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT:
return CB_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT;
case VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT:
return CB_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT;
case VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT:
return CB_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT;
case VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT:
return CB_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT;
case VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT:
return CB_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT;
case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT:
return CB_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT;
case VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT:
return CB_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT;
case VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT:
return CB_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT;
case VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT:
return CB_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT;
case VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT:
return CB_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT;
case VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT:
return CB_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT;
case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV:
return CB_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV;
case VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV:
return CB_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV;
case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV:
return CB_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV;
case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV:
return CB_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV;
case VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV:
return CB_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV;
case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV:
return CB_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV;
case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV:
return CB_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV;
case VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV:
return CB_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV;
case VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV:
return CB_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV;
case VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV:
return CB_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV;
case VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT:
return CB_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT;
case VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT:
return CB_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT;
default:
return CB_DYNAMIC_STATE_STATUS_NUM;
}
}
const char* DynamicStateToString(CBDynamicState dynamic_state) {
return string_VkDynamicState(ConvertToDynamicState(dynamic_state));
}
std::string DynamicStatesToString(CBDynamicFlags const& dynamic_states) {
std::string ret;
// enum is not zero based
for (int index = 1; index < CB_DYNAMIC_STATE_STATUS_NUM; ++index) {
CBDynamicState status = static_cast<CBDynamicState>(index);
if (dynamic_states[status]) {
if (!ret.empty()) ret.append("|");
ret.append(string_VkDynamicState(ConvertToDynamicState(status)));
}
}
if (ret.empty()) ret.append("(Unknown Dynamic State)");
return ret;
}
std::string DynamicStatesCommandsToString(CBDynamicFlags const& dynamic_states) {
std::string ret;
// enum is not zero based
for (int index = 1; index < CB_DYNAMIC_STATE_STATUS_NUM; ++index) {
CBDynamicState status = static_cast<CBDynamicState>(index);
if (dynamic_states[status]) {
if (!ret.empty()) ret.append(", ");
ret.append(DescribeDynamicStateCommand(status));
}
}
if (ret.empty()) ret.append("(Unknown Dynamic State)");
return ret;
}
std::string DescribeDynamicStateCommand(CBDynamicState dynamic_state) {
std::ostringstream ss;
vvl::Func func = vvl::Func::Empty;
switch (dynamic_state) {
case CB_DYNAMIC_STATE_VIEWPORT:
func = vvl::Func::vkCmdSetViewport;
break;
case CB_DYNAMIC_STATE_SCISSOR:
func = vvl::Func::vkCmdSetScissor;
break;
case CB_DYNAMIC_STATE_LINE_WIDTH:
func = vvl::Func::vkCmdSetLineWidth;
break;
case CB_DYNAMIC_STATE_DEPTH_BIAS:
func = vvl::Func::vkCmdSetDepthBias;
break;
case CB_DYNAMIC_STATE_BLEND_CONSTANTS:
func = vvl::Func::vkCmdSetBlendConstants;
break;
case CB_DYNAMIC_STATE_DEPTH_BOUNDS:
func = vvl::Func::vkCmdSetDepthBounds;
break;
case CB_DYNAMIC_STATE_STENCIL_COMPARE_MASK:
func = vvl::Func::vkCmdSetStencilCompareMask;
break;
case CB_DYNAMIC_STATE_STENCIL_WRITE_MASK:
func = vvl::Func::vkCmdSetStencilWriteMask;
break;
case CB_DYNAMIC_STATE_STENCIL_REFERENCE:
func = vvl::Func::vkCmdSetStencilReference;
break;
case CB_DYNAMIC_STATE_CULL_MODE:
func = vvl::Func::vkCmdSetCullMode;
break;
case CB_DYNAMIC_STATE_FRONT_FACE:
func = vvl::Func::vkCmdSetFrontFace;
break;
case CB_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:
func = vvl::Func::vkCmdSetPrimitiveTopology;
break;
case CB_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:
func = vvl::Func::vkCmdSetViewportWithCount;
break;
case CB_DYNAMIC_STATE_SCISSOR_WITH_COUNT:
func = vvl::Func::vkCmdSetScissorWithCount;
break;
case CB_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:
func = vvl::Func::vkCmdBindVertexBuffers2;
break;
case CB_DYNAMIC_STATE_DEPTH_TEST_ENABLE:
func = vvl::Func::vkCmdSetDepthTestEnable;
break;
case CB_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:
func = vvl::Func::vkCmdSetDepthWriteEnable;
break;
case CB_DYNAMIC_STATE_DEPTH_COMPARE_OP:
func = vvl::Func::vkCmdSetDepthCompareOp;
break;
case CB_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:
func = vvl::Func::vkCmdSetDepthBoundsTestEnable;
break;
case CB_DYNAMIC_STATE_STENCIL_TEST_ENABLE:
func = vvl::Func::vkCmdSetStencilTestEnable;
break;
case CB_DYNAMIC_STATE_STENCIL_OP:
func = vvl::Func::vkCmdSetStencilOp;
break;
case CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:
func = vvl::Func::vkCmdSetRasterizerDiscardEnable;
break;
case CB_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:
func = vvl::Func::vkCmdSetDepthBiasEnable;
break;
case CB_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:
func = vvl::Func::vkCmdSetPrimitiveRestartEnable;
break;
case CB_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:
func = vvl::Func::vkCmdSetViewportWScalingNV;
break;
case CB_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:
func = vvl::Func::vkCmdSetDiscardRectangleEXT;
break;
case CB_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT:
func = vvl::Func::vkCmdSetDiscardRectangleEnableEXT;
break;
case CB_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT:
func = vvl::Func::vkCmdSetDiscardRectangleModeEXT;
break;
case CB_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:
func = vvl::Func::vkCmdSetSampleLocationsEXT;
break;
case CB_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:
func = vvl::Func::vkCmdSetViewportShadingRatePaletteNV;
break;
case CB_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:
func = vvl::Func::vkCmdSetCoarseSampleOrderNV;
break;
case CB_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV:
func = vvl::Func::vkCmdSetExclusiveScissorEnableNV;
break;
case CB_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:
func = vvl::Func::vkCmdSetExclusiveScissorNV;
break;
case CB_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:
func = vvl::Func::vkCmdSetFragmentShadingRateKHR;
break;
case CB_DYNAMIC_STATE_LINE_STIPPLE:
func = vvl::Func::vkCmdSetLineStipple;
break;
case CB_DYNAMIC_STATE_VERTEX_INPUT_EXT:
func = vvl::Func::vkCmdSetVertexInputEXT;
break;
case CB_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:
func = vvl::Func::vkCmdSetPatchControlPointsEXT;
break;
case CB_DYNAMIC_STATE_LOGIC_OP_EXT:
func = vvl::Func::vkCmdSetLogicOpEXT;
break;
case CB_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:
func = vvl::Func::vkCmdSetColorWriteEnableEXT;
break;
case CB_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT:
func = vvl::Func::vkCmdSetTessellationDomainOriginEXT;
break;
case CB_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT:
func = vvl::Func::vkCmdSetDepthClampEnableEXT;
break;
case CB_DYNAMIC_STATE_POLYGON_MODE_EXT:
func = vvl::Func::vkCmdSetPolygonModeEXT;
break;
case CB_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT:
func = vvl::Func::vkCmdSetRasterizationSamplesEXT;
break;
case CB_DYNAMIC_STATE_SAMPLE_MASK_EXT:
func = vvl::Func::vkCmdSetSampleMaskEXT;
break;
case CB_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT:
func = vvl::Func::vkCmdSetAlphaToCoverageEnableEXT;
break;
case CB_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:
func = vvl::Func::vkCmdSetAlphaToOneEnableEXT;
break;
case CB_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT:
func = vvl::Func::vkCmdSetLogicOpEnableEXT;
break;
case CB_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT:
func = vvl::Func::vkCmdSetColorBlendEnableEXT;
break;
case CB_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT:
func = vvl::Func::vkCmdSetColorBlendEquationEXT;
break;
case CB_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT:
func = vvl::Func::vkCmdSetColorWriteMaskEXT;
break;
case CB_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT:
func = vvl::Func::vkCmdSetRasterizationStreamEXT;
break;
case CB_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT:
func = vvl::Func::vkCmdSetConservativeRasterizationModeEXT;
break;
case CB_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT:
func = vvl::Func::vkCmdSetExtraPrimitiveOverestimationSizeEXT;
break;
case CB_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT:
func = vvl::Func::vkCmdSetDepthClipEnableEXT;
break;
case CB_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT:
func = vvl::Func::vkCmdSetSampleLocationsEnableEXT;
break;
case CB_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT:
func = vvl::Func::vkCmdSetColorBlendAdvancedEXT;
break;
case CB_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT:
func = vvl::Func::vkCmdSetProvokingVertexModeEXT;
break;
case CB_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT:
func = vvl::Func::vkCmdSetLineRasterizationModeEXT;
break;
case CB_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT:
func = vvl::Func::vkCmdSetLineStippleEnableEXT;
break;
case CB_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT:
func = vvl::Func::vkCmdSetDepthClipNegativeOneToOneEXT;
break;
case CB_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV:
func = vvl::Func::vkCmdSetViewportWScalingEnableNV;
break;
case CB_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV:
func = vvl::Func::vkCmdSetViewportSwizzleNV;
break;
case CB_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV:
func = vvl::Func::vkCmdSetCoverageToColorEnableNV;
break;
case CB_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV:
func = vvl::Func::vkCmdSetCoverageToColorLocationNV;
break;
case CB_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV:
func = vvl::Func::vkCmdSetCoverageModulationModeNV;
break;
case CB_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV:
func = vvl::Func::vkCmdSetCoverageModulationTableEnableNV;
break;
case CB_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV:
func = vvl::Func::vkCmdSetCoverageModulationTableNV;
break;
case CB_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV:
func = vvl::Func::vkCmdSetShadingRateImageEnableNV;
break;
case CB_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV:
func = vvl::Func::vkCmdSetRepresentativeFragmentTestEnableNV;
break;
case CB_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV:
func = vvl::Func::vkCmdSetCoverageReductionModeNV;
break;
case CB_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT:
func = vvl::Func::vkCmdSetAttachmentFeedbackLoopEnableEXT;
break;
case CB_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:
func = vvl::Func::vkCmdSetRayTracingPipelineStackSizeKHR;
break;
case CB_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT:
func = vvl::Func::vkCmdSetDepthClampRangeEXT;
break;
default:
ss << "(Unknown Dynamic State) ";
}
ss << String(func);
// Currently only exception that has 2 commands that can set it
if (dynamic_state == CB_DYNAMIC_STATE_DEPTH_BIAS) {
ss << " or " << String(vvl::Func::vkCmdSetDepthBias2EXT);
}
return ss.str();
}
// For anything with multple uses
static std::string_view rasterizer_discard_enable_dynamic{
"vkCmdSetRasterizerDiscardEnable last set rasterizerDiscardEnable to VK_FALSE.\n"};
static std::string_view rasterizer_discard_enable_static{
"VkPipelineRasterizationStateCreateInfo::rasterizerDiscardEnable was VK_FALSE in the last bound graphics pipeline.\n"};
static std::string_view stencil_test_enable_dynamic{"vkCmdSetStencilTestEnable last set stencilTestEnable to VK_TRUE.\n"};
static std::string_view stencil_test_enable_static{
"VkPipelineDepthStencilStateCreateInfo::stencilTestEnable was VK_TRUE in the last bound graphics pipeline.\n"};
std::string DescribeDynamicStateDependency(CBDynamicState dynamic_state, const vvl::Pipeline* pipeline) {
std::ostringstream ss;
switch (dynamic_state) {
case CB_DYNAMIC_STATE_DEPTH_BIAS:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_DEPTH_BIAS_ENABLE)) {
ss << "vkCmdSetDepthBiasEnable last set depthTestEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineRasterizationStateCreateInfo::depthTestEnable was VK_TRUE in the last bound graphics pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_BLEND_CONSTANTS:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_DEPTH_BOUNDS:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE)) {
ss << "vkCmdSetDepthBoundsTestEnable last set depthBoundsTestEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineDepthStencilStateCreateInfo::depthBoundsTestEnable was VK_TRUE in the last bound graphics "
"pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_STENCIL_COMPARE_MASK:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_STENCIL_TEST_ENABLE)) {
ss << stencil_test_enable_dynamic;
} else {
ss << stencil_test_enable_static;
}
break;
case CB_DYNAMIC_STATE_STENCIL_WRITE_MASK:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_STENCIL_TEST_ENABLE)) {
ss << stencil_test_enable_dynamic;
} else {
ss << stencil_test_enable_static;
}
break;
case CB_DYNAMIC_STATE_STENCIL_REFERENCE:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_STENCIL_TEST_ENABLE)) {
ss << stencil_test_enable_dynamic;
} else {
ss << stencil_test_enable_static;
}
break;
case CB_DYNAMIC_STATE_CULL_MODE:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_FRONT_FACE:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_DEPTH_TEST_ENABLE:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_DEPTH_TEST_ENABLE)) {
ss << "vkCmdSetDepthTestEnable last set depthTestEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineDepthStencilStateCreateInfo::depthTestEnable was VK_TRUE in the last bound graphics pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_DEPTH_COMPARE_OP:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_DEPTH_TEST_ENABLE)) {
ss << "vkCmdSetDepthTestEnable last set depthTestEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineDepthStencilStateCreateInfo::depthTestEnable was VK_TRUE in the last bound graphics pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_STENCIL_TEST_ENABLE:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_STENCIL_OP:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_STENCIL_TEST_ENABLE)) {
ss << stencil_test_enable_dynamic;
} else {
ss << stencil_test_enable_static;
}
break;
case CB_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV)) {
ss << "vkCmdSetViewportWScalingEnableNV last set viewportWScalingEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineViewportStateCreateInfo::pNext->VkPipelineViewportWScalingStateCreateInfoNV::"
"viewportWScalingEnable was VK_TRUE in the last bound graphics pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT)) {
ss << "vkCmdSetDiscardRectangleEnableEXT last set discardRectangleEnable to VK_TRUE.\n";
} else {
ss << "VkGraphicsPipelineCreateInfo::pNext->VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount "
"was greater than zero in the last bound graphics pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT)) {
ss << "vkCmdSetDiscardRectangleEnableEXT last set discardRectangleEnable to VK_TRUE.\n";
} else {
ss << "VkGraphicsPipelineCreateInfo::pNext->VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount "
"was greater than zero in the last bound graphics pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT)) {
ss << "vkCmdSetSampleLocationsEnableEXT last set logicOpEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineMultisampleStateCreateInfo::pNext->VkPipelineSampleLocationsStateCreateInfoEXT::"
"sampleLocationsEnable was VK_TRUE in the last bound graphics pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV)) {
ss << "vkCmdSetShadingRateImageEnableNV last set shadingRateImageEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineViewportStateCreateInfo::pNext->VkPipelineViewportShadingRateImageStateCreateInfoNV::"
"shadingRateImageEnable was VK_TRUE in the last bound graphics pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:
break;
case CB_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_LINE_STIPPLE:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT)) {
ss << "vkCmdSetLineStippleEnableEXT last set stippledLineEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineRasterizationLineStateCreateInfo::stippledLineEnable was VK_TRUE in the last bound graphics "
"pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_LOGIC_OP_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT)) {
ss << "vkCmdSetLogicOpEnableEXT last set logicOpEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineColorBlendStateCreateInfo::logicOpEnable was VK_TRUE in the last bound graphics pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
break;
case CB_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) {
ss << rasterizer_discard_enable_dynamic;
} else {
ss << rasterizer_discard_enable_static;
}
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV)) {
ss << "vkCmdSetCoverageModulationTableEnableNV last set coverageModulationTableEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineMultisampleStateCreateInfo::pNext->VkPipelineCoverageModulationStateCreateInfoNV::"
"coverageModulationTableEnable was VK_TRUE in the last bound graphics pipeline.\n";
}
break;
case CB_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT:
if (!pipeline || pipeline->IsDynamic(CB_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT)) {
ss << "vkCmdSetDepthClampEnableEXT last set depthClampEnable to VK_TRUE.\n";
} else {
ss << "VkPipelineRasterizationStateCreateInfo::depthClampEnable was VK_TRUE in the last bound graphics pipeline.\n";
}
break;
default:
break; // not all state will be dependent on other state
}
return ss.str();
}
// NOLINTEND