Skip to content

Commit 89fd2b3

Browse files
committed
fixed half resolution bug on the dispatch call
1 parent cd8f865 commit 89fd2b3

File tree

14 files changed

+22
-58
lines changed

14 files changed

+22
-58
lines changed

Internal/Application/Client.cpp

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,10 @@
2929
#include "ApplicationState/ApplicationState.hpp"
3030

3131
Client::Client()
32-
: m_globalRenderingData{}
33-
, m_globalRenderingData2{}
32+
: m_globalRenderingData2{}
3433
{
3534
m_applicationState = std::make_unique<ApplicationCore::ApplicationState>();
3635

37-
m_applicationState->pSetGlobalRenderingInfo(&m_globalRenderingData);
3836
m_applicationState->pSetGlobalRenderingInfoData2(&m_globalRenderingData2);
3937
}
4038

@@ -100,7 +98,7 @@ const void Client::Destroy()
10098

10199
void Client::UpdateCamera(CameraUpdateInfo& cameraUpdateInfo)
102100
{
103-
/* // before camera is update we have the previous projection and view matrix
101+
/* // before camera is update we have the previous projection and view matrix
104102
m_globalRenderingData.viewPrevFrame = m_camera->GetViewMatrix();
105103
m_globalRenderingData.projPrevFrame = m_camera->GetProjectionMatrix();
106104
@@ -150,18 +148,14 @@ void Client::UpdateCamera(CameraUpdateInfo& cameraUpdateInfo)
150148
m_globalRenderingData2.inverseProj = m_camera->GetinverseProjectionMatrix();
151149

152150

153-
154-
if(m_applicationState->GetAtmosphereParameters()){
151+
if(m_applicationState->GetAtmosphereParameters())
152+
{
155153
auto ap = m_applicationState->GetAtmosphereParameters();
156-
m_globalRenderingData2.atmosphereParams = glm::vec4(
157-
ap->groundAlbedo.w,
158-
ap->rayleighScattering.w,
159-
static_cast<bool>(ap->booleans.z),
160-
0.0
161-
);
154+
m_globalRenderingData2.atmosphereParams =
155+
glm::vec4(ap->groundAlbedo.w, ap->rayleighScattering.w, static_cast<bool>(ap->booleans.z), 0.0);
162156
}
163-
164-
m_globalRenderingData2.cameraPosition = glm::vec4(m_camera->GetPosition(), m_camera->GetFOVRad());
157+
158+
m_globalRenderingData2.cameraPosition = glm::vec4(m_camera->GetPosition(), m_camera->GetFOVRad());
165159

166160
//========================
167161
// View parameters I

Internal/Application/Client.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ class Client
5555

5656
ApplicationCore::AssetsManager& GetAssetsManager() const { return *m_assetsManager; }
5757

58-
GlobalRenderingInfo& GetGlobalDataUpdateInformation() { return m_globalRenderingData; }
5958
ApplicationCore::Scene& GetScene() const { return *m_scene; };
6059
;
6160
ApplicationCore::GLTFLoader& GetGLTFLoader() const { return *m_gltfLoader; };
@@ -82,7 +81,6 @@ class Client
8281
std::unique_ptr<ApplicationCore::GLTFExporter> m_gltfExporter;
8382
std::unique_ptr<ApplicationCore::ApplicationState> m_applicationState;
8483

85-
GlobalRenderingInfo m_globalRenderingData;
8684
GlobalRenderingInfo2 m_globalRenderingData2;
8785
bool m_isRTXOn = false;
8886
};

Internal/Vulkan/Renderer/Renderers/ForwardRenderer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ ForwardRenderer::ForwardRenderer(const VulkanCore::VDevice& device,
7777
m_atmospherePass = std::make_unique<Renderer::AtmospherePass>(device, effectsLibrary, width, height);
7878
m_aoOcclusionPass = std::make_unique<Renderer::AoOcclusionPass>(device, effectsLibrary, width / 4, height / 4);
7979
m_rayTracedReflectionPass =
80-
std::make_unique<Renderer::RayTracedReflectionsPass>(device, effectsLibrary, width / 3, height / 3);
80+
std::make_unique<Renderer::RayTracedReflectionsPass>(device, effectsLibrary, width / 2, height / 2);
8181
//====================================================================================================
8282
// Populate render context with all the images that will be rendered
8383
m_renderContextPtr->normalMap = &m_gBufferPass->GetResolvedResult(EGBufferAttachments::Normal);

Internal/Vulkan/Renderer/Renderers/Frame.cpp

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -183,26 +183,15 @@ void Frame::Update(ApplicationCore::ApplicationState& applicationState)
183183
applicationState.GetGlobalRenderingInfo2().renderingInfo.w =
184184
m_rayTracer->GetRenderedImage(m_frameInFlightID).GetImageInfo().height;
185185
applicationState.GetGlobalRenderingInfo2().renderingInfo2.w = m_accumulatedFramesCount;
186-
187-
//===============================
188-
applicationState.GetGlobalRenderingInfo().screenSize.x =
189-
m_rayTracer->GetRenderedImage(m_frameInFlightID).GetImageInfo().width;
190-
applicationState.GetGlobalRenderingInfo().screenSize.y =
191-
m_rayTracer->GetRenderedImage(m_frameInFlightID).GetImageInfo().height;
192-
// will cause to multiply by 0 thus clear the colour
193-
applicationState.GetGlobalRenderingInfo().numberOfFrames = m_accumulatedFramesCount;
194186
}
195187
else
196188
{
197189
applicationState.GetGlobalRenderingInfo2().renderingInfo2.w = m_frameCount;
198-
199-
applicationState.GetGlobalRenderingInfo().numberOfFrames = m_frameCount;
200190
}
201191

202192

203193
//=====================================================================
204194
// IMPORTANT: this sends all data accumulated over the frame to the GPU
205-
applicationState.GetGlobalRenderingInfo().isRayTracing = static_cast<int>(m_isRayTracing);
206195
applicationState.GetGlobalRenderingInfo2().renderingFeatures.y = static_cast<int>(m_isRayTracing); // is ray tracing ?
207196

208197
m_uniformBufferManager.Update(m_frameInFlightID, applicationState, m_renderContext.GetAllDrawCall());

Internal/Vulkan/Renderer/Renderers/RenderPass/VisibilityBufferPass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void VisibilityBufferPass::Render(int currentFrame, VulkanCore::VCommandBuffer&
9393

9494
//dispatch
9595

96-
cmdB.dispatch(m_height / 16, m_height / 16, 1);
96+
cmdB.dispatch(m_width / 16, m_height / 16, 1);
9797

9898
m_renderTargets[EVisibilityBufferAttachments::ShadowMap]->TransitionAttachments(
9999
cmdBuffer, vk::ImageLayout::eShaderReadOnlyOptimal, vk::ImageLayout::eGeneral,
@@ -167,7 +167,7 @@ void AoOcclusionPass::Render(int currentFrame, VulkanCore::VCommandBuffer& cmdBu
167167
pcInfo.stageFlags = vk::ShaderStageFlagBits::eAll;
168168

169169
m_aoEffect->CmdPushConstant(cmdBuffer.GetCommandBuffer(), pcInfo);
170-
cmdBuffer.GetCommandBuffer().dispatch(m_width / 16, m_height / 16, 1);
170+
cmdBuffer.GetCommandBuffer().dispatch(m_width / 16, m_height + 2 / 16, 1);
171171

172172
m_renderTargets[0]->TransitionAttachments(cmdBuffer, vk::ImageLayout::eShaderReadOnlyOptimal, vk::ImageLayout::eGeneral,
173173
VulkanUtils::VImage_SampledRead_To_General.Switch());

Internal/Vulkan/Utils/VUniformBufferManager/UnifromsRegistry.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ namespace VulkanCore {
1414
class VBuffer;
1515
}
1616

17-
struct GlobalRenderingInfo
17+
/* struct GlobalRenderingInfo
1818
{
1919
glm::mat4 view;
2020
glm::mat4 proj;
@@ -45,7 +45,7 @@ struct GlobalRenderingInfo
4545
4646
alignas(4) int useComposition = 1.0f;
4747
alignas(4) int useReflection = 1.0f;
48-
};
48+
}; */
4949

5050
struct GlobalRenderingInfo2
5151
{
@@ -57,7 +57,7 @@ struct GlobalRenderingInfo2
5757
glm::mat4 viewPrevFrame = glm::mat4(1.0);
5858
glm::mat4 projPrevFrame = glm::mat4(1.0);
5959

60-
glm::vec4 atmosphereParams; // x - bottom radius , y - top radius, z - account for scattering
60+
glm::vec4 atmosphereParams; // x - bottom radius , y - top radius, z - account for scattering
6161
glm::vec4 cameraPosition;
6262
glm::vec4 viewParams; // x - image plane distance, y - focal length, z - near plane, w -far plane
6363
glm::vec4 viewParams2; // x - FOV, y - aspect ratio, z - aparature size, w -cameraType

Internal/Vulkan/Utils/VUniformBufferManager/VUniformBufferManager.cpp

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,6 @@ VulkanUtils::VUniformBufferManager::VUniformBufferManager(const VulkanCore::VDev
3939
Utils::Logger::LogSuccess("Uniform buffer manager created successfully");
4040
}
4141

42-
const std::vector<vk::DescriptorBufferInfo>& VulkanUtils::VUniformBufferManager::GetGlobalBufferDescriptorInfo() const
43-
{
44-
return m_perFrameUniform->GetDescriptorBufferInfos();
45-
}
4642

4743
vk::DescriptorBufferInfo VulkanUtils::VUniformBufferManager::GetGlobalBufferDescriptorInfo2(int currentFrame) const
4844
{
@@ -98,12 +94,6 @@ vk::DescriptorBufferInfo VulkanUtils::VUniformBufferManager::GetMaterialDescript
9894
}
9995

10096

101-
void VulkanUtils::VUniformBufferManager::UpdatePerFrameUniformData(int frameIndex, GlobalRenderingInfo& perFrameData) const
102-
{
103-
m_perFrameUniform->GetUBOStruct() = perFrameData;
104-
m_perFrameUniform->UpdateGPUBuffer(frameIndex);
105-
}
106-
10797
void VulkanUtils::VUniformBufferManager::UpdatePerFrameUniformData2(int frameIndex, GlobalRenderingInfo2& perFrameData) const
10898
{
10999
m_perFrameUniform2->GetUBOStruct() = perFrameData;
@@ -207,7 +197,6 @@ void VulkanUtils::VUniformBufferManager::UpdateSceneDataInfo(int frameIndex, con
207197
void VulkanUtils::VUniformBufferManager::Destroy() const
208198
{
209199
Utils::Logger::LogInfoVerboseOnly("Destroying uniform buffer manager and all its data...");
210-
m_perFrameUniform->Destory();
211200
m_lightUniform->Destory();
212201

213202

@@ -258,7 +247,6 @@ void VulkanUtils::VUniformBufferManager::CreateUniforms()
258247
GlobalState::EnableLogging();
259248
Utils::Logger::LogSuccess("Allocated uniform and storage buffers");
260249

261-
m_perFrameUniform = std::make_unique<VUniform<GlobalRenderingInfo>>(m_device);
262250
m_perFrameUniform2 = std::make_unique<VUniform<GlobalRenderingInfo2>>(m_device);
263251

264252
m_lightUniform = std::make_unique<VUniform<LightUniforms>>(m_device);
@@ -276,9 +264,8 @@ void VulkanUtils::VUniformBufferManager::Update(int
276264
{
277265
m_applicationState = &applicationState;
278266

279-
UpdatePerFrameUniformData(frameIndex, applicationState.GetGlobalRenderingInfo());
267+
UpdatePerFrameUniformData2(frameIndex, applicationState.GetGlobalRenderingInfo2());
280268
UpdateLightUniformData(frameIndex, applicationState.GetSceneLightInfo());
281269
UpdatePerObjectUniformData(frameIndex, drawCalls);
282270
UpdateSceneDataInfo(frameIndex, applicationState.GetSceneData());
283-
UpdatePerFrameUniformData2(frameIndex, applicationState.GetGlobalRenderingInfo2());
284271
}

Internal/Vulkan/Utils/VUniformBufferManager/VUniformBufferManager.hpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ class VUniformBufferManager
4343
VUniformBufferManager(const VulkanCore::VDevice& device);
4444

4545

46-
const std::vector<vk::DescriptorBufferInfo>& GetGlobalBufferDescriptorInfo() const; // per frame in flight
4746
vk::DescriptorBufferInfo GetGlobalBufferDescriptorInfo2(int frameIndex) const;
4847
const vk::DescriptorBufferInfo GetPostProcessingBufferDescriptorInfo(int frameIndex) const;
4948
const std::vector<vk::DescriptorBufferInfo>& GetLightBufferDescriptorInfo() const;
@@ -64,8 +63,6 @@ class VUniformBufferManager
6463
void Destroy() const;
6564

6665
private:
67-
void UpdatePerFrameUniformData(int frameIndex, GlobalRenderingInfo& perFrameData) const;
68-
6966
void UpdatePerFrameUniformData2(int frameIndex, GlobalRenderingInfo2& perFrameData) const;
7067

7168
void UpdatePerObjectUniformData(int frameIndex, std::vector<std::pair<unsigned long, VulkanStructs::VDrawCallData>>& drawCalls) const;
@@ -85,7 +82,6 @@ class VUniformBufferManager
8582
// TODO: this will be storage buffer
8683
std::unique_ptr<VUniform<LightUniforms>> m_lightUniform;
8784

88-
std::unique_ptr<VulkanUtils::VUniform<GlobalRenderingInfo>> m_perFrameUniform;
8985
std::unique_ptr<VulkanUtils::VUniform<GlobalRenderingInfo2>> m_perFrameUniform2;
9086
//=======================================================
9187
// storage buffers containing all of the data for materials

Shaders/Compiled/CompositePass.spv

140 Bytes
Binary file not shown.

Shaders/Compiled/ShadowMapPass.spv

172 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)