networking
This commit is contained in:
@@ -75,6 +75,7 @@ VkFormat IRenderer_FormatToVk( EImageFormat format )
|
||||
case IMAGE_FORMAT_R8G8B8A8: return VK_FORMAT_R8G8B8A8_UNORM;
|
||||
case IMAGE_FORMAT_R16G16B16A16: return VK_FORMAT_R16G16B16A16_UNORM;
|
||||
case IMAGE_FORMAT_DEPTH: return VK_FORMAT_D32_SFLOAT;
|
||||
case IMAGE_FORMAT_WINDOW: return g_swapchainFormat;
|
||||
default: return VK_FORMAT_R8G8B8A8_UNORM;
|
||||
}
|
||||
};
|
||||
@@ -173,6 +174,7 @@ void IVulkan::Init()
|
||||
};
|
||||
void IVulkan::CreatePipelines()
|
||||
{
|
||||
V_printf("Created %i pipelines\n",g_StepMeshRendering.GetSize());
|
||||
for (auto &step: g_StepPrepass)
|
||||
step.pPipeline->Init();
|
||||
for (auto &step: g_StepMeshRendering)
|
||||
@@ -231,15 +233,15 @@ void IVulkan::Frame()
|
||||
IRenderer::Begin(g_nWindowWidth, g_nWindowHeight,
|
||||
{
|
||||
{
|
||||
0,
|
||||
g_meshColor,
|
||||
0,
|
||||
ATTACHMENT_LOAD_MODE_CLEAR,
|
||||
ATTACHMENT_STORE_MODE_STORE,
|
||||
}
|
||||
},
|
||||
{
|
||||
0,
|
||||
g_meshDepth,
|
||||
0,
|
||||
ATTACHMENT_LOAD_MODE_CLEAR,
|
||||
ATTACHMENT_STORE_MODE_STORE,
|
||||
});
|
||||
@@ -640,6 +642,8 @@ ITexture *ITextureManager::LoadTexture( void *pData, uint32_t X, uint32_t Y, uin
|
||||
{
|
||||
CVkTexture *pTexture = new CVkTexture;
|
||||
*pTexture = {};
|
||||
pTexture->x = X;
|
||||
pTexture->y = Y;
|
||||
VkDeviceSize imageSize = X*Y*4;
|
||||
vk_buffer_t gpu_buffer = {};
|
||||
gpu_buffer.Create(imageSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT);
|
||||
@@ -1059,7 +1063,7 @@ void IRenderer::Begin( uint32_t nWidth, uint32_t nHeight, CUtlVector<RenderingCo
|
||||
{
|
||||
VkRenderingAttachmentInfo vkattachment = {};
|
||||
vkattachment.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO;
|
||||
CVkImage *pImage = (CVkImage*)attachment.pTemporary;
|
||||
CVkImage *pImage = (CVkImage*)attachment.pOutput;
|
||||
CVkImage *pTemporary = (CVkImage*)attachment.pTemporary;
|
||||
if (attachment.pTemporary)
|
||||
{
|
||||
@@ -1077,8 +1081,10 @@ void IRenderer::Begin( uint32_t nWidth, uint32_t nHeight, CUtlVector<RenderingCo
|
||||
colorAttachments.AppendTail(vkattachment);
|
||||
}
|
||||
depthAttachment.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO;
|
||||
CVkImage *pDepthImage = (CVkImage*)depth.pTemporary;
|
||||
CVkImage *pDepthImage = (CVkImage*)depth.pOutput;
|
||||
CVkImage *pDepthTemporary = (CVkImage*)depth.pTemporary;
|
||||
if (!depth.pOutput)
|
||||
goto skip_depth;
|
||||
if (depth.pTemporary)
|
||||
{
|
||||
depthAttachment.imageView = pDepthTemporary->m_image.m_imageView;
|
||||
@@ -1094,13 +1100,14 @@ void IRenderer::Begin( uint32_t nWidth, uint32_t nHeight, CUtlVector<RenderingCo
|
||||
depthAttachment.storeOp = IRenderer_StoreOpVk(depth.storeMode);
|
||||
depthAttachment.clearValue = (VkClearValue){.depthStencil = {.depth = 1}};
|
||||
|
||||
skip_depth:
|
||||
VkRenderingInfo renderInfo = {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDERING_INFO,
|
||||
.renderArea = {{0, 0}, {nWidth, nHeight}},
|
||||
.layerCount = 1,
|
||||
.colorAttachmentCount = (uint32_t)colorAttachments.GetSize(),
|
||||
.pColorAttachments = colorAttachments.GetData(),
|
||||
.pDepthAttachment = &depthAttachment,
|
||||
.pDepthAttachment = depth.pOutput ? &depthAttachment : 0,
|
||||
};
|
||||
vkCmdBeginRendering(g_vkCommandBuffer, &renderInfo);
|
||||
}
|
||||
@@ -1113,10 +1120,11 @@ void IRenderer::ResetState()
|
||||
vkCmdSetCullMode(g_vkCommandBuffer, VK_CULL_MODE_BACK_BIT);
|
||||
vkCmdSetFrontFace(g_vkCommandBuffer, VK_FRONT_FACE_COUNTER_CLOCKWISE);
|
||||
|
||||
vkCmdSetDepthTestEnable(g_vkCommandBuffer, VK_TRUE);
|
||||
vkCmdSetDepthWriteEnable(g_vkCommandBuffer, VK_TRUE);
|
||||
vkCmdSetDepthCompareOp(g_vkCommandBuffer, VK_COMPARE_OP_LESS);
|
||||
vkCmdSetStencilTestEnable(g_vkCommandBuffer, VK_FALSE);
|
||||
|
||||
vkCmdSetDepthTestEnable(g_vkCommandBuffer, VK_FALSE);
|
||||
vkCmdSetDepthWriteEnable(g_vkCommandBuffer, VK_FALSE);
|
||||
|
||||
|
||||
_vkCmdSetPolygonModeEXT(g_vkCommandBuffer, VK_POLYGON_MODE_FILL);
|
||||
|
||||
_vkCmdSetRasterizationSamplesEXT(g_vkCommandBuffer, VK_SAMPLE_COUNT_1_BIT);
|
||||
@@ -1135,7 +1143,16 @@ void IRenderer::ResetState()
|
||||
|
||||
void IRenderer::SetDepthMode( EDepthMode mode )
|
||||
{
|
||||
|
||||
if (mode == DEPTH_MODE_DISABLED)
|
||||
{
|
||||
vkCmdSetDepthTestEnable(g_vkCommandBuffer, VK_FALSE);
|
||||
vkCmdSetDepthWriteEnable(g_vkCommandBuffer, VK_FALSE);
|
||||
return;
|
||||
}
|
||||
vkCmdSetDepthTestEnable(g_vkCommandBuffer, VK_TRUE);
|
||||
vkCmdSetDepthWriteEnable(g_vkCommandBuffer, VK_TRUE);
|
||||
vkCmdSetDepthCompareOp(g_vkCommandBuffer, VK_COMPARE_OP_LESS);
|
||||
vkCmdSetStencilTestEnable(g_vkCommandBuffer, VK_FALSE);
|
||||
}
|
||||
|
||||
void IRenderer::Draw( IVertexBuffer *pVertex, IIndexBuffer *pIndex )
|
||||
|
||||
Reference in New Issue
Block a user