From 99eafb94437663bd1fe8e4a1fe3f46f65d861a42 Mon Sep 17 00:00:00 2001 From: kotofyt Date: Sun, 29 Jun 2025 22:40:43 +0300 Subject: [PATCH] metal clear swapchain with blue --- engine/brush.cpp | 4 +- engine/ml_video.cpp | 33 ++++ engine/ml_video.h | 12 ++ engine/ml_videosdl.cpp | 149 +++++++++++++++++- engine/vk_video.cpp | 71 ++++++++- engine/vk_video.h | 2 + engine/vk_videosdl.cpp | 3 +- fpc/library/ld.cpp | 1 + .../UserInterfaceState.xcuserstate | Bin 76632 -> 118178 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 126 ++++++++------- ios_deploy/funnygame/funnygame/Info.plist | 19 --- .../funnygame/funnygame/Main.storyboard | 30 ---- public/rendering.h | 29 ++-- 13 files changed, 343 insertions(+), 136 deletions(-) create mode 100644 engine/ml_video.h delete mode 100644 ios_deploy/funnygame/funnygame/Main.storyboard diff --git a/engine/brush.cpp b/engine/brush.cpp index fbc4740..6176fb4 100644 --- a/engine/brush.cpp +++ b/engine/brush.cpp @@ -133,7 +133,9 @@ void CBrushRendering::Init() {"shaders/brush_vert.spv", SHADER_TYPE_VERTEX}, {"shaders/brush_frag.spv", SHADER_TYPE_FRAGMENT}, }, - {}, 64, + {}, 64, + 20, + {{0,0,EVertexFormat::VERTEX_FORMAT_X32Y32Z32}, {12,1,EVertexFormat::VERTEX_FORMAT_X32Y32}}, {EImageFormat::IMAGE_FORMAT_R8G8B8A8} ); }; diff --git a/engine/ml_video.cpp b/engine/ml_video.cpp index 0722080..cecfb9b 100644 --- a/engine/ml_video.cpp +++ b/engine/ml_video.cpp @@ -6,24 +6,55 @@ #include "tier1/utlvector.h" #include "tier0/platform.h" #include "rendering.h" +#include "ml_video.h" mat4 g_cameraView; +class CMlBuffer: public IBuffer +{ +public: + void *Map() override; + void Unmap() override; + MTL::Buffer *m_buffer; +}; + +void *CMlBuffer::Map() +{ + return m_buffer->contents(); +} + +void CMlBuffer::Unmap() +{ + +} + IStorageBuffer *IRenderer::CreateStorageBuffer( uint32_t uSize ) { + CMlBuffer *pBuffer = new CMlBuffer; + pBuffer->m_buffer = g_mlDevice->newBuffer(uSize, MTL::ResourceStorageModeShared); + return pBuffer; } IUniformBuffer *IRenderer::CreateUniformBuffer( uint32_t uSize ) { + CMlBuffer *pBuffer = new CMlBuffer; + pBuffer->m_buffer = g_mlDevice->newBuffer(uSize, MTL::ResourceStorageModeShared); + return pBuffer; } IVertexBuffer *IRenderer::CreateVertexBuffer( uint32_t uSize ) { + CMlBuffer *pBuffer = new CMlBuffer; + pBuffer->m_buffer = g_mlDevice->newBuffer(uSize, MTL::ResourceStorageModeShared); + return pBuffer; } IIndexBuffer *IRenderer::CreateIndexBuffer( uint32_t uSize ) { + CMlBuffer *pBuffer = new CMlBuffer; + pBuffer->m_buffer = g_mlDevice->newBuffer(uSize, MTL::ResourceStorageModeShared); + return pBuffer; } @@ -96,6 +127,8 @@ IGraphicsPipeline *IRenderer::CreateGraphicsPipeline( CUtlVector shaders, CUtlVector inputs, uint32_t nConstantsSize, + uint32_t nVertexSize, + CUtlVector vertexFormat, CUtlVector outputFormats ) { diff --git a/engine/ml_video.h b/engine/ml_video.h new file mode 100644 index 0000000..0e8d7eb --- /dev/null +++ b/engine/ml_video.h @@ -0,0 +1,12 @@ +#ifndef ML_VIDEO_H +#define ML_VIDEO_H + +#include "Metal/Metal.hpp" +#include "QuartzCore/QuartzCore.hpp" + +extern CA::MetalLayer *g_mlLayer; +extern MTL::Device *g_mlDevice; +extern MTL::CommandQueue *g_mlCommandQueue; +extern NS::AutoreleasePool *g_mlPool; + +#endif diff --git a/engine/ml_videosdl.cpp b/engine/ml_videosdl.cpp index 501fe18..e16af3a 100644 --- a/engine/ml_videosdl.cpp +++ b/engine/ml_videosdl.cpp @@ -11,6 +11,7 @@ #define CA_PRIVATE_IMPLEMENTATION #include "tier0/minmax_off.h" +#include "QuartzCore/CAMetalLayer.hpp" #include "Metal/Metal.hpp" #include "SDL3/SDL.h" @@ -19,7 +20,30 @@ #include "SDL3/SDL_events.h" #include "tier0/minmax.h" +char g_bConfigNotify = 0; +uint32_t g_nWindowWidth = 1280; +uint32_t g_nWindowHeight = 720; + SDL_Window *g_window; +SDL_MetalView g_mlView; +CA::MetalLayer *g_mlLayer; +MTL::Device *g_mlDevice; +MTL::CommandQueue *g_mlCommandQueue; +NS::AutoreleasePool *g_mlPool; + +#if defined(__APPLE__) && defined(__MACH__) +#include "TargetConditionals.h" +#if TARGET_OS_IPHONE +// iOS +#define SDL_METAL_VIEW UI::View +#define STBI_NO_THREAD_LOCALS +#else +// macOS +#define SDL_METAL_VIEW NS::View +#endif +#else +// Other platforms +#endif void IInput::SetMouseMode( EMouseMode mode ) { @@ -34,12 +58,131 @@ void IInput::SetMouseMode( EMouseMode mode ) } } +EInputKey ISDL_KeyName(SDL_Keycode key) +{ + switch(key) + { + case SDLK_ESCAPE: return KEY_ESCAPE; + + case SDLK_1: return KEY_1; + case SDLK_2: return KEY_2; + case SDLK_3: return KEY_3; + case SDLK_4: return KEY_4; + case SDLK_5: return KEY_5; + case SDLK_6: return KEY_6; + case SDLK_7: return KEY_7; + case SDLK_8: return KEY_8; + case SDLK_9: return KEY_9; + case SDLK_0: return KEY_0; + + case SDLK_A: return KEY_A; + case SDLK_B: return KEY_B; + case SDLK_C: return KEY_C; + case SDLK_D: return KEY_D; + case SDLK_E: return KEY_E; + case SDLK_F: return KEY_F; + case SDLK_G: return KEY_G; + case SDLK_H: return KEY_H; + case SDLK_I: return KEY_I; + case SDLK_J: return KEY_J; + case SDLK_K: return KEY_K; + case SDLK_L: return KEY_L; + case SDLK_M: return KEY_M; + case SDLK_N: return KEY_N; + case SDLK_O: return KEY_O; + case SDLK_P: return KEY_P; + case SDLK_Q: return KEY_Q; + case SDLK_R: return KEY_R; + case SDLK_S: return KEY_S; + case SDLK_T: return KEY_T; + case SDLK_U: return KEY_U; + case SDLK_V: return KEY_V; + case SDLK_W: return KEY_W; + case SDLK_X: return KEY_X; + case SDLK_Y: return KEY_Y; + case SDLK_Z: return KEY_Z; + } + return KEY_NONE; +}; + +void IVideo_HandleEvents() +{ + SDL_Event event; + while (SDL_PollEvent(&event)) + { + SDL_KeyboardEvent *key = &event.key; + SDL_MouseMotionEvent *motion = &event.motion; + switch (event.type) + { + case SDL_EVENT_WINDOW_RESIZED: + g_nWindowWidth = event.window.data1; + g_nWindowHeight = event.window.data2; + g_bConfigNotify = 2; + break; + case SDL_EVENT_KEY_DOWN: + if (!key->repeat) + IInput::KeyEvent(ISDL_KeyName(key->key),KEY_EVENT_TYPE_DOWN); + break; + case SDL_EVENT_KEY_UP: + key = &event.key; + if (!key->repeat) + IInput::KeyEvent(ISDL_KeyName(key->key),KEY_EVENT_TYPE_UP); + break; + case SDL_EVENT_MOUSE_MOTION: + IInput::AxisEvent(AXIS_MOUSE_X, motion->yrel*0.022); + IInput::AxisEvent(AXIS_MOUSE_Y, -motion->xrel*0.022); + break; + } + }; +}; + void IVideo::Init() { - if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS)) - V_printf("%s\n",SDL_GetError()); - g_window = SDL_CreateWindow("rtt", 1280, 720, SDL_WINDOW_VULKAN); + SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS); + g_window = SDL_CreateWindow("rtt", 1280, 720, SDL_WINDOW_METAL); + g_mlView = SDL_Metal_CreateView(g_window); + g_mlLayer = (CA::MetalLayer*)SDL_Metal_GetLayer(g_mlView); + + g_mlDevice = MTL::CreateSystemDefaultDevice(); + + g_mlLayer->setDevice(g_mlDevice); + g_mlLayer->setPixelFormat(MTL::PixelFormatBGRA8Unorm); + + g_mlCommandQueue = g_mlDevice->newCommandQueue(); + + g_mlLayer->setDrawableSize(CGSizeMake(1280, 720)); + } void IVideo::Frame( float fDelta ) { + IVideo_HandleEvents(); + + NS::AutoreleasePool *pool = NS::AutoreleasePool::alloc()->init(); + int w, h; + SDL_GetWindowSizeInPixels(g_window, &w, &h); + g_mlLayer->setDrawableSize(CGSizeMake(w, h)); + + CA::MetalDrawable *drawable = g_mlLayer->nextDrawable(); + if (!drawable) + return; + + MTL::CommandBuffer *commandBuffer = g_mlCommandQueue->commandBuffer(); + + MTL::RenderPassDescriptor *renderPass = MTL::RenderPassDescriptor::alloc()->init(); + renderPass->colorAttachments()->object(0)->setTexture(drawable->texture()); + renderPass->colorAttachments()->object(0)->setLoadAction(MTL::LoadActionClear); + renderPass->colorAttachments()->object(0)->setStoreAction(MTL::StoreActionStore); + renderPass->colorAttachments()->object(0)->setClearColor(MTL::ClearColor(0.0, 0, 1.0, 1.0)); + MTL::RenderCommandEncoder *renderEncoder = commandBuffer->renderCommandEncoder(renderPass); + renderEncoder->endEncoding(); + + commandBuffer->presentDrawable(drawable); + commandBuffer->commit(); + pool->release(); } + +void IVideo::Deinit() +{ + g_mlCommandQueue->release(); + g_mlDevice->release(); +}; diff --git a/engine/vk_video.cpp b/engine/vk_video.cpp index 21aa51c..0f11a74 100644 --- a/engine/vk_video.cpp +++ b/engine/vk_video.cpp @@ -65,6 +65,35 @@ VkFormat IRenderer_FormatToVk( EImageFormat format ) } }; +VkFormat IRenderer_VertexToVk( EVertexFormat format ) +{ + switch (format) + { + case VERTEX_FORMAT_X16: return VK_FORMAT_R16_SFLOAT; + case VERTEX_FORMAT_X16Y16: return VK_FORMAT_R16G16_SFLOAT; + case VERTEX_FORMAT_X16Y16Z16: return VK_FORMAT_R16G16B16_SFLOAT; + case VERTEX_FORMAT_X16Y16Z16W16: return VK_FORMAT_R16G16B16A16_SFLOAT; + case VERTEX_FORMAT_X32: return VK_FORMAT_R32_SFLOAT; + case VERTEX_FORMAT_X32Y32: return VK_FORMAT_R32G32_SFLOAT; + case VERTEX_FORMAT_X32Y32Z32: return VK_FORMAT_R32G32B32_SFLOAT; + case VERTEX_FORMAT_X32Y32Z32W32: return VK_FORMAT_R32G32B32A32_SFLOAT; + } +}; +uint32_t IRenderer_VertexToSize( EVertexFormat format ) +{ + switch (format) + { + case VERTEX_FORMAT_X16: return 2; + case VERTEX_FORMAT_X16Y16: return 4; + case VERTEX_FORMAT_X16Y16Z16: return 6; + case VERTEX_FORMAT_X16Y16Z16W16: return 8; + case VERTEX_FORMAT_X32: return 4; + case VERTEX_FORMAT_X32Y32: return 8; + case VERTEX_FORMAT_X32Y32Z32: return 12; + case VERTEX_FORMAT_X32Y32Z32W32: return 16; + } +} + VkAttachmentLoadOp IRenderer_LoadOpVk( EAttachmentLoadMode mode ) { switch (mode) @@ -228,11 +257,13 @@ void vk_shader_t::Destroy( void ) void vk_tripipeline_t::Create( - CUtlVector &shaders, - CUtlVector &bindings, - uint32_t pushConstantSize, - CUtlVector formats - ) + CUtlVector &shaders, + CUtlVector &bindings, + uint32_t pushConstantSize, + uint32_t nVertexSize, + CUtlVector vertexFormat, + CUtlVector formats +) { VkPushConstantRange pushConstantRange = {}; pushConstantRange.stageFlags = VK_SHADER_STAGE_ALL; @@ -295,11 +326,32 @@ void vk_tripipeline_t::Create( VK_DYNAMIC_STATE_BLEND_CONSTANTS, }; + VkVertexInputBindingDescription vibd = { + .binding = 0, + .stride = nVertexSize, + .inputRate = VK_VERTEX_INPUT_RATE_VERTEX, + }; + VkPipelineDynamicStateCreateInfo pipelineDynamicStateCreateInfo = { .sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO, .dynamicStateCount = sizeof(dynamicStates)/sizeof(VkDynamicState), .pDynamicStates = dynamicStates, }; + CUtlVector viad(vertexFormat.GetSize()); + for ( uint32_t i = 0; i < viad.GetSize(); i++ ) + { + viad[i].location = 0; + viad[i].binding = vertexFormat[i].binding; + viad[i].format = IRenderer_VertexToVk(vertexFormat[i].format); + viad[i].offset = vertexFormat[i].offset; + } + + VkPipelineVertexInputStateCreateInfo pvisci = { + .sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, + .vertexBindingDescriptionCount = 1, + .pVertexBindingDescriptions = &vibd, + .vertexAttributeDescriptionCount = (uint32_t)vertexFormat.GetSize(), + }; VkPipelineInputAssemblyStateCreateInfo piasci = { .sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, @@ -318,6 +370,7 @@ void vk_tripipeline_t::Create( VkGraphicsPipelineCreateInfo graphicsPipelineCreateInfo = {}; graphicsPipelineCreateInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO; + graphicsPipelineCreateInfo.pVertexInputState = &pvisci; graphicsPipelineCreateInfo.pInputAssemblyState = &piasci; graphicsPipelineCreateInfo.layout = m_layout; graphicsPipelineCreateInfo.pDynamicState = &pipelineDynamicStateCreateInfo; @@ -808,6 +861,8 @@ IGraphicsPipeline *IRenderer::CreateGraphicsPipeline( CUtlVector shaders, CUtlVector inputs, uint32_t nConstantsSize, + uint32_t nVertexSize, + CUtlVector vertexFormats, CUtlVector outputFormats ) { @@ -816,6 +871,7 @@ IGraphicsPipeline *IRenderer::CreateGraphicsPipeline( CUtlVector vkshaders(shaders.GetSize()); CUtlVector vkbindings(inputs.GetSize()); CUtlVector vkformats(outputFormats.GetSize()); + CUtlVector vkVertexFormats(vertexFormats.GetSize()); for ( uint32_t i = 0; i < vkshaders.GetSize(); i++ ) { @@ -842,8 +898,9 @@ IGraphicsPipeline *IRenderer::CreateGraphicsPipeline( { vkformats[i] = IRenderer_FormatToVk(outputFormats[i]); } - pipeline->m_pipeline.Create(vkshaders, vkbindings, nConstantsSize, vkformats); - return 0; + + pipeline->m_pipeline.Create(vkshaders, vkbindings, nConstantsSize, nVertexSize, vertexFormats, vkformats); + return pipeline; }; diff --git a/engine/vk_video.h b/engine/vk_video.h index e0dc5b2..94dacbe 100644 --- a/engine/vk_video.h +++ b/engine/vk_video.h @@ -35,6 +35,8 @@ struct vk_tripipeline_t CUtlVector &shaders, CUtlVector &bindings, uint32_t pushConstantsSize, + uint32_t nVertexSize, + CUtlVector vertexFormat, CUtlVector formats /* the rest of the stuff is set by the dynamic state */ /* literally */ diff --git a/engine/vk_videosdl.cpp b/engine/vk_videosdl.cpp index 7080ef0..575c63d 100644 --- a/engine/vk_videosdl.cpp +++ b/engine/vk_videosdl.cpp @@ -232,8 +232,7 @@ EInputKey ISDL_KeyName(SDL_Keycode key) void IVideo::Init() { - if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS)) - V_printf("%s\n",SDL_GetError()); + SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS); g_window = SDL_CreateWindow("rtt", 1280, 720, SDL_WINDOW_VULKAN); unsigned int nExtensionCount = 0; diff --git a/fpc/library/ld.cpp b/fpc/library/ld.cpp index 821e29a..672570d 100644 --- a/fpc/library/ld.cpp +++ b/fpc/library/ld.cpp @@ -83,6 +83,7 @@ CUtlString CLDProject::Link( void ) args.AppendTail("-fembed-bitcode"); args.AppendTail("-Wl,-rpath,@executable_path"); args.AppendTail("-Wl,-all_load"); + args.AppendTail("-w"); } if (m_target.kernel == TARGET_KERNEL_LINUX) { diff --git a/ios_deploy/funnygame/funnygame.xcodeproj/project.xcworkspace/xcuserdata/kotofyt.xcuserdatad/UserInterfaceState.xcuserstate b/ios_deploy/funnygame/funnygame.xcodeproj/project.xcworkspace/xcuserdata/kotofyt.xcuserdatad/UserInterfaceState.xcuserstate index b2de044c78969acc5c505e13bfe590375f305cca..2cae69e2f751378cd18bf60d7ed2f8844ddd81f4 100644 GIT binary patch literal 118178 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 - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/ios_deploy/funnygame/funnygame/Info.plist b/ios_deploy/funnygame/funnygame/Info.plist index 7ddb044..5373b04 100644 --- a/ios_deploy/funnygame/funnygame/Info.plist +++ b/ios_deploy/funnygame/funnygame/Info.plist @@ -4,24 +4,5 @@ CFBundleExecutable funnygame - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - SceneDelegate - UISceneStoryboardFile - Main - - - - diff --git a/ios_deploy/funnygame/funnygame/Main.storyboard b/ios_deploy/funnygame/funnygame/Main.storyboard deleted file mode 100644 index dd79351..0000000 --- a/ios_deploy/funnygame/funnygame/Main.storyboard +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/rendering.h b/public/rendering.h index 66c7281..f1d8e3d 100644 --- a/public/rendering.h +++ b/public/rendering.h @@ -144,6 +144,7 @@ interface IVideo { public: static void Init(); + static void Deinit(); static void CreatePipelines( void ); static void Frame( float fDelta ); }; @@ -324,22 +325,24 @@ public: static void End(); static IGraphicsPipeline *CreateGraphicsPipeline( - CUtlVector shaders, - CUtlVector inputs, - uint32_t nConstantsSize, - CUtlVector outputFormats - ); + CUtlVector shaders, + CUtlVector inputs, + uint32_t nConstantsSize, + uint32_t nVertexSize, + CUtlVector vertexFormat, + CUtlVector outputFormats + ); static IComputePipeline *CreateComputePipeline( - Shader_t szShader, - CUtlVector inputs, - uint32_t nConstantsSize - ); + Shader_t szShader, + CUtlVector inputs, + uint32_t nConstantsSize + ); static IRayTracingPipeline *CreateRayTracingPipeline( - CUtlVector shaders, - CUtlVector inputs, - uint32_t nConstantsSize - ); + CUtlVector shaders, + CUtlVector inputs, + uint32_t nConstantsSize + ); }; abstract_class IRenderingPipelineStep