diff --git a/src/engine/renderer/tr_shade.c b/src/engine/renderer/tr_shade.c index c8a5e4a..b1e0b71 100644 --- a/src/engine/renderer/tr_shade.c +++ b/src/engine/renderer/tr_shade.c @@ -118,7 +118,8 @@ static void DrawTris (shaderCommands_t *input) { // VULKAN if (vk.active) { Com_Memset(tess.svars.colors, tr.identityLightByte, tess.numVertexes * 4 ); - vk_shade_geometry(vk.tris_debug_pipeline, false, Vk_Depth_Range::force_zero); + auto pipeline = backEnd.viewParms.isMirror ? vk.tris_mirror_debug_pipeline : vk.tris_debug_pipeline; + vk_shade_geometry(pipeline, false, Vk_Depth_Range::force_zero); } } diff --git a/src/engine/renderer/vk.cpp b/src/engine/renderer/vk.cpp index 5bdacbc..d59e462 100644 --- a/src/engine/renderer/vk.cpp +++ b/src/engine/renderer/vk.cpp @@ -1170,6 +1170,12 @@ void vk_initialize() { def.state_bits = GLS_POLYMODE_LINE | GLS_DEPTHMASK_TRUE; vk.tris_debug_pipeline = create_pipeline(def); } + { + Vk_Pipeline_Def def; + def.state_bits = GLS_POLYMODE_LINE | GLS_DEPTHMASK_TRUE; + def.face_culling = CT_BACK_SIDED; + vk.tris_mirror_debug_pipeline = create_pipeline(def); + } { Vk_Pipeline_Def def; def.state_bits = GLS_DEPTHMASK_TRUE; @@ -1242,6 +1248,7 @@ void vk_shutdown() { vkDestroyPipeline(vk.device, vk.dlight_pipelines[i][j][k], nullptr); } vkDestroyPipeline(vk.device, vk.tris_debug_pipeline, nullptr); + vkDestroyPipeline(vk.device, vk.tris_mirror_debug_pipeline, nullptr); vkDestroyPipeline(vk.device, vk.normals_debug_pipeline, nullptr); vkDestroyPipeline(vk.device, vk.surface_debug_pipeline_solid, nullptr); vkDestroyPipeline(vk.device, vk.surface_debug_pipeline_outline, nullptr); diff --git a/src/engine/renderer/vk.h b/src/engine/renderer/vk.h index 5df5deb..1991173 100644 --- a/src/engine/renderer/vk.h +++ b/src/engine/renderer/vk.h @@ -179,6 +179,7 @@ struct Vk_Instance { VkPipeline dlight_pipelines[2][3][2]; VkPipeline tris_debug_pipeline; + VkPipeline tris_mirror_debug_pipeline; VkPipeline normals_debug_pipeline; VkPipeline surface_debug_pipeline_solid; VkPipeline surface_debug_pipeline_outline;