Skip to content

Commit bf296c8

Browse files
layers: Nit cleanup for TileShading
1 parent 9880b45 commit bf296c8

5 files changed

Lines changed: 79 additions & 124 deletions

File tree

layers/core_checks/cc_cmd_buffer.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2077,7 +2077,8 @@ bool CoreChecks::PreCallValidateCmdBeginPerTileExecutionQCOM(VkCommandBuffer com
20772077
if (rp_state && !rp_state->has_tile_shading_enabled) {
20782078
const LogObjectList objlist(cb_state->Handle(), rp_state->Handle());
20792079
skip |= LogError("VUID-vkCmdBeginPerTileExecutionQCOM-None-10664", objlist, error_obj.location,
2080-
"current render pass doesn't have tile shading enabled.");
2080+
"current render pass doesn't have tile shading enabled. (Can be enabled by using "
2081+
"VkRenderPassTileShadingCreateInfoQCOM)");
20812082
}
20822083

20832084
return skip;
@@ -2095,13 +2096,14 @@ bool CoreChecks::PreCallValidateCmdEndPerTileExecutionQCOM(VkCommandBuffer comma
20952096
const LogObjectList objlist(cb_state->Handle(), rp_state->Handle());
20962097
skip |= LogError("VUID-vkCmdEndPerTileExecutionQCOM-None-10666", objlist, error_obj.location,
20972098
"the command buffer doesn't have the per-tile execution model enabled "
2098-
"in the current render pass.");
2099+
"in the current render pass. (Did you forget to call vkCmdBeginPerTileExecutionQCOM)");
20992100
}
21002101

21012102
if (!rp_state->has_tile_shading_enabled) {
21022103
const LogObjectList objlist(cb_state->Handle(), rp_state->Handle());
21032104
skip |= LogError("VUID-vkCmdEndPerTileExecutionQCOM-None-10667", objlist, error_obj.location,
2104-
"current render pass doesn't have tile shading enabled.");
2105+
"current render pass doesn't have tile shading enabled. (Can be enabled by using "
2106+
"VkRenderPassTileShadingCreateInfoQCOM)");
21052107
}
21062108
}
21072109

layers/core_checks/cc_render_pass.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,8 @@ bool CoreChecks::ValidateCmdEndRenderPass(const vvl::CommandBuffer& cb_state, co
794794
if (cb_state.per_tile_execution_model_enabled) {
795795
const LogObjectList objlist(cb_state.Handle(), rp_state.Handle());
796796
skip |= LogError("VUID-vkCmdEndRenderPass-None-10653", objlist, error_obj.location,
797-
"per-tile execution model is still enabled in this command buffer.");
797+
"per-tile execution model is still enabled in this command buffer. (Did you forget to call "
798+
"vkCmdEndPerTileExecutionQCOM)");
798799
}
799800

800801
return skip;
@@ -4707,7 +4708,8 @@ bool CoreChecks::ValidateCmdEndRendering(const vvl::CommandBuffer& cb_state, con
47074708
}
47084709
if (cb_state.per_tile_execution_model_enabled) {
47094710
skip |= LogError("VUID-vkCmdEndRendering-None-10645", cb_state.Handle(), error_obj.location,
4710-
"per-tile execution model is still enabled in this command buffer.");
4711+
"per-tile execution model is still enabled in this command buffer. (Did you forget to call "
4712+
"vkCmdEndPerTileExecutionQCOM)");
47114713
}
47124714

47134715
return skip;

tests/framework/layer_validation_tests.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -530,15 +530,15 @@ class CooperativeMatrixTest : public VkLayerTest {
530530

531531
class TileShadingTest : public VkLayerTest {
532532
public:
533-
struct TileShadingRenderTargetConfig {
533+
struct Config {
534534
VkFormat format = VK_FORMAT_R8G8B8A8_UNORM;
535535
VkExtent2D rt_size = {64, 64};
536536
VkExtent2D tile_apron_size = {0, 0};
537537
bool use_render_pass2 = false;
538-
};
538+
} tile_shading_rp_config;
539539

540540
void InitBasicTileShading();
541-
void InitTileShadingRenderTarget(const TileShadingRenderTargetConfig& tile_shading_rp_config);
541+
void InitTileShadingRenderTarget();
542542

543543
vkt::RenderPass m_tile_shading_render_pass;
544544
vkt::Framebuffer m_tile_shading_framebuffer;

tests/unit/tile_shading.cpp

Lines changed: 43 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
/*
22
* Copyright (c) 2026 The Khronos Group Inc.
3+
* Copyright (c) 2026 Valve Corporation
4+
* Copyright (c) 2026 LunarG, Inc.
35
* Copyright (C) 2026 Qualcomm Technologies, Inc.
46
*
57
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -10,17 +12,11 @@
1012
*/
1113

1214
#include "layer_validation_tests.h"
13-
#include "pipeline_helper.h"
1415

1516
class NegativeTileShading : public TileShadingTest {};
1617

1718
TEST_F(NegativeTileShading, EndPerTileExecutionWithNonTileShadingRenderPass) {
18-
TEST_DESCRIPTION("End per-tile execution model in a non-tile-shading render pass.");
19-
SetTargetApiVersion(VK_API_VERSION_1_3);
20-
AddRequiredExtensions(VK_QCOM_TILE_SHADING_EXTENSION_NAME);
21-
AddRequiredFeature(vkt::Feature::tileShading);
22-
AddRequiredFeature(vkt::Feature::tileShadingPerTileDraw);
23-
RETURN_IF_SKIP(Init());
19+
RETURN_IF_SKIP(InitBasicTileShading());
2420
InitRenderTarget();
2521

2622
VkPerTileEndInfoQCOM per_tile_end_info = vku::InitStructHelper();
@@ -36,12 +32,7 @@ TEST_F(NegativeTileShading, EndPerTileExecutionWithNonTileShadingRenderPass) {
3632
}
3733

3834
TEST_F(NegativeTileShading, BeginPerTileExecutionWithNonTileShadingRenderPass) {
39-
TEST_DESCRIPTION("Begin per-tile execution model in a non-tile-shading render pass.");
40-
SetTargetApiVersion(VK_API_VERSION_1_3);
41-
AddRequiredExtensions(VK_QCOM_TILE_SHADING_EXTENSION_NAME);
42-
AddRequiredFeature(vkt::Feature::tileShading);
43-
AddRequiredFeature(vkt::Feature::tileShadingPerTileDraw);
44-
RETURN_IF_SKIP(Init());
35+
RETURN_IF_SKIP(InitBasicTileShading());
4536
InitRenderTarget();
4637

4738
VkPerTileBeginInfoQCOM per_tile_begin_info = vku::InitStructHelper();
@@ -55,7 +46,7 @@ TEST_F(NegativeTileShading, BeginPerTileExecutionWithNonTileShadingRenderPass) {
5546
m_command_buffer.End();
5647
}
5748

58-
TEST_F(NegativeTileShading, CreateTileShadingRenderPassButTileShadingFeatureNotEnabled) {
49+
TEST_F(NegativeTileShading, RenderPassButTileShadingFeatureNotEnabled) {
5950
TEST_DESCRIPTION("Try to create a tile-shading render pass, but tileShading feature is not enabled.");
6051
SetTargetApiVersion(VK_API_VERSION_1_3);
6152
AddRequiredExtensions(VK_QCOM_TILE_SHADING_EXTENSION_NAME);
@@ -90,15 +81,13 @@ TEST_F(NegativeTileShading, CreateTileShadingRenderPassButTileShadingFeatureNotE
9081
rp_ci.subpassCount = 1;
9182
rp_ci.pSubpasses = &subpass_desc;
9283

93-
VkRenderPass tile_shading_render_pass = VK_NULL_HANDLE;
94-
9584
m_errorMonitor->SetDesiredError("VUID-VkRenderPassTileShadingCreateInfoQCOM-tileShading-10658");
96-
vk::CreateRenderPass(device(), &rp_ci, nullptr, &tile_shading_render_pass);
85+
VkRenderPass rp = VK_NULL_HANDLE;
86+
vk::CreateRenderPass(device(), &rp_ci, nullptr, &rp);
9787
m_errorMonitor->VerifyFound();
98-
vk::DestroyRenderPass(device(), tile_shading_render_pass, nullptr);
9988
}
10089

101-
TEST_F(NegativeTileShading, UseNonZeroTileApronSizeButTileShadingApronFeatureNotEnabled) {
90+
TEST_F(NegativeTileShading, NonZeroTileApronSizeButTileShadingApronFeatureNotEnabled) {
10291
TEST_DESCRIPTION("Try to use non-zero tile-apron size when creates a render pass, but "
10392
"tileShadingApron feature is not enabled.");
10493
SetTargetApiVersion(VK_API_VERSION_1_3);
@@ -147,7 +136,7 @@ TEST_F(NegativeTileShading, UseNonZeroTileApronSizeButTileShadingApronFeatureNot
147136
vk::DestroyRenderPass(device(), tile_shading_render_pass, nullptr);
148137
}
149138

150-
TEST_F(NegativeTileShading, UseAnisotropicApronSizeButTileShadingAnisotropicApronFeatureNotEnabled) {
139+
TEST_F(NegativeTileShading, AnisotropicApronSizeButTileShadingAnisotropicApronFeatureNotEnabled) {
151140
TEST_DESCRIPTION("Try to use anisotropic apron size when creates a render pass, but "
152141
"tileShadingAnisotropicApron feature is not enabled.");
153142
SetTargetApiVersion(VK_API_VERSION_1_3);
@@ -197,13 +186,10 @@ TEST_F(NegativeTileShading, UseAnisotropicApronSizeButTileShadingAnisotropicApro
197186
vk::DestroyRenderPass(device(), tile_shading_render_pass, nullptr);
198187
}
199188

200-
TEST_F(NegativeTileShading, UseLargerTileApronSize) {
189+
TEST_F(NegativeTileShading, LargerTileApronSize) {
201190
TEST_DESCRIPTION("Try to use tile apron size larger than maxApronSize when creates a render pass.");
202-
SetTargetApiVersion(VK_API_VERSION_1_3);
203-
AddRequiredExtensions(VK_QCOM_TILE_SHADING_EXTENSION_NAME);
204-
AddRequiredFeature(vkt::Feature::tileShading);
205191
AddRequiredFeature(vkt::Feature::tileShadingApron);
206-
RETURN_IF_SKIP(Init());
192+
RETURN_IF_SKIP(InitBasicTileShading());
207193

208194
VkPhysicalDeviceTileShadingPropertiesQCOM tile_shading_props = vku::InitStructHelper();
209195
VkPhysicalDeviceProperties2 props2 = vku::InitStructHelper(&tile_shading_props);
@@ -247,7 +233,7 @@ TEST_F(NegativeTileShading, UseLargerTileApronSize) {
247233
vk::DestroyRenderPass(device(), tile_shading_render_pass, nullptr);
248234
}
249235

250-
TEST_F(NegativeTileShading, CreateTileShadingRenderPassWithPerTileExecutionBit) {
236+
TEST_F(NegativeTileShading, RenderPassWithPerTileExecutionBit) {
251237
TEST_DESCRIPTION("Try to create a tile-shading render pass with per-tile-execution bit, but "
252238
"tileShadingPerTileDispatch and tileShadingPerTileDraw features are not enabled.");
253239
SetTargetApiVersion(VK_API_VERSION_1_3);
@@ -337,7 +323,7 @@ TEST_F(NegativeTileShading, CreateTileShadingRenderPassWithPerTileExecutionBit)
337323
}
338324
}
339325

340-
TEST_F(NegativeTileShading, BeginTileShadingDynamicRenderingButTileShadingFeatureNotEnabled) {
326+
TEST_F(NegativeTileShading, DynamicRenderingButTileShadingFeatureNotEnabled) {
341327
TEST_DESCRIPTION("Try to launch a tile-shading dynamic rendering, but tileShading feature isn't enabled.");
342328
SetTargetApiVersion(VK_API_VERSION_1_3);
343329
AddRequiredExtensions(VK_QCOM_TILE_SHADING_EXTENSION_NAME);
@@ -373,7 +359,7 @@ TEST_F(NegativeTileShading, BeginTileShadingDynamicRenderingButTileShadingFeatur
373359
m_command_buffer.End();
374360
}
375361

376-
TEST_F(NegativeTileShading, BeginTileShadingDynamicRenderingWithApronSizeButRequiredFeaturesNotEnabled) {
362+
TEST_F(NegativeTileShading, DynamicRenderingWithApronSizeButRequiredFeaturesNotEnabled) {
377363
TEST_DESCRIPTION("Try to launch a tile-shading dynamic rendering with specified anisotropic apron size, "
378364
"but tileShadingApron and tileShadingAnisotropicApron features aren't enabled.");
379365
SetTargetApiVersion(VK_API_VERSION_1_3);
@@ -416,10 +402,9 @@ TEST_F(NegativeTileShading, BeginTileShadingDynamicRenderingWithApronSizeButRequ
416402
m_command_buffer.End();
417403
}
418404

419-
TEST_F(NegativeTileShading, CreateTileShadingRenderPassWithUndefinedFormatResolveAttachment) {
405+
TEST_F(NegativeTileShading, RenderPassWithUndefinedFormatResolveAttachment) {
420406
TEST_DESCRIPTION("Try to create a tile-shading render pass, but provides a undefined format resolve attachment.");
421-
InitBasicTileShading();
422-
RETURN_IF_SKIP(Init());
407+
RETURN_IF_SKIP(InitBasicTileShading());
423408

424409
{
425410
std::array<VkAttachmentDescription, 2> attachment_descs{};
@@ -527,11 +512,10 @@ TEST_F(NegativeTileShading, CreateTileShadingRenderPassWithUndefinedFormatResolv
527512
}
528513
}
529514

530-
TEST_F(NegativeTileShading, CreateTileShadingRenderPassWithFragmentDensityMapAttachment) {
515+
TEST_F(NegativeTileShading, RenderPassWithFragmentDensityMapAttachment) {
531516
TEST_DESCRIPTION("Try to create a tile-shading render pass, but provides an available fragment-density-map attachment.");
532517
AddRequiredExtensions(VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME);
533-
InitBasicTileShading();
534-
RETURN_IF_SKIP(Init());
518+
RETURN_IF_SKIP(InitBasicTileShading());
535519

536520
{
537521
std::array<VkAttachmentDescription, 2> attachment_descs{};
@@ -635,12 +619,11 @@ TEST_F(NegativeTileShading, CreateTileShadingRenderPassWithFragmentDensityMapAtt
635619
}
636620
}
637621

638-
TEST_F(NegativeTileShading, BeginTileShadingDynamicRenderingInSimultaneousUseBitCommandBuffer) {
622+
TEST_F(NegativeTileShading, DynamicRenderingInSimultaneousUseBitCommandBuffer) {
639623
TEST_DESCRIPTION("Try to launch a dynamic rendering in a recorded command buffer "
640624
"with simultaneous-use-bit used.");
641625
AddRequiredFeature(vkt::Feature::dynamicRendering);
642-
InitBasicTileShading();
643-
RETURN_IF_SKIP(Init());
626+
RETURN_IF_SKIP(InitBasicTileShading());
644627

645628
constexpr uint32_t image_width = 32;
646629
constexpr uint32_t image_height = 32;
@@ -671,11 +654,10 @@ TEST_F(NegativeTileShading, BeginTileShadingDynamicRenderingInSimultaneousUseBit
671654
m_command_buffer.End();
672655
}
673656

674-
TEST_F(NegativeTileShading, BeginTileShadingDynamicRenderingWithPerTileExecutionBit) {
657+
TEST_F(NegativeTileShading, DynamicRenderingWithPerTileExecutionBit) {
675658
TEST_DESCRIPTION("Try to launch a tile-shading dynamic rendering but per-tile-execution bit is used.");
676659
AddRequiredFeature(vkt::Feature::dynamicRendering);
677-
InitBasicTileShading();
678-
RETURN_IF_SKIP(Init());
660+
RETURN_IF_SKIP(InitBasicTileShading());
679661

680662
constexpr uint32_t image_width = 32;
681663
constexpr uint32_t image_height = 32;
@@ -706,14 +688,11 @@ TEST_F(NegativeTileShading, BeginTileShadingDynamicRenderingWithPerTileExecution
706688
m_command_buffer.End();
707689
}
708690

709-
TEST_F(NegativeTileShading, EndTileShadingDynamicRenderingButPerTileExecutionModelEnabled) {
691+
TEST_F(NegativeTileShading, DynamicRenderingButPerTileExecutionModelEnabled) {
710692
TEST_DESCRIPTION("Try to end a tile-shading dynamic rendering, but per-tile-execution model is still enabled.");
711693
AddRequiredFeature(vkt::Feature::dynamicRendering);
712-
InitBasicTileShading();
713-
RETURN_IF_SKIP(Init());
714-
715-
TileShadingRenderTargetConfig tile_shading_rp_config{};
716-
InitTileShadingRenderTarget(tile_shading_rp_config);
694+
RETURN_IF_SKIP(InitBasicTileShading());
695+
InitTileShadingRenderTarget();
717696

718697
VkClearValue clear_value{};
719698
clear_value.color = {{0.0f, 0.0f, 0.0f, 0.0f}};
@@ -753,15 +732,13 @@ TEST_F(NegativeTileShading, EndTileShadingDynamicRenderingButPerTileExecutionMod
753732
m_command_buffer.End();
754733
}
755734

756-
TEST_F(NegativeTileShading, BeginTileShadingRenderPassWithSimultaneousUseBit) {
735+
TEST_F(NegativeTileShading, RenderPassWithSimultaneousUseBit) {
757736
TEST_DESCRIPTION("Try to launch a tile-shading render pass in a recorded command buffer "
758737
"with simultaneous-use-bit used.");
759-
InitBasicTileShading();
760-
RETURN_IF_SKIP(Init());
738+
RETURN_IF_SKIP(InitBasicTileShading());
761739

762-
TileShadingRenderTargetConfig tile_shading_rp_config{};
763740
tile_shading_rp_config.use_render_pass2 = true;
764-
InitTileShadingRenderTarget(tile_shading_rp_config);
741+
InitTileShadingRenderTarget();
765742

766743
VkClearValue clear_value{};
767744
clear_value.color = {{0.0f, 0.0f, 0.0f, 0.0f}};
@@ -784,13 +761,10 @@ TEST_F(NegativeTileShading, BeginTileShadingRenderPassWithSimultaneousUseBit) {
784761
m_command_buffer.End();
785762
}
786763

787-
TEST_F(NegativeTileShading, EndTileShadingRenderPassButPerTileExecutionModelEnabled) {
764+
TEST_F(NegativeTileShading, RenderPassButPerTileExecutionModelEnabled) {
788765
TEST_DESCRIPTION("Try to end a tile-shading render pass, but per-tile execution model is still enabled.");
789-
InitBasicTileShading();
790-
RETURN_IF_SKIP(Init());
791-
792-
TileShadingRenderTargetConfig tile_shading_rp_config{};
793-
InitTileShadingRenderTarget(tile_shading_rp_config);
766+
RETURN_IF_SKIP(InitBasicTileShading());
767+
InitTileShadingRenderTarget();
794768

795769
VkClearValue clear_value{};
796770
clear_value.color = {{0.0f, 0.0f, 0.0f, 0.0f}};
@@ -817,20 +791,18 @@ TEST_F(NegativeTileShading, EndTileShadingRenderPassButPerTileExecutionModelEnab
817791
m_command_buffer.End();
818792
}
819793

820-
TEST_F(NegativeTileShading, TileShadingDynamicRenderingWithFragmentDensityMapAttachment) {
794+
TEST_F(NegativeTileShading, DynamicRenderingWithFragmentDensityMapAttachment) {
821795
TEST_DESCRIPTION("Try to launch a dynamic rendering when tile-shading is enabled and fragment-density-map attachment is provided.");
822796
AddRequiredExtensions(VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME);
823797
AddRequiredFeature(vkt::Feature::dynamicRendering);
824798
AddRequiredFeature(vkt::Feature::fragmentDensityMap);
825799
AddRequiredFeature(vkt::Feature::fragmentDensityMapNonSubsampledImages);
826-
InitBasicTileShading();
827-
RETURN_IF_SKIP(Init());
800+
RETURN_IF_SKIP(InitBasicTileShading());
828801

829-
constexpr uint32_t image_width = 32;
830-
constexpr uint32_t image_height = 32;
831-
vkt::Image color_image{*m_device, image_width, image_height, m_render_target_fmt, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT };
802+
vkt::Image color_image{*m_device, 32, 32, m_render_target_fmt,
803+
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT};
832804
vkt::ImageView color_view = color_image.CreateView();
833-
vkt::Image fdm_image{*m_device, image_width, image_height, VK_FORMAT_R8G8_UNORM, VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT};
805+
vkt::Image fdm_image{*m_device, 32, 32, VK_FORMAT_R8G8_UNORM, VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT};
834806
vkt::ImageView fdm_view = fdm_image.CreateView();
835807

836808
VkRenderingAttachmentInfo color_attachment = vku::InitStructHelper();
@@ -849,7 +821,7 @@ TEST_F(NegativeTileShading, TileShadingDynamicRenderingWithFragmentDensityMapAtt
849821
tile_shading_ci.tileApronSize = {0, 0};
850822

851823
VkRenderingInfo rendering_info = vku::InitStructHelper(&tile_shading_ci);
852-
rendering_info.renderArea = {{0, 0}, {image_width, image_height}};
824+
rendering_info.renderArea = {{0, 0}, {32, 32}};
853825
rendering_info.layerCount = 1;
854826
rendering_info.colorAttachmentCount = 1;
855827
rendering_info.pColorAttachments = &color_attachment;
@@ -861,11 +833,10 @@ TEST_F(NegativeTileShading, TileShadingDynamicRenderingWithFragmentDensityMapAtt
861833
m_command_buffer.End();
862834
}
863835

864-
TEST_F(NegativeTileShading, TileShadingSubpassDescriptionWithZeroApronSize) {
836+
TEST_F(NegativeTileShading, SubpassDescriptionWithZeroApronSize) {
865837
TEST_DESCRIPTION("Try to create a tile-shading render pass, but provides a tile-shading-apron subpass "
866838
"description with zero apron size.");
867-
InitBasicTileShading();
868-
RETURN_IF_SKIP(Init());
839+
RETURN_IF_SKIP(InitBasicTileShading());
869840

870841
{
871842
VkAttachmentDescription attachment_desc{};
@@ -901,12 +872,10 @@ TEST_F(NegativeTileShading, TileShadingSubpassDescriptionWithZeroApronSize) {
901872
rp_ci.subpassCount = 1;
902873
rp_ci.pSubpasses = &subpass_desc;
903874

904-
VkRenderPass tile_shading_render_pass = VK_NULL_HANDLE;
905-
875+
VkRenderPass rp = VK_NULL_HANDLE;
906876
m_errorMonitor->SetDesiredError("VUID-VkSubpassDescription-flags-10683");
907-
vk::CreateRenderPass(device(), &rp_ci, nullptr, &tile_shading_render_pass);
877+
vk::CreateRenderPass(device(), &rp_ci, nullptr, &rp);
908878
m_errorMonitor->VerifyFound();
909-
vk::DestroyRenderPass(device(), tile_shading_render_pass, nullptr);
910879
}
911880
{
912881
VkAttachmentDescription2 attachment_desc2 = vku::InitStructHelper();
@@ -944,11 +913,9 @@ TEST_F(NegativeTileShading, TileShadingSubpassDescriptionWithZeroApronSize) {
944913
rpci2.subpassCount = 1;
945914
rpci2.pSubpasses = &subpass_desc2;
946915

947-
VkRenderPass tile_shading_render_pass = VK_NULL_HANDLE;
948-
916+
VkRenderPass rp = VK_NULL_HANDLE;
949917
m_errorMonitor->SetDesiredError("VUID-VkSubpassDescription2-flags-10683");
950-
vk::CreateRenderPass2(device(), &rpci2, nullptr, &tile_shading_render_pass);
918+
vk::CreateRenderPass2(device(), &rpci2, nullptr, &rp);
951919
m_errorMonitor->VerifyFound();
952-
vk::DestroyRenderPass(device(), tile_shading_render_pass, nullptr);
953920
}
954921
}

0 commit comments

Comments
 (0)