From 76a60de65a87d3b2b128fd1f26d1be7601552a67 Mon Sep 17 00:00:00 2001 From: Nanako <469449812@qq.com> Date: Mon, 24 Feb 2025 01:30:03 +0800 Subject: [PATCH] Test --- example/src/main.cpp | 2 +- scripts/compile_shaders.py | 17 +++++++++-------- src/core/renderer/render_context.cpp | 1 + 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/example/src/main.cpp b/example/src/main.cpp index 49ce53e..c923326 100644 --- a/example/src/main.cpp +++ b/example/src/main.cpp @@ -6,6 +6,6 @@ int main(int argc, char* argv[]) { init.size = {800, 600}; init.resizable = true; init.centered = true; - // init.api = mirage::renderer_api::opengl; + init.api = mirage::renderer_api::opengl; return run(init); } diff --git a/scripts/compile_shaders.py b/scripts/compile_shaders.py index afd081d..5f15574 100644 --- a/scripts/compile_shaders.py +++ b/scripts/compile_shaders.py @@ -34,17 +34,17 @@ SHADER_EXTENSIONS = { 'spirv': 'spirv', 'dxil': 'dxil', 'dxbc': 'dxbc', - 'Metal Library Bytecode assembly': 'metallib', + 'metallib': 'metallib', 'wgsl': 'wgsl' } # 不同目标平台的编译配置 TARGET_PROFILES = { - 'glsl': ['-profile', 'glsl_460'], - 'spirv': ['-profile', 'glsl_460', '-capability', 'glsl_spirv_1_6'], + 'glsl': ['-profile', 'glsl_460', '-capability', 'spirv_latest'], + 'spirv': ['-profile', 'spirv_1_6'], 'dxbc': ['-profile', 'sm_5_0'], 'dxil': ['-profile', 'sm_6_6'], - 'Metal Library Bytecode assembly': ['-capability', 'metallib_3_1'] + 'metallib': ['-capability', 'metallib_3_1'] } class ShaderEntry: @@ -245,17 +245,18 @@ def generate_pipeline_header_preamble() -> List[str]: " throw std::runtime_error(\"Failed to read shader file: \" + std::string(e.what()));", " }", "", - " bool is_string_source = rendererID == LLGL::RendererID::OpenGL;", - " if (is_string_source) {", + " if (rendererID == LLGL::RendererID::OpenGL) {", + " // 添加终止符", " shaderData.push_back('\\0');", " }", " // 创建着色器", " LLGL::ShaderDescriptor desc = shaderDesc;", " desc.source = shaderData.data();", " desc.sourceSize = shaderData.size();", - " desc.entryPoint = entryPoint;", + " desc.entryPoint = rendererID == LLGL::RendererID::OpenGL ? \"main\" : entryPoint;", " desc.type = type;", - " desc.sourceType = is_string_source ? LLGL::ShaderSourceType::CodeString : LLGL::ShaderSourceType::BinaryBuffer;", + " desc.profile = \"460\";", + " desc.sourceType = rendererID == LLGL::RendererID::OpenGL ? LLGL::ShaderSourceType::CodeString : LLGL::ShaderSourceType::BinaryBuffer;", "", " auto shader = renderer->CreateShader(desc);", " if (auto report = shader->GetReport()) {", diff --git a/src/core/renderer/render_context.cpp b/src/core/renderer/render_context.cpp index 95a1b31..7dceef7 100644 --- a/src/core/renderer/render_context.cpp +++ b/src/core/renderer/render_context.cpp @@ -84,6 +84,7 @@ namespace mirage { command_buffer->SetPipelineState(*pipeline.pipeline_state); command_buffer->SetResource(0, param_buffer->get_raw()); + command_buffer->DrawIndexed(index_buffer->get_size() / sizeof(uint32_t), 0); } command_buffer->EndRenderPass();