Skip to content

Commit 460e01e

Browse files
authored
Fixes after reenabling descriptor set validation (#64)
Apply fixes after reenabling descriptor set validation in engine submodule Update Engine submodule
1 parent 3d963f0 commit 460e01e

23 files changed

Lines changed: 68 additions & 72 deletions

Source/Game-Lib/Game-Lib/Editor/Viewport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ namespace Editor
3737
vec2 _lastPanelSize = vec2(1920, 1080);
3838

3939
vec2 _viewportPos = vec2(0, 0);
40-
vec2 _viewportSize = vec2(0, 0);
40+
vec2 _viewportSize = vec2(1920, 1080);
4141

4242
bool _rightClickStartedInViewport = false;
4343
};

Source/Game-Lib/Game-Lib/Rendering/CulledRenderer.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@ void CulledRenderer::OccluderPass(OccluderPassParams& params)
120120
params.occluderFillDescriptorSet.Bind("_culledDrawCallsBitMask"_h, params.culledDrawCallsBitMaskBuffer);
121121

122122
// Bind descriptorset
123-
params.commandList->BindDescriptorSet(params.globalDescriptorSet, params.frameIndex);
124123
params.commandList->BindDescriptorSet(params.occluderFillDescriptorSet, params.frameIndex);
125124

126125
params.commandList->Dispatch((numInstances + 31) / 32, 1, 1);
@@ -166,7 +165,6 @@ void CulledRenderer::OccluderPass(OccluderPassParams& params)
166165
cullConstants->drawCallDataSize = params.drawCallDataSize;
167166
params.commandList->PushConstant(cullConstants, 0, sizeof(CullConstants));
168167

169-
params.commandList->BindDescriptorSet(params.globalDescriptorSet, params.frameIndex);
170168
params.commandList->BindDescriptorSet(params.createIndirectDescriptorSet, params.frameIndex);
171169

172170
if (debugOrdered)
@@ -453,7 +451,6 @@ void CulledRenderer::CullingPass(CullingPassParams& params)
453451
params.commandList->PushConstant(cullConstants, 0, sizeof(CullConstants));
454452

455453
params.commandList->BindDescriptorSet(params.debugDescriptorSet, params.frameIndex);
456-
params.commandList->BindDescriptorSet(params.globalDescriptorSet, params.frameIndex);
457454
params.commandList->BindDescriptorSet(params.createIndirectAfterCullSet, params.frameIndex);
458455

459456
if (debugOrdered)
@@ -604,7 +601,7 @@ void CulledRenderer::GeometryPass(GeometryPassParams& params)
604601
FillDrawCallConstants* fillConstants = params.graphResources->FrameNew<FillDrawCallConstants>();
605602
fillConstants->numTotalDraws = numDrawCalls;
606603
fillConstants->bitmaskOffset = i * params.cullingResources->GetBitMaskBufferUintsPerView();
607-
fillConstants->diffAgainstPrev = 1; // Geomeyry should diff against prev
604+
fillConstants->diffAgainstPrev = 1; // Geometry should diff against prev
608605
params.commandList->PushConstant(fillConstants, 0, sizeof(FillDrawCallConstants));
609606

610607
params.fillDescriptorSet.Bind("_culledDrawCallsBitMask"_h, params.culledDrawCallsBitMaskBuffer);

Source/Game-Lib/Game-Lib/Rendering/CullingResources.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ bool CullingResourcesIndexedBase::SyncToGPU(bool forceRecount)
280280
_cullingDescriptorSet.Bind("_drawCalls"_h, _drawCalls.GetBuffer());
281281
if (_materialPassDescriptorSet != nullptr)
282282
{
283-
_materialPassDescriptorSet->Bind("_modelDraws"_h, _drawCalls.GetBuffer());
283+
_materialPassDescriptorSet->Bind("_opaqueModelDraws"_h, _drawCalls.GetBuffer());
284284
}
285285

286286
// (Re)create Culled Instance Counts Buffer
@@ -435,7 +435,7 @@ bool CullingResourcesNonIndexedBase::SyncToGPU(bool forceRecount)
435435
_cullingDescriptorSet.Bind("_drawCalls"_h, _drawCalls.GetBuffer());
436436
if (_materialPassDescriptorSet != nullptr)
437437
{
438-
_materialPassDescriptorSet->Bind("_modelDraws"_h, _drawCalls.GetBuffer());
438+
_materialPassDescriptorSet->Bind("_opaqueModelDraws"_h, _drawCalls.GetBuffer());
439439
}
440440

441441
// (Re)create Culled Instance Counts Buffer

Source/Game-Lib/Game-Lib/Rendering/Debug/DebugRenderer.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,6 @@ void DebugRenderer::Add2DPass(Renderer::RenderGraph* renderGraph, RenderResource
301301
{
302302
commandList.BeginPipeline(pipeline);
303303

304-
//commandList.BindDescriptorSet2(data.globalSet, frameIndex); // TODO: Enable this with validation layers and find a way to print a better warning that this shader doesn't need this descriptorset
305304
commandList.BindDescriptorSet(data.drawSolid2DSet, frameIndex);
306305

307306
// Draw
@@ -319,7 +318,6 @@ void DebugRenderer::Add2DPass(Renderer::RenderGraph* renderGraph, RenderResource
319318
{
320319
commandList.BeginPipeline(pipeline);
321320

322-
//commandList.BindDescriptorSet2(data.globalSet, frameIndex); // TODO: Enable this with validation layers and find a way to print a better warning that this shader doesn't need this descriptorset
323321
commandList.BindDescriptorSet(data.draw2DSet, frameIndex);
324322

325323
// Draw
@@ -333,7 +331,6 @@ void DebugRenderer::Add2DPass(Renderer::RenderGraph* renderGraph, RenderResource
333331
{
334332
commandList.BeginPipeline(pipeline);
335333

336-
//commandList.BindDescriptorSet2(data.globalSet, frameIndex); // TODO: Enable this with validation layers and find a way to print a better warning that this shader doesn't need this descriptorset
337334
commandList.BindDescriptorSet(data.draw2DIndirectSet, frameIndex);
338335

339336
// Draw

Source/Game-Lib/Game-Lib/Rendering/Material/MaterialRenderer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,7 @@ void MaterialRenderer::CreatePermanentResources()
324324
samplerDesc.shaderVisibility = Renderer::ShaderVisibility::ALL;
325325

326326
_sampler = _renderer->CreateSampler(samplerDesc);
327+
_preEffectsPassDescriptorSet.Bind("_sampler"_h, _sampler);
327328
_materialPassDescriptorSet.Bind("_sampler"_h, _sampler);
328329

329330
_directionalLights.SetDebugName("Directional Lights");

Source/Game-Lib/Game-Lib/Rendering/Model/ModelRenderer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,6 +1174,7 @@ void ModelRenderer::RegisterMaterialPassBufferUsage(Renderer::RenderGraphBuilder
11741174
builder.Read(_opaqueCullingResources.GetDrawCalls().GetBuffer(), BufferUsage::COMPUTE);
11751175
builder.Read(_opaqueCullingResources.GetDrawCallDatas().GetBuffer(), BufferUsage::COMPUTE);
11761176
builder.Read(_opaqueCullingResources.GetInstanceRefs().GetBuffer(), BufferUsage::COMPUTE);
1177+
builder.Read(_opaqueCullingResources.GetCulledInstanceLookupTableBuffer(), BufferUsage::COMPUTE);
11771178
builder.Read(_vertices.GetBuffer(), BufferUsage::COMPUTE);
11781179
builder.Read(_indices.GetBuffer(), BufferUsage::COMPUTE);
11791180
builder.Read(_textureDatas.GetBuffer(), BufferUsage::COMPUTE);

Source/Game-Lib/Game-Lib/Rendering/Terrain/TerrainRenderer.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ void TerrainRenderer::AddOccluderPass(Renderer::RenderGraph* renderGraph, Render
164164
builder.Read(_instanceDatas.GetBuffer(), BufferUsage::COMPUTE | BufferUsage::GRAPHICS);
165165
builder.Read(_vertices.GetBuffer(), BufferUsage::GRAPHICS);
166166
builder.Read(_cellDatas.GetBuffer(), BufferUsage::GRAPHICS);
167+
builder.Read(_chunkDatas.GetBuffer(), BufferUsage::GRAPHICS);
167168
builder.Read(resources.cameras.GetBuffer(), BufferUsage::GRAPHICS);
168169

169170
data.culledInstanceBuffer = builder.Write(_culledInstanceBuffer, BufferUsage::TRANSFER | BufferUsage::COMPUTE | BufferUsage::GRAPHICS);
@@ -457,9 +458,10 @@ void TerrainRenderer::AddGeometryPass(Renderer::RenderGraph* renderGraph, Render
457458
builder.Read(resources.cameras.GetBuffer(), BufferUsage::GRAPHICS);
458459
builder.Read(_vertices.GetBuffer(), BufferUsage::GRAPHICS);
459460
builder.Read(_cellDatas.GetBuffer(), BufferUsage::GRAPHICS);
461+
builder.Read(_chunkDatas.GetBuffer(), BufferUsage::GRAPHICS);
460462
if (cullingEnabled)
461463
{
462-
builder.Read(_instanceDatas.GetBuffer(), BufferUsage::COMPUTE);
464+
builder.Read(_instanceDatas.GetBuffer(), BufferUsage::COMPUTE | BufferUsage::GRAPHICS);
463465
}
464466

465467
data.argumentBuffer = builder.Write(_argumentBuffer, BufferUsage::TRANSFER | BufferUsage::GRAPHICS | BufferUsage::COMPUTE);
@@ -1124,7 +1126,7 @@ void TerrainRenderer::SyncToGPU()
11241126

11251127
if (_instanceDatas.SyncToGPU(_renderer))
11261128
{
1127-
resources.terrainDescriptorSet.Bind("_instanceDatas", _instanceDatas.GetBuffer());
1129+
resources.terrainDescriptorSet.Bind("_instanceDatas"_h, _instanceDatas.GetBuffer());
11281130
_occluderFillPassDescriptorSet.Bind("_instances"_h, _instanceDatas.GetBuffer());
11291131
_geometryFillPassDescriptorSet.Bind("_instances"_h, _instanceDatas.GetBuffer());
11301132
_cullingPassDescriptorSet.Bind("_instances"_h, _instanceDatas.GetBuffer());
@@ -1136,6 +1138,7 @@ void TerrainRenderer::SyncToGPU()
11361138
desc.name = "TerrainCulledInstanceBuffer";
11371139
_culledInstanceBuffer = _renderer->CreateBuffer(_culledInstanceBuffer, desc);
11381140

1141+
resources.terrainDescriptorSet.Bind("_culledInstanceDatas"_h, _culledInstanceBuffer);
11391142
_cullingPassDescriptorSet.Bind("_culledInstances"_h, _culledInstanceBuffer);
11401143
_occluderFillPassDescriptorSet.Bind("_culledInstances"_h, _culledInstanceBuffer);
11411144
_geometryFillPassDescriptorSet.Bind("_culledInstances"_h, _culledInstanceBuffer);

Source/Game-Lib/Game-Lib/Rendering/Texture/TextureRenderer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ void TextureRenderer::AddTexturePass(Renderer::RenderGraph* renderGraph, RenderR
176176
Renderer::TextureID textureID = Renderer::TextureID(texture);
177177
ResolveMips(graphResources, commandList, frameIndex, data.mipResolveDescriptorSet, textureID);
178178
}
179+
//commandList.ImageBarrier()
179180

180181
// Reset the viewport and scissor
181182
vec2 renderSize = _renderer->GetRenderSize();

Source/Shaders/Shaders.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ Solution.Util.CreateProject(mod.Name, "Utility", Solution.Projects.Current.BinDi
2929
end)
3030

3131
vpaths {
32-
["/*"] = { "*.lua", mod.Name .. "/**" }
32+
["/*"] = { "*.lua", mod.Name }
3333
}
3434
end)

Source/Shaders/Shaders/DescriptorSet/Model.inc.slang

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010

1111
[[vk::binding(0, MODEL)]] StructuredBuffer<uint> _opaqueCulledInstanceLookupTable; // One uint per instance, contains instanceRefID of what survives culling, and thus can get reordered
1212
[[vk::binding(1, MODEL)]] StructuredBuffer<InstanceRef> _opaqueInstanceRefTable;
13-
[[vk::binding(2, MODEL)]] StructuredBuffer<PackedTextureData> _packedModelTextureDatas;
14-
[[vk::binding(3, MODEL)]] StructuredBuffer<PackedModelVertex> _packedModelVertices;
15-
[[vk::binding(4, MODEL)]] StructuredBuffer<ModelInstanceData> _modelInstanceDatas;
16-
[[vk::binding(5, MODEL)]] StructuredBuffer<float4x4> _modelInstanceMatrices;
17-
[[vk::binding(6, MODEL)]] StructuredBuffer<float4x4> _instanceBoneMatrices;
18-
[[vk::binding(7, MODEL)]] StructuredBuffer<float4x4> _instanceTextureTransformMatrices;
19-
[[vk::binding(8, MODEL)]] RWStructuredBuffer<PackedAnimatedVertexPosition> _animatedModelVertexPositions;
20-
[[vk::binding(9, MODEL)]] StructuredBuffer<IndexedDraw> _modelDraws;
13+
[[vk::binding(2, MODEL)]] StructuredBuffer<IndexedDraw> _opaqueModelDraws;
14+
[[vk::binding(3, MODEL)]] StructuredBuffer<PackedTextureData> _packedModelTextureDatas;
15+
[[vk::binding(4, MODEL)]] StructuredBuffer<PackedModelVertex> _packedModelVertices;
16+
[[vk::binding(5, MODEL)]] StructuredBuffer<ModelInstanceData> _modelInstanceDatas;
17+
[[vk::binding(6, MODEL)]] StructuredBuffer<float4x4> _modelInstanceMatrices;
18+
[[vk::binding(7, MODEL)]] StructuredBuffer<float4x4> _instanceBoneMatrices;
19+
[[vk::binding(8, MODEL)]] StructuredBuffer<float4x4> _instanceTextureTransformMatrices;
20+
[[vk::binding(9, MODEL)]] RWStructuredBuffer<PackedAnimatedVertexPosition> _animatedModelVertexPositions;
2121
[[vk::binding(10, MODEL)]] StructuredBuffer<uint> _modelIndices;
2222
[[vk::binding(11, MODEL)]] StructuredBuffer<ModelTextureUnit> _modelTextureUnits;
2323
[[vk::binding(12, MODEL)]] SamplerState _samplers[MAX_MODEL_SAMPLERS];

0 commit comments

Comments
 (0)