fixed windows builds
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
#include "interface.h"
|
||||
#include "math3d.h"
|
||||
#include "filesystem.h"
|
||||
#include "rendering.h"
|
||||
@@ -232,26 +233,26 @@ void IVulkan::Init()
|
||||
samplerInfo.maxLod = 0.0f;
|
||||
vkCreateSampler(g_vkDevice, &samplerInfo, nullptr, &g_invalidTextureSampler);
|
||||
|
||||
g_cameraProperties = IRenderer::CreateUniformBuffer(sizeof(CameraProjection));
|
||||
g_cameraProperties = Renderer()->CreateUniformBuffer(sizeof(CameraProjection));
|
||||
g_cameraDataMap = (CameraProjection*)g_cameraProperties->Map();
|
||||
|
||||
g_meshDepth = IRenderer::CreateImage(IMAGE_FORMAT_DEPTH, IMAGE_USAGE_DEPTH_ATTACHMENT, 1280, 720, 1);
|
||||
g_meshDepthMSAA = IRenderer::CreateImage(IMAGE_FORMAT_DEPTH, IMAGE_USAGE_DEPTH_ATTACHMENT, 1280, 720, 4);
|
||||
g_meshColor = IRenderer::CreateImage(IMAGE_FORMAT_R8G8B8A8, IMAGE_USAGE_COLOR_ATTACHMENT, 1280, 720, 1);
|
||||
g_meshColorMSAA = IRenderer::CreateImage(IMAGE_FORMAT_R8G8B8A8, IMAGE_USAGE_COLOR_ATTACHMENT, 1280, 720, 4);
|
||||
g_meshDepth = Renderer()->CreateImage(IMAGE_FORMAT_DEPTH, IMAGE_USAGE_DEPTH_ATTACHMENT, 1280, 720, 1);
|
||||
g_meshDepthMSAA = Renderer()->CreateImage(IMAGE_FORMAT_DEPTH, IMAGE_USAGE_DEPTH_ATTACHMENT, 1280, 720, 4);
|
||||
g_meshColor = Renderer()->CreateImage(IMAGE_FORMAT_R8G8B8A8, IMAGE_USAGE_COLOR_ATTACHMENT, 1280, 720, 1);
|
||||
g_meshColorMSAA = Renderer()->CreateImage(IMAGE_FORMAT_R8G8B8A8, IMAGE_USAGE_COLOR_ATTACHMENT, 1280, 720, 4);
|
||||
glm_mat4_identity(g_cameraView);
|
||||
};
|
||||
void IVulkan::CreatePipelines()
|
||||
{
|
||||
for (auto &step: g_StepPrepass)
|
||||
for (auto &step: Renderer()->m_StepPrepass)
|
||||
step.pPipeline->Init();
|
||||
for (auto &step: g_StepMeshRendering)
|
||||
for (auto &step: Renderer()->m_StepMeshRendering)
|
||||
step.pPipeline->Init();
|
||||
for (auto &step: g_StepShading)
|
||||
for (auto &step: Renderer()->m_StepShading)
|
||||
step.pPipeline->Init();
|
||||
for (auto &step: g_StepPostProcessing)
|
||||
for (auto &step: Renderer()->m_StepPostProcessing)
|
||||
step.pPipeline->Init();
|
||||
for (auto &step: g_StepUI)
|
||||
for (auto &step: Renderer()->m_StepUI)
|
||||
step.pPipeline->Init();
|
||||
}
|
||||
|
||||
@@ -273,19 +274,19 @@ void IVulkan::Frame()
|
||||
|
||||
if (g_bConfigNotify)
|
||||
{
|
||||
IRenderer::DestroyImage(g_meshDepth);
|
||||
IRenderer::DestroyImage(g_meshDepthMSAA);
|
||||
IRenderer::DestroyImage(g_meshColor);
|
||||
IRenderer::DestroyImage(g_meshColorMSAA);
|
||||
g_meshDepth = IRenderer::CreateImage(IMAGE_FORMAT_DEPTH, IMAGE_USAGE_DEPTH_ATTACHMENT, g_nWindowWidth, g_nWindowHeight, 1);
|
||||
g_meshDepthMSAA = IRenderer::CreateImage(IMAGE_FORMAT_DEPTH, IMAGE_USAGE_DEPTH_ATTACHMENT, g_nWindowWidth, g_nWindowHeight, 4);
|
||||
g_meshColor = IRenderer::CreateImage(IMAGE_FORMAT_R8G8B8A8, IMAGE_USAGE_COLOR_ATTACHMENT, g_nWindowWidth, g_nWindowHeight, 1);
|
||||
g_meshColorMSAA = IRenderer::CreateImage(IMAGE_FORMAT_R8G8B8A8, IMAGE_USAGE_COLOR_ATTACHMENT, g_nWindowWidth, g_nWindowHeight, 4);
|
||||
Renderer()->DestroyImage(g_meshDepth);
|
||||
Renderer()->DestroyImage(g_meshDepthMSAA);
|
||||
Renderer()->DestroyImage(g_meshColor);
|
||||
Renderer()->DestroyImage(g_meshColorMSAA);
|
||||
g_meshDepth = Renderer()->CreateImage(IMAGE_FORMAT_DEPTH, IMAGE_USAGE_DEPTH_ATTACHMENT, g_nWindowWidth, g_nWindowHeight, 1);
|
||||
g_meshDepthMSAA = Renderer()->CreateImage(IMAGE_FORMAT_DEPTH, IMAGE_USAGE_DEPTH_ATTACHMENT, g_nWindowWidth, g_nWindowHeight, 4);
|
||||
g_meshColor = Renderer()->CreateImage(IMAGE_FORMAT_R8G8B8A8, IMAGE_USAGE_COLOR_ATTACHMENT, g_nWindowWidth, g_nWindowHeight, 1);
|
||||
g_meshColorMSAA = Renderer()->CreateImage(IMAGE_FORMAT_R8G8B8A8, IMAGE_USAGE_COLOR_ATTACHMENT, g_nWindowWidth, g_nWindowHeight, 4);
|
||||
}
|
||||
|
||||
for (auto &step: g_StepPrepass)
|
||||
for (auto &step: Renderer()->m_StepPrepass)
|
||||
step.pPipeline->Frame(0);
|
||||
IRenderer::Barrier(BARRIER_STAGE_TOP, BARRIER_STAGE_COLOR_OUTPUT | BARRIER_STAGE_DEPTH_OUTPUT, {}, {
|
||||
Renderer()->Barrier(BARRIER_STAGE_TOP, BARRIER_STAGE_COLOR_OUTPUT | BARRIER_STAGE_DEPTH_OUTPUT, {}, {
|
||||
{
|
||||
.in = BARRIER_MEMORY_PERMISSIONS_NONE,
|
||||
.out = BARRIER_MEMORY_PERMISSIONS_COLOR_WRITE,
|
||||
@@ -298,7 +299,7 @@ void IVulkan::Frame()
|
||||
},
|
||||
}
|
||||
);
|
||||
IRenderer::Begin(g_nWindowWidth, g_nWindowHeight,
|
||||
Renderer()->Begin(g_nWindowWidth, g_nWindowHeight,
|
||||
{
|
||||
{
|
||||
g_meshColor,
|
||||
@@ -314,12 +315,12 @@ void IVulkan::Frame()
|
||||
ATTACHMENT_STORE_MODE_STORE,
|
||||
});
|
||||
|
||||
for (auto &step: g_StepMeshRendering)
|
||||
for (auto &step: Renderer()->m_StepMeshRendering)
|
||||
{
|
||||
step.pPipeline->Frame(0);
|
||||
}
|
||||
IRenderer::End();
|
||||
IRenderer::Barrier(BARRIER_STAGE_DEPTH_OUTPUT, BARRIER_STAGE_BOTTOM, {}, {
|
||||
Renderer()->End();
|
||||
Renderer()->Barrier(BARRIER_STAGE_DEPTH_OUTPUT, BARRIER_STAGE_BOTTOM, {}, {
|
||||
{
|
||||
.in = BARRIER_MEMORY_PERMISSIONS_DEPTH_WRITE,
|
||||
.out = BARRIER_MEMORY_PERMISSIONS_NONE,
|
||||
@@ -328,7 +329,7 @@ void IVulkan::Frame()
|
||||
}
|
||||
);
|
||||
|
||||
IRenderer::Barrier(BARRIER_STAGE_COLOR_OUTPUT, BARRIER_STAGE_BLIT, {}, {
|
||||
Renderer()->Barrier(BARRIER_STAGE_COLOR_OUTPUT, BARRIER_STAGE_BLIT, {}, {
|
||||
{
|
||||
|
||||
.in = BARRIER_MEMORY_PERMISSIONS_COLOR_WRITE,
|
||||
@@ -338,7 +339,7 @@ void IVulkan::Frame()
|
||||
{
|
||||
.in = BARRIER_MEMORY_PERMISSIONS_NONE,
|
||||
.out = BARRIER_MEMORY_PERMISSIONS_COPY_WRITE,
|
||||
.pImage = IRenderer::GetOutputImage(),
|
||||
.pImage = Renderer()->GetOutputImage(),
|
||||
}
|
||||
}
|
||||
);
|
||||
@@ -364,29 +365,29 @@ void IVulkan::Frame()
|
||||
1, &imageCopyRegion,
|
||||
VK_FILTER_NEAREST
|
||||
);
|
||||
IRenderer::Barrier(BARRIER_STAGE_BLIT, BARRIER_STAGE_COLOR_OUTPUT, {},
|
||||
Renderer()->Barrier(BARRIER_STAGE_BLIT, BARRIER_STAGE_COLOR_OUTPUT, {},
|
||||
{
|
||||
{
|
||||
|
||||
.in = BARRIER_MEMORY_PERMISSIONS_COPY_WRITE,
|
||||
.out = BARRIER_MEMORY_PERMISSIONS_COLOR_WRITE | BARRIER_MEMORY_PERMISSIONS_COLOR_READ,
|
||||
.pImage = IRenderer::GetOutputImage(),
|
||||
.pImage = Renderer()->GetOutputImage(),
|
||||
}
|
||||
}
|
||||
);
|
||||
for (auto &step: g_StepShading)
|
||||
for (auto &step: Renderer()->m_StepShading)
|
||||
step.pPipeline->Frame(0);
|
||||
for (auto &step: g_StepPostProcessing)
|
||||
for (auto &step: Renderer()->m_StepPostProcessing)
|
||||
step.pPipeline->Frame(0);
|
||||
for (auto &step: g_StepUI)
|
||||
for (auto &step: Renderer()->m_StepUI)
|
||||
step.pPipeline->Frame(0);
|
||||
IRenderer::Barrier(BARRIER_STAGE_COLOR_OUTPUT, BARRIER_STAGE_IMAGE_OUPUT, {},
|
||||
Renderer()->Barrier(BARRIER_STAGE_COLOR_OUTPUT, BARRIER_STAGE_IMAGE_OUPUT, {},
|
||||
{
|
||||
{
|
||||
|
||||
.in = BARRIER_MEMORY_PERMISSIONS_COLOR_WRITE,
|
||||
.out = 0,
|
||||
.pImage = IRenderer::GetOutputImage(),
|
||||
.pImage = Renderer()->GetOutputImage(),
|
||||
}
|
||||
}
|
||||
);
|
||||
@@ -394,13 +395,13 @@ void IVulkan::Frame()
|
||||
|
||||
void vk_shader_t::Create( const char *szPath, VkShaderStageFlagBits shaderStage )
|
||||
{
|
||||
FileHandle_t shader = IFileSystem::Open(szPath, IFILE_READ);
|
||||
FileHandle_t shader = FileSystem()->Open(szPath, IFILE_READ);
|
||||
if (!shader)
|
||||
Plat_FatalErrorFunc("Failed to open shader %s\n", szPath);
|
||||
CUtlBuffer<uint8_t> buffer(IFileSystem::Size(shader));
|
||||
IFileSystem::Read(shader, buffer.GetMemory(), buffer.GetSize());
|
||||
CUtlBuffer<uint8_t> buffer(FileSystem()->Size(shader));
|
||||
FileSystem()->Read(shader, buffer.GetMemory(), buffer.GetSize());
|
||||
Create(buffer, shaderStage);
|
||||
IFileSystem::Close(shader);
|
||||
FileSystem()->Close(shader);
|
||||
}
|
||||
|
||||
void vk_shader_t::Create( CUtlBuffer<uint8_t> &spirv, VkShaderStageFlagBits shaderStage )
|
||||
@@ -857,12 +858,12 @@ ITexture *ITextureManager::LoadTexture( const char *szName )
|
||||
if (!V_strcmp(texture->szName, szName))
|
||||
return texture;
|
||||
};
|
||||
FileHandle_t file = IFileSystem::Open(szName, IFILE_READ);
|
||||
FileHandle_t file = FileSystem()->Open(szName, IFILE_READ);
|
||||
if (!file)
|
||||
Plat_FatalErrorFunc("Failed to load %s\n", szName);
|
||||
|
||||
CUtlBuffer<stbi_uc> buffer(IFileSystem::Size(file));
|
||||
IFileSystem::Read(file, buffer.GetMemory(), buffer.GetSize());
|
||||
CUtlBuffer<stbi_uc> buffer(FileSystem()->Size(file));
|
||||
FileSystem()->Read(file, buffer.GetMemory(), buffer.GetSize());
|
||||
int nImageX;
|
||||
int nImageY;
|
||||
int nImageChannels;
|
||||
@@ -872,15 +873,70 @@ ITexture *ITextureManager::LoadTexture( const char *szName )
|
||||
return pTexture;
|
||||
};
|
||||
|
||||
interface CVkRenderer: public IRenderer
|
||||
{
|
||||
public:
|
||||
virtual void Init() override {};
|
||||
virtual void Frame() override {};
|
||||
virtual void Deinit() override {};
|
||||
|
||||
IStorageBuffer *IRenderer::CreateStorageBuffer( uint32_t uSize )
|
||||
virtual IStorageBuffer *CreateStorageBuffer( uint32_t uSize ) override;
|
||||
virtual IUniformBuffer *CreateUniformBuffer( uint32_t uSize ) override;
|
||||
virtual IVertexBuffer *CreateVertexBuffer( uint32_t uSize ) override;
|
||||
virtual IIndexBuffer *CreateIndexBuffer( uint32_t uSize ) override;
|
||||
virtual IImage *CreateImage( EImageFormat format, uint32_t usage, uint32_t nWidth, uint32_t nHeight, uint32_t nSamples = 1 ) override;
|
||||
|
||||
virtual void DestroyBuffer( IBuffer *pBuffer ) override;
|
||||
virtual void DestroyImage( IImage *pImage ) override;
|
||||
|
||||
virtual void SetConstants( uint32_t nSize, void *pData ) override;
|
||||
virtual void Barrier( uint32_t stageIn, uint32_t stageOut, CUtlVector<BufferBarrier_t> buffers, CUtlVector<ImageBarrier_t> images ) override;
|
||||
virtual void BindPipeline( IPipeline *pPipeline ) override;
|
||||
|
||||
virtual void Begin( uint32_t nWidth, uint32_t nHeight, CUtlVector<RenderingColorAttachment_t> attachments, RenderingDepthAttachment_t depth ) override;
|
||||
virtual void ResetState() override;
|
||||
virtual void SetDepthMode( EDepthMode mode ) override;
|
||||
virtual void Draw( IVertexBuffer *pVertex, IIndexBuffer *pIndex ) override;
|
||||
virtual void End() override;
|
||||
|
||||
virtual void Dispatch( uint32_t x, uint32_t y, uint32_t z ) override;
|
||||
virtual void TraceRays( uint32_t x, uint32_t y, uint32_t z ) override;
|
||||
|
||||
virtual IGraphicsPipeline *CreateGraphicsPipeline(
|
||||
CUtlVector<Shader_t> shaders,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize,
|
||||
uint32_t nVertexSize,
|
||||
CUtlVector<VertexAttribute_t> vertexFormat,
|
||||
CUtlVector<EImageFormat> outputFormats,
|
||||
bool bDepth
|
||||
) override;
|
||||
virtual IComputePipeline *CreateComputePipeline(
|
||||
Shader_t szShader,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize
|
||||
) override;
|
||||
|
||||
virtual IRayTracingPipeline *CreateRayTracingPipeline(
|
||||
CUtlVector<Shader_t> shaders,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize
|
||||
) override;
|
||||
|
||||
virtual IBuffer *GetCameraMatrix() override;
|
||||
virtual IImage *GetOutputImage() override;
|
||||
};
|
||||
|
||||
DECLARE_ENGINE_INTERFACE(Renderer, CVkRenderer)
|
||||
|
||||
IStorageBuffer *CVkRenderer::CreateStorageBuffer( uint32_t uSize )
|
||||
{
|
||||
CVkBuffer *pBuffer = new CVkBuffer();
|
||||
pBuffer->m_buffer.Create(uSize, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
|
||||
return pBuffer;
|
||||
}
|
||||
|
||||
IUniformBuffer *IRenderer::CreateUniformBuffer( uint32_t uSize )
|
||||
IUniformBuffer *CVkRenderer::CreateUniformBuffer( uint32_t uSize )
|
||||
{
|
||||
CVkBuffer *pBuffer = new CVkBuffer();
|
||||
pBuffer->m_buffer.Create(uSize, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT);
|
||||
@@ -888,14 +944,14 @@ IUniformBuffer *IRenderer::CreateUniformBuffer( uint32_t uSize )
|
||||
}
|
||||
|
||||
|
||||
IVertexBuffer *IRenderer::CreateVertexBuffer( uint32_t uSize )
|
||||
IVertexBuffer *CVkRenderer::CreateVertexBuffer( uint32_t uSize )
|
||||
{
|
||||
CVkBuffer *pBuffer = new CVkBuffer();
|
||||
pBuffer->m_buffer.Create(uSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
|
||||
return pBuffer;
|
||||
}
|
||||
|
||||
IIndexBuffer *IRenderer::CreateIndexBuffer( uint32_t uSize )
|
||||
IIndexBuffer *CVkRenderer::CreateIndexBuffer( uint32_t uSize )
|
||||
{
|
||||
CVkBuffer *pBuffer = new CVkBuffer();
|
||||
pBuffer->m_buffer.Create(uSize, VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
|
||||
@@ -903,7 +959,7 @@ IIndexBuffer *IRenderer::CreateIndexBuffer( uint32_t uSize )
|
||||
}
|
||||
|
||||
|
||||
IImage *IRenderer::CreateImage( EImageFormat format, uint32_t usage, uint32_t nWidth, uint32_t nHeight, uint32_t nSamples )
|
||||
IImage *CVkRenderer::CreateImage( EImageFormat format, uint32_t usage, uint32_t nWidth, uint32_t nHeight, uint32_t nSamples )
|
||||
{
|
||||
VkFormat vkformat;
|
||||
VkImageUsageFlags vkusage = 0;
|
||||
@@ -935,14 +991,14 @@ IImage *IRenderer::CreateImage( EImageFormat format, uint32_t usage, uint32_t nW
|
||||
pImage->m_image.Create(nWidth, nHeight, vkformat, vkusage, samples);
|
||||
return pImage;
|
||||
};
|
||||
void IRenderer::DestroyBuffer( IBuffer *pBuffer )
|
||||
void CVkRenderer::DestroyBuffer( IBuffer *pBuffer )
|
||||
{
|
||||
CVkBuffer *pVkBuffer = (CVkBuffer*)pBuffer;
|
||||
if (pVkBuffer)
|
||||
pVkBuffer->m_buffer.Destroy();
|
||||
}
|
||||
|
||||
void IRenderer::DestroyImage( IImage *pImage )
|
||||
void CVkRenderer::DestroyImage( IImage *pImage )
|
||||
{
|
||||
CVkImage *pVkImage = (CVkImage*)pImage;
|
||||
if (pVkImage)
|
||||
@@ -951,7 +1007,7 @@ void IRenderer::DestroyImage( IImage *pImage )
|
||||
|
||||
IPipeline *g_pCurrentPipeline;
|
||||
|
||||
void IRenderer::SetConstants( uint32_t nSize, void *pData )
|
||||
void CVkRenderer::SetConstants( uint32_t nSize, void *pData )
|
||||
{
|
||||
|
||||
if (!g_pCurrentPipeline)
|
||||
@@ -964,7 +1020,7 @@ void IRenderer::SetConstants( uint32_t nSize, void *pData )
|
||||
}
|
||||
}
|
||||
|
||||
void IRenderer::Barrier( uint32_t stageIn, uint32_t stageOut, CUtlVector<BufferBarrier_t> buffers, CUtlVector<ImageBarrier_t> images )
|
||||
void CVkRenderer::Barrier( uint32_t stageIn, uint32_t stageOut, CUtlVector<BufferBarrier_t> buffers, CUtlVector<ImageBarrier_t> images )
|
||||
{
|
||||
VkPipelineStageFlags psfSrc = 0;
|
||||
VkPipelineStageFlags psfDst = 0;
|
||||
@@ -1068,7 +1124,7 @@ void IRenderer::Barrier( uint32_t stageIn, uint32_t stageOut, CUtlVector<BufferB
|
||||
vkCmdPipelineBarrier(g_vkCommandBuffer, psfSrc, psfDst, 0, 0, 0, bmb.GetSize(), bmb.GetData(), imb.GetSize(), imb.GetData());
|
||||
}
|
||||
|
||||
void IRenderer::BindPipeline( IPipeline *pPipeline )
|
||||
void CVkRenderer::BindPipeline( IPipeline *pPipeline )
|
||||
{
|
||||
if (!pPipeline)
|
||||
return;
|
||||
@@ -1083,7 +1139,7 @@ void IRenderer::BindPipeline( IPipeline *pPipeline )
|
||||
}
|
||||
|
||||
|
||||
void IRenderer::Begin( uint32_t nWidth, uint32_t nHeight, CUtlVector<RenderingColorAttachment_t> attachments, RenderingDepthAttachment_t depth )
|
||||
void CVkRenderer::Begin( uint32_t nWidth, uint32_t nHeight, CUtlVector<RenderingColorAttachment_t> attachments, RenderingDepthAttachment_t depth )
|
||||
{
|
||||
CUtlVector<VkRenderingAttachmentInfo> colorAttachments = {};
|
||||
VkRenderingAttachmentInfo depthAttachment = {};
|
||||
@@ -1140,7 +1196,7 @@ skip_depth:
|
||||
vkCmdBeginRendering(g_vkCommandBuffer, &renderInfo);
|
||||
}
|
||||
|
||||
void IRenderer::ResetState()
|
||||
void CVkRenderer::ResetState()
|
||||
{
|
||||
|
||||
vkCmdSetRasterizerDiscardEnable(g_vkCommandBuffer, VK_FALSE);
|
||||
@@ -1169,7 +1225,7 @@ void IRenderer::ResetState()
|
||||
vkCmdSetPrimitiveRestartEnable(g_vkCommandBuffer, VK_FALSE);
|
||||
}
|
||||
|
||||
void IRenderer::SetDepthMode( EDepthMode mode )
|
||||
void CVkRenderer::SetDepthMode( EDepthMode mode )
|
||||
{
|
||||
if (mode == DEPTH_MODE_DISABLED)
|
||||
{
|
||||
@@ -1183,7 +1239,7 @@ void IRenderer::SetDepthMode( EDepthMode mode )
|
||||
vkCmdSetStencilTestEnable(g_vkCommandBuffer, VK_FALSE);
|
||||
}
|
||||
|
||||
void IRenderer::Draw( IVertexBuffer *pVertex, IIndexBuffer *pIndex )
|
||||
void CVkRenderer::Draw( IVertexBuffer *pVertex, IIndexBuffer *pIndex )
|
||||
{
|
||||
CVkBuffer *pVkVertex = (CVkBuffer*)pVertex;
|
||||
CVkBuffer *pVkIndex = (CVkBuffer*)pIndex;
|
||||
@@ -1211,14 +1267,24 @@ void IRenderer::Draw( IVertexBuffer *pVertex, IIndexBuffer *pIndex )
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
void CVkRenderer::Dispatch( uint32_t x, uint32_t y, uint32_t z )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void IRenderer::End()
|
||||
void CVkRenderer::TraceRays( uint32_t x, uint32_t y, uint32_t z )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void CVkRenderer::End()
|
||||
{
|
||||
vkCmdEndRendering(g_vkCommandBuffer);
|
||||
}
|
||||
|
||||
IGraphicsPipeline *IRenderer::CreateGraphicsPipeline(
|
||||
IGraphicsPipeline *CVkRenderer::CreateGraphicsPipeline(
|
||||
CUtlVector<Shader_t> shaders,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize,
|
||||
@@ -1315,13 +1381,30 @@ IGraphicsPipeline *IRenderer::CreateGraphicsPipeline(
|
||||
|
||||
return pipeline;
|
||||
};
|
||||
IComputePipeline *CVkRenderer::CreateComputePipeline(
|
||||
Shader_t szShader,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize
|
||||
)
|
||||
{
|
||||
|
||||
IBuffer *IRenderer::GetCameraMatrix()
|
||||
}
|
||||
|
||||
IRayTracingPipeline *CVkRenderer::CreateRayTracingPipeline(
|
||||
CUtlVector<Shader_t> shaders,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize
|
||||
)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
IBuffer *CVkRenderer::GetCameraMatrix()
|
||||
{
|
||||
return g_cameraProperties;
|
||||
}
|
||||
|
||||
IImage *IRenderer::GetOutputImage()
|
||||
IImage *CVkRenderer::GetOutputImage()
|
||||
{
|
||||
return &s_SwapchainImage;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user