Skip to content

Commit

Permalink
layers: Add VK_EXT_depth_clamp_control
Browse files Browse the repository at this point in the history
  • Loading branch information
spencer-lunarg committed Sep 26, 2024
1 parent 4594c9c commit b796c8a
Show file tree
Hide file tree
Showing 21 changed files with 312 additions and 8 deletions.
15 changes: 15 additions & 0 deletions layers/core_checks/cc_cmd_buffer_dynamic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,9 @@ bool CoreChecks::ValidateDynamicStateIsSet(const LastBound& last_bound_state, co
case CB_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT:
vuid_str = vuid.dynamic_depth_clip_negative_one_to_one_07639;
break;
case CB_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT:
vuid_str = vuid.dynamic_depth_clamp_control_09650;
break;
case CB_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT:
vuid_str = vuid.dynamic_depth_clip_enable_07633;
break;
Expand Down Expand Up @@ -279,6 +282,11 @@ bool CoreChecks::ValidateGraphicsDynamicStateSetStatus(const LastBound& last_bou
skip |= ValidateDynamicStateIsSet(last_bound_state, state_status_cb,
CB_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT, vuid);
}
if (enabled_features.depthClampControl) {
if (last_bound_state.IsDepthClampEnable()) {
skip |= ValidateDynamicStateIsSet(last_bound_state, state_status_cb, CB_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT, vuid);
}
}
if (enabled_features.depthClamp) {
skip |= ValidateDynamicStateIsSet(last_bound_state, state_status_cb, CB_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT, vuid);
}
Expand Down Expand Up @@ -2267,6 +2275,13 @@ bool CoreChecks::PreCallValidateCmdSetDepthClampEnableEXT(VkCommandBuffer comman
return skip;
}

bool CoreChecks::PreCallValidateCmdSetDepthClampRangeEXT(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode,
const VkDepthClampRangeEXT* pDepthClampRange,
const ErrorObject& error_obj) const {
auto cb_state = GetRead<vvl::CommandBuffer>(commandBuffer);
return ValidateCmd(*cb_state, error_obj.location);
}

bool CoreChecks::PreCallValidateCmdSetPolygonModeEXT(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode,
const ErrorObject& error_obj) const {
auto cb_state = GetRead<vvl::CommandBuffer>(commandBuffer);
Expand Down
3 changes: 3 additions & 0 deletions layers/core_checks/core_validation.h
Original file line number Diff line number Diff line change
Expand Up @@ -2283,6 +2283,9 @@ class CoreChecks : public ValidationStateTracker {
const ErrorObject& error_obj) const override;
bool PreCallValidateCmdSetDepthClampEnableEXT(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable,
const ErrorObject& error_obj) const override;
bool PreCallValidateCmdSetDepthClampRangeEXT(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode,
const VkDepthClampRangeEXT* pDepthClampRange,
const ErrorObject& error_obj) const override;
bool PreCallValidateCmdSetPolygonModeEXT(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode,
const ErrorObject& error_obj) const override;
bool PreCallValidateCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples,
Expand Down
15 changes: 15 additions & 0 deletions layers/drawdispatch/drawdispatch_vuids.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ struct DispatchVuidsCmdDraw : DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDraw-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDraw-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDraw-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDraw-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDraw-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDraw-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDraw-None-07834";
Expand Down Expand Up @@ -423,6 +424,7 @@ struct DispatchVuidsCmdDrawMultiEXT : DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawMultiEXT-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawMultiEXT-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawMultiEXT-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawMultiEXT-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawMultiEXT-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawMultiEXT-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawMultiEXT-None-07834";
Expand Down Expand Up @@ -694,6 +696,7 @@ struct DispatchVuidsCmdDrawIndexed : DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawIndexed-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawIndexed-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawIndexed-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawIndexed-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawIndexed-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawIndexed-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawIndexed-None-07834";
Expand Down Expand Up @@ -965,6 +968,7 @@ struct DispatchVuidsCmdDrawMultiIndexedEXT : DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawMultiIndexedEXT-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawMultiIndexedEXT-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawMultiIndexedEXT-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawMultiIndexedEXT-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawMultiIndexedEXT-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawMultiIndexedEXT-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawMultiIndexedEXT-None-07834";
Expand Down Expand Up @@ -1236,6 +1240,7 @@ struct DispatchVuidsCmdDrawIndirect : DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawIndirect-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawIndirect-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawIndirect-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawIndirect-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawIndirect-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawIndirect-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawIndirect-None-07834";
Expand Down Expand Up @@ -1506,6 +1511,7 @@ struct DispatchVuidsCmdDrawIndexedIndirect : DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawIndexedIndirect-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawIndexedIndirect-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawIndexedIndirect-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawIndexedIndirect-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawIndexedIndirect-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawIndexedIndirect-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawIndexedIndirect-None-07834";
Expand Down Expand Up @@ -1875,6 +1881,7 @@ struct DispatchVuidsCmdDrawIndirectCount : DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawIndirectCount-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawIndirectCount-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawIndirectCount-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawIndirectCount-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawIndirectCount-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawIndirectCount-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawIndirectCount-None-07834";
Expand Down Expand Up @@ -2148,6 +2155,7 @@ struct DispatchVuidsCmdDrawIndexedIndirectCount : DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawIndexedIndirectCount-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawIndexedIndirectCount-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawIndexedIndirectCount-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawIndexedIndirectCount-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawIndexedIndirectCount-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawIndexedIndirectCount-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawIndexedIndirectCount-None-07834";
Expand Down Expand Up @@ -2600,6 +2608,7 @@ struct DispatchVuidsCmdDrawMeshTasksNV: DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawMeshTasksNV-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawMeshTasksNV-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawMeshTasksNV-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawMeshTasksNV-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawMeshTasksNV-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawMeshTasksNV-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawMeshTasksNV-None-07834";
Expand Down Expand Up @@ -2856,6 +2865,7 @@ struct DispatchVuidsCmdDrawMeshTasksIndirectNV: DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawMeshTasksIndirectNV-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawMeshTasksIndirectNV-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawMeshTasksIndirectNV-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawMeshTasksIndirectNV-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawMeshTasksIndirectNV-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawMeshTasksIndirectNV-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawMeshTasksIndirectNV-None-07834";
Expand Down Expand Up @@ -3115,6 +3125,7 @@ struct DispatchVuidsCmdDrawMeshTasksIndirectCountNV : DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834";
Expand Down Expand Up @@ -3368,6 +3379,7 @@ struct DispatchVuidsCmdDrawMeshTasksEXT: DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawMeshTasksEXT-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawMeshTasksEXT-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawMeshTasksEXT-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDrawMeshTasksEXT-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawMeshTasksEXT-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawMeshTasksEXT-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawMeshTasksEXT-None-07834";
Expand Down Expand Up @@ -3624,6 +3636,7 @@ struct DispatchVuidsCmdDrawMeshTasksIndirectEXT: DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDraw-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834";
Expand Down Expand Up @@ -3883,6 +3896,7 @@ struct DispatchVuidsCmdDrawMeshTasksIndirectCountEXT : DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDraw-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834";
Expand Down Expand Up @@ -4149,6 +4163,7 @@ struct DispatchVuidsCmdDrawIndirectByteCountEXT: DrawDispatchVuid {
dynamic_shading_rate_image_enable_07647 = "VUID-vkCmdDrawIndirectByteCountEXT-None-07647";
dynamic_representative_fragment_test_enable_07648 = "VUID-vkCmdDrawIndirectByteCountEXT-None-07648";
dynamic_coverage_reduction_mode_07649 = "VUID-vkCmdDrawIndirectByteCountEXT-None-07649";
dynamic_depth_clamp_control_09650 = "VUID-vkCmdDraw-None-09650";
dynamic_viewport_07831 = "VUID-vkCmdDrawIndirectByteCountEXT-None-07831";
dynamic_scissor_07832 = "VUID-vkCmdDrawIndirectByteCountEXT-None-07832";
dynamic_depth_bias_07834 = "VUID-vkCmdDrawIndirectByteCountEXT-None-07834";
Expand Down
1 change: 1 addition & 0 deletions layers/drawdispatch/drawdispatch_vuids.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ struct DrawDispatchVuid {
const char* dynamic_shading_rate_image_enable_07647 = kVUIDUndefined;
const char* dynamic_representative_fragment_test_enable_07648 = kVUIDUndefined;
const char* dynamic_coverage_reduction_mode_07649 = kVUIDUndefined;
const char* dynamic_depth_clamp_control_09650 = kVUIDUndefined;
const char* dynamic_viewport_07831 = kVUIDUndefined;
const char* dynamic_scissor_07832 = kVUIDUndefined;
const char* dynamic_depth_bias_07834 = kVUIDUndefined;
Expand Down
2 changes: 2 additions & 0 deletions layers/state_tracker/cmd_buffer_state.h
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,8 @@ class CommandBuffer : public RefcountedStateObject {
bool rasterizer_discard_enable;
// VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE
bool depth_bias_enable = false;
// VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT
bool depth_clamp_enable = false;
// VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
bool alpha_to_coverage_enable;
// VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT
Expand Down
13 changes: 13 additions & 0 deletions layers/state_tracker/pipeline_state.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -899,6 +899,19 @@ bool LastBound::IsDepthBiasEnable() const {
return false;
}

bool LastBound::IsDepthClampEnable() const {
if (!pipeline_state || pipeline_state->IsDynamic(CB_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT)) {
if (cb_state.IsDynamicStateSet(CB_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT)) {
return cb_state.dynamic_state_value.depth_clamp_enable;
}
} else {
if (pipeline_state->RasterizationState()) {
return pipeline_state->RasterizationState()->depthClampEnable;
}
}
return false;
}

bool LastBound::IsStencilTestEnable() const {
if (!pipeline_state || pipeline_state->IsDynamic(CB_DYNAMIC_STATE_STENCIL_TEST_ENABLE)) {
if (cb_state.IsDynamicStateSet(CB_DYNAMIC_STATE_STENCIL_TEST_ENABLE)) {
Expand Down
1 change: 1 addition & 0 deletions layers/state_tracker/pipeline_state.h
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@ struct LastBound {
bool IsDepthBoundTestEnable() const;
bool IsDepthWriteEnable() const;
bool IsDepthBiasEnable() const;
bool IsDepthClampEnable() const;
bool IsStencilTestEnable() const;
VkStencilOpState GetStencilOpStateFront() const;
VkStencilOpState GetStencilOpStateBack() const;
Expand Down
9 changes: 9 additions & 0 deletions layers/state_tracker/state_tracker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5335,6 +5335,15 @@ void ValidationStateTracker::PostCallRecordCmdSetDepthClampEnableEXT(VkCommandBu
const RecordObject &record_obj) {
auto cb_state = GetWrite<vvl::CommandBuffer>(commandBuffer);
cb_state->RecordStateCmd(record_obj.location.function, CB_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT);
cb_state->dynamic_state_value.depth_clamp_enable = depthClampEnable;
}

void ValidationStateTracker::PostCallRecordCmdSetDepthClampRangeEXT(VkCommandBuffer commandBuffer,
VkDepthClampModeEXT depthClampMode,
const VkDepthClampRangeEXT *pDepthClampRange,
const RecordObject &record_obj) {
auto cb_state = GetWrite<vvl::CommandBuffer>(commandBuffer);
cb_state->RecordStateCmd(record_obj.location.function, CB_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT);
}

void ValidationStateTracker::PostCallRecordCmdSetPolygonModeEXT(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode,
Expand Down
3 changes: 3 additions & 0 deletions layers/state_tracker/state_tracker.h
Original file line number Diff line number Diff line change
Expand Up @@ -1301,6 +1301,9 @@ class ValidationStateTracker : public ValidationObject {
const RecordObject& record_obj) override;
void PostCallRecordCmdSetDepthClampEnableEXT(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable,
const RecordObject& record_obj) override;
void PostCallRecordCmdSetDepthClampRangeEXT(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode,
const VkDepthClampRangeEXT* pDepthClampRange,
const RecordObject& record_obj) override;
void PostCallRecordCmdSetPolygonModeEXT(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode,
const RecordObject& record_obj) override;
void PostCallRecordCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples,
Expand Down
16 changes: 16 additions & 0 deletions layers/stateless/sl_cmd_buffer_dynamic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,22 @@ bool StatelessValidation::manual_PreCallValidateCmdSetViewport(VkCommandBuffer c
return skip;
}

bool StatelessValidation::manual_PreCallValidateCmdSetDepthClampRangeEXT(VkCommandBuffer commandBuffer,
VkDepthClampModeEXT depthClampMode,
const VkDepthClampRangeEXT *pDepthClampRange,
const ErrorObject &error_obj) const {
bool skip = false;
if (depthClampMode == VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT) {
if (!pDepthClampRange) {
skip |= LogError("VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-09647", device,
error_obj.location.dot(Field::pDepthClampRange), "is NULL.");
} else {
skip |= ValidateDepthClampRange(*pDepthClampRange, error_obj.location.dot(Field::pDepthClampRange));
}
}
return skip;
}

bool StatelessValidation::manual_PreCallValidateCmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor,
uint32_t scissorCount, const VkRect2D *pScissors,
const ErrorObject &error_obj) const {
Expand Down
Loading

0 comments on commit b796c8a

Please sign in to comment.