From a6d3e9b4b7274d0414ca209cafc5e3dd6bc451d5 Mon Sep 17 00:00:00 2001 From: salh Date: Fri, 17 Apr 2026 23:33:48 +0300 Subject: [PATCH] Fix pipeline generation for POINT and RECTANGLE primitive lists, and resolve audio CVar linkage errors --- src/main.cpp | 3 --- .../src/graphics/d3d12/pipeline_cache.cpp | 25 +++++++++++++++---- .../src/native/audio/audio_system.cpp | 2 ++ 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 37769e98..6ba3e65b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,7 +10,4 @@ #include "ac6recomp_app.h" -REXCVAR_DEFINE_BOOL(audio_deep_trace, false, "Audio", - "Enable verbose runtime audio tracing"); - REX_DEFINE_APP(ac6recomp, Ac6recompApp::Create) diff --git a/thirdparty/rexglue-sdk/src/graphics/d3d12/pipeline_cache.cpp b/thirdparty/rexglue-sdk/src/graphics/d3d12/pipeline_cache.cpp index cf44f404..35c40ba4 100644 --- a/thirdparty/rexglue-sdk/src/graphics/d3d12/pipeline_cache.cpp +++ b/thirdparty/rexglue-sdk/src/graphics/d3d12/pipeline_cache.cpp @@ -1087,10 +1087,21 @@ bool PipelineCache::TranslateAnalyzedShader(DxbcShaderTranslator& translator, case Shader::HostVertexShaderType::kQuadDomainPatchIndexed: host_shader_type = "patch-indexed quad domain"; break; - default: - assert(modification.vertex.host_vertex_shader_type == - Shader::HostVertexShaderType::kVertex); + case Shader::HostVertexShaderType::kPointListAsTriangleStrip: + host_shader_type = "point-list-as-triangle-strip vertex"; + break; + case Shader::HostVertexShaderType::kRectangleListAsTriangleStrip: + host_shader_type = "rectangle-list-as-triangle-strip vertex"; + break; + case Shader::HostVertexShaderType::kMemExportCompute: + host_shader_type = "memexport compute"; + break; + case Shader::HostVertexShaderType::kVertex: host_shader_type = "vertex"; + break; + default: + assert_always(); + host_shader_type = "unknown"; } } else { host_shader_type = "pixel"; @@ -2797,8 +2808,12 @@ ID3D12PipelineState* PipelineCache::CreateD3D12Pipeline( state_desc.DS.pShaderBytecode = runtime_description.vertex_shader->translated_binary().data(); state_desc.DS.BytecodeLength = runtime_description.vertex_shader->translated_binary().size(); } else { - assert_true(host_vertex_shader_type == Shader::HostVertexShaderType::kVertex); - if (host_vertex_shader_type != Shader::HostVertexShaderType::kVertex) { + assert_true(host_vertex_shader_type == Shader::HostVertexShaderType::kVertex || + host_vertex_shader_type == Shader::HostVertexShaderType::kPointListAsTriangleStrip || + host_vertex_shader_type == Shader::HostVertexShaderType::kRectangleListAsTriangleStrip); + if (host_vertex_shader_type != Shader::HostVertexShaderType::kVertex && + host_vertex_shader_type != Shader::HostVertexShaderType::kPointListAsTriangleStrip && + host_vertex_shader_type != Shader::HostVertexShaderType::kRectangleListAsTriangleStrip) { // Fallback vertex shaders are not needed on Direct3D 12. return nullptr; } diff --git a/thirdparty/rexglue-sdk/src/native/audio/audio_system.cpp b/thirdparty/rexglue-sdk/src/native/audio/audio_system.cpp index 94824a73..bb1b29e6 100644 --- a/thirdparty/rexglue-sdk/src/native/audio/audio_system.cpp +++ b/thirdparty/rexglue-sdk/src/native/audio/audio_system.cpp @@ -17,6 +17,8 @@ REXCVAR_DEFINE_BOOL(audio_trace_telemetry, false, "Audio", "Trace audio runtime telemetry"); REXCVAR_DEFINE_BOOL(audio_trace_render_driver_verbose, false, "Audio", "Trace render-driver activity"); +REXCVAR_DEFINE_BOOL(audio_deep_trace, false, "Audio", + "Enable verbose runtime audio tracing"); namespace rex::audio {