something

This commit is contained in:
2025-12-14 18:00:38 +02:00
parent a583969fc3
commit 860ec0c422
6 changed files with 68 additions and 60 deletions

View File

@@ -1,4 +1,5 @@
#include "SDL3/SDL_vulkan.h"
#include "commands.h"
#include "materialsystem/imaterialsystem.h"
#include "tier0/lib.h"
#include "tier0/platform.h"
@@ -358,7 +359,9 @@ void CVkRenderContext::DrawPrimitivesIndexed( uint32_t nIndexCount, uint32_t nFi
}
IVkCommandBuffer *pCommandBuffer;
IVkCommandBuffer *s_pPresentCommandBuffer;
IImage *pCurrentImage;
void CVkRenderContext::Init()
{
VkResult r;
@@ -473,12 +476,19 @@ void CVkRenderContext::Init()
g_pCommandBufferManager = (IVkCommandBufferManager*)CreateInterface(VULKAN_COMMAND_BUFFER_MANAGER_INTERFACE_NAME, NULL);
g_pCommandBufferManager->Init();
IVkCommandBuffer *pCommandBuffer = g_pCommandBufferManager->CreateCommandBuffer();
CVkCommand *pCommand = g_pCommandBufferManager->CreateCommand("ClearColor");
pCommandBuffer = g_pCommandBufferManager->CreateCommandBuffer();
CVkClearColorCommand *pCommand = (CVkClearColorCommand*)g_pCommandBufferManager->CreateCommand("ClearColor");
pCommand->AddDependency(g_vkSwapchainImages[0], DEPENDENCY_MODE_COLOR_CLEAR_DESTINATION);
pCommand->pImage = g_vkSwapchainImages[0];
printf("what3 %p\n", ((CVkImage*)g_vkSwapchainImages[0])->m_image);
printf("what4 %p\n", ((CVkImage*)pCommand->pImage)->m_image);
pCommand->r = 1;
pCommand->b = 1;
pCommandBuffer->Reset();
pCommandBuffer->AddCommand(pCommand);
pCommandBuffer->Render();
}
void CVkRenderContext::Frame( float fDeltaTime )
@@ -488,7 +498,7 @@ void CVkRenderContext::Frame( float fDeltaTime )
vkWaitForFences(g_vkDevice, 1, &g_vkFences[s_nImageIndex], VK_TRUE, UINT64_MAX);
VkResult r = vkAcquireNextImageKHR(g_vkDevice, g_vkSwapchain, UINT64_MAX, g_vkGraphicsSemaphores[s_nImageIndex], NULL, &nImageIndex);
vkResetFences(g_vkDevice, 1, &g_vkFences[s_nImageIndex]);
VkPipelineStageFlags uPipelineStageFlags = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
@@ -498,12 +508,16 @@ void CVkRenderContext::Frame( float fDeltaTime )
stSubmitInfo.pWaitSemaphores = &g_vkGraphicsSemaphores[s_nImageIndex];
stSubmitInfo.pWaitDstStageMask = &uPipelineStageFlags;
g_vkCommandBuffers = {};
pCommandBuffer->Submit(nImageIndex);
stSubmitInfo.commandBufferCount = g_vkCommandBuffers.GetSize();
stSubmitInfo.pCommandBuffers = g_vkCommandBuffers.GetData();
stSubmitInfo.signalSemaphoreCount = 1;
stSubmitInfo.pSignalSemaphores = &g_vkPresentSemaphores[nImageIndex];
vkQueueSubmit(g_vkDrawQueue, 1, &stSubmitInfo, g_vkFences[s_nImageIndex]);
VkPresentInfoKHR stPresentInfo = {};
@@ -599,11 +613,13 @@ formatPicked:
CVkImage *pImage;
pImage = new CVkImage;
pImage->m_image = swapchainImages[i];
printf("what %p\n", pImage->m_image);
pImage->m_eImageType = IMAGE_TYPE_2D;
pImage->m_eMultisampleType = MULTISAMPLE_TYPE_NONE;
pImage->m_eFormat = IMAGE_FORMAT_WINDOW;
pImage->CreateImageView();
g_vkSwapchainImages[i] = pImage;
printf("what2 %p\n", ((CVkImage*)g_vkSwapchainImages[i])->m_image);
stFenceCreateInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
stFenceCreateInfo.flags = VK_FENCE_CREATE_SIGNALED_BIT;